summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--setup/Makefile.am1
-rw-r--r--setup/mainmenu.c5
-rw-r--r--setup/mouse.c6
-rw-r--r--setup/sound.c79
4 files changed, 88 insertions, 3 deletions
diff --git a/setup/Makefile.am b/setup/Makefile.am
index cb01df69..b3af951f 100644
--- a/setup/Makefile.am
+++ b/setup/Makefile.am
@@ -11,6 +11,7 @@ chocolate_setup_SOURCES = \
display.c \
mouse.c \
multiplayer.c \
+ sound.c \
txt_keyinput.c txt_keyinput.h \
txt_mouseinput.c txt_mouseinput.h
diff --git a/setup/mainmenu.c b/setup/mainmenu.c
index e73a8eb2..0d02a19b 100644
--- a/setup/mainmenu.c
+++ b/setup/mainmenu.c
@@ -68,6 +68,7 @@ void QuitConfirm(void *unused1, void *unused2)
extern void ConfigDisplay();
extern void ConfigKeyboard();
extern void ConfigMouse();
+extern void ConfigSound();
extern void StartMultiGame();
extern void MultiplayerConfig();
@@ -91,6 +92,10 @@ void MainMenu(void)
TXT_AddWidget(window, button);
TXT_SignalConnect(button, "pressed", ConfigMouse, NULL);
+ button = TXT_NewButton("Configure sound");
+ TXT_AddWidget(window, button);
+ TXT_SignalConnect(button, "pressed", ConfigSound, NULL);
+
TXT_AddWidget(window, TXT_NewButton("Save parameters and launch DOOM"));
TXT_AddWidget(window, TXT_NewStrut(0, 1));
diff --git a/setup/mouse.c b/setup/mouse.c
index 86a5ad74..b8eeaff6 100644
--- a/setup/mouse.c
+++ b/setup/mouse.c
@@ -90,11 +90,11 @@ void ConfigMouse(void)
TXT_SetColumnWidths(table, 25, 10);
TXT_AddWidget(table, TXT_NewLabel("Speed"));
- TXT_AddWidget(table, TXT_NewIntInputBox(&speed, 8));
+ TXT_AddWidget(table, TXT_NewSpinControl(&speed, 1, 256));
TXT_AddWidget(table, TXT_NewLabel("Acceleration"));
- TXT_AddWidget(table, TXT_NewIntInputBox(&accel, 8));
+ TXT_AddWidget(table, TXT_NewSpinControl(&accel, 1, 5));
TXT_AddWidget(table, TXT_NewLabel("Acceleration threshold"));
- TXT_AddWidget(table, TXT_NewIntInputBox(&threshold, 8));
+ TXT_AddWidget(table, TXT_NewSpinControl(&threshold, 0, 32));
TXT_AddWidget(window, table);
diff --git a/setup/sound.c b/setup/sound.c
new file mode 100644
index 00000000..0e8869d4
--- /dev/null
+++ b/setup/sound.c
@@ -0,0 +1,79 @@
+// Emacs style mode select -*- C++ -*-
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 2006 Simon Howard
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+
+// Sound control menu
+
+#include <stdlib.h>
+
+#include "textscreen.h"
+
+int snd_sfxenabled;
+int snd_channels = 8;
+int sfx_volume = 15;
+
+int snd_musicenabled;
+int music_volume = 15;
+
+void ConfigSound(void)
+{
+ txt_window_t *window;
+ txt_table_t *table;
+ txt_checkbox_t *checkbox;
+ txt_spincontrol_t *spincontrol;
+
+ window = TXT_NewWindow("Sound configuration");
+
+ TXT_AddWidget(window, TXT_NewSeparator("Sound effects"));
+
+ checkbox = TXT_NewCheckBox("Sound effects enabled", &snd_sfxenabled);
+ TXT_AddWidget(window, checkbox);
+
+ table = TXT_NewTable(2);
+ TXT_SetColumnWidths(table, 20, 5);
+
+ TXT_AddWidget(table, TXT_NewLabel("Sound channels"));
+
+ spincontrol = TXT_NewSpinControl(&snd_channels, 1, 8);
+ TXT_AddWidget(table, spincontrol);
+
+ TXT_AddWidget(table, TXT_NewLabel("SFX volume"));
+
+ spincontrol = TXT_NewSpinControl(&sfx_volume, 0, 15);
+ TXT_AddWidget(table, spincontrol);
+
+ TXT_AddWidget(window, table);
+
+ TXT_AddWidget(window, TXT_NewSeparator("Music"));
+
+ checkbox = TXT_NewCheckBox("Music enabled", &snd_musicenabled);
+ TXT_AddWidget(window, checkbox);
+
+ table = TXT_NewTable(2);
+ TXT_SetColumnWidths(table, 20, 5);
+
+ TXT_AddWidget(table, TXT_NewLabel("Music volume"));
+
+ spincontrol = TXT_NewSpinControl(&music_volume, 0, 15);
+ TXT_AddWidget(table, spincontrol);
+
+ TXT_AddWidget(window, table);
+}
+