update Sprite_CheckIfRecoiling
This commit is contained in:
@@ -878,99 +878,76 @@ MovieEffect:
|
||||
}
|
||||
|
||||
Sprite_CheckIfRecoiling:
|
||||
LDA.w $0EA0,X
|
||||
BEQ .exit
|
||||
PHB : PHK : PLB
|
||||
|
||||
AND.b #$7F
|
||||
BEQ .recoil_over
|
||||
LDA.w $0EA0, X : BEQ .exit
|
||||
AND.b #$7F : BEQ .recoil_over
|
||||
LDA.w $0D40, X
|
||||
PHA
|
||||
|
||||
LDA.w $0D40,X
|
||||
PHA
|
||||
LDA.w $0D50, X
|
||||
PHA
|
||||
|
||||
LDA.w $0D50,X
|
||||
PHA
|
||||
DEC.w $0EA0, X : BNE .still_recoiling
|
||||
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
|
||||
BNE .still_recoiling
|
||||
LSR A
|
||||
LSR A
|
||||
TAY
|
||||
|
||||
LDA.w $0F40,X
|
||||
CLC
|
||||
ADC.b #$20
|
||||
CMP.b #$40
|
||||
BCS .no_adjust
|
||||
LDA.b $1A : AND.w .masks,Y : BNE .no_movement
|
||||
|
||||
LDA.w $0F30,X
|
||||
CLC
|
||||
ADC.b #$20
|
||||
CMP.b #$40
|
||||
BCC .still_recoiling
|
||||
LDA.w $0F30, X : STA.w $0D40,X
|
||||
|
||||
.no_adjust
|
||||
LDA.b #$90
|
||||
STA.w $0EA0,X
|
||||
LDA.w $0F40, X : STA.w $0D50,X
|
||||
|
||||
.still_recoiling
|
||||
LDA.w $0EA0,X
|
||||
BMI .no_movement
|
||||
LDA.w $0CD2, X : BMI .handle_movement
|
||||
|
||||
LSR A
|
||||
LSR A
|
||||
TAY
|
||||
JSL Sprite_CheckTileCollision_long
|
||||
|
||||
LDA.b $1A
|
||||
AND.w .masks,Y
|
||||
BNE .no_movement
|
||||
LDA.w $0E70, X : AND.b #$0F : BEQ .handle_movement
|
||||
|
||||
LDA.w $0F30,X
|
||||
STA.w $0D40,X
|
||||
.stop_horizontal_movement
|
||||
CMP.b #$04 : BCS .stop_vertical_movement
|
||||
|
||||
LDA.w $0F40,X
|
||||
STA.w $0D50,X
|
||||
STZ.w $0F40,X
|
||||
STZ.w $0D50,X
|
||||
|
||||
LDA.w $0CD2,X
|
||||
BMI .handle_movement
|
||||
BRA .movement_stopped
|
||||
|
||||
JSL Sprite_CheckTileCollision_long
|
||||
.stop_vertical_movement
|
||||
STZ.w $0F30,X
|
||||
STZ.w $0D40,X
|
||||
|
||||
LDA.w $0E70,X
|
||||
AND.b #$0F
|
||||
BEQ .handle_movement
|
||||
.movement_stopped
|
||||
BRA .no_movement
|
||||
|
||||
.stop_horizontal_movement
|
||||
CMP.b #$04
|
||||
BCS .stop_vertical_movement
|
||||
.handle_movement
|
||||
JSL Sprite_Move
|
||||
|
||||
STZ.w $0F40,X
|
||||
STZ.w $0D50,X
|
||||
.no_movement
|
||||
PLA
|
||||
STA.w $0D50,X
|
||||
|
||||
BRA .movement_stopped
|
||||
PLA
|
||||
STA.w $0D40,X
|
||||
|
||||
.stop_vertical_movement
|
||||
STZ.w $0F30,X
|
||||
STZ.w $0D40,X
|
||||
PLA
|
||||
PLA
|
||||
|
||||
.movement_stopped
|
||||
BRA .no_movement
|
||||
.exit
|
||||
PLB
|
||||
RTL
|
||||
|
||||
.handle_movement
|
||||
JSL Sprite_Move
|
||||
|
||||
.no_movement
|
||||
PLA
|
||||
STA.w $0D50,X
|
||||
|
||||
PLA
|
||||
STA.w $0D40,X
|
||||
|
||||
PLA
|
||||
PLA
|
||||
|
||||
.exit
|
||||
RTL
|
||||
|
||||
.recoil_over
|
||||
.recoil_over
|
||||
STZ.w $0EA0,X
|
||||
|
||||
PLB
|
||||
RTL
|
||||
|
||||
.masks
|
||||
|
||||
Reference in New Issue
Block a user