shithub: choc

Download patch

ref: a34de2cb06e1adcadf25591c020f11dfd34beb0c
parent: 7768cfde84316dc1181a30eabce731d6089e3cfd
author: Simon Howard <fraggle@gmail.com>
date: Wed Sep 20 14:06:34 EDT 2006

Add sound config dialog. Convert some of the mouse settings to use 
spin controls.

Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 636

--- a/setup/Makefile.am
+++ b/setup/Makefile.am
@@ -11,6 +11,7 @@
     display.c                                   \
     mouse.c                                     \
     multiplayer.c                               \
+    sound.c                                     \
     txt_keyinput.c    txt_keyinput.h            \
     txt_mouseinput.c  txt_mouseinput.h
 
--- a/setup/mainmenu.c
+++ b/setup/mainmenu.c
@@ -68,6 +68,7 @@
 extern void ConfigDisplay();
 extern void ConfigKeyboard();
 extern void ConfigMouse();
+extern void ConfigSound();
 extern void StartMultiGame();
 extern void MultiplayerConfig();
 
@@ -90,6 +91,10 @@
     button = TXT_NewButton("Configure mouse");
     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));
--- a/setup/mouse.c
+++ b/setup/mouse.c
@@ -90,11 +90,11 @@
 
     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);
     
--- /dev/null
+++ b/setup/sound.c
@@ -1,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);
+}
+