You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
Use overworld textbox in text printing functions, differentiating between 1bpp and 2bpp text (#10)
This commit is contained in:
@@ -161,7 +161,7 @@ FarCopyRadioText::
|
||||
BattleTextbox::
|
||||
; Open a textbox and print text at hl.
|
||||
push hl
|
||||
call SpeechTextbox
|
||||
call SpeechTextbox1bpp
|
||||
call UpdateSprites
|
||||
call ApplyTilemap
|
||||
pop hl
|
||||
|
10
home/map.asm
10
home/map.asm
@@ -1012,7 +1012,9 @@ MapTextbox::
|
||||
rst Bankswitch
|
||||
|
||||
push hl
|
||||
call SpeechTextbox
|
||||
call ClearTextbox
|
||||
lda_coord 17, 17
|
||||
ldcoord_a 18, 17
|
||||
call SafeUpdateSprites
|
||||
ld a, 1
|
||||
ldh [hOAMUpdate], a
|
||||
@@ -1900,7 +1902,6 @@ CloseSubmenu::
|
||||
call ReloadTilesetAndPalettes
|
||||
call UpdateSprites
|
||||
call Call_ExitMenu
|
||||
call GSReloadPalettes
|
||||
jr FinishExitMenu
|
||||
|
||||
ExitAllMenus::
|
||||
@@ -1908,7 +1909,6 @@ ExitAllMenus::
|
||||
call Call_ExitMenu
|
||||
call ReloadTilesetAndPalettes
|
||||
call UpdateSprites
|
||||
call GSReloadPalettes
|
||||
FinishExitMenu::
|
||||
ld b, CGB_MAPPALS
|
||||
call GetCGBLayout
|
||||
@@ -1924,9 +1924,7 @@ ReturnToMapWithSpeechTextbox::
|
||||
call ClearBGPalettes
|
||||
call ClearSprites
|
||||
call ReloadTilesetAndPalettes
|
||||
hlcoord 0, 12
|
||||
lb bc, 4, 18
|
||||
call Textbox
|
||||
call SpeechTextbox1bpp
|
||||
ld hl, wVramState
|
||||
set 0, [hl]
|
||||
call UpdateSprites
|
||||
|
@@ -209,7 +209,12 @@ MenuBox::
|
||||
call GetMenuBoxDims
|
||||
dec b
|
||||
dec c
|
||||
jp Textbox
|
||||
ld a, [wMenuBoxUse2bppFrame]
|
||||
and a
|
||||
jp z, Textbox1bpp
|
||||
ld d, h
|
||||
ld e, l
|
||||
jp Textbox2bpp
|
||||
|
||||
GetMenuTextStartCoord::
|
||||
ld a, [wMenuBorderTopCoord]
|
||||
@@ -329,7 +334,7 @@ MenuTextbox::
|
||||
push hl
|
||||
call LoadMenuTextbox
|
||||
pop hl
|
||||
jp PrintText
|
||||
jp PrintText1bpp
|
||||
|
||||
LoadMenuTextbox::
|
||||
ld hl, .MenuHeader
|
||||
@@ -734,7 +739,7 @@ GetMenuDataPointerTableEntry::
|
||||
add hl, de
|
||||
ret
|
||||
|
||||
ClearWindowData::
|
||||
ClearMenuAndWindowData::
|
||||
ld hl, wMenuMetadata
|
||||
call .ClearMenuData
|
||||
ld hl, wMenuHeader
|
||||
|
@@ -272,9 +272,6 @@ ClearVBank1::
|
||||
ldh [rVBK], a
|
||||
ret
|
||||
|
||||
GSReloadPalettes:: ; dummied out
|
||||
ret
|
||||
|
||||
ReloadSpritesNoPalettes::
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
|
@@ -15,7 +15,7 @@ PrintLetterDelay::
|
||||
|
||||
; non-scrolling text?
|
||||
ld a, [wTextboxFlags]
|
||||
bit NO_TEXT_DELAY_F, a
|
||||
bit TEXT_DELAY_F, a
|
||||
ret z
|
||||
|
||||
push hl
|
||||
@@ -102,14 +102,14 @@ PrintNum::
|
||||
homecall _PrintNum
|
||||
ret
|
||||
|
||||
FarPrintText::
|
||||
FarPrintText1bpp::
|
||||
ldh [hTempBank], a
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
rst Bankswitch
|
||||
|
||||
call PrintText
|
||||
call PrintText1bpp
|
||||
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
@@ -38,7 +38,7 @@ InitScrollingMenu::
|
||||
push de
|
||||
call Coord2Tile
|
||||
pop bc
|
||||
jp Textbox
|
||||
jp Textbox1bpp
|
||||
|
||||
JoyTextDelay_ForcehJoyDown::
|
||||
call DelayFrame
|
||||
|
@@ -40,7 +40,13 @@ ClearScreen::
|
||||
call ByteFill
|
||||
jr ClearTilemap
|
||||
|
||||
Textbox::
|
||||
SpeechTextbox1bpp::
|
||||
; Standard 1bpp textbox.
|
||||
hlcoord TEXTBOX_X, TEXTBOX_Y
|
||||
ld b, TEXTBOX_INNERH
|
||||
ld c, TEXTBOX_INNERW
|
||||
|
||||
Textbox1bpp::
|
||||
; Draw a text box at hl with room for b lines of c characters each.
|
||||
; Places a border around the textbox, then switches the palette to the
|
||||
; text black-and-white scheme.
|
||||
@@ -121,20 +127,18 @@ TextboxPalette::
|
||||
jr nz, .col
|
||||
ret
|
||||
|
||||
SpeechTextbox::
|
||||
; Standard textbox.
|
||||
hlcoord TEXTBOX_X, TEXTBOX_Y
|
||||
ld b, TEXTBOX_INNERH
|
||||
ld c, TEXTBOX_INNERW
|
||||
jp Textbox
|
||||
; decoord TEXTBOX_X, TEXTBOX_Y
|
||||
; lb bc, 4, SCREEN_WIDTH - 2
|
||||
; push bc
|
||||
; push de
|
||||
; farcall OverworldTextbox
|
||||
; pop hl
|
||||
; pop bc
|
||||
; jp TextboxPalette
|
||||
SpeechTextbox2bpp::
|
||||
; Standard 2bpp textbox (with overworld frame).
|
||||
decoord TEXTBOX_X, TEXTBOX_Y
|
||||
lb bc, 4, SCREEN_WIDTH - 2
|
||||
|
||||
Textbox2bpp::
|
||||
push bc
|
||||
push de
|
||||
farcall _OverworldTextbox
|
||||
pop hl
|
||||
pop bc
|
||||
jp TextboxPalette
|
||||
|
||||
RadioTerminator::
|
||||
ld hl, .stop
|
||||
@@ -143,29 +147,35 @@ RadioTerminator::
|
||||
.stop:
|
||||
text_end
|
||||
|
||||
PrintText::
|
||||
call SetUpTextbox
|
||||
ClearTextbox:
|
||||
hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
|
||||
lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW
|
||||
jp ClearBox
|
||||
|
||||
PrintText1bpp::
|
||||
push hl
|
||||
call SpeechTextbox1bpp
|
||||
jr _PrintText
|
||||
|
||||
PrintText2bpp::
|
||||
push hl
|
||||
call SpeechTextbox2bpp
|
||||
|
||||
_PrintText:
|
||||
call UpdateSprites
|
||||
call ApplyTilemap
|
||||
pop hl
|
||||
; fallthrough
|
||||
|
||||
BuenaPrintText::
|
||||
push hl
|
||||
hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
|
||||
lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW
|
||||
call ClearBox
|
||||
call ClearTextbox
|
||||
pop hl
|
||||
; fallthrough
|
||||
|
||||
PrintTextboxText::
|
||||
bccoord TEXTBOX_INNERX, TEXTBOX_INNERY
|
||||
call PlaceHLTextAtBC
|
||||
ret
|
||||
|
||||
SetUpTextbox::
|
||||
push hl
|
||||
call SpeechTextbox
|
||||
call UpdateSprites
|
||||
call ApplyTilemap
|
||||
pop hl
|
||||
call PrintHLTextAtBC
|
||||
ret
|
||||
|
||||
PlaceString::
|
||||
@@ -415,9 +425,7 @@ Paragraph::
|
||||
.linkbattle
|
||||
call Text_WaitBGMap
|
||||
call PromptButton
|
||||
hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
|
||||
lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW
|
||||
call ClearBox
|
||||
call ClearTextbox
|
||||
call UnloadBlinkingCursor
|
||||
ld c, 20
|
||||
call DelayFrames
|
||||
@@ -583,10 +591,10 @@ PokeFluteTerminator::
|
||||
.stop:
|
||||
text_end
|
||||
|
||||
PlaceHLTextAtBC::
|
||||
PrintHLTextAtBC::
|
||||
ld a, [wTextboxFlags]
|
||||
push af
|
||||
set NO_TEXT_DELAY_F, a
|
||||
set TEXT_DELAY_F, a
|
||||
ld [wTextboxFlags], a
|
||||
|
||||
call DoTextUntilTerminator
|
||||
@@ -738,7 +746,7 @@ TextCommand_BOX::
|
||||
push hl
|
||||
ld h, d
|
||||
ld l, e
|
||||
call Textbox
|
||||
call Textbox1bpp
|
||||
pop hl
|
||||
ret
|
||||
|
||||
|
@@ -225,7 +225,7 @@ PrintWinLossText::
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
call GetMapScriptsBank
|
||||
call FarPrintText
|
||||
call FarPrintText1bpp
|
||||
call WaitBGMap
|
||||
call WaitPressAorB_BlinkCursor
|
||||
ret
|
||||
|
@@ -1,13 +1,14 @@
|
||||
RefreshScreen::
|
||||
call ClearWindowData
|
||||
call ClearMenuAndWindowData
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
ld a, BANK(ReanchorBGMap_NoOAMUpdate) ; aka BANK(LoadFonts_NoOAMUpdate)
|
||||
ld a, BANK(ReanchorBGMap_NoOAMUpdate) ; aka BANK(LoadFont_NoOAMUpdate)
|
||||
rst Bankswitch
|
||||
|
||||
call ReanchorBGMap_NoOAMUpdate
|
||||
call _OpenAndCloseMenu_HDMATransferTilemapAndAttrmap
|
||||
call LoadFonts_NoOAMUpdate
|
||||
ld a, $90
|
||||
ldh [hWY], a
|
||||
|
||||
pop af
|
||||
rst Bankswitch
|
||||
@@ -19,16 +20,7 @@ CloseText::
|
||||
ld a, $1
|
||||
ldh [hOAMUpdate], a
|
||||
|
||||
call .CloseText
|
||||
|
||||
pop af
|
||||
ldh [hOAMUpdate], a
|
||||
ld hl, wVramState
|
||||
res 6, [hl]
|
||||
ret
|
||||
|
||||
.CloseText:
|
||||
call ClearWindowData
|
||||
call ClearMenuAndWindowData
|
||||
xor a
|
||||
ldh [hBGMapMode], a
|
||||
call OverworldTextModeSwitch
|
||||
@@ -41,20 +33,43 @@ CloseText::
|
||||
call UpdatePlayerSprite
|
||||
xor a
|
||||
ldh [hBGMapMode], a
|
||||
call LoadOverworldFontAndFrame
|
||||
|
||||
pop af
|
||||
ldh [hOAMUpdate], a
|
||||
ld hl, wVramState
|
||||
res 6, [hl]
|
||||
ret
|
||||
|
||||
OpenText::
|
||||
call ClearWindowData
|
||||
OpenText2bpp::
|
||||
call ClearMenuAndWindowData
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
ld a, BANK(ReanchorBGMap_NoOAMUpdate) ; aka BANK(LoadFonts_NoOAMUpdate)
|
||||
ld a, BANK(ReanchorBGMap_NoOAMUpdate)
|
||||
rst Bankswitch
|
||||
|
||||
; assumes that the overworld 2bpp font and frame are loaded when calling this
|
||||
call ReanchorBGMap_NoOAMUpdate ; clear bgmap
|
||||
call SpeechTextbox2bpp
|
||||
call _OpenAndCloseMenu_HDMATransferTilemapAndAttrmap ; anchor bgmap
|
||||
ld a, $90
|
||||
ldh [hWY], a
|
||||
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
||||
ret
|
||||
|
||||
OpenText1bpp::
|
||||
call ClearMenuAndWindowData
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
ld a, BANK(ReanchorBGMap_NoOAMUpdate) ; aka BANK(LoadFont_NoOAMUpdate)
|
||||
rst Bankswitch
|
||||
|
||||
call ReanchorBGMap_NoOAMUpdate ; clear bgmap
|
||||
call SpeechTextbox
|
||||
call SpeechTextbox1bpp
|
||||
call _OpenAndCloseMenu_HDMATransferTilemapAndAttrmap ; anchor bgmap
|
||||
call LoadFonts_NoOAMUpdate ; load font
|
||||
call LoadFont_NoOAMUpdate ; load 1bpp font and frame, hide window
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
||||
|
Reference in New Issue
Block a user