X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Feditor%2Ff_main.pas;h=e0054350131bc2507ed9cfc4c8a963fce0ebe835;hb=4a2431b079abc142866c46f8e91b1db9f7a2951c;hp=292bcdafb9e7f3faf9e276b0e03ab08803bd2901;hpb=9303e084844dfe5532c67b13570e6bf036a57141;p=d2df-editor.git diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas index 292bcda..e005435 100644 --- a/src/editor/f_main.pas +++ b/src/editor/f_main.pas @@ -26,6 +26,7 @@ type miSaveMapAs: TMenuItem; miOpenWadMap: TMenuItem; miLine1: TMenuItem; + miReopenMap: TMenuItem; miSaveMiniMap: TMenuItem; miDeleteMap: TMenuItem; miPackMap: TMenuItem; @@ -210,6 +211,7 @@ type 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); @@ -264,6 +266,7 @@ type public procedure RefreshRecentMenu(); procedure OpenMapFile(FileName: String); + function RenderMousePos(): TPoint; end; const @@ -385,7 +388,7 @@ const SELECTFLAG_SHOTPANEL = 7; SELECTFLAG_SELECTED = 8; - RECENT_FILES_MENU_START = 11; + RECENT_FILES_MENU_START = 12; CLIPBOARD_SIG = 'DF:ED'; @@ -3960,6 +3963,11 @@ begin 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 @@ -4291,7 +4299,7 @@ begin 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; @@ -4302,7 +4310,7 @@ begin 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; @@ -4317,7 +4325,7 @@ begin 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; @@ -4328,7 +4336,7 @@ begin 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; @@ -4549,6 +4557,21 @@ begin 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