]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/minigames/minigame/pong.qc
Minigames: capture and ignore key release events; it prevents triggering -* aliases...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / minigames / minigame / pong.qc
index 6b9b0480451a12758fc05c836f0702947319cde6..5ae108660a0db11df34c67ebc9ee0a2345fa797a 100644 (file)
@@ -620,24 +620,6 @@ int pong_client_event(entity minigame, string event, ...)
                        return false;
                }
                case "key_pressed":
-                       switch ( ...(0,int) )
-                       {
-                               case K_UPARROW:
-                               case K_KP_UPARROW:
-                               case K_LEFTARROW:
-                               case K_KP_LEFTARROW:
-                                       //minigame_cmd("+moved");
-                                       pong_keys_pressed |= PONG_KEY_DECREASE;
-                                       return true;
-                               case K_DOWNARROW:
-                               case K_KP_DOWNARROW:
-                               case K_RIGHTARROW:
-                               case K_KP_RIGHTARROW:
-                                       //minigame_cmd("+movei");
-                                       pong_keys_pressed |= PONG_KEY_INCREASE;
-                                       return true;
-                       }
-                       return false;
                case "key_released":
                        switch ( ...(0,int) )
                        {
@@ -645,15 +627,31 @@ int pong_client_event(entity minigame, string event, ...)
                                case K_KP_UPARROW:
                                case K_LEFTARROW:
                                case K_KP_LEFTARROW:
-                                       //minigame_cmd("-moved");
-                                       pong_keys_pressed &= ~PONG_KEY_DECREASE;
+                                       if (event == "key_pressed")
+                                       {
+                                               //minigame_cmd("+moved");
+                                               pong_keys_pressed |= PONG_KEY_DECREASE;
+                                       }
+                                       else
+                                       {
+                                               //minigame_cmd("-moved");
+                                               pong_keys_pressed &= ~PONG_KEY_DECREASE;
+                                       }
                                        return true;
                                case K_DOWNARROW:
                                case K_KP_DOWNARROW:
                                case K_RIGHTARROW:
                                case K_KP_RIGHTARROW:
-                                       //minigame_cmd("-movei");
-                                       pong_keys_pressed &= ~PONG_KEY_INCREASE;
+                                       if (event == "key_pressed")
+                                       {
+                                               //minigame_cmd("+movei");
+                                               pong_keys_pressed |= PONG_KEY_INCREASE;
+                                       }
+                                       else
+                                       {
+                                               //minigame_cmd("-movei");
+                                               pong_keys_pressed &= ~PONG_KEY_INCREASE;
+                                       }
                                        return true;
                        }
                        return false;