From aba4844daf75a1301586a40f2842c5e981d8b402 Mon Sep 17 00:00:00 2001 From: Colin Noga Date: Thu, 13 Dec 2012 23:46:52 -0600 Subject: No bubbles added to special event sprite. --- bossCaptainBowser.yaml | 1 - kamek_pal.x | 2 ++ levelspecial.yaml | 11 +++++++++-- src/bossPlayerClown.cpp | 2 -- src/levelspecial.cpp | 18 +++++++++++++++++- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/bossCaptainBowser.yaml b/bossCaptainBowser.yaml index 5fb4a63..7c39704 100644 --- a/bossCaptainBowser.yaml +++ b/bossCaptainBowser.yaml @@ -8,7 +8,6 @@ source_files: [../src/bossPlayerClown.cpp, ../src/bossCaptainBowser.cpp, ../src/ hooks: - ################################################ # HOOKS FOR CAPTAIN BOWSER ################################################ diff --git a/kamek_pal.x b/kamek_pal.x index f0e75db..b2f1c5f 100644 --- a/kamek_pal.x +++ b/kamek_pal.x @@ -89,6 +89,8 @@ SECTIONS { dAcPy_vf3F8 = 0x80146310; dAcPy_vf3FC = 0x80146A10; + dAcPy_vf294 = 0x80047390; + /* Back to other shit I didn't want to scroll for */ Cloud_death_execute = 0x809DDB80; diff --git a/levelspecial.yaml b/levelspecial.yaml index cc8d33a..a156960 100644 --- a/levelspecial.yaml +++ b/levelspecial.yaml @@ -14,12 +14,19 @@ hooks: target_func: 'LevelSpecial_Execute(LevelSpecial *)' - name: ResetAfterLevel - type: branch_insn + type: branch_insn branch_type: b src_addr_pal: 0x809259E0 target_func: 'ResetAfterLevel(void)' - + - name: LevelSpecial_MemFix type: patch addr_pal: 0x808AC778 data: '38600400' + + - name: MarioStateChanger + type: add_func_pointer + src_addr_pal: 0x803259FC + target_func: 'MarioStateChanger(void *, dStateBase_c *, unsigned int)' + + diff --git a/src/bossPlayerClown.cpp b/src/bossPlayerClown.cpp index c760214..c213872 100644 --- a/src/bossPlayerClown.cpp +++ b/src/bossPlayerClown.cpp @@ -21,8 +21,6 @@ extern "C" int PClownCarDraw(dEn_c *clown); extern "C" void PClownCarMove(dEn_c *clown); - - const char* PCCarcNameList [] = { "koopaJr_clown_ply", NULL diff --git a/src/levelspecial.cpp b/src/levelspecial.cpp index 25e2130..35dc05a 100644 --- a/src/levelspecial.cpp +++ b/src/levelspecial.cpp @@ -47,7 +47,7 @@ extern u32 GameTimer; float GlobalSizeFloatModifications [] = {1, 0.25, 0.5, 0.75, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 5, 6, 7, 8, 10 }; float GlobalRiderFloatModifications [] = {1, 0.6, 0.7, 0.9, 1, 1, 1, 1.1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5}; - +bool NoMichaelBuble = false; void LevelSpecial_Update(LevelSpecial *self); bool ResetAfterLevel(); @@ -58,6 +58,14 @@ bool ResetAfterLevel(); fBase_c *FindActorByID(u32 id); +extern "C" void dAcPy_vf294(void *Mario, dStateBase_c *state, u32 unk); +void MarioStateChanger(void *Mario, dStateBase_c *state, u32 unk) { + OSReport("State: %p, %s", state, state->getName()); + + if ((strcmp(state->getName(), "dAcPy_c::StateID_Balloon") == 0) && (NoMichaelBuble)) { return; } + + dAcPy_vf294(Mario, state, unk); +} bool ResetAfterLevel(void) { // TimeStopFlag = 0; @@ -179,6 +187,10 @@ void LevelSpecial_Update(LevelSpecial *self) { ZOrderOn = 1; break; + case 8: + NoMichaelBuble = true; + break; + default: break; } @@ -230,6 +242,10 @@ void LevelSpecial_Update(LevelSpecial *self) { ZOrderOn = 0; break; + case 8: + NoMichaelBuble = false; + break; + default: break; } -- cgit v1.2.3