diff --git a/src/engine/World.cpp b/src/engine/World.cpp index 8e20806ff..8137b3801 100644 --- a/src/engine/World.cpp +++ b/src/engine/World.cpp @@ -79,6 +79,10 @@ u32 World::PreviousCup() { return 0; } +void World::SetCupIndex(size_t index) { + CupIndex = index; +} + void World::SetCup(Cup* cup) { if (cup) { CurrentCup = cup; diff --git a/src/engine/World.h b/src/engine/World.h index 915cacf27..bc6845aae 100644 --- a/src/engine/World.h +++ b/src/engine/World.h @@ -82,6 +82,7 @@ public: void AddCup(Cup*); void SetCup(Cup* cup); + void SetCupIndex(size_t index); const char* GetCupName(); u32 GetCupIndex(); u32 NextCup(); diff --git a/src/menus.c b/src/menus.c index d921ac740..ce9f0a643 100644 --- a/src/menus.c +++ b/src/menus.c @@ -2005,6 +2005,7 @@ void load_menu_states(s32 menuSelection) { CM_SetCup(GetBattleCup()); // gCupSelection = BATTLE_CUP; D_800DC540 = 4; + CM_SetCupIndex(BATTLE_CUP); gSubMenuSelection = SUB_MENU_MAP_SELECT_BATTLE_COURSE; } else { if (GetCup() == GetBattleCup()) { diff --git a/src/port/Game.cpp b/src/port/Game.cpp index 2c0ec3a0a..33b4e9d16 100644 --- a/src/port/Game.cpp +++ b/src/port/Game.cpp @@ -244,6 +244,10 @@ u32 GetCupIndex(void) { return gWorldInstance.GetCupIndex(); } +void CM_SetCupIndex(size_t index) { + gWorldInstance.SetCupIndex(index); +} + const char* GetCupName(void) { return gWorldInstance.CurrentCup->Name; } @@ -394,10 +398,11 @@ void CM_BeginPlay() { if (course) { // Do not spawn finishline in credits or battle mode. And if bSpawnFinishline. - if ((gGamestate != CREDITS_SEQUENCE) && (gGamestate != BATTLE) && (course->bSpawnFinishline)) { - gWorldInstance.AddActor(new AFinishline(course->FinishlineSpawnPoint)); + if ((gGamestate != CREDITS_SEQUENCE) && (gModeSelection != BATTLE)) { + if (course->bSpawnFinishline) { + gWorldInstance.AddActor(new AFinishline(course->FinishlineSpawnPoint)); + } } - gEditor.AddLight("Sun", nullptr, D_800DC610[1].l->l.dir); course->BeginPlay(); diff --git a/src/port/Game.h b/src/port/Game.h index 2102cb7ea..2731372ca 100644 --- a/src/port/Game.h +++ b/src/port/Game.h @@ -51,6 +51,8 @@ void PreviousCourse(); void CM_SetCup(void*); +void CM_SetCupIndex(size_t index); + void CM_LoadTextures(); void CM_RenderCourse(struct UnkStruct_800DC5EC* arg0);