From 12e4a674748be41a0105f6a7b3b8132d0a3a65b4 Mon Sep 17 00:00:00 2001 From: Colin Noga Date: Mon, 27 Feb 2012 12:34:05 -0600 Subject: More boss related junk --- include/game.h | 38 ++++++++++++++++++++++++++++++++++++++ kamek_pal.x | 2 ++ src/bossFuzzyBear.cpp | 25 +++++++++++++++++-------- 3 files changed, 57 insertions(+), 8 deletions(-) diff --git a/include/game.h b/include/game.h index 6b6a9bd..0ee786a 100755 --- a/include/game.h +++ b/include/game.h @@ -343,6 +343,44 @@ public: }; +class dStage32C_c { +public: + dStage32C_c(); + + u32 bulletData1; + u32 bulletData2; + u8 enemyCombos; + u32 somethingAboutHatenaBalloons; + u8 redCoinCount; + u32 _124[4]; + u32 greenCoinsCollected; + u32 hasKilledEnemyThisTick_maybe; + u16 booID; + u16 _13E; + u32 _bigBooID; + u16 bulletBillCount; + u16 _14A; + u32 bombCount; + u32 goombaCount; + u32 enemyKillCounter; + u32 another_counter; + u32 freezeMarioBossFlag; + u32 aboutMortonBigPile; + u32 somethingAboutPunchingChainlink; + u32 currentBigHanaMgr; + u32 _16C; + u8 penguinCount; + u8 _171[3]; + u32 pokeyTimer; + + void setup(); + + static dStage32C_c *instance; +}; + + + + // No idea if these actually exist or not class mRect { public: diff --git a/kamek_pal.x b/kamek_pal.x index 6a7c8c4..aa6265b 100644 --- a/kamek_pal.x +++ b/kamek_pal.x @@ -49,6 +49,8 @@ SECTIONS { StopBGMMusic = 0x807DB420; StartBGMMusic = 0x807DB430; + instance__8Stage32C = 0x8043A1F0; + setup__8Stage32CFv = 0x800A7450; /* Mr Sun Related */ diff --git a/src/bossFuzzyBear.cpp b/src/bossFuzzyBear.cpp index 4e11f29..1c9ab89 100644 --- a/src/bossFuzzyBear.cpp +++ b/src/bossFuzzyBear.cpp @@ -7,6 +7,15 @@ #include "player.h" +class daKameckDemo : public dEn_c { + +public: + USING_STATES(daKameckDemo); + REF_NINTENDO_STATE(DemoWait); + REF_NINTENDO_STATE(DemoSt); + REF_NINTENDO_STATE(DemoSt2); +}; + class daFuzzyBear_c : public dEn_c { int onCreate(); int onDelete(); @@ -337,25 +346,22 @@ void daFuzzyBear_c::beginState_Grow() { 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 Vec pos = (Vec){this->pos.x+40.0, this->pos.y + 80.0, 3564.0}; S16Vec rot = (S16Vec){0, 0, 0}; - Kameck = (dEn_c*)createChild(KAMECK_FOR_CASTLE_DEMO, (dStageActor_c*)this, 0, &pos, &rot, 0); - USING_STATES(dEn_c); - REF_NINTENDO_STATE(DemoWait); - REF_NINTENDO_STATE(DemoSt); - REF_NINTENDO_STATE(DemoSt2); + Kameck = (daKameckDemo*)createChild(KAMECK_FOR_CASTLE_DEMO, (dStageActor_c*)this, 0, &pos, &rot, 0); - Kameck->doStateChange(&StateID_DemoWait); + Kameck->doStateChange(&daKameckDemo::StateID_DemoWait); } void daFuzzyBear_c::executeState_Grow() { - if (this->timer == 30) { Kameck->doStateChange(&StateID_DemoSt); } - if (this->timer == 90) { Kameck->doStateChange(&StateID_DemoSt2); } + if (this->timer == 30) { Kameck->doStateChange(&daKameckDemo::StateID_DemoSt); } + if (this->timer == 90) { Kameck->doStateChange(&daKameckDemo::StateID_DemoSt2); } this->timer = this->timer + 1; @@ -388,6 +394,8 @@ void daFuzzyBear_c::executeState_Grow() { void daFuzzyBear_c::endState_Grow() { this->Baseline = this->pos.y; + dStage32C_c::instance->freezeMarioBossFlag = 0; + // Store 0 to PointerToStage32C @ 0x15C - This should unfreeze Mario // PlaySound(this, STRM_BGM_TORIDE_BOSS); @@ -769,6 +777,7 @@ void daFuzzyBear_c::beginState_Outro() { this->timer = 0; StopBGMMusic(); // Store 1 to PointerToStage32C @ 0x15C - This should freeze Mario + dStage32C_c::instance->freezeMarioBossFlag = 1; } void daFuzzyBear_c::executeState_Outro() { -- cgit v1.2.3