1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-03 17:37:18 +00:00

Treat the first mouse motion event as non-relative

This fixes incorrect starting camera orientation when using --skip-menu or --load-savegame.
This commit is contained in:
scrawl 2015-01-24 17:28:05 +01:00
parent 9b3728d878
commit 60f722b0a9
2 changed files with 11 additions and 1 deletions

View File

@ -30,7 +30,8 @@ namespace SFO
mWantMouseVisible(false),
mAllowGrab(grab),
mWarpX(0),
mWarpY(0)
mWarpY(0),
mFirstMouseMove(true)
{
_setupOISKeys();
}
@ -316,6 +317,13 @@ namespace SFO
pack_evt.y = mMouseY = evt.motion.y;
pack_evt.xrel = evt.motion.xrel;
pack_evt.yrel = evt.motion.yrel;
if (mFirstMouseMove)
{
// first event should be treated as non-relative, since there's no point of reference
// SDL then (incorrectly) uses (0,0) as point of reference, on Linux at least...
pack_evt.xrel = pack_evt.yrel = 0;
mFirstMouseMove = false;
}
}
else if(evt.type == SDL_MOUSEWHEEL)
{

View File

@ -71,6 +71,8 @@ namespace SFO
bool mGrabPointer;
bool mMouseRelative;
bool mFirstMouseMove;
Sint32 mMouseZ;
Sint32 mMouseX;
Sint32 mMouseY;