diff options
author | entrpntr <entrpntr@gmail.com> | 2020-05-25 22:39:49 -0400 |
---|---|---|
committer | entrpntr <entrpntr@gmail.com> | 2020-05-25 22:39:49 -0400 |
commit | 80c5d31fa66b04d9944700bcdd0279a70167f0ea (patch) | |
tree | f477b0c4af48277c40397eb22809c70954213afb | |
parent | f625ad6080c3ecfe3abdc93cda2f475510490fc8 (diff) |
Disassemble remaining code except the 3 pages.
-rw-r--r-- | engine/pokemon/stats_screen.asm | 200 |
1 files changed, 185 insertions, 15 deletions
diff --git a/engine/pokemon/stats_screen.asm b/engine/pokemon/stats_screen.asm index 0be42152..b71ce469 100644 --- a/engine/pokemon/stats_screen.asm +++ b/engine/pokemon/stats_screen.asm @@ -31,21 +31,20 @@ StatsScreenMain: ld de, wTempMon ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes - jr .done + jr .ok .not_tempmon call CopyMonToTempMon ld a, [wCurPartySpecies] - ; skip CalcTempmonStats if egg or boxmon cp EGG - jp z, .done + jp z, .ok ld a, [wMonType] cp BOXMON - jr c, .done + jr c, .ok call CalcTempmonStats -.done +.ok call ClearBGPalettes call ClearTilemap call UpdateSprites @@ -56,18 +55,18 @@ StatsScreenMain: cp EGG jp z, EggStatsInit -;MonStatsScreen +;MonStatsScreen ; ? call StatsScreen_InitUpperHalf ld b, 0 jp StatsScreen_SetJumptableIndex -StatsScreen_LoadPage: +StatsScreen_LoadPage: ; ? push bc ld de, MonStatsInit push de jp hl -MonStatsInit: +MonStatsInit: ; ? pop bc ld b, 1 ; fall through @@ -165,7 +164,7 @@ MonStatsJoypadLoop: jr nz, StatsScreen_SetJumptableIndex ld c, BLUE_PAGE ; last page -StatsScreen_SetJumptableIndex: +StatsScreen_SetJumptableIndex: ; ? ld hl, StatsScreen_PageJumptable push bc dec c @@ -344,20 +343,191 @@ StatsScreen_InitUpperHalf: PinkPage: dr $50de1, $50f5d + StatsScreen_PlaceHorizontalDivider: - dr $50f5d, $50f69 + hlcoord 0, 7 + ld b, SCREEN_WIDTH + ld a, $62 ; horizontal divider (empty HP/exp bar) +.loop + ld [hli], a + dec b + jr nz, .loop + ret + StatsScreen_PlacePageSwitchArrows: - dr $50f69, $50f74 + hlcoord 12, 6 + ld [hl], "◀" + hlcoord 19, 6 + ld [hl], "▶" + ret + StatsScreen_PlaceShinyIcon: - dr $50f74, $50f84 + ld bc, wTempMonDVs + callfar CheckShininess + ret nc + hlcoord 19, 0 + ld [hl], "⁂" + ret + GreenPage: dr $50f84, $5100b + BluePage: - dr $5100b, $510ed + dr $5100b, $510bb + +IDNoString: + db "<ID>№.@" + +OTString: + db "OT/@" + +StatsScreen_PlaceFrontpic: + push bc + call SetPalettes + ld hl, wTempMonDVs + call GetUnownLetter + hlcoord 0, 0 + ld a, [wCurPartySpecies] + cp UNOWN + jr z, .unown + + call PrepMonFrontpic + jr .play_cry + +.unown + xor a + ld [wBoxAlignment], a + call _PrepMonFrontpic + +.play_cry + ld a, [wCurPartySpecies] + call PlayMonCry + pop bc + ld b, 1 + ret + EggStatsScreen: - dr $510ed, $51278 + ld hl, wCurHPPal + call SetHPPal + ld b, SCGB_STATS_SCREEN_HP_PALS + call GetSGBLayout + call StatsScreen_PlaceHorizontalDivider + hlcoord 8, 1 + ld de, EggString + call PlaceString + hlcoord 8, 3 + ld de, IDNoString + call PlaceString + hlcoord 8, 5 + ld de, OTString + call PlaceString + hlcoord 11, 3 + ld de, FiveQMarkString + call PlaceString + hlcoord 11, 5 + ld de, FiveQMarkString + call PlaceString + ld a, [wTempMonHappiness] ; egg status + ld de, EggSoonString + cp $6 + jr c, .picked + ld de, EggCloseString + cp $b + jr c, .picked + ld de, EggMoreTimeString + cp $29 + jr c, .picked + ld de, EggALotMoreTimeString +.picked + hlcoord 1, 9 + call PlaceString + call WaitBGMap + ld a, 1 + ldh [hBGMapMode], a + call SetPalettes ; pals + hlcoord 0, 0 + call PrepMonFrontpic + ld a, [wTempMonHappiness] + cp 6 + ret nc + ld de, SFX_2_BOOPS + call PlaySFX + call WaitSFX + ret + +EggString: + db "EGG@" + +FiveQMarkString: + db "?????@" + +EggSoonString: + db "It's making sounds" + next "inside. It's going" + next "to hatch soon!@" + +EggCloseString: + db "It moves around" + next "inside sometimes." + next "It must be close" + next "to hatching.@" + +EggMoreTimeString: + db "Wonder what's" + next "inside? It needs" + next "more time, though.@" + +EggALotMoreTimeString: + db "This EGG needs a" + next "lot more time to" + next "hatch.@" + +StatsScreen_LoadPageIndicators: + hlcoord 13, 5 + ld a, $36 ; first of 4 small square tiles + call .load_square + hlcoord 15, 5 + ld a, $36 ; " " " " + call .load_square + hlcoord 17, 5 + ld a, $36 ; " " " " + call .load_square + ld a, b + cp GREEN_PAGE + ld a, $3a ; first of 4 large square tiles + hlcoord 13, 5 ; PINK_PAGE (< GREEN_PAGE) + jr c, .load_square + hlcoord 15, 5 ; GREEN_PAGE (= GREEN_PAGE) + jr z, .load_square + hlcoord 17, 5 ; BLUE_PAGE (> GREEN_PAGE) +.load_square + ld [hli], a + inc a + ld [hld], a + push bc + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + inc a + ld [hli], a + inc a + ld [hl], a + ret + GetNicknamePointer: - dr $51278, $5128f + ld a, [wMonType] + add a + ld c, a + ld b, 0 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wMonType] + cp TEMPMON + ret z + ld a, [wCurPartyMon] + jp SkipNames PrintTempMonStats: ; Print wTempMon's stats at hl, with spacing bc. |