Add Minish form, handle Zora dive doors and holes
This commit is contained in:
@@ -43,11 +43,11 @@ org $1BEE1B
|
|||||||
org $398000
|
org $398000
|
||||||
Palette_ArmorAndGloves:
|
Palette_ArmorAndGloves:
|
||||||
{
|
{
|
||||||
|
|
||||||
LDA $02B2 : CMP #$01 : BEQ .deku_mask
|
LDA $02B2 : CMP #$01 : BEQ .deku_mask
|
||||||
CMP.b #$02 : BEQ .zora_mask
|
CMP.b #$02 : BEQ .zora_mask
|
||||||
CMP.b #$03 : BEQ .wolf_mask
|
CMP.b #$03 : BEQ .wolf_mask
|
||||||
CMP.b #$04 : BEQ .bunny_hood
|
CMP.b #$04 : BEQ .bunny_hood
|
||||||
|
CMP.b #$05 : BEQ .minish_form
|
||||||
JMP .original_sprite
|
JMP .original_sprite
|
||||||
|
|
||||||
.deku_mask
|
.deku_mask
|
||||||
@@ -68,6 +68,11 @@ Palette_ArmorAndGloves:
|
|||||||
JSL $37F000
|
JSL $37F000
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
.minish_form
|
||||||
|
LDA.b #$3A : STA $BC ; Load Minish Form Location
|
||||||
|
JMP .original_palette
|
||||||
|
RTL
|
||||||
|
|
||||||
.original_sprite
|
.original_sprite
|
||||||
LDA.b #$10 : STA $BC ; Load Original Sprite Location
|
LDA.b #$10 : STA $BC ; Load Original Sprite Location
|
||||||
|
|
||||||
@@ -140,7 +145,6 @@ Overworld_CgramAuxToMain_Override:
|
|||||||
LDA $7EC400, X : STA $7EC600, X
|
LDA $7EC400, X : STA $7EC600, X
|
||||||
LDA $7EC440, X : STA $7EC640, X
|
LDA $7EC440, X : STA $7EC640, X
|
||||||
LDA $7EC480, X : STA $7EC680, X
|
LDA $7EC480, X : STA $7EC680, X
|
||||||
|
|
||||||
LDA $02B2 : BNE .has_mask_palette
|
LDA $02B2 : BNE .has_mask_palette
|
||||||
LDA $7EC4C0, X : STA $7EC6C0, X
|
LDA $7EC4C0, X : STA $7EC6C0, X
|
||||||
.has_mask_palette
|
.has_mask_palette
|
||||||
@@ -170,7 +174,9 @@ org $0DEE24
|
|||||||
|
|
||||||
; extra free space in bank07 for longs (no longer used)
|
; extra free space in bank07 for longs (no longer used)
|
||||||
org $07F89D
|
org $07F89D
|
||||||
|
incsrc "minish_form.asm"
|
||||||
|
print "==> End of Minish Form insert", pc
|
||||||
|
; 07FB8F
|
||||||
org $07F8A6
|
org $07F8A6
|
||||||
|
|
||||||
org $07F8AE
|
org $07F8AE
|
||||||
@@ -183,7 +189,10 @@ org $07F8C9
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $07FA41
|
; 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.
|
||||||
|
org $07FA55
|
||||||
LinkState_ResetMaskAnimated:
|
LinkState_ResetMaskAnimated:
|
||||||
{
|
{
|
||||||
LDA $02B2 : BEQ .no_mask
|
LDA $02B2 : BEQ .no_mask
|
||||||
@@ -205,5 +214,6 @@ LinkState_ResetMaskAnimated:
|
|||||||
.no_mask
|
.no_mask
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
print "End of LinkState_ResetMaskAnimated", pc
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
38
Masks/minish_form.asm
Normal file
38
Masks/minish_form.asm
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
; Minish Form Link
|
||||||
|
;
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
LinkState_CheckForMinishForm:
|
||||||
|
{
|
||||||
|
SEP #$30
|
||||||
|
|
||||||
|
LDY.b #$04 : LDA.b #$23
|
||||||
|
JSL AddTransformationCloud
|
||||||
|
LDA.b #$14 : JSR Player_DoSfx2
|
||||||
|
|
||||||
|
LDA $02B2 : CMP.b #$05 : BEQ .already_minish
|
||||||
|
|
||||||
|
LDA #$3A : STA $BC ; change link's sprite
|
||||||
|
LDA #$05 : STA $02B2 ; Set the current mask form
|
||||||
|
REP #$30
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.already_minish
|
||||||
|
LDA #$10 : STA $BC : STZ $02B2
|
||||||
|
REP #$30
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
org $07DA2A
|
||||||
|
TileDetection_OverworldAttributeJumpTable:
|
||||||
|
|
||||||
|
; Tile ID 64
|
||||||
|
org $07DAF2
|
||||||
|
dw $F89D
|
||||||
|
|
||||||
|
org $3A8000
|
||||||
|
incbin gfx/minish_link.4bpp
|
||||||
|
|
||||||
@@ -179,6 +179,10 @@ LinkState_UsingZoraMask:
|
|||||||
; Check if the player is actually diving
|
; Check if the player is actually diving
|
||||||
LDA $0AAB : BEQ .return_default
|
LDA $0AAB : BEQ .return_default
|
||||||
|
|
||||||
|
LDA $0114 : CMP #$85 : BEQ .return_default
|
||||||
|
LDA $0114 : CMP #$09 : BEQ .return_default
|
||||||
|
LDA $5B : CMP #$02 : BEQ .player_is_falling
|
||||||
|
|
||||||
; Check if the ground level is safe
|
; Check if the ground level is safe
|
||||||
; Otherwise, eject the player back to the surface
|
; Otherwise, eject the player back to the surface
|
||||||
LDA $0114 : BNE .remove_dive : CLC
|
LDA $0114 : BNE .remove_dive : CLC
|
||||||
@@ -191,6 +195,7 @@ LinkState_UsingZoraMask:
|
|||||||
LDA.b #$15 : LDY.b #$00 : JSL AddTransitionSplash
|
LDA.b #$15 : LDY.b #$00 : JSL AddTransitionSplash
|
||||||
.remove_dive
|
.remove_dive
|
||||||
LDA #$04 : STA $5D ; Set Link to Swimming State
|
LDA #$04 : STA $5D ; Set Link to Swimming State
|
||||||
|
.player_is_falling
|
||||||
LDA #$01 : STA $EE ; Set Link to upper level
|
LDA #$01 : STA $EE ; Set Link to upper level
|
||||||
STA $0345 ; Set deep water flag
|
STA $0345 ; Set deep water flag
|
||||||
|
|
||||||
@@ -221,6 +226,7 @@ LinkState_UsingZoraMask:
|
|||||||
LDA #$06 : STA $5D ; Set Link to Recoil State
|
LDA #$06 : STA $5D ; Set Link to Recoil State
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
print "End of Zora Mask Dive Code ", pc
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user