123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- AnimateHallOfFame:
- call HoFFadeOutScreenAndMusic
- call ClearScreen
- ld c, 100
- call DelayFrames
- call LoadFontTilePatterns
- call LoadTextBoxTilePatterns
- call DisableLCD
- ld hl, vBGMap0
- ld bc, $800
- ld a, " "
- call FillMemory
- call EnableLCD
- ld hl, rLCDC
- set 3, [hl]
- xor a
- ld hl, wHallOfFame
- ld bc, HOF_TEAM
- call FillMemory
- xor a
- ld [wUpdateSpritesEnabled], a
- ld [hTilesetType], a
- ld [wSpriteFlipped], a
- ld [wLetterPrintingDelayFlags], a ; no delay
- ld [wHoFMonOrPlayer], a ; mon
- inc a
- ld [H_AUTOBGTRANSFERENABLED], a
- ld hl, wNumHoFTeams
- ld a, [hl]
- inc a
- jr z, .skipInc ; don't wrap around to 0
- inc [hl]
- .skipInc
- ld a, $90
- ld [hWY], a
- ld c, BANK(Music_HallOfFame)
- ld a, MUSIC_HALL_OF_FAME
- call PlayMusic
- ld hl, wPartySpecies
- ld c, $ff
- .partyMonLoop
- ld a, [hli]
- cp $ff
- jr z, .doneShowingParty
- inc c
- push hl
- push bc
- ld [wHoFMonSpecies], a
- ld a, c
- ld [wHoFPartyMonIndex], a
- ld hl, wPartyMon1Level
- ld bc, wPartyMon2 - wPartyMon1
- call AddNTimes
- ld a, [hl]
- ld [wHoFMonLevel], a
- call HoFShowMonOrPlayer
- call HoFDisplayAndRecordMonInfo
- ld c, 80
- call DelayFrames
- coord hl, 2, 13
- ld b, 3
- ld c, 14
- call TextBoxBorder
- coord hl, 4, 15
- ld de, HallOfFameText
- call PlaceString
- ld c, 180
- call DelayFrames
- call GBFadeOutToWhite
- pop bc
- pop hl
- jr .partyMonLoop
- .doneShowingParty
- ld a, c
- inc a
- ld hl, wHallOfFame
- ld bc, HOF_MON
- call AddNTimes
- ld [hl], $ff
- call SaveHallOfFameTeams
- xor a
- ld [wHoFMonSpecies], a
- inc a
- ld [wHoFMonOrPlayer], a ; player
- call HoFShowMonOrPlayer
- call HoFDisplayPlayerStats
- call HoFFadeOutScreenAndMusic
- xor a
- ld [hWY], a
- ld hl, rLCDC
- res 3, [hl]
- ret
- HallOfFameText:
- db "HALL OF FAME@"
- HoFShowMonOrPlayer:
- call ClearScreen
- ld a, $d0
- ld [hSCY], a
- ld a, $c0
- ld [hSCX], a
- ld a, [wHoFMonSpecies]
- ld [wcf91], a
- ld [wd0b5], a
- ld [wBattleMonSpecies2], a
- ld [wWholeScreenPaletteMonSpecies], a
- ld a, [wHoFMonOrPlayer]
- and a
- jr z, .showMon
- ; show player
- call HoFLoadPlayerPics
- jr .next1
- .showMon
- coord hl, 12, 5
- call GetMonHeader
- call LoadFrontSpriteByMonIndex
- predef LoadMonBackPic
- .next1
- ld b, SET_PAL_POKEMON_WHOLE_SCREEN
- ld c, 0
- call RunPaletteCommand
- ld a, %11100100
- ld [rBGP], a
- ld c, $31 ; back pic
- call HoFLoadMonPlayerPicTileIDs
- ld d, $a0
- ld e, 4
- ld a, [wOnSGB]
- and a
- jr z, .next2
- sla e ; scroll more slowly on SGB
- .next2
- call .ScrollPic ; scroll back pic left
- xor a
- ld [hSCY], a
- ld c, a ; front pic
- call HoFLoadMonPlayerPicTileIDs
- ld d, 0
- ld e, -4
- ; scroll front pic right
- .ScrollPic
- call DelayFrame
- ld a, [hSCX]
- add e
- ld [hSCX], a
- cp d
- jr nz, .ScrollPic
- ret
- HoFDisplayAndRecordMonInfo:
- ld a, [wHoFPartyMonIndex]
- ld hl, wPartyMonNicks
- call GetPartyMonName
- call HoFDisplayMonInfo
- jp HoFRecordMonInfo
- HoFDisplayMonInfo:
- coord hl, 0, 2
- ld b, 9
- ld c, 10
- call TextBoxBorder
- coord hl, 2, 6
- ld de, HoFMonInfoText
- call PlaceString
- coord hl, 1, 4
- ld de, wcd6d
- call PlaceString
- ld a, [wHoFMonLevel]
- coord hl, 8, 7
- call PrintLevelCommon
- ld a, [wHoFMonSpecies]
- ld [wd0b5], a
- coord hl, 3, 9
- predef PrintMonType
- ld a, [wHoFMonSpecies]
- jp PlayCry
- HoFMonInfoText:
- db "LEVEL/"
- next "TYPE1/"
- next "TYPE2/@"
- HoFLoadPlayerPics:
- ld de, RedPicFront
- ld a, BANK(RedPicFront)
- call UncompressSpriteFromDE
- ld hl, sSpriteBuffer1
- ld de, sSpriteBuffer0
- ld bc, $310
- call CopyData
- ld de, vFrontPic
- call InterlaceMergeSpriteBuffers
- ld de, RedPicBack
- ld a, BANK(RedPicBack)
- call UncompressSpriteFromDE
- predef ScaleSpriteByTwo
- ld de, vBackPic
- call InterlaceMergeSpriteBuffers
- ld c, $1
- HoFLoadMonPlayerPicTileIDs:
- ; c = base tile ID
- ld b, 0
- coord hl, 12, 5
- predef_jump CopyTileIDsFromList
- HoFDisplayPlayerStats:
- SetEvent EVENT_HALL_OF_FAME_DEX_RATING
- predef DisplayDexRating
- coord hl, 0, 4
- ld b, 6
- ld c, 10
- call TextBoxBorder
- coord hl, 5, 0
- ld b, 2
- ld c, 9
- call TextBoxBorder
- coord hl, 7, 2
- ld de, wPlayerName
- call PlaceString
- coord hl, 1, 6
- ld de, HoFPlayTimeText
- call PlaceString
- coord hl, 5, 7
- ld de, wPlayTimeHours
- lb bc, 1, 3
- call PrintNumber
- ld [hl], $6d
- inc hl
- ld de, wPlayTimeMinutes
- lb bc, LEADING_ZEROES | 1, 2
- call PrintNumber
- coord hl, 1, 9
- ld de, HoFMoneyText
- call PlaceString
- coord hl, 4, 10
- ld de, wPlayerMoney
- ld c, $a3
- call PrintBCDNumber
- ld hl, DexSeenOwnedText
- call HoFPrintTextAndDelay
- ld hl, DexRatingText
- call HoFPrintTextAndDelay
- ld hl, wDexRatingText
- HoFPrintTextAndDelay:
- call PrintText
- ld c, 120
- jp DelayFrames
- HoFPlayTimeText:
- db "PLAY TIME@"
- HoFMoneyText:
- db "MONEY@"
- DexSeenOwnedText:
- TX_FAR _DexSeenOwnedText
- db "@"
- DexRatingText:
- TX_FAR _DexRatingText
- db "@"
- HoFRecordMonInfo:
- ld hl, wHallOfFame
- ld bc, HOF_MON
- ld a, [wHoFPartyMonIndex]
- call AddNTimes
- ld a, [wHoFMonSpecies]
- ld [hli], a
- ld a, [wHoFMonLevel]
- ld [hli], a
- ld e, l
- ld d, h
- ld hl, wcd6d
- ld bc, NAME_LENGTH
- jp CopyData
- HoFFadeOutScreenAndMusic:
- ld a, 10
- ld [wAudioFadeOutCounterReloadValue], a
- ld [wAudioFadeOutCounter], a
- ld a, $ff
- ld [wAudioFadeOutControl], a
- jp GBFadeOutToWhite
|