foxygit / doom Log in
commit bb3f64f28173bba0b243957c63679d2ec63dce5c
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Sat Jul 10 15:27:52 2010 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Sat Jul 10 15:27:52 2010 +0000

    Add key binding to change demo recording quit key.

    Subversion-branch: /trunk/chocolate-doom
    Subversion-revision: 1939
---
 setup/configfile.c | 1 +
 setup/keyboard.c   | 2 ++
 setup/keyboard.h   | 1 +
 src/g_game.c       | 3 ++-
 src/m_config.c     | 7 +++++++
 5 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/setup/configfile.c b/setup/configfile.c
index 99ec2e03..9f0e5de5 100644
--- a/setup/configfile.c
+++ b/setup/configfile.c
@@ -336,6 +336,7 @@ static default_t extra_defaults_list[] =
     {"key_weapon7",                 &key_weapon7, DEFAULT_KEY, 0, 0},
     {"key_weapon8",                 &key_weapon8, DEFAULT_KEY, 0, 0},
     {"key_message_refresh",         &key_message_refresh, DEFAULT_KEY, 0, 0},
+    {"key_demo_quit",               &key_demo_quit, DEFAULT_KEY, 0, 0},
 };

 static default_collection_t extra_defaults =
diff --git a/setup/keyboard.c b/setup/keyboard.c
index 79cb90e7..b402d10c 100644
--- a/setup/keyboard.c
+++ b/setup/keyboard.c
@@ -91,6 +91,7 @@ int key_weapon7        = '7';
 int key_weapon8        = '8';

 int key_message_refresh = KEY_ENTER;
+int key_demo_quit      = 'q';

 int vanilla_keyboard_mapping = 1;

@@ -273,6 +274,7 @@ static void OtherKeysDialog(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
     AddKeyControl(table, "Decrease screen size",  &key_menu_decscreen);

     AddKeyControl(table, "Display last message",  &key_message_refresh);
+    AddKeyControl(table, "Finish recording demo", &key_demo_quit);

     TXT_AddWidgets(table, TXT_NewStrut(0, 1),
                           TXT_NewStrut(0, 1),
diff --git a/setup/keyboard.h b/setup/keyboard.h
index fa3c0db3..62addc8f 100644
--- a/setup/keyboard.h
+++ b/setup/keyboard.h
@@ -91,6 +91,7 @@ extern int key_weapon7;
 extern int key_weapon8;

 extern int key_message_refresh;
+extern int key_demo_quit;

 void ConfigKeyboard(void);

diff --git a/src/g_game.c b/src/g_game.c
index b0532f42..a9ee2641 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -184,6 +184,7 @@ int             key_weapon7 = '7';
 int             key_weapon8 = '8';

 int             key_pause = KEY_PAUSE;
+int             key_demo_quit = 'q';

 int             mousebfire = 0;
 int             mousebstrafe = 1;
@@ -1846,7 +1847,7 @@ void G_WriteDemoTiccmd (ticcmd_t* cmd)
 {
     byte *demo_start;

-    if (gamekeydown['q'])           // press q to end demo recording
+    if (gamekeydown[key_demo_quit])           // press q to end demo recording
 	G_CheckDemoStatus ();

     demo_start = demo_p;
diff --git a/src/m_config.c b/src/m_config.c
index a2f3ac58..d0fe6808 100644
--- a/src/m_config.c
+++ b/src/m_config.c
@@ -149,6 +149,7 @@ extern int key_weapon7;
 extern int key_weapon8;

 extern int key_message_refresh;
+extern int key_demo_quit;

 extern int	mousebfire;
 extern int	mousebstrafe;
@@ -1041,6 +1042,12 @@ static default_t extra_defaults_list[] =
     //

     CONFIG_VARIABLE_KEY(key_message_refresh,       key_message_refresh),
+
+    //!
+    // Key to quit the game when recording a demo.
+    //
+
+    CONFIG_VARIABLE_KEY(key_demo_quit,             key_demo_quit),
 };

 static default_collection_t extra_defaults =