Prevent Link from using masks on Minish tiles
This commit is contained in:
@@ -1,14 +1,13 @@
|
|||||||
; =============================================================================
|
; =========================================================
|
||||||
; Minish Form Link
|
; Minish Form Link
|
||||||
;
|
;
|
||||||
; Reacts to Tile ID 64 to transform into Minish Link
|
; Reacts to Tile ID 64 to transform into Minish Link
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
|
|
||||||
org $398000
|
org $398000
|
||||||
incbin gfx/minish_link.4bpp
|
incbin gfx/minish_link.4bpp
|
||||||
|
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
|
|
||||||
org $07DA2A
|
org $07DA2A
|
||||||
TileDetection_OverworldAttributeJumpTable:
|
TileDetection_OverworldAttributeJumpTable:
|
||||||
|
|
||||||
@@ -18,16 +17,29 @@ org $07DAF2
|
|||||||
dw LinkState_CheckForMinishForm ; Tile ID 64
|
dw LinkState_CheckForMinishForm ; Tile ID 64
|
||||||
dw LinkState_CheckMinishTile ; Tile ID 65
|
dw LinkState_CheckMinishTile ; Tile ID 65
|
||||||
|
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
|
|
||||||
; Start of free space in bank 07
|
; Start of free space in bank 07
|
||||||
org $07F89D
|
org $07F89D
|
||||||
LinkState_CheckForMinishForm:
|
LinkState_CheckForMinishForm:
|
||||||
{
|
{
|
||||||
SEP #$30
|
SEP #$30
|
||||||
|
|
||||||
; Check for the R button (like minish cap)
|
; Check for the R button (like minish cap)
|
||||||
%CheckNewR_ButtonPress() : BEQ .return
|
%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
|
LDA !CurrentMask
|
||||||
CMP.b #$05 : BEQ .already_minish ; return to human form
|
CMP.b #$05 : BEQ .already_minish ; return to human form
|
||||||
CMP.b #$00 : BNE .return ; don't transform if not human
|
CMP.b #$00 : BNE .return ; don't transform if not human
|
||||||
@@ -43,7 +55,7 @@ LinkState_CheckForMinishForm:
|
|||||||
.already_minish
|
.already_minish
|
||||||
%PlayerTransform()
|
%PlayerTransform()
|
||||||
%ResetToLinkGraphics()
|
%ResetToLinkGraphics()
|
||||||
LDA $0AAF : STA.l $7EF35A
|
LDA $0AAF : STA.l $7EF35A ; restore the shield
|
||||||
|
|
||||||
.return
|
.return
|
||||||
REP #$30
|
REP #$30
|
||||||
|
|||||||
Reference in New Issue
Block a user