summaryrefslogtreecommitdiff
path: root/src/levelspecial.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/levelspecial.cpp')
-rw-r--r--src/levelspecial.cpp18
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;
}