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