diff --git a/Masks/mask_routines.asm b/Masks/mask_routines.asm index ba9e3ca..ce45883 100644 --- a/Masks/mask_routines.asm +++ b/Masks/mask_routines.asm @@ -194,7 +194,7 @@ Palette_ArmorAndGloves: ; ========================================================= ; Overworld Palette Persist -; ========================================================= + Overworld_CgramAuxToMain_Override: { @@ -225,6 +225,32 @@ Overworld_CgramAuxToMain_Override: RTL } + +; ========================================================= + +LinkState_ResetMaskAnimated: +{ + LDA.w $02B2 + CMP.b #$01 : BEQ .check_item_slot + CMP.b #$02 : BEQ .no_transform + CMP.b #$03 : BEQ .check_item_slot + CMP.b #$04 : BEQ .check_item_slot + CMP.b #$05 : BEQ .no_transform + CMP.b #$06 : BEQ .gbc_form + + .check_item_slot + LDA.w $0202 : SEC : SBC.b #$13 : BEQ .no_transform + + .transform + %PlayerTransform() + %ResetToLinkGraphics() + + .gbc_form + .no_transform + RTL + +} + pushpc ; ========================================================= diff --git a/Masks/zora_mask.asm b/Masks/zora_mask.asm index f9dc837..70dfd36 100644 --- a/Masks/zora_mask.asm +++ b/Masks/zora_mask.asm @@ -242,33 +242,5 @@ pullpc RTS } -; ============================================================================= - -; TODO: Make this so it does not cancel if $0202 is still the same mask -; corresponding to the form the player is in. -; Also, prevent this from canceling minish form. -LinkState_ResetMaskAnimated: -{ - LDA $02B2 : BEQ .no_mask - CMP.b #$05 : BEQ .no_mask - CMP.b #$06 : BEQ .gbc_form - CMP.b #$02 : BEQ .no_mask - CMP #$01 : BNE .transform - ; Restore the sword, shield, and bow override - LDA $0AAF : STA.l $7EF35A - - .transform - LDY.b #$04 : LDA.b #$23 - JSL AddTransformationCloud - LDA.b #$14 : JSR Player_DoSfx2 - - STZ $02B2 - JSL Palette_ArmorAndGloves - LDA #$10 : STA $BC - .no_mask - .gbc_form - RTL -} - print "End of Masks/zora_mask.asm ", pc pushpc