Prevent Link from using masks on Minish tiles

This commit is contained in:
scawful
2023-10-01 16:46:15 -04:00
parent 5d2e0cf819
commit ce168b6508

View File

@@ -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