diff options
Diffstat (limited to 'src/setup')
-rw-r--r-- | src/setup/keyboard.c | 30 | ||||
-rw-r--r-- | src/setup/mode.c | 20 | ||||
-rw-r--r-- | src/setup/sound.c | 20 |
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, |