pokecrystal-board/engine/pokemon/party_menu.asm

776 lines
11 KiB
NASM
Raw Normal View History

2018-06-24 07:09:41 -07:00
SelectMonFromParty:
call DisableSpriteUpdates
xor a
2018-01-23 14:39:09 -08:00
ld [wPartyMenuActionText], a
2015-11-11 20:38:57 -08:00
call ClearBGPalettes
2016-01-04 05:43:55 -08:00
call InitPartyMenuLayout
call WaitBGMap
2015-11-11 20:38:57 -08:00
call SetPalettes
call DelayFrame
call PartyMenuSelect
2015-12-18 17:07:09 -08:00
call ReturnToMapWithSpeechTextbox
ret
2018-06-24 07:09:41 -07:00
SelectTradeOrDayCareMon:
ld a, b
2018-01-23 14:39:09 -08:00
ld [wPartyMenuActionText], a
call DisableSpriteUpdates
2015-11-11 20:38:57 -08:00
call ClearBGPalettes
2016-01-04 05:43:55 -08:00
call InitPartyMenuLayout
call WaitBGMap
ld b, CGB_PARTY_MENU
call GetCGBLayout
2015-11-11 20:38:57 -08:00
call SetPalettes
call DelayFrame
call PartyMenuSelect
2015-12-18 17:07:09 -08:00
call ReturnToMapWithSpeechTextbox
ret
2018-06-24 07:09:41 -07:00
InitPartyMenuLayout:
2015-11-18 20:16:25 -08:00
call LoadPartyMenuGFX
call InitPartyMenuWithCancel
call InitPartyMenuGFX
call WritePartyMenuTilemap
call PlacePartyMenuText
ret
2018-06-24 07:09:41 -07:00
LoadPartyMenuGFX:
call LoadFontsBattleExtra
2020-11-17 08:12:21 -08:00
callfar InitPartyMenuPalettes
2017-12-24 09:47:30 -08:00
callfar ClearSpriteAnims2
ret
WritePartyMenuTilemap:
2018-01-23 14:39:09 -08:00
ld hl, wOptions
ld a, [hl]
push af
2018-01-10 23:54:07 -08:00
set NO_TEXT_SCROLL, [hl]
xor a
ldh [hBGMapMode], a
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, " "
call ByteFill ; blank the tilemap
2018-01-10 22:45:27 -08:00
call GetPartyMenuQualityIndexes
.loop
ld a, [hli]
2018-01-10 22:45:27 -08:00
cp -1
jr z, .end
push hl
2015-11-11 20:38:57 -08:00
ld hl, .Jumptable
rst JumpTable
pop hl
2018-01-10 22:45:27 -08:00
jr .loop
2015-11-11 20:38:57 -08:00
.end
pop af
2018-01-23 14:39:09 -08:00
ld [wOptions], a
ret
2018-06-24 07:09:41 -07:00
.Jumptable:
2018-01-10 22:45:27 -08:00
; entries correspond to PARTYMENUQUALITY_* constants
2015-11-11 20:38:57 -08:00
dw PlacePartyNicknames
dw PlacePartyHPBar
dw PlacePartyMenuHPDigits
dw PlacePartyMonLevel
dw PlacePartyMonStatus
dw PlacePartyMonTMHMCompatibility
dw PlacePartyMonEvoStoneCompatibility
dw PlacePartyMonGender
2018-06-24 07:09:41 -07:00
PlacePartyNicknames:
hlcoord 3, 1
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
2015-11-11 20:38:57 -08:00
jr z, .end
ld c, a
2018-10-24 12:33:18 -07:00
ld b, 0
2015-11-11 20:38:57 -08:00
.loop
push bc
push hl
push hl
2018-01-23 14:39:09 -08:00
ld hl, wPartyMonNicknames
ld a, b
call GetNickname
pop hl
call PlaceString
pop hl
2015-11-11 20:38:57 -08:00
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
2015-11-11 20:38:57 -08:00
jr nz, .loop
2015-11-11 20:38:57 -08:00
.end
dec hl
dec hl
ld de, .CancelString
call PlaceString
ret
.CancelString:
db "CANCEL@"
2018-06-24 07:09:41 -07:00
PlacePartyHPBar:
xor a
ld [wWhichPartyMonHPPal], a
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
ret z
ld c, a
2018-10-24 12:33:18 -07:00
ld b, 0
hlcoord 11, 2
2015-11-11 20:38:57 -08:00
.loop
push bc
push hl
2015-11-11 20:38:57 -08:00
call PartyMenuCheckEgg
jr z, .skip
push hl
2015-11-11 20:38:57 -08:00
call PlacePartymonHPBar
pop hl
2015-11-11 20:38:57 -08:00
ld d, $6
ld b, $0
call DrawBattleHPBar
2015-12-22 19:19:33 -08:00
ld hl, wHPPals
ld a, [wWhichPartyMonHPPal]
ld c, a
ld b, 0
add hl, bc
call SetHPPal
ld b, CGB_PARTY_MENU_HP_BARS
call GetCGBLayout
.skip
ld hl, wWhichPartyMonHPPal
inc [hl]
pop hl
2015-11-11 20:38:57 -08:00
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
2015-11-11 20:38:57 -08:00
jr nz, .loop
ld b, CGB_PARTY_MENU
call GetCGBLayout
ret
2018-06-24 07:09:41 -07:00
PlacePartymonHPBar:
ld a, b
2015-11-11 20:38:57 -08:00
ld bc, PARTYMON_STRUCT_LENGTH
2018-01-23 14:39:09 -08:00
ld hl, wPartyMon1HP
call AddNTimes
ld a, [hli]
or [hl]
2015-11-11 20:38:57 -08:00
jr nz, .not_fainted
xor a
ld e, a
ld c, a
ret
2015-11-11 20:38:57 -08:00
.not_fainted
dec hl
ld a, [hli]
ld b, a
ld a, [hli]
ld c, a
ld a, [hli]
ld d, a
ld a, [hli]
ld e, a
predef ComputeHPBarPixels
ret
2018-06-24 07:09:41 -07:00
PlacePartyMenuHPDigits:
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
ret z
ld c, a
2018-10-24 12:33:18 -07:00
ld b, 0
hlcoord 13, 1
2015-11-11 20:38:57 -08:00
.loop
push bc
push hl
2015-11-11 20:38:57 -08:00
call PartyMenuCheckEgg
jr z, .next
push hl
ld a, b
2015-11-11 20:38:57 -08:00
ld bc, PARTYMON_STRUCT_LENGTH
2018-01-23 14:39:09 -08:00
ld hl, wPartyMon1HP
call AddNTimes
ld e, l
ld d, h
pop hl
push de
lb bc, 2, 3
call PrintNum
pop de
2015-11-11 20:38:57 -08:00
ld a, "/"
ld [hli], a
inc de
inc de
lb bc, 2, 3
call PrintNum
2015-11-11 20:38:57 -08:00
.next
pop hl
2015-11-11 20:38:57 -08:00
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
2015-11-11 20:38:57 -08:00
jr nz, .loop
ret
2018-06-24 07:09:41 -07:00
PlacePartyMonLevel:
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 8, 2
2015-11-11 20:38:57 -08:00
.loop
push bc
push hl
2015-11-11 20:38:57 -08:00
call PartyMenuCheckEgg
jr z, .next
push hl
ld a, b
2015-11-11 20:38:57 -08:00
ld bc, PARTYMON_STRUCT_LENGTH
2018-01-23 14:39:09 -08:00
ld hl, wPartyMon1Level
call AddNTimes
ld e, l
ld d, h
pop hl
ld a, [de]
cp 100 ; This is distinct from MAX_LEVEL.
2015-11-11 20:38:57 -08:00
jr nc, .ThreeDigits
ld a, "<LV>"
ld [hli], a
2019-11-03 17:17:04 -08:00
lb bc, PRINTNUM_LEFTALIGN | 1, 2
2015-11-11 20:38:57 -08:00
; jr .okay
.ThreeDigits:
2019-11-03 17:17:04 -08:00
lb bc, PRINTNUM_LEFTALIGN | 1, 3
2015-11-11 20:38:57 -08:00
; .okay
call PrintNum
2015-11-11 20:38:57 -08:00
.next
pop hl
ld de, SCREEN_WIDTH * 2
add hl, de
pop bc
inc b
dec c
2015-11-11 20:38:57 -08:00
jr nz, .loop
ret
2018-06-24 07:09:41 -07:00
PlacePartyMonStatus:
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 5, 2
2015-11-11 20:38:57 -08:00
.loop
push bc
push hl
2015-11-11 20:38:57 -08:00
call PartyMenuCheckEgg
jr z, .next
push hl
ld a, b
2015-11-11 20:38:57 -08:00
ld bc, PARTYMON_STRUCT_LENGTH
2018-01-23 14:39:09 -08:00
ld hl, wPartyMon1Status
call AddNTimes
ld e, l
ld d, h
pop hl
call PlaceStatusString
2015-11-11 20:38:57 -08:00
.next
pop hl
ld de, SCREEN_WIDTH * 2
add hl, de
pop bc
inc b
dec c
2015-11-11 20:38:57 -08:00
jr nz, .loop
ret
2018-06-24 07:09:41 -07:00
PlacePartyMonTMHMCompatibility:
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 12, 2
2015-11-11 20:38:57 -08:00
.loop
push bc
push hl
2015-11-11 20:38:57 -08:00
call PartyMenuCheckEgg
jr z, .next
push hl
2018-01-23 14:39:09 -08:00
ld hl, wPartySpecies
ld e, b
ld d, 0
add hl, de
ld a, [hl]
2018-01-23 14:39:09 -08:00
ld [wCurPartySpecies], a
predef CanLearnTMHMMove
pop hl
2015-11-11 20:38:57 -08:00
call .PlaceAbleNotAble
call PlaceString
2015-11-11 20:38:57 -08:00
.next
pop hl
ld de, SCREEN_WIDTH * 2
add hl, de
pop bc
inc b
dec c
2015-11-11 20:38:57 -08:00
jr nz, .loop
ret
2018-06-24 07:09:41 -07:00
.PlaceAbleNotAble:
ld a, c
and a
2015-11-11 20:38:57 -08:00
jr nz, .able
ld de, .string_not_able
ret
2015-11-11 20:38:57 -08:00
.able
ld de, .string_able
ret
2018-06-24 07:09:41 -07:00
.string_able
db "ABLE@"
2018-06-24 07:09:41 -07:00
.string_not_able
db "NOT ABLE@"
2018-06-24 07:09:41 -07:00
PlacePartyMonEvoStoneCompatibility:
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 12, 2
2015-11-11 20:38:57 -08:00
.loop
push bc
push hl
2015-11-11 20:38:57 -08:00
call PartyMenuCheckEgg
jr z, .next
push hl
ld a, b
2015-11-11 20:38:57 -08:00
ld bc, PARTYMON_STRUCT_LENGTH
2018-01-23 14:39:09 -08:00
ld hl, wPartyMon1Species
call AddNTimes
ld a, [hl]
dec a
ld e, a
ld d, 0
ld hl, EvosAttacksPointers
add hl, de
add hl, de
2015-11-11 20:38:57 -08:00
call .DetermineCompatibility
pop hl
call PlaceString
2015-11-11 20:38:57 -08:00
.next
pop hl
2015-11-11 20:38:57 -08:00
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
2015-11-11 20:38:57 -08:00
jr nz, .loop
ret
2018-06-24 07:09:41 -07:00
.DetermineCompatibility:
; BUG: Only the first three evolution entries can have Stone compatibility reported correctly (see docs/bugs_and_glitches.md)
2018-01-23 14:39:09 -08:00
ld de, wStringBuffer1
ld a, BANK(EvosAttacksPointers)
ld bc, 2
call FarCopyBytes
2018-01-23 14:39:09 -08:00
ld hl, wStringBuffer1
ld a, [hli]
ld h, [hl]
ld l, a
2018-01-23 14:39:09 -08:00
ld de, wStringBuffer1
ld a, BANK("Evolutions and Attacks")
2018-01-26 11:36:59 -08:00
ld bc, 10
call FarCopyBytes
2018-01-23 14:39:09 -08:00
ld hl, wStringBuffer1
2015-11-11 20:38:57 -08:00
.loop2
; BUG: EVOLVE_STAT can break Stone compatibility reporting (see docs/bugs_and_glitches.md)
ld a, [hli]
and a
2015-11-11 20:38:57 -08:00
jr z, .nope
inc hl
inc hl
cp EVOLVE_ITEM
2015-11-11 20:38:57 -08:00
jr nz, .loop2
dec hl
dec hl
2018-01-23 14:39:09 -08:00
ld a, [wCurItem]
cp [hl]
inc hl
inc hl
2015-11-11 20:38:57 -08:00
jr nz, .loop2
ld de, .string_able
ret
2015-11-11 20:38:57 -08:00
.nope
ld de, .string_not_able
ret
2018-06-24 07:09:41 -07:00
.string_able
db "ABLE@"
2018-06-24 07:09:41 -07:00
.string_not_able
db "NOT ABLE@"
2018-06-24 07:09:41 -07:00
PlacePartyMonGender:
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 12, 2
2015-11-11 20:38:57 -08:00
.loop
push bc
push hl
2015-11-11 20:38:57 -08:00
call PartyMenuCheckEgg
jr z, .next
2018-01-23 14:39:09 -08:00
ld [wCurPartySpecies], a
push hl
ld a, b
2018-01-23 14:39:09 -08:00
ld [wCurPartyMon], a
xor a
2018-01-23 14:39:09 -08:00
ld [wMonType], a
call GetGender
2015-11-11 20:38:57 -08:00
ld de, .unknown
jr c, .got_gender
ld de, .male
jr nz, .got_gender
ld de, .female
2015-11-11 20:38:57 -08:00
.got_gender
pop hl
call PlaceString
2015-11-11 20:38:57 -08:00
.next
pop hl
2015-11-11 20:38:57 -08:00
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
2015-11-11 20:38:57 -08:00
jr nz, .loop
ret
2018-06-24 07:09:41 -07:00
.male
db "♂…MALE@"
2018-06-24 07:09:41 -07:00
.female
db "♀…FEMALE@"
2018-06-24 07:09:41 -07:00
.unknown
db "…UNKNOWN@"
2018-06-24 07:09:41 -07:00
PartyMenuCheckEgg:
2018-01-23 14:39:09 -08:00
ld a, LOW(wPartySpecies)
add b
ld e, a
2018-01-23 14:39:09 -08:00
ld a, HIGH(wPartySpecies)
adc 0
ld d, a
ld a, [de]
cp EGG
ret
2018-06-24 07:09:41 -07:00
GetPartyMenuQualityIndexes:
2018-01-23 14:39:09 -08:00
ld a, [wPartyMenuActionText]
and $f0
2015-11-11 20:38:57 -08:00
jr nz, .skip
2018-01-23 14:39:09 -08:00
ld a, [wPartyMenuActionText]
and $f
ld e, a
ld d, 0
2018-01-10 23:54:07 -08:00
ld hl, PartyMenuQualityPointers
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ret
2015-11-11 20:38:57 -08:00
.skip
2018-01-10 23:54:07 -08:00
ld hl, PartyMenuQualityPointers.Default
ret
2018-01-10 23:54:07 -08:00
INCLUDE "data/party_menu_qualities.asm"
2018-06-24 07:09:41 -07:00
InitPartyMenuGFX:
2018-01-23 14:39:09 -08:00
ld hl, wPartyCount
ld a, [hli]
and a
ret z
ld c, a
xor a
ldh [hObjectStructIndex], a
2015-11-18 20:16:25 -08:00
.loop
push bc
push hl
2016-03-01 19:31:21 -08:00
ld hl, LoadMenuMonIcon
ld a, BANK(LoadMenuMonIcon)
ld e, MONICON_PARTYMENU
rst FarCall
ldh a, [hObjectStructIndex]
inc a
ldh [hObjectStructIndex], a
pop hl
pop bc
dec c
2015-11-18 20:16:25 -08:00
jr nz, .loop
2017-12-24 09:47:30 -08:00
callfar PlaySpriteAnimations
ret
2015-11-11 20:38:57 -08:00
2018-06-24 07:09:41 -07:00
InitPartyMenuWithCancel:
2015-11-18 20:16:25 -08:00
; with cancel
xor a
2015-11-18 20:16:25 -08:00
ld [wSwitchMon], a
2020-06-20 08:56:18 -07:00
ld de, PartyMenu2DMenuData
call Load2DMenuData
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
inc a
ld [w2DMenuNumRows], a ; list length
dec a
ld b, a
2015-11-18 20:16:25 -08:00
ld a, [wPartyMenuCursor]
and a
2015-11-18 20:16:25 -08:00
jr z, .skip
inc b
cp b
2015-11-18 20:16:25 -08:00
jr c, .done
2015-11-18 20:16:25 -08:00
.skip
ld a, 1
2015-11-18 20:16:25 -08:00
.done
2015-12-15 15:59:49 -08:00
ld [wMenuCursorY], a
2015-11-18 20:16:25 -08:00
ld a, A_BUTTON | B_BUTTON
ld [wMenuJoypadFilter], a
ret
InitPartyMenuNoCancel:
2015-11-18 20:16:25 -08:00
; no cancel
2020-06-20 08:56:18 -07:00
ld de, PartyMenu2DMenuData
call Load2DMenuData
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
ld [w2DMenuNumRows], a ; list length
ld b, a
2015-11-18 20:16:25 -08:00
ld a, [wPartyMenuCursor]
and a
2015-11-18 20:16:25 -08:00
jr z, .skip
inc b
cp b
2015-11-18 20:16:25 -08:00
jr c, .done
.skip
ld a, 1
2015-11-18 20:16:25 -08:00
.done
2015-12-15 15:59:49 -08:00
ld [wMenuCursorY], a
2015-11-18 20:16:25 -08:00
ld a, A_BUTTON | B_BUTTON
ld [wMenuJoypadFilter], a
ret
2020-06-20 08:56:18 -07:00
PartyMenu2DMenuData:
db 1, 0 ; cursor start y, x
db 0, 1 ; rows, columns
db $60, $00 ; flags
dn 2, 0 ; cursor offset
db 0 ; accepted buttons
PartyMenuSelect:
; sets carry if exitted menu.
2015-12-15 15:59:49 -08:00
call StaticMenuJoypad
2015-12-17 19:31:16 -08:00
call PlaceHollowCursor
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
inc a
ld b, a
2015-12-15 15:59:49 -08:00
ld a, [wMenuCursorY] ; menu selection?
cp b
jr z, .exitmenu ; CANCEL
2015-11-18 20:16:25 -08:00
ld [wPartyMenuCursor], a
ldh a, [hJoyLast]
ld b, a
2016-03-01 19:31:21 -08:00
bit B_BUTTON_F, b
jr nz, .exitmenu ; B button
2015-12-15 15:59:49 -08:00
ld a, [wMenuCursorY]
dec a
2018-01-23 14:39:09 -08:00
ld [wCurPartyMon], a
ld c, a
ld b, 0
2018-01-23 14:39:09 -08:00
ld hl, wPartySpecies
add hl, bc
ld a, [hl]
2018-01-23 14:39:09 -08:00
ld [wCurPartySpecies], a
ld de, SFX_READ_TEXT_2
call PlaySFX
call WaitSFX
and a
ret
.exitmenu
ld de, SFX_READ_TEXT_2
call PlaySFX
call WaitSFX
scf
ret
PlacePartyMenuText:
hlcoord 0, 14
2015-11-11 20:38:57 -08:00
lb bc, 2, 18
call Textbox1bpp
2018-01-23 14:39:09 -08:00
ld a, [wPartyCount]
and a
jr nz, .haspokemon
ld de, YouHaveNoPKMNString
jr .gotstring
2018-06-24 07:09:41 -07:00
.haspokemon
2018-01-23 14:39:09 -08:00
ld a, [wPartyMenuActionText]
and $f ; drop high nibble
ld hl, PartyMenuStrings
ld e, a
ld d, 0
add hl, de
add hl, de
ld a, [hli]
ld d, [hl]
ld e, a
2018-06-24 07:09:41 -07:00
.gotstring
2018-01-23 14:39:09 -08:00
ld a, [wOptions]
push af
2018-04-05 08:44:02 -07:00
set NO_TEXT_SCROLL, a
2018-01-23 14:39:09 -08:00
ld [wOptions], a
hlcoord 1, 16 ; Coord
call PlaceString
pop af
2018-01-23 14:39:09 -08:00
ld [wOptions], a
ret
PartyMenuStrings:
dw ChooseAMonString
dw UseOnWhichPKMNString
dw WhichPKMNString
dw TeachWhichPKMNString
dw MoveToWhereString
dw UseOnWhichPKMNString
dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString
dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString
dw ToWhichPKMNString
ChooseAMonString:
db "Choose a #MON.@"
UseOnWhichPKMNString:
db "Use on which <PK><MN>?@"
WhichPKMNString:
db "Which <PK><MN>?@"
TeachWhichPKMNString:
db "Teach which <PK><MN>?@"
MoveToWhereString:
db "Move to where?@"
ChooseAFemalePKMNString: ; unreferenced
db "Choose a ♀<PK><MN>.@"
ChooseAMalePKMNString: ; unreferenced
db "Choose a ♂<PK><MN>.@"
ToWhichPKMNString:
db "To which <PK><MN>?@"
YouHaveNoPKMNString:
db "You have no <PK><MN>!@"
2018-06-24 07:09:41 -07:00
PrintPartyMenuActionText:
2018-01-23 14:39:09 -08:00
ld a, [wCurPartyMon]
ld hl, wPartyMonNicknames
call GetNickname
2018-01-23 14:39:09 -08:00
ld a, [wPartyMenuActionText]
and $f
ld hl, .MenuActionTexts
call .PrintText
ret
2018-06-24 07:09:41 -07:00
.MenuActionTexts:
2018-01-25 19:19:24 -08:00
; entries correspond to PARTYMENUTEXT_* constants
dw .CuredOfPoisonText
dw .BurnWasHealedText
dw .WasDefrostedText
dw .WokeUpText
dw .RidOfParalysisText
dw .RecoveredSomeHPText
dw .HealthReturnedText
dw .RevitalizedText
dw .GrewToLevelText
dw .CameToItsSensesText
.RecoveredSomeHPText:
text_far _RecoveredSomeHPText
text_end
.CuredOfPoisonText:
text_far _CuredOfPoisonText
text_end
.RidOfParalysisText:
text_far _RidOfParalysisText
text_end
.BurnWasHealedText:
text_far _BurnWasHealedText
text_end
.WasDefrostedText:
text_far _WasDefrostedText
text_end
.WokeUpText:
text_far _WokeUpText
text_end
.HealthReturnedText:
text_far _HealthReturnedText
text_end
.RevitalizedText:
text_far _RevitalizedText
text_end
.GrewToLevelText:
text_far _GrewToLevelText
text_end
.CameToItsSensesText:
text_far _CameToItsSensesText
text_end
2018-06-24 07:09:41 -07:00
.PrintText:
ld e, a
ld d, 0
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
2018-01-23 14:39:09 -08:00
ld a, [wOptions]
push af
set NO_TEXT_SCROLL, a
2018-01-23 14:39:09 -08:00
ld [wOptions], a
call PrintText1bpp
pop af
2018-01-23 14:39:09 -08:00
ld [wOptions], a
ret