diff options
Diffstat (limited to 'src/levelspecial.cpp')
-rw-r--r-- | src/levelspecial.cpp | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/src/levelspecial.cpp b/src/levelspecial.cpp index d92c5ce..5fd900d 100644 --- a/src/levelspecial.cpp +++ b/src/levelspecial.cpp @@ -28,6 +28,8 @@ extern EventTable_t *EventTable; extern u16 TimeStopFlag; extern u32 TimerBranch; +extern u32 AlwaysDrawFlag; +extern u32 AlwaysDrawBranch; extern float MarioDescentRate; extern float MarioJumpMax; @@ -36,6 +38,7 @@ extern float MiniMarioJumpArc; extern float MarioSize; extern float GlobalSpriteSize; +extern float GlobalSpriteSpeed; extern float GlobalRiderSize; extern char SizerOn; @@ -65,8 +68,11 @@ bool ResetAfterLevel(void) { MiniMarioJumpArc = 2.5; MarioSize = 1.0; GlobalSpriteSize = 1.0; + GlobalSpriteSpeed = 1.0; GlobalRiderSize = 1.0; SizerOn = 0; + AlwaysDrawFlag = 0x9421FFF0; + AlwaysDrawBranch = 0x7C0802A6; return true;
}
@@ -148,14 +154,29 @@ void LevelSpecial_Update(LevelSpecial *self) { case 5: // Global Enemy Size - SizerOn = 1; + SizerOn = 3; GlobalSpriteSize = GlobalSizeFloatModifications[self->effect]; GlobalRiderSize = GlobalRiderFloatModifications[self->effect]; + GlobalSpriteSpeed = GlobalRiderFloatModifications[self->effect]; - + AlwaysDrawFlag = 0x38600001; + AlwaysDrawBranch = 0x4E800020; + break; + case 6: // Individual Enemy Size - SizerOn = 1; + AlwaysDrawFlag = 0x38600001; + AlwaysDrawBranch = 0x4E800020; + + if (self->effect == 0) + { + SizerOn = 1; // Nyb 5 + } + else + { + SizerOn = 2; // Nyb 7 + } + break; default: @@ -194,9 +215,18 @@ void LevelSpecial_Update(LevelSpecial *self) { GlobalSpriteSize = 1.0; GlobalRiderSize = 1.0; + GlobalSpriteSpeed = 1.0; + + AlwaysDrawFlag = 0x9421FFF0; + AlwaysDrawBranch = 0x7C0802A6; + break; case 6: // Individual Enemy Size SizerOn = 0; + + AlwaysDrawFlag = 0x9421FFF0; + AlwaysDrawBranch = 0x7C0802A6; + break; default: break; |