hedgewars/uCursor.pas
author sheepluva <sheepluva@users.noreply.github.com>
Mon, 05 Jan 2015 14:37:08 +0100
changeset 10770 8060cb5c2fa6
parent 10017 de822cd3df3a
child 12664 545e1198e8b9
permissions -rw-r--r--
Merge pull request #27 from LocutusOfBorg/fix-build2 Fix arm* build failures < LocutusOfBorg1> sheepluva, the problem is fpc, so the workaround might be necessary even if they patch it :( http://bugs.freepascal.org/view.php?id=27222

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
    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.