summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMegaMech <7255464+MegaMech@users.noreply.github.com>2025-05-22 07:04:45 -0600
committerMegaMech <7255464+MegaMech@users.noreply.github.com>2025-05-22 07:04:45 -0600
commit6ff80c5f08c0a9c4e57ec419d4e6dcd781bb5b45 (patch)
tree67b2887e882cdd3b056fd10859634be4e3e60f27
parent20b67182c4fdcb46792fd92197159c3000b64c7b (diff)
Some fixes for battle mode
-rw-r--r--src/engine/World.cpp4
-rw-r--r--src/engine/World.h1
-rw-r--r--src/menus.c1
-rw-r--r--src/port/Game.cpp11
-rw-r--r--src/port/Game.h2
5 files changed, 16 insertions, 3 deletions
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);