summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorentrpntr <entrpntr@gmail.com>2020-05-25 22:39:49 -0400
committerentrpntr <entrpntr@gmail.com>2020-05-25 22:39:49 -0400
commit80c5d31fa66b04d9944700bcdd0279a70167f0ea (patch)
treef477b0c4af48277c40397eb22809c70954213afb
parentf625ad6080c3ecfe3abdc93cda2f475510490fc8 (diff)
Disassemble remaining code except the 3 pages.
-rw-r--r--engine/pokemon/stats_screen.asm200
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.