ref: 7111ae8e582996f2b6ef36427cf54e0c168593ae
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 ld [hl], a hlcoord 17, 2, wPrinterTileMapBuffer ld a, $64 ld [hli], a inc a 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, FarString 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, FarString 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 [wNamedObjectIndexBuffer], a ld [wCurSpecies], a ld hl, wPartyMonNicknames call Function1dc50e 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, wNamedObjectIndexBuffer lb bc, PRINTNUM_LEADINGZEROS | 1, 3 call PrintNum hlcoord 1, 9 ld de, String1dc550 call PlaceString ld hl, wPartyMonOT call Function1dc50e hlcoord 4, 9 call PlaceString hlcoord 1, 11 ld de, String1dc559 call PlaceString hlcoord 4, 11 ld de, wTempMonID lb bc, PRINTNUM_LEADINGZEROS | 2, 5 call PrintNum hlcoord 1, 14 ld de, String1dc554 call PlaceString hlcoord 7, 14 ld a, [wTempMonMoves + 0] call Function1dc51a call Function1dc52c ld hl, wTempMonDVs predef GetUnownLetter ld hl, wBoxAlignment xor a ld [hl], a ld a, [wCurPartySpecies] cp UNOWN jr z, .asm_1dc469 inc [hl] .asm_1dc469 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 Function1dc51a hlcoord 7, 2 ld a, [wTempMonMoves + 2] call Function1dc51a hlcoord 7, 4 ld a, [wTempMonMoves + 3] call Function1dc51a hlcoord 7, 7 ld de, String1dc55d 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 Function1dc50e: ld bc, NAME_LENGTH ld a, [wCurPartyMon] call AddNTimes ld e, l ld d, h ret Function1dc51a: and a jr z, .no_move ld [wNamedObjectIndexBuffer], a call GetMoveName jr .got_string .no_move ld de, String1dc584 .got_string call PlaceString ret Function1dc52c: 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 String1dc550: db "OT/@" String1dc554: db "MOVE@" String1dc559: db "<ID>№.@" String1dc55d: db "ATTACK" next "DEFENSE" next "SPCL.ATK" next "SPCL.DEF" next "SPEED" db "@" String1dc584: db "------------@" GBPrinterHPIcon: INCBIN "gfx/printer/hp.1bpp" GBPrinterLvIcon: INCBIN "gfx/printer/lv.1bpp"