diff options
author | Colin Noga <Tempus@chronometry.ca> | 2012-02-28 10:24:05 -0600 |
---|---|---|
committer | Colin Noga <Tempus@chronometry.ca> | 2012-02-28 10:24:05 -0600 |
commit | d45bf07f2c5aeaea6ec0c6fa40c975afdd29d682 (patch) | |
tree | 4da318e19ccc39d194cdc5dc6bc243c23d950bf7 | |
parent | d6924bebc44bf904ec3e9ed8126614f67a04df88 (diff) | |
download | kamek-d45bf07f2c5aeaea6ec0c6fa40c975afdd29d682.tar.gz kamek-d45bf07f2c5aeaea6ec0c6fa40c975afdd29d682.zip |
more boss fixes
-rwxr-xr-x | include/game.h | 3 | ||||
-rw-r--r-- | kamek_pal.x | 13 | ||||
-rw-r--r-- | src/bossBalboaWrench.cpp | 4 | ||||
-rw-r--r-- | src/bossFuzzyBear.cpp | 51 |
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() { |