Update Deku Link routines

This commit is contained in:
scawful
2023-05-03 21:00:20 -05:00
parent 36706a7611
commit 2e0a82f549
2 changed files with 128 additions and 109 deletions

View File

@@ -3,100 +3,35 @@
; ============================================================================= ; =============================================================================
; Link Sprite hook
org $008A01 org $008A01
LDA $BC LDA $BC
; ============================================================================= ; =============================================================================
org $07B64F org $358000
Link_HandleDiagonalCollision: incbin gfx/deku_link.bin
; start of free space in bank07
org $07F89D
Link_HandleDiagonalCollision_Long:
{
PHB : PHK : PLB
JSR Link_HandleDiagonalCollision
PLB
RTL
}
; ============================================================================= ; =============================================================================
org $07B7C7 org $07F8D1
Link_HandleCardinalCollision: Link_HandleDekuTransformation:
org $07F8A6
Link_HandleCardinalCollision_Long:
{ {
PHB : PHK : PLB LDA $5D : CMP.b #$0A : BEQ .continue
JSR Link_HandleCardinalCollision JSR $82DA
PLB
RTL .continue
STZ $03F5
STZ $03F6
; Link can move.
CLC
RTS
} }
; ============================================================================= org $07811A
JSR Link_HandleDekuTransformation
org $07E8F0
HandleIndoorCameraAndDoors:
org $07F8AE
HandleIndoorCameraAndDoors_Long:
{
PHB : PHK : PLB
JSR HandleIndoorCameraAndDoors
PLB
RTL
}
; =============================================================================
org $07F514
CheckIndoorStatus:
org $07F8B7
CheckIndoorStatus_Long:
{
PHB : PHK : PLB
JSR CheckIndoorStatus
PLB
RTL
}
; =============================================================================
org $079873
Player_ResetSwimCollision:
org $07F8C0
Player_ResetSwimCollision_Long:
{
PHB : PHK : PLB
JSR Player_ResetSwimCollision
PLB
RTL
}
; =============================================================================
org $079B0E
Link_HandleYItems:
org $07F8C9
Link_HandleYItems_Long:
{
PHB : PHK : PLB
JSR Link_HandleYItems
PLB
RTL
}
print pc
org $07F1A3
Player_ResetState_A:
org $07F1FA
Player_ResetState_C:
; ============================================================================= ; =============================================================================
@@ -119,7 +54,7 @@ LinkItem_DekuMask:
LDA #$35 : STA $BC ; put the mask on LDA #$35 : STA $BC ; put the mask on
LDA #$01 : STA $02B2 LDA #$01 : STA $02B2
LDA #$02 : STA $03FC LDA #$00 : STA $03FC
BRA .return BRA .return
.unequip .unequip
@@ -140,8 +75,10 @@ LinkItem_UsingQuake:
{ {
JSR $82DA JSR $82DA
JSL LinkItem_UsingDekuMask JSL LinkItem_UsingDekuMask
RTS RTS
NOP #152 NOP #149
print pc print pc
} }
; end of UsingQuake is at 07A773 ; end of UsingQuake is at 07A773
@@ -151,19 +88,18 @@ LinkItem_UsingQuake:
org $318000 org $318000
LinkItem_UsingDekuMask: LinkItem_UsingDekuMask:
{ {
; SEP #$20 JSL CheckIndoorStatus_Long
; JSL CheckIndoorStatus_Long
; LDA.b $F5 LDA.b $F5
; AND.b #$80 AND.b #$80
; BEQ .dont_toggle_oob BEQ .dont_toggle_oob
; LDA.w $037F LDA.w $037F
; EOR.b #$01 EOR.b #$01
; STA.w $037F STA.w $037F
; .dont_toggle_oob .dont_toggle_oob
; STZ.w $02CA STZ.w $02CA
LDA $0345 : BNE .recache LDA $0345 : BNE .recache
LDA $4D : BEQ .recoiling LDA $4D : BEQ .recoiling
@@ -216,7 +152,7 @@ LinkItem_UsingDekuMask:
LDA.b #$01 : STA $0335 : STA $0337 LDA.b #$01 : STA $0335 : STA $0337
LDA.b #$80 : STA $0334 : STA $0336 LDA.b #$80 : STA $0334 : STA $0336
BRL $9715 ; BRL $9715
.not_moving .not_moving
@@ -269,8 +205,3 @@ LinkItem_UsingDekuMask:
RTL RTL
} }
; =============================================================================
org $358000
incbin gfx/deku_link.bin

View File

@@ -19,6 +19,9 @@ org $07915E
org $07E6A6 org $07E6A6
Link_HandleMovingAnimation_FullLongEntry: Link_HandleMovingAnimation_FullLongEntry:
org $07E69D
Link_HandleMovingAnimation_SetFacingDown:
org $01FF28 org $01FF28
Player_CacheStatePriorToHandler: Player_CacheStatePriorToHandler:
@@ -126,3 +129,88 @@ Palette_ArmorAndGloves:
PLA : PLY : PLX PLA : PLY : PLX
RTL RTL
} }
; =============================================================================
org $07B64F
Link_HandleDiagonalCollision:
; start of free space in bank07
org $07F89D
Link_HandleDiagonalCollision_Long:
{
PHB : PHK : PLB
JSR Link_HandleDiagonalCollision
PLB
RTL
}
; =============================================================================
org $07B7C7
Link_HandleCardinalCollision:
org $07F8A6
Link_HandleCardinalCollision_Long:
{
PHB : PHK : PLB
JSR Link_HandleCardinalCollision
PLB
RTL
}
; =============================================================================
org $07E8F0
HandleIndoorCameraAndDoors:
org $07F8AE
HandleIndoorCameraAndDoors_Long:
{
PHB : PHK : PLB
JSR HandleIndoorCameraAndDoors
PLB
RTL
}
; =============================================================================
org $07F514
CheckIndoorStatus:
org $07F8B7
CheckIndoorStatus_Long:
{
PHB : PHK : PLB
JSR CheckIndoorStatus
PLB
RTL
}
; =============================================================================
org $079873
Player_ResetSwimCollision:
org $07F8C0
Player_ResetSwimCollision_Long:
{
PHB : PHK : PLB
JSR Player_ResetSwimCollision
PLB
RTL
}
; =============================================================================
org $079B0E
Link_HandleYItems:
org $07F8C9
Link_HandleYItems_Long:
{
PHB : PHK : PLB
JSR Link_HandleYItems
PLB
RTL
}