hedgewars/uCursor.pas
author S.D.
Tue, 27 Sep 2022 14:59:03 +0300
changeset 15878 fc3cb23fd26f
parent 14809 c2793ff4e887
permissions -rw-r--r--
Allow to see rooms of incompatible versions in the lobby For the new clients the room version is shown in a separate column. There is also a hack for previous versions clients: the room vesion specifier is prepended to the room names for rooms of incompatible versions, and the server shows 'incompatible version' error if the client tries to join them.

{$INCLUDE "options.inc"}

unit uCursor;

interface

procedure init;
procedure resetPosition;
procedure resetPositionDelta();
procedure updatePositionDelta(xrel, yrel: LongInt);
procedure updatePosition();
procedure handlePositionUpdate(x, y: LongInt);

implementation

uses SDLh, uVariables, uTypes;

procedure init;
begin
    SDL_ShowCursor(SDL_DISABLE);
    resetPosition();
{$IFNDEF USE_TOUCH_INTERFACE}
    SDL_SetRelativeMouseMode(SDL_TRUE);
{$ENDIF}
end;

procedure resetPosition;
begin
    if GameType = gmtRecord then
        exit;
    SDL_WarpMouse(cScreenWidth div 2, cScreenHeight div 2);
    resetPositionDelta();
end;

procedure resetPositionDelta();
begin
    CursorPointDelta.X:= 0;
    CursorPointDelta.Y:= 0;
end;

procedure updatePositionDelta(xrel, yrel: LongInt);
begin
    CursorPointDelta.X:= CursorPointDelta.X + xrel;
    CursorPointDelta.Y:= CursorPointDelta.Y + yrel;
end;

procedure updatePosition();
begin
    handlePositionUpdate(CursorPointDelta.X, CursorPointDelta.Y);
    resetPositionDelta();
end;

procedure handlePositionUpdate(x, y: LongInt);
begin
    CursorPoint.X:= CursorPoint.X + x;
    CursorPoint.Y:= CursorPoint.Y - y;
end;

end.