summaryrefslogtreecommitdiff
path: root/src/port/Game.cpp
diff options
context:
space:
mode:
authorMegaMech <7255464+MegaMech@users.noreply.github.com>2024-11-23 22:18:17 -0700
committerMegaMech <7255464+MegaMech@users.noreply.github.com>2024-11-23 22:18:17 -0700
commitfd59569ef59fce535427e18f42d47274ce4ac93a (patch)
treeeb24025ef4e3ad4a068c3ab8f4b76d649eb163f2 /src/port/Game.cpp
parentfc92794854eb8a1e628dff85abc749ad9d786e50 (diff)
Implement Thwomps
Diffstat (limited to 'src/port/Game.cpp')
-rw-r--r--src/port/Game.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/port/Game.cpp b/src/port/Game.cpp
index d9f9ee8d9..5b79f29c9 100644
--- a/src/port/Game.cpp
+++ b/src/port/Game.cpp
@@ -26,11 +26,13 @@
#include "engine/courses/DoubleDeck.h"
#include "engine/courses/DKJungle.h"
#include "engine/courses/BigDonut.h"
+#include "engine/courses/Prison.h"
#include "engine/courses/TestCourse.h"
#include "engine/courses/PodiumCeremony.h"
#include "engine/TrainCrossing.h"
+#include "engine/vehicles/OBombKart.h"
#include "Smoke.h"
@@ -72,6 +74,7 @@ DoubleDeck* gDoubleDeck;
DKJungle* gDkJungle;
BigDonut* gBigDonut;
PodiumCeremony* gPodiumCeremony;
+PrisonCourse* gPrisonCourse;
TestCourse* gTestCourse;
Cup* gMushroomCup;
@@ -103,6 +106,7 @@ void CustomEngineInit() {
gDkJungle = new DKJungle();
gBigDonut = new BigDonut();
gPodiumCeremony = new PodiumCeremony();
+ gPrisonCourse = new PrisonCourse();
gTestCourse = new TestCourse();
/* Add all courses to the global course list */
@@ -126,6 +130,7 @@ void CustomEngineInit() {
gWorldInstance.AddCourse(gDoubleDeck);
gWorldInstance.AddCourse(gDkJungle);
gWorldInstance.AddCourse(gBigDonut);
+ gWorldInstance.AddCourse(gPrisonCourse);
gWorldInstance.AddCourse(gTestCourse);
gMushroomCup = new Cup("mk:mushroom_cup", "mushroom cup", std::vector<Course*>{ gLuigiRaceway, gMooMooFarm, gKoopaTroopaBeach, gKalimariDesert });
@@ -293,6 +298,8 @@ extern "C" {
void CourseManager_ClearVehicles(void) {
gWorldInstance.ClearVehicles();
+ gWorldInstance.BombKarts.clear();
+ gWorldInstance.Thwomps.clear();
}
void CourseManager_CrossingTrigger() {
@@ -466,6 +473,22 @@ extern "C" {
}
}
+ void CourseManager_TickThwomps() {
+ for (auto& thwomp : gWorldInstance.Thwomps) {
+ if (thwomp) {
+ thwomp->Tick();
+ }
+ }
+ }
+
+ void CourseManager_DrawThwomps(s32 cameraId) {
+ for (auto& thwomp : gWorldInstance.Thwomps) {
+ if (thwomp) {
+ thwomp->Draw(cameraId);
+ }
+ }
+ }
+
size_t GetCupCursorPosition() {
return gWorldInstance.CurrentCup->CursorPosition;
}