1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
Entities_Actions:
LD A, $mem_moving_animation_step
CP $09
JR Z, =.Reset_Entities_Collision_Map
CP $05
JR Z, =.Reset_Entities_Collision_Map
LD A, $mem_map_loading_flags
BIT 5, A
JR Z, =.Action_Functions
.Reset_Entities_Collision_Map:
CALL =Reset_Entities_Collision_Map
.Action_Functions:
LD HL, $mem_entities_list
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
CALL =Entity_Action
RET
Entity_Action:
LD A, (HL+)
CP $00
JR Z, =.skip
INC HL
INC HL
INC HL
LD E, (HL)
PUSH HL
LD A, L
AND $f0
LD L, A
LD BC, =Turn_Jump_table
LD A, E
.JUMP_TABLE
POP HL
.skip:
LD A, L
AND $f0
ADD $10
LD L, A
RET
Interaction_Jump_table:
; 00
RET
NOP
NOP
NOP
; 01
JP =Enemy_Interaction
NOP
; 02
JP =Open_Dialogue
NOP
Enemy_Interaction:
LD A, L
AND $f0
LD $mem_entity_being_attacked_low, A
LD A, $mem_bunny_direction
RES 3, A
LD $mem_bunny_direction, A
LD A, $01
LD $mem_bunny_animation, A
LD A, $mem_map_loading_flags
SET 4, A
LD $mem_map_loading_flags, A
RET
|