update Sprite_CheckIfRecoiling

This commit is contained in:
scawful
2024-07-27 16:50:19 -04:00
parent b7674a4c95
commit 872d3237ee

View File

@@ -878,99 +878,76 @@ MovieEffect:
} }
Sprite_CheckIfRecoiling: Sprite_CheckIfRecoiling:
LDA.w $0EA0,X PHB : PHK : PLB
BEQ .exit
AND.b #$7F LDA.w $0EA0, X : BEQ .exit
BEQ .recoil_over AND.b #$7F : BEQ .recoil_over
LDA.w $0D40, X
PHA
LDA.w $0D40,X LDA.w $0D50, X
PHA PHA
LDA.w $0D50,X DEC.w $0EA0, X : BNE .still_recoiling
PHA LDA.w $0F40, X : CLC : ADC.b #$20 : CMP.b #$40 : BCS .no_adjust
LDA.w $0F30, X : CLC : ADC.b #$20 : CMP.b #$40 : BCC .still_recoiling
.no_adjust
LDA.b #$90 : STA.w $0EA0,X
.still_recoiling
LDA.w $0EA0,X : BMI .no_movement
DEC.w $0EA0,X LSR A
BNE .still_recoiling LSR A
TAY
LDA.w $0F40,X LDA.b $1A : AND.w .masks,Y : BNE .no_movement
CLC
ADC.b #$20
CMP.b #$40
BCS .no_adjust
LDA.w $0F30,X LDA.w $0F30, X : STA.w $0D40,X
CLC
ADC.b #$20
CMP.b #$40
BCC .still_recoiling
.no_adjust LDA.w $0F40, X : STA.w $0D50,X
LDA.b #$90
STA.w $0EA0,X
.still_recoiling LDA.w $0CD2, X : BMI .handle_movement
LDA.w $0EA0,X
BMI .no_movement
LSR A JSL Sprite_CheckTileCollision_long
LSR A
TAY
LDA.b $1A LDA.w $0E70, X : AND.b #$0F : BEQ .handle_movement
AND.w .masks,Y
BNE .no_movement
LDA.w $0F30,X .stop_horizontal_movement
STA.w $0D40,X CMP.b #$04 : BCS .stop_vertical_movement
LDA.w $0F40,X STZ.w $0F40,X
STA.w $0D50,X STZ.w $0D50,X
LDA.w $0CD2,X BRA .movement_stopped
BMI .handle_movement
JSL Sprite_CheckTileCollision_long .stop_vertical_movement
STZ.w $0F30,X
STZ.w $0D40,X
LDA.w $0E70,X .movement_stopped
AND.b #$0F BRA .no_movement
BEQ .handle_movement
.stop_horizontal_movement .handle_movement
CMP.b #$04 JSL Sprite_Move
BCS .stop_vertical_movement
STZ.w $0F40,X .no_movement
STZ.w $0D50,X PLA
STA.w $0D50,X
BRA .movement_stopped PLA
STA.w $0D40,X
.stop_vertical_movement PLA
STZ.w $0F30,X PLA
STZ.w $0D40,X
.movement_stopped .exit
BRA .no_movement PLB
RTL
.handle_movement .recoil_over
JSL Sprite_Move
.no_movement
PLA
STA.w $0D50,X
PLA
STA.w $0D40,X
PLA
PLA
.exit
RTL
.recoil_over
STZ.w $0EA0,X STZ.w $0EA0,X
PLB
RTL RTL
.masks .masks