*/
static bool can_use_sound = FALSE;
-#define SAMPLE_MAX 8
+#define SAMPLE_SOUND_MAX 16
/*
* An array of sound file names
*/
-static concptr sound_file[SOUND_MAX][SAMPLE_MAX];
+static concptr sound_file[SOUND_MAX][SAMPLE_SOUND_MAX];
#endif /* USE_SOUND */
char tmp[1024];
char ini_path[1024];
char wav_path[1024];
- char *zz[SAMPLE_MAX];
+ char *zz[SAMPLE_SOUND_MAX];
/* Access the sound.cfg */
{
GetPrivateProfileString("Sound", angband_sound_name[i], "", tmp, 1024, ini_path);
- num = tokenize_whitespace(tmp, SAMPLE_MAX, zz);
+ num = tokenize_whitespace(tmp, SAMPLE_SOUND_MAX, zz);
for (j = 0; j < num; j++)
{
char tmp[1024];
char ini_path[1024];
char wav_path[1024];
- char *zz[SAMPLE_MAX];
+ char *zz[SAMPLE_MUSIC_MAX];
char key[80];
/* Access the music.cfg */
#ifdef USE_SOUND
/* Count the samples */
- for (i = 0; i < SAMPLE_MAX; i++)
+ for (i = 0; i < SAMPLE_SOUND_MAX; i++)
{
if (!sound_file[v][i])
break;
#endif /* USE_MUSIC */
/* Sound disabled */
+ if (n == TERM_XTRA_MUSIC_MUTE)
+ {
+ mciSendCommand(mop.wDeviceID, MCI_STOP, 0, 0);
+ mciSendCommand(mop.wDeviceID, MCI_CLOSE, 0, 0);
+ }
if(!use_music) return (1);
switch(n)
{
case TERM_XTRA_MUSIC_BASIC:
- for (i = 0; i < SAMPLE_MAX; i++) if(!music_file[v][i]) break;
- break;
- case TERM_XTRA_MUSIC_DUNGEON:
- for (i = 0; i < SAMPLE_MAX; i++) if(!dungeon_music_file[v][i]) break;
- break;
- case TERM_XTRA_MUSIC_QUEST:
- for (i = 0; i < SAMPLE_MAX; i++) if(!quest_music_file[v][i]) break;
- break;
- case TERM_XTRA_MUSIC_TOWN:
- for (i = 0; i < SAMPLE_MAX; i++) if(!town_music_file[v][i]) break;
- break;
- }
-
- /* No sample */
- if (i == 0)
- {
- //mciSendCommand(mop.wDeviceID, MCI_STOP, 0, 0);
- //mciSendCommand(mop.wDeviceID, MCI_CLOSE, 0, 0);
- return (1);
- }
-
- switch(n)
- {
- case TERM_XTRA_MUSIC_BASIC:
- for (i = 0; i < SAMPLE_MAX; i++) if(!music_file[v][i]) break;
+ for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if(!music_file[v][i]) break;
break;
case TERM_XTRA_MUSIC_DUNGEON:
- for (i = 0; i < SAMPLE_MAX; i++) if(!dungeon_music_file[v][i]) break;
+ for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if(!dungeon_music_file[v][i]) break;
break;
case TERM_XTRA_MUSIC_QUEST:
- for (i = 0; i < SAMPLE_MAX; i++) if(!quest_music_file[v][i]) break;
+ for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if(!quest_music_file[v][i]) break;
break;
case TERM_XTRA_MUSIC_TOWN:
- for (i = 0; i < SAMPLE_MAX; i++) if(!town_music_file[v][i]) break;
+ for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if(!town_music_file[v][i]) break;
break;
}
/* No sample */
if (i == 0)
{
- mciSendCommand(mop.wDeviceID, MCI_STOP, 0, 0);
- mciSendCommand(mop.wDeviceID, MCI_CLOSE, 0, 0);
return (1);
}
*/
void select_floor_music(void)
{
- int i;
- /* No sound */
if (!use_music) return;
- if(p_ptr->ambush_flag)
+ if (p_ptr->ambush_flag)
{
- play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_AMBUSH);
- return;
- }
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_AMBUSH)) return;
+ }
if(p_ptr->wild_mode)
{
- play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_WILD);
- return;
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_WILD)) return;
}
if(p_ptr->inside_arena)
{
- play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_ARENA);
- return;
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_ARENA)) return;
}
if(p_ptr->phase_out)
{
- play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_BATTLE);
- return;
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_BATTLE)) return;
}
if(p_ptr->inside_quest)
{
- if(play_music(TERM_XTRA_MUSIC_QUEST, p_ptr->inside_quest))
- {
- play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_QUEST);
- }
- return;
- }
-
- for(i = 0; i < max_q_idx; i++)
- { // TODO マクロで類似条件を統合すること
- if(quest[i].status == QUEST_STATUS_TAKEN &&
- (quest[i].type == QUEST_TYPE_KILL_LEVEL || quest[i].type == QUEST_TYPE_RANDOM) &&
- quest[i].level == current_floor_ptr->dun_level && p_ptr->dungeon_idx == quest[i].dungeon)
- {
- if(play_music(TERM_XTRA_MUSIC_QUEST, i))
- {
- play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_QUEST);
- }
- return;
- }
+ if (!play_music(TERM_XTRA_MUSIC_QUEST, p_ptr->inside_quest)) return;
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_QUEST)) return;
}
if(p_ptr->dungeon_idx)
{
- if(p_ptr->feeling == 2) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL2);
- else if(p_ptr->feeling >= 3 && p_ptr->feeling <= 5) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL1);
+ if (p_ptr->feeling == 2)
+ {
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL2)) return;
+ }
+ else if (p_ptr->feeling >= 3 && p_ptr->feeling <= 5)
+ {
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL1)) return;
+ }
else
{
- if(play_music(TERM_XTRA_MUSIC_DUNGEON, p_ptr->dungeon_idx))
+ if (!play_music(TERM_XTRA_MUSIC_DUNGEON, p_ptr->dungeon_idx)) return;
+
+ if (current_floor_ptr->dun_level < 40)
{
- if(current_floor_ptr->dun_level < 40) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_LOW);
- else if(current_floor_ptr->dun_level < 80) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_MED);
- else play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_HIGH);
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_LOW)) return;
+ }
+ else if (current_floor_ptr->dun_level < 80)
+ {
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_MED)) return;
+ }
+ else
+ {
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_HIGH)) return;
}
}
- return;
}
if(p_ptr->town_num)
{
- if(play_music(TERM_XTRA_MUSIC_TOWN, p_ptr->town_num))
- {
- play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_TOWN);
- }
+ if (!play_music(TERM_XTRA_MUSIC_TOWN, p_ptr->town_num)) return;
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_TOWN)) return;
return;
}
if(!current_floor_ptr->dun_level)
{
- if(p_ptr->lev >= 45) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_FIELD3);
- else if(p_ptr->lev >= 25) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_FIELD2);
- else play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_FIELD1);
- return;
+ if (p_ptr->lev >= 45)
+ {
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_FIELD3)) return;
+ }
+ else if (p_ptr->lev >= 25)
+ {
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_FIELD2)) return;
+ }
+ else
+ {
+ if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_FIELD1)) return;
+ }
}
+ play_music(TERM_XTRA_MUSIC_MUTE, 0);
}