summaryrefslogtreecommitdiff
path: root/src/setup
diff options
context:
space:
mode:
Diffstat (limited to 'src/setup')
-rw-r--r--src/setup/keyboard.c30
-rw-r--r--src/setup/mode.c20
-rw-r--r--src/setup/sound.c20
3 files changed, 62 insertions, 8 deletions
diff --git a/src/setup/keyboard.c b/src/setup/keyboard.c
index 3d9f9977..7ee523bb 100644
--- a/src/setup/keyboard.c
+++ b/src/setup/keyboard.c
@@ -39,11 +39,13 @@ static int always_run = 0;
static int *controls[] = { &key_left, &key_right, &key_up, &key_down,
&key_strafeleft, &key_straferight, &key_fire,
- &key_use, &key_strafe, &key_speed, &key_jump,
+ &key_use, &key_strafe, &key_speed, &key_jump,
&key_flyup, &key_flydown, &key_flycenter,
&key_lookup, &key_lookdown, &key_lookcenter,
- &key_invleft, &key_invright, &key_useartifact,
- &key_pause,
+ &key_invleft, &key_invright, &key_invquery,
+ &key_invuse, &key_invpop, &key_invkey,
+ &key_invhome, &key_invend, &key_invdrop,
+ &key_useartifact, &key_pause, &key_usehealth,
&key_weapon1, &key_weapon2, &key_weapon3,
&key_weapon4, &key_weapon5, &key_weapon6,
&key_weapon7, &key_weapon8,
@@ -174,7 +176,9 @@ static void ConfigExtraKeys(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
txt_window_t *window;
txt_scrollpane_t *scrollpane;
txt_table_t *table;
- boolean extra_keys = gamemission == heretic || gamemission == hexen;
+ boolean extra_keys = gamemission == heretic
+ || gamemission == hexen
+ || gamemission == strife;
window = TXT_NewWindow("Extra keyboard controls");
@@ -205,7 +209,23 @@ static void ConfigExtraKeys(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
AddKeyControl(table, "Inventory left", &key_invleft);
AddKeyControl(table, "Inventory right", &key_invright);
- AddKeyControl(table, "Use artifact", &key_useartifact);
+
+ if (gamemission == strife)
+ {
+ AddKeyControl(table, "Home", &key_invhome);
+ AddKeyControl(table, "End", &key_invend);
+ AddKeyControl(table, "Query", &key_invquery);
+ AddKeyControl(table, "Drop", &key_invdrop);
+ AddKeyControl(table, "PopWeap", &key_invpop);
+ AddKeyControl(table, "PopMiss", &key_mission);
+ AddKeyControl(table, "PopKey", &key_invkey);
+ AddKeyControl(table, "Use", &key_invuse);
+ AddKeyControl(table, "Use health", &key_usehealth);
+ }
+ else
+ {
+ AddKeyControl(table, "Use artifact", &key_useartifact);
+ }
}
else
{
diff --git a/src/setup/mode.c b/src/setup/mode.c
index 702db67d..3852db25 100644
--- a/src/setup/mode.c
+++ b/src/setup/mode.c
@@ -91,6 +91,15 @@ static mission_config_t mission_configs[] =
"hexen.cfg",
PROGRAM_PREFIX "hexen.cfg",
PROGRAM_PREFIX "hexen"
+ },
+ {
+ "Strife",
+ strife,
+ IWAD_MASK_STRIFE,
+ "strife",
+ "strife.cfg",
+ PROGRAM_PREFIX "strife.cfg",
+ PROGRAM_PREFIX "strife"
}
};
@@ -103,6 +112,7 @@ static int screenblocks = 9;
static int detailLevel = 0;
static char *savedir = NULL;
static char *executable = NULL;
+static char *back_flat = "F_PAVE01";
static void BindMiscVariables(void)
{
@@ -119,6 +129,11 @@ static void BindMiscVariables(void)
M_BindVariable("savedir", &savedir);
M_BindVariable("messageson", &showMessages);
}
+
+ if (gamemission == strife)
+ {
+ M_BindVariable("back_flat", &back_flat);
+ }
}
//
@@ -146,6 +161,11 @@ void InitBindings(void)
M_BindHexenControls();
}
+ if (gamemission == strife)
+ {
+ M_BindStrifeControls();
+ }
+
// All other variables
BindCompatibilityVariables();
diff --git a/src/setup/sound.c b/src/setup/sound.c
index 627549b5..d8dc129e 100644
--- a/src/setup/sound.c
+++ b/src/setup/sound.c
@@ -74,6 +74,7 @@ int opl_io_port = 0x388;
static int numChannels = 8;
static int sfxVolume = 15;
static int musicVolume = 15;
+static int voiceVolume = 15;
static int use_libsamplerate = 0;
// DOS specific variables: these are unused but should be maintained
@@ -212,6 +213,14 @@ void ConfigSound(void)
TXT_NewSpinControl(&sfxVolume, 0, 15),
NULL);
+ if (gamemission == strife)
+ {
+ TXT_AddWidgets(sfx_table,
+ TXT_NewLabel("Voice volume"),
+ TXT_NewSpinControl(&voiceVolume, 0, 15),
+ NULL);
+ }
+
TXT_SetColumnWidths(music_table, 20, 14);
TXT_AddWidgets(music_table,
@@ -238,9 +247,14 @@ void BindSoundVariables(void)
M_BindVariable("use_libsamplerate", &use_libsamplerate);
M_BindVariable("snd_sbport", &snd_sbport);
- M_BindVariable("snd_sbirq", &snd_sbirq);
- M_BindVariable("snd_sbdma", &snd_sbdma);
- M_BindVariable("snd_mport", &snd_mport);
+ M_BindVariable("snd_sbirq", &snd_sbirq);
+ M_BindVariable("snd_sbdma", &snd_sbdma);
+ M_BindVariable("snd_mport", &snd_mport);
+
+ if (gamemission == strife)
+ {
+ M_BindVariable("voice_volume", &voiceVolume);
+ }
// Before SDL_mixer version 1.2.11, MIDI music caused the game
// to crash when it looped. If this is an old SDL_mixer version,