From 9d2a85f11fbab5536a9f99e6cbd659bce43f7f03 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Mon, 6 Jan 2025 16:01:48 +0300 Subject: [PATCH] engine: client: clear mouse state along with everything else in Key_ClearStates --- engine/client/keys.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/engine/client/keys.c b/engine/client/keys.c index 3ed787ee..c0088ad3 100644 --- a/engine/client/keys.c +++ b/engine/client/keys.c @@ -856,11 +856,12 @@ void GAME_EXPORT Key_ClearStates( void ) int i; // don't clear keys during changelevel - if( cls.changelevel ) return; + if( cls.changelevel ) + return; for( i = 0; i < 256; i++ ) { - if( keys[i].down ) + if( keys[i].down && i < K_MOUSE1 && i > K_MOUSE5 ) Key_Event( i, false ); keys[i].down = 0; @@ -868,6 +869,9 @@ void GAME_EXPORT Key_ClearStates( void ) keys[i].gamedown = 0; } + for( i = K_MOUSE1; i < K_MOUSE5; i++ ) // from K_MOUSE1 to K_MOUSE5 + IN_MouseEvent( i - K_MOUSE1, false ); + if( clgame.hInstance ) clgame.dllFuncs.IN_ClearStates(); }