tExtra sounds added for game start/end and for players/bitches being killed; SoundEnable() function added to turn sound on/off. - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 6dc3d3791bec78ddd09166683de5148437cc2a23
(DIR) parent 39419ee5f38694de5515ed701079d43822dfcb41
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Fri, 16 Aug 2002 18:13:36 +0000
Extra sounds added for game start/end and for players/bitches being killed;
SoundEnable() function added to turn sound on/off.
Diffstat:
M src/curses_client/curses_client.c | 2 ++
M src/dopewars.c | 21 ++++++++++++++++++++-
M src/dopewars.h | 3 ++-
M src/gui_client/gtk_client.c | 2 ++
M src/message.c | 6 ++++++
M src/sound.c | 9 ++++++++-
M src/sound.h | 1 +
7 files changed, 41 insertions(+), 3 deletions(-)
---
(DIR) diff --git a/src/curses_client/curses_client.c b/src/curses_client/curses_client.c
t@@ -2111,6 +2111,7 @@ static void Curses_DoGame(Player *Play)
SendNullClientMessage(Play, C_NONE, C_NAME, NULL, buf);
g_free(buf);
g_free(OldName);
+ SoundPlay(Sounds.StartGame);
text = g_string_new("");
t@@ -2454,6 +2455,7 @@ void CursesLoop(struct CMDLINE *cmdline)
FirstClient = AddPlayer(0, Play, FirstClient);
do {
Curses_DoGame(Play);
+ SoundPlay(Sounds.EndGame);
ShutdownNetwork(Play);
CleanUpServer();
RestoreConfig();
(DIR) diff --git a/src/dopewars.c b/src/dopewars.c
t@@ -157,7 +157,8 @@ struct NAMES Names = {
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
struct SOUNDS Sounds = {
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL
};
/* N.B. The slightly over-enthusiastic comments here are for the benefit
t@@ -405,6 +406,18 @@ struct GLOBALS Globals[] = {
{NULL, NULL, NULL, &Sounds.FightReload, NULL, "Sounds.FightReload",
N_("Sound file played when guns are reloaded"), NULL, NULL, 0, "",
NULL, NULL, FALSE, 0},
+ {NULL, NULL, NULL, &Sounds.EnemyBitchKilled, NULL, "Sounds.EnemyBitchKilled",
+ N_("Sound file played when an enemy bitch/deputy is killed"),
+ NULL, NULL, 0, "", NULL, NULL, FALSE, 0},
+ {NULL, NULL, NULL, &Sounds.BitchKilled, NULL, "Sounds.BitchKilled",
+ N_("Sound file played when one of your bitches is killed"),
+ NULL, NULL, 0, "", NULL, NULL, FALSE, 0},
+ {NULL, NULL, NULL, &Sounds.EnemyKilled, NULL, "Sounds.EnemyKilled",
+ N_("Sound file played when another player or cop is killed"),
+ NULL, NULL, 0, "", NULL, NULL, FALSE, 0},
+ {NULL, NULL, NULL, &Sounds.Killed, NULL, "Sounds.Killed",
+ N_("Sound file played when you are killed"),
+ NULL, NULL, 0, "", NULL, NULL, FALSE, 0},
{NULL, NULL, NULL, &Sounds.Jet, NULL, "Sounds.Jet",
N_("Sound file played on arriving at a new location"), NULL, NULL, 0, "",
NULL, NULL, FALSE, 0},
t@@ -420,6 +433,12 @@ struct GLOBALS Globals[] = {
{NULL, NULL, NULL, &Sounds.LeaveGame, NULL, "Sounds.LeaveGame",
N_("Sound file played when a player leaves the game"),
NULL, NULL, 0, "", NULL, NULL, FALSE, 0},
+ {NULL, NULL, NULL, &Sounds.StartGame, NULL, "Sounds.StartGame",
+ N_("Sound file played at the start of the game"),
+ NULL, NULL, 0, "", NULL, NULL, FALSE, 0},
+ {NULL, NULL, NULL, &Sounds.EndGame, NULL, "Sounds.EndGame",
+ N_("Sound file played at the end of the game"),
+ NULL, NULL, 0, "", NULL, NULL, FALSE, 0},
{&DrugSortMethod, NULL, NULL, NULL, NULL, "DrugSortMethod",
N_("Sort key for listing available drugs"),
NULL, NULL, 0, "", NULL, NULL, FALSE, 0},
(DIR) diff --git a/src/dopewars.h b/src/dopewars.h
t@@ -91,7 +91,8 @@ struct NAMES {
struct SOUNDS {
gchar *FightHit, *FightMiss, *FightReload, *Jet, *TalkToAll, *TalkPrivate;
- gchar *JoinGame, *LeaveGame;
+ gchar *JoinGame, *LeaveGame, *StartGame, *EndGame;
+ gchar *EnemyBitchKilled, *BitchKilled, *EnemyKilled, *Killed;
};
#ifdef NETWORKING
(DIR) diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c
t@@ -1929,6 +1929,7 @@ void GuiStartGame(void)
UpdateMenus();
gtk_widget_show_all(ClientData.vbox);
UpdatePlayerLists();
+ SoundPlay(Sounds.StartGame);
}
void EndGame(void)
t@@ -1942,6 +1943,7 @@ void EndGame(void)
RestoreConfig();
InGame = FALSE;
UpdateMenus();
+ SoundPlay(Sounds.EndGame);
}
static void ChangeDrugSort(GtkCList *clist, gint column,
(DIR) diff --git a/src/message.c b/src/message.c
t@@ -1234,6 +1234,12 @@ void ReceiveFightMessage(gchar *Data, gchar **AttackName,
switch (*fp) {
case F_HIT:
SoundPlay(Sounds.FightHit);
+ if (*BitchesKilled > 0) {
+ SoundPlay(*DefendName[0] ? Sounds.EnemyBitchKilled : Sounds.BitchKilled);
+ }
+ if (*DefendHealth <= 0) {
+ SoundPlay(*DefendName[0] ? Sounds.EnemyKilled : Sounds.Killed);
+ }
break;
case F_MISS:
SoundPlay(Sounds.FightMiss);
(DIR) diff --git a/src/sound.c b/src/sound.c
t@@ -47,6 +47,7 @@
static SoundDriver *driver = NULL;
static GSList *driverlist = NULL;
typedef SoundDriver *(*InitFunc)(void);
+static gboolean sound_enabled = TRUE;
gchar *GetPluginList(void)
{
t@@ -194,6 +195,7 @@ void SoundOpen(gchar *drivername)
g_free(err);
}
}
+ sound_enabled = TRUE;
}
void SoundClose(void)
t@@ -221,7 +223,12 @@ void SoundClose(void)
void SoundPlay(const gchar *snd)
{
- if (driver && driver->play && snd && snd[0]) {
+ if (sound_enabled && driver && driver->play && snd && snd[0]) {
driver->play(snd);
}
}
+
+void SoundEnable(gboolean enable)
+{
+ sound_enabled = enable;
+}
(DIR) diff --git a/src/sound.h b/src/sound.h
t@@ -42,5 +42,6 @@ void SoundInit(void);
void SoundOpen(gchar *drivername);
void SoundClose(void);
void SoundPlay(const gchar *snd);
+void SoundEnable(gboolean enable);
#endif /* __DP_SOUND_H__ */