diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas
index 292bcdafb9e7f3faf9e276b0e03ab08803bd2901..e0054350131bc2507ed9cfc4c8a963fce0ebe835 100644 (file)
--- a/src/editor/f_main.pas
+++ b/src/editor/f_main.pas
miSaveMapAs: TMenuItem;
miOpenWadMap: TMenuItem;
miLine1: TMenuItem;
+ miReopenMap: TMenuItem;
miSaveMiniMap: TMenuItem;
miDeleteMap: TMenuItem;
miPackMap: TMenuItem;
procedure lbTextureListClick(Sender: TObject);
procedure lbTextureListDrawItem(Control: TWinControl; Index: Integer;
ARect: TRect; State: TOwnerDrawState);
+ procedure miReopenMapClick(Sender: TObject);
procedure RenderPanelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure RenderPanelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure RenderPanelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
public
procedure RefreshRecentMenu();
procedure OpenMapFile(FileName: String);
+ function RenderMousePos(): TPoint;
end;
const
SELECTFLAG_SHOTPANEL = 7;
SELECTFLAG_SELECTED = 8;
- RECENT_FILES_MENU_START = 11;
+ RECENT_FILES_MENU_START = 12;
CLIPBOARD_SIG = 'DF:ED';
Draw();
end;
+function TMainForm.RenderMousePos(): Types.TPoint;
+begin
+ Result := RenderPanel.ScreenToClient(Mouse.CursorPos);
+end;
+
procedure TMainForm.RenderPanelMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
if (MouseLDown or MouseRDown) and (Position >= DotStep) then
begin
Dec(WASDOffset.Y, DotStep);
- RenderPanelMouseMove(Sender, Shift, LastMovePoint.X, LastMovePoint.Y);
+ RenderPanelMouseMove(Sender, Shift, RenderMousePos().X, RenderMousePos().Y);
end;
Position := IfThen(Position > DotStep, Position-DotStep, 0);
MapOffset.Y := -Round(Position/16) * 16;
if (MouseLDown or MouseRDown) and (Position+DotStep <= Max) then
begin
Inc(WASDOffset.Y, DotStep);
- RenderPanelMouseMove(Sender, Shift, LastMovePoint.X, LastMovePoint.Y);
+ RenderPanelMouseMove(Sender, Shift, RenderMousePos().X, RenderMousePos().Y);
end;
Position := IfThen(Position+DotStep < Max, Position+DotStep, Max);
MapOffset.Y := -Round(Position/16) * 16;
if (MouseLDown or MouseRDown) and (Position >= DotStep) then
begin
Dec(WASDOffset.X, DotStep);
- RenderPanelMouseMove(Sender, Shift, LastMovePoint.X, LastMovePoint.Y);
+ RenderPanelMouseMove(Sender, Shift, RenderMousePos().X, RenderMousePos().Y);
end;
Position := IfThen(Position > DotStep, Position-DotStep, 0);
MapOffset.X := -Round(Position/16) * 16;
if (MouseLDown or MouseRDown) and (Position+DotStep <= Max) then
begin
Inc(WASDOffset.X, DotStep);
- RenderPanelMouseMove(Sender, Shift, LastMovePoint.X, LastMovePoint.Y);
+ RenderPanelMouseMove(Sender, Shift, RenderMousePos().X, RenderMousePos().Y);
end;
Position := IfThen(Position+DotStep < Max, Position+DotStep, Max);
MapOffset.X := -Round(Position/16) * 16;
end;
end;
+procedure TMainForm.miReopenMapClick(Sender: TObject);
+var
+ FileName, Resource: String;
+begin
+ if OpenedMap = '' then
+ Exit;
+
+ if MessageBox(0, PChar(_lc[I_MSG_REOPEN_MAP_PROMT]),
+ PChar(_lc[I_MENU_FILE_REOPEN]), MB_ICONQUESTION or MB_YESNO) <> idYes then
+ Exit;
+
+ g_ProcessResourceStr(OpenedMap, @FileName, nil, @Resource);
+ OpenMap(FileName, Resource);
+end;
+
procedure TMainForm.vleObjectPropertyGetPickList(Sender: TObject;
const KeyName: String; Values: TStrings);
begin