mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
224 lines
4.3 KiB
NASM
224 lines
4.3 KiB
NASM
PrintBlackboardLinkCableText:
|
|
call EnableAutoTextBoxDrawing
|
|
ld a, $1
|
|
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
|
ld a, [wHiddenObjectFunctionArgument]
|
|
call PrintPredefTextID
|
|
ret
|
|
|
|
LinkCableHelp::
|
|
text_asm
|
|
call SaveScreenTilesToBuffer1
|
|
ld hl, LinkCableHelpText1
|
|
call PrintText
|
|
xor a
|
|
ld [wMenuItemOffset], a ; not used
|
|
ld [wCurrentMenuItem], a
|
|
ld [wLastMenuItem], a
|
|
ld a, A_BUTTON | B_BUTTON
|
|
ld [wMenuWatchedKeys], a
|
|
ld a, 3
|
|
ld [wMaxMenuItem], a
|
|
ld a, 2
|
|
ld [wTopMenuItemY], a
|
|
ld a, 1
|
|
ld [wTopMenuItemX], a
|
|
.linkHelpLoop
|
|
ld hl, wStatusFlags5
|
|
set BIT_NO_TEXT_DELAY, [hl]
|
|
hlcoord 0, 0
|
|
ld b, 8
|
|
ld c, 13
|
|
call TextBoxBorder
|
|
hlcoord 2, 2
|
|
ld de, HowToLinkText
|
|
call PlaceString
|
|
ld hl, LinkCableHelpText2
|
|
call PrintText
|
|
call HandleMenuInput
|
|
bit BIT_B_BUTTON, a
|
|
jr nz, .exit
|
|
ld a, [wCurrentMenuItem]
|
|
cp 3 ; pressed a on "STOP READING"
|
|
jr z, .exit
|
|
ld hl, wStatusFlags5
|
|
res BIT_NO_TEXT_DELAY, [hl]
|
|
ld hl, LinkCableInfoTexts
|
|
add a
|
|
ld d, 0
|
|
ld e, a
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call PrintText
|
|
jp .linkHelpLoop
|
|
.exit
|
|
ld hl, wStatusFlags5
|
|
res BIT_NO_TEXT_DELAY, [hl]
|
|
call LoadScreenTilesFromBuffer1
|
|
jp TextScriptEnd
|
|
|
|
LinkCableHelpText1:
|
|
text_far _LinkCableHelpText1
|
|
text_end
|
|
|
|
LinkCableHelpText2:
|
|
text_far _LinkCableHelpText2
|
|
text_end
|
|
|
|
HowToLinkText:
|
|
db "HOW TO LINK"
|
|
next "COLOSSEUM"
|
|
next "TRADE CENTER"
|
|
next "STOP READING@"
|
|
|
|
LinkCableInfoTexts:
|
|
dw LinkCableInfoText1
|
|
dw LinkCableInfoText2
|
|
dw LinkCableInfoText3
|
|
|
|
LinkCableInfoText1:
|
|
text_far _LinkCableInfoText1
|
|
text_end
|
|
|
|
LinkCableInfoText2:
|
|
text_far _LinkCableInfoText2
|
|
text_end
|
|
|
|
LinkCableInfoText3:
|
|
text_far _LinkCableInfoText3
|
|
text_end
|
|
|
|
ViridianSchoolBlackboard::
|
|
text_asm
|
|
call SaveScreenTilesToBuffer1
|
|
ld hl, ViridianSchoolBlackboardText1
|
|
call PrintText
|
|
xor a
|
|
ld [wMenuItemOffset], a
|
|
ld [wCurrentMenuItem], a
|
|
ld [wLastMenuItem], a
|
|
ld a, D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON
|
|
ld [wMenuWatchedKeys], a
|
|
ld a, 2
|
|
ld [wMaxMenuItem], a
|
|
ld a, 2
|
|
ld [wTopMenuItemY], a
|
|
ld a, 1
|
|
ld [wTopMenuItemX], a
|
|
.blackboardLoop
|
|
ld hl, wStatusFlags5
|
|
set BIT_NO_TEXT_DELAY, [hl]
|
|
hlcoord 0, 0
|
|
lb bc, 6, 10
|
|
call TextBoxBorder
|
|
hlcoord 1, 2
|
|
ld de, StatusAilmentText1
|
|
call PlaceString
|
|
hlcoord 6, 2
|
|
ld de, StatusAilmentText2
|
|
call PlaceString
|
|
ld hl, ViridianSchoolBlackboardText2
|
|
call PrintText
|
|
call HandleMenuInput ; pressing up and down is handled in here
|
|
bit BIT_B_BUTTON, a ; pressed b
|
|
jr nz, .exitBlackboard
|
|
bit BIT_D_RIGHT, a
|
|
jr z, .didNotPressRight
|
|
; move cursor to right column
|
|
ld a, 2
|
|
ld [wMaxMenuItem], a
|
|
ld a, 2
|
|
ld [wTopMenuItemY], a
|
|
ld a, 6
|
|
ld [wTopMenuItemX], a
|
|
ld a, 3 ; in the the right column, use an offset to prevent overlap
|
|
ld [wMenuItemOffset], a
|
|
jr .blackboardLoop
|
|
.didNotPressRight
|
|
bit BIT_D_LEFT, a
|
|
jr z, .didNotPressLeftOrRight
|
|
; move cursor to left column
|
|
ld a, 2
|
|
ld [wMaxMenuItem], a
|
|
ld a, 2
|
|
ld [wTopMenuItemY], a
|
|
ld a, 1
|
|
ld [wTopMenuItemX], a
|
|
xor a
|
|
ld [wMenuItemOffset], a
|
|
jr .blackboardLoop
|
|
.didNotPressLeftOrRight
|
|
ld a, [wCurrentMenuItem]
|
|
ld b, a
|
|
ld a, [wMenuItemOffset]
|
|
add b
|
|
cp 5 ; cursor is pointing to "QUIT"
|
|
jr z, .exitBlackboard
|
|
; we must have pressed a on a status condition
|
|
; so print the text
|
|
ld hl, wStatusFlags5
|
|
res BIT_NO_TEXT_DELAY, [hl]
|
|
ld hl, ViridianBlackboardStatusPointers
|
|
add a
|
|
ld d, 0
|
|
ld e, a
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call PrintText
|
|
jp .blackboardLoop
|
|
.exitBlackboard
|
|
ld hl, wStatusFlags5
|
|
res BIT_NO_TEXT_DELAY, [hl]
|
|
call LoadScreenTilesFromBuffer1
|
|
jp TextScriptEnd
|
|
|
|
ViridianSchoolBlackboardText1:
|
|
text_far _ViridianSchoolBlackboardText1
|
|
text_end
|
|
|
|
ViridianSchoolBlackboardText2:
|
|
text_far _ViridianSchoolBlackboardText2
|
|
text_end
|
|
|
|
StatusAilmentText1:
|
|
db " SLP"
|
|
next " PSN"
|
|
next " PAR@"
|
|
|
|
StatusAilmentText2:
|
|
db " BRN"
|
|
next " FRZ"
|
|
next " QUIT@"
|
|
|
|
db "@" ; unused
|
|
|
|
ViridianBlackboardStatusPointers:
|
|
dw ViridianBlackboardSleepText
|
|
dw ViridianBlackboardPoisonText
|
|
dw ViridianBlackboardPrlzText
|
|
dw ViridianBlackboardBurnText
|
|
dw ViridianBlackboardFrozenText
|
|
|
|
ViridianBlackboardSleepText:
|
|
text_far _ViridianBlackboardSleepText
|
|
text_end
|
|
|
|
ViridianBlackboardPoisonText:
|
|
text_far _ViridianBlackboardPoisonText
|
|
text_end
|
|
|
|
ViridianBlackboardPrlzText:
|
|
text_far _ViridianBlackboardPrlzText
|
|
text_end
|
|
|
|
ViridianBlackboardBurnText:
|
|
text_far _ViridianBlackboardBurnText
|
|
text_end
|
|
|
|
ViridianBlackboardFrozenText:
|
|
text_far _ViridianBlackboardFrozenText
|
|
text_end
|