From 5cf6ca5270a038b22e1be4a45434f6320f23ed02 Mon Sep 17 00:00:00 2001 From: deskull Date: Sat, 8 Feb 2014 08:34:26 +0000 Subject: [PATCH] Add init_music() for implementing BGM. --- src/defines.h | 4 ++-- src/externs.h | 1 + src/main-win.c | 31 +++++++++++++++++++++++++++++-- src/variable.c | 10 ++++++++++ 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/defines.h b/src/defines.h index 60dc9e3f8..7f4add0d4 100644 --- a/src/defines.h +++ b/src/defines.h @@ -4587,12 +4587,12 @@ extern int PlayerUID; /* * Mega-Hack -- maximum known sounds */ -#define MUSIC_MAX 66 /*!< BGMÄêµÁ¤ÎºÇÂç¿ô */ +#define MUSIC_BASIC_MAX 3 /*!< BGMÄêµÁ¤ÎºÇÂç¿ô */ #define SOUND_MAX 66 /*!< ¸ú²Ì²»ÄêµÁ¤ÎºÇÂç¿ô */ #define MAX_VIRTUE 18 /*!< ÆÁÄêµÁ¤ÎºÇÂç¿ô */ -#define V_COMPASSION 1 +#define V_COMPASSION 1 #define V_HONOUR 2 #define V_JUSTICE 3 #define V_SACRIFICE 4 diff --git a/src/externs.h b/src/externs.h index fb34b2716..75e14a00e 100644 --- a/src/externs.h +++ b/src/externs.h @@ -444,6 +444,7 @@ extern term *angband_term[8]; extern const char angband_term_name[8][16]; extern byte angband_color_table[256][4]; extern const cptr angband_sound_name[SOUND_MAX]; +extern const cptr angband_music_basic_name[MUSIC_BASIC_MAX]; extern cave_type *cave[MAX_HGT]; extern saved_floor_type saved_floors[MAX_SAVED_FLOORS]; extern s16b max_floor_id; diff --git a/src/main-win.c b/src/main-win.c index 9bf9bd653..b84ad506a 100644 --- a/src/main-win.c +++ b/src/main-win.c @@ -539,6 +539,12 @@ static cptr sound_file[SOUND_MAX][SAMPLE_MAX]; #endif /* USE_SOUND */ +#ifdef USE_MUSIC + +static bool can_use_music = FALSE; + +#endif /* USE_MUSIC */ + /* * Full path to ANGBAND.INI @@ -1446,9 +1452,9 @@ static void load_music_prefs(void) path_build(ini_path, 1024, ANGBAND_DIR_XTRA_MUSIC, "music.cfg"); - for (i = 0; i < SOUND_MAX; i++) + for (i = 0; i < MUSIC_BASIC_MAX; i++) { - GetPrivateProfileString("Music", angband_sound_name[i], "", tmp, 1024, ini_path); + GetPrivateProfileString("Basic", angband_music_basic_name[i], "", tmp, 1024, ini_path); num = tokenize_whitespace(tmp, SAMPLE_MAX, zz); @@ -1727,6 +1733,27 @@ static bool init_graphics(void) #endif /* USE_GRAPHICS */ +#ifdef USE_MUSIC +/* + * Initialize music + */ +static bool init_music(void) +{ + /* Initialize once */ + if (!can_use_music) + { + /* Load the prefs */ + load_music_prefs(); + + /* Sound available */ + can_use_music = TRUE; + } + + /* Result */ + return (can_use_music); +} +#endif /* USE_SOUND */ + #ifdef USE_SOUND /* * Initialize sound diff --git a/src/variable.c b/src/variable.c index a452bdfd2..49d60051e 100644 --- a/src/variable.c +++ b/src/variable.c @@ -660,6 +660,16 @@ const cptr angband_sound_name[SOUND_MAX] = "glass", }; +/* + * Standard music names + */ +const cptr angband_music_name[MUSIC_BASIC_MAX] = +{ + "title", + "dead", + "exit", +}; + /* * The array of "cave grids" [MAX_WID][MAX_HGT]. -- 2.11.0