summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Howard2008-09-23 17:54:13 +0000
committerSimon Howard2008-09-23 17:54:13 +0000
commit350fe185784d6d0350ed8b675630440ff425a6ca (patch)
tree2d5f3415d193bd72e72a0b0a435a6204f6be8477
parent69b0c4526e6f2d6fe6920f1efa3b32e27b3db0bc (diff)
downloadchocolate-doom-350fe185784d6d0350ed8b675630440ff425a6ca.tar.gz
chocolate-doom-350fe185784d6d0350ed8b675630440ff425a6ca.tar.bz2
chocolate-doom-350fe185784d6d0350ed8b675630440ff425a6ca.zip
Add heretic key controls to config file list. Add key binding code to
heretic/d_main.c and change g_game.c to use the common definitions. Subversion-branch: /branches/raven-branch Subversion-revision: 1265
-rw-r--r--src/heretic/ct_chat.h8
-rw-r--r--src/heretic/d_main.c33
-rw-r--r--src/heretic/g_game.c16
-rw-r--r--src/m_config.c54
-rw-r--r--src/m_controls.c31
-rw-r--r--src/m_controls.h11
6 files changed, 138 insertions, 15 deletions
diff --git a/src/heretic/ct_chat.h b/src/heretic/ct_chat.h
index 326f65cb..eee7e6ce 100644
--- a/src/heretic/ct_chat.h
+++ b/src/heretic/ct_chat.h
@@ -24,6 +24,9 @@
// Chat mode stuff
//
+#ifndef HERETIC_CT_CHAT_H
+#define HERETIC_CT_CHAT_H
+
#define CT_PLR_GREEN 1
#define CT_PLR_YELLOW 2
#define CT_PLR_RED 3
@@ -35,3 +38,8 @@
#define CT_KEY_RED 'r'
#define CT_KEY_BLUE 'b'
#define CT_KEY_ALL 't'
+
+extern char *chat_macros[10];
+
+#endif /* #ifndef HERETIC_CT_CHAT_H */
+
diff --git a/src/heretic/d_main.c b/src/heretic/d_main.c
index 6107ba16..6797ace1 100644
--- a/src/heretic/d_main.c
+++ b/src/heretic/d_main.c
@@ -26,9 +26,13 @@
#include <stdio.h>
#include <stdlib.h>
+#include "ct_chat.h"
#include "doomdef.h"
+#include "i_system.h"
#include "i_video.h"
#include "m_argv.h"
+#include "m_config.h"
+#include "m_controls.h"
#include "p_local.h"
#include "s_sound.h"
#include "v_video.h"
@@ -702,6 +706,35 @@ void CleanExit(void)
}
#endif
+//
+// Add configuration file variable bindings.
+//
+
+void D_BindVariables(void)
+{
+ extern int screenblocks;
+ extern int snd_Channels;
+ int i;
+
+ I_BindVariables();
+ M_BindBaseControls();
+ M_BindHereticControls();
+
+ M_BindVariable("mouse_sensitivity", &mouseSensitivity);
+ M_BindVariable("sfx_volume", &snd_MaxVolume);
+ M_BindVariable("music_volume", &snd_MusicVolume);
+ M_BindVariable("screenblocks", &screenblocks);
+ M_BindVariable("snd_channels", &snd_Channels);
+
+ for (i=0; i<10; ++i)
+ {
+ char buf[12];
+
+ sprintf(buf, "chatmacro%i", i);
+ M_BindVariable(buf, &chat_macros[i]);
+ }
+}
+
//---------------------------------------------------------------------------
//
// PROC D_DoomMain
diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c
index 59be2f87..83279a2e 100644
--- a/src/heretic/g_game.c
+++ b/src/heretic/g_game.c
@@ -29,6 +29,7 @@
#include "doomkeys.h"
#include "i_timer.h"
#include "i_system.h"
+#include "m_controls.h"
#include "m_misc.h"
#include "m_random.h"
#include "p_local.h"
@@ -134,21 +135,6 @@ byte *savebuffer, *save_p;
//
// controls (have defaults)
//
-int key_right, key_left, key_up, key_down;
-int key_strafeleft, key_straferight;
-int key_fire, key_use, key_strafe, key_speed;
-int key_flyup, key_flydown, key_flycenter;
-int key_lookup, key_lookdown, key_lookcenter;
-int key_invleft, key_invright, key_useartifact;
-
-int mousebfire;
-int mousebstrafe;
-int mousebforward;
-
-int joybfire;
-int joybstrafe;
-int joybuse;
-int joybspeed;
diff --git a/src/m_config.c b/src/m_config.c
index 513c3a2c..a4451569 100644
--- a/src/m_config.c
+++ b/src/m_config.c
@@ -174,6 +174,60 @@ static default_t doom_defaults_list[] =
CONFIG_VARIABLE_KEY(key_straferight),
//!
+ // Keyboard key to fly upward.
+ //
+
+ CONFIG_VARIABLE_KEY(key_flyup),
+
+ //!
+ // Keyboard key to fly downwards.
+ //
+
+ CONFIG_VARIABLE_KEY(key_flydown),
+
+ //!
+ // Keyboard key to center flying.
+ //
+
+ CONFIG_VARIABLE_KEY(key_flycenter),
+
+ //!
+ // Keyboard key to look up.
+ //
+
+ CONFIG_VARIABLE_KEY(key_lookup),
+
+ //!
+ // Keyboard key to look down.
+ //
+
+ CONFIG_VARIABLE_KEY(key_lookdown),
+
+ //!
+ // Keyboard key to center the view.
+ //
+
+ CONFIG_VARIABLE_KEY(key_lookcenter),
+
+ //!
+ // Keyboard key to scroll left in the inventory.
+ //
+
+ CONFIG_VARIABLE_KEY(key_invleft),
+
+ //!
+ // Keyboard key to scroll right in the inventory.
+ //
+
+ CONFIG_VARIABLE_KEY(key_invright),
+
+ //!
+ // Keyboard key to use the current item in the inventory.
+ //
+
+ CONFIG_VARIABLE_KEY(key_useartifact),
+
+ //!
// Keyboard key to fire the currently selected weapon.
//
diff --git a/src/m_controls.c b/src/m_controls.c
index 9b81d9c3..1d57c4cc 100644
--- a/src/m_controls.c
+++ b/src/m_controls.c
@@ -41,7 +41,23 @@ int key_fire = KEY_RCTRL;
int key_use = ' ';
int key_strafe = KEY_RALT;
int key_speed = KEY_RSHIFT;
+
+//
+// Heretic keyboard controls
+//
+int key_flyup = KEY_PGUP;
+int key_flydown = KEY_INS;
+int key_flycenter = KEY_HOME;
+
+int key_lookup = KEY_PGDN;
+int key_lookdown = KEY_DEL;
+int key_lookcenter = KEY_END;
+
+int key_invleft = '[';
+int key_invright = ']';
+int key_useartifact = KEY_ENTER;
+
//
// Mouse controls
//
@@ -116,3 +132,18 @@ void M_BindBaseControls(void)
M_BindVariable("novert", &novert);
}
+void M_BindHereticControls(void)
+{
+ M_BindVariable("key_flyup", &key_flyup);
+ M_BindVariable("key_flydown", &key_flydown);
+ M_BindVariable("key_flycenter", &key_flycenter);
+
+ M_BindVariable("key_lookup", &key_lookup);
+ M_BindVariable("key_lookdown", &key_lookdown);
+ M_BindVariable("key_lookcenter", &key_lookcenter);
+
+ M_BindVariable("key_invleft", &key_invleft);
+ M_BindVariable("key_invright", &key_invright);
+ M_BindVariable("key_useartifact", &key_useartifact);
+}
+
diff --git a/src/m_controls.h b/src/m_controls.h
index 93cc6f5b..18e07db8 100644
--- a/src/m_controls.h
+++ b/src/m_controls.h
@@ -35,6 +35,16 @@ extern int key_fire;
extern int key_use;
extern int key_strafe;
extern int key_speed;
+
+extern int key_flyup;
+extern int key_flydown;
+extern int key_flycenter;
+extern int key_lookup;
+extern int key_lookdown;
+extern int key_lookcenter;
+extern int key_invleft;
+extern int key_invright;
+extern int key_useartifact;
extern int mousebfire;
extern int mousebstrafe;
@@ -56,6 +66,7 @@ extern int dclick_use;
extern int novert;
void M_BindBaseControls(void);
+void M_BindHereticControls(void);
#endif /* #ifndef __M_CONTROLS_H__ */