Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/engine/movie/hall_of_fame.asm
1271 views
1
AnimateHallOfFame:
2
call HoFFadeOutScreenAndMusic
3
call ClearScreen
4
ld c, 100
5
call DelayFrames
6
call LoadFontTilePatterns
7
call LoadTextBoxTilePatterns
8
call DisableLCD
9
ld hl, vBGMap0
10
ld bc, 2 * TILEMAP_AREA
11
ld a, " "
12
call FillMemory
13
call EnableLCD
14
ld hl, rLCDC
15
set B_LCDC_BG_MAP, [hl]
16
xor a
17
ld hl, wHallOfFame
18
ld bc, HOF_TEAM
19
call FillMemory
20
xor a
21
ld [wUpdateSpritesEnabled], a
22
ldh [hTileAnimations], a
23
ld [wSpriteFlipped], a
24
ld [wLetterPrintingDelayFlags], a ; no delay
25
ld [wHoFMonOrPlayer], a ; mon
26
inc a
27
ldh [hAutoBGTransferEnabled], a
28
ld hl, wNumHoFTeams
29
ld a, [hl]
30
inc a
31
jr z, .skipInc ; don't wrap around to 0
32
inc [hl]
33
.skipInc
34
ld a, $90
35
ldh [hWY], a
36
ld c, BANK(Music_HallOfFame)
37
ld a, MUSIC_HALL_OF_FAME
38
call PlayMusic
39
ld hl, wPartySpecies
40
ld c, $ff
41
.partyMonLoop
42
ld a, [hli]
43
cp $ff
44
jr z, .doneShowingParty
45
inc c
46
push hl
47
push bc
48
ld [wHoFMonSpecies], a
49
ld a, c
50
ld [wHoFPartyMonIndex], a
51
ld hl, wPartyMon1Level
52
ld bc, wPartyMon2 - wPartyMon1
53
call AddNTimes
54
ld a, [hl]
55
ld [wHoFMonLevel], a
56
call HoFShowMonOrPlayer
57
call HoFDisplayAndRecordMonInfo
58
ld c, 80
59
call DelayFrames
60
hlcoord 2, 13
61
ld b, 3
62
ld c, 14
63
call TextBoxBorder
64
hlcoord 4, 15
65
ld de, HallOfFameText
66
call PlaceString
67
ld c, 180
68
call DelayFrames
69
call GBFadeOutToWhite
70
pop bc
71
pop hl
72
jr .partyMonLoop
73
.doneShowingParty
74
ld a, c
75
inc a
76
ld hl, wHallOfFame
77
ld bc, HOF_MON
78
call AddNTimes
79
ld [hl], $ff
80
call SaveHallOfFameTeams
81
xor a
82
ld [wHoFMonSpecies], a
83
inc a
84
ld [wHoFMonOrPlayer], a ; player
85
call HoFShowMonOrPlayer
86
call HoFDisplayPlayerStats
87
call HoFFadeOutScreenAndMusic
88
xor a
89
ldh [hWY], a
90
ld hl, rLCDC
91
res B_LCDC_BG_MAP, [hl]
92
ret
93
94
HallOfFameText:
95
db "HALL OF FAME@"
96
97
HoFShowMonOrPlayer:
98
call ClearScreen
99
ld a, $d0
100
ldh [hSCY], a
101
ld a, $c0
102
ldh [hSCX], a
103
ld a, [wHoFMonSpecies]
104
ld [wCurPartySpecies], a
105
ld [wCurSpecies], a
106
ld [wBattleMonSpecies2], a
107
ld [wWholeScreenPaletteMonSpecies], a
108
ld a, [wHoFMonOrPlayer]
109
and a
110
jr z, .showMon
111
; show player
112
call HoFLoadPlayerPics
113
jr .next1
114
.showMon
115
hlcoord 12, 5
116
call GetMonHeader
117
call LoadFrontSpriteByMonIndex
118
predef LoadMonBackPic
119
.next1
120
ld b, SET_PAL_POKEMON_WHOLE_SCREEN
121
ld c, 0
122
call RunPaletteCommand
123
ld a, %11100100
124
ldh [rBGP], a
125
ld c, $31 ; back pic
126
call HoFLoadMonPlayerPicTileIDs
127
ld d, $a0
128
ld e, 4
129
ld a, [wOnSGB]
130
and a
131
jr z, .next2
132
sla e ; scroll more slowly on SGB
133
.next2
134
call .ScrollPic ; scroll back pic left
135
xor a
136
ldh [hSCY], a
137
ld c, a ; front pic
138
call HoFLoadMonPlayerPicTileIDs
139
ld d, 0
140
ld e, -4
141
; scroll front pic right
142
143
.ScrollPic
144
call DelayFrame
145
ldh a, [hSCX]
146
add e
147
ldh [hSCX], a
148
cp d
149
jr nz, .ScrollPic
150
ret
151
152
HoFDisplayAndRecordMonInfo:
153
ld a, [wHoFPartyMonIndex]
154
ld hl, wPartyMonNicks
155
call GetPartyMonName
156
call HoFDisplayMonInfo
157
jp HoFRecordMonInfo
158
159
HoFDisplayMonInfo:
160
hlcoord 0, 2
161
ld b, 9
162
ld c, 10
163
call TextBoxBorder
164
hlcoord 2, 6
165
ld de, HoFMonInfoText
166
call PlaceString
167
hlcoord 1, 4
168
ld de, wNameBuffer
169
call PlaceString
170
ld a, [wHoFMonLevel]
171
hlcoord 8, 7
172
call PrintLevelCommon
173
ld a, [wHoFMonSpecies]
174
ld [wCurSpecies], a
175
hlcoord 3, 9
176
predef PrintMonType
177
ld a, [wHoFMonSpecies]
178
jp PlayCry
179
180
HoFMonInfoText:
181
db "LEVEL/"
182
next "TYPE1/"
183
next "TYPE2/@"
184
185
HoFLoadPlayerPics:
186
ld de, RedPicFront
187
ld a, BANK(RedPicFront)
188
call UncompressSpriteFromDE
189
ld hl, sSpriteBuffer1
190
ld de, sSpriteBuffer0
191
ld bc, $310
192
call CopyData
193
ld de, vFrontPic
194
call InterlaceMergeSpriteBuffers
195
ld de, RedPicBack
196
ld a, BANK(RedPicBack)
197
call UncompressSpriteFromDE
198
predef ScaleSpriteByTwo
199
ld de, vBackPic
200
call InterlaceMergeSpriteBuffers
201
ld c, $1
202
203
HoFLoadMonPlayerPicTileIDs:
204
; c = base tile ID
205
ld b, TILEMAP_MON_PIC
206
hlcoord 12, 5
207
predef_jump CopyTileIDsFromList
208
209
HoFDisplayPlayerStats:
210
SetEvent EVENT_HALL_OF_FAME_DEX_RATING
211
predef DisplayDexRating
212
hlcoord 0, 4
213
ld b, 6
214
ld c, 10
215
call TextBoxBorder
216
hlcoord 5, 0
217
ld b, 2
218
ld c, 9
219
call TextBoxBorder
220
hlcoord 7, 2
221
ld de, wPlayerName
222
call PlaceString
223
hlcoord 1, 6
224
ld de, HoFPlayTimeText
225
call PlaceString
226
hlcoord 5, 7
227
ld de, wPlayTimeHours
228
lb bc, 1, 3
229
call PrintNumber
230
ld [hl], $6d
231
inc hl
232
ld de, wPlayTimeMinutes
233
lb bc, LEADING_ZEROES | 1, 2
234
call PrintNumber
235
hlcoord 1, 9
236
ld de, HoFMoneyText
237
call PlaceString
238
hlcoord 4, 10
239
ld de, wPlayerMoney
240
ld c, 3 | LEADING_ZEROES | MONEY_SIGN
241
call PrintBCDNumber
242
ld hl, DexSeenOwnedText
243
call HoFPrintTextAndDelay
244
ld hl, DexRatingText
245
call HoFPrintTextAndDelay
246
ld hl, wDexRatingText
247
248
HoFPrintTextAndDelay:
249
call PrintText
250
ld c, 120
251
jp DelayFrames
252
253
HoFPlayTimeText:
254
db "PLAY TIME@"
255
256
HoFMoneyText:
257
db "MONEY@"
258
259
DexSeenOwnedText:
260
text_far _DexSeenOwnedText
261
text_end
262
263
DexRatingText:
264
text_far _DexRatingText
265
text_end
266
267
HoFRecordMonInfo:
268
ld hl, wHallOfFame
269
ld bc, HOF_MON
270
ld a, [wHoFPartyMonIndex]
271
call AddNTimes
272
ld a, [wHoFMonSpecies]
273
ld [hli], a
274
ld a, [wHoFMonLevel]
275
ld [hli], a
276
ld e, l
277
ld d, h
278
ld hl, wNameBuffer
279
ld bc, NAME_LENGTH
280
jp CopyData
281
282
HoFFadeOutScreenAndMusic:
283
ld a, 10
284
ld [wAudioFadeOutCounterReloadValue], a
285
ld [wAudioFadeOutCounter], a
286
ld a, $ff
287
ld [wAudioFadeOutControl], a
288
jp GBFadeOutToWhite
289
290