Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv17940/src
Modified Files:
defaults.c sound.c
Log Message:
Netrekrc option soundExclude to turn certain sound categories off.
Index: defaults.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/defaults.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- defaults.c 28 Feb 2007 12:21:50 -0000 1.47
+++ defaults.c 28 Feb 2007 13:01:17 -0000 1.48
@@ -1942,6 +1942,7 @@
struct dmacro_list *dm;
unsigned int i;
unsigned char c;
+ char *adefault;
char macroKey[3] = "";
if (!saveFile)
@@ -2125,6 +2126,21 @@
fputs ("\n", fp);
#ifdef SOUND
+ // excluded sound categories
+ if ((adefault = stringDefault ("soundExclude")) != NULL)
+ {
+ if (saveBig)
+ {
+ fputs ("# Sound categories to turn off\n", fp);
+ fputs ("# e=explosions, w=weapons, a=alerts,\n", fp);
+ fputs ("# m=messages, i=info, c=cloaking,\n", fp);
+ fputs ("# s=shield, o=other ships\n", fp);
+ }
+ sprintf (str, "soundExclude: %s\n", adefault);
+ fputs (str, fp);
+ if (saveBig)
+ fputs ("\n", fp);
+ }
// sound directory
if (sounddir != NULL)
{
@@ -2203,8 +2219,6 @@
// Window placements
if (saveWindow)
{
- char *adefault;
-
if (saveBig)
{
fputs ("# Window placements section\n", fp);
Index: sound.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/sound.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- sound.c 28 Feb 2007 12:21:50 -0000 1.31
+++ sound.c 28 Feb 2007 13:01:17 -0000 1.32
@@ -28,6 +28,7 @@
#include "proto.h"
static void soundrefresh (int i);
+static void Init_sound_flags (void);
static Mix_Chunk *sounds[NUM_WAVES];
static Mix_Music *music[NUM_MUSIC];
@@ -184,8 +185,8 @@
Mix_Volume(-1, volume);
Mix_VolumeMusic(mvolume);
- /* Set sound flags to on. TODO: use netrekrc values */
- sound_flags = SF_EXPLOSIONS|SF_WEAPONS|SF_ALERT|SF_MESSAGE|SF_INFO|SF_CLOAKING|SF_SHIELD|SF_OTHER;
+ /* Set sound flags */
+ Init_sound_flags();
/* Toggle on sound, and load sound files */
sound_toggle = 1;
@@ -201,6 +202,57 @@
}
}
+void Init_sound_flags(void)
+{
+ unsigned int i;
+ char *tmp;
+
+ /* Turn them all on first */
+ sound_flags = SF_EXPLOSIONS|SF_WEAPONS|SF_ALERT|SF_MESSAGE|SF_INFO|SF_CLOAKING|SF_SHIELD|SF_OTHER;
+
+ if ((tmp = stringDefault ("soundExclude")) != NULL)
+ {
+ for (i = 0; i < strlen (tmp); i++)
+ {
+ switch (tmp[i])
+ {
+ case 'E':
+ case 'e':
+ sound_flags &= ~(SF_EXPLOSIONS);
+ break;
+ case 'W':
+ case 'w':
+ sound_flags &= ~(SF_WEAPONS);
+ break;
+ case 'A':
+ case 'a':
+ sound_flags &= ~(SF_ALERT);
+ break;
+ case 'M':
+ case 'm':
+ sound_flags &= ~(SF_MESSAGE);
+ break;
+ case 'I':
+ case 'i':
+ sound_flags &= ~(SF_INFO);
+ break;
+ case 'C':
+ case 'c':
+ sound_flags &= ~(SF_CLOAKING);
+ break;
+ case 'S':
+ case 's':
+ sound_flags &= ~(SF_SHIELD);
+ break;
+ case 'O':
+ case 'o':
+ sound_flags &= ~(SF_OTHER);
+ break;
+ }
+ }
+ }
+}
+
extern void Play_Sound (int type, u_int flag)
{
int channel;