author | sheepluva |
Tue, 22 Jun 2021 22:13:55 +0200 | |
changeset 15802 | d5c37e78ab83 |
parent 14809 | c2793ff4e887 |
permissions | -rw-r--r-- |
{$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.