cleanup portal rod code

This commit is contained in:
scawful
2024-06-29 14:48:36 -04:00
parent 7db29009d5
commit 998423bac2

View File

@@ -12,37 +12,33 @@ LinkItem_PortalRod:
LDA $6C : BNE .return LDA $6C : BNE .return
JSR Link_CheckNewY_ButtonPress : BCC .return JSR Link_CheckNewY_ButtonPress : BCC .return
LDX.b #$00 LDX.b #$00
JSR LinkItem_EvaluateMagicCost : BCC .insufficient_mp JSR LinkItem_EvaluateMagicCost : BCC .insufficient_mp
LDA.b #$30 : JSR $802F ; Sfx3
LDA.b #$30 : JSR $802F ; Sfx3 JSL LinkItem_FirePortal
JSL LinkItem_FirePortal
.y_button_held
.y_button_held
JSR $AE65 ; HaltLinkWhenUsingItems JSR $AE65 ; HaltLinkWhenUsingItems
; What's the point of this? DEC $3D : BPL .return
; LDA $67 : AND.b #$F0 : STA $67
LDA $0300 : INC A : STA $0300 : TAX
DEC $3D : BPL .return
LDA RodAnimationTimer, X : STA $3D
LDA $0300 : INC A : STA $0300 : TAX
CPX.b #$03 : BNE .return
LDA RodAnimationTimer, X : STA $3D
STZ $0300
CPX.b #$03 : BNE .return STZ $5E
STZ $3D
STZ $5E
STZ $0300 LDA $0301 : AND.b #$FE : STA $0301
STZ $3D
LDA $0301 : AND.b #$FE : STA $0301
.insufficient_mp .insufficient_mp
LDA $3A : AND.b #$BF : STA $3A LDA $3A : AND.b #$BF : STA $3A
.return .return
RTS RTS
} }
@@ -56,31 +52,31 @@ pullpc
Ancilla_HandlePortalCollision: Ancilla_HandlePortalCollision:
{ {
LDA.w $0E20, Y : CMP.b #$03 : BNE .not_portal_arrow LDA.w $0E20, Y : CMP.b #$03 : BNE .not_portal_arrow
; Check if Y is the orange or blue portal ; Check if Y is the orange or blue portal
LDA.w SprSubtype, Y : CMP.b #$02 : BEQ .blue_portal LDA.w SprSubtype, Y : CMP.b #$02 : BEQ .blue_portal
CMP.b #$01 : BEQ .orange_portal CMP.b #$01 : BEQ .orange_portal
.orange_portal .orange_portal
PHY PHY
LDY.w $0632 ; Blue Sprite ID LDY.w $0632 ; Blue Sprite ID
LDA.w SprX, Y : CLC : ADC.b #$10 : STA.w ANC0XL, X LDA.w SprX, Y : CLC : ADC.b #$10 : STA.w ANC0XL, X
LDA.w SprY, Y : STA.w ANC0YL, X LDA.w SprY, Y : STA.w ANC0YL, X
LDA.w SprXH, Y : STA.w ANC0XH, X LDA.w SprXH, Y : STA.w ANC0XH, X
LDA.w SprYH, Y : STA.w ANC0YH, X LDA.w SprYH, Y : STA.w ANC0YH, X
PLY PLY
JMP .continue JMP .continue
.blue_portal .blue_portal
PHY PHY
LDY.w $0633 ; Orange Sprite ID LDY.w $0633 ; Orange Sprite ID
LDA.w SprX, Y : STA.w ANC0XL, X LDA.w SprX, Y : STA.w ANC0XL, X
LDA.w SprY, Y : CLC : ADC.b #$10 : STA.w ANC0YL, X LDA.w SprY, Y : CLC : ADC.b #$10 : STA.w ANC0YL, X
LDA.w SprXH, Y : STA.w ANC0XH, X LDA.w SprXH, Y : STA.w ANC0XH, X
LDA.w SprYH, Y : STA.w ANC0YH, X LDA.w SprYH, Y : STA.w ANC0YH, X
PLY PLY
.continue .continue
LDA.b #$08 LDA.b #$08
RTL RTL
.not_portal_arrow .not_portal_arrow
; Restore arrow deflection sprite code from $088DC3 ; Restore arrow deflection sprite code from $088DC3
LDA.w $0B6B,Y : AND.b #$08 LDA.w $0B6B,Y : AND.b #$08
@@ -183,66 +179,43 @@ ScrollToPortal:
STZ $02 STZ $02
LDA $22 : CMP $7EC186 : BEQ .set_x : BCC .x_low LDA $22 : CMP $7EC186 : BEQ .set_x : BCC .x_low
DEC $02
DEC $02 DEC A : CMP $7EC186 : BEQ .set_x
DEC $02
DEC A : CMP $7EC186 : BEQ .set_x DEC A
BRA .set_x
DEC $02 .x_low
DEC A
BRA .set_x
.x_low
INC $02 INC $02
INC A : CMP $7EC186 : BEQ .set_x INC A : CMP $7EC186 : BEQ .set_x
INC $02 INC $02
INC A INC A
.set_x .set_x
STA $22 STA $22
LDA $20 : CMP $7EC184 : BEQ .set_y : BCC .y_low LDA $20 : CMP $7EC184 : BEQ .set_y : BCC .y_low
DEC $00
DEC $00 DEC A : CMP $7EC184 : BEQ .set_y
DEC $00
DEC A : CMP $7EC184 : BEQ .set_y DEC A
BRA .set_y
DEC $00 .y_low
DEC A
BRA .set_y
.y_low
INC $00 INC $00
INC A : CMP $7EC184 : BEQ .set_y INC A : CMP $7EC184 : BEQ .set_y
INC $00 INC $00
INC A INC A
.set_y .set_y
STA $20 STA $20
CMP $7EC184 : BNE .delay_advance CMP $7EC184 : BNE .delay_advance
LDA $22 : CMP $7EC186 : BNE .delay_advance
LDA $22 : CMP $7EC186 : BNE .delay_advance INC $B0
STZ $46
INC $B0 .delay_advance
STZ $46
.delay_advance
SEP #$20 SEP #$20
@@ -252,10 +225,8 @@ ScrollToPortal:
JSL Overworld_OperateCameraScroll_Long ; $13B90 IN ROM JSL Overworld_OperateCameraScroll_Long ; $13B90 IN ROM
LDA $0416 : BEQ .exit LDA $0416 : BEQ .exit
JSL Overworld_ScrollMap_Long ; $17273 IN ROM
JSL Overworld_ScrollMap_Long ; $17273 IN ROM .exit
.exit
RTL RTL
} }