From 10aed52daf8f06032342504c4a5fffa81031a90e Mon Sep 17 00:00:00 2001 From: Astatin Date: Thu, 10 Oct 2024 17:42:11 +0900 Subject: Fox not getting stuck on walls when following --- entity/actions.gbasm | 22 +++++++++++++++++++--- entity/init.gbasm | 3 +++ 2 files changed, 22 insertions(+), 3 deletions(-) (limited to 'entity') diff --git a/entity/actions.gbasm b/entity/actions.gbasm index 37c4035..f04a8f7 100644 --- a/entity/actions.gbasm +++ b/entity/actions.gbasm @@ -97,7 +97,7 @@ Fox_AI: JP Z, =Fox_AI.Start_action_or_movement.end LD A, $mem_moving_animation_step CP $00 - JR NZ, =Fox_AI.Start_action_or_movement.end + JP NZ, =Fox_AI.Start_action_or_movement.end LD A, $mem_bunny_x LD $tmp_var_1, A @@ -136,10 +136,26 @@ Fox_AI: Fox_AI.Go_Right: LD A, $enum_direction_right - JR =Fox_AI.Direction_check_end + JR =Fox_AI.Check_Horizontal_Collision Fox_AI.Go_Left: LD A, $enum_direction_left - JR =Fox_AI.Direction_check_end + + Fox_AI.Check_Horizontal_Collision: + LD E, A + DEC E + LD A, $tmp_var_3 + XOR E + INC E + INC A + OR $08 + PUSH BC + CALL =Get_Position_After_Move + LD A, C + CALL =Is_Collisionable + POP BC + CP $00 + LD A, E + JR Z, =Fox_AI.Direction_check_end Fox_AI.Vertical: LD A, C diff --git a/entity/init.gbasm b/entity/init.gbasm index 9a2aeb4..65f841f 100644 --- a/entity/init.gbasm +++ b/entity/init.gbasm @@ -42,6 +42,9 @@ Initialize_Entities: INC HL CALL =Initialize_Fox + CALL =Initialize_Fox + CALL =Initialize_Fox + CALL =Initialize_Fox Fix_Bunny_screen: LD A, $mem_bunny_x -- cgit v1.2.3-70-g09d2