From 4a2431b079abc142866c46f8e91b1db9f7a2951c Mon Sep 17 00:00:00 2001 From: binarymaster Date: Sat, 30 Sep 2017 22:18:54 +0300 Subject: [PATCH] Movement: Get proper mouse position --- src/editor/f_main.pas | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas index 82bd18d..e005435 100644 --- a/src/editor/f_main.pas +++ b/src/editor/f_main.pas @@ -266,6 +266,7 @@ type public procedure RefreshRecentMenu(); procedure OpenMapFile(FileName: String); + function RenderMousePos(): TPoint; end; const @@ -3962,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 @@ -4293,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; @@ -4304,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; @@ -4319,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; @@ -4330,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; -- 2.29.2