From 5e2c338fc7de5dbeb7248bf54a13d96354922753 Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Sat, 30 Nov 2024 14:44:14 -0600 Subject: [PATCH] Documented sequences and move them into the Course system --- include/sounds.h | 34 +++++++++++++++++++++++++ src/audio/external.c | 24 ++++++++--------- src/audio/external.h | 4 +-- src/engine/Engine.h | 2 ++ src/engine/World.h | 1 + src/engine/courses/BansheeBoardwalk.cpp | 1 + src/engine/courses/BigDonut.cpp | 1 + src/engine/courses/BlockFort.cpp | 1 + src/engine/courses/BowsersCastle.cpp | 1 + src/engine/courses/ChocoMountain.cpp | 1 + src/engine/courses/Course.cpp | 1 + src/engine/courses/Course.h | 1 + src/engine/courses/DKJungle.cpp | 1 + src/engine/courses/DoubleDeck.cpp | 1 + src/engine/courses/FrappeSnowland.cpp | 1 + src/engine/courses/KalimariDesert.cpp | 1 + src/engine/courses/KoopaTroopaBeach.cpp | 1 + src/engine/courses/LuigiRaceway.cpp | 1 + src/engine/courses/MarioRaceway.cpp | 1 + src/engine/courses/MooMooFarm.cpp | 1 + src/engine/courses/PodiumCeremony.cpp | 1 + src/engine/courses/RainbowRoad.cpp | 1 + src/engine/courses/RoyalRaceway.cpp | 1 + src/engine/courses/SherbetLand.cpp | 1 + src/engine/courses/Skyscraper.cpp | 1 + src/engine/courses/TestCourse.cpp | 1 + src/engine/courses/ToadsTurnpike.cpp | 1 + src/engine/courses/WarioStadium.cpp | 1 + src/engine/courses/YoshiValley.cpp | 1 + src/menus.c | 12 ++++----- src/racing/race_logic.c | 30 ++++------------------ yamls/us/sound/sequences.yml | 10 ++++---- 32 files changed, 91 insertions(+), 50 deletions(-) diff --git a/include/sounds.h b/include/sounds.h index b164bd17e..82875b361 100644 --- a/include/sounds.h +++ b/include/sounds.h @@ -115,4 +115,38 @@ // Hey, you're very good. See you next time! #define SOUND_CREDITS_FAREWELL SOUND_ARG_LOAD(0x49, 0x00, 0x80, 0x26) +enum MusicSeq { + MUSIC_SEQ_UNKNOWN = -1, + MUSIC_SEQ_00, + MUSIC_SEQ_TITLE_SCREEN, + MUSIC_SEQ_MAIN_MENU, + MUSIC_SEQ_RACEWAYS_WARIO_STADIUM, + MUSIC_SEQ_MOO_MOO_FARM_YOSHI_VALLEY, + MUSIC_SEQ_CHOCO_MOUNTAIN, + MUSIC_SEQ_KOOPA_TROOPA_BEACH, + MUSIC_SEQ_BANSHEE_BOARDWALK, + MUSIC_SEQ_FRAPPE_SNOWLAND, + MUSIC_SEQ_BOWSERS_CASTLE, + MUSIC_SEQ_KALIMARI_DESERT, + MUSIC_SEQ_START_GRID_GP_VS, + MUSIC_SEQ_FINAL_LAP_FANFARE, + MUSIC_SEQ_FINISH_1ST_PLACE, + MUSIC_SEQ_FINISH_2ND_4TH_PLACE, + MUSIC_SEQ_FINISH_5TH_8TH_PLACE, + MUSIC_SEQ_16, + MUSIC_SEQ_STAR_JINGLE, + MUSIC_SEQ_RAINBOW_ROAD, + MUSIC_SEQ_DK_JUNGLE, + MUSIC_SEQ_GAME_OVER, + MUSIC_SEQ_TOADS_TURNPIKE, + MUSIC_SEQ_START_GIRD_TIME_ATTACK, + MUSIC_SEQ_VS_BATTLE_RESULTS, + MUSIC_SEQ_LOSING_RESULTS, + MUSIC_SEQ_BATTLE_ARENAS, + MUSIC_SEQ_AWARD_CEREMONY_BUILDUP, + MUSIC_SEQ_AWARD_CEREMONY_1ST_3RD, + MUSIC_SEQ_STAFF_ROLL, + MUSIC_SEQ_AWARD_CEREMONY_4TH_8TH, +}; + #endif // SOUNDS_H diff --git a/src/audio/external.c b/src/audio/external.c index ec4ed3846..032e25c19 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -92,7 +92,7 @@ f32 D_800EA120[] = { 0.0f, 0.0f, 0.0f, 0.0f }; f32 D_800EA130[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; f32 D_800EA150 = 1.4f; u8 D_800EA154[] = { 2, 2, 88, 90, 3, 48, 88, 48 }; -u16 D_800EA15C = 0; +u16 gCurrentMusicSeq = 0; u16 D_800EA160 = 0; u8 D_800EA164 = 0; s8 D_800EA168 = 0; @@ -565,7 +565,7 @@ void func_800C2474(void) { D_800EA16C = 0; func_800CBBB8(0xF2000000U, 0); D_800EA16C = 0; - D_800EA15C = 0; + gCurrentMusicSeq = 0; D_800EA160 = 0; D_800EA164 = 0; D_800EA178 = 1.0f; @@ -2834,9 +2834,9 @@ void play_sound2(s32 soundBits) { play_sound(soundBits, &D_800EA1C8, 4, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC); } -void func_800C8EAC(u16 arg0) { +void play_sequence(u16 arg0) { func_800C3448(arg0 | 0x10000); - D_800EA15C = arg0; + gCurrentMusicSeq = arg0; } void func_800C8EF8(u16 arg0) { @@ -3284,7 +3284,7 @@ void func_800CA49C(u8 arg0) { func_800C3448(0x100100FF); // 0x19000000 func_800C3448(0x110100FF); func_800C8EF8(0xC); - func_800C3448(D_800EA15C | 0xC1500000); + func_800C3448(gCurrentMusicSeq | 0xC1500000); func_800C3448(0xC130017D); } D_8018FC08 = D_8018FC08 + 1; @@ -3334,20 +3334,20 @@ void func_800CA730(u8 arg0) { if (D_8018FC08 != 0) { if (((u32) (gSequencePlayers[1].enabled)) == 0) { func_800C3608(1, 5); - func_800C8EAC(D_800EA15C); + play_sequence(gCurrentMusicSeq); func_800C3448(0xB001307DU); } else if ((func_800C3508(1) == 0xC) || (func_800C357C(0x0101000C) == 0)) { func_800C3448(0xC1F00000U); - func_800C3448(D_800EA15C | 0xC1500000); + func_800C3448(gCurrentMusicSeq | 0xC1500000); func_800C3448(0xC130017DU); } else { func_800C3448(0x110100FFU); - func_800C8EAC(D_800EA15C); + play_sequence(gCurrentMusicSeq); func_800C3448(0xB001307DU); } } else { func_800C3448(0x110100FFU); - func_800C8EAC(D_800EA15C); + play_sequence(gCurrentMusicSeq); } } D_800EA164 = 0; @@ -3512,11 +3512,11 @@ void func_800CB14C() { if (D_800EA174 != 0) { D_800EA174++; if (D_800EA174 == 3) { - func_800C8EAC(0x001AU); + play_sequence(MUSIC_SEQ_AWARD_CEREMONY_BUILDUP); func_800C3448(0x4000007F); } if (D_800EA174 == 0x012C) { - func_800C8EAC(0x001BU); + play_sequence(MUSIC_SEQ_AWARD_CEREMONY_1ST_3RD); func_800C3448(0x4000007F); func_800C8EF8(0x001DU); func_800C3448(0x41000000); @@ -3541,7 +3541,7 @@ void func_800CB14C() { func_800C3448(0x110100FF); } if (D_800EA174 == 0x04CE) { - func_800C8EAC(0x0014U); + play_sequence(MUSIC_SEQ_GAME_OVER); func_800C3448(0x4000007F); } } diff --git a/src/audio/external.h b/src/audio/external.h index b11bf6d02..f09f456ed 100644 --- a/src/audio/external.h +++ b/src/audio/external.h @@ -271,7 +271,7 @@ void func_800C8AE4(void); void func_800C8C7C(u8); void func_800C8CCC(void); void play_sound2(s32); -void func_800C8EAC(u16); +void play_sequence(u16); void func_800C8EF8(u16); void func_800C8F44(u8); void func_800C8F80(u8, u32); @@ -399,7 +399,7 @@ extern f32 D_800EA120[4]; extern f32 D_800EA130[8]; extern f32 D_800EA150; // = 1.4f; extern u8 D_800EA154[]; -extern u16 D_800EA15C; +extern u16 gCurrentMusicSeq; extern u16 D_800EA160; extern u8 D_800EA164; extern s8 D_800EA168; diff --git a/src/engine/Engine.h b/src/engine/Engine.h index 9a220c1a4..5af480c23 100644 --- a/src/engine/Engine.h +++ b/src/engine/Engine.h @@ -6,6 +6,7 @@ #include "objects.h" #include "path_spawn_metadata.h" #include "waypoints.h" +#include "sounds.h" typedef struct { RGB8 TopRight; @@ -44,6 +45,7 @@ typedef struct { s32 MinimapFinishlineX; s32 MinimapFinishlineY; SkyboxColours Skybox; + enum MusicSeq Sequence; } CProperties; #endif // __ENGINE_H__ \ No newline at end of file diff --git a/src/engine/World.h b/src/engine/World.h index a5d9770a5..703404c0f 100644 --- a/src/engine/World.h +++ b/src/engine/World.h @@ -66,6 +66,7 @@ class World { int32_t MinimapFinishlineX; int32_t MinimapFinishlineY; SkyboxColours Skybox; + MusicSeq Sequence; } Properties; typedef struct { diff --git a/src/engine/courses/BansheeBoardwalk.cpp b/src/engine/courses/BansheeBoardwalk.cpp index 2211b3294..f1dc8287c 100644 --- a/src/engine/courses/BansheeBoardwalk.cpp +++ b/src/engine/courses/BansheeBoardwalk.cpp @@ -101,6 +101,7 @@ BansheeBoardwalk::BansheeBoardwalk() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 0, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_BANSHEE_BOARDWALK; } void BansheeBoardwalk::Load() { diff --git a/src/engine/courses/BigDonut.cpp b/src/engine/courses/BigDonut.cpp index f01930c7b..56ff61a66 100644 --- a/src/engine/courses/BigDonut.cpp +++ b/src/engine/courses/BigDonut.cpp @@ -96,6 +96,7 @@ BigDonut::BigDonut() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 0, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_BATTLE_ARENAS; } void BigDonut::Load() { diff --git a/src/engine/courses/BlockFort.cpp b/src/engine/courses/BlockFort.cpp index d6ebf2263..a61e26280 100644 --- a/src/engine/courses/BlockFort.cpp +++ b/src/engine/courses/BlockFort.cpp @@ -99,6 +99,7 @@ BlockFort::BlockFort() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {216, 232, 248}; + Props.Sequence = MusicSeq::MUSIC_SEQ_CHOCO_MOUNTAIN; } void BlockFort::Load() { diff --git a/src/engine/courses/BowsersCastle.cpp b/src/engine/courses/BowsersCastle.cpp index a12b233a8..9098c62e9 100644 --- a/src/engine/courses/BowsersCastle.cpp +++ b/src/engine/courses/BowsersCastle.cpp @@ -101,6 +101,7 @@ BowsersCastle::BowsersCastle() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 0, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_BOWSERS_CASTLE; } void BowsersCastle::Load() { diff --git a/src/engine/courses/ChocoMountain.cpp b/src/engine/courses/ChocoMountain.cpp index bc88bf645..71e147f2d 100644 --- a/src/engine/courses/ChocoMountain.cpp +++ b/src/engine/courses/ChocoMountain.cpp @@ -101,6 +101,7 @@ ChocoMountain::ChocoMountain() { Props.Skybox.FloorBottomRight = {255, 255, 255}; Props.Skybox.FloorBottomLeft = {255, 255, 255}; Props.Skybox.FloorTopLeft = {255, 255, 255}; + Props.Sequence = MusicSeq::MUSIC_SEQ_CHOCO_MOUNTAIN; } void ChocoMountain::Load() { diff --git a/src/engine/courses/Course.cpp b/src/engine/courses/Course.cpp index 6cef03d6b..022ee016e 100644 --- a/src/engine/courses/Course.cpp +++ b/src/engine/courses/Course.cpp @@ -73,6 +73,7 @@ Course::Course() { Props.CloudList = NULL; Props.MinimapFinishlineX = 0; Props.MinimapFinishlineY = 0; + Props.Sequence = MusicSeq::MUSIC_SEQ_UNKNOWN; } void Course::Load(Vtx* vtx, Gfx* gfx) { diff --git a/src/engine/courses/Course.h b/src/engine/courses/Course.h index 3d3335854..e711dd510 100644 --- a/src/engine/courses/Course.h +++ b/src/engine/courses/Course.h @@ -75,6 +75,7 @@ public: int32_t MinimapFinishlineX; int32_t MinimapFinishlineY; SkyboxColours Skybox; + MusicSeq Sequence; } Properties; Properties Props; diff --git a/src/engine/courses/DKJungle.cpp b/src/engine/courses/DKJungle.cpp index 4c3d6797c..479c23b02 100644 --- a/src/engine/courses/DKJungle.cpp +++ b/src/engine/courses/DKJungle.cpp @@ -104,6 +104,7 @@ DKJungle::DKJungle() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {22, 145, 22}; + Props.Sequence = MusicSeq::MUSIC_SEQ_DK_JUNGLE; } void DKJungle::Load() { diff --git a/src/engine/courses/DoubleDeck.cpp b/src/engine/courses/DoubleDeck.cpp index 7d07cdc43..74fb7e714 100644 --- a/src/engine/courses/DoubleDeck.cpp +++ b/src/engine/courses/DoubleDeck.cpp @@ -99,6 +99,7 @@ DoubleDeck::DoubleDeck() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {255, 224, 240}; + Props.Sequence = MusicSeq::MUSIC_SEQ_CHOCO_MOUNTAIN; } void DoubleDeck::Load() { diff --git a/src/engine/courses/FrappeSnowland.cpp b/src/engine/courses/FrappeSnowland.cpp index 90fa51e6c..a0e698152 100644 --- a/src/engine/courses/FrappeSnowland.cpp +++ b/src/engine/courses/FrappeSnowland.cpp @@ -102,6 +102,7 @@ FrappeSnowland::FrappeSnowland() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 99, 164}; + Props.Sequence = MusicSeq::MUSIC_SEQ_FRAPPE_SNOWLAND; } void FrappeSnowland::Load() { diff --git a/src/engine/courses/KalimariDesert.cpp b/src/engine/courses/KalimariDesert.cpp index cfb7316e5..2562ab8f8 100644 --- a/src/engine/courses/KalimariDesert.cpp +++ b/src/engine/courses/KalimariDesert.cpp @@ -102,6 +102,7 @@ KalimariDesert::KalimariDesert() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {255, 192, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_KALIMARI_DESERT; } void KalimariDesert::Load() { diff --git a/src/engine/courses/KoopaTroopaBeach.cpp b/src/engine/courses/KoopaTroopaBeach.cpp index 66bf99005..48f8c8b77 100644 --- a/src/engine/courses/KoopaTroopaBeach.cpp +++ b/src/engine/courses/KoopaTroopaBeach.cpp @@ -102,6 +102,7 @@ KoopaTroopaBeach::KoopaTroopaBeach() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {48, 152, 120}; + Props.Sequence = MusicSeq::MUSIC_SEQ_KOOPA_TROOPA_BEACH; } void KoopaTroopaBeach::Load() { diff --git a/src/engine/courses/LuigiRaceway.cpp b/src/engine/courses/LuigiRaceway.cpp index 72b6617c2..f98ceab21 100644 --- a/src/engine/courses/LuigiRaceway.cpp +++ b/src/engine/courses/LuigiRaceway.cpp @@ -105,6 +105,7 @@ LuigiRaceway::LuigiRaceway() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {216, 232, 248}; + Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM; } void LuigiRaceway::Load() { diff --git a/src/engine/courses/MarioRaceway.cpp b/src/engine/courses/MarioRaceway.cpp index ea8593e17..bde10370d 100644 --- a/src/engine/courses/MarioRaceway.cpp +++ b/src/engine/courses/MarioRaceway.cpp @@ -102,6 +102,7 @@ MarioRaceway::MarioRaceway() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 0, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM; } void MarioRaceway::Load() { diff --git a/src/engine/courses/MooMooFarm.cpp b/src/engine/courses/MooMooFarm.cpp index 6517eab82..d1b401342 100644 --- a/src/engine/courses/MooMooFarm.cpp +++ b/src/engine/courses/MooMooFarm.cpp @@ -102,6 +102,7 @@ MooMooFarm::MooMooFarm() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {255, 184, 99}; + Props.Sequence = MusicSeq::MUSIC_SEQ_MOO_MOO_FARM_YOSHI_VALLEY; } void MooMooFarm::Load() { diff --git a/src/engine/courses/PodiumCeremony.cpp b/src/engine/courses/PodiumCeremony.cpp index 9488b8b21..86bf403b3 100644 --- a/src/engine/courses/PodiumCeremony.cpp +++ b/src/engine/courses/PodiumCeremony.cpp @@ -96,6 +96,7 @@ PodiumCeremony::PodiumCeremony() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {255, 224, 240}; + Props.Sequence = MusicSeq::MUSIC_SEQ_UNKNOWN; } void PodiumCeremony::Load() { diff --git a/src/engine/courses/RainbowRoad.cpp b/src/engine/courses/RainbowRoad.cpp index 4836611fb..b8e9865c6 100644 --- a/src/engine/courses/RainbowRoad.cpp +++ b/src/engine/courses/RainbowRoad.cpp @@ -99,6 +99,7 @@ RainbowRoad::RainbowRoad() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 0, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_RAINBOW_ROAD; } void RainbowRoad::Load() { diff --git a/src/engine/courses/RoyalRaceway.cpp b/src/engine/courses/RoyalRaceway.cpp index ded9ec464..c2f6b3c62 100644 --- a/src/engine/courses/RoyalRaceway.cpp +++ b/src/engine/courses/RoyalRaceway.cpp @@ -100,6 +100,7 @@ RoyalRaceway::RoyalRaceway() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {255, 224, 240}; + Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM; } void RoyalRaceway::Load() { diff --git a/src/engine/courses/SherbetLand.cpp b/src/engine/courses/SherbetLand.cpp index 19bfa573e..b22b31e48 100644 --- a/src/engine/courses/SherbetLand.cpp +++ b/src/engine/courses/SherbetLand.cpp @@ -100,6 +100,7 @@ SherbetLand::SherbetLand() { Props.Skybox.FloorBottomRight = {128, 184, 248}; Props.Skybox.FloorBottomLeft = {128, 184, 248}; Props.Skybox.FloorTopLeft = {216, 232, 248}; + Props.Sequence = MusicSeq::MUSIC_SEQ_FRAPPE_SNOWLAND; } void SherbetLand::Load() { diff --git a/src/engine/courses/Skyscraper.cpp b/src/engine/courses/Skyscraper.cpp index df26ceccb..7af4fd53f 100644 --- a/src/engine/courses/Skyscraper.cpp +++ b/src/engine/courses/Skyscraper.cpp @@ -99,6 +99,7 @@ Skyscraper::Skyscraper() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 0, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_BATTLE_ARENAS; } void Skyscraper::Load() { diff --git a/src/engine/courses/TestCourse.cpp b/src/engine/courses/TestCourse.cpp index 05f6c9ed2..742dc6735 100644 --- a/src/engine/courses/TestCourse.cpp +++ b/src/engine/courses/TestCourse.cpp @@ -112,6 +112,7 @@ TestCourse::TestCourse() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 0, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM; } void TestCourse::Load() { diff --git a/src/engine/courses/ToadsTurnpike.cpp b/src/engine/courses/ToadsTurnpike.cpp index 257b6c990..7a19a54dc 100644 --- a/src/engine/courses/ToadsTurnpike.cpp +++ b/src/engine/courses/ToadsTurnpike.cpp @@ -104,6 +104,7 @@ ToadsTurnpike::ToadsTurnpike() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {209, 65, 23}; + Props.Sequence = MusicSeq::MUSIC_SEQ_TOADS_TURNPIKE; } void ToadsTurnpike::Load() { diff --git a/src/engine/courses/WarioStadium.cpp b/src/engine/courses/WarioStadium.cpp index f074fb31e..62c75143a 100644 --- a/src/engine/courses/WarioStadium.cpp +++ b/src/engine/courses/WarioStadium.cpp @@ -103,6 +103,7 @@ WarioStadium::WarioStadium() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {0, 0, 0}; + Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM; } void WarioStadium::Load() { diff --git a/src/engine/courses/YoshiValley.cpp b/src/engine/courses/YoshiValley.cpp index 3c0a195f4..6bbf50590 100644 --- a/src/engine/courses/YoshiValley.cpp +++ b/src/engine/courses/YoshiValley.cpp @@ -100,6 +100,7 @@ YoshiValley::YoshiValley() { Props.Skybox.FloorBottomRight = {0, 0, 0}; Props.Skybox.FloorBottomLeft = {0, 0, 0}; Props.Skybox.FloorTopLeft = {95, 40, 15}; + Props.Sequence = MusicSeq::MUSIC_SEQ_MOO_MOO_FARM_YOSHI_VALLEY; } void YoshiValley::Load() { diff --git a/src/menus.c b/src/menus.c index 9bbd14332..a42e86c96 100644 --- a/src/menus.c +++ b/src/menus.c @@ -60,7 +60,7 @@ s8 D_8018EE0C; struct_8018EE10_entry D_8018EE10[2]; /** Data **/ -s32 gMenuSelection = START_MENU; +s32 gMenuSelection = LOGO_INTRO_MENU; s32 D_800E86A4 = 0; s8 gCharacterSelections[4] = { MARIO, LUIGI, YOSHI, TOAD }; @@ -1851,7 +1851,7 @@ void func_800B3F74(s32 menuSelection) { } D_8018EDF1 = D_800F2BE0[gPlayerCount - 1]; func_800CA008(0, 0); - func_800C8EAC(1); + play_sequence(MUSIC_SEQ_TITLE_SCREEN); D_8018EDFC = 0; break; } @@ -1868,13 +1868,13 @@ void func_800B3F74(s32 menuSelection) { func_800CB2C4(); gGamestate = 0; gGamestateNext = 0; - func_800C8EAC(2); + play_sequence(MUSIC_SEQ_MAIN_MENU); } switch (D_8018EDE0) { case 0: { gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; - func_800C8EAC(2); + play_sequence(MUSIC_SEQ_MAIN_MENU); gPlayerCount = 1; if (gScreenModeSelection >= NUM_SCREEN_MODES || gScreenModeSelection < 0) { gScreenModeSelection = SCREEN_MODE_1P; @@ -1926,7 +1926,7 @@ void func_800B3F74(s32 menuSelection) { func_800CB2C4(); gGamestate = 0; gGamestateNext = 0; - func_800C8EAC(2); + play_sequence(MUSIC_SEQ_MAIN_MENU); for (i = 0; i < ARRAY_COUNT(D_8018EDE8); i++) { D_8018EDE8[i] = false; } @@ -1966,7 +1966,7 @@ void func_800B3F74(s32 menuSelection) { func_800CB2C4(); gGamestate = 0; gGamestateNext = 0; - func_800C8EAC(2); + play_sequence(MUSIC_SEQ_MAIN_MENU); } play_sound2(SOUND_MENU_SELECT_MAP); D_8018EE0A = 0; diff --git a/src/racing/race_logic.c b/src/racing/race_logic.c index 7565b4f5c..025b50d79 100644 --- a/src/racing/race_logic.c +++ b/src/racing/race_logic.c @@ -21,6 +21,7 @@ #include "effects.h" #include "math.h" #include "menus.h" +#include "sounds.h" #include "port/Game.h" #pragma intrinsic(sqrtf) @@ -423,31 +424,10 @@ void func_8028EC98(s32 arg0) { func_800029B0(); - if (GetCourse() == GetMarioRaceway() || GetCourse() == GetRoyalRaceway() || GetCourse() == GetLuigiRaceway() || - GetCourse() == GetWarioStadium()) { - func_800C8EAC(3); - } else if (GetCourse() == GetToadsTurnpike()) { - func_800C8EAC(21); - } else if (GetCourse() == GetYoshiValley() || GetCourse() == GetMooMooFarm()) { - func_800C8EAC(4); - } else if (GetCourse() == GetChocoMountain() || GetCourse() == GetBlockFort() || GetCourse() == GetDoubleDeck()) { - func_800C8EAC(5); - } else if (GetCourse() == GetKalimariDesert()) { - func_800C8EAC(10); - } else if (GetCourse() == GetKoopaTroopaBeach()) { - func_800C8EAC(6); - } else if (GetCourse() == GetBowsersCastle()) { - func_800C8EAC(9); - } else if (GetCourse() == GetBansheeBoardwalk()) { - func_800C8EAC(7); - } else if (GetCourse() == GetFrappeSnowland() || GetCourse() == GetSherbetLand()) { - func_800C8EAC(8); - } else if (GetCourse() == GetRainbowRoad()) { - func_800C8EAC(18); - } else if (GetCourse() == GetDkJungle()) { - func_800C8EAC(19); - } else if (GetCourse() == GetSkyscraper() || GetCourse() == GetBigDonut()) { - func_800C8EAC(25); + enum MusicSeq sequence = CourseManager_GetProps()->Sequence; + + if(sequence != MUSIC_SEQ_UNKNOWN){ + play_sequence(sequence); } } diff --git a/yamls/us/sound/sequences.yml b/yamls/us/sound/sequences.yml index d34c7a86c..f57a42051 100644 --- a/yamls/us/sound/sequences.yml +++ b/yamls/us/sound/sequences.yml @@ -30,7 +30,7 @@ raceways_wario_stadium: banks: - sound/banks/bank_3 -moo_moo_fame_yoshi_valley: +moo_moo_farm_yoshi_valley: type: NAUDIO:V0:SEQUENCE id: 4 size: 0x1CA0 @@ -62,7 +62,7 @@ banshee_boardwalk: banks: - sound/banks/bank_7 -seq_08: +frappe_snowland: type: NAUDIO:V0:SEQUENCE id: 8 size: 0x23D0 @@ -70,7 +70,7 @@ seq_08: banks: - sound/banks/bank_8 -seq_09: +bowsers_castle: type: NAUDIO:V0:SEQUENCE id: 9 size: 0x1800 @@ -126,7 +126,7 @@ finish_5th_8th_place: banks: - sound/banks/bank_11 -seq_10: +seq_16: type: NAUDIO:V0:SEQUENCE id: 16 size: 0x1410 @@ -150,7 +150,7 @@ rainbow_road: banks: - sound/banks/bank_15 -maybe_boo_item: +dk_jungle: type: NAUDIO:V0:SEQUENCE id: 19 size: 0x06C0