summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinclude/game.h3
-rw-r--r--kamek_pal.x13
-rw-r--r--src/bossBalboaWrench.cpp4
-rw-r--r--src/bossFuzzyBear.cpp51
4 files changed, 49 insertions, 22 deletions
diff --git a/include/game.h b/include/game.h
index cca0fac..d9581b6 100755
--- a/include/game.h
+++ b/include/game.h
@@ -346,7 +346,6 @@ public:
class dStage32C_c {
public:
- dStage32C_c();
u32 bulletData1;
u32 bulletData2;
@@ -374,8 +373,6 @@ public:
u8 _171[3];
u32 pokeyTimer;
- void setup();
-
static dStage32C_c *instance;
};
diff --git a/kamek_pal.x b/kamek_pal.x
index 05038e3..498bcbe 100644
--- a/kamek_pal.x
+++ b/kamek_pal.x
@@ -49,10 +49,15 @@ SECTIONS {
/* Boss Related */
- StopBGMMusic = 0x807DB420;
- StartBGMMusic = 0x807DB430;
- instance__8Stage32C = 0x8043A1F0;
- setup__8Stage32CFv = 0x800A7450;
+ StartBGMMusic = 0x807DB420;
+ StopBGMMusic = 0x807DB430;
+ instance__11dStage32C_c = 0x8043A1F0;
+ createChild__13dStageActor_cF6ActorsP13dStageActor_cUiP7Point3dP6S16VecUc = 0x80064680;
+
+ StateID_DemoSt2__12daKameckDemo = 0x80999C04;
+ StateID_DemoSt__12daKameckDemo = 0x80999C44;
+ StateID_DemoWait__12daKameckDemo = 0x80999C84;
+
/* Mr Sun Related */
diff --git a/src/bossBalboaWrench.cpp b/src/bossBalboaWrench.cpp
index 9760d8a..a503876 100644
--- a/src/bossBalboaWrench.cpp
+++ b/src/bossBalboaWrench.cpp
@@ -45,11 +45,11 @@ class daBalboa_c : public dEn_c {
void playerCollision(ActivePhysics *apThis, ActivePhysics *apOther);
void collisionCat1_Fireball_E_Explosion(ActivePhysics *apThis, ActivePhysics *apOther);
bool collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, ActivePhysics *apOther);
- void collisionCatD_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther);
+ // void collisionCatD_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther);
void collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther);
void collisionCat13_Hammer(ActivePhysics *apThis, ActivePhysics *apOther);
void collisionCat7_WMWaggleWater(ActivePhysics *apThis, ActivePhysics *apOther);
- void collisionCat7_WMWaggleWaterYoshi(ActivePhysics *apThis, ActivePhysics *apOther);
+ // void collisionCat7_WMWaggleWaterYoshi(ActivePhysics *apThis, ActivePhysics *apOther);
USING_STATES(daBalboa_c);
DECLARE_STATE(Grow);
diff --git a/src/bossFuzzyBear.cpp b/src/bossFuzzyBear.cpp
index 1c9ab89..f22cf6c 100644
--- a/src/bossFuzzyBear.cpp
+++ b/src/bossFuzzyBear.cpp
@@ -341,36 +341,43 @@ void daFuzzyBear_c::updateModelMatrices() {
// Grow State
void daFuzzyBear_c::beginState_Grow() {
- OSReport("Growing when Kameck Tells me to.");
+ OSReport("Growing when Kameck Tells me to.\n");
this->timer = 0;
+ OSReport("Stopping the Music.\n");
StopBGMMusic();
- dStage32C_c::instance->freezeMarioBossFlag = 1;
-// Store 1 to PointerToStage32C @ 0x15C - This should freeze Mario - Unimplemented because I don't know how to ref the class
+ OSReport("Setting the boss flag.\n");
+ // dStage32C_c::instance->freezeMarioBossFlag = 1;
+// Store 1 to PointerToStage32C @ 0x15C - This should freeze Mario - But it doesn't. Must do something though, right?
- Vec pos = (Vec){this->pos.x+40.0, this->pos.y + 80.0, 3564.0};
+ OSReport("Creating the Vecs.\n");
+ Vec pos = (Vec){this->pos.x - 124.0, this->pos.y + 104.0, 3564.0};
S16Vec rot = (S16Vec){0, 0, 0};
+
+ OSReport("Creating Kameck.\n");
Kameck = (daKameckDemo*)createChild(KAMECK_FOR_CASTLE_DEMO, (dStageActor_c*)this, 0, &pos, &rot, 0);
+ OSReport("Setting Kameck's State.\n");
Kameck->doStateChange(&daKameckDemo::StateID_DemoWait);
+
+ OSReport("Executing the Kamek.\n");
}
void daFuzzyBear_c::executeState_Grow() {
- if (this->timer == 30) { Kameck->doStateChange(&daKameckDemo::StateID_DemoSt); }
- if (this->timer == 90) { Kameck->doStateChange(&daKameckDemo::StateID_DemoSt2); }
-
+ if (this->timer == 130) { Kameck->doStateChange(&daKameckDemo::StateID_DemoSt); }
+ if (this->timer == 400) { Kameck->doStateChange(&daKameckDemo::StateID_DemoSt2); }
this->timer = this->timer + 1;
float scaleSpeed, yPosScaling;
- if (this->timer == 60) { PlaySound(this, SE_BOSS_IGGY_WANWAN_TO_L); }
+ if (this->timer == 150) { PlaySound(this, SE_BOSS_IGGY_WANWAN_TO_L); }
- if ((this->timer > 60) && (this->timer < 140)) {
+ if ((this->timer > 150) && (this->timer < 230)) {
if (BigBossFuzzyBear == 1) {
scaleSpeed = 0.025;
@@ -381,26 +388,44 @@ void daFuzzyBear_c::executeState_Grow() {
float modifier;
- modifier = 1.0 + ((this->timer - 60) * scaleSpeed);
+ modifier = 1.0 + ((this->timer - 150) * scaleSpeed);
this->scale = (Vec){modifier, modifier, modifier};
this->pos.y = this->pos.y + (yPosScaling/80);
}
+
+ if (this->timer == 360) {
+
+ Vec tempPos = (Vec){this->pos.x - 40.0, this->pos.y + 120.0, 3564.0};
+ CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 175); // 400 & 401 // 564 // 583 // 754 // 958
+ CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 400); // 400 & 401 // 564 // 583 // 754 // 958
+ CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 401); // 400 & 401 // 564 // 583 // 754 // 958
+ CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 564); // 400 & 401 // 564 // 583 // 754 // 958
+ CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 583); // 400 & 401 // 564 // 583 // 754 // 958
+ CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 754); // 400 & 401 // 564 // 583 // 754 // 958
+ CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 958); // 400 & 401 // 564 // 583 // 754 // 958
+
+ }
- if (this->timer > 170) { doStateChange(&StateID_Bounce); }
+ if (this->timer > 420) { doStateChange(&StateID_Bounce); }
}
void daFuzzyBear_c::endState_Grow() {
this->Baseline = this->pos.y;
- dStage32C_c::instance->freezeMarioBossFlag = 0;
+ OSReport("Ending boss flag.\n");
+ // dStage32C_c::instance->freezeMarioBossFlag = 0;
// Store 0 to PointerToStage32C @ 0x15C - This should unfreeze Mario
// PlaySound(this, STRM_BGM_TORIDE_BOSS);
+ OSReport("Ending BGMusic.\n");
StartBGMMusic();
+ OSReport("Deleting the Kamek.\n");
+
+ Kameck->Delete(1);
OSReport("OK. All grown up now.");
}
@@ -777,7 +802,7 @@ void daFuzzyBear_c::beginState_Outro() {
this->timer = 0;
StopBGMMusic();
// Store 1 to PointerToStage32C @ 0x15C - This should freeze Mario
- dStage32C_c::instance->freezeMarioBossFlag = 1;
+ // dStage32C_c::instance->freezeMarioBossFlag = 1;
}
void daFuzzyBear_c::executeState_Outro() {