Backed out
changeset 575c0de98505
Reason: We suspect that this patch might break Windows builds and render the mouse on Windows unusable.
This suspicion is based on the bug report of one user: https://hedgewars.org/node/6837#comment-33593
In return, this changeset will definitely re-introduce
bug #512.
unit uCursor;
interface
procedure init;
procedure resetPosition;
procedure updatePosition;
procedure handlePositionUpdate(x, y: LongInt);
implementation
uses SDLh, uVariables;
procedure init;
begin
resetPosition();
end;
procedure resetPosition;
begin
// Move curser by 1px in case it's already centered.
// The game camera in the Alpha for 0.9.23 screwed up if
// the game started with the mouse already being centered.
// This fixes it, but we might have overlooked a related
// bug somewhere else.
// No big deal since this function is (so far) only called once.
SDL_WarpMouse((cScreenWidth div 2) + 1, cScreenHeight div 2);
SDL_WarpMouse(cScreenWidth div 2, cScreenHeight div 2);
end;
procedure updatePosition;
var x, y: LongInt;
begin
SDL_GetMouseState(@x, @y);
if(x <> cScreenWidth div 2) or (y <> cScreenHeight div 2) then
begin
handlePositionUpdate(x - cScreenWidth div 2, y - cScreenHeight div 2);
if cHasFocus then
SDL_WarpMouse(cScreenWidth div 2, cScreenHeight div 2);
end
end;
procedure handlePositionUpdate(x, y: LongInt);
begin
CursorPoint.X:= CursorPoint.X + x;
CursorPoint.Y:= CursorPoint.Y - y;
end;
end.