From ae01166fd6cefd04954314e56f9ff5c8e91bf773 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 29 Aug 2020 00:41:53 +1000 Subject: [PATCH] Rename many music related symbols --- src/files/setup/setupame.c | 16 +- src/files/setup/setupark.c | 12 +- src/files/setup/setupate.c | 4 +- src/files/setup/setupazt.c | 8 +- src/files/setup/setupcave.c | 18 +- src/files/setup/setupdam.c | 8 +- src/files/setup/setupdepo.c | 16 +- src/files/setup/setupdish.c | 12 +- src/files/setup/setupear.c | 8 +- src/files/setup/setupeld.c | 26 +-- src/files/setup/setupimp.c | 14 +- src/files/setup/setuplee.c | 12 +- src/files/setup/setuplip.c | 14 +- src/files/setup/setuplue.c | 12 +- src/files/setup/setupold.c | 6 +- src/files/setup/setuppam.c | 16 +- src/files/setup/setuppete.c | 10 +- src/files/setup/setuprit.c | 18 +- src/files/setup/setupsev.c | 8 +- src/files/setup/setupsho.c | 18 +- src/files/setup/setupstat.c | 8 +- src/files/setup/setuptra.c | 28 +-- src/files/setup/setupwax.c | 8 +- src/game/chr/chrai.c | 18 +- src/game/chr/chraicommands.c | 46 ++-- src/game/data/data_02a0e0.c | 6 +- src/game/game_01bea0.c | 4 +- src/game/game_0b63b0.c | 4 +- src/game/game_0f09f0.c | 6 +- src/game/game_1371b0.c | 10 +- src/game/game_167ae0.c | 6 +- src/game/game_16cfa0.c | 302 +++++++++++++-------------- src/game/game_179060.c | 2 +- src/game/mplayer.c | 2 +- src/game/pdoptions.c | 4 +- src/game/title.c | 4 +- src/gvars/gvars.c | 6 +- src/include/commands.h | 75 +++++-- src/include/constants.h | 47 +++-- src/include/game/chr/chraicommands.h | 18 +- src/include/game/data/data_02a0e0.h | 6 +- src/include/game/game_16cfa0.h | 52 ++--- src/include/gvars/gvars.h | 8 +- src/include/types.h | 4 +- src/lib/lib_0d520.c | 6 +- src/lib/lib_0e9d0.c | 4 +- src/lib/lib_11420.c | 44 ++-- src/lib/lib_15860.c | 2 +- 48 files changed, 514 insertions(+), 472 deletions(-) diff --git a/src/files/setup/setupame.c b/src/files/setup/setupame.c index 8bf7bc5db..3060a9933 100644 --- a/src/files/setup/setupame.c +++ b/src/files/setup/setupame.c @@ -2775,7 +2775,7 @@ u8 func0422_intro[] = { set_stage_flag(STAGEFLAG_TRIGGER_INTRO) yield #else - set_sfx_track(MUSIC_DEFECTION_INTRO_SFX) + play_temporary_track(MUSIC_DEFECTION_INTRO_SFX) // No yield in this loop! label(0x07) @@ -2787,7 +2787,7 @@ u8 func0422_intro[] = { yield set_stage_flag(STAGEFLAG_TRIGGER_INTRO) yield - set_music_track(MUSIC_DEFECTION_INTRO) + play_cutscene_track(MUSIC_DEFECTION_INTRO) label(0x08) cmd01dd_if_something(0x01, /*goto*/ 0x2c) @@ -3146,8 +3146,8 @@ u8 func0422_intro_042d[] = { endloop(0x09) label(0x06) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track set_savefile_flag(SAVEFILEFLAG_CI_TOUR_DONE) set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -3160,7 +3160,7 @@ u8 func0416_outro_from_menu[] = { u8 func0416_outro[] = { camera_movement(0x00f2) - set_music_track(MUSIC_DEFECTION_OUTRO) + play_cutscene_track(MUSIC_DEFECTION_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) @@ -3337,7 +3337,7 @@ u8 func1012_trigger_x_music[] = { // the flag is only set during the outro cutscene, not during gameplay. label(0x06) if_stage_flag_eq(STAGEFLAG_LAB_ELEVATOR_CLOSED, TRUE, /*goto*/ 0x2c) - play_x_music(CHANNEL_10, 60) + play_x_track(XREASON_DEFAULT, 10, 60) label(0x2c) set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -3478,7 +3478,7 @@ u8 func0422_intro_speaking[] = { endloop(0xb7) label(0x2c) - set_sfx_track(MUSIC_DEFECTION_INTRO_SFX) + play_temporary_track(MUSIC_DEFECTION_INTRO_SFX) // No yield in this loop! label(0xb8) @@ -3487,7 +3487,7 @@ u8 func0422_intro_speaking[] = { goto_first(0xb8) label(0x2c) - set_music_track(MUSIC_DEFECTION_INTRO) + play_cutscene_track(MUSIC_DEFECTION_INTRO) label(0xb9) cmd01dd_if_something(0x01, /*goto*/ 0x2c) diff --git a/src/files/setup/setupark.c b/src/files/setup/setupark.c index af89dd20f..97b10f898 100644 --- a/src/files/setup/setupark.c +++ b/src/files/setup/setupark.c @@ -2053,7 +2053,7 @@ u8 func040d_cass[] = { endloop(0x2c) label(0x00) - play_x_music(CHANNEL_10, 60) + play_x_track(XREASON_DEFAULT, 10, 60) beginloop(0x3f) if_timer_gt(180, /*goto*/ 0x00) @@ -2297,7 +2297,7 @@ u8 func1400_setup_counterop[] = { }; u8 func100d_intro[] = { - set_music_track(MUSIC_EXTRACTION_INTRO) + play_cutscene_track(MUSIC_EXTRACTION_INTRO) camera_movement(0x0138) cmd0175(60) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) @@ -2394,8 +2394,8 @@ u8 func100d_intro[] = { set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_00010000) chr_do_animation(0x013a, -2, -1, 0x06, 0x00, CHR_INTRO_GUARD, 2) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson yield chr_do_animation(0x020c, -1, -1, 0x06, 0x00, CHR_INTRO_GUARD, 2) @@ -2407,8 +2407,8 @@ u8 func100d_intro[] = { }; u8 func0412_outro[] = { - set_music_track(MUSIC_EXTRACTION_OUTRO) - set_sfx_track(MUSIC_EXTRACTION_OUTRO_SFX) + play_cutscene_track(MUSIC_EXTRACTION_OUTRO) + play_temporary_track(MUSIC_EXTRACTION_OUTRO_SFX) camera_movement(0x0157) set_object_flag2(OBJ_HOVERCOPTER, OBJFLAG2_INVISIBLE) hide_object(OBJ_HOVERCOPTER) diff --git a/src/files/setup/setupate.c b/src/files/setup/setupate.c index 211ce843f..165c5b50a 100644 --- a/src/files/setup/setupate.c +++ b/src/files/setup/setupate.c @@ -363,8 +363,8 @@ u8 func1005_main[] = { }; u8 func1003_init_audio[] = { - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; diff --git a/src/files/setup/setupazt.c b/src/files/setup/setupazt.c index 9b9ab792d..a8fea2c2d 100644 --- a/src/files/setup/setupazt.c +++ b/src/files/setup/setupazt.c @@ -403,7 +403,7 @@ u8 func1011_setup_snow[] = { u8 func1002_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_CRASHSITE_INTRO) + play_cutscene_track(MUSIC_CRASHSITE_INTRO) camera_movement(0x01b5) cmd0175(60) @@ -515,8 +515,8 @@ u8 func1002_intro[] = { unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) chr_do_animation(0x01b6, -2, -1, 0x06, 0x00, CHR_BOND, 2) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track set_chr_hudpiece_visible(CHR_BOND, FALSE) enter_firstperson set_ailist(CHR_SELF, GAILIST_IDLE) @@ -550,7 +550,7 @@ u8 func0402_outro[] = { set_target_chr(CHR_COOP) label(0x08) camera_movement(0x01d9) - set_music_track(MUSIC_CRASHSITE_OUTRO) + play_cutscene_track(MUSIC_CRASHSITE_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN) diff --git a/src/files/setup/setupcave.c b/src/files/setup/setupcave.c index 7e04e7640..d90a49b2b 100644 --- a/src/files/setup/setupcave.c +++ b/src/files/setup/setupcave.c @@ -781,7 +781,7 @@ u8 func0401_unused_cutscene[] = { chr_draw_weapon_in_cutscene(CHR_BOND, WEAPON_FALCON2) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_AIRBASE_OUTRO_LONG) + play_cutscene_track(MUSIC_AIRBASE_OUTRO_LONG) camera_movement(0x016b) cmd0175(60) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) @@ -827,8 +827,8 @@ u8 func0401_unused_cutscene[] = { set_ailist(0x01, 0x0405) remove_chr(0x02) set_ailist(CHR_STEWARDESS, 0x040b) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track set_ailist(CHR_SELF, GAILIST_END_CINEMA) endlist }; @@ -837,7 +837,7 @@ u8 func0425_outro[] = { fade_to_color(0x000000ff, 0) fade_to_color(0x00000000, 110) camera_movement(0x031a) - set_music_track(MUSIC_AIRBASE_OUTRO) + play_cutscene_track(MUSIC_AIRBASE_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) @@ -1767,7 +1767,7 @@ u8 func1007_console_activation[] = { label(0x31) set_object_image(OBJ_CONSOLE, 0x01, 0x14) - play_x_music(0x58, 88) // @bug? Invalid channel + play_x_track(XREASON_DEFAULT, 88, 88) beginloop(0x06) chr_toggle_p1p2(CHR_SELF) @@ -1775,7 +1775,7 @@ u8 func1007_console_activation[] = { endloop(0x06) label(0x02) - stop_music_channel(CHANNEL_1) + stop_x_track(XREASON_DEFAULT) label(0x0c) mute_channel(CHANNEL_1) @@ -3591,7 +3591,7 @@ u8 func1003_intro[] = { label(0x31) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_AIRBASE_INTRO) + play_cutscene_track(MUSIC_AIRBASE_INTRO) camera_movement(0x01e5) cmd0175(60) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) @@ -3850,8 +3850,8 @@ u8 func1003_intro[] = { set_ailist(0x00, 0x0405) set_ailist(0x01, 0x0405) set_ailist(CHR_STEWARDESS, AILIST_STEWARDESS) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson set_ailist(CHR_SELF, GAILIST_IDLE) endlist diff --git a/src/files/setup/setupdam.c b/src/files/setup/setupdam.c index c9b3393b5..93a81ff26 100644 --- a/src/files/setup/setupdam.c +++ b/src/files/setup/setupdam.c @@ -683,7 +683,7 @@ u8 func0408_guard_unalerted[] = { }; u8 func1002_intro[] = { - set_music_track(MUSIC_PELAGIC_INTRO) + play_cutscene_track(MUSIC_PELAGIC_INTRO) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) camera_movement(0x02ce) @@ -828,15 +828,15 @@ u8 func1002_intro[] = { endloop(0x0c) label(0x04) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0c01_outro[] = { camera_movement(0x02e2) - set_music_track(MUSIC_PELAGIC_OUTRO) + play_cutscene_track(MUSIC_PELAGIC_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) diff --git a/src/files/setup/setupdepo.c b/src/files/setup/setupdepo.c index 2949866c3..878868502 100644 --- a/src/files/setup/setupdepo.c +++ b/src/files/setup/setupdepo.c @@ -1363,7 +1363,7 @@ u8 func1010_safe_cracking[] = { label(0x06) speak(CHR_BOND, L_DEPO(38), 0x7754, CHANNEL_5, COLOR_00_GREEN) // "INTRUDER ALERT - all security to the vault." - play_x_music(CHANNEL_10, 180) + play_x_track(XREASON_DEFAULT, 10, 180) yield set_countdown_timer(60) show_hudmsg(CHR_P1P2, L_DEPO(36)) // "Initiating cracking routines." @@ -1572,7 +1572,7 @@ u8 func1017_check_lasers_closed[] = { u8 func040d_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_INTRO) + play_cutscene_track(MUSIC_G5_INTRO) camera_movement(0x0165) cmd0175(60) @@ -1796,8 +1796,8 @@ u8 func040d_intro[] = { set_chr_chrflag(CHR_INTRO_VICTIM, CHRCFLAG_00010000) chr_do_animation(0x0167, -2, -1, 0x06, 0x00, CHR_INTRO_VICTIM, 2) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson chr_do_animation(0x022a, -1, -1, 0x06, 0x00, CHR_INTRO_VICTIM, 2) chr_drop_weapon(CHR_INTRO_VICTIM) @@ -1825,7 +1825,7 @@ u8 func040e_meeting_cutscene[] = { deactivate_alarm set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_MIDCUTSCENE) + play_cutscene_track(MUSIC_G5_MIDCUTSCENE) camera_movement(0x0191) set_stage_flag(STAGEFLAG_MEETING_STARTED) set_ailist(CHR_BLONDE, GAILIST_IDLE) @@ -2049,8 +2049,8 @@ u8 func040e_meeting_cutscene[] = { label(0x54) label(0x06) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson set_stage_flag(STAGEFLAG_MEETING_FINISHED) mute_channel(CHANNEL_10) @@ -2092,7 +2092,7 @@ u8 func040f_outro_from_menu[] = { u8 func040f_outro[] = { camera_movement(0x0196) - set_music_track(MUSIC_G5_OUTRO) + play_cutscene_track(MUSIC_G5_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) diff --git a/src/files/setup/setupdish.c b/src/files/setup/setupdish.c index 1308bfaa7..617d9b030 100644 --- a/src/files/setup/setupdish.c +++ b/src/files/setup/setupdish.c @@ -5744,15 +5744,15 @@ u8 func1035_manage_music[] = { reloop(0x8f) label(0x2f) - play_music_track(MUSIC_CI_TRAINING) + play_track_isolated(MUSIC_CI_TRAINING) beginloop(0x08) if_stage_flag_eq(STAGEFLAG_IN_TRAINING, FALSE, /*goto*/ 0x06) endloop(0x08) label(0x06) - restart_music - reset_ambience + play_default_tracks + stop_ambient_track endloop(0x8f) endlist @@ -5822,7 +5822,7 @@ u8 func1000_jo_typing[] = { camera_movement(0x0484) cmd0175(60) if_controller_button_pressed(/*goto*/ 0x7b) - set_music_track(MUSIC_CI_INTRO) + play_cutscene_track(MUSIC_CI_INTRO) unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) @@ -5869,8 +5869,8 @@ u8 func1000_jo_typing[] = { yield yield yield - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; diff --git a/src/files/setup/setupear.c b/src/files/setup/setupear.c index 6cdc8e175..ae7abd0b7 100644 --- a/src/files/setup/setupear.c +++ b/src/files/setup/setupear.c @@ -2225,7 +2225,7 @@ u8 func100e_experiment_terminals_destroyed[] = { }; u8 func0416_intro[] = { - set_music_track(MUSIC_INVESTIGATION_INTRO) + play_cutscene_track(MUSIC_INVESTIGATION_INTRO) camera_movement(0x00f5) cmd0175(60) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) @@ -2339,8 +2339,8 @@ u8 func0416_intro[] = { unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson yield chr_do_animation(0x020b, -1, -1, 0x06, 0x00, CHR_INTRO_GUARD, 2) @@ -2351,7 +2351,7 @@ u8 func0416_intro[] = { }; u8 func0417_outro[] = { - set_music_track(MUSIC_INVESTIGATION_OUTRO) + play_cutscene_track(MUSIC_INVESTIGATION_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_stage_flag(STAGEFLAG_TRIGGER_OUTRO_AUDIO) diff --git a/src/files/setup/setupeld.c b/src/files/setup/setupeld.c index 2f8739e2f..aeb54f350 100644 --- a/src/files/setup/setupeld.c +++ b/src/files/setup/setupeld.c @@ -783,10 +783,10 @@ u8 func1002_intro[] = { label(0x2e) chr_do_animation(0x0172, -1, -1, 0x06, 0x00, CHR_BOND, 4) remove_chr(CHR_NEGOTIATOR) - set_music_track(MUSIC_VILLA_INTRO3) + play_cutscene_track(MUSIC_VILLA_INTRO3) goto_next(0x06) label(0x2d) - set_music_track(MUSIC_VILLA_INTRO2) + play_cutscene_track(MUSIC_VILLA_INTRO2) chr_do_animation(0x0172, -1, -1, 0x06, 0x00, CHR_NEGOTIATOR, 4) label(0x06) set_chr_chrflag(CHR_TAKER1, CHRCFLAG_UNPLAYABLE) @@ -1116,9 +1116,9 @@ u8 func1002_intro[] = { chr_do_animation(0x01ba, -2, -1, 0x06, 0x00, CHR_TAKER2, 2) hide_object(OBJ_DROPSHIP) - restart_default_music - reset_ambience - play_x_music(CHANNEL_10, 30) + stop_cutscene_track + stop_ambient_track + play_x_track(XREASON_DEFAULT, 10, 30) unset_stage_flag(STAGEFLAG_PLAYING_INTRO_FROM_MENU) enter_firstperson yield @@ -1212,9 +1212,9 @@ u8 func1002_intro[] = { set_chr_chrflag(CHR_TAKER2, CHRCFLAG_00000001) chr_do_animation(0x01c1, -2, -1, 0x06, 0x00, CHR_TAKER2, 2) hide_object(OBJ_DROPSHIP) - restart_default_music - reset_ambience - play_x_music(CHANNEL_10, 30) + stop_cutscene_track + stop_ambient_track + play_x_track(XREASON_DEFAULT, 10, 30) enter_firstperson yield set_ailist(CHR_TAKER1, AILIST_TAKER) @@ -1233,7 +1233,7 @@ u8 func0c02_outro_from_menu[] = { u8 func0408_outro[] = { camera_movement(0x017a) - set_music_track(MUSIC_VILLA_OUTRO) + play_cutscene_track(MUSIC_VILLA_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) @@ -1383,8 +1383,8 @@ u8 func0408_outro[] = { mute_channel(CHANNEL_7) mute_channel(CHANNEL_6) mute_channel(CHANNEL_5) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track end_level set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -1682,7 +1682,7 @@ u8 func0403_negotiator[] = { label(0x06) show_hudmsg(CHR_BOND, L_ELD(13)) // "Negotiator has escaped to safety." set_stage_flag(STAGEFLAG_NEGOTIATOR_ESCAPED) - stop_music_channel(CHANNEL_1) + stop_x_track(XREASON_DEFAULT) remove_chr(CHR_SELF) set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -2183,7 +2183,7 @@ u8 func100b_invoke_hackers[] = { unset_chr_chrflag(CHR_HACKER3, CHRCFLAG_HIDDEN) rebuild_teams rebuild_squadrons - play_x_music(CHANNEL_10, 60) + play_x_track(XREASON_DEFAULT, 10, 60) set_countdown_timer(60) show_countdown_timer start_countdown_timer diff --git a/src/files/setup/setupimp.c b/src/files/setup/setupimp.c index 543803730..6bdf984a7 100644 --- a/src/files/setup/setupimp.c +++ b/src/files/setup/setupimp.c @@ -867,7 +867,7 @@ u8 func1009_autogun_switch3[] = { u8 func0c01_outro[] = { camera_movement(0x01a2) - set_music_track(MUSIC_DEFENSE_OUTRO) + play_cutscene_track(MUSIC_DEFENSE_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) @@ -1148,15 +1148,15 @@ u8 func0c01_outro[] = { label(0xb8) mute_channel(CHANNEL_10) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track end_level set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1002_intro[] = { - set_music_track(MUSIC_DEFENSE_INTRO) + play_cutscene_track(MUSIC_DEFENSE_INTRO) camera_movement(0x02bc) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) @@ -1523,8 +1523,8 @@ u8 func1002_intro[] = { set_object_flag3(0x53, OBJFLAG3_00000010) object_do_animation(0x02c6, 0x53, 0x04, 0xfffe) set_stage_flag(STAGEFLAG_INTRO_FINISHED) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) remove_chr(0x19) @@ -2862,7 +2862,7 @@ u8 func1014_carrington_messages[] = { endloop(0xc6) label(0x08) - play_x_music(CHANNEL_10, 120) + play_x_track(XREASON_DEFAULT, 10, 120) set_countdown_timer(120) show_countdown_timer start_countdown_timer diff --git a/src/files/setup/setuplee.c b/src/files/setup/setuplee.c index f66f78b5b..d4a0458b8 100644 --- a/src/files/setup/setuplee.c +++ b/src/files/setup/setuplee.c @@ -1917,7 +1917,7 @@ u8 func100c_engineroom[] = { if_chr_dead(CHR_ELVIS, /*goto*/ 0x2c) if_chr_knockedout(CHR_ELVIS, /*goto*/ 0x2c) set_ailist(CHR_ELVIS, AILIST_ELVIS_RUN_FROM_ENGINEROOM) - play_x_music(CHANNEL_10, 10) + play_x_track(XREASON_DEFAULT, 10, 10) speak(CHR_BOND, L_LEE(46), 0x73d7, CHANNEL_6, COLOR_04_ORANGE) // "We have to get out of here!" label(0x2c) set_countdown_timer(10) @@ -2532,7 +2532,7 @@ u8 func1011_check_end_level[] = { u8 func1003_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_ATTACKSHIP_INTRO) + play_cutscene_track(MUSIC_ATTACKSHIP_INTRO) camera_movement(0x01c2) cmd0175(60) @@ -2782,8 +2782,8 @@ u8 func1003_intro[] = { chr_move_to_pad(CHR_CASS, 0x00df, 0x01, /*goto*/ 0x2c) label(0x2c) set_ailist(CHR_CASS, AILIST_CASS) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; @@ -2798,7 +2798,7 @@ u8 func0c01_outro[] = { label(0x06) hide_object(0x2c) camera_movement(0x01e1) - set_music_track(MUSIC_ATTACKSHIP_OUTRO) + play_cutscene_track(MUSIC_ATTACKSHIP_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN) @@ -3468,7 +3468,7 @@ u8 func101e_bridge_music[] = { endloop(0x04) label(0x2c) - play_x_music(CHANNEL_10, 60) + play_x_track(XREASON_DEFAULT, 10, 60) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; diff --git a/src/files/setup/setuplip.c b/src/files/setup/setuplip.c index 34a2536ee..673795a5c 100644 --- a/src/files/setup/setuplip.c +++ b/src/files/setup/setuplip.c @@ -2127,7 +2127,7 @@ u8 func100e_elvis_timer[] = { label(0x06) set_stage_flag(STAGEFLAG_ENTERED_ELVIS_AREA) - play_x_music(CHANNEL_10, 60) + play_x_track(XREASON_DEFAULT, 10, 60) set_countdown_timer(60) show_countdown_timer start_countdown_timer @@ -3646,7 +3646,7 @@ u8 func1023_setup_door_locks[] = { u8 func0c01_outro[] = { set_invincible(CHR_BOND) camera_movement(0x0198) - set_music_track(MUSIC_RESCUE_OUTRO) + play_cutscene_track(MUSIC_RESCUE_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) @@ -3743,8 +3743,8 @@ u8 func0c01_outro[] = { label(0x8b) mute_channel(CHANNEL_10) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track end_level set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -3753,7 +3753,7 @@ u8 func0c01_outro[] = { u8 func1002_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_RESCUE_INTRO) + play_cutscene_track(MUSIC_RESCUE_INTRO) camera_movement(0x01c6) cmd0175(60) @@ -3927,8 +3927,8 @@ u8 func1002_intro[] = { object_do_animation(0x01ca, OBJ_CRATE, 0x01, 0xfffe) close_door(0x33) close_door(0x34) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson yield set_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_00010000) diff --git a/src/files/setup/setuplue.c b/src/files/setup/setuplue.c index 51baf7bb1..924741823 100644 --- a/src/files/setup/setuplue.c +++ b/src/files/setup/setuplue.c @@ -1350,7 +1350,7 @@ u8 func100b_final_hangar[] = { label(0x2e) set_stage_flag(STAGEFLAG_ENTERED_FINAL_HANGAR) - play_x_music(CHANNEL_10, 60) + play_x_track(XREASON_DEFAULT, 10, 60) restart_timer unlock_door(0x11, 0x08) unlock_door(0x12, 0x08) @@ -1778,7 +1778,7 @@ u8 func040e_outro[] = { open_door(0x11) hide_object(OBJ_HOVERBIKE) camera_movement(0x017d) - set_music_track(MUSIC_INFILTRATION_OUTRO) + play_cutscene_track(MUSIC_INFILTRATION_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) @@ -1922,7 +1922,7 @@ u8 func0410_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) if_controller_button_pressed(/*goto*/ 0x54) - set_music_track(MUSIC_INFILTRATION_INTRO) + play_cutscene_track(MUSIC_INFILTRATION_INTRO) camera_movement(0x0181) set_chr_chrflag(0x0c, CHRCFLAG_HIDDEN) set_chr_chrflag(0x0d, CHRCFLAG_HIDDEN) @@ -2132,8 +2132,8 @@ u8 func0410_intro[] = { unset_object_flag2(OBJ_INTERCEPTOR1, OBJFLAG2_INVISIBLE) unset_object_flag2(OBJ_INTERCEPTOR2, OBJFLAG2_INVISIBLE) unset_object_flag2(OBJ_INTERCEPTOR3, OBJFLAG2_INVISIBLE) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson set_stage_flag(STAGEFLAG_INTRO_FINISHED) set_ailist(CHR_SELF, GAILIST_IDLE) @@ -2426,7 +2426,7 @@ u8 func1011_bunker_explosives[] = { label(0x2e) show_hudmsg(CHR_P1P2, L_LUE(75)) // "Foreign object detected - security alerted." label(0x06) - play_x_music(CHANNEL_10, 20) + play_x_track(XREASON_DEFAULT, 10, 20) yield show_countdown_timer start_countdown_timer diff --git a/src/files/setup/setupold.c b/src/files/setup/setupold.c index 9f41b43cf..7843b2074 100644 --- a/src/files/setup/setupold.c +++ b/src/files/setup/setupold.c @@ -45,7 +45,7 @@ struct path paths[] = { u8 func0c00_017c[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_INTRO) + play_cutscene_track(MUSIC_G5_INTRO) camera_movement(0x045d) title_init_mode(TITLEAIMODE_RARELOGO) @@ -155,8 +155,8 @@ u8 func0c00_017c[] = { endloop(0x15) label(0x59) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson set_ailist(CHR_SELF, GAILIST_IDLE) endlist diff --git a/src/files/setup/setuppam.c b/src/files/setup/setuppam.c index 58c9b1a89..89ba7d70e 100644 --- a/src/files/setup/setuppam.c +++ b/src/files/setup/setuppam.c @@ -1492,7 +1492,7 @@ u8 func0c01_midcutscene[] = { set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_ailist(CHR_ELVIS, GAILIST_IDLE) - set_music_track(MUSIC_DEEPSEA_MIDCUTSCENE) + play_cutscene_track(MUSIC_DEEPSEA_MIDCUTSCENE) camera_movement(0x01d4) set_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN) @@ -1843,9 +1843,9 @@ u8 func0c01_midcutscene[] = { chr_move_to_pad(CHR_BOND, 0x019f, 0x01, /*goto*/ 0x2e) label(0x2e) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) - restart_default_music - reset_ambience - play_x_music(CHANNEL_10, 60) + stop_cutscene_track + stop_ambient_track + play_x_track(XREASON_DEFAULT, 10, 60) set_ailist(CHR_ELVIS, GAILIST_IDLE) chr_move_to_pad(CHR_ELVIS, 0x0017, 0x01, /*goto*/ 0x2e) label(0x2e) @@ -1878,7 +1878,7 @@ u8 func0c02_outro[] = { hide_countdown_timer set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_DEEPSEA_OUTRO) + play_cutscene_track(MUSIC_DEEPSEA_OUTRO) camera_movement(0x02d7) set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) @@ -2029,7 +2029,7 @@ u8 func1002_intro[] = { chr_draw_weapon_in_cutscene(CHR_BOND, WEAPON_FALCON2_SCOPE) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_DEEPSEA_INTRO) + play_cutscene_track(MUSIC_DEEPSEA_INTRO) camera_movement(0x01ef) cmd0175(60) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) @@ -2206,8 +2206,8 @@ u8 func1002_intro[] = { label(0x45) hide_object(0x07) label(0x46) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track label(0x0d) enter_firstperson yield diff --git a/src/files/setup/setuppete.c b/src/files/setup/setuppete.c index daa44ba5e..6f1e3b792 100644 --- a/src/files/setup/setuppete.c +++ b/src/files/setup/setuppete.c @@ -501,7 +501,7 @@ u8 func0401_3ae8[] = { set_stage_flag(STAGEFLAG_TRIGGER_INTRO) if_controller_button_pressed(/*goto*/ 0x00) camera_movement(0x00cf) - set_music_track(MUSIC_CHICAGO_INTRO) + play_cutscene_track(MUSIC_CHICAGO_INTRO) set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN) chicago_car_do_animation(OBJ_CAR1, 0x00d6) @@ -638,8 +638,8 @@ u8 func0405_3d50[] = { set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) chr_do_animation(0x00df, -2, -1, 0x06, 0x00, CHR_BOND, 2) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track set_stage_flag(STAGEFLAG_INTRO_FINISHED) enter_firstperson set_ailist(CHR_SELF, GAILIST_IDLE) @@ -2244,7 +2244,7 @@ u8 func100d_spawn_alarm_responders[] = { endloop(0x1e) label(0x03) - play_x_music(CHANNEL_10, 60) + play_x_track(XREASON_DEFAULT, 10, 60) goto_next(0x04) // When the alarm sounds, there are 4 groups of people who respond. @@ -2674,7 +2674,7 @@ u8 func040a_intro_sfx[] = { u8 func040b_outro[] = { camera_movement(0x0178) - set_music_track(MUSIC_CHICAGO_OUTRO) + play_cutscene_track(MUSIC_CHICAGO_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) diff --git a/src/files/setup/setuprit.c b/src/files/setup/setuprit.c index 91a19d9e2..c63e52012 100644 --- a/src/files/setup/setuprit.c +++ b/src/files/setup/setuprit.c @@ -1933,7 +1933,7 @@ u8 func100c_cockpit[] = { set_object_image(0x03, 0x00, 0x13) set_stage_flag(STAGEFLAG_PLANE_STABILIZED) show_hudmsg(CHR_BOND, L_RIT(28)) // "Pilots have been saved." - reset_ambience + stop_ambient_track set_ailist(CHR_SELF, GAILIST_IDLE) // Unreachable @@ -2020,7 +2020,7 @@ u8 func0428_start_path02[] = { u8 func1002_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_AIRFORCEONE_INTRO) + play_cutscene_track(MUSIC_AIRFORCEONE_INTRO) camera_movement(0x018c) set_chr_chrflag(0x30, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(0x30, CHRCFLAG_HIDDEN) @@ -2184,8 +2184,8 @@ u8 func1002_intro[] = { label(0x06) chr_do_animation(0x01d1, -2, -1, 0x06, 0x00, CHR_BOND, 2) label(0x2d) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track unset_chr_chrflag(0x13, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x14, CHRCFLAG_HIDDEN) set_ailist(CHR_PRESIDENT, AILIST_INIT_PRESIDENT) @@ -3440,7 +3440,7 @@ u8 func0423_outro[] = { set_target_chr(CHR_COOP) label(0x06) camera_movement(0x02d8) - set_music_track(MUSIC_AIRFORCEONE_OUTRO) + play_cutscene_track(MUSIC_AIRFORCEONE_OUTRO) misc_command(0x0000, 0x0d, 0x00) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) @@ -3552,7 +3552,7 @@ u8 func0423_outro[] = { label(0x5f) mute_channel(CHANNEL_10) label(0x06) - restart_default_music + stop_cutscene_track misc_command(0x0000, 0x0d, 0x00) hide_object(0x19) hide_object(0x1a) @@ -3573,7 +3573,7 @@ u8 func1019_midcutscene[] = { if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_STARTED, TRUE, /*goto*/ 0x2d) set_stage_flag(STAGEFLAG_MIDCUTSCENE_STARTED) dprint 'm','i','d',' ','c','u','t','s','c','e','n','e','\n',0, - set_music_track(MUSIC_AIRFORCEONE_MIDCUTSCENE) + play_cutscene_track(MUSIC_AIRFORCEONE_MIDCUTSCENE) label(0x2d) camera_movement(0x02df) @@ -3607,8 +3607,8 @@ u8 func1019_midcutscene[] = { hide_object(0x19) label(0x06) set_stage_flag(STAGEFLAG_MIDCUTSCENE_FINISHED) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_ailist(CHR_SELF, GAILIST_END_CINEMA) diff --git a/src/files/setup/setupsev.c b/src/files/setup/setupsev.c index d0e62ebc4..e669d097e 100644 --- a/src/files/setup/setupsev.c +++ b/src/files/setup/setupsev.c @@ -1520,7 +1520,7 @@ u8 func100b_check_medlab_escapable[] = { u8 func1002_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_INTRO) + play_cutscene_track(MUSIC_G5_INTRO) camera_movement(0x0476) cmd0175(60) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) @@ -1573,8 +1573,8 @@ u8 func1002_intro[] = { unset_object_flag2(OBJ_TROLLEY, OBJFLAG2_04000000) set_object_flag3(OBJ_TROLLEY, OBJFLAG3_00000010) object_do_animation(0x0478, OBJ_TROLLEY, 0x04, 0xfffe) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -1584,7 +1584,7 @@ u8 func041b_outro[] = { set_invincible(CHR_BOND) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_OUTRO) + play_cutscene_track(MUSIC_G5_OUTRO) camera_movement(0x0479) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) diff --git a/src/files/setup/setupsho.c b/src/files/setup/setupsho.c index 820fd81f9..2d8116cda 100644 --- a/src/files/setup/setupsho.c +++ b/src/files/setup/setupsho.c @@ -1852,7 +1852,7 @@ u8 func100a_army_room[] = { set_lights_state(0x0082, LIGHTOP_3, 0x06, 0xff, 0x78) set_lights_state(0x0087, LIGHTOP_3, 0x06, 0xff, 0x78) set_stage_flag(STAGEFLAG_TRIGGER_SKEDAR_ARMY) - play_x_music(CHANNEL_10, 60) + play_x_track(XREASON_DEFAULT, 10, 60) set_ailist(CHR_SELF, GAILIST_IDLE) goto_first(0x04) @@ -1944,8 +1944,8 @@ u8 func040c_king_waiting[] = { endloop(0x08) label(0x2d) - stop_music_channel(-1) - play_music_track(MUSIC_SKEDARRUINS_KING) + stop_x_track(-1) + play_track_isolated(MUSIC_SKEDARRUINS_KING) restart_timer beginloop(0x09) @@ -2543,7 +2543,7 @@ u8 func040f_update_spike_stageflags[] = { u8 func0c00_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_SKEDARRUINS_INTRO) + play_cutscene_track(MUSIC_SKEDARRUINS_INTRO) set_stage_flag(STAGEFLAG_IN_INTRO) set_chr_chrflag(CHR_BOND, CHRCFLAG_RUNFASTER) set_chr_chrflag(CHR_KING2, CHRCFLAG_HIDDEN) @@ -2797,8 +2797,8 @@ u8 func0c00_intro[] = { set_object_flag2(0x2e, OBJFLAG2_04000000) unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -2825,7 +2825,7 @@ u8 func0414_outro[] = { label(0x06) set_chr_chrflag(CHR_TARGET, CHRCFLAG_KILLCOUNTABLE) camera_movement(0x044c) - set_music_track(MUSIC_SKEDARRUINS_OUTRO) + play_cutscene_track(MUSIC_SKEDARRUINS_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN) @@ -2985,8 +2985,8 @@ u8 func0414_outro[] = { hide_object(0x25) hide_object(0x26) label(0x06) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track end_level set_ailist(CHR_SELF, GAILIST_IDLE) endlist diff --git a/src/files/setup/setupstat.c b/src/files/setup/setupstat.c index 7df0411aa..b3f95992c 100644 --- a/src/files/setup/setupstat.c +++ b/src/files/setup/setupstat.c @@ -1067,7 +1067,7 @@ u8 unregistered_function[] = { u8 func1002_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_INTRO) + play_cutscene_track(MUSIC_G5_INTRO) set_chr_hiddenflag(CHR_ANTI, CHRHFLAG_00020000) set_chr_hiddenflag(CHR_BLONDE, CHRHFLAG_00020000) camera_movement(0x047c) @@ -1134,8 +1134,8 @@ u8 func1002_intro[] = { set_ailist(CHR_MAIAN1, AILIST_INIT_MAIAN) set_ailist(CHR_MAIAN2, AILIST_INIT_MAIAN) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson yield label(0x2d) @@ -1147,7 +1147,7 @@ u8 func040b_outro[] = { set_invincible(CHR_BOND) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_OUTRO) + play_cutscene_track(MUSIC_G5_OUTRO) camera_movement(0x0480) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) diff --git a/src/files/setup/setuptra.c b/src/files/setup/setuptra.c index 284b704d2..7ebe49c42 100644 --- a/src/files/setup/setuptra.c +++ b/src/files/setup/setuptra.c @@ -979,7 +979,7 @@ u8 func0404_jonathan_following_and_mine[] = { endloop(0x0c) label(0x06) - play_x_music(CHANNEL_10, 30) + play_x_track(XREASON_DEFAULT, 10, 30) restart_timer try_face_entity(ENTITYTYPE_PAD, 0x0173, /*goto*/ 0xc4) @@ -1279,7 +1279,7 @@ u8 func0413_jonathan_hangar[] = { // Jon is up the ramp label(0x33) set_stage_flag(STAGEFLAG_HANGAR_X_MUSIC_STARTED) - play_x_music(CHANNEL_10, 90) + play_x_track(XREASON_DEFAULT, 10, 90) run_to_pad(0x016f) set_stage_flag(STAGEFLAG_HANGAR_X_MUSIC_STARTED) if_chr_stopped(/*goto*/ 0x06) @@ -1353,7 +1353,7 @@ u8 func0413_jonathan_hangar[] = { label(0x06) set_stage_flag(STAGEFLAG_JO_DOING_TERMINALS) set_stage_flag(STAGEFLAG_HANGAR_X_MUSIC_STARTED) - play_x_music(CHANNEL_10, 90) + play_x_track(XREASON_DEFAULT, 10, 90) set_ailist(CHR_SELF, AILIST_JONATHAN_AFTER_TERMINALS) // Elvis dead @@ -2468,7 +2468,7 @@ u8 func1019_enable_biotechs_after_stash[] = { u8 func1002_intro[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_ESCAPE_INTRO) + play_cutscene_track(MUSIC_ESCAPE_INTRO) camera_movement(0x019c) cmd0175(60) @@ -2783,8 +2783,8 @@ u8 func1002_intro[] = { drop_concealed_items(0x23) drop_concealed_items(0x24) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson revoke_control(CHR_BOND, 0) yield @@ -2800,7 +2800,7 @@ u8 func1002_intro[] = { u8 func0c01_midcutscene[] = { set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_ESCAPE_MIDCUTSCENE) + play_cutscene_track(MUSIC_ESCAPE_MIDCUTSCENE) camera_movement(0x01cb) cmd0175(60) hide_object(OBJ_HOVERBED) @@ -2961,8 +2961,8 @@ u8 func0c01_midcutscene[] = { label(0x68) set_stage_flag(STAGEFLAG_INTRO_DONE) mute_channel(CHANNEL_7) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_TARGET, CHRCFLAG_UNPLAYABLE) @@ -3016,7 +3016,7 @@ u8 func0c02_outro[] = { set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_ESCAPE_OUTRO_LONG) + play_cutscene_track(MUSIC_ESCAPE_OUTRO_LONG) camera_movement(0x02d2) label(0x32) hide_object(OBJ_UFO2) @@ -3072,8 +3072,8 @@ u8 func0c02_outro[] = { label(0x06) hide_object(OBJ_UFO2) if_stage_flag_eq(STAGEFLAG_JO_DOING_TERMINALS, FALSE, /*goto*/ 0x32) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track label(0x32) goto_next(0x06) @@ -3123,7 +3123,7 @@ u8 func0415_ufo_exit[] = { label(0x06) misc_command(0x0000, 0x0f, 0x00) - reset_ambience + stop_ambient_track hide_object(OBJ_UFO1) set_ailist(CHR_SELF, GAILIST_IDLE) set_ailist(CHR_SELF, GAILIST_IDLE) @@ -3161,7 +3161,7 @@ u8 func1021_jo_escaping[] = { stop_countdown_timer label(0x62) set_savefile_flag(SAVEFILEFLAG_DEFENSE_JON) - set_music_track(MUSIC_ESCAPE_OUTRO_LONG) + play_cutscene_track(MUSIC_ESCAPE_OUTRO_LONG) camera_movement(0x02d4) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) diff --git a/src/files/setup/setupwax.c b/src/files/setup/setupwax.c index 7aced715b..ba2996c1d 100644 --- a/src/files/setup/setupwax.c +++ b/src/files/setup/setupwax.c @@ -1937,7 +1937,7 @@ u8 func0416_intro[] = { unset_object_flag(0x62, OBJFLAG_00000100) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_INTRO) + play_cutscene_track(MUSIC_G5_INTRO) camera_movement(0x0472) cmd0175(60) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) @@ -2004,8 +2004,8 @@ u8 func0416_intro[] = { unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) chr_do_animation(0x0473, -2, -1, 0x06, 0x00, CHR_BOND, 2) - restart_default_music - reset_ambience + stop_cutscene_track + stop_ambient_track enter_firstperson set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -2016,7 +2016,7 @@ u8 func0417_outro[] = { hide_object(OBJ_SHUTTLE1) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) - set_music_track(MUSIC_G5_OUTRO) + play_cutscene_track(MUSIC_G5_OUTRO) camera_movement(0x0474) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) diff --git a/src/game/chr/chrai.c b/src/game/chr/chrai.c index 131f00fe4..05863e97f 100644 --- a/src/game/chr/chrai.c +++ b/src/game/chr/chrai.c @@ -267,8 +267,8 @@ bool (*g_CommandPointers[])(void) = { /*0x00f6*/ ai00f6, /*0x00f7*/ aiIfAllObjectivesComplete, /*0x00f8*/ aiIfPlayerIsInvincible, - /*0x00f9*/ aiAudioPlayXMusic, - /*0x00fa*/ aiAudioStopChannel, + /*0x00f9*/ aiPlayXTrack, + /*0x00fa*/ aiStopXTrack, /*0x00fb*/ aiChrExplosions, /*0x00fc*/ aiIfKillCountGreaterThan, /*0x00fd*/ ai00fd, @@ -365,8 +365,8 @@ bool (*g_CommandPointers[])(void) = { /*0x0158*/ NULL, /*0x0159*/ NULL, /*0x015a*/ NULL, - /*0x015b*/ aiAudioPlayMusic, - /*0x015c*/ aiAudioRestartMusic, + /*0x015b*/ aiPlayTrackIsolated, + /*0x015c*/ aiPlayDefaultTracks, /*0x015d*/ NULL, /*0x015e*/ NULL, /*0x015f*/ NULL, @@ -399,10 +399,10 @@ bool (*g_CommandPointers[])(void) = { /*0x017a*/ aiIfCanSeeAttackTarget, /*0x017b*/ aiIfChrKnockedOut, /*0x017c*/ aiAssignSound, - /*0x017d*/ aiAudioSetMusicTrack, - /*0x017e*/ aiAudioRestartDefaultMusic, - /*0x017f*/ aiAudioSetSfxTrack, - /*0x0180*/ aiAudioRestartSfx, + /*0x017d*/ aiPlayCutsceneTrack, + /*0x017e*/ aiStopCutsceneTrack, + /*0x017f*/ aiPlayTemporaryTrack, + /*0x0180*/ aiStopAmbientTrack, /*0x0181*/ aiIfPlayerLookingAtObject, /*0x0182*/ aiPunchOrKick, /*0x0183*/ aiIfTargetIsPlayer, @@ -492,7 +492,7 @@ bool (*g_CommandPointers[])(void) = { /*0x01d7*/ aiIfDistanceToTarget2LessThan, /*0x01d8*/ aiIfDistanceToTarget2GreaterThan, /*0x01d9*/ aiPlaySoundFromProp, - /*0x01da*/ aiPlayMusicContinuously, + /*0x01da*/ aiPlayTemporaryPrimaryTrack, /*0x01db*/ aiChrKill, /*0x01dc*/ aiRemoveWeaponFromInventory, /*0x01dd*/ ai01dd, diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 6db54af00..dbd89b33d 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -5953,11 +5953,11 @@ bool aiIfPlayerIsInvincible(void) /** * @cmd 00f9 */ -bool aiAudioPlayXMusic(void) +bool aiPlayXTrack(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; g_Vars.aioffset += 5; - audioPlayXTrack((s8)cmd[2], cmd[3], cmd[4]); + musicSetXReason((s8)cmd[2], cmd[3], cmd[4]); return false; } @@ -5965,11 +5965,11 @@ bool aiAudioPlayXMusic(void) /** * @cmd 00fa */ -bool aiAudioStopChannel(void) +bool aiStopXTrack(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; g_Vars.aioffset += 3; - audioStopTrack((s8)cmd[2]); + musicUnsetXReason((s8)cmd[2]); return false; } @@ -5977,16 +5977,16 @@ bool aiAudioStopChannel(void) /** * @cmd 015b */ -bool aiAudioPlayMusic(void) +bool aiPlayTrackIsolated(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; if (cmd[2] == MUSIC_CI_TRAINING) { u16 volume = optionsGetMusicVolume(); - audioPlayTrack(cmd[2]); + musicPlayTrackIsolated(cmd[2]); optionsSetMusicVolume(volume); } else { - audioPlayTrack(cmd[2]); + musicPlayTrackIsolated(cmd[2]); } g_Vars.aioffset += 3; @@ -5997,10 +5997,10 @@ bool aiAudioPlayMusic(void) /** * @cmd 015c */ -bool aiAudioRestartMusic(void) +bool aiPlayDefaultTracks(void) { g_Vars.aioffset += 2; - audioRestartTrack(); + musicPlayDefaultTracks(); return false; } @@ -6008,10 +6008,10 @@ bool aiAudioRestartMusic(void) /** * @cmd 017d */ -bool aiAudioSetMusicTrack(void) +bool aiPlayCutsceneTrack(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - audioSetTrack(cmd[2]); + musicStartCutscene(cmd[2]); g_Vars.aioffset += 3; return false; @@ -6020,10 +6020,10 @@ bool aiAudioSetMusicTrack(void) /** * @cmd 017e */ -bool aiAudioRestartDefaultMusic(void) +bool aiStopCutsceneTrack(void) { g_Vars.aioffset += 2; - audioRestartDefaultTrack(); + musicEndCutscene(); return false; } @@ -6031,10 +6031,10 @@ bool aiAudioRestartDefaultMusic(void) /** * @cmd 017f */ -bool aiAudioSetSfxTrack(void) +bool aiPlayTemporaryTrack(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - audioSetAuxTrack(cmd[2]); + musicStartTemporary(cmd[2]); g_Vars.aioffset += 3; return false; @@ -6043,10 +6043,10 @@ bool aiAudioSetSfxTrack(void) /** * @cmd 0180 */ -bool aiAudioRestartSfx(void) +bool aiStopAmbientTrack(void) { g_Vars.aioffset += 2; - audioRestartAuxTrack(); + musicEndAmbient(); return false; } @@ -11268,9 +11268,9 @@ bool aiMiscellaneous(void) var8006ae28 = value; break; case 5: - g_Rooms[room_id].flags &= ~ROOMFLAG_4000; + g_Rooms[room_id].flags &= ~ROOMFLAG_PLAYAMBIENTTRACK; if (value) { - g_Rooms[room_id].flags |= ROOMFLAG_4000; + g_Rooms[room_id].flags |= ROOMFLAG_PLAYAMBIENTTRACK; } break; case 6: @@ -11288,9 +11288,9 @@ bool aiMiscellaneous(void) case 9: for (i = 1; i < g_Vars.roomcount; i++) { if (value) { - g_Rooms[i].flags |= ROOMFLAG_4000; + g_Rooms[i].flags |= ROOMFLAG_PLAYAMBIENTTRACK; } else { - g_Rooms[i].flags &= ~ROOMFLAG_4000; + g_Rooms[i].flags &= ~ROOMFLAG_PLAYAMBIENTTRACK; } } break; @@ -11376,10 +11376,10 @@ bool aiPlaySoundFromProp(void) /** * @cmd 01da */ -bool aiPlayMusicContinuously(void) +bool aiPlayTemporaryPrimaryTrack(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - func0f16deb8(cmd[2]); + musicStartTemporaryPrimary(cmd[2]); g_Vars.aioffset += 3; return false; diff --git a/src/game/data/data_02a0e0.c b/src/game/data/data_02a0e0.c index 2b442510d..4747cfc51 100644 --- a/src/game/data/data_02a0e0.c +++ b/src/game/data/data_02a0e0.c @@ -18,10 +18,10 @@ #include "stagesetup.h" #include "types.h" -s32 g_AudioCurrentBgMusicNum = -1; +s32 g_MenuTrack = -1; u32 var800840c4 = 0x00000000; -s32 var800840c8 = -1; -s32 var800840cc = -1; +s32 g_TemporaryPrimaryTrack = -1; +s32 g_TemporaryAmbientTrack = -1; s32 var800840d0 = -1; u32 var800840d4 = 0x00000000; u32 var800840d8 = 0x00000000; diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index 90d875ac4..ceda79e3c 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -1314,7 +1314,7 @@ glabel var7f1a863c .L0f01d00c: /* f01d00c: 52000004 */ beqzl $s0,.L0f01d020 /* f01d010: 2419ffff */ addiu $t9,$zero,-1 -/* f01d014: 0fc5b6c5 */ jal audioSetBgMusicForMenu +/* f01d014: 0fc5b6c5 */ jal musicStartForMenu /* f01d018: 00000000 */ nop .L0f01d01c: /* f01d01c: 2419ffff */ addiu $t9,$zero,-1 @@ -2415,7 +2415,7 @@ glabel var7f1a863c // } // // if (pass) { -// audioSetBgMusicForMenu(); +// musicStartForMenu(); // } // } // diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 3ca251222..ecb0383db 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -5191,7 +5191,7 @@ glabel var7f1ad630 /* f0baea4: 55800016 */ bnezl $t4,.L0f0baf00 /* f0baea8: 8fbf0014 */ lw $ra,0x14($sp) .L0f0baeac: -/* f0baeac: 0fc5b6c5 */ jal audioSetBgMusicForMenu +/* f0baeac: 0fc5b6c5 */ jal musicStartForMenu /* f0baeb0: 00000000 */ nop /* f0baeb4: 10000012 */ b .L0f0baf00 /* f0baeb8: 8fbf0014 */ lw $ra,0x14($sp) @@ -12600,7 +12600,7 @@ Gfx *func0f0c07c8(Gfx *gdl) if (pass) { if (g_Vars.mplayerisrunning == false) { - audioPlaySoloDeathTrack(); + musicStartSoloDeath(); } else { func0f16dd14(); } diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 82eae5da9..a54e1c6f6 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -8998,7 +8998,7 @@ glabel var7f1b29f8 /* f0f8538: 24040004 */ addiu $a0,$zero,0x4 /* f0f853c: 1000001e */ b .L0f0f85b8 /* f0f8540: 00000000 */ nop -/* f0f8544: 0fc5b6c5 */ jal audioSetBgMusicForMenu +/* f0f8544: 0fc5b6c5 */ jal musicStartForMenu /* f0f8548: 00000000 */ nop /* f0f854c: 3c03800a */ lui $v1,%hi(g_MenuData) /* f0f8550: 246319c0 */ addiu $v1,$v1,%lo(g_MenuData) @@ -9022,7 +9022,7 @@ glabel var7f1b29f8 /* f0f8594: 24040001 */ addiu $a0,$zero,0x1 /* f0f8598: 10000007 */ b .L0f0f85b8 /* f0f859c: 00000000 */ nop -/* f0f85a0: 0fc5b6c5 */ jal audioSetBgMusicForMenu +/* f0f85a0: 0fc5b6c5 */ jal musicStartForMenu /* f0f85a4: 00000000 */ nop /* f0f85a8: 3c03800a */ lui $v1,%hi(g_MenuData) /* f0f85ac: 246319c0 */ addiu $v1,$v1,%lo(g_MenuData) @@ -9045,7 +9045,7 @@ glabel var7f1b29f8 void func0f0f85e0(struct menudialog *dialog, s32 root) { if (dialog == &g_MainMenuMenuDialog) { - audioSetBgMusicForMenu(); + musicStartForMenu(); } menuPushRootDialog(dialog, root); diff --git a/src/game/game_1371b0.c b/src/game/game_1371b0.c index 35d18b9f0..7890f5db0 100644 --- a/src/game/game_1371b0.c +++ b/src/game/game_1371b0.c @@ -3512,7 +3512,7 @@ glabel var7f1b5874 /* f13a308: 8e2b0000 */ lw $t3,0x0($s1) /* f13a30c: 0fc5b6cf */ jal func0f16db3c /* f13a310: a1604208 */ sb $zero,0x4208($t3) -/* f13a314: 0fc5b52e */ jal func0f16d4b8 +/* f13a314: 0fc5b52e */ jal musicStartPrimary /* f13a318: 4600a306 */ mov.s $f12,$f20 .L0f13a31c: /* f13a31c: 5200000a */ beqzl $s0,.L0f13a348 @@ -4445,10 +4445,10 @@ glabel var7f1b5930 /* f13aedc: 8d29f138 */ lw $t1,%lo(var8007f138)($t1) /* f13aee0: 1120000b */ beqz $t1,.L0f13af10 /* f13aee4: 00000000 */ nop -/* f13aee8: 0fc5b67c */ jal func0f16d9f0 +/* f13aee8: 0fc5b67c */ jal musicSetStage /* f13aeec: 2404005c */ addiu $a0,$zero,0x5c /* f13aef0: 44806000 */ mtc1 $zero,$f12 -/* f13aef4: 0fc5b52e */ jal func0f16d4b8 +/* f13aef4: 0fc5b52e */ jal musicStartPrimary /* f13aef8: 00000000 */ nop /* f13aefc: 3c04800a */ lui $a0,%hi(var800a416c) /* f13af00: 3c06800a */ lui $a2,%hi(var800a416c) @@ -4456,9 +4456,9 @@ glabel var7f1b5930 /* f13af08: 10000009 */ b .L0f13af30 /* f13af0c: 8c84416c */ lw $a0,%lo(var800a416c)($a0) .L0f13af10: -/* f13af10: 0fc5b67c */ jal func0f16d9f0 +/* f13af10: 0fc5b67c */ jal musicSetStage /* f13af14: 2404005c */ addiu $a0,$zero,0x5c -/* f13af18: 0fc5b647 */ jal audioSetBgMusic +/* f13af18: 0fc5b647 */ jal musicStartMenu2 /* f13af1c: 24040058 */ addiu $a0,$zero,0x58 /* f13af20: 3c04800a */ lui $a0,%hi(var800a416c) /* f13af24: 3c06800a */ lui $a2,%hi(var800a416c) diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 3b528f91e..9be891e06 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -271,7 +271,7 @@ void func0f167e7c(s32 stagenum) g_Vars.unk000488 = 0; g_Vars.unk000440 = -1; g_Vars.unk000444 = -1; - g_Vars.unk0004c8 = 0; + g_Vars.dontplaynrg = false; g_Vars.in_cutscene = 0; g_Vars.unk0004d3 = 0; g_Vars.unk0004d6 = 0; @@ -308,9 +308,9 @@ void func0f167e7c(s32 stagenum) func0f0147a0(g_Vars.stagenum); if (g_Vars.normmplayerisrunning) { - func0f16d9a8(stagenum); + musicSetStageAndStartMusic(stagenum); } else { - func0f16d9f0(stagenum); + musicSetStage(stagenum); } if (g_Vars.normmplayerisrunning) { diff --git a/src/game/game_16cfa0.c b/src/game/game_16cfa0.c index d8d3b442c..dc1f87d45 100644 --- a/src/game/game_16cfa0.c +++ b/src/game/game_16cfa0.c @@ -17,7 +17,7 @@ #include "lib/lib_11420.h" #include "types.h" -u16 audioGetVolume(void) +u16 musicGetVolume(void) { u32 volume; @@ -34,7 +34,7 @@ u16 audioGetVolume(void) return volume; } -void func0f16cfe8(u16 volume) +void musicSetVolume(u16 volume) { s32 i; @@ -43,7 +43,7 @@ void func0f16cfe8(u16 volume) } for (i = 0; i < ARRAYCOUNT(var800aaa38); i++) { - if (var800aaa38[i].unk00 != 0 && var800aaa38[i].unk00 != 5) { + if (var800aaa38[i].tracktype != 0 && var800aaa38[i].tracktype != TRACKTYPE_AMBIENT) { func0000fd9c(&var80094ed8[i], volume); } } @@ -51,12 +51,12 @@ void func0f16cfe8(u16 volume) var800840ec = volume; } -bool func0f16d0a8(s32 arg0, s32 arg1) +bool func0f16d0a8(s32 tracktype, s32 arg1) { s32 i; for (i = 0; i < ARRAYCOUNT(var800aaa38); i++) { - if (var800aaa38[i].unk00 == arg0) { + if (var800aaa38[i].tracktype == tracktype) { switch (arg1) { case 0: return var800aaa38[i].unk04 <= 0; case 1: return var800aaa38[i].unk04; @@ -68,12 +68,12 @@ bool func0f16d0a8(s32 arg0, s32 arg1) return false; } -s32 func0f16d124(s32 arg0) +s32 func0f16d124(s32 tracktype) { s32 i; for (i = 0; i < ARRAYCOUNT(var800aaa38); i++) { - if (var800aaa38[i].unk00 == arg0) { + if (var800aaa38[i].tracktype == tracktype) { if (var800aaa38[i].unk08) { return 2; } @@ -87,12 +87,12 @@ s32 func0f16d124(s32 arg0) return 0; } -s32 func0f16d180(s32 arg0) +s32 func0f16d180(s32 tracktype) { s32 i; for (i = 0; i < ARRAYCOUNT(var800aaa38); i++) { - if (var800aaa38[i].unk00 == arg0) { + if (var800aaa38[i].tracktype == tracktype) { return i; } } @@ -100,10 +100,10 @@ s32 func0f16d180(s32 arg0) return -1; } -void func0f16d1bc(u32 arg0, u32 tracknum, f32 arg2, u16 volume) +void musicStart(u32 tracktype, u32 tracknum, f32 arg2, u16 volume) { if (var8005dda0 == 0) { - var800aa5d8[var800840c4].unk00 = arg0; + var800aa5d8[var800840c4].tracktype = tracktype; var800aa5d8[var800840c4].tracknum = tracknum; var800aa5d8[var800840c4].unk0c = arg2; var800aa5d8[var800840c4].volume = volume; @@ -115,10 +115,10 @@ void func0f16d1bc(u32 arg0, u32 tracknum, f32 arg2, u16 volume) } } -void func0f16d240(s32 arg0) +void musicEnd(s32 tracktype) { if (var8005dda0 == 0) { - var800aa5d8[var800840c4].unk00 = arg0; + var800aa5d8[var800840c4].tracktype = tracktype; var800aa5d8[var800840c4].unk12 = 2; var800aa5d8[var800840c4].unk14 = var800840d4++; var800aa5d8[var800840c4].unk18 = 0; @@ -127,10 +127,10 @@ void func0f16d240(s32 arg0) } } -void func0f16d2ac(s32 arg0, f32 arg1, s32 arg2) +void func0f16d2ac(s32 tracktype, f32 arg1, s32 arg2) { if (var8005dda0 == 0) { - var800aa5d8[var800840c4].unk00 = arg0; + var800aa5d8[var800840c4].tracktype = tracktype; var800aa5d8[var800840c4].unk0c = arg1; var800aa5d8[var800840c4].unk08 = arg2; var800aa5d8[var800840c4].unk12 = 3; @@ -147,9 +147,9 @@ void func0f16d324(void) if (var8005dda0 == 0) { for (i = 0; i < 4; i++) { - var800aaa68[i] = 0; + g_AudioXReasonsActive[i] = 0; var800aaa78[i] = 0; - var800aaa88[i] = 0; + g_AudioXReasonDurations[i] = 0; } func0f16d430(); @@ -158,16 +158,16 @@ void func0f16d324(void) var800840e8 = 0; var800840f0 = 0; - g_AudioCurrentBgMusicNum = -1; - var800840c8 = -1; - var800840cc = -1; + g_MenuTrack = -1; + g_TemporaryPrimaryTrack = -1; + g_TemporaryAmbientTrack = -1; var800840d8 = 0; } } void func0f16d3d0(void) { - var800aa5d8[0].unk00 = 6; + var800aa5d8[0].tracktype = TRACKTYPE_6; var800aa5d8[0].unk12 = 4; var800aa5d8[0].unk14 = var800840d4++; var800aa5d8[0].unk18 = 0; @@ -186,7 +186,7 @@ void func0f16d430(void) void func0f16d44c(void) { - var800aa5d8[var800840c4].unk00 = 6; + var800aa5d8[var800840c4].tracktype = TRACKTYPE_6; var800aa5d8[var800840c4].unk12 = 5; var800aa5d8[var800840c4].unk14 = var800840d4++; var800aa5d8[var800840c4].tracknum = var800840d0; @@ -196,28 +196,28 @@ void func0f16d44c(void) var800aa5d8[0].unk16 = 0; } -#define TRACKNUM2() (var800840c8 != -1 ? var800840c8 : stageGetPrimaryTrack(var800aa5d0)) +#define PRIMARYTRACK() (g_TemporaryPrimaryTrack != -1 ? g_TemporaryPrimaryTrack : stageGetPrimaryTrack(g_MusicStageNum)) -void func0f16d4b8(f32 arg0) +void musicStartPrimary(f32 arg0) { - if (TRACKNUM2() >= 0) { - func0f16d1bc(1, TRACKNUM2(), arg0, audioGetVolume()); + if (PRIMARYTRACK() >= 0) { + musicStart(TRACKTYPE_PRIMARY, PRIMARYTRACK(), arg0, musicGetVolume()); } } -#define TRACKNUM() (var800840cc != -1 ? var800840cc : stageGetAmbientTrack(var800aa5d0)) +#define AMBIENTTRACK() (g_TemporaryAmbientTrack != -1 ? g_TemporaryAmbientTrack : stageGetAmbientTrack(g_MusicStageNum)) -void func0f16d548(f32 arg0) +void musicStartAmbient(f32 arg0) { s32 pass = false; - if (TRACKNUM() >= 0) { - if (var800840cc != -1) { + if (AMBIENTTRACK() >= 0) { + if (g_TemporaryAmbientTrack != -1) { pass = true; - } else if (audioIsAnyPlayerInRoomWithFlag4000()) { - if (g_Vars.tickmode != TICKMODE_6 && TRACKNUM() != stageGetAmbientTrack(var800aa5d0)) { - func0f16d240(5); - audioSetAuxTrack(stageGetAmbientTrack(var800aa5d0)); + } else if (musicIsAnyPlayerInAmbientRoom()) { + if (g_Vars.tickmode != TICKMODE_6 && AMBIENTTRACK() != stageGetAmbientTrack(g_MusicStageNum)) { + musicEnd(TRACKTYPE_AMBIENT); + musicStartTemporary(stageGetAmbientTrack(g_MusicStageNum)); return; } @@ -226,15 +226,15 @@ void func0f16d548(f32 arg0) } if (pass) { - pass = func0f16d124(5); + pass = func0f16d124(TRACKTYPE_AMBIENT); if (pass == 0 || pass == 2) { - func0f16d1bc(5, TRACKNUM(), arg0, VOLUME(g_SfxVolume)); + musicStart(TRACKTYPE_AMBIENT, AMBIENTTRACK(), arg0, VOLUME(g_SfxVolume)); } } } -bool audioIsAnyPlayerInRoomWithFlag4000(void) +bool musicIsAnyPlayerInAmbientRoom(void) { s32 i; @@ -260,7 +260,7 @@ bool audioIsAnyPlayerInRoomWithFlag4000(void) && g_Vars.players[i]->prop->rooms[0] != -1) { bool hasflag; - if (g_Rooms[g_Vars.players[i]->prop->rooms[0]].flags & ROOMFLAG_4000) { + if (g_Rooms[g_Vars.players[i]->prop->rooms[0]].flags & ROOMFLAG_PLAYAMBIENTTRACK) { hasflag = true; } else { hasflag = false; @@ -275,44 +275,44 @@ bool audioIsAnyPlayerInRoomWithFlag4000(void) return false; } -void func0f16d89c(f32 arg0) +void musicStartX(f32 arg0) { - func0f16d1bc(2, stageGetXTrack(var800aa5d0), arg0, audioGetVolume()); + musicStart(TRACKTYPE_X, stageGetXTrack(g_MusicStageNum), arg0, musicGetVolume()); } -void func0f16d8e0(f32 arg0) +void musicStartMenu(f32 arg0) { - func0f16d1bc(3, menuChooseMusic(), arg0, audioGetVolume()); + musicStart(TRACKTYPE_MENU, menuChooseMusic(), arg0, musicGetVolume()); } -void audioSetBgMusic(s32 tracknum) +void musicStartMenu2(s32 tracknum) { - if (tracknum != g_AudioCurrentBgMusicNum) { - func0f16d240(3); - func0f16d240(4); - func0f16d2ac(1, 0.5f, 1); - func0f16d2ac(2, 0.5f, 1); - func0f16d2ac(5, 0.5f, 1); - func0f16d1bc(3, tracknum, 0, audioGetVolume()); + if (tracknum != g_MenuTrack) { + musicEnd(TRACKTYPE_MENU); + musicEnd(TRACKTYPE_DEATH); + func0f16d2ac(TRACKTYPE_PRIMARY, 0.5f, 1); + func0f16d2ac(TRACKTYPE_X, 0.5f, 1); + func0f16d2ac(TRACKTYPE_AMBIENT, 0.5f, 1); + musicStart(TRACKTYPE_MENU, tracknum, 0, musicGetVolume()); } - g_AudioCurrentBgMusicNum = tracknum; + g_MenuTrack = tracknum; } -void func0f16d9a8(s32 stagenum) +void musicSetStageAndStartMusic(s32 stagenum) { - var800aa5d0 = stagenum; + g_MusicStageNum = stagenum; - func0f16d4b8(0); + musicStartPrimary(0); - if (stageGetAmbientTrack(var800aa5d0) >= 0) { - func0f16d548(0); + if (stageGetAmbientTrack(g_MusicStageNum) >= 0) { + musicStartAmbient(0); } } -void func0f16d9f0(s32 stagenum) +void musicSetStage(s32 stagenum) { - var800aa5d0 = stagenum; + g_MusicStageNum = stagenum; } void func0f16d9fc(void) @@ -324,12 +324,12 @@ void func0f16d9fc(void) void func0f16da2c(void) { - if (var800840d8 == 0 && stageGetXTrack(var800aa5d0) >= 0) { - func0f16d240(2); - func0f16d240(3); - func0f16d240(4); - func0f16d2ac(1, 0.5, 1); - func0f16d89c(0); + if (var800840d8 == 0 && stageGetXTrack(g_MusicStageNum) >= 0) { + musicEnd(TRACKTYPE_X); + musicEnd(TRACKTYPE_MENU); + musicEnd(TRACKTYPE_DEATH); + func0f16d2ac(TRACKTYPE_PRIMARY, 0.5, 1); + musicStartX(0); var800840d8 = 1; } @@ -338,72 +338,72 @@ void func0f16da2c(void) void func0f16daa4(void) { if (var800840d8) { - func0f16d240(3); - func0f16d240(4); - func0f16d2ac(2, 1, 0); + musicEnd(TRACKTYPE_MENU); + musicEnd(TRACKTYPE_DEATH); + func0f16d2ac(TRACKTYPE_X, 1, 0); - if (g_Vars.unk0004c8 == 0) { - func0f16d4b8(0.5); + if (g_Vars.dontplaynrg == false) { + musicStartPrimary(0.5); } var800840d8 = 0; } } -void audioSetBgMusicForMenu(void) +void musicStartForMenu(void) { - audioSetBgMusic(menuChooseMusic()); + musicStartMenu2(menuChooseMusic()); } void func0f16db3c(void) { - func0f16d2ac(3, 1, 0); + func0f16d2ac(TRACKTYPE_MENU, 1, 0); - if (func0f16d0a8(2, 1)) { - func0f16d89c(1); + if (func0f16d0a8(TRACKTYPE_X, 1)) { + musicStartX(1); } else { - func0f16d4b8(1); + musicStartPrimary(1); } - g_AudioCurrentBgMusicNum = -1; + g_MenuTrack = -1; } -void audioPlaySoloDeathTrack(void) +void musicStartSoloDeath(void) { var800840e8 = 1; func0f16d430(); - func0f16d240(3); - func0f16d240(4); - audioStopTrack(-1); - func0f16d240(2); - func0f16d240(1); - func0f16d240(5); - func0f16d1bc(1, MUSIC_DEATH_SOLO, 0, VOLUME(g_SfxVolume) > audioGetVolume() ? VOLUME(g_SfxVolume) : audioGetVolume()); + musicEnd(TRACKTYPE_MENU); + musicEnd(TRACKTYPE_DEATH); + musicUnsetXReason(-1); + musicEnd(TRACKTYPE_X); + musicEnd(TRACKTYPE_PRIMARY); + musicEnd(TRACKTYPE_AMBIENT); + musicStart(TRACKTYPE_PRIMARY, MUSIC_DEATH_SOLO, 0, VOLUME(g_SfxVolume) > musicGetVolume() ? VOLUME(g_SfxVolume) : musicGetVolume()); func0f16d44c(); } -void audioPlayMpDeathTrack(f32 arg0) +void musicStartMpDeath(f32 arg0) { func0f16d430(); - func0f16d1bc(4, MUSIC_DEATH_MP, arg0, VOLUME(g_SfxVolume) > audioGetVolume() ? VOLUME(g_SfxVolume) : audioGetVolume()); + musicStart(TRACKTYPE_DEATH, MUSIC_DEATH_MP, arg0, VOLUME(g_SfxVolume) > musicGetVolume() ? VOLUME(g_SfxVolume) : musicGetVolume()); func0f16d44c(); } void func0f16dd14(void) { func0f16d430(); - func0f16d240(3); - func0f16d240(4); - func0f16d240(5); + musicEnd(TRACKTYPE_MENU); + musicEnd(TRACKTYPE_DEATH); + musicEnd(TRACKTYPE_AMBIENT); if (var800840d8) { - func0f16d2ac(2, 0.1f, 1); + func0f16d2ac(TRACKTYPE_X, 0.1f, 1); } else { - func0f16d2ac(1, 0.1f, 1); + func0f16d2ac(TRACKTYPE_PRIMARY, 0.1f, 1); } - audioPlayMpDeathTrack(0); + musicStartMpDeath(0); var800840f0 = 1200; var800840dc = 1; func0f16d44c(); @@ -411,112 +411,112 @@ void func0f16dd14(void) void func0f16ddb0(void) { - func0f16d2ac(4, 2, 0); + func0f16d2ac(TRACKTYPE_DEATH, 2, 0); if (var800840d8) { - func0f16d89c(2); + musicStartX(2); } else { - func0f16d4b8(2); + musicStartPrimary(2); } var800840dc = 0; } -void audioPlayTrack(s32 tracknum) +void musicPlayTrackIsolated(s32 tracknum) { func0f16d430(); - func0f16d240(3); - func0f16d240(4); - audioStopTrack(-1); - func0f16d240(2); - func0f16d240(1); - func0f16d240(5); - func0f16d1bc(1, tracknum, 0, audioGetVolume()); + musicEnd(TRACKTYPE_MENU); + musicEnd(TRACKTYPE_DEATH); + musicUnsetXReason(-1); + musicEnd(TRACKTYPE_X); + musicEnd(TRACKTYPE_PRIMARY); + musicEnd(TRACKTYPE_AMBIENT); + musicStart(TRACKTYPE_PRIMARY, tracknum, 0, musicGetVolume()); func0f16d44c(); } -void audioRestartTrack(void) +void musicPlayDefaultTracks(void) { - func0f16d240(1); - func0f16d240(5); - func0f16d4b8(0.5f); + musicEnd(TRACKTYPE_PRIMARY); + musicEnd(TRACKTYPE_AMBIENT); + musicStartPrimary(0.5f); } -void func0f16deb8(s32 tracknum) +void musicStartTemporaryPrimary(s32 tracknum) { - func0f16d240(1); + musicEnd(TRACKTYPE_PRIMARY); - var800840c8 = tracknum; + g_TemporaryPrimaryTrack = tracknum; - func0f16d4b8(0.5f); + musicStartPrimary(0.5f); } -void audioSetTrack(s32 tracknum) +void musicStartCutscene(s32 tracknum) { u32 volume; - func0f16d240(3); - func0f16d240(4); - audioStopTrack(-1); - func0f16d240(2); - func0f16d240(1); + musicEnd(TRACKTYPE_MENU); + musicEnd(TRACKTYPE_DEATH); + musicUnsetXReason(-1); + musicEnd(TRACKTYPE_X); + musicEnd(TRACKTYPE_PRIMARY); - if (g_SfxVolume < audioGetVolume()) { - volume = audioGetVolume(); + if (g_SfxVolume < musicGetVolume()) { + volume = musicGetVolume(); } else { volume = g_SfxVolume; } - func0f16d1bc(1, tracknum, 0, volume); + musicStart(TRACKTYPE_PRIMARY, tracknum, 0, volume); - g_Vars.unk0004c8 = 1; + g_Vars.dontplaynrg = true; } -void audioRestartDefaultTrack(void) +void musicEndCutscene(void) { - g_Vars.unk0004c8 = 0; + g_Vars.dontplaynrg = false; if (var800624a4 == 0) { - func0f16d240(1); - func0f16d240(5); - func0f16d4b8(0.5f); + musicEnd(TRACKTYPE_PRIMARY); + musicEnd(TRACKTYPE_AMBIENT); + musicStartPrimary(0.5f); } } -void audioSetAuxTrack(s32 tracknum) +void musicStartTemporary(s32 tracknum) { - var800840cc = tracknum; - func0f16d240(5); + g_TemporaryAmbientTrack = tracknum; + musicEnd(TRACKTYPE_AMBIENT); - func0f16d1bc(5, tracknum, 0, VOLUME(g_SfxVolume)); + musicStart(TRACKTYPE_AMBIENT, tracknum, 0, VOLUME(g_SfxVolume)); } -void audioRestartAuxTrack(void) +void musicEndAmbient(void) { - var800840cc = -1; - func0f16d240(5); + g_TemporaryAmbientTrack = -1; + musicEnd(TRACKTYPE_AMBIENT); } -void audioPlayXTrack(s32 index, u32 arg1, u32 duration) +void musicSetXReason(s32 reason, u32 arg1, u32 duration) { - if (var800aaa68[index] == false) { - var800aaa68[index] = true; - var800aaa78[index] = arg1 * 240; - var800aaa88[index] = duration * 240; + if (g_AudioXReasonsActive[reason] == false) { + g_AudioXReasonsActive[reason] = true; + var800aaa78[reason] = arg1 * 240; + g_AudioXReasonDurations[reason] = duration * 240; } } -void audioStopTrack(s32 index) +void musicUnsetXReason(s32 reason) { s32 i; - if (index >= 0) { - var800aaa68[index] = false; + if (reason >= 0) { + g_AudioXReasonsActive[reason] = false; } else { for (i = 0; i < 4; i++) { - var800aaa68[i] = false; + g_AudioXReasonsActive[i] = false; var800aaa78[i] = 0; - var800aaa88[i] = 0; + g_AudioXReasonDurations[i] = 0; } if (var800840d8) { @@ -527,16 +527,14 @@ void audioStopTrack(s32 index) void func0f16e138(void) { - if (var800840cc == -1) { - if (audioIsAnyPlayerInRoomWithFlag4000()) { - func0f16d548(1); - } else if (func0f16d124(5) == 1) { - func0f16d2ac(5, 1, 1); - } - } else { - if (stageGetAmbientTrack(var800aa5d0) >= 0) { - func0f16d548(1); + if (g_TemporaryAmbientTrack == -1) { + if (musicIsAnyPlayerInAmbientRoom()) { + musicStartAmbient(1); + } else if (func0f16d124(TRACKTYPE_AMBIENT) == 1) { + func0f16d2ac(TRACKTYPE_AMBIENT, 1, 1); } + } else if (stageGetAmbientTrack(g_MusicStageNum) >= 0) { + musicStartAmbient(1); } } diff --git a/src/game/game_179060.c b/src/game/game_179060.c index 3598a1ac8..80de93f3e 100644 --- a/src/game/game_179060.c +++ b/src/game/game_179060.c @@ -4885,7 +4885,7 @@ glabel var7f1b8228 /* f17df04: 00001025 */ or $v0,$zero,$zero /* f17df08: 0fc63088 */ jal mpGetTrackMusicNum /* f17df0c: 00602025 */ or $a0,$v1,$zero -/* f17df10: 0fc5b647 */ jal audioSetBgMusic +/* f17df10: 0fc5b647 */ jal musicStartMenu2 /* f17df14: 00402025 */ or $a0,$v0,$zero /* f17df18: 10000012 */ b .L0f17df64 /* f17df1c: 00001025 */ or $v0,$zero,$zero diff --git a/src/game/mplayer.c b/src/game/mplayer.c index aaf3587da..427dd3829 100644 --- a/src/game/mplayer.c +++ b/src/game/mplayer.c @@ -4865,7 +4865,7 @@ glabel func0f18b9e4 /* f18ba60: 00444021 */ addu $t0,$v0,$a0 /* f18ba64: 01034821 */ addu $t1,$t0,$v1 /* f18ba68: 01259021 */ addu $s2,$t1,$a1 -/* f18ba6c: 0fc5b6c5 */ jal audioSetBgMusicForMenu +/* f18ba6c: 0fc5b6c5 */ jal musicStartForMenu /* f18ba70: 02409825 */ or $s3,$s2,$zero /* f18ba74: 0fc625cb */ jal mpSetPaused /* f18ba78: 24040002 */ addiu $a0,$zero,0x2 diff --git a/src/game/pdoptions.c b/src/game/pdoptions.c index d7d2bcdc1..8d74dada9 100644 --- a/src/game/pdoptions.c +++ b/src/game/pdoptions.c @@ -280,10 +280,10 @@ void optionsSetScreenSplit(u8 split) s32 optionsGetMusicVolume(void) { - return audioGetVolume(); + return musicGetVolume(); } void optionsSetMusicVolume(u16 volume) { - func0f16cfe8(volume); + musicSetVolume(volume); } diff --git a/src/game/title.c b/src/game/title.c index 2cf336ca3..d7619105f 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -1948,7 +1948,7 @@ void func0f017980(void) g_TitleTimer = 549; var80062730 = 0; - func0f16deb8(1); + musicStartTemporaryPrimary(1); } GLOBAL_ASM( @@ -3960,7 +3960,7 @@ void titleTickRareLogo(void) g_TitleTimer++; } else { if (g_TitleTimer == 0) { - func0f16d1bc(1, MUSIC_TITLE1, 0, 0x7fff); + musicStart(TRACKTYPE_PRIMARY, MUSIC_TITLE1, 0, 0x7fff); } g_TitleTimer += g_Vars.lvupdate240_60; diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index f08d5b33f..e8f211cb6 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -18132,13 +18132,13 @@ struct audiohandle *g_BoostAndSlayerAudioHandles[3] = {NULL}; u32 var800aa5bc = 0; s32 g_BoostAndSlayerActiveTypes[3] = {0}; u32 var800aa5cc = 0; -s32 var800aa5d0 = 0; +s32 g_MusicStageNum = 0; u32 var800aa5d4 = 0; struct var800aa5d8 var800aa5d8[40] = {0}; struct var800aaa38 var800aaa38[3] = {0}; -u32 var800aaa68[4] = {0}; +u32 g_AudioXReasonsActive[4] = {0}; u32 var800aaa78[4] = {0}; -u32 var800aaa88[4] = {0}; +u32 g_AudioXReasonDurations[4] = {0}; u32 var800aaa98 = 0; u32 var800aaa9c = 0; char *g_LangBanks[69] = {NULL}; diff --git a/src/include/commands.h b/src/include/commands.h index 7921e29b3..97ac8396a 100644 --- a/src/include/commands.h +++ b/src/include/commands.h @@ -2192,20 +2192,35 @@ /** * Starts the X music theme. The music will play for the given number of seconds - * before reverting to the standard level theme. + * before reverting to the primary track. + * + * The xreason argument is expected to be an XREASON constant. The command can + * be called multiple times with different XREASONs and durations, essentially + * overlapping them and causing the X music to continue playing while any reason + * is still in its duration. In practice this feature is not used - xreason is + * always 1 (XREASON_DEFAULT). + * + * The u2 argument appears to be a timer value as well, but its purpose is + * unknown. */ -#define play_x_music(channel, seconds) \ +#define play_x_track(xreason, u2, seconds) \ mkshort(0x00f9), \ - 0x01, \ - channel, \ + xreason, \ + u2, \ seconds, /** - * Stops the music in the given channel. + * Stops the X music which has the given reason. If there is no other reason to + * play X music then the level's primary track will be played. + * + * See the description of play_x_track for an explanation of xreasons. + * + * The special xreason value of -1 can be used to stop the X music regardless of + * reason. */ -#define stop_music_channel(channel) \ +#define stop_x_track(xreason) \ mkshort(0x00fa), \ - channel, + xreason, /** * Surround the given player in infinite explosions. @@ -3043,16 +3058,23 @@ bool, /** - * Plays the given music track. + * Plays the given track in isolation. + * + * Any existing X track and ambient track is stopped, and the given track will + * play. + * + * It's used to start the CI training music and the Skedar King battle music. */ -#define play_music_track(id) \ +#define play_track_isolated(id) \ mkshort(0x015b), \ id, /** - * Restarts the default stage music from the beginning. + * Restarts the default tracks (primary and ambient, if any) from the beginning. + * + * It's used to restart the default CI music after a training session. */ -#define restart_music \ +#define play_default_tracks \ mkshort(0x015c), /** @@ -3270,30 +3292,39 @@ channel, /** - * Sets the music track for this stage. + * Plays the given track for the purpose of a cutscene. + * + * When playing via this command, the X music will be impossible to trigger + * until stop_cutscene_track is called. */ -#define set_music_track(id) \ +#define play_cutscene_track(tracknum) \ mkshort(0x017d), \ - id, + tracknum, /** - * Restarts the default stage music. + * Stops the cutscene track and restarts the default tracks for the current + * stage. */ -#define restart_default_music \ +#define stop_cutscene_track \ mkshort(0x017e), /** - * Sets the sound effects track. This is typically background noise like wind, - * waves and the Area 51 announcements. + * Overrides the ambient track temporarily to the given one and plays it. + * + * It is used to change the ambient theme for the Defection intro and Extraction + * outro to traffic noises. */ -#define set_sfx_track(id) \ +#define play_temporary_track(tracknum) \ mkshort(0x017f), \ - id, + tracknum, /** - * Resets the sound effects track. + * Stops the ambient track. + * + * Typically used when ending a cutscene, because cutscenes can have their own + * ambient tracks. */ -#define reset_ambience \ +#define stop_ambient_track \ mkshort(0x0180), /** diff --git a/src/include/constants.h b/src/include/constants.h index 842519dbd..d04ad494a 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2386,11 +2386,11 @@ #define RACE_EYESPY 3 #define RACE_ROBOT 4 -#define ROOMFLAG_DISABLED 0x0001 -#define ROOMFLAG_VISIBLEBYPLAYER 0x0004 -#define ROOMFLAG_VISIBLEBYAIBOT 0x0008 -#define ROOMFLAG_4000 0x4000 -#define ROOMFLAG_8000 0x8000 +#define ROOMFLAG_DISABLED 0x0001 +#define ROOMFLAG_VISIBLEBYPLAYER 0x0004 +#define ROOMFLAG_VISIBLEBYAIBOT 0x0008 +#define ROOMFLAG_PLAYAMBIENTTRACK 0x4000 +#define ROOMFLAG_8000 0x8000 #define SAVEFILEFLAG_P1_FORWARDPITCH 0x00 #define SAVEFILEFLAG_P1_AUTOAIM 0x01 @@ -2788,11 +2788,30 @@ #define TITLEAIMODE_RAREPRESENTS2 4 #define TITLEAIMODE_PDLOGO 5 +#define TRACKTYPE_PRIMARY 1 +#define TRACKTYPE_X 2 +#define TRACKTYPE_MENU 3 +#define TRACKTYPE_DEATH 4 +#define TRACKTYPE_AMBIENT 5 +#define TRACKTYPE_6 6 + +#define VERSION_NTSC_BETA 0 +#define VERSION_NTSC_1_0 1 +#define VERSION_NTSC_FINAL 2 +#define VERSION_PAL_BETA 3 +#define VERSION_PAL_FINAL 4 +#define VERSION_JAP_FINAL 5 + #define VISIONMODE_NORMAL 0 #define VISIONMODE_XRAY 1 #define VISIONMODE_SLAYERROCKET 2 #define VISIONMODE_3 3 +#define VOICEBOX_0 0 +#define VOICEBOX_1 1 +#define VOICEBOX_2 2 +#define VOICEBOX_3 3 + #define WAYMODE_EXPENSIVE 0 #define WAYMODE_CHEAP 6 @@ -2911,6 +2930,12 @@ #define WEATHERTYPE_RAIN 0 #define WEATHERTYPE_SNOW 1 +// Reasons for playing X music +#define XREASON_0 0 +#define XREASON_DEFAULT 1 +#define XREASON_2 2 +#define XREASON_3 3 + // Heads and bodies #define HEAD_RANDOM -1 #define BODY_DJBOND 0x00 @@ -3064,15 +3089,3 @@ #define BODY_ELVISWAISTCOAT 0x94 #define BODY_DARK_LEATHER 0x95 #define BODY_DARK_NEGOTIATOR 0x96 - -#define VERSION_NTSC_BETA 0 -#define VERSION_NTSC_1_0 1 -#define VERSION_NTSC_FINAL 2 -#define VERSION_PAL_BETA 3 -#define VERSION_PAL_FINAL 4 -#define VERSION_JAP_FINAL 5 - -#define VOICEBOX_0 0 -#define VOICEBOX_1 1 -#define VOICEBOX_2 2 -#define VOICEBOX_3 3 diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index f2d4754fc..b906250b9 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -249,8 +249,8 @@ /*0x00f6*/ bool ai00f6(void); /*0x00f7*/ bool aiIfAllObjectivesComplete(void); /*0x00f8*/ bool aiIfPlayerIsInvincible(void); -/*0x00f9*/ bool aiAudioPlayXMusic(void); -/*0x00fa*/ bool aiAudioStopChannel(void); +/*0x00f9*/ bool aiPlayXTrack(void); +/*0x00fa*/ bool aiStopXTrack(void); /*0x00fb*/ bool aiChrExplosions(void); /*0x00fc*/ bool aiIfKillCountGreaterThan(void); /*0x00fd*/ bool ai00fd(void); @@ -332,8 +332,8 @@ /*0x014b*/ bool aiIfNotListening(void); /*0x0152*/ bool aiIfNumChrsInSquadronGreaterThan(void); /*0x0157*/ bool aiSetTintedGlassEnabled(void); -/*0x015b*/ bool aiAudioPlayMusic(void); -/*0x015c*/ bool aiAudioRestartMusic(void); +/*0x015b*/ bool aiPlayTrackIsolated(void); +/*0x015c*/ bool aiPlayDefaultTracks(void); /*0x0165*/ bool aiIfChrInjured(void); /*0x0166*/ bool aiIfAction(void); /*0x0167*/ bool aiHovercopterFireRocket(void); @@ -358,10 +358,10 @@ /*0x017a*/ bool aiIfCanSeeAttackTarget(void); /*0x017b*/ bool aiIfChrKnockedOut(void); /*0x017c*/ bool aiAssignSound(void); -/*0x017d*/ bool aiAudioSetMusicTrack(void); -/*0x017e*/ bool aiAudioRestartDefaultMusic(void); -/*0x017f*/ bool aiAudioSetSfxTrack(void); -/*0x0180*/ bool aiAudioRestartSfx(void); +/*0x017d*/ bool aiPlayCutsceneTrack(void); +/*0x017e*/ bool aiStopCutsceneTrack(void); +/*0x017f*/ bool aiPlayTemporaryTrack(void); +/*0x0180*/ bool aiStopAmbientTrack(void); /*0x0181*/ bool aiIfPlayerLookingAtObject(void); /*0x0182*/ bool aiPunchOrKick(void); /*0x0183*/ bool aiIfTargetIsPlayer(void); @@ -437,7 +437,7 @@ /*0x01d7*/ bool aiIfDistanceToTarget2LessThan(void); /*0x01d8*/ bool aiIfDistanceToTarget2GreaterThan(void); /*0x01d9*/ bool aiPlaySoundFromProp(void); -/*0x01da*/ bool aiPlayMusicContinuously(void); +/*0x01da*/ bool aiPlayTemporaryPrimaryTrack(void); /*0x01db*/ bool aiChrKill(void); /*0x01dc*/ bool aiRemoveWeaponFromInventory(void); /*0x01dd*/ bool ai01dd(void); diff --git a/src/include/game/data/data_02a0e0.h b/src/include/game/data/data_02a0e0.h index 2e2279d9b..20284c0c1 100644 --- a/src/include/game/data/data_02a0e0.h +++ b/src/include/game/data/data_02a0e0.h @@ -2,10 +2,10 @@ #define IN_GAME_DATA_02A0E0_H #include -extern s32 g_AudioCurrentBgMusicNum; +extern s32 g_MenuTrack; extern u32 var800840c4; -extern s32 var800840c8; -extern s32 var800840cc; +extern s32 g_TemporaryPrimaryTrack; +extern s32 g_TemporaryAmbientTrack; extern s32 var800840d0; extern u32 var800840d4; extern u32 var800840d8; diff --git a/src/include/game/game_16cfa0.h b/src/include/game/game_16cfa0.h index 595b596e8..a896c69b9 100644 --- a/src/include/game/game_16cfa0.h +++ b/src/include/game/game_16cfa0.h @@ -3,42 +3,42 @@ #include #include "types.h" -u16 audioGetVolume(void); -void func0f16cfe8(u16 volume); -bool func0f16d0a8(s32 arg0, s32 arg1); -s32 func0f16d124(s32 arg0); -void func0f16d1bc(u32 arg0, u32 tracknum, f32 arg2, u16 volume); -void func0f16d240(s32 arg0); -void func0f16d2ac(s32 arg0, f32 arg1, s32 arg2); +u16 musicGetVolume(void); +void musicSetVolume(u16 volume); +bool func0f16d0a8(s32 tracktype, s32 arg1); +s32 func0f16d124(s32 tracktype); +void musicStart(u32 tracktype, u32 tracknum, f32 arg2, u16 volume); +void musicEnd(s32 tracktype); +void func0f16d2ac(s32 tracktype, f32 arg1, s32 arg2); void func0f16d324(void); void func0f16d3d0(void); void func0f16d430(void); void func0f16d44c(void); -void func0f16d4b8(f32 arg0); -void func0f16d548(f32 arg0); -bool audioIsAnyPlayerInRoomWithFlag4000(void); -void func0f16d89c(f32 arg0); -void audioSetBgMusic(s32 tracknum); -void func0f16d9a8(s32 stagenum); -void func0f16d9f0(s32 stagenum); +void musicStartPrimary(f32 arg0); +void musicStartAmbient(f32 arg0); +bool musicIsAnyPlayerInAmbientRoom(void); +void musicStartX(f32 arg0); +void musicStartMenu2(s32 tracknum); +void musicSetStageAndStartMusic(s32 stagenum); +void musicSetStage(s32 stagenum); void func0f16d9fc(void); void func0f16da2c(void); void func0f16daa4(void); -void audioSetBgMusicForMenu(void); +void musicStartForMenu(void); void func0f16db3c(void); -void audioPlaySoloDeathTrack(void); -void audioPlayMpDeathTrack(f32 arg0); +void musicStartSoloDeath(void); +void musicStartMpDeath(f32 arg0); void func0f16dd14(void); void func0f16ddb0(void); -void audioPlayTrack(s32 tracknum); -void audioRestartTrack(void); -void func0f16deb8(s32 tracknum); -void audioSetTrack(s32 tracknum); -void audioRestartDefaultTrack(void); -void audioSetAuxTrack(s32 tracknum); -void audioRestartAuxTrack(void); -void audioPlayXTrack(s32 index, u32 arg1, u32 duration); -void audioStopTrack(s32 index); +void musicPlayTrackIsolated(s32 tracknum); +void musicPlayDefaultTracks(void); +void musicStartTemporaryPrimary(s32 tracknum); +void musicStartCutscene(s32 tracknum); +void musicEndCutscene(void); +void musicStartTemporary(s32 tracknum); +void musicEndAmbient(void); +void musicSetXReason(s32 index, u32 arg1, u32 duration); +void musicUnsetXReason(s32 reason); void func0f16e138(void); #endif diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index fb87e9d44..7f7192b14 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -178,7 +178,7 @@ struct g_vars { /*0004b0*/ u32 mpquickteam; /*0004b4*/ s32 stagenum; /*0004b8*/ struct prop *aibuddies[4]; - /*0004c8*/ u32 unk0004c8; + /*0004c8*/ u32 dontplaynrg; // allow X music to be played (NRG = energy track) /*0004cc*/ s32 in_cutscene; /*0004d0*/ u8 unk0004d0; /*0004d1*/ u8 unk0004d1; @@ -762,12 +762,12 @@ extern u32 var800aa5a0; extern struct audiohandle *g_BoostAndSlayerAudioHandles[3]; extern s32 g_BoostAndSlayerActiveTypes[3]; extern u32 var800aa5cc; -extern s32 var800aa5d0; // stage number +extern s32 g_MusicStageNum; // stage number extern struct var800aa5d8 var800aa5d8[40]; extern struct var800aaa38 var800aaa38[3]; -extern u32 var800aaa68[4]; +extern u32 g_AudioXReasonsActive[4]; extern u32 var800aaa78[4]; -extern u32 var800aaa88[4]; +extern u32 g_AudioXReasonDurations[4]; extern u32 var800aaa98; extern char *g_LangBanks[69]; extern void *var800aabb4; diff --git a/src/include/types.h b/src/include/types.h index cff2c223c..97c5cb070 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6196,7 +6196,7 @@ struct optiongroup { }; struct var800aa5d8 { - s32 unk00; + s32 tracktype; s32 tracknum; s32 unk08; f32 unk0c; @@ -6251,7 +6251,7 @@ struct var800a4ce8 { }; struct var800aaa38 { - u32 unk00; + u32 tracktype; u32 unk04; u32 unk08; u32 unk0c; diff --git a/src/lib/lib_0d520.c b/src/lib/lib_0d520.c index 0330bcf0e..72d819270 100644 --- a/src/lib/lib_0d520.c +++ b/src/lib/lib_0d520.c @@ -1483,7 +1483,7 @@ glabel func0000e684 .L0000e7d0: /* e7d0: 0fc4a24b */ jal setCurrentPlayerNum /* e7d4: 8fa4002c */ lw $a0,0x2c($sp) -/* e7d8: 0fc5b6c5 */ jal audioSetBgMusicForMenu +/* e7d8: 0fc5b6c5 */ jal musicStartForMenu /* e7dc: 00000000 */ nop /* e7e0: 10000057 */ b .L0000e940 /* e7e4: 8fbf001c */ lw $ra,0x1c($sp) @@ -1569,7 +1569,7 @@ glabel func0000e684 .L0000e8f8: /* e8f8: 0fc4a24b */ jal setCurrentPlayerNum /* e8fc: 8fa40024 */ lw $a0,0x24($sp) -/* e900: 0fc5b6c5 */ jal audioSetBgMusicForMenu +/* e900: 0fc5b6c5 */ jal musicStartForMenu /* e904: 00000000 */ nop /* e908: 1000000d */ b .L0000e940 /* e90c: 8fbf001c */ lw $ra,0x1c($sp) @@ -1584,7 +1584,7 @@ glabel func0000e684 .L0000e92c: /* e92c: 0fc43988 */ jal endscreenPrepare /* e930: 00000000 */ nop -/* e934: 0fc5b6c5 */ jal audioSetBgMusicForMenu +/* e934: 0fc5b6c5 */ jal musicStartForMenu /* e938: 00000000 */ nop /* e93c: 8fbf001c */ lw $ra,0x1c($sp) .L0000e940: diff --git a/src/lib/lib_0e9d0.c b/src/lib/lib_0e9d0.c index c17106cb1..e65482ac9 100644 --- a/src/lib/lib_0e9d0.c +++ b/src/lib/lib_0e9d0.c @@ -1681,14 +1681,14 @@ glabel func0000fe88 /* 1003c: 24010006 */ addiu $at,$zero,0x6 /* 10040: 15410014 */ bne $t2,$at,.L00010094 /* 10044: 00000000 */ nop -/* 10048: 0fc5b3e8 */ jal audioGetVolume +/* 10048: 0fc5b3e8 */ jal musicGetVolume /* 1004c: 00000000 */ nop /* 10050: 3c038006 */ lui $v1,%hi(g_SfxVolume) /* 10054: 9463ddc8 */ lhu $v1,%lo(g_SfxVolume)($v1) /* 10058: 0062082a */ slt $at,$v1,$v0 /* 1005c: 10200005 */ beqz $at,.L00010074 /* 10060: 00608025 */ or $s0,$v1,$zero -/* 10064: 0fc5b3e8 */ jal audioGetVolume +/* 10064: 0fc5b3e8 */ jal musicGetVolume /* 10068: 00000000 */ nop /* 1006c: 10000001 */ b .L00010074 /* 10070: 00408025 */ or $s0,$v0,$zero diff --git a/src/lib/lib_11420.c b/src/lib/lib_11420.c index 20eb2cc44..d3823aa7d 100644 --- a/src/lib/lib_11420.c +++ b/src/lib/lib_11420.c @@ -382,10 +382,10 @@ glabel func00011884 /* 11890: afb00018 */ sw $s0,0x18($sp) /* 11894: 3c10800b */ lui $s0,%hi(var800aaa38) /* 11898: 3c118009 */ lui $s1,%hi(var80094ed8) -/* 1189c: 3c12800b */ lui $s2,%hi(var800aaa68) +/* 1189c: 3c12800b */ lui $s2,%hi(g_AudioXReasonsActive) /* 118a0: afbf0024 */ sw $ra,0x24($sp) /* 118a4: afa40028 */ sw $a0,0x28($sp) -/* 118a8: 2652aa68 */ addiu $s2,$s2,%lo(var800aaa68) +/* 118a8: 2652aa68 */ addiu $s2,$s2,%lo(g_AudioXReasonsActive) /* 118ac: 26314ed8 */ addiu $s1,$s1,%lo(var80094ed8) /* 118b0: 2610aa38 */ addiu $s0,$s0,%lo(var800aaa38) .L000118b4: @@ -800,21 +800,21 @@ glabel func00011d84 /* 11e64: 01f8082a */ slt $at,$t7,$t8 /* 11e68: 10200011 */ beqz $at,.L00011eb0 /* 11e6c: 00000000 */ nop -/* 11e70: 0fc5b490 */ jal func0f16d240 +/* 11e70: 0fc5b490 */ jal musicEnd /* 11e74: aca00000 */ sw $zero,0x0($a1) -/* 11e78: 0fc5b490 */ jal func0f16d240 +/* 11e78: 0fc5b490 */ jal musicEnd /* 11e7c: 24040004 */ addiu $a0,$zero,0x4 -/* 11e80: 0fc5b490 */ jal func0f16d240 +/* 11e80: 0fc5b490 */ jal musicEnd /* 11e84: 24040001 */ addiu $a0,$zero,0x1 -/* 11e88: 3c04800b */ lui $a0,%hi(var800aa5d0) +/* 11e88: 3c04800b */ lui $a0,%hi(g_MusicStageNum) /* 11e8c: 0fc5db10 */ jal stageGetPrimaryTrack -/* 11e90: 8c84a5d0 */ lw $a0,%lo(var800aa5d0)($a0) -/* 11e94: 0fc5b3e8 */ jal audioGetVolume +/* 11e90: 8c84a5d0 */ lw $a0,%lo(g_MusicStageNum)($a0) +/* 11e94: 0fc5b3e8 */ jal musicGetVolume /* 11e98: afa20018 */ sw $v0,0x18($sp) /* 11e9c: 24040001 */ addiu $a0,$zero,0x1 /* 11ea0: 8fa50018 */ lw $a1,0x18($sp) /* 11ea4: 24060000 */ addiu $a2,$zero,0x0 -/* 11ea8: 0fc5b46f */ jal func0f16d1bc +/* 11ea8: 0fc5b46f */ jal musicStart /* 11eac: 3047ffff */ andi $a3,$v0,0xffff .L00011eb0: /* 11eb0: 3c0a800a */ lui $t2,%hi(g_Vars) @@ -869,31 +869,31 @@ glabel func00011d84 /* 11f6c: 0062c823 */ subu $t9,$v1,$v0 /* 11f70: 1f200013 */ bgtz $t9,.L00011fc0 /* 11f74: ac990000 */ sw $t9,0x0($a0) -/* 11f78: 0fc5b490 */ jal func0f16d240 +/* 11f78: 0fc5b490 */ jal musicEnd /* 11f7c: 24040003 */ addiu $a0,$zero,0x3 -/* 11f80: 0fc5b490 */ jal func0f16d240 +/* 11f80: 0fc5b490 */ jal musicEnd /* 11f84: 24040004 */ addiu $a0,$zero,0x4 -/* 11f88: 0fc5b490 */ jal func0f16d240 +/* 11f88: 0fc5b490 */ jal musicEnd /* 11f8c: 24040001 */ addiu $a0,$zero,0x1 -/* 11f90: 3c04800b */ lui $a0,%hi(var800aa5d0) +/* 11f90: 3c04800b */ lui $a0,%hi(g_MusicStageNum) /* 11f94: 0fc5db10 */ jal stageGetPrimaryTrack -/* 11f98: 8c84a5d0 */ lw $a0,%lo(var800aa5d0)($a0) -/* 11f9c: 0fc5b3e8 */ jal audioGetVolume +/* 11f98: 8c84a5d0 */ lw $a0,%lo(g_MusicStageNum)($a0) +/* 11f9c: 0fc5b3e8 */ jal musicGetVolume /* 11fa0: afa20018 */ sw $v0,0x18($sp) /* 11fa4: 24040001 */ addiu $a0,$zero,0x1 /* 11fa8: 8fa50018 */ lw $a1,0x18($sp) /* 11fac: 24060000 */ addiu $a2,$zero,0x0 -/* 11fb0: 0fc5b46f */ jal func0f16d1bc +/* 11fb0: 0fc5b46f */ jal musicStart /* 11fb4: 3047ffff */ andi $a3,$v0,0xffff /* 11fb8: 3c0a800a */ lui $t2,%hi(g_Vars) /* 11fbc: 254a9fc0 */ addiu $t2,$t2,%lo(g_Vars) .L00011fc0: -/* 11fc0: 3c06800b */ lui $a2,%hi(var800aaa68) +/* 11fc0: 3c06800b */ lui $a2,%hi(g_AudioXReasonsActive) /* 11fc4: 3c04800b */ lui $a0,%hi(var800aaa78) -/* 11fc8: 3c09800b */ lui $t1,%hi(var800aaa88) -/* 11fcc: 2529aa88 */ addiu $t1,$t1,%lo(var800aaa88) +/* 11fc8: 3c09800b */ lui $t1,%hi(g_AudioXReasonDurations) +/* 11fcc: 2529aa88 */ addiu $t1,$t1,%lo(g_AudioXReasonDurations) /* 11fd0: 2484aa78 */ addiu $a0,$a0,%lo(var800aaa78) -/* 11fd4: 24c6aa68 */ addiu $a2,$a2,%lo(var800aaa68) +/* 11fd4: 24c6aa68 */ addiu $a2,$a2,%lo(g_AudioXReasonsActive) /* 11fd8: 8d480034 */ lw $t0,0x34($t2) /* 11fdc: 00003825 */ or $a3,$zero,$zero .L00011fe0: @@ -905,8 +905,8 @@ glabel func00011d84 /* 11ff4: 24840004 */ addiu $a0,$a0,0x0004 /* 11ff8: 8c820000 */ lw $v0,0x0($a0) .L00011ffc: -/* 11ffc: 3c0d800b */ lui $t5,%hi(var800aaa88) -/* 12000: 25adaa88 */ addiu $t5,$t5,%lo(var800aaa88) +/* 11ffc: 3c0d800b */ lui $t5,%hi(g_AudioXReasonDurations) +/* 12000: 25adaa88 */ addiu $t5,$t5,%lo(g_AudioXReasonDurations) /* 12004: 0048082a */ slt $at,$v0,$t0 /* 12008: 14200004 */ bnez $at,.L0001201c /* 1200c: 00ed1821 */ addu $v1,$a3,$t5 diff --git a/src/lib/lib_15860.c b/src/lib/lib_15860.c index 0561847c2..564666f53 100644 --- a/src/lib/lib_15860.c +++ b/src/lib/lib_15860.c @@ -70,7 +70,7 @@ void initGlobalVariables(void) g_Vars.mpplayerteams[2] = 2; g_Vars.mpplayerteams[3] = 3; g_Vars.mpquickteam = MPQUICKTEAM_5; - g_Vars.unk0004c8 = 0; + g_Vars.dontplaynrg = false; g_Vars.in_cutscene = false; g_Vars.unk0004d2 = -1; g_Vars.unk0004d3 = 0;