aboutsummaryrefslogtreecommitdiff
path: root/enemiesattacks/freeze.gbasm
diff options
context:
space:
mode:
Diffstat (limited to 'enemiesattacks/freeze.gbasm')
-rw-r--r--enemiesattacks/freeze.gbasm40
1 files changed, 38 insertions, 2 deletions
diff --git a/enemiesattacks/freeze.gbasm b/enemiesattacks/freeze.gbasm
index b5b6319..e5ce309 100644
--- a/enemiesattacks/freeze.gbasm
+++ b/enemiesattacks/freeze.gbasm
@@ -1,4 +1,20 @@
+Freeze_sight_check: ; BC = XY of the enemy. D = direction (must be unchanged). Direction to face in E (or 0 if not)
+ LD E, $00
+
+ LD A, L
+ AND $f0
+ ADD $09
+ LD L, A
+ LD A, $00
+ CP (HL)
+ RET Z
+ JP =Check_player_next_to
+
Freeze_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D
+ LD A, D
+ AND $f0
+ SWAP A
+ LD D, A
LD A, E
DEC A
DEC D
@@ -10,12 +26,24 @@ Freeze_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D
JR NZ, =.attack
LD D, E
+ LD A, D
+ SWAP A
+ AND $70
+ OR D
+ LD D, A
RET
.attack:
LD A, E
- OR $10
+ SWAP A
+ AND $70
+ OR E
LD D, A
+ LD A, L
+ AND $f0
+ OR $0a
+ LD L, A
+ LD (HL), $01
PUSH BC
LD A, $mem_bunny_direction
@@ -33,8 +61,10 @@ Freeze_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D
LD A, $02
LD $mem_bunny_flags, A
LD A, $mem_bunny_direction
- AND $07
+ RES 3, A
LD $mem_bunny_direction, A
+ LD A, $00
+ LD $mem_bunny_animation, A
LD A, $mem_bunny_x
LD $mem_bunny_predicted_x, A
LD A, $mem_bunny_y
@@ -48,4 +78,10 @@ Freeze_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D
LD A, $enum_dungeon_mode
LD $mem_requested_mode, A
+ LD A, L
+ AND $f0
+ ADD $09
+ LD L, A
+ DEC (HL)
+
RET