diff options
author | yenatch <yenatch@gmail.com> | 2015-11-28 20:15:35 -0500 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-11-28 20:15:35 -0500 |
commit | 794410352fd92ccf06974763e4b3be0b807641ab (patch) | |
tree | 05f5dd861966762db9556082229cee82e8b5eed9 /engine/stats_screen.asm | |
parent | 9c5473e965520f672640daf4ee76622640e0de15 (diff) | |
parent | 4bcd71e3227181baa536357af3d87a8d02af3890 (diff) |
Merge pull request #328 from PikalaxALT/master
Split out most of main.asm
Diffstat (limited to 'engine/stats_screen.asm')
-rwxr-xr-x | engine/stats_screen.asm | 1150 |
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 |