diff options
Diffstat (limited to 'engine/hall_of_fame.asm')
-rwxr-xr-x | engine/hall_of_fame.asm | 217 |
1 files changed, 109 insertions, 108 deletions
diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm index 0bd906c7..37b56e2d 100755 --- a/engine/hall_of_fame.asm +++ b/engine/hall_of_fame.asm @@ -1,5 +1,5 @@ AnimateHallOfFame: ; 701c6 (1c:41c6) - call Func_7047b + call HoFFadeOutScreenAndMusic call ClearScreen ld c, 100 call DelayFrames @@ -8,10 +8,10 @@ AnimateHallOfFame: ; 701c6 (1c:41c6) call DisableLCD ld hl,vBGMap0 ld bc, $800 - ld a, $7f + ld a, " " call FillMemory call EnableLCD - ld hl, rLCDC ; $ff40 + ld hl, rLCDC set 3, [hl] xor a ld hl, wHallOfFame @@ -21,16 +21,16 @@ AnimateHallOfFame: ; 701c6 (1c:41c6) ld [wUpdateSpritesEnabled], a ld [hTilesetType], a ld [W_SPRITEFLIPPED], a - ld [wd358], a - ld [wTrainerScreenY], a + ld [wLetterPrintingDelayFlags], a ; no delay + ld [wHoFMonOrPlayer], a ; mon inc a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld hl, wd5a2 + ld [H_AUTOBGTRANSFERENABLED], a + ld hl, wNumHoFTeams ld a, [hl] inc a - jr z, .asm_70211 + jr z, .skipInc ; don't wrap around to 0 inc [hl] -.asm_70211 +.skipInc ld a, $90 ld [hWY], a ld c, $1f ; BANK(Music_HallOfFame) @@ -38,29 +38,29 @@ AnimateHallOfFame: ; 701c6 (1c:41c6) call PlayMusic ld hl, wPartySpecies ld c, $ff -.asm_70221 +.partyMonLoop ld a, [hli] cp $ff - jr z, .asm_70266 + jr z, .doneShowingParty inc c push hl push bc - ld [wWhichTrade], a ; wWhichTrade + ld [wHoFMonSpecies], a ld a, c - ld [wTrainerEngageDistance], a - ld hl, wPartyMon1Level ; wPartyMon1Level + ld [wHoFPartyMonIndex], a + ld hl, wPartyMon1Level ld bc, wPartyMon2 - wPartyMon1 call AddNTimes ld a, [hl] - ld [wTrainerFacingDirection], a - call Func_702a2 - call Func_7030e - ld c, $50 + ld [wHoFMonLevel], a + call HoFShowMonOrPlayer + call HoFDisplayAndRecordMonInfo + ld c, 80 call DelayFrames - hlCoord 2, 13 - ld bc, $30e + coord hl, 2, 13 + lb bc, $3, $e call TextBoxBorder - hlCoord 4, 15 + coord hl, 4, 15 ld de, HallOfFameText call PlaceString ld c, 180 @@ -68,8 +68,8 @@ AnimateHallOfFame: ; 701c6 (1c:41c6) call GBFadeOutToWhite pop bc pop hl - jr .asm_70221 -.asm_70266 + jr .partyMonLoop +.doneShowingParty ld a, c inc a ld hl, wHallOfFame @@ -78,137 +78,138 @@ AnimateHallOfFame: ; 701c6 (1c:41c6) ld [hl], $ff callab SaveHallOfFameTeams ; useless since in same bank xor a - ld [wWhichTrade], a ; wWhichTrade + ld [wHoFMonSpecies], a inc a - ld [wTrainerScreenY], a - call Func_702a2 - call Func_703d1 - call Func_7047b + ld [wHoFMonOrPlayer], a ; player + call HoFShowMonOrPlayer + call HoFDisplayPlayerStats + call HoFFadeOutScreenAndMusic xor a ld [hWY], a - ld hl, rLCDC ; $ff40 + ld hl, rLCDC res 3, [hl] ret HallOfFameText: ; 70295 (1c:4295) db "HALL OF FAME@" -Func_702a2: ; 702a2 (1c:42a2) +HoFShowMonOrPlayer: ; 702a2 (1c:42a2) call ClearScreen ld a, $d0 ld [hSCY], a ld a, $c0 ld [hSCX], a - ld a, [wWhichTrade] ; wWhichTrade + ld a, [wHoFMonSpecies] ld [wcf91], a ld [wd0b5], a ld [wBattleMonSpecies2], a - ld [wcf1d], a - ld a, [wTrainerScreenY] + ld [wWholeScreenPaletteMonSpecies], a + ld a, [wHoFMonOrPlayer] and a - jr z, .asm_702c7 - call Func_70390 - jr .asm_702d5 -.asm_702c7 - hlCoord 12, 5 + jr z, .showMon +; show player + call HoFLoadPlayerPics + jr .next1 +.showMon + coord hl, 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex predef LoadMonBackPic -.asm_702d5 - ld b, $b - ld c, $0 - call GoPAL_SET - ld a, $e4 - ld [rBGP], a ; $ff47 +.next1 + ld b, SET_PAL_POKEMON_WHOLE_SCREEN + ld c, 0 + call RunPaletteCommand + ld a, %11100100 + ld [rBGP], a call Func_3021 - ld c, $31 - call Func_703c7 + ld c, $31 ; back pic + call HoFLoadMonPlayerPicTileIDs ld d, $a0 - ld e, $4 + ld e, 4 ld a, [wOnSGB] and a - jr z, .asm_702f4 - sla e -.asm_702f4 - call .asm_70302 + 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 - call Func_703c7 - ld d, $0 - ld e, $fc -.asm_70302 + 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, .asm_70302 + jr nz, .ScrollPic ret -Func_7030e: ; 7030e (1c:430e) - ld a, [wTrainerEngageDistance] +HoFDisplayAndRecordMonInfo: ; 7030e (1c:430e) + ld a, [wHoFPartyMonIndex] ld hl, wPartyMonNicks ; wPartyMonNicks call GetPartyMonName - call Func_70348 - ld a, [wTrainerEngageDistance] + call HoFDisplayMonInfo + ld a, [wHoFPartyMonIndex] ld [wWhichPokemon], a callab Func_fce18 ; 3f:4e18 jr nc, .asm_70336 - ld e,$22 + ld e, $22 callab Func_f0000 jr .asm_7033c .asm_70336 - ld a,[wWhichTrade] + ld a,[wHoFMonSpecies] call PlayCry .asm_7033c - jp Func_7045c + jp HoFRecordMonInfo Func_7033f: ; 7033f (1c:433f) - call Func_70348 - ld a,[wWhichTrade] + call HoFDisplayMonInfo + ld a,[wHoFMonSpecies] jp PlayCry -Func_70348: ; 70348 (1c:4348) +HoFDisplayMonInfo: ; 70348 (1c:4348) hlCoord 0, 2 - ld bc, $90a + lb bc, 9, 10 call TextBoxBorder - hlCoord 2, 6 + coord hl, 2, 6 ld de, HoFMonInfoText call PlaceString - hlCoord 1, 4 + coord hl, 1, 4 ld de, wcd6d call PlaceString - ld a, [wTrainerFacingDirection] - hlCoord 8, 7 + ld a, [wHoFMonLevel] + coord hl, 8, 7 call PrintLevelCommon - ld a, [wWhichTrade] ; wWhichTrade + ld a, [wHoFMonSpecies] ld [wd0b5], a - hlCoord 3, 9 + coord hl, 3, 9 predef PrintMonType ret - ;ld a, [wWhichTrade] ; wWhichTrade - ;jp PlayCry HoFMonInfoText: ; 7037b (1c:437b) db "LEVEL/" next "TYPE1/" next "TYPE2/@" -Func_70390: ; 70390 (1c:433e) +HoFLoadPlayerPics: ; 70390 (1c:433e) ld de, RedPicFront ; $6ede ld a, BANK(RedPicFront) call UncompressSpriteFromDE ld a,$0 call SwitchSRAMBankAndLatchClockData ld hl, S_SPRITEBUFFER1 - ld de, $a000 + ld de, S_SPRITEBUFFER0 ld bc, $310 call CopyData call PrepareRTCDataAndDisableSRAM ld de, vFrontPic call InterlaceMergeSpriteBuffers - ld de, RedPicBack ; $7e0a + ld de, RedPicBack ld a, BANK(RedPicBack) call UncompressSpriteFromDE predef ScaleSpriteByTwo @@ -216,52 +217,52 @@ Func_70390: ; 70390 (1c:433e) call InterlaceMergeSpriteBuffers ld c, $1 -Func_703c7: ; 703c7 (1c:43c7) +HoFLoadMonPlayerPicTileIDs: ; 703c7 (1c:43c7) ld b, $0 - hlCoord 12, 5 + coord hl, 12, 5 predef_jump CopyTileIDsFromList -Func_703d1: ; 703d1 (1c:43d1) +HoFDisplayPlayerStats: ; 703d1 (1c:43d1) ld hl, wd747 set 3, [hl] predef DisplayDexRating hlCoord 0, 4 - ld bc, $60a + lb bc, 6, 10 call TextBoxBorder hlCoord 5, 0 - ld bc, $209 + lb bc, 2, 9 call TextBoxBorder - hlCoord 7, 2 - ld de, wPlayerName ; wd158 + coord hl, 7, 2 + ld de, wPlayerName call PlaceString - hlCoord 1, 6 + coord hl, 1, 6 ld de, HoFPlayTimeText call PlaceString - hlCoord 5, 7 + coord hl, 5, 7 ld de, W_PLAYTIMEHOURS + 1 - ld bc, $103 + lb bc, 1, 3 call PrintNumber ld [hl], $6d inc hl ld de, W_PLAYTIMEMINUTES + 1 - ld bc, $8102 + lb bc, LEADING_ZEROES | 1, 2 call PrintNumber - hlCoord 1, 9 + coord hl, 1, 9 ld de, HoFMoneyText call PlaceString - hlCoord 4, 10 - ld de, wPlayerMoney ; wPlayerMoney + coord hl, 4, 10 + ld de, wPlayerMoney ld c, $a3 call PrintBCDNumber ld hl, DexSeenOwnedText - call Func_7043a + call HoFPrintTextAndDelay ld hl, DexRatingText - call Func_7043a - ld hl, wcc5d + call HoFPrintTextAndDelay + ld hl, wDexRatingText -Func_7043a: ; 7043a (1c:443a) +HoFPrintTextAndDelay: ; 7043a (1c:443a) call PrintText - ld c, $78 + ld c, 120 jp DelayFrames HoFPlayTimeText: ; 70442 (1c:4442) @@ -278,25 +279,25 @@ DexRatingText: ; 70457 (1c:4457) TX_FAR _DexRatingText db "@" -Func_7045c: ; 7045c (1c:445c) +HoFRecordMonInfo: ; 7045c (1c:445c) ld hl, wHallOfFame ld bc, HOF_MON - ld a, [wTrainerEngageDistance] + ld a, [wHoFPartyMonIndex] call AddNTimes - ld a, [wWhichTrade] ; wWhichTrade + ld a, [wHoFMonSpecies] ld [hli], a - ld a, [wTrainerFacingDirection] + ld a, [wHoFMonLevel] ld [hli], a ld e, l ld d, h ld hl, wcd6d - ld bc, $b + ld bc, NAME_LENGTH jp CopyData -Func_7047b: ; 7047b (1c:447b) - ld a, $a - ld [wcfc8], a - ld [wcfc9], a +HoFFadeOutScreenAndMusic: ; 7047b (1c:447b) + ld a, 10 + ld [wAudioFadeOutCounterReloadValue], a + ld [wAudioFadeOutCounter], a ld a, $ff - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a jp GBFadeOutToWhite |