diff options
Diffstat (limited to '')
| -rw-r--r-- | bossCaptainBowser.yaml | 1 | ||||
| -rw-r--r-- | kamek_pal.x | 2 | ||||
| -rw-r--r-- | levelspecial.yaml | 11 | ||||
| -rw-r--r-- | src/bossPlayerClown.cpp | 2 | ||||
| -rw-r--r-- | 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;  		}  | 
