From 872d3237ee68f9b05e0f4820c2b10c7f301e8795 Mon Sep 17 00:00:00 2001 From: scawful Date: Sat, 27 Jul 2024 16:50:19 -0400 Subject: [PATCH] update Sprite_CheckIfRecoiling --- Sprites/ZSpriteLib/sprite_functions.asm | 117 ++++++++++-------------- 1 file changed, 47 insertions(+), 70 deletions(-) diff --git a/Sprites/ZSpriteLib/sprite_functions.asm b/Sprites/ZSpriteLib/sprite_functions.asm index ef371dd..cd43163 100644 --- a/Sprites/ZSpriteLib/sprite_functions.asm +++ b/Sprites/ZSpriteLib/sprite_functions.asm @@ -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