summaryrefslogtreecommitdiff
path: root/engine/stats_screen.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2015-11-28 20:15:35 -0500
committeryenatch <yenatch@gmail.com>2015-11-28 20:15:35 -0500
commit794410352fd92ccf06974763e4b3be0b807641ab (patch)
tree05f5dd861966762db9556082229cee82e8b5eed9 /engine/stats_screen.asm
parent9c5473e965520f672640daf4ee76622640e0de15 (diff)
parent4bcd71e3227181baa536357af3d87a8d02af3890 (diff)
Merge pull request #328 from PikalaxALT/master
Split out most of main.asm
Diffstat (limited to 'engine/stats_screen.asm')
-rwxr-xr-xengine/stats_screen.asm1150
1 files changed, 1150 insertions, 0 deletions
diff --git a/engine/stats_screen.asm b/engine/stats_screen.asm
new file mode 100755
index 000000000..766e05fe7
--- /dev/null
+++ b/engine/stats_screen.asm
@@ -0,0 +1,1150 @@
+Function4dc7b: ; 4dc7b (13:5c7b)
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jr nz, StatsScreenInit
+
+ ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd)
+ and a
+ jr z, StatsScreenInit
+ jr Function4dc8f
+
+StatsScreenInit: ; 4dc8a
+ ld hl, StatsScreenMain
+ jr StatsScreenInit_gotaddress
+
+Function4dc8f: ; 4dc8f
+ ld hl, StatsScreenBattle
+ jr StatsScreenInit_gotaddress
+
+StatsScreenInit_gotaddress: ; 4dc94
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a ; disable overworld tile animations
+ ld a, [wc2c6] ; whether sprite is to be mirrorred
+ push af
+ ld a, [wJumptableIndex]
+ ld b, a
+ ld a, [wcf64]
+ ld c, a
+
+ push bc
+ push hl
+ call ClearBGPalettes
+ call ClearTileMap
+ call UpdateSprites
+ callba Functionfb53e
+ pop hl
+ call _hl_
+ call ClearBGPalettes
+ call ClearTileMap
+ pop bc
+
+ ; restore old values
+ ld a, b
+ ld [wJumptableIndex], a
+ ld a, c
+ ld [wcf64], a
+ pop af
+ ld [wc2c6], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 0x4dcd2
+
+StatsScreenMain: ; 0x4dcd2
+ xor a
+ ld [wJumptableIndex], a
+ ; stupid interns
+ ld [wcf64], a
+ ld a, [wcf64]
+ and $fc
+ or $1
+ ld [wcf64], a
+.loop ; 4dce3
+ ld a, [wJumptableIndex]
+ and $7f
+ ld hl, StatsScreenPointerTable
+ rst JumpTable
+ call Function4dd3a ; check for keys?
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr z, .loop
+ ret
+; 0x4dcf7
+
+StatsScreenBattle: ; 4dcf7
+ xor a
+ ld [wJumptableIndex], a
+ ; stupid interns
+ ld [wcf64], a
+ ld a, [wcf64]
+ and $fc
+ or $1
+ ld [wcf64], a
+.loop
+ callba Function100dd2
+ ld a, [wJumptableIndex]
+ and $7f
+ ld hl, StatsScreenPointerTable
+ rst JumpTable
+ call Function4dd3a
+ callba Function100dfd
+ jr c, .exit
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr z, .loop
+
+.exit
+ ret
+; 4dd2a
+
+StatsScreenPointerTable: ; 4dd2a
+ dw MonStatsInit ; regular pokémon
+ dw EggStatsInit ; egg
+ dw StatsScreenWaitCry
+ dw Function4ddac
+ dw Function4ddc6
+ dw StatsScreenWaitCry
+ dw Function4ddd6
+ dw Function4dd6c
+; 4dd3a
+
+
+Function4dd3a: ; 4dd3a (13:5d3a)
+ ld hl, wcf64
+ bit 6, [hl]
+ jr nz, .asm_4dd49
+ bit 5, [hl]
+ jr nz, .asm_4dd56
+ call DelayFrame
+ ret
+.asm_4dd49
+ callba Functiond00b4
+ jr nc, .asm_4dd56
+ ld hl, wcf64
+ res 6, [hl]
+.asm_4dd56
+ ld hl, wcf64
+ res 5, [hl]
+ callba Function10402d
+ ret
+
+Function4dd62: ; 4dd62 (13:5d62)
+ ld a, [wJumptableIndex]
+ and $80
+ or h
+ ld [wJumptableIndex], a
+ ret
+
+Function4dd6c: ; 4dd6c (13:5d6c)
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+MonStatsInit: ; 4dd72 (13:5d72)
+ ld hl, wcf64
+ res 6, [hl]
+ call ClearBGPalettes
+ call ClearTileMap
+ callba Function10402d
+ call Function4ddf2
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_4dd9b
+ call Function4deea
+ ld hl, wcf64
+ set 4, [hl]
+ ld h, $4
+ call Function4dd62
+ ret
+.asm_4dd9b
+ ld h, $1
+ call Function4dd62
+ ret
+
+EggStatsInit: ; 4dda1
+ call EggStatsScreen
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ret
+; 0x4ddac
+
+
+Function4ddac: ; 4ddac (13:5dac)
+ call Function4de2c
+ jr nc, .asm_4ddb7
+ ld h, $0
+ call Function4dd62
+ ret
+.asm_4ddb7
+ bit 0, a
+ jr nz, .asm_4ddc0
+ and $c3
+ jp Function4de54
+.asm_4ddc0
+ ld h, $7
+ call Function4dd62
+ ret
+
+Function4ddc6: ; 4ddc6 (13:5dc6)
+ call Function4dfb6
+ ld hl, wcf64
+ res 4, [hl]
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ret
+
+Function4ddd6: ; 4ddd6 (13:5dd6)
+ call Function4de2c
+ jr nc, .asm_4dde1
+ ld h, $0
+ call Function4dd62
+ ret
+
+.asm_4dde1
+ and $f3
+ jp Function4de54
+
+StatsScreenWaitCry: ; 4dde6 (13:5de6)
+ call IsSFXPlaying
+ ret nc
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ret
+
+Function4ddf2: ; 4ddf2 (13:5df2)
+ ld a, [MonType]
+ cp BREEDMON
+ jr nz, .asm_4de10
+ ld a, [wd018_Mon]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, wd018_Mon
+ ld de, TempMon
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ jr .asm_4de2a
+.asm_4de10
+ callba CopyPkmnToTempMon
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_4de2a
+ ld a, [MonType]
+ cp BOXMON
+ jr c, .asm_4de2a
+ callba Function50890
+.asm_4de2a
+ and a
+ ret
+
+Function4de2c: ; 4de2c (13:5e2c)
+ call GetJoypad
+ ld a, [MonType]
+ cp BREEDMON
+ jr nz, .notbreedmon
+ push hl
+ push de
+ push bc
+ callba Functione2f95
+ pop bc
+ pop de
+ pop hl
+ ld a, [wcf73]
+ and $c0
+ jr nz, .set_carry
+ ld a, [wcf73]
+ jr .clear_flags
+
+.notbreedmon
+ ld a, [hJoyPressed]
+.clear_flags
+ and a
+ ret
+
+.set_carry
+ scf
+ ret
+
+Function4de54: ; 4de54 (13:5e54)
+ push af
+ ld a, [wcf64]
+ and $3
+ ld c, a
+ pop af
+ bit 1, a
+ jp nz, Function4dee4
+ bit 5, a
+ jr nz, .asm_4dec7
+ bit 4, a
+ jr nz, .asm_4debd
+ bit 0, a
+ jr nz, .asm_4deb8
+ bit 6, a
+ jr nz, .asm_4dea0
+ bit 7, a
+ jr nz, .asm_4de77
+ jr .asm_4dece
+.asm_4de77
+ ld a, [MonType]
+ cp BOXMON
+ jr nc, .asm_4dece
+ and a
+ ld a, [PartyCount]
+ jr z, .asm_4de87
+ ld a, [OTPartyCount]
+.asm_4de87
+ ld b, a
+ ld a, [CurPartyMon]
+ inc a
+ cp b
+ jr z, .asm_4dece
+ ld [CurPartyMon], a
+ ld b, a
+ ld a, [MonType]
+ and a
+ jr nz, .asm_4dede
+ ld a, b
+ inc a
+ ld [wd0d8], a
+ jr .asm_4dede
+.asm_4dea0
+ ld a, [CurPartyMon]
+ and a
+ jr z, .asm_4dece
+ dec a
+ ld [CurPartyMon], a
+ ld b, a
+ ld a, [MonType]
+ and a
+ jr nz, .asm_4dede
+ ld a, b
+ inc a
+ ld [wd0d8], a
+ jr .asm_4dede
+.asm_4deb8
+ ld a, c
+ cp $3
+ jr z, Function4dee4
+.asm_4debd
+ inc c
+ ld a, $3
+ cp c
+ jr nc, .asm_4decf
+ ld c, $1
+ jr .asm_4decf
+.asm_4dec7
+ dec c
+ jr nz, .asm_4decf
+ ld c, $3
+ jr .asm_4decf
+.asm_4dece
+ ret
+.asm_4decf
+ ld a, [wcf64]
+ and $fc
+ or c
+ ld [wcf64], a
+ ld h, $4
+ call Function4dd62
+ ret
+.asm_4dede
+ ld h, $0
+ call Function4dd62
+ ret
+
+Function4dee4: ; 4dee4 (13:5ee4)
+ ld h, $7
+ call Function4dd62
+ ret
+
+Function4deea: ; 4deea (13:5eea)
+ call Function4df45
+ xor a
+ ld [hBGMapMode], a
+ ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
+ ld [wd265], a
+ ld [CurSpecies], a
+ hlcoord 8, 0
+ ld [hl], "№"
+ inc hl
+ ld [hl], "."
+ inc hl
+ hlcoord 10, 0
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ ld de, wd265
+ call PrintNum
+ hlcoord 14, 0
+ call PrintLevel
+ ld hl, Unknown_4df77
+ call Function4e528
+ call Function4e505
+ hlcoord 8, 2
+ call PlaceString
+ hlcoord 18, 0
+ call Function4df66
+ hlcoord 9, 4
+ ld a, "/"
+ ld [hli], a
+ ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
+ ld [wd265], a
+ call GetPokemonName
+ call PlaceString
+ call Function4df8f
+ call Function4df9b
+ call Function4dfa6
+ ret
+
+Function4df45: ; 4df45 (13:5f45)
+ ld hl, TempMonHP
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ ld hl, TempMonMaxHP
+ ld a, [hli]
+ ld d, a
+ ld e, [hl]
+ callba DrawPartyMenuHPBar
+ ld hl, wcda1
+ call SetHPPal
+ ld b, SCGB_03
+ call GetSGBLayout
+ call DelayFrame
+ ret
+
+Function4df66: ; 4df66 (13:5f66)
+ push hl
+ callba GetGender
+ pop hl
+ ret c
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
+.got_gender
+ ld [hl], a
+ ret
+; 4df77 (13:5f77)
+
+Unknown_4df77: ; 4df77
+ dw PartyMonNicknames
+ dw OTPartyMonNicknames
+ dw sBoxMonNicknames
+ dw wd002
+; 4df7f
+
+Function4df7f: ; 4df7f
+ hlcoord 7, 0
+ ld bc, SCREEN_WIDTH
+ ld d, SCREEN_HEIGHT
+.loop
+ ld a, $31
+ ld [hl], a
+ add hl, bc
+ dec d
+ jr nz, .loop
+ ret
+; 4df8f
+
+Function4df8f: ; 4df8f (13:5f8f)
+ hlcoord 0, 7
+ ld b, SCREEN_WIDTH
+ ld a, "_"
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+
+Function4df9b: ; 4df9b (13:5f9b)
+ hlcoord 12, 6
+ ld [hl], "◀"
+ hlcoord 19, 6
+ ld [hl], "▶"
+ ret
+
+Function4dfa6: ; 4dfa6 (13:5fa6)
+ ld bc, TempMonDVs
+ callba CheckShininess
+ ret nc
+ hlcoord 19, 0
+ ld [hl], "<SHINY>"
+ ret
+
+Function4dfb6: ; 4dfb6 (13:5fb6)
+ ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
+ ld [wd265], a
+ ld [CurSpecies], a
+ xor a
+ ld [hBGMapMode], a
+ call Function4dfda
+ call Function4e002
+ call Function4dfed
+ ld hl, wcf64
+ bit 4, [hl]
+ jr nz, .asm_4dfd6
+ call SetPalettes
+ ret
+
+.asm_4dfd6
+ call Function4e226
+ ret
+
+Function4dfda: ; 4dfda (13:5fda)
+ ld a, [wcf64]
+ and $3
+ ld c, a
+ call Function4e4cd
+ hlcoord 0, 8
+ lb bc, 10, 20
+ call ClearBox
+ ret
+
+Function4dfed: ; 4dfed (13:5fed)
+ ld a, [wcf64]
+ and $3
+ ld c, a
+ callba Function8c8a
+ call DelayFrame
+ ld hl, wcf64
+ set 5, [hl]
+ ret
+
+Function4e002: ; 4e002 (13:6002)
+ ld a, [wcf64]
+ and $3
+ dec a
+ ld hl, Jumptable_4e00d
+ rst JumpTable
+ ret
+
+Jumptable_4e00d: ; 4e00d (13:600d)
+ dw Function4e013
+ dw Function4e147
+ dw Function4e1ae
+
+
+Function4e013: ; 4e013 (13:6013)
+ hlcoord 0, 9
+ ld b, $0
+ predef DrawPlayerHP
+ hlcoord 8, 9
+ ld [hl], $41
+ ld de, String_4e119
+ hlcoord 0, 12
+ call PlaceString
+ ld a, [TempMonPokerusStatus]
+ ld b, a
+ and $f
+ jr nz, .asm_4e055
+ ld a, b
+ and $f0
+ jr z, .asm_4e03d
+ hlcoord 8, 8
+ ld [hl], $e8
+.asm_4e03d
+ ld a, [MonType]
+ cp $2
+ jr z, .asm_4e060
+ hlcoord 6, 13
+ push hl
+ ld de, TempMonStatus
+ predef PlaceStatusString
+ pop hl
+ jr nz, .asm_4e066
+ jr .asm_4e060
+.asm_4e055
+ ld de, String_4e142
+ hlcoord 1, 13
+ call PlaceString
+ jr .asm_4e066
+.asm_4e060
+ ld de, String_4e127
+ call PlaceString
+.asm_4e066
+ hlcoord 1, 15
+ predef PrintMonTypes
+ hlcoord 9, 8
+ ld de, $14
+ ld b, $a
+ ld a, $31
+.asm_4e078
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_4e078
+ ld de, String_4e12b
+ hlcoord 10, 9
+ call PlaceString
+ hlcoord 17, 14
+ call Function4e0d3
+ hlcoord 13, 10
+ lb bc, 3, 7
+ ld de, TempMonExp
+ call PrintNum
+ call Function4e0e7
+ hlcoord 13, 13
+ lb bc, 3, 7
+ ld de, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ call PrintNum
+ ld de, String_4e136
+ hlcoord 10, 12
+ call PlaceString
+ ld de, String_4e13f
+ hlcoord 14, 14
+ call PlaceString
+ hlcoord 11, 16
+ ld a, [TempMonLevel]
+ ld b, a
+ ld de, TempMonExp + 2
+ predef FillInExpBar
+ hlcoord 10, 16
+ ld [hl], $40
+ hlcoord 19, 16
+ ld [hl], $41
+ ret
+
+Function4e0d3: ; 4e0d3 (13:60d3)
+ ld a, [TempMonLevel]
+ push af
+ cp MAX_LEVEL
+ jr z, .asm_4e0df
+ inc a
+ ld [TempMonLevel], a
+.asm_4e0df
+ call PrintLevel
+ pop af
+ ld [TempMonLevel], a
+ ret
+
+Function4e0e7: ; 4e0e7 (13:60e7)
+ ld a, [TempMonLevel]
+ cp MAX_LEVEL
+ jr z, .asm_4e111
+ inc a
+ ld d, a
+ callba CalcExpAtLevel
+rept 2
+ ld hl, TempMonExp + 2
+endr
+ ld a, [$ffb6]
+ sub [hl]
+ dec hl
+ ld [wd1ec], a
+ ld a, [$ffb5]
+ sbc [hl]
+ dec hl
+ ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ld a, [hQuotient]
+ sbc [hl]
+ ld [Buffer1], a ; wd1ea (aliases: MagikarpLength)
+ ret
+.asm_4e111
+ ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ xor a
+rept 2
+ ld [hli], a
+endr
+ ld [hl], a
+ ret
+; 4e119 (13:6119)
+
+String_4e119: ; 4e119
+ db "STATUS/"
+ next "TYPE/@"
+; 4e127
+
+String_4e127: ; 4e127
+ db "OK @"
+; 4e12b
+
+String_4e12b: ; 4e12b
+ db "EXP POINTS@"
+; 4e136
+
+String_4e136: ; 4e136
+ db "LEVEL UP@"
+; 4e13f
+
+String_4e13f: ; 4e13f
+ db "TO@"
+; 4e142
+
+String_4e142: ; 4e142
+ db "#RUS@"
+; 4e147
+
+Function4e147: ; 4e147 (13:6147)
+ ld de, String_4e1a0
+ hlcoord 0, 8
+ call PlaceString
+ call Function4e189
+ hlcoord 8, 8
+ call PlaceString
+ ld de, String_4e1a9
+ hlcoord 0, 10
+ call PlaceString
+ ld hl, TempMonMoves
+ ld de, wListMoves_MoveIndicesBuffer
+ ld bc, NUM_MOVES
+ call CopyBytes
+ hlcoord 8, 10
+ ld a, SCREEN_WIDTH * 2
+ ld [Buffer1], a
+ predef ListMoves
+ hlcoord 12, 11
+ ld a, $28
+ ld [Buffer1], a
+ predef Function50c50
+ ret
+
+Function4e189: ; 4e189 (13:6189)
+ ld de, String_4e1a5
+ ld a, [TempMonItem]
+ and a
+ ret z
+ ld b, a
+ callba Function28771
+ ld a, b
+ ld [wd265], a
+ call GetItemName
+ ret
+; 4e1a0 (13:61a0)
+
+String_4e1a0: ; 4e1a0
+ db "ITEM@"
+; 4e1a5
+
+String_4e1a5: ; 4e1a5
+ db "---@"
+; 4e1a9
+
+String_4e1a9: ; 4e1a9
+ db "MOVE@"
+; 4e1ae
+
+Function4e1ae: ; 4e1ae (13:61ae)
+ call Function4e1cc
+ hlcoord 10, 8
+ ld de, $14
+ ld b, $a
+ ld a, $31
+.asm_4e1bb
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_4e1bb
+ hlcoord 11, 8
+ ld bc, $6
+ predef PrintTempMonStats
+ ret
+
+Function4e1cc: ; 4e1cc (13:61cc)
+ ld de, IDNoString
+ hlcoord 0, 9
+ call PlaceString
+ ld de, OTString
+ hlcoord 0, 12
+ call PlaceString
+ hlcoord 2, 10
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ ld de, TempMonID
+ call PrintNum
+ ld hl, Unknown_4e216
+ call Function4e528
+ call Function4e505
+ callba CheckNickErrors
+ hlcoord 2, 13
+ call PlaceString
+ ld a, [TempMonCaughtGender]
+ and a
+ jr z, .asm_4e215
+ cp $7f
+ jr z, .asm_4e215
+ and $80
+ ld a, "♂"
+ jr z, .asm_4e211
+ ld a, "♀"
+.asm_4e211
+ hlcoord 9, 13
+ ld [hl], a
+.asm_4e215
+ ret
+; 4e216 (13:6216)
+
+Unknown_4e216: ; 4e216
+ dw PartyMonOT
+ dw OTPartyMonOT
+ dw sBoxMonOT
+ dw wd00d
+; 4e21e
+
+IDNoString: ; 4e21e
+ db $73, "№.@"
+
+OTString: ; 4e222
+ db "OT/@"
+; 4e226
+
+
+Function4e226: ; 4e226 (13:6226)
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ call Function4e2ad
+ jr c, .asm_4e238
+ and a
+ jr z, .asm_4e23f
+ jr .asm_4e246
+.asm_4e238
+ call Function4e271
+ call SetPalettes
+ ret
+.asm_4e23f
+ call Function4e253
+ call SetPalettes
+ ret
+.asm_4e246
+ call SetPalettes
+ call Function4e253
+ ld a, [CurPartySpecies]
+ call PlayCry2
+ ret
+
+Function4e253: ; 4e253 (13:6253)
+ ld hl, wcf64
+ set 5, [hl]
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr z, .asm_4e266
+ hlcoord 0, 0
+ call PrepMonFrontpic
+ ret
+.asm_4e266
+ xor a
+ ld [wc2c6], a
+ hlcoord 0, 0
+ call _PrepMonFrontpic
+ ret
+
+Function4e271: ; 4e271 (13:6271)
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr z, .asm_4e281
+ ld a, $1
+ ld [wc2c6], a
+ call Function4e289
+ ret
+.asm_4e281
+ xor a
+ ld [wc2c6], a
+ call Function4e289
+ ret
+
+Function4e289: ; 4e289 (13:6289)
+ ld a, [CurPartySpecies]
+ call IsAPokemon
+ ret c
+ call Function4e307
+ ld de, VTiles2 tile $00
+ predef FrontpicPredef
+ hlcoord 0, 0
+ ld d, $0
+ ld e, $2
+ predef LoadMonAnimation
+ ld hl, wcf64
+ set 6, [hl]
+ ret
+
+Function4e2ad: ; 4e2ad (13:62ad)
+ ld a, [MonType]
+ ld hl, .Jumptable
+ rst JumpTable
+ ret
+
+.Jumptable: ; 4e2b5 (13:62b5)
+ dw Function4e2bf
+ dw Function4e2cf
+ dw Function4e2d1
+ dw Function4e2ed
+ dw Function4e301
+
+
+Function4e2bf: ; 4e2bf (13:62bf)
+ ld a, [CurPartyMon]
+ ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld b, h
+ ld c, l
+ jr Function4e2f2
+
+Function4e2cf: ; 4e2cf (13:62cf)
+ xor a
+ ret
+
+Function4e2d1: ; 4e2d1 (13:62d1)
+ ld hl, sBoxMons
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ld a, BANK(sBoxMons)
+ call GetSRAMBank
+ call Function4e2f2
+ push af
+ call CloseSRAM
+ pop af
+ ret
+
+Function4e2ed: ; 4e2ed (13:62ed)
+ ld bc, TempMonSpecies ; wd10e (aliases: TempMon)
+ jr Function4e2f2 ; utterly pointless
+
+Function4e2f2: ; 4e2f2 (13:62f2)
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ call CheckFaintedFrzSlp
+ jr c, Function4e305
+.egg
+ xor a
+ scf
+ ret
+
+Function4e301: ; 4e301 (13:6301)
+ ld a, $1
+ and a
+ ret
+Function4e305: ; 4e305 (13:6305)
+ xor a
+ ret
+
+Function4e307: ; 4e307 (13:6307)
+ nop
+ push hl
+ push de
+ push bc
+ push af
+ call DelayFrame
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld de, TextBoxSpaceGFX
+ lb bc, BANK(TextBoxSpaceGFX), 1
+ ld hl, VTiles2 tile $7f
+ call Get2bpp
+ pop af
+ ld [rVBK], a
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 4e32a (13:632a)
+
+Unknown_4e32a: ; 4e32a
+; A blank tile?
+ ds 16
+; 4e33a
+
+EggStatsScreen: ; 4e33a
+ xor a
+ ld [hBGMapMode], a
+ ld hl, wcda1
+ call SetHPPal
+ ld b, SCGB_03
+ call GetSGBLayout
+ call Function4df8f
+ ld de, EggString
+ hlcoord 8, 1
+ call PlaceString
+ ld de, IDNoString
+ hlcoord 8, 3
+ call PlaceString
+ ld de, OTString
+ hlcoord 8, 5
+ call PlaceString
+ ld de, FiveQMarkString
+ hlcoord 11, 3
+ call PlaceString
+ ld de, FiveQMarkString
+ hlcoord 11, 5
+ call PlaceString
+ ld a, [TempMonHappiness] ; 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
+ ld hl, wcf64
+ set 5, [hl]
+ call SetPalettes ; pals
+ call DelayFrame
+ hlcoord 0, 0
+ call PrepMonFrontpic
+ callba Function10402d
+ call Function4e497
+
+ ld a, [TempMonHappiness]
+ cp 6
+ ret nc
+ ld de, SFX_2_BOOPS
+ call PlaySFX
+ ret
+; 0x4e3c0
+
+EggString: ; 4e3c0
+ db "EGG@"
+
+FiveQMarkString: ; 4e3c4
+ db "?????@"
+
+EggSoonString: ; 0x4e3ca
+ db "It's making sounds"
+ next "inside. It's going"
+ next "to hatch soon!@"
+
+EggCloseString: ; 0x4e3fd
+ db "It moves around"
+ next "inside sometimes."
+ next "It must be close"
+ next "to hatching.@"
+
+EggMoreTimeString: ; 0x4e43d
+ db "Wonder what's"
+ next "inside? It needs"
+ next "more time, though.@"
+
+EggALotMoreTimeString: ; 0x4e46e
+ db "This EGG needs a"
+ next "lot more time to"
+ next "hatch.@"
+; 0x4e497
+
+
+Function4e497: ; 4e497 (13:6497)
+ call Function4e2ad
+ ret nc
+ ld a, [TempMonHappiness]
+ ld e, $7
+ cp $6
+ jr c, .asm_4e4ab
+ ld e, $8
+ cp $b
+ jr c, .asm_4e4ab
+ ret
+.asm_4e4ab
+ push de
+ ld a, $1
+ ld [wc2c6], a
+ call Function4e307
+ ld de, VTiles2 tile $00
+ predef FrontpicPredef
+ pop de
+ hlcoord 0, 0
+ ld d, $0
+ predef LoadMonAnimation
+ ld hl, wcf64
+ set 6, [hl]
+ ret
+
+Function4e4cd: ; 4e4cd (13:64cd)
+ hlcoord 13, 5
+ ld a, $36
+ call .load_square
+ hlcoord 15, 5
+ ld a, $36
+ call .load_square
+ hlcoord 17, 5
+ ld a, $36
+ call .load_square
+ ld a, c
+ cp $2
+ ld a, $3a
+ hlcoord 13, 5
+ jr c, .load_square
+ hlcoord 15, 5
+ jr z, .load_square
+ hlcoord 17, 5
+.load_square: ; 4e4f7 (13:64f7)
+ push bc
+ ld [hli], a
+ inc a
+ ld [hld], a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ pop bc
+ ret
+
+Function4e505: ; 4e505 (13:6505)
+ ld de, StringBuffer1
+ ld bc, PKMN_NAME_LENGTH
+ jr .okay ; uuterly pointless
+.okay
+ ld a, [MonType]
+ cp BOXMON
+ jr nz, .partymon
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+ push de
+ call CopyBytes
+ pop de
+ call CloseSRAM
+ ret
+
+.partymon
+ push de
+ call CopyBytes
+ pop de
+ ret
+
+Function4e528: ; 4e528 (13:6528)
+ ld a, [MonType]
+ add a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [MonType]
+ cp $3
+ ret z
+ ld a, [CurPartyMon]
+ jp SkipNames
+
+
+CheckFaintedFrzSlp: ; 4e53f
+ ld hl, MON_HP
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ jr z, .fainted_frz_slp
+ ld hl, MON_STATUS
+ add hl, bc
+ ld a, [hl]
+ and (1 << FRZ) | SLP
+ jr nz, .fainted_frz_slp
+ and a
+ ret
+
+.fainted_frz_slp
+ scf
+ ret
+; 4e554