Implement Thwomps

This commit is contained in:
MegaMech
2024-11-23 22:18:17 -07:00
parent fc92794854
commit fd59569ef5
10 changed files with 795 additions and 32 deletions
+23
View File
@@ -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;
}