diff options
Diffstat (limited to '')
| -rw-r--r-- | src/poweruphax.S | 38 | 
1 files changed, 28 insertions, 10 deletions
| diff --git a/src/poweruphax.S b/src/poweruphax.S index 9274b78..e028eb9 100644 --- a/src/poweruphax.S +++ b/src/poweruphax.S @@ -16,6 +16,7 @@  .extern continuePlumberSetPowerupTexture  .extern doneSettingThePowerupTexture  .extern doneSettingThePowerupTexture2 +.extern returnFromPowerupSoundChange  #ifndef __MWERKS__  .set r0,0;   .set r1,1;   .set r2,2; .set r3,3;   .set r4,4 @@ -391,16 +392,30 @@ _not19:  .global FixPowerupSound  FixPowerupSound: -	# WARNING! This is a bad, bad, bad hack. -	# I was too lazy to add anything to the linker script, so... - -	# We branch at 80141334, so our LR is 80141338 -	# We need to jump to 80141384 -	mflr r3 -	addi r3, r3, 0x4C -	mtlr r3 +	#lis r3, DBString@h +	#ori r3, r3, DBString@l +	#lwz r4, 0x1090(r29) +	#crclr 4*cr1+eq +	#bl OSReport + +	lwz r5, 0x14DC(r29) # Original powerup +	lwz r0, 0x1090(r29) # New powerup +	# if NEW is 1 (big) and OLD is not 0 or 3, then play 273 (powerdown) +	cmpwi r0, 1 +	bne dontConsiderPowerdown + +	cmpwi r5, 0 +	beq dontConsiderPowerdown +	cmpwi r5, 3 +	beq dontConsiderPowerdown +	# If the player is here, he was downgraded from a higher powerup to Big Mario +	# So play the powerdown sound +	mr r3, r29 +	li r4, 273 +	li r5, 0 +	b returnFromPowerupSoundChange -	lwz r0, 0x1090(r29) +dontConsiderPowerdown:  	lis r3, PowerupSounds@h  	ori r3, r3, PowerupSounds@l  	slwi r4, r0, 2 @@ -408,7 +423,7 @@ FixPowerupSound:  	mr r3, r29  	li r5, 0 -	blr +	b returnFromPowerupSoundChange  .global WeirdAnimLoadHack @@ -719,6 +734,9 @@ I_hammerModelName:  PowerupTexDebugStr:  	.string "Plumber::SetPowerupTexture() called on class %p with texnum %d lr=%p\n" +DBString: +	.string "PW:%d\n" +  #.global BrosModelFilename  #BrosModelFilename:  #	.string "g3d/bros.brres" | 
