pokecrystal/engine/printer/print_party.asm

354 lines
6.0 KiB
NASM
Raw Normal View History

2018-01-13 20:22:16 +00:00
PRINTPARTY_HP EQUS "\"◀\"" ; $71
2018-06-24 14:09:41 +00:00
PrintPage1:
2015-11-30 16:04:14 +00:00
hlcoord 0, 0
2016-05-11 21:16:03 +00:00
decoord 0, 0, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld bc, 17 * SCREEN_WIDTH
call CopyBytes
2016-05-11 21:16:03 +00:00
hlcoord 17, 1, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld a, $62
ld [hli], a
inc a
ld [hl], a
2016-05-11 21:16:03 +00:00
hlcoord 17, 2, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld a, $64
ld [hli], a
inc a
ld [hl], a
2016-05-11 21:16:03 +00:00
hlcoord 1, 9, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld a, " "
ld [hli], a
ld [hl], a
2016-05-11 21:16:03 +00:00
hlcoord 1, 10, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld a, $61
ld [hli], a
ld [hl], a
2016-05-11 21:16:03 +00:00
hlcoord 2, 11, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
lb bc, 5, 18
call ClearBox
ld a, [wTempSpecies]
2015-11-30 16:04:14 +00:00
dec a
call CheckCaughtMon
push af
ld a, [wTempSpecies]
2015-11-30 16:04:14 +00:00
ld b, a
ld c, 1 ; get page 1
2017-12-24 17:47:30 +00:00
farcall GetDexEntryPagePointer
2015-11-30 16:04:14 +00:00
pop af
ld a, b
2016-05-11 21:16:03 +00:00
hlcoord 1, 11, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
call nz, FarString
2016-05-11 21:16:03 +00:00
hlcoord 19, 0, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
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
2018-06-24 14:09:41 +00:00
PrintPage2:
2016-05-11 21:16:03 +00:00
hlcoord 0, 0, wPrinterTileMapBuffer
ld bc, 8 * SCREEN_WIDTH
2015-11-30 16:04:14 +00:00
ld a, " "
call ByteFill
2016-05-11 21:16:03 +00:00
hlcoord 0, 0, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld a, $36
2016-05-11 21:16:03 +00:00
ld b, 6
2015-11-30 16:04:14 +00:00
call .FillColumn
2016-05-11 21:16:03 +00:00
hlcoord 19, 0, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld a, $37
2016-05-11 21:16:03 +00:00
ld b, 6
2015-11-30 16:04:14 +00:00
call .FillColumn
2016-05-11 21:16:03 +00:00
hlcoord 0, 6, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld [hl], $38
inc hl
ld a, $39
ld bc, SCREEN_HEIGHT
call ByteFill
ld [hl], $3a
2016-05-11 21:16:03 +00:00
hlcoord 0, 7, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld bc, SCREEN_WIDTH
ld a, $32
call ByteFill
ld a, [wTempSpecies]
2015-11-30 16:04:14 +00:00
dec a
call CheckCaughtMon
push af
ld a, [wTempSpecies]
2015-11-30 16:04:14 +00:00
ld b, a
ld c, 2 ; get page 2
2017-12-24 17:47:30 +00:00
farcall GetDexEntryPagePointer
2015-11-30 16:04:14 +00:00
pop af
2016-05-11 21:16:03 +00:00
hlcoord 1, 1, wPrinterTileMapBuffer
2015-11-30 16:04:14 +00:00
ld a, b
call nz, FarString
ret
2018-06-24 14:09:41 +00:00
.FillColumn:
2015-11-30 16:04:14 +00:00
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)
2016-05-11 21:16:03 +00:00
GBPrinterString_Null: db "@"
GBPrinterString_CheckingLink: next " CHECKING LINK...@"
GBPrinterString_Transmitting: next " TRANSMITTING...@"
GBPrinterString_Printing: next " PRINTING...@"
GBPrinterString_PrinterError1:
2015-11-30 16:04:14 +00:00
db " Printer Error 1"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
2016-05-11 21:16:03 +00:00
GBPrinterString_PrinterError2:
2015-11-30 16:04:14 +00:00
db " Printer Error 2"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
2016-05-11 21:16:03 +00:00
GBPrinterString_PrinterError3:
2015-11-30 16:04:14 +00:00
db " Printer Error 3"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
2016-05-11 21:16:03 +00:00
GBPrinterString_PrinterError4:
2015-11-30 16:04:14 +00:00
db " Printer Error 4"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
2018-06-24 14:09:41 +00:00
PrintPartyMonPage1:
2015-11-30 16:04:14 +00:00
call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a
ld [hBGMapMode], a
call LoadFontsBattleExtra
ld de, GBPrinterHPIcon
ld hl, vTiles2 tile PRINTPARTY_HP
lb bc, BANK(GBPrinterHPIcon), 1
2015-11-30 16:04:14 +00:00
call Request1bpp
ld de, GBPrinterLvIcon
ld hl, vTiles2 tile "<LV>"
lb bc, BANK(GBPrinterLvIcon), 1
2015-11-30 16:04:14 +00:00
call Request1bpp
2018-01-13 20:22:16 +00:00
ld de, StatsScreenPageTilesGFX + 14 tiles ; shiny icon
2018-01-19 07:30:19 +00:00
ld hl, vTiles2 tile "⁂"
2018-01-13 20:22:16 +00:00
lb bc, BANK(StatsScreenPageTilesGFX), 1
2015-11-30 16:04:14 +00:00
call Get2bpp
xor a
2018-01-23 22:39:09 +00:00
ld [wMonType], a
farcall CopyMonToTempMon
2015-11-30 16:04:14 +00:00
hlcoord 0, 7
ld b, 9
ld c, 18
call TextBox
hlcoord 8, 2
2018-01-23 22:39:09 +00:00
ld a, [wTempMonLevel]
call PrintLevel_Force3Digits
2015-11-30 16:04:14 +00:00
hlcoord 12, 2
ld [hl], PRINTPARTY_HP
2015-11-30 16:04:14 +00:00
inc hl
2018-01-23 22:39:09 +00:00
ld de, wTempMonMaxHP
2015-11-30 16:04:14 +00:00
lb bc, 2, 3
call PrintNum
2018-01-23 22:39:09 +00:00
ld a, [wCurPartySpecies]
ld [wNamedObjectIndexBuffer], a
2018-01-23 22:39:09 +00:00
ld [wCurSpecies], a
ld hl, wPartyMonNicknames
2015-11-30 16:04:14 +00:00
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
2015-11-30 16:04:14 +00:00
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
hlcoord 1, 9
ld de, String1dc550
call PlaceString
2018-01-23 22:39:09 +00:00
ld hl, wPartyMonOT
2015-11-30 16:04:14 +00:00
call Function1dc50e
hlcoord 4, 9
call PlaceString
hlcoord 1, 11
ld de, String1dc559
call PlaceString
hlcoord 4, 11
2018-01-23 22:39:09 +00:00
ld de, wTempMonID
2015-11-30 16:04:14 +00:00
lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
hlcoord 1, 14
ld de, String1dc554
call PlaceString
hlcoord 7, 14
2018-01-23 22:39:09 +00:00
ld a, [wTempMonMoves + 0]
2015-11-30 16:04:14 +00:00
call Function1dc51a
call Function1dc52c
2018-01-23 22:39:09 +00:00
ld hl, wTempMonDVs
predef GetUnownLetter
ld hl, wBoxAlignment
2015-11-30 16:04:14 +00:00
xor a
ld [hl], a
2018-01-23 22:39:09 +00:00
ld a, [wCurPartySpecies]
2015-11-30 16:04:14 +00:00
cp UNOWN
jr z, .asm_1dc469
inc [hl]
.asm_1dc469
hlcoord 0, 0
call _PrepMonFrontpic
call WaitBGMap
2015-12-23 03:19:33 +00:00
ld b, SCGB_STATS_SCREEN_HP_PALS
2015-11-30 16:04:14 +00:00
call GetSGBLayout
call SetPalettes
ret
2018-06-24 14:09:41 +00:00
PrintPartyMonPage2:
2015-11-30 16:04:14 +00:00
call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a
ld [hBGMapMode], a
call LoadFontsBattleExtra
xor a
2018-01-23 22:39:09 +00:00
ld [wMonType], a
farcall CopyMonToTempMon
2015-11-30 16:04:14 +00:00
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
2018-01-23 22:39:09 +00:00
ld a, [wTempMonMoves + 1]
2015-11-30 16:04:14 +00:00
call Function1dc51a
hlcoord 7, 2
2018-01-23 22:39:09 +00:00
ld a, [wTempMonMoves + 2]
2015-11-30 16:04:14 +00:00
call Function1dc51a
hlcoord 7, 4
2018-01-23 22:39:09 +00:00
ld a, [wTempMonMoves + 3]
2015-11-30 16:04:14 +00:00
call Function1dc51a
hlcoord 7, 7
ld de, String1dc55d
call PlaceString
hlcoord 16, 7
2018-01-23 22:39:09 +00:00
ld de, wTempMonAttack
2015-11-30 16:04:14 +00:00
call .PrintTempMonStats
hlcoord 16, 9
2018-01-23 22:39:09 +00:00
ld de, wTempMonDefense
2015-11-30 16:04:14 +00:00
call .PrintTempMonStats
hlcoord 16, 11
2018-01-23 22:39:09 +00:00
ld de, wTempMonSpclAtk
2015-11-30 16:04:14 +00:00
call .PrintTempMonStats
hlcoord 16, 13
2018-01-23 22:39:09 +00:00
ld de, wTempMonSpclDef
2015-11-30 16:04:14 +00:00
call .PrintTempMonStats
hlcoord 16, 15
2018-01-23 22:39:09 +00:00
ld de, wTempMonSpeed
2015-11-30 16:04:14 +00:00
call .PrintTempMonStats
call WaitBGMap
2015-12-23 03:19:33 +00:00
ld b, SCGB_STATS_SCREEN_HP_PALS
2015-11-30 16:04:14 +00:00
call GetSGBLayout
call SetPalettes
ret
2018-06-24 14:09:41 +00:00
.PrintTempMonStats:
2015-11-30 16:04:14 +00:00
lb bc, 2, 3
call PrintNum
ret
2018-06-24 14:09:41 +00:00
Function1dc50e:
2015-11-30 16:04:14 +00:00
ld bc, NAME_LENGTH
2018-01-23 22:39:09 +00:00
ld a, [wCurPartyMon]
2015-11-30 16:04:14 +00:00
call AddNTimes
ld e, l
ld d, h
ret
2018-06-24 14:09:41 +00:00
Function1dc51a:
2015-11-30 16:04:14 +00:00
and a
jr z, .no_move
ld [wNamedObjectIndexBuffer], a
2015-11-30 16:04:14 +00:00
call GetMoveName
jr .got_string
.no_move
ld de, String1dc584
.got_string
call PlaceString
ret
2018-06-24 14:09:41 +00:00
Function1dc52c:
farcall GetGender
2015-11-30 16:04:14 +00:00
ld a, " "
jr c, .got_gender
ld a, "♂"
jr nz, .got_gender
ld a, "♀"
.got_gender
hlcoord 17, 2
ld [hl], a
2018-01-23 22:39:09 +00:00
ld bc, wTempMonDVs
2017-12-24 17:47:30 +00:00
farcall CheckShininess
2015-11-30 16:04:14 +00:00
ret nc
hlcoord 18, 2
2018-01-19 07:30:19 +00:00
ld [hl], "⁂"
2015-11-30 16:04:14 +00:00
ret
2018-06-24 14:09:41 +00:00
String1dc550:
2015-11-30 16:04:14 +00:00
db "OT/@"
2018-06-24 14:09:41 +00:00
String1dc554:
2015-11-30 16:04:14 +00:00
db "MOVE@"
2018-06-24 14:09:41 +00:00
String1dc559:
2015-11-30 16:04:14 +00:00
db "<ID>№.@"
2018-06-24 14:09:41 +00:00
String1dc55d:
2015-11-30 16:04:14 +00:00
db "ATTACK"
next "DEFENSE"
next "SPCL.ATK"
next "SPCL.DEF"
next "SPEED"
db "@"
2018-06-24 14:09:41 +00:00
String1dc584:
2015-11-30 16:04:14 +00:00
db "------------@"
2018-06-24 14:09:41 +00:00
GBPrinterHPIcon:
INCBIN "gfx/printer/hp.1bpp"
2018-06-24 14:09:41 +00:00
GBPrinterLvIcon:
INCBIN "gfx/printer/lv.1bpp"