From ce168b6508de4d524c701750a74ad5216f3506df Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 1 Oct 2023 16:46:15 -0400 Subject: [PATCH] Prevent Link from using masks on Minish tiles --- Masks/minish_form.asm | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/Masks/minish_form.asm b/Masks/minish_form.asm index db90ee6..93e8ef6 100644 --- a/Masks/minish_form.asm +++ b/Masks/minish_form.asm @@ -1,14 +1,13 @@ -; ============================================================================= +; ========================================================= ; Minish Form Link ; ; Reacts to Tile ID 64 to transform into Minish Link -; ============================================================================= +; ========================================================= org $398000 incbin gfx/minish_link.4bpp -; ============================================================================= - +; ========================================================= org $07DA2A TileDetection_OverworldAttributeJumpTable: @@ -18,16 +17,29 @@ org $07DAF2 dw LinkState_CheckForMinishForm ; Tile ID 64 dw LinkState_CheckMinishTile ; Tile ID 65 -; ============================================================================= - +; ========================================================= ; Start of free space in bank 07 org $07F89D LinkState_CheckForMinishForm: { SEP #$30 + ; Check for the R button (like minish cap) %CheckNewR_ButtonPress() : BEQ .return + ; Skip the code if you have a mask item out + LDA $0202 + + ; Check if the value in A (from $0202) is LT $13. + CMP.b #$13 : BCC .continue + + ; Check if the value in A (from $0202) is GTE to $16. + CMP.b #$17 : BCS .continue + + JMP .return + +.continue + LDA !CurrentMask CMP.b #$05 : BEQ .already_minish ; return to human form CMP.b #$00 : BNE .return ; don't transform if not human @@ -43,7 +55,7 @@ LinkState_CheckForMinishForm: .already_minish %PlayerTransform() %ResetToLinkGraphics() - LDA $0AAF : STA.l $7EF35A + LDA $0AAF : STA.l $7EF35A ; restore the shield .return REP #$30