]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/minigames/minigame/ps.qc
Minigames: fix mouse buttons acting on the current keyboard selection (if changed...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / minigames / minigame / ps.qc
index 7dc19ee63021a5b3849ba514af6c466a739483c0..c976819dc4dfe2afff2f4baf0cce03cb1ada5570 100644 (file)
@@ -543,13 +543,14 @@ int ps_client_event(entity minigame, string event, ...)
                case "key_pressed":
                case "key_released":
                {
-                       //if((minigame.minigame_flags & PS_TURN_TEAM) == minigame_self.team)
+                       bool event_blocked = (event == "key_released");
+                       if (!(minigame.minigame_flags & PS_TURN_WIN) && !(minigame.minigame_flags & PS_TURN_DRAW))
                        {
                                switch ( ...(0,int) )
                                {
                                        case K_RIGHTARROW:
                                        case K_KP_RIGHTARROW:
-                                               if (event == "key_released")
+                                               if (event_blocked)
                                                        return true;
                                                if ( ! ps_curr_pos )
                                                        ps_set_curr_pos("a3");
@@ -558,7 +559,7 @@ int ps_client_event(entity minigame, string event, ...)
                                                return true;
                                        case K_LEFTARROW:
                                        case K_KP_LEFTARROW:
-                                               if (event == "key_released")
+                                               if (event_blocked)
                                                        return true;
                                                if ( ! ps_curr_pos )
                                                        ps_set_curr_pos("c3");
@@ -567,7 +568,7 @@ int ps_client_event(entity minigame, string event, ...)
                                                return true;
                                        case K_UPARROW:
                                        case K_KP_UPARROW:
-                                               if (event == "key_released")
+                                               if (event_blocked)
                                                        return true;
                                                if ( ! ps_curr_pos )
                                                        ps_set_curr_pos("a1");
@@ -576,7 +577,7 @@ int ps_client_event(entity minigame, string event, ...)
                                                return true;
                                        case K_DOWNARROW:
                                        case K_KP_DOWNARROW:
-                                               if (event == "key_released")
+                                               if (event_blocked)
                                                        return true;
                                                if ( ! ps_curr_pos )
                                                        ps_set_curr_pos("a3");
@@ -586,7 +587,7 @@ int ps_client_event(entity minigame, string event, ...)
                                        case K_ENTER:
                                        case K_KP_ENTER:
                                        case K_SPACE:
-                                               if (event == "key_released")
+                                               if (event_blocked)
                                                        return true;
                                                ps_make_move(minigame);
                                                return true;
@@ -599,6 +600,7 @@ int ps_client_event(entity minigame, string event, ...)
                {
                        if(...(0,int) == K_MOUSE1)
                        {
+                               ps_client_event(minigame, "mouse_moved");
                                ps_make_move(minigame);
                                return true;
                        }