ref: d894fd58581043c0df6ce443e7da43efe35a0d22
parent: 74f35cea774703bd9cd68e386facf365faba71d6
author: Simon Howard <fraggle@soulsphere.org>
date: Sat Jun 4 20:07:20 EDT 2016
setup: Use conditionals for sound dialog. Conditionally hide parts of the sound config dialog based on which sfx/music modes we are using. This hides some of the clutter of the interface.
--- a/src/setup/sound.c
+++ b/src/setup/sound.c
@@ -121,6 +121,10 @@
window = TXT_NewWindow("Sound configuration");
TXT_SetWindowHelpURL(window, WINDOW_HELP_URL);
+ TXT_SetColumnWidths(window, 40);
+ TXT_SetWindowPosition(window, TXT_HORIZ_CENTER, TXT_VERT_TOP,
+ TXT_SCREEN_W / 2, 3);
+
TXT_AddWidgets(window,
TXT_NewSeparator("Sound effects"),
TXT_NewRadioButton("Disabled", &snd_sfxdevice, SNDDEVICE_NONE),
@@ -129,60 +133,59 @@
TXT_NewRadioButton("Digital sound effects",
&snd_sfxdevice,
SNDDEVICE_SB),
- NULL);
+ TXT_If(gamemission == doom || gamemission == heretic
+ || gamemission == hexen,
+ TXT_NewConditional(&snd_sfxdevice, SNDDEVICE_SB,
+ TXT_NewHorizBox(
+ TXT_NewStrut(4, 0),
+ TXT_NewCheckBox("Pitch-shifted sounds", &snd_pitchshift),
+ NULL))),
+ TXT_If(gamemission == strife,
+ TXT_NewConditional(&snd_sfxdevice, SNDDEVICE_SB,
+ TXT_NewHorizBox(
+ TXT_NewStrut(4, 0),
+ TXT_NewCheckBox("Show text with voices", &show_talk),
+ NULL))),
- // Only show for games that implemented pitch shifting:
- if (gamemission == doom || gamemission == heretic || gamemission == hexen)
- {
- TXT_AddWidget(window,
- TXT_NewHorizBox(
- TXT_NewStrut(4, 0),
- TXT_NewCheckBox("Pitch-shifted sounds", &snd_pitchshift),
- NULL));
- }
-
- if (gamemission == strife)
- {
- TXT_AddWidget(window,
- TXT_NewHorizBox(
- TXT_NewStrut(4, 0),
- TXT_NewCheckBox("Show text with voices", &show_talk),
- NULL));
- }
-
- TXT_AddWidgets(window,
TXT_NewSeparator("Music"),
TXT_NewRadioButton("Disabled", &snd_musicdevice, SNDDEVICE_NONE),
TXT_NewRadioButton("OPL (Adlib/Soundblaster)", &snd_musicdevice,
SNDDEVICE_ADLIB),
- TXT_NewHorizBox(
- TXT_NewStrut(4, 0),
- TXT_NewLabel("Chip type: "),
- OPLTypeSelector(),
- NULL),
+ TXT_NewConditional(&snd_musicdevice, SNDDEVICE_ADLIB,
+ TXT_NewHorizBox(
+ TXT_NewStrut(4, 0),
+ TXT_NewLabel("Chip type: "),
+ OPLTypeSelector(),
+ NULL)),
TXT_NewRadioButton("GUS (emulated)", &snd_musicdevice, SNDDEVICE_GUS),
- TXT_NewHorizBox(
- TXT_NewStrut(4, 0),
- TXT_NewLabel("Path to patch files: "),
- NULL),
- TXT_NewHorizBox(
- TXT_NewStrut(4, 0),
- TXT_NewFileSelector(&gus_patch_path, 34,
- "Select path to GUS patches", TXT_DIRECTORY),
- NULL),
+ TXT_NewConditional(&snd_musicdevice, SNDDEVICE_GUS,
+ TXT_NewHorizBox(
+ TXT_NewStrut(4, 0),
+ TXT_NewLabel("Path to patch files: "),
+ NULL)),
+ TXT_NewConditional(&snd_musicdevice, SNDDEVICE_GUS,
+ TXT_NewHorizBox(
+ TXT_NewStrut(4, 0),
+ TXT_NewFileSelector(&gus_patch_path, 34,
+ "Select path to GUS patches",
+ TXT_DIRECTORY),
+ NULL)),
TXT_NewRadioButton("Native MIDI", &snd_musicdevice, SNDDEVICE_GENMIDI),
- TXT_NewHorizBox(
- TXT_NewStrut(4, 0),
- TXT_NewLabel("Timidity configuration file: "),
- NULL),
- TXT_NewHorizBox(
- TXT_NewStrut(4, 0),
- TXT_NewFileSelector(&timidity_cfg_path, 34,
- "Select Timidity config file", cfg_extension),
- NULL),
+ TXT_NewConditional(&snd_musicdevice, SNDDEVICE_GENMIDI,
+ TXT_NewHorizBox(
+ TXT_NewStrut(4, 0),
+ TXT_NewLabel("Timidity configuration file: "),
+ NULL)),
+ TXT_NewConditional(&snd_musicdevice, SNDDEVICE_GENMIDI,
+ TXT_NewHorizBox(
+ TXT_NewStrut(4, 0),
+ TXT_NewFileSelector(&timidity_cfg_path, 34,
+ "Select Timidity config file",
+ cfg_extension),
+ NULL)),
NULL);
}