OSDN Git Service

Add init_music() for implementing BGM.
authordeskull <deskull@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sat, 8 Feb 2014 08:34:26 +0000 (08:34 +0000)
committerdeskull <deskull@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sat, 8 Feb 2014 08:34:26 +0000 (08:34 +0000)
src/defines.h
src/externs.h
src/main-win.c
src/variable.c

index 60dc9e3..7f4add0 100644 (file)
@@ -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
index fb34b27..75e14a0 100644 (file)
@@ -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;
index 9bf9bd6..b84ad50 100644 (file)
@@ -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
index a452bdf..49d6005 100644 (file)
@@ -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].