Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/engine/events/hidden_objects/school_blackboard.asm
1271 views
1
PrintBlackboardLinkCableText:
2
call EnableAutoTextBoxDrawing
3
ld a, $1
4
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
5
ld a, [wHiddenObjectFunctionArgument]
6
call PrintPredefTextID
7
ret
8
9
LinkCableHelp::
10
text_asm
11
call SaveScreenTilesToBuffer1
12
ld hl, LinkCableHelpText1
13
call PrintText
14
xor a
15
ld [wMenuItemOffset], a ; not used
16
ld [wCurrentMenuItem], a
17
ld [wLastMenuItem], a
18
ld a, PAD_A | PAD_B
19
ld [wMenuWatchedKeys], a
20
ld a, 3
21
ld [wMaxMenuItem], a
22
ld a, 2
23
ld [wTopMenuItemY], a
24
ld a, 1
25
ld [wTopMenuItemX], a
26
.linkHelpLoop
27
ld hl, wStatusFlags5
28
set BIT_NO_TEXT_DELAY, [hl]
29
hlcoord 0, 0
30
ld b, 8
31
ld c, 13
32
call TextBoxBorder
33
hlcoord 2, 2
34
ld de, HowToLinkText
35
call PlaceString
36
ld hl, LinkCableHelpText2
37
call PrintText
38
call HandleMenuInput
39
bit B_PAD_B, a
40
jr nz, .exit
41
ld a, [wCurrentMenuItem]
42
cp 3 ; pressed a on "STOP READING"
43
jr z, .exit
44
ld hl, wStatusFlags5
45
res BIT_NO_TEXT_DELAY, [hl]
46
ld hl, LinkCableInfoTexts
47
add a
48
ld d, 0
49
ld e, a
50
add hl, de
51
ld a, [hli]
52
ld h, [hl]
53
ld l, a
54
call PrintText
55
jp .linkHelpLoop
56
.exit
57
ld hl, wStatusFlags5
58
res BIT_NO_TEXT_DELAY, [hl]
59
call LoadScreenTilesFromBuffer1
60
jp TextScriptEnd
61
62
LinkCableHelpText1:
63
text_far _LinkCableHelpText1
64
text_end
65
66
LinkCableHelpText2:
67
text_far _LinkCableHelpText2
68
text_end
69
70
HowToLinkText:
71
db "HOW TO LINK"
72
next "COLOSSEUM"
73
next "TRADE CENTER"
74
next "STOP READING@"
75
76
LinkCableInfoTexts:
77
dw LinkCableInfoText1
78
dw LinkCableInfoText2
79
dw LinkCableInfoText3
80
81
LinkCableInfoText1:
82
text_far _LinkCableInfoText1
83
text_end
84
85
LinkCableInfoText2:
86
text_far _LinkCableInfoText2
87
text_end
88
89
LinkCableInfoText3:
90
text_far _LinkCableInfoText3
91
text_end
92
93
ViridianSchoolBlackboard::
94
text_asm
95
call SaveScreenTilesToBuffer1
96
ld hl, ViridianSchoolBlackboardText1
97
call PrintText
98
xor a
99
ld [wMenuItemOffset], a
100
ld [wCurrentMenuItem], a
101
ld [wLastMenuItem], a
102
ld a, PAD_LEFT | PAD_RIGHT | PAD_A | PAD_B
103
ld [wMenuWatchedKeys], a
104
ld a, 2
105
ld [wMaxMenuItem], a
106
ld a, 2
107
ld [wTopMenuItemY], a
108
ld a, 1
109
ld [wTopMenuItemX], a
110
.blackboardLoop
111
ld hl, wStatusFlags5
112
set BIT_NO_TEXT_DELAY, [hl]
113
hlcoord 0, 0
114
lb bc, 6, 10
115
call TextBoxBorder
116
hlcoord 1, 2
117
ld de, StatusAilmentText1
118
call PlaceString
119
hlcoord 6, 2
120
ld de, StatusAilmentText2
121
call PlaceString
122
ld hl, ViridianSchoolBlackboardText2
123
call PrintText
124
call HandleMenuInput ; pressing up and down is handled in here
125
bit B_PAD_B, a ; pressed b
126
jr nz, .exitBlackboard
127
bit B_PAD_RIGHT, a
128
jr z, .didNotPressRight
129
; move cursor to right column
130
ld a, 2
131
ld [wMaxMenuItem], a
132
ld a, 2
133
ld [wTopMenuItemY], a
134
ld a, 6
135
ld [wTopMenuItemX], a
136
ld a, 3 ; in the the right column, use an offset to prevent overlap
137
ld [wMenuItemOffset], a
138
jr .blackboardLoop
139
.didNotPressRight
140
bit B_PAD_LEFT, a
141
jr z, .didNotPressLeftOrRight
142
; move cursor to left column
143
ld a, 2
144
ld [wMaxMenuItem], a
145
ld a, 2
146
ld [wTopMenuItemY], a
147
ld a, 1
148
ld [wTopMenuItemX], a
149
xor a
150
ld [wMenuItemOffset], a
151
jr .blackboardLoop
152
.didNotPressLeftOrRight
153
ld a, [wCurrentMenuItem]
154
ld b, a
155
ld a, [wMenuItemOffset]
156
add b
157
cp 5 ; cursor is pointing to "QUIT"
158
jr z, .exitBlackboard
159
; we must have pressed a on a status condition
160
; so print the text
161
ld hl, wStatusFlags5
162
res BIT_NO_TEXT_DELAY, [hl]
163
ld hl, ViridianBlackboardStatusPointers
164
add a
165
ld d, 0
166
ld e, a
167
add hl, de
168
ld a, [hli]
169
ld h, [hl]
170
ld l, a
171
call PrintText
172
jp .blackboardLoop
173
.exitBlackboard
174
ld hl, wStatusFlags5
175
res BIT_NO_TEXT_DELAY, [hl]
176
call LoadScreenTilesFromBuffer1
177
jp TextScriptEnd
178
179
ViridianSchoolBlackboardText1:
180
text_far _ViridianSchoolBlackboardText1
181
text_end
182
183
ViridianSchoolBlackboardText2:
184
text_far _ViridianSchoolBlackboardText2
185
text_end
186
187
StatusAilmentText1:
188
db " SLP"
189
next " PSN"
190
next " PAR@"
191
192
StatusAilmentText2:
193
db " BRN"
194
next " FRZ"
195
next " QUIT@"
196
197
db "@" ; unused
198
199
ViridianBlackboardStatusPointers:
200
dw ViridianBlackboardSleepText
201
dw ViridianBlackboardPoisonText
202
dw ViridianBlackboardPrlzText
203
dw ViridianBlackboardBurnText
204
dw ViridianBlackboardFrozenText
205
206
ViridianBlackboardSleepText:
207
text_far _ViridianBlackboardSleepText
208
text_end
209
210
ViridianBlackboardPoisonText:
211
text_far _ViridianBlackboardPoisonText
212
text_end
213
214
ViridianBlackboardPrlzText:
215
text_far _ViridianBlackboardPrlzText
216
text_end
217
218
ViridianBlackboardBurnText:
219
text_far _ViridianBlackboardBurnText
220
text_end
221
222
ViridianBlackboardFrozenText:
223
text_far _ViridianBlackboardFrozenText
224
text_end
225
226