cleanup portal rod code
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user