pokecrystal-board/engine/events/print_unown.asm

234 lines
3.3 KiB
NASM
Raw Normal View History

2015-11-16 19:29:54 -08:00
UnownPrinter: ; 16be4
ld a, [UnownDex]
and a
ret z
ld a, [hInMenu]
push af
ld a, $1
ld [hInMenu], a
ld a, [Options]
push af
set NO_TEXT_SCROLL, a
ld [Options], a
call ClearBGPalettes
call ClearTileMap
ld de, UnownDexATile
2017-12-28 04:32:33 -08:00
ld hl, vTiles1 tile $6f
2015-11-16 19:29:54 -08:00
lb bc, BANK(UnownDexBTile), 1
call Request1bpp
ld de, UnownDexBTile
2017-12-28 04:32:33 -08:00
ld hl, vTiles1 tile $75
2015-11-16 19:29:54 -08:00
lb bc, BANK(UnownDexBTile), 1
call Request1bpp
hlcoord 0, 0
lb bc, 3, 18
call TextBox
hlcoord 0, 5
lb bc, 7, 7
call TextBox
hlcoord 0, 14
lb bc, 2, 18
call TextBox
hlcoord 1, 2
ld de, AlphRuinsStampString
call PlaceString
hlcoord 1, 16
ld de, UnownDexDoWhatString
call PlaceString
hlcoord 10, 6
ld de, UnownDexMenuString
call PlaceString
xor a
ld [wJumptableIndex], a
call .UpdateUnownFrontpic
2015-11-16 19:29:54 -08:00
call WaitBGMap
ld a, UNOWN
ld [CurPartySpecies], a
xor a
ld [TempMonDVs], a
ld [TempMonDVs + 1], a
ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
2015-11-16 19:29:54 -08:00
call GetSGBLayout
call SetPalettes
.joy_loop
call JoyTextDelay
ld a, [hJoyPressed]
and B_BUTTON
jr nz, .pressed_b
ld a, [hJoyPressed]
and A_BUTTON
jr nz, .pressed_a
call .LeftRight
2015-11-16 19:29:54 -08:00
call DelayFrame
jr .joy_loop
.pressed_a
ld a, [wJumptableIndex]
push af
2017-12-24 09:47:30 -08:00
farcall PrintUnownStamp
2015-11-16 19:29:54 -08:00
call RestartMapMusic
pop af
ld [wJumptableIndex], a
jr .joy_loop
.pressed_b
pop af
ld [Options], a
pop af
ld [hInMenu], a
call ReturnToMapFromSubmenu
ret
; 16ca0
.LeftRight: ; 16ca0
2015-11-16 19:29:54 -08:00
ld a, [hJoyLast]
and D_RIGHT
jr nz, .press_right
ld a, [hJoyLast]
and D_LEFT
jr nz, .press_left
ret
.press_left
ld hl, wJumptableIndex
ld a, [hl]
and a
jr nz, .wrap_around_left
ld [hl], 26 + 1
2015-11-16 19:29:54 -08:00
.wrap_around_left
dec [hl]
jr .return
.press_right
ld hl, wJumptableIndex
ld a, [hl]
cp 26
2015-11-16 19:29:54 -08:00
jr c, .wrap_around_right
ld [hl], -1
2015-11-16 19:29:54 -08:00
.wrap_around_right
inc [hl]
.return
call .UpdateUnownFrontpic
2015-11-16 19:29:54 -08:00
ret
; 16cc8
.UpdateUnownFrontpic: ; 16cc8
2015-11-16 19:29:54 -08:00
ld a, [wJumptableIndex]
cp 26
jr z, .vacant
2015-11-16 19:29:54 -08:00
inc a
ld [UnownLetter], a
ld a, UNOWN
ld [CurPartySpecies], a
xor a
ld [wBoxAlignment], a
2017-12-28 04:32:33 -08:00
ld de, vTiles2
predef GetMonFrontpic
call .Load2bppToSRAM
2015-11-16 19:29:54 -08:00
hlcoord 1, 6
xor a
2016-01-12 09:46:18 -08:00
ld [hGraphicStartTile], a
2015-11-16 19:29:54 -08:00
lb bc, 7, 7
predef PlaceGraphic
2017-12-28 04:32:33 -08:00
ld de, vTiles2 tile $31
2017-12-24 09:47:30 -08:00
farcall RotateUnownFrontpic
2015-11-16 19:29:54 -08:00
ret
.Load2bppToSRAM: ; 16cff
2015-11-16 19:29:54 -08:00
ld a, [rSVBK]
push af
ld a, BANK(wDecompressScratch)
2015-11-16 19:29:54 -08:00
ld [rSVBK], a
ld a, BANK(sScratch)
call GetSRAMBank
ld de, wDecompressScratch
2015-11-16 19:29:54 -08:00
ld hl, sScratch
ld a, [hROMBank]
ld b, a
ld c, $31
call Get2bpp
call CloseSRAM
pop af
ld [rSVBK], a
ret
.vacant
2015-11-16 19:29:54 -08:00
hlcoord 1, 6
lb bc, 7, 7
call ClearBox
hlcoord 1, 9
ld de, UnownDexVacantString
call PlaceString
2018-01-08 20:07:46 -08:00
xor a ; sScratch
2015-11-16 19:29:54 -08:00
call GetSRAMBank
ld hl, sScratch
ld bc, $31 tiles
xor a
call ByteFill
2017-12-28 04:32:33 -08:00
ld hl, vTiles2 tile $31
2015-11-16 19:29:54 -08:00
ld de, sScratch
ld c, $31
ld a, [hROMBank]
ld b, a
call Get2bpp
call CloseSRAM
ld c, 20
call DelayFrames
ret
; 16d57
AlphRuinsStampString:
db " ALPH RUINS STAMP@"
UnownDexDoWhatString:
db "Do what?@"
UnownDexMenuString:
db "♂ PRINT"
next "♀ CANCEL"
next "← PREVIOUS"
next "→ NEXT"
db "@"
UnownDexVacantString:
db "VACANT@"
; 16d9c
UnownDexATile: ; 16d9c
INCBIN "gfx/printer/bold_a.1bpp"
2015-11-16 19:29:54 -08:00
UnownDexBTile: ; 16da4
INCBIN "gfx/printer/bold_b.1bpp"
2015-11-16 19:29:54 -08:00
; 16dac
2016-05-10 09:59:34 -07:00
PlaceUnownPrinterFrontpic: ; 16dac
2015-11-16 19:29:54 -08:00
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, " "
call ByteFill
hlcoord 7, 11
ld a, $31
2016-01-12 09:46:18 -08:00
ld [hGraphicStartTile], a
2015-11-16 19:29:54 -08:00
lb bc, 7, 7
predef PlaceGraphic
2015-11-16 19:29:54 -08:00
ret
; 16dc7