aboutsummaryrefslogtreecommitdiff
path: root/entity
diff options
context:
space:
mode:
authorAstatin <[email protected]>2024-10-08 15:35:46 +0900
committerAstatin <astatin@redacted>2024-10-08 15:35:46 +0900
commit9bdce0aa0daf5bf25f21e2bc6863312f01f55376 (patch)
tree0d010281aacbb66a1e3eb46b147e9f880af7cf3d /entity
parent9eab2451e369e56508d1a6b8380e772d74ce7c40 (diff)
Fix foxe's movements
Diffstat (limited to 'entity')
-rw-r--r--entity/actions.gbasm129
-rw-r--r--entity/bunny.gbasm18
-rw-r--r--entity/init.gbasm6
3 files changed, 66 insertions, 87 deletions
diff --git a/entity/actions.gbasm b/entity/actions.gbasm
index 1380c49..5064c79 100644
--- a/entity/actions.gbasm
+++ b/entity/actions.gbasm
@@ -79,89 +79,68 @@ Update_Animation_Steps:
Fox_AI:
PUSH HL
-
- INC HL
- INC HL
+ PUSH BC
+ PUSH DE
INC HL
-
- LD A, $mem_map_loading_flags
- BIT 1, A
- JR Z, =Fox_AI.Update_Position.end
-
- LD A, (HL)
- BIT 3, A
- JR Z, =Fox_AI.Update_Position.end
-
- RES 3, A
- DEC A
-
- LD C, A
- AND $01
- SLA A
- AND $02
- DEC A
+ LD A, (HL+)
LD B, A
+ LD A, (HL+)
+ LD C, A
+ LD A, (HL+)
+ LD D, A
- LD A, L
- AND $f8
- INC A
- LD L, A
-
- BIT 1, C
- JR NZ, =Fox_AI.vertical_tile_move
-
- Fox_AI.horizontal_tile_move:
- LD A, (HL)
- ADD B
- LD (HL), A
- JP =Fox_AI.Update_Position.end
-
- Fox_AI.vertical_tile_move:
- INC HL
- LD A, (HL)
- ADD B
- LD (HL), A
-
- Fox_AI.Update_Position.end:
+ Fox_AI.Start_action_or_movement:
+ LD A, $mem_map_loading_flags
+ BIT 3, A
+ JR 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
+ CALL =RNG_Step
+ AND $03
+ INC A
+ LD E, A
+ CALL =RNG_Step
+ AND $08
+ OR E
+ LD D, A
+
+ PUSH BC
+ CALL =Get_Position_After_Move
+ LD A, C
+ CALL =Is_Collisionable
+ CALL =Carve_Entity_Collision_Map
+ POP BC
+ CP $00
+ JR Z, =Fox_AI.Start_action_or_movement.not_collision
+ RES 3, D
+ Fox_AI.Start_action_or_movement.not_collision:
+ Fox_AI.Start_action_or_movement.end:
+
+ Fox_AI.End_movement:
+ LD A, $mem_map_loading_flags
+ BIT 3, A
+ JP Z, =Fox_AI.End_movement.end
+ LD A, $mem_moving_animation_step
+ CP $0f
+ JP NZ, =Fox_AI.End_movement.end
+ BIT 3, D
+ JR Z, =Fox_AI.End_movement.end
+ LD A, $01
+ .ADD_A_TO_DIRECTION_BC
+ Fox_AI.End_movement.end:
LD A, L
AND $f8
- ADD $03
LD L, A
-
- LD A, $mem_moving_animation_step
- CP $01
- JR NZ, =Fox_AI.end
-
- LD A, $mem_bunny_direction
- BIT 3, A
- JR Z, =Fox_AI.end
-
- CALL =RNG_Step
- AND $08
- LD B, A
-
- CALL =RNG_Step
- AND $03
- INC A
- OR B
- LD B, A
-
- PUSH BC
- CALL =Get_Position_After_Move
+ INC HL
+ LD A, B
+ LD (HL+), A
LD A, C
- CALL =Is_Collisionable
- CALL =Carve_Entity_Collision_Map
+ LD (HL+), A
+ LD A, D
+ LD (HL+), A
+ POP DE
POP BC
- CP $00
- JR Z, =Fox_AI.change_direction
-
- RES 3, B
-
- Fox_AI.change_direction:
- LD (HL), B
-
- Fox_AI.end:
-
POP HL
RET
diff --git a/entity/bunny.gbasm b/entity/bunny.gbasm
index 0460433..c9a55c2 100644
--- a/entity/bunny.gbasm
+++ b/entity/bunny.gbasm
@@ -12,7 +12,12 @@ Move_Bunny:
SET 3, A
LD D, A
+ LD A, $mem_map_loading_flags
+ SET 3, A
+ LD $mem_map_loading_flags, A
+
PUSH BC
+ LD A, D
CALL =Get_Position_After_Move
LD A, C
CALL =Is_Collisionable
@@ -21,24 +26,26 @@ Move_Bunny:
CP $00
JR Z, =Start_action_or_movement.not_collision
RES 3, D
+
+ LD A, $mem_map_loading_flags
+ RES 3, A
+ LD $mem_map_loading_flags, A
+
Start_action_or_movement.not_collision:
LD A, D
LD $mem_bunny_direction, A
- JR =Start_action_or_movement.test_end
-
+ JR =Start_action_or_movement.end
Start_action_or_movement.test_action:
LD A, $mem_button_action
BIT 0, A
JR Z, =Start_action_or_movement.end
LD A, $mem_bunny_direction
- AND $0f
+ AND $07
OR $10
LD $mem_bunny_direction, A
- Start_action_or_movement.test_end:
-
LD A, $mem_map_loading_flags
SET 3, A
LD $mem_map_loading_flags, A
@@ -76,7 +83,6 @@ Move_Bunny:
LD A, $mem_bunny_direction
BIT 3, A
JR Z, =End_movement.end
- AND $07
LD $mem_bunny_direction, A
LD D, A
diff --git a/entity/init.gbasm b/entity/init.gbasm
index b6817d1..9a2aeb4 100644
--- a/entity/init.gbasm
+++ b/entity/init.gbasm
@@ -42,12 +42,6 @@ Initialize_Entities:
INC HL
CALL =Initialize_Fox
- CALL =Initialize_Fox
- CALL =Initialize_Fox
- CALL =Initialize_Fox
- CALL =Initialize_Fox
- CALL =Initialize_Fox
- CALL =Initialize_Fox
Fix_Bunny_screen:
LD A, $mem_bunny_x