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
134
135
136
137
138
139
140
141
142
|
Initialize_Entities:
LD A, $mem_bunny_health
LD B, A
LD HL, $mem_entities_list
Clear_Entities.loop:
XOR A
LD (HL+), A
CP L
JR NZ, =Clear_Entities.loop
LD A, B
LD $mem_bunny_health, A
LD HL, $mem_entities_list
LD A, $01
LD (HL+), A
LD A, $mem_number_of_rooms
CALL =RNG_Bound
SLA A
SLA A
ADD $80
LD C, A
LD B, $c8
LD A, (BC)
LD D, A
INC BC
LD A, (BC)
INC A
CALL =RNG_Bound
ADD D
LD (HL+), A
INC BC
LD A, (BC)
LD D, A
INC BC
LD A, (BC)
INC A
CALL =RNG_Bound
ADD D
LD (HL+), A
LD A, $enum_direction_down
LD (HL+), A
; Turn
LD A, $01
LD (HL+), A
; Action
LD A, $00
LD (HL+), A
LD A, L
ADD $0a
LD L, A
CALL =Initialize_Fox
CALL =Initialize_Fox
CALL =Initialize_Fox
CALL =Initialize_Fox
CALL =Initialize_Fox
Fix_Bunny_screen:
LD A, $mem_bunny_x
SUB $05
LD $mem_viewport_x, A
LD A, $mem_bunny_y
SUB $04
LD $mem_viewport_y, A
LD A, $mem_viewport_x
SWAP A
AND $f0
OR $08
LD $mem_prepared_viewport_x, A
LD A, $mem_viewport_y
SWAP A
AND $f0
OR $08
LD $mem_prepared_viewport_y, A
RET
Initialize_Fox:
LD A, $0d
LD (HL+), A
LD A, $mem_number_of_rooms
CALL =RNG_Bound
SLA A
SLA A
ADD $80
LD C, A
LD B, $c8
LD A, (BC)
LD D, A
INC BC
LD A, (BC)
INC A
CALL =RNG_Bound
ADD D
LD (HL+), A
INC BC
LD A, (BC)
LD D, A
INC BC
LD A, (BC)
INC A
CALL =RNG_Bound
ADD D
LD (HL+), A
LD A, $03
LD (HL+), A
; Turn
LD A, $02
LD (HL+), A
; Action
LD A, $01
LD (HL+), A
LD A, $04
LD (HL), A
LD A, L
ADD $0a
LD L, A
RET
|