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:
parent
9b3728d878
commit
60f722b0a9
10
extern/sdl4ogre/sdlinputwrapper.cpp
vendored
10
extern/sdl4ogre/sdlinputwrapper.cpp
vendored
@ -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)
|
||||
{
|
||||
|
2
extern/sdl4ogre/sdlinputwrapper.hpp
vendored
2
extern/sdl4ogre/sdlinputwrapper.hpp
vendored
@ -71,6 +71,8 @@ namespace SFO
|
||||
bool mGrabPointer;
|
||||
bool mMouseRelative;
|
||||
|
||||
bool mFirstMouseMove;
|
||||
|
||||
Sint32 mMouseZ;
|
||||
Sint32 mMouseX;
|
||||
Sint32 mMouseY;
|
||||
|
Loading…
Reference in New Issue
Block a user