diff options
Diffstat (limited to 'src/port/Game.cpp')
| -rw-r--r-- | src/port/Game.cpp | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/src/port/Game.cpp b/src/port/Game.cpp index 4d563659d..309ea01b8 100644 --- a/src/port/Game.cpp +++ b/src/port/Game.cpp @@ -163,6 +163,38 @@ void CustomEngineInit() { // gModelLoader.Load(); } +void CustomEngineDestroy() { + delete gMarioRaceway; + delete gChocoMountain; + delete gBowsersCastle; + delete gBansheeBoardwalk; + delete gYoshiValley; + delete gFrappeSnowland; + delete gKoopaTroopaBeach; + delete gRoyalRaceway; + delete gLuigiRaceway; + delete gMooMooFarm; + delete gToadsTurnpike; + delete gKalimariDesert; + delete gSherbetLand; + delete gRainbowRoad; + delete gWarioStadium; + delete gBlockFort; + delete gSkyscraper; + delete gDoubleDeck; + delete gDkJungle; + delete gBigDonut; + delete gPodiumCeremony; + delete gHarbour; + delete gTestCourse; + + delete gMushroomCup; + delete gFlowerCup; + delete gStarCup; + delete gSpecialCup; + delete gBattleCup; +} + extern "C" { void HM_InitIntro() { @@ -209,6 +241,10 @@ u32 GetCupIndex(void) { return gWorldInstance.GetCupIndex(); } +void CM_SetCupIndex(size_t index) { + gWorldInstance.SetCupIndex(index); +} + const char* GetCupName(void) { return gWorldInstance.CurrentCup->Name; } @@ -359,10 +395,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(); @@ -795,6 +832,7 @@ extern "C" while (WindowIsRunning()) { push_frame(); } + CustomEngineDestroy(); // GameEngine::Instance->ProcessFrame(push_frame); GameEngine::Instance->Destroy(); return 0; |
