shithub: choc

Download patch

ref: 6e9b549b678a6b8abfedeab62e93214ccb4f08ac
parent: f742664b920500cb7343ee40338ab6add6acb9a2
author: Simon Howard <[email protected]>
date: Sat Sep 24 14:31:57 EDT 2011

Don't allow menu actions when running with -testcontrols. Quit
immediately when pressing the window close button.

Subversion-branch: /branches/v2-branch
Subversion-revision: 2400

--- a/src/doom/m_menu.c
+++ b/src/doom/m_menu.c
@@ -1428,6 +1428,22 @@
     static  int     mousex = 0;
     static  int     lastx = 0;
 
+    // In testcontrols mode, none of the function keys should do anything
+    // - the only key is escape to quit.
+
+    if (testcontrols)
+    {
+        if (ev->type == ev_quit
+         || (ev->type == ev_keydown
+          && (ev->data1 == key_menu_activate || ev->data1 == key_menu_quit)))
+        {
+            I_Quit();
+            return true;
+        }
+
+        return false;
+    }
+
     // "close" button pressed on window?
     if (ev->type == ev_quit)
     {
@@ -1533,20 +1549,6 @@
     if (key == -1)
 	return false;
 
-    // In testcontrols mode, none of the function keys should do anything
-    // - the only key is escape to quit.
-
-    if (testcontrols)
-    {
-        if (key == key_menu_activate || key == key_menu_quit)
-        {
-            I_Quit();
-            return true;
-        }
-
-        return false;
-    }
-    
     // Save Game string input
     if (saveStringEnter)
     {
--- a/src/heretic/mn_menu.c
+++ b/src/heretic/mn_menu.c
@@ -1046,6 +1046,9 @@
     extern void G_CheckDemoStatus(void);
     char *textBuffer;
 
+    // In testcontrols mode, none of the function keys should do anything
+    // - the only key is escape to quit.
+
     if (testcontrols)
     {
         if (event->type == ev_quit
@@ -1056,6 +1059,8 @@
             I_Quit();
             return true;
         }
+
+        return false;
     }
 
     // "close" button pressed on window?
--- a/src/hexen/mn_menu.c
+++ b/src/hexen/mn_menu.c
@@ -1142,6 +1142,9 @@
     extern void G_CheckDemoStatus(void);
     char *textBuffer;
 
+    // In testcontrols mode, none of the function keys should do anything
+    // - the only key is escape to quit.
+
     if (testcontrols)
     {
         if (event->type == ev_quit
@@ -1152,6 +1155,8 @@
             I_Quit();
             return true;
         }
+
+        return false;
     }
 
     // "close" button pressed on window?
--- a/src/strife/m_menu.c
+++ b/src/strife/m_menu.c
@@ -1667,6 +1667,22 @@
     static  int     mousex = 0;
     static  int     lastx = 0;
 
+    // In testcontrols mode, none of the function keys should do anything
+    // - the only key is escape to quit.
+
+    if (testcontrols)
+    {
+        if (ev->type == ev_quit
+         || (ev->type == ev_keydown
+          && (ev->data1 == key_menu_activate || ev->data1 == key_menu_quit)))
+        {
+            I_Quit();
+            return true;
+        }
+
+        return false;
+    }
+
     // "close" button pressed on window?
     if (ev->type == ev_quit)
     {
@@ -1773,20 +1789,6 @@
     if (key == -1)
         return false;
 
-    // In testcontrols mode, none of the function keys should do anything
-    // - the only key is escape to quit.
-
-    if (testcontrols)
-    {
-        if (key == key_menu_activate || key == key_menu_quit)
-        {
-            I_Quit();
-            return true;
-        }
-
-        return false;
-    }
-    
     // Save Game string input
     if (saveStringEnter)
     {