diff options
Diffstat (limited to 'src/levelspecial.cpp')
-rw-r--r-- | src/levelspecial.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/levelspecial.cpp b/src/levelspecial.cpp index 25e2130..35dc05a 100644 --- a/src/levelspecial.cpp +++ b/src/levelspecial.cpp @@ -47,7 +47,7 @@ extern u32 GameTimer; float GlobalSizeFloatModifications [] = {1, 0.25, 0.5, 0.75, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 5, 6, 7, 8, 10 }; float GlobalRiderFloatModifications [] = {1, 0.6, 0.7, 0.9, 1, 1, 1, 1.1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5}; - +bool NoMichaelBuble = false; void LevelSpecial_Update(LevelSpecial *self); bool ResetAfterLevel(); @@ -58,6 +58,14 @@ bool ResetAfterLevel(); fBase_c *FindActorByID(u32 id); +extern "C" void dAcPy_vf294(void *Mario, dStateBase_c *state, u32 unk); +void MarioStateChanger(void *Mario, dStateBase_c *state, u32 unk) { + OSReport("State: %p, %s", state, state->getName()); + + if ((strcmp(state->getName(), "dAcPy_c::StateID_Balloon") == 0) && (NoMichaelBuble)) { return; } + + dAcPy_vf294(Mario, state, unk); +} bool ResetAfterLevel(void) { // TimeStopFlag = 0; @@ -179,6 +187,10 @@ void LevelSpecial_Update(LevelSpecial *self) { ZOrderOn = 1; break; + case 8: + NoMichaelBuble = true; + break; + default: break; } @@ -230,6 +242,10 @@ void LevelSpecial_Update(LevelSpecial *self) { ZOrderOn = 0; break; + case 8: + NoMichaelBuble = false; + break; + default: break; } |