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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
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
Turn_Jump_table:
; 00
RET
NOP
NOP
NOP
; 01
JP =Move_Bunny
NOP
; 02
JP =Fox_Turn
NOP
; 03
JP =Cat_Turn
NOP
; 04
JP =Penguin_Turn
NOP
; 05
JP =QuestGoal_Turn
NOP
; 06
JP =Fimsh_Turn
NOP
; 07
JP =Mouse_Turn
NOP
; 08
JP =Frog_Turn
NOP
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
|