ref: 4401d24074913b227ed246da02343cd875ee9fc0
dir: /engine/printer/print_party.asm/
PRINTPARTY_HP EQU "◀" ; $71 PrintPage1: hlcoord 0, 0 decoord 0, 0, wPrinterTilemapBuffer ld bc, 17 * SCREEN_WIDTH call CopyBytes hlcoord 17, 1, wPrinterTilemapBuffer ld a, $62 ld [hli], a inc a ; $63 ld [hl], a hlcoord 17, 2, wPrinterTilemapBuffer ld a, $64 ld [hli], a inc a ; $65 ld [hl], a hlcoord 1, 9, wPrinterTilemapBuffer ld a, " " ld [hli], a ld [hl], a hlcoord 1, 10, wPrinterTilemapBuffer ld a, $61 ld [hli], a ld [hl], a hlcoord 2, 11, wPrinterTilemapBuffer lb bc, 5, 18 call ClearBox ld a, [wTempSpecies] dec a call CheckCaughtMon push af ld a, [wTempSpecies] ld b, a ld c, 1 ; get page 1 farcall GetDexEntryPagePointer pop af ld a, b hlcoord 1, 11, wPrinterTilemapBuffer call nz, PlaceFarString hlcoord 19, 0, wPrinterTilemapBuffer ld [hl], $35 ld de, SCREEN_WIDTH add hl, de ld b, $f .column_loop ld [hl], $37 add hl, de dec b jr nz, .column_loop ld [hl], $3a ret PrintPage2: hlcoord 0, 0, wPrinterTilemapBuffer ld bc, 8 * SCREEN_WIDTH ld a, " " call ByteFill hlcoord 0, 0, wPrinterTilemapBuffer ld a, $36 ld b, 6 call .FillColumn hlcoord 19, 0, wPrinterTilemapBuffer ld a, $37 ld b, 6 call .FillColumn hlcoord 0, 6, wPrinterTilemapBuffer ld [hl], $38 inc hl ld a, $39 ld bc, SCREEN_HEIGHT call ByteFill ld [hl], $3a hlcoord 0, 7, wPrinterTilemapBuffer ld bc, SCREEN_WIDTH ld a, $32 call ByteFill ld a, [wTempSpecies] dec a call CheckCaughtMon push af ld a, [wTempSpecies] ld b, a ld c, 2 ; get page 2 farcall GetDexEntryPagePointer pop af hlcoord 1, 1, wPrinterTilemapBuffer ld a, b call nz, PlaceFarString ret .FillColumn: push de ld de, SCREEN_WIDTH .column_loop ld [hl], a add hl, de dec b jr nz, .column_loop pop de ret GBPrinterStrings: ; used only for BANK(GBPrinterStrings) GBPrinterString_Null: db "@" GBPrinterString_CheckingLink: next " CHECKING LINK...@" GBPrinterString_Transmitting: next " TRANSMITTING...@" GBPrinterString_Printing: next " PRINTING...@" GBPrinterString_PrinterError1: db " Printer Error 1" next "" next "Check the Game Boy" next "Printer Manual." db "@" GBPrinterString_PrinterError2: db " Printer Error 2" next "" next "Check the Game Boy" next "Printer Manual." db "@" GBPrinterString_PrinterError3: db " Printer Error 3" next "" next "Check the Game Boy" next "Printer Manual." db "@" GBPrinterString_PrinterError4: db " Printer Error 4" next "" next "Check the Game Boy" next "Printer Manual." db "@" PrintPartyMonPage1: call ClearBGPalettes call ClearTilemap call ClearSprites xor a ldh [hBGMapMode], a call LoadFontsBattleExtra ld de, GBPrinterHPIcon ld hl, vTiles2 tile PRINTPARTY_HP lb bc, BANK(GBPrinterHPIcon), 1 call Request1bpp ld de, GBPrinterLvIcon ld hl, vTiles2 tile "<LV>" lb bc, BANK(GBPrinterLvIcon), 1 call Request1bpp ld de, StatsScreenPageTilesGFX + 14 tiles ; shiny icon ld hl, vTiles2 tile "⁂" lb bc, BANK(StatsScreenPageTilesGFX), 1 call Get2bpp xor a ld [wMonType], a farcall CopyMonToTempMon hlcoord 0, 7 ld b, 9 ld c, 18 call Textbox hlcoord 8, 2 ld a, [wTempMonLevel] call PrintLevel_Force3Digits hlcoord 12, 2 ld [hl], PRINTPARTY_HP inc hl ld de, wTempMonMaxHP lb bc, 2, 3 call PrintNum ld a, [wCurPartySpecies] ld [wNamedObjectIndex], a ld [wCurSpecies], a ld hl, wPartyMonNicknames call GetCurPartyMonName hlcoord 8, 4 call PlaceString hlcoord 9, 6 ld [hl], "/" call GetPokemonName hlcoord 10, 6 call PlaceString hlcoord 8, 0 ld [hl], "№" inc hl ld [hl], "." inc hl ld de, wNamedObjectIndex lb bc, PRINTNUM_LEADINGZEROS | 1, 3 call PrintNum hlcoord 1, 9 ld de, PrintParty_OTString call PlaceString ld hl, wPartyMonOT call GetCurPartyMonName hlcoord 4, 9 call PlaceString hlcoord 1, 11 ld de, PrintParty_IDNoString call PlaceString hlcoord 4, 11 ld de, wTempMonID lb bc, PRINTNUM_LEADINGZEROS | 2, 5 call PrintNum hlcoord 1, 14 ld de, PrintParty_MoveString call PlaceString hlcoord 7, 14 ld a, [wTempMonMoves + 0] call PlaceMoveNameString call PlaceGenderAndShininess ld hl, wTempMonDVs predef GetUnownLetter ld hl, wBoxAlignment xor a ld [hl], a ld a, [wCurPartySpecies] cp UNOWN jr z, .got_alignment inc [hl] .got_alignment hlcoord 0, 0 call _PrepMonFrontpic call WaitBGMap ld b, SCGB_STATS_SCREEN_HP_PALS call GetSGBLayout call SetPalettes ret PrintPartyMonPage2: call ClearBGPalettes call ClearTilemap call ClearSprites xor a ldh [hBGMapMode], a call LoadFontsBattleExtra xor a ld [wMonType], a farcall CopyMonToTempMon hlcoord 0, 0 ld b, 15 ld c, 18 call Textbox ld bc, SCREEN_WIDTH decoord 0, 0 hlcoord 0, 1 call CopyBytes hlcoord 7, 0 ld a, [wTempMonMoves + 1] call PlaceMoveNameString hlcoord 7, 2 ld a, [wTempMonMoves + 2] call PlaceMoveNameString hlcoord 7, 4 ld a, [wTempMonMoves + 3] call PlaceMoveNameString hlcoord 7, 7 ld de, PrintParty_StatsString call PlaceString hlcoord 16, 7 ld de, wTempMonAttack call .PrintTempMonStats hlcoord 16, 9 ld de, wTempMonDefense call .PrintTempMonStats hlcoord 16, 11 ld de, wTempMonSpclAtk call .PrintTempMonStats hlcoord 16, 13 ld de, wTempMonSpclDef call .PrintTempMonStats hlcoord 16, 15 ld de, wTempMonSpeed call .PrintTempMonStats call WaitBGMap ld b, SCGB_STATS_SCREEN_HP_PALS call GetSGBLayout call SetPalettes ret .PrintTempMonStats: lb bc, 2, 3 call PrintNum ret GetCurPartyMonName: ld bc, NAME_LENGTH ld a, [wCurPartyMon] call AddNTimes ld e, l ld d, h ret PlaceMoveNameString: and a jr z, .no_move ld [wNamedObjectIndex], a call GetMoveName jr .got_string .no_move ld de, PrintParty_NoMoveString .got_string call PlaceString ret PlaceGenderAndShininess: farcall GetGender ld a, " " jr c, .got_gender ld a, "♂" jr nz, .got_gender ld a, "♀" .got_gender hlcoord 17, 2 ld [hl], a ld bc, wTempMonDVs farcall CheckShininess ret nc hlcoord 18, 2 ld [hl], "⁂" ret PrintParty_OTString: db "OT/@" PrintParty_MoveString: db "MOVE@" PrintParty_IDNoString: db "<ID>№.@" PrintParty_StatsString: db "ATTACK" next "DEFENSE" next "SPCL.ATK" next "SPCL.DEF" next "SPEED" db "@" PrintParty_NoMoveString: db "------------@" GBPrinterHPIcon: INCBIN "gfx/printer/hp.1bpp" GBPrinterLvIcon: INCBIN "gfx/printer/lv.1bpp"