diff options
author | Astatin <[email protected]> | 2025-05-15 15:42:26 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-05-15 15:42:26 +0200 |
commit | a1dad7db479d8203df30a649a688f7351b667d8e (patch) | |
tree | 66c878c78365d87f7b37a2ea506c1e1979e0d536 /enemiesattacks | |
parent | ef9de76cd0bc313385b7edac3659e03ab36d3c1e (diff) |
Fix some bugs owl found
Diffstat (limited to 'enemiesattacks')
-rw-r--r-- | enemiesattacks/freeze.gbasm | 4 | ||||
-rw-r--r-- | enemiesattacks/poison.gbasm | 4 | ||||
-rw-r--r-- | enemiesattacks/walk.gbasm | 48 |
3 files changed, 35 insertions, 21 deletions
diff --git a/enemiesattacks/freeze.gbasm b/enemiesattacks/freeze.gbasm index 86e47d9..cdf5afc 100644 --- a/enemiesattacks/freeze.gbasm +++ b/enemiesattacks/freeze.gbasm @@ -56,6 +56,10 @@ Freeze_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D POP BC RET Z + LD A, $mem_bunny_flags + CP $00 + RET NZ + LD A, $01 LD $mem_bunny_status, A LD A, $02 diff --git a/enemiesattacks/poison.gbasm b/enemiesattacks/poison.gbasm index 807eae3..8970571 100644 --- a/enemiesattacks/poison.gbasm +++ b/enemiesattacks/poison.gbasm @@ -56,6 +56,10 @@ Poison_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D POP BC RET Z + LD A, $mem_bunny_flags + CP $00 + RET NZ + LD A, $08 LD $mem_bunny_status, A diff --git a/enemiesattacks/walk.gbasm b/enemiesattacks/walk.gbasm index a11b32f..1bc762b 100644 --- a/enemiesattacks/walk.gbasm +++ b/enemiesattacks/walk.gbasm @@ -1,3 +1,20 @@ +.MACRODEF INVERT_AXIS + PUSH AF + LD A, $tmp_var_3 + CP $00 + JR Z, =$skip_invert_axis + LD A, B + LD B, C + LD C, A + LD A, D + DEC A + XOR $02 + INC A + LD D, A + $skip_invert_axis: + POP AF +.END + Walking: ; entity XY in BC, Breaks E, Direction result in D ; Is Bunny close enough to follow LD A, $mem_bunny_x @@ -41,20 +58,18 @@ Walking: ; entity XY in BC, Breaks E, Direction result in D AND $02 LD $tmp_var_3, A + .INVERT_AXIS + + LD A, $tmp_var_3 CP $00 - JR Z, =.skip_invert_axis + JR Z, =.skip_invert_target_axis LD A, $mem_bunny_predicted_y LD $tmp_var_1, A LD A, $mem_bunny_predicted_x LD $tmp_var_2, A - - LD E, B - LD B, C - LD C, E - - .skip_invert_axis: + .skip_invert_target_axis: ; Choose direction LD A, B @@ -74,17 +89,15 @@ Walking: ; entity XY in BC, Breaks E, Direction result in D .Check_Horizontal_Collision: LD E, A - DEC E - LD A, $tmp_var_3 - XOR E - INC E - INC A OR $08 PUSH BC + PUSH DE LD D, A + .INVERT_AXIS LD A, $01 .ADD_A_TO_DIRECTION_BC CALL =Is_Collisionable + POP DE POP BC CP $00 LD A, E @@ -110,8 +123,6 @@ Walking: ; entity XY in BC, Breaks E, Direction result in D DEC A LD E, A - LD A, $tmp_var_3 - XOR E INC A OR $08 LD D, A @@ -119,13 +130,8 @@ Walking: ; entity XY in BC, Breaks E, Direction result in D ; Check collision .No_movement: - LD A, $tmp_var_3 - CP $00 - JR Z, =.skip_invert_axis2 - LD E, B - LD B, C - LD C, E - .skip_invert_axis2: + + .INVERT_AXIS LD A, D AND $07 |