diff --git a/port/src/input.c b/port/src/input.c index 021d0e61f..3106fc633 100644 --- a/port/src/input.c +++ b/port/src/input.c @@ -727,6 +727,20 @@ void inputMouseGetScaledDelta(f32 *dx, f32 *dy) if (dy) *dy = mdy; } +void inputMouseGetScaledDeltaAbsSens(f32 *dx, f32 *dy) +{ + f32 mdx, mdy; + if (mouseLocked) { + mdx = fabsf(mouseSensX) * (f32)mouseDX / 100.0f; + mdy = fabsf(mouseSensY) * (f32)mouseDY / 100.0f; + } else { + mdx = 0.f; + mdy = 0.f; + } + if (dx) *dx = mdx; + if (dy) *dy = mdy; +} + const char *inputGetContKeyName(u32 ck) { if (ck >= CK_TOTAL_COUNT) { diff --git a/src/game/activemenutick.c b/src/game/activemenutick.c index cd683a014..656c45a77 100644 --- a/src/game/activemenutick.c +++ b/src/game/activemenutick.c @@ -70,7 +70,7 @@ void amTick(void) if (j == 0 && g_Vars.currentplayernum == 0 && inputMouseIsLocked()) { f32 mdx, mdy; struct activemenu *am = &g_AmMenus[g_AmIndex]; - inputMouseGetScaledDelta(&mdx, &mdy); + inputMouseGetScaledDeltaAbsSens(&mdx, &mdy); if (mdx || mdy) { am->mousex += mdx * 4.f; am->mousey += mdy * 4.f;