Merge pull request #335 from PikalaxALT/render_text

Port render_text.s from Diamond, decompile diffs
This commit is contained in:
Adrienn Tindall 2024-09-23 18:57:23 -04:00 committed by GitHub
commit a1474bf95e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
98 changed files with 857 additions and 1779 deletions

View File

@ -177,11 +177,11 @@ _022386D4:
lsr r1, r1, #0x10
bl sub_02055198
mov r0, #1
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _02238854 ; =FrontierMap_VBlank
add r1, r4, #0
bl Main_SetVBlankIntrCB
@ -315,9 +315,9 @@ FrontierMap_Free: ; 0x0223885C
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
bl sub_0203A914
mov r1, #5
mov r2, #2

View File

@ -1,8 +1,8 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public GetFontAttribute
.public NewMsgDataFromNarc

View File

@ -8,8 +8,8 @@
.public ListMenuGetScrollAndRow
.public ListMenuGetTemplateField
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public PlaySE
.public GfGfxLoader_LoadCharData

View File

@ -1,12 +1,12 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_020027F0
.public TextPrinter_SetDownArrowBaseTile
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B8C
.public sub_02002BA8
.public sub_02002C04
.public sub_02002C20
.public sub_02002C40
.public TextFlags_SetCanTouchSpeedUpPrint
.public TextFlags_SetAlternateDownArrow
.public TextFlags_GetIsTouchSpeedingUpPrint
.public TextFlags_SetFastForwardTouchButtonHitbox
.public TextFlags_UnsetFastForwardTouchButtonHitbox
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,6 +1,6 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public LoadFontPal0
.public PlaySE
.public OverlayManager_CreateAndGetData

View File

@ -3,7 +3,7 @@
.public RegisterMainOverlay
.public CopyU16StringArrayN
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,9 +1,9 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_020027F0
.public TextPrinter_SetDownArrowBaseTile
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public PaletteData_Init

View File

@ -1,9 +1,9 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002BC4
.public sub_02002BD4
.public sub_02002BE4
.public sub_02002BF4
.public TextFlags_GetHasSpedUpInput
.public TextFlags_ResetHasSpedUpInput
.public TextFlags_GetHasContinuedInput
.public TextFlags_ResetHasContinuedInput
.public FontID_String_GetWidth
.public PaletteData_LoadPalette
.public PaletteData_LoadNarc

View File

@ -1,8 +1,8 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public LoadFontPal1
.public sub_02004B10

View File

@ -1,6 +1,6 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002B8C
.public sub_02002C20
.public TextFlags_SetCanTouchSpeedUpPrint
.public TextFlags_SetFastForwardTouchButtonHitbox
.public FontID_String_GetWidth
.public LoadFontPal0
.public LoadFontPal1

View File

@ -1,8 +1,8 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public LoadFontPal1
.public BlendPalette

View File

@ -1,6 +1,6 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public FontID_String_AllCharsValid
.public FontID_String_GetWidthMultiline

View File

@ -1,6 +1,6 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,9 +1,9 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public sub_02002C04
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public TextFlags_GetIsTouchSpeedingUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -8,8 +8,8 @@
.public Handle2dMenuInput_DeleteOnFinish
.public Clear2dMenuWindowAndDelete
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -5,8 +5,8 @@
.public DestroyListMenu
.public ListMenuGetScrollAndRow
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public LoadFontPal0
.public LoadFontPal1

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -6,8 +6,8 @@
.public Std_CreateYesNoMenu
.public Handle2dMenuInput_DeleteOnFinish
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public LoadFontPal0

View File

@ -2,7 +2,7 @@
#pragma once
.public Handle2dMenuInput_DeleteOnFinish
.public CopyU16StringArrayN
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,6 +1,6 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -5,7 +5,7 @@
.public ListMenuInit
.public ListMenu_ProcessInput
.public DestroyListMenu
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -5,8 +5,8 @@
.public ListMenu_ProcessInput
.public DestroyListMenu
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public LoadFontPal1
.public BlendPalette

View File

@ -15,8 +15,8 @@
.public Handle2dMenuInput_DeleteOnFinish
.public Clear2dMenuWindowAndDelete
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public PaletteData_LoadNarc
.public PaletteData_FillPaletteInBuffer

View File

@ -1,8 +1,8 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public PaletteData_Init
.public PaletteData_Free
.public PaletteData_AllocBuffers

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public Delete2dMenu
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,6 +1,6 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public LoadFontPal0
.public LoadFontPal1
.public PaletteData_Init

View File

@ -1,8 +1,8 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002C60
.public sub_02002C90
.public TextFlags_BeginAutoScroll
.public TextFlags_EndAutoScroll
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,8 +1,8 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_String_GetWidth
.public PaletteData_Init
.public PaletteData_Free

View File

@ -1,6 +1,6 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public PaletteData_Init

View File

@ -2,8 +2,8 @@
#pragma once
.public CopyU16StringArrayN
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public LoadFontPal0

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public FontID_String_GetWidth

View File

@ -1,42 +0,0 @@
#include <nitro/fs/overlay.h>
#pragma once
.public RenderText
.public sub_020027F0
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public sub_02002BA8
.public sub_02002BC4
.public sub_02002BD4
.public sub_02002BE4
.public sub_02002BF4
.public sub_02002C04
.public sub_02002C20
.public sub_02002C40
.public sub_02002C60
.public sub_02002C90
.public FontID_TryLoadGlyph
.public FontID_FlatArray_GetWidthFirstLine
.public GetFontAttribute
.public PlaySE
.public sub_0200EB68
.public BgCommitTilemapBufferToVram
.public FillBgTilemapRect
.public CopyWindowToVram
.public FillWindowPixelBuffer
.public CopyGlyphToWindow
.public ScrollWindow
.public GetWindowBgId
.public GetWindowWidth
.public GetWindowHeight
.public GetWindowX
.public GetWindowY
.public MsgArray_SkipControlCode
.public MsgArray_GetControlCode
.public MsgArray_ControlCodeGetField
.public GenerateFontHalfRowLookupTable
.public RenderScreenFocusIndicatorTile
.public TouchscreenHitbox_TouchHeldIsIn
.public TouchscreenHitbox_TouchNewIsIn
.public GF_AssertFail
.public gSystem

View File

@ -1,6 +1,6 @@
#include <nitro/fs/overlay.h>
#pragma once
.public sub_020027F0
.public TextPrinter_SetDownArrowBaseTile
.public CreateSysTaskAndEnvironment
.public DestroySysTaskAndEnvironment
.public AllocAndReadWholeNarcMemberByIdPair

View File

@ -1,8 +1,8 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B50
.public sub_02002B8C
.public TextFlags_SetAutoScrollParam
.public TextFlags_SetCanTouchSpeedUpPrint
.public LoadFontPal0
.public LoadFontPal1
.public LoadUserFrameGfx2

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public TextFlags_SetCanABSpeedUpPrint
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public FontID_Alloc
.public FontID_Release
.public PaletteData_Init

View File

@ -1,7 +1,7 @@
#include <nitro/fs/overlay.h>
#pragma once
.public RegisterMainOverlay
.public sub_02002B8C
.public TextFlags_SetCanTouchSpeedUpPrint
.public LoadFontPal0
.public OverlayManager_CreateAndGetData
.public OverlayManager_GetData

View File

@ -558,9 +558,9 @@ ov01_021F4360: ; 0x021F4360
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r4, #0
ldr r1, [r4]
add r0, #0x1c

View File

@ -1149,9 +1149,9 @@ _0225476A:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _022547D0 ; =ov03_022598A0
mov r3, #0
ldr r2, [r0]

View File

@ -16950,7 +16950,7 @@ _021EFB18:
add r0, #0x58
bl CopyWindowToVram
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r4, #0
bl ov101_021F0B84
mov r0, #1
@ -17593,9 +17593,9 @@ _021F001A:
bl ov101_021F1FF4
_021F0026:
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _021F0038 ; =ov101_021F8400
bl sub_02002C20
bl TextFlags_SetFastForwardTouchButtonHitbox
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
@ -17620,8 +17620,8 @@ ov101_021F003C: ; 0x021F003C
add r0, #0x58
bl CopyWindowToVram
mov r0, #0
bl sub_02002B8C
bl sub_02002C40
bl TextFlags_SetCanTouchSpeedUpPrint
bl TextFlags_UnsetFastForwardTouchButtonHitbox
add r0, r4, #0
mov r1, #0
bl ov101_021F0464
@ -18273,7 +18273,7 @@ _021F0586:
cmp r6, #4
blt _021F0586
ldr r0, _021F05C8 ; =0x000003E1
bl sub_020027F0
bl TextPrinter_SetDownArrowBaseTile
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
@ -18344,7 +18344,7 @@ _021F0628:
add r6, #0x44
strb r0, [r6]
mov r0, #1
bl sub_02002BA8
bl TextFlags_SetAlternateDownArrow
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
pop {r4, r5, r6, pc}
@ -18373,7 +18373,7 @@ _021F0660:
ldr r0, [r6, #0x14]
bl DestroyMsgData
mov r0, #0
bl sub_02002BA8
bl TextFlags_SetAlternateDownArrow
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
pop {r4, r5, r6, pc}
@ -22037,7 +22037,7 @@ ov101_021F2220: ; 0x021F2220
mov r0, #0
pop {r4, pc}
_021F223A:
bl sub_02002C04
bl TextFlags_GetIsTouchSpeedingUpPrint
add r4, #0xaa
strb r0, [r4]
mov r0, #1

View File

@ -617,7 +617,7 @@ ov103_021ECE18: ; 0x021ECE18
lsl r1, r1, #4
str r0, [r4, r1]
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
pop {r4, pc}
.balign 4, 0
thumb_func_end ov103_021ECE18
@ -627,7 +627,7 @@ ov103_021ECE54: ; 0x021ECE54
push {r4, lr}
add r4, r0, #0
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #0x23
lsl r0, r0, #4
ldr r0, [r4, r0]

View File

@ -768,7 +768,7 @@ _021E5E46:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _021E5F00 ; =ov111_021E5DF0
add r1, r4, #0
bl Main_SetVBlankIntrCB

View File

@ -3999,7 +3999,7 @@ ov112_021E7768: ; 0x021E7768
add r0, r4, #0
bl ov112_021EA4F4
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r4, #0
bl ov112_021E9C98
ldr r0, _021E77D8 ; =ov112_021E79A8
@ -4173,7 +4173,7 @@ ov112_021E7910: ; 0x021E7910
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r4, #0
bl ov112_021E77E4
add r0, r5, #0

View File

@ -1109,9 +1109,9 @@ _022386C0:
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r4, #8]
mov r1, #3
bl WindowArray_Delete
@ -4950,19 +4950,19 @@ ov12_0223A620: ; 0x0223A620
beq _0223A648
_0223A634:
mov r0, #1
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
pop {r3, pc}
_0223A648:
mov r0, #3
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
pop {r3, pc}
.balign 4, 0
_0223A65C: .word 0x00000404

View File

@ -253,8 +253,8 @@ _022662C0:
_022662CA:
add r0, r4, #0
bl FreeToHeap
bl sub_02002BD4
bl sub_02002BF4
bl TextFlags_ResetHasSpedUpInput
bl TextFlags_ResetHasContinuedInput
ldr r0, _02266314 ; =ov12_02269954
ldr r2, _02266318 ; =0x0000D6D8
add r1, r6, #0
@ -7045,12 +7045,12 @@ _02269950: .word 0x00000694
ov12_02269954: ; 0x02269954
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
bl sub_02002BC4
bl TextFlags_GetHasSpedUpInput
add r6, r0, #0
bl sub_02002BE4
bl TextFlags_GetHasContinuedInput
add r7, r0, #0
bl sub_02002BD4
bl sub_02002BF4
bl TextFlags_ResetHasSpedUpInput
bl TextFlags_ResetHasContinuedInput
ldr r0, [r5]
bl BattleSystem_GetPaletteData
add r4, r0, #0

View File

@ -96,7 +96,7 @@ Bag_Init: ; 0x021F9380
add r0, r4, #0
bl ov15_021FE020
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r4, #0
bl ov15_021FE4C8
add r0, r4, #0
@ -11518,7 +11518,7 @@ _021FEF6C:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #9
lsl r0, r0, #6
ldr r0, [r5, r0]

View File

@ -4514,7 +4514,7 @@ ov27_0225C250: ; 0x0225C250
mov r1, #1
bl GfGfx_EngineBTogglePlanes
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r6, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@ -4561,7 +4561,7 @@ _0225C3C4:
ldr r0, [r7, r0]
bl SpriteList_Delete
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r7, #0
bl ov27_0225C930
mov r0, #4

View File

@ -90,9 +90,9 @@ ov31_0225D520: ; 0x0225D520
mov r1, #1
bl GfGfx_EngineBTogglePlanes
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _0225D608 ; =_0225EE40
bl sub_02002C20
bl TextFlags_SetFastForwardTouchButtonHitbox
add r0, r5, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@ -239,7 +239,7 @@ ov31_0225D710: ; 0x0225D710
bl SysTask_GetData
add r4, r0, #0
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r4, #0
bl ov31_0225DBA0
add r0, r4, #0

View File

@ -2501,9 +2501,9 @@ ov39_02228140: ; 0x02228140
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _02228304 ; =ov39_02228418
add r1, r5, #0
bl Main_SetVBlankIntrCB
@ -2659,9 +2659,9 @@ _02228394:
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
bl sub_0203A914
add r0, r5, #0
bl OverlayManager_FreeData

View File

@ -88,7 +88,7 @@ ov40_0222B6E0: ; 0x0222B6E0
add r0, r4, #0
bl ov40_0222C360
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _0222B928 ; =ov40_0222BD04
add r1, r4, #0
bl Main_SetVBlankIntrCB
@ -347,7 +347,7 @@ _0222B9FE:
ldr r0, [r5, #0x2c]
bl TouchHitboxController_Destroy
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r7, _0222BA88 ; =0x0000087C
mov r6, #0
add r4, r5, #0

View File

@ -2240,7 +2240,7 @@ _02246F76:
cmp r0, #1
bne _02246F9E
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _02247138 ; =0x00000568
mov r1, #0x1b
add r0, r4, r0
@ -2293,7 +2293,7 @@ _02246FD8:
mov r3, #0x30
bl ov41_0224AC08
add r0, r6, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]

View File

@ -494,7 +494,7 @@ _0222A2DE:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov43_0222A290
@ -507,7 +507,7 @@ ov43_0222A2F0: ; 0x0222A2F0
add r4, r1, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r4, #4]
ldr r1, [r5]
bl sub_02018410
@ -764,9 +764,9 @@ ov43_0222A48C: ; 0x0222A48C
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
pop {r4, r5, r6, pc}
nop
_0222A4FC: .word gSystem + 0x60
@ -1402,7 +1402,7 @@ ov43_0222A9F4: ; 0x0222A9F4
cmp r0, #1
bne _0222AA22
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r5, #0
add r0, #0x84
ldr r0, [r0]
@ -1422,7 +1422,7 @@ _0222AA22:
ldr r2, [r5, #0x78]
bl StringExpandPlaceholders
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #4
str r0, [sp]
mov r0, #2
@ -1457,7 +1457,7 @@ ov43_0222AA70: ; 0x0222AA70
cmp r0, #1
bne _0222AA98
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
@ -2794,7 +2794,7 @@ ov43_0222B4BC: ; 0x0222B4BC
add r2, r6, #0
bl StringExpandPlaceholders
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r3, #0
str r3, [sp]
ldr r0, [r5, #0x38]
@ -2836,8 +2836,8 @@ ov43_0222B534: ; 0x0222B534
cmp r0, #0
bne _0222B556
mov r0, #0
bl sub_02002B8C
bl sub_02002C04
bl TextFlags_SetCanTouchSpeedUpPrint
bl TextFlags_GetIsTouchSpeedingUpPrint
str r0, [r4]
mov r0, #1
pop {r4, pc}
@ -4923,7 +4923,7 @@ ov43_0222C550: ; 0x0222C550
add r2, r6, #0
bl StringExpandPlaceholders
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r3, #0
add r0, r5, #0
add r2, r5, #0
@ -4972,8 +4972,8 @@ ov43_0222C5D8: ; 0x0222C5D8
cmp r0, #0
bne _0222C5FC
mov r0, #0
bl sub_02002B8C
bl sub_02002C04
bl TextFlags_SetCanTouchSpeedUpPrint
bl TextFlags_GetIsTouchSpeedingUpPrint
str r0, [r4]
mov r0, #1
pop {r4, pc}

View File

@ -1171,7 +1171,7 @@ ov44_0222A758: ; 0x0222A758
_0222A780:
bl UnloadDwcOverlay
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
b _0222A792
_0222A78C:
bl ov00_021E6EBC
@ -10966,9 +10966,9 @@ _0222F5F8:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r3, #0
str r3, [sp]
str r4, [sp, #4]

View File

@ -2628,9 +2628,9 @@ _02259B02:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r5]
bl Save_PlayerData_GetProfileAddr
mov r1, #0xfd

View File

@ -1159,7 +1159,7 @@ _022385C4:
mov r0, #1
str r0, [r4, #0x40]
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #0xff
add r4, #0x47
strb r0, [r4]
@ -1182,7 +1182,7 @@ _022385F4:
ldr r0, _02238618 ; =0x000005DC
bl PlaySE
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #0xff
add r4, #0x47
strb r0, [r4]
@ -2063,7 +2063,7 @@ ov59_02238CFC: ; 0x02238CFC
cmp r4, #0
beq _02238D4E
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r3, #0
str r3, [sp]
str r4, [sp, #4]
@ -7443,7 +7443,7 @@ ov59_0223B68C: ; 0x0223B68C
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r3, [r6]
mov r0, #0
mov r1, #0x1b
@ -7504,7 +7504,7 @@ ov59_0223B6FC: ; 0x0223B6FC
ldr r0, [r4, #0x5c]
bl DestroyMsgData
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #4

View File

@ -197,7 +197,7 @@ ov68_021E5A58: ; 0x021E5A58
and r0, r1
str r0, [r2]
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r4]
ldr r0, [r0, #0xc]
bl sub_020183F0
@ -277,7 +277,7 @@ ov68_021E5B14: ; 0x021E5B14
ldr r1, [r4, r1]
bl sub_02018410
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
bl GF_DestroyVramTransferManager
mov r0, #0
add r1, r0, #0

View File

@ -106,9 +106,9 @@ _021E5960:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r5, #0
bl ov69_021E6138
mov r0, #1

View File

@ -1682,7 +1682,7 @@ _02238446:
_0223856E:
bl sub_02034D8C
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #0
str r0, [r5]
add sp, #0x10
@ -1888,7 +1888,7 @@ ov70_022386F4: ; 0x022386F4
bl ov70_0223887C
bl sub_02034DE0
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r4, #4]
bl FreeToHeap
ldr r0, [r4]

View File

@ -849,7 +849,7 @@ _02237E36:
mov r2, #1
bl sub_02004EC4
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r2, _02237F98 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
@ -1005,7 +1005,7 @@ NintendoWfc_Exit: ; 0x02238070
pop {r3, r4, r5, pc}
_02238086:
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #4
bl FontID_Release
ldr r0, [r4, #0x24]

View File

@ -24356,7 +24356,7 @@ ov74_022330D0: ; 0x022330D0
beq _0223310C
bl ov74_02232B18
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _0223312C ; =ov74_0223C9B8
lsl r1, r4, #2
ldr r0, [r0, r1]
@ -24384,7 +24384,7 @@ _0223310C:
cmp r0, #0
bne _02233126
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
pop {r3, r4, r5, pc}
_02233126:
@ -24405,7 +24405,7 @@ ov74_02233134: ; 0x02233134
beq _02233170
bl ov74_02232B18
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _02233194 ; =ov74_0223C9B8
lsl r1, r4, #2
ldr r0, [r0, r1]
@ -24435,7 +24435,7 @@ _02233170:
add r0, r5, #0
bl ov74_02232F5C
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
pop {r3, r4, r5, pc}
_02233190:
@ -24458,7 +24458,7 @@ ov74_0223319C: ; 0x0223319C
beq _022331DE
bl ov74_02232B18
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r1, #0x46
ldr r0, [r5, #8]
lsl r1, r1, #4
@ -24488,7 +24488,7 @@ _022331DE:
cmp r0, #0
bne _0223321C
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
pop {r3, r4, r5, pc}
_022331FC:
@ -24502,7 +24502,7 @@ _022331FC:
beq _0223321C
_0223320C:
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _02233220 ; =SEQ_SE_DP_SELECT
bl PlaySE
mov r0, #1

View File

@ -975,9 +975,9 @@ _0224707C:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _02247114 ; =ov75_02247234
add r1, r5, #0
bl Main_SetVBlankIntrCB
@ -1106,9 +1106,9 @@ _022471A4:
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
bl sub_0203A914
add r0, r5, #0
bl OverlayManager_FreeData

View File

@ -533,7 +533,7 @@ ov80_0222C17C: ; 0x0222C17C
cmp r0, #0
bne _0222C196
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
pop {r3, pc}
_0222C196:
@ -4999,18 +4999,18 @@ ov80_0222E344: ; 0x0222E344
add r4, r2, #0
bl TextFlags_SetCanABSpeedUpPrint
ldr r0, [sp, #0x20]
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
cmp r4, #0
beq _0222E362
cmp r4, #0xff
bne _0222E36A
_0222E362:
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
b _0222E370
_0222E36A:
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
_0222E370:
mov r3, #0
str r3, [sp]
@ -7274,7 +7274,7 @@ ov80_0222F4D0: ; 0x0222F4D0
cmp r0, #0
bne _0222F4EA
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
pop {r3, pc}
_0222F4EA:

View File

@ -130,7 +130,7 @@ _0223DE5C:
add r0, r4, #0
bl ov81_02240D64
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldrb r0, [r4, #9]
bl ov80_02237254
cmp r0, #1
@ -660,7 +660,7 @@ _0223E2A8:
strh r2, [r0, #2]
_0223E2CE:
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _0223E30C ; =0x0000046C
ldr r0, [r4, r0]
bl ov81_02241BC8

View File

@ -86,7 +86,7 @@ _0223DE0E:
mov r0, #0
str r0, [r6]
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0

View File

@ -276,9 +276,9 @@ _02258A4A:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _02258AF8 ; =ov89_02258FF4
ldr r2, _02258AFC ; =0x0000EA60
add r1, r5, #0
@ -871,9 +871,9 @@ ov89_02258F00: ; 0x02258F00
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
bl sub_0203A914
add r0, r5, #0
bl OverlayManager_FreeData

View File

@ -1635,7 +1635,7 @@ ov90_0225938C: ; 0x0225938C
bl Options_GetFrame
add r4, r0, #0
mov r0, #1
bl sub_02002C60
bl TextFlags_BeginAutoScroll
lsl r0, r4, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@ -1724,7 +1724,7 @@ _0225943E:
add r6, #0x10
cmp r4, #2
blt _0225943E
bl sub_02002C90
bl TextFlags_EndAutoScroll
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov90_02259434

View File

@ -563,11 +563,11 @@ ov93_0225C768: ; 0x0225C768
mov r1, #1
bl GfGfx_EngineBTogglePlanes
mov r0, #1
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r5, #0x28]
bl sub_0200E2B0
mov r1, #0x75
@ -1075,9 +1075,9 @@ _0225CD72:
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
bl sub_0203A914
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}

View File

@ -2681,7 +2681,7 @@ ov95_021E6D70: ; 0x021E6D70
add r0, r4, #4
bl ov95_021E619C
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r4, #4]
ldr r1, [r4, #0x54]
ldr r2, [r4, #0x50]
@ -2805,7 +2805,7 @@ ov95_021E6F0C: ; 0x021E6F0C
ldr r0, [r4, #8]
bl PaletteData_Free
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, [r4, #4]
mov r1, #1
bl FreeBgTilemapBuffer

View File

@ -116,17 +116,17 @@ _021E5986:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
b _021E5A10
_021E59FE:
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #1
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
_021E5A10:
add r0, r4, #0
mov r1, #0
@ -352,9 +352,9 @@ _021E5BBC:
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _021E5C24 ; =0x00000614
ldr r0, [r4, r0]
bl ov96_021E9320

View File

@ -195,7 +195,7 @@ _021E5C2C:
mov r0, #4
bl sub_02021148
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r1, #0
@ -505,7 +505,7 @@ TrainerCardMainApp_Exit: ; 0x021E5EC8
bl ov51_021E6644
bl sub_02021238
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
add r0, r4, #0

View File

@ -71,7 +71,7 @@ _021E80D6:
bl NewMsgDataFromNarc
str r0, [r4, #0x14]
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #4
@ -271,7 +271,7 @@ _021E82FC:
bl ov52_021E85A0
bl sub_02021238
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
ldr r0, [r6, #0x14]

File diff suppressed because it is too large Load Diff

View File

@ -799,7 +799,7 @@ DrawFrameAndWindow2: ; 0x0200E998
bl CopyWindowToVram
_0200E9B2:
add r0, r6, #0
bl sub_020027F0
bl TextPrinter_SetDownArrowBaseTile
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end DrawFrameAndWindow2
@ -1668,7 +1668,7 @@ _0200F094:
bl CopyWindowToVram
_0200F0A0:
add r0, r6, #0
bl sub_020027F0
bl TextPrinter_SetDownArrowBaseTile
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0

View File

@ -120,9 +120,9 @@ sub_0205B5B4: ; 0x0205B5B4
add r6, r2, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r6, #0
bl Options_GetTextFrameDelay
mov r3, #0
@ -149,9 +149,9 @@ sub_0205B5EC: ; 0x0205B5EC
add r4, r3, #0
bl TextFlags_SetCanABSpeedUpPrint
ldr r0, [sp, #0x24]
bl sub_02002B50
bl TextFlags_SetAutoScrollParam
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r3, #0
str r3, [sp]
str r4, [sp, #4]

View File

@ -907,7 +907,7 @@ sub_02075A7C: ; 0x02075A7C
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
bl sub_0203A880
add r0, r4, #0
add sp, #0x24
@ -1024,7 +1024,7 @@ sub_02075D4C: ; 0x02075D4C
mov r0, #0
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
ldr r0, _02075E10 ; =gSystem + 0x60
mov r1, #1
strb r1, [r0, #9]

View File

@ -35,7 +35,7 @@ sub_020921A4: ; 0x020921A4
ldr r0, [r0, #8]
str r0, [r4, #0x34]
mov r0, #1
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_end sub_020921A4
@ -123,7 +123,7 @@ sub_02092288: ; 0x02092288
bl OverlayManager_GetData
ldr r4, [r0]
mov r0, #0
bl sub_02002B8C
bl TextFlags_SetCanTouchSpeedUpPrint
add r0, r5, #0
bl OverlayManager_FreeData
add r0, r4, #0

View File

@ -7,11 +7,11 @@
typedef u8 FontID;
struct FontData;
struct GlyphInfo {
typedef struct GlyphInfo {
u8 data[0x80];
u8 width;
u8 height;
};
} GlyphInfo;
struct FontInfo {
u8 maxLetterWidth;
@ -39,7 +39,7 @@ typedef struct TextPrinterTemplate {
u16 letterSpacing, lineSpacing;
u8 unk14;
u8 fgColor, bgColor, shadowColor;
u16 unk18;
u16 glyphTable;
u8 unk1A;
u8 unk1B;
} TextPrinterTemplate;

View File

@ -2,8 +2,22 @@
#define POKEHEARTGOLD_RENDER_TEXT_H
#include "text.h"
#include "touchscreen.h"
struct TextPrinterSubStruct {
typedef struct TextFlags {
u8 canABSpeedUpPrint : 1;
u8 useAlternateDownArrow : 1;
u8 autoScroll : 1;
u8 forceMidTextSpeed : 1;
u8 canTouchSpeedUpPrint : 1;
u8 autoScrollCanSpeedUp : 1;
u8 hasSpedUpInput : 1;
u8 hasContinuedInput : 1;
u8 touchIsSpeedingUpPrint : 1;
u8 touchHitboxActive : 1;
} TextFlags;
typedef struct TextPrinterSubStruct {
u8 fontId : 4; // 0x14
u8 hasPrintBeenSpedUp : 1;
u8 unk : 3;
@ -11,13 +25,22 @@ struct TextPrinterSubStruct {
u8 downArrowYPosIdx : 2;
u8 hasFontIdBeenSet : 1;
u8 autoScrollDelay : 8;
};
} TextPrinterSubStruct;
RenderResult RenderText(TextPrinter *printer);
void TextFlags_SetCanABSpeedUpPrint(BOOL enable);
void sub_020027F0(int a0);
void sub_02002B50(u32 a0);
void sub_02002B8C(BOOL enable);
void sub_02002C60(BOOL a0);
void TextPrinter_SetDownArrowBaseTile(int tile);
void TextFlags_SetAutoScrollParam(int a0);
void TextFlags_SetCanTouchSpeedUpPrint(BOOL enable);
void TextFlags_SetAlternateDownArrow(BOOL enable);
u8 TextFlags_GetHasSpedUpInput();
void TextFlags_ResetHasSpedUpInput(void);
u8 TextFlags_GetHasContinuedInput(void);
void TextFlags_ResetHasContinuedInput(void);
BOOL TextFlags_GetIsTouchSpeedingUpPrint(void);
void TextFlags_SetFastForwardTouchButtonHitbox(const TouchscreenHitbox *hitbox);
void TextFlags_UnsetFastForwardTouchButtonHitbox(void);
void TextFlags_BeginAutoScroll(BOOL noSpeedUp);
void TextFlags_EndAutoScroll(void);
#endif // POKEHEARTGOLD_RENDER_TEXT_H

View File

@ -19,5 +19,6 @@ struct PokepicManager *DrawPokemonPicFromSpecies(BgConfig *bgConfig, GFBgLayer l
struct PokepicManager *DrawPokemonPicFromMon(BgConfig *bgConfig, GFBgLayer layer, int x, int y, u8 paletteNum, u16 baseTile, Pokemon *mon, HeapID heapId);
void sub_0200E398(BgConfig *bgConfig, u32 a1, u32 a2, u32 a3, HeapID heapId);
u32 sub_0200E3D8(void);
void sub_0200EB68(Window *window, int a1);
#endif // POKEHEARTGOLD_RENDER_WINDOW_H

View File

@ -4,8 +4,8 @@
#include "global.h"
const u16 *MsgArray_SkipControlCode(const u16 *arr);
u16 MsgArray_GetControlCode(const u16 *arr);
int MsgArray_GetControlCode(const u16 *arr);
BOOL MsgArray_ControlCodeIsStrVar(const u16 *arr);
u16 MsgArray_ControlCodeGetField(const u16 *arr, u32 fieldno);
int MsgArray_ControlCodeGetField(const u16 *arr, u32 fieldno);
#endif // HEARTGOLD_STRING_CONTROL_CODE_H

View File

@ -14,7 +14,7 @@ Static main
Object src/list_menu.o
Object src/list_menu_2d.o
Object src/string_util.o
Object asm/render_text.o
Object src/render_text.o
Object src/font.o
Object src/palette.o
Object src/sound.o

View File

@ -228,7 +228,7 @@ void ov12_02237BB8(BattleSystem *bsys) {
NARC_Delete(unkNarcA);
NARC_Delete(unkNarcB);
sub_020027F0(1);
TextPrinter_SetDownArrowBaseTile(1);
ov12_0223A620(bsys);
G2dRenderer_SetSubSurfaceCoords(SpriteRenderer_GetG2dRendererPtr(bsys->unk90), 0, FX32_CONST(272));

View File

@ -299,8 +299,8 @@ BOOL ChooseStarter_Init(OVY_MANAGER *ovy, int *state_p) {
initBallModelPositions(work);
createMonSprites(work);
TextFlags_SetCanABSpeedUpPrint(FALSE);
sub_02002B50(TRUE);
sub_02002B8C(FALSE);
TextFlags_SetAutoScrollParam(TRUE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
return TRUE;
}
@ -540,8 +540,8 @@ BOOL ChooseStarter_Exit(OVY_MANAGER *ovy, int *state) {
struct ChooseStarterArgs *args = OverlayManager_GetArgs(ovy);
TextFlags_SetCanABSpeedUpPrint(FALSE);
sub_02002B50(FALSE);
sub_02002B8C(FALSE);
TextFlags_SetAutoScrollParam(FALSE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
args->cursorPos = work->curSelection;
Main_SetVBlankIntrCB(NULL, NULL);
DeleteCameraTranslationWrapper(work->cameraTranslation);

View File

@ -558,7 +558,7 @@ BOOL OakSpeech_Init(OVY_MANAGER *ovyMan, int *pState) {
data->namingScreenArgs_Rival = NamingScreen_CreateArgs(HEAP_ID_OAKS_SPEECH, NAME_SCREEN_RIVAL, 0, PLAYER_NAME_LENGTH, data->options, NULL);
data->lastChosenGender = 0;
data->frameDelayCounter = 0;
sub_02002B8C(FALSE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
FontID_Alloc(4, data->heapId);
return TRUE;
}
@ -648,7 +648,7 @@ BOOL OakSpeech_Exit(OVY_MANAGER *ovyMan, int *pState) {
OverlayManager_FreeData(ovyMan);
DestroyHeap(heapId);
RegisterMainOverlay(FS_OVERLAY_ID(OVY_36), &ov36_App_InitGameState_AfterOakSpeech);
sub_02002B8C(FALSE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
return TRUE;
}
@ -943,7 +943,7 @@ static BOOL OakSpeech_PrintDialogMsg(OakSpeechData *data, int msgNum, int waitBu
DrawFrameAndWindow2(&data->dialogWindow, FALSE, 0x3E2, 4);
TextFlags_SetCanABSpeedUpPrint(TRUE);
sub_02002B50(FALSE);
TextFlags_SetAutoScrollParam(FALSE);
String *temp = String_New(0x400, data->heapId);
data->string = String_New(0x400, data->heapId);

View File

@ -348,7 +348,7 @@ BOOL OptionsMenu_Init(OVY_MANAGER *manager, int *state) {
data->frameNumText = String_New(40, data->heapId);
TextFlags_SetCanABSpeedUpPrint(FALSE);
sub_02002B8C(FALSE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
sub_0200FBF4(PM_LCD_TOP, 0);
sub_0200FBF4(PM_LCD_BOTTOM, 0);
@ -382,7 +382,7 @@ BOOL OptionsMenu_Exit(OVY_MANAGER *manager, int *state) {
String_Delete(data->frameNumText);
TextFlags_SetCanABSpeedUpPrint(TRUE);
sub_02002B8C(TRUE);
TextFlags_SetCanTouchSpeedUpPrint(TRUE);
OverlayManager_FreeData(manager);
DestroyHeap(data->heapId);

View File

@ -773,7 +773,7 @@ void PartyMenu_PrintMessageOnWindow34(PartyMenu *partyMenu, int msgId, BOOL draw
void PartyMenu_PrintBufferedMessageOnWindow34(PartyMenu *partyMenu) {
TextFlags_SetCanABSpeedUpPrint(TRUE);
sub_02002B50(0);
TextFlags_SetAutoScrollParam(0);
partyMenu->textPrinterId = AddTextPrinterParameterized(&partyMenu->windows[PARTY_MENU_WINDOW_ID_34], 1, partyMenu->formattedStrBuf, 0, 0, Options_GetTextFrameDelay(partyMenu->args->options), TextPrinterCB_PartyMenuWin34Msg);
}

View File

@ -279,7 +279,7 @@ static BOOL PartyMenuApp_Init(OVY_MANAGER *manager, int *pState) {
thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 1);
}
sub_0207A89C(partyMenu);
sub_02002B8C(TRUE);
TextFlags_SetCanTouchSpeedUpPrint(TRUE);
Main_SetVBlankIntrCB(sub_020796B8, partyMenu);
sub_0203A994(2);
FontID_Alloc(4, HEAP_ID_PARTY_MENU);
@ -611,7 +611,7 @@ static int PartyMenu_Subtask_UseTMHM(PartyMenu *partyMenu) {
static BOOL PartyMenuApp_Exit(OVY_MANAGER *manager, int *pState) {
u32 i;
PartyMenu *partyMenu = (PartyMenu *)OverlayManager_GetData(manager);
sub_02002B8C(FALSE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
Main_SetVBlankIntrCB(NULL, NULL);
PartyMenu_RemoveSpriteRenderer(partyMenu);
PartyMenu_RemoveAllWindows(partyMenu);

599
src/render_text.c Normal file
View File

@ -0,0 +1,599 @@
#include "render_text.h"
#include "global.h"
#include "constants/sndseq.h"
#include "font.h"
#include "render_window.h"
#include "string_control_code.h"
#include "system.h"
#include "text.h"
#include "touchscreen.h"
#include "unk_02005D10.h"
static u16 sDownArrowBaseTile;
static TextFlags sTextFlags;
static TouchscreenHitbox sTouchScreenHitbox;
static const u8 sDownArrowTileOffsets[] = { 0, 1, 2, 1 };
static BOOL TextPrinter_ContinueInputHeld(TextPrinterSubStruct *subStruct);
static BOOL TextPrinter_ContinueInputNew(void);
static void TextPrinter_InitDownArrowCounters(TextPrinter *printer);
static void TextPrinter_DrawDownArrow(TextPrinter *printer);
static void TextPrinter_ClearDownArrow(TextPrinter *printer);
static BOOL TextPrinter_Continue(TextPrinter *printer);
static BOOL TextPrinter_WaitAutoMode(TextPrinter *printer);
static BOOL TextPrinter_WaitWithDownArrow(TextPrinter *printer);
static u8 TextPrinter_Wait(TextPrinter *printer);
static BOOL TextPrinter_ContinueInputHeld(TextPrinterSubStruct *subStruct) {
if ((gSystem.heldKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) && subStruct->hasPrintBeenSpedUp) {
sTextFlags.touchIsSpeedingUpPrint = FALSE;
return TRUE;
}
if (sTextFlags.canTouchSpeedUpPrint) {
if (!gSystem.touchHeld) {
return FALSE;
}
if (sTextFlags.touchHitboxActive) {
if (TouchscreenHitbox_TouchHeldIsIn(&sTouchScreenHitbox)) {
sTextFlags.touchIsSpeedingUpPrint = TRUE;
return TRUE;
}
return FALSE;
} else {
sTextFlags.touchIsSpeedingUpPrint = TRUE;
return TRUE;
}
}
return FALSE;
}
static BOOL TextPrinter_ContinueInputNew(void) {
if (gSystem.newKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
sTextFlags.touchIsSpeedingUpPrint = FALSE;
return TRUE;
}
if (sTextFlags.canTouchSpeedUpPrint) {
if (!gSystem.touchNew) {
return FALSE;
}
if (sTextFlags.touchHitboxActive) {
if (TouchscreenHitbox_TouchNewIsIn(&sTouchScreenHitbox)) {
sTextFlags.touchIsSpeedingUpPrint = TRUE;
return TRUE;
}
return FALSE;
} else {
sTextFlags.touchIsSpeedingUpPrint = TRUE;
return TRUE;
}
}
return FALSE;
}
RenderResult RenderText(TextPrinter *printer) {
TextPrinterSubStruct *subStruct = (TextPrinterSubStruct *)(&printer->subStructFields);
u16 currentChar;
switch (printer->state) {
case 0:
if (TextPrinter_ContinueInputHeld(subStruct)) {
printer->delayCounter = 0;
if (printer->textSpeedBottom != 0) {
sTextFlags.hasSpedUpInput = 1;
}
}
if (printer->delayCounter && printer->textSpeedBottom) {
printer->delayCounter--;
if (sTextFlags.canABSpeedUpPrint != 0) {
if (TextPrinter_ContinueInputNew()) {
subStruct->hasPrintBeenSpedUp = 1;
printer->delayCounter = 0;
}
}
return RENDER_UPDATE;
}
printer->delayCounter = printer->textSpeedBottom;
currentChar = *printer->template.currentChar.raw;
printer->template.currentChar.raw++;
GF_ASSERT(currentChar != 0xF100);
switch (currentChar) {
case EOS:
return RENDER_FINISH;
case CHAR_LF:
printer->template.currentX = printer->template.x;
s32 fontAttribute = GetFontAttribute(printer->template.fontId, 1);
printer->template.currentY += printer->template.lineSpacing + fontAttribute;
return RENDER_REPEAT;
case 0xF0FD:
printer->template.currentChar.raw++;
return RENDER_REPEAT;
case EXT_CTRL_CODE_BEGIN:
printer->template.currentChar.raw--;
switch ((u16)MsgArray_GetControlCode(printer->template.currentChar.raw)) {
case 0xFF00:
u16 field = MsgArray_ControlCodeGetField(
printer->template.currentChar.raw, 0);
if (field == 0xff) {
u8 r2 = printer->template.unk1B;
printer->template.unk1B = ((printer->template.fgColor - 1) / 2 + 100);
if (r2 < 100 || r2 >= 107) {
break;
}
field = (r2 - 100);
} else {
if (field >= 100) {
printer->template.unk1B = field;
break;
}
}
printer->template.fgColor = (field * 2 + 1);
printer->template.shadowColor = (field * 2 + 2);
GenerateFontHalfRowLookupTable(printer->template.fgColor,
printer->template.bgColor,
printer->template.shadowColor);
break;
case 0x200:
field = MsgArray_ControlCodeGetField(
printer->template.currentChar.raw, 0);
RenderScreenFocusIndicatorTile(printer,
printer->template.currentX,
printer->template.currentY,
field);
if (printer->textSpeedTop != 0) {
CopyWindowToVram(printer->template.window);
}
break;
case 0x207:
printer->state = 7;
TextPrinter_InitDownArrowCounters(printer);
printer->template.currentChar.raw = MsgArray_SkipControlCode(printer->template.currentChar.raw);
if (*printer->template.currentChar.raw == 0xE000) {
++printer->template.currentChar.raw;
}
return RENDER_UPDATE;
case 0x208:
printer->state = 8;
TextPrinter_InitDownArrowCounters(printer);
printer->template.currentChar.raw = MsgArray_SkipControlCode(printer->template.currentChar.raw);
if (*printer->template.currentChar.raw == 0xE000) {
++printer->template.currentChar.raw;
}
return RENDER_UPDATE;
case 0x201:
printer->delayCounter = MsgArray_ControlCodeGetField(
printer->template.currentChar.raw, 0);
printer->template.currentChar.raw = MsgArray_SkipControlCode(printer->template.currentChar.raw);
printer->state = 6;
return RENDER_UPDATE;
case 0x202:
printer->unk2E = MsgArray_ControlCodeGetField(
printer->template.currentChar.raw, 0);
printer->template.currentChar.raw = MsgArray_SkipControlCode(printer->template.currentChar.raw);
return RENDER_UPDATE;
case 0x203:
printer->template.currentX = MsgArray_ControlCodeGetField(
printer->template.currentChar.raw, 0);
break;
case 0x204:
printer->template.currentY = MsgArray_ControlCodeGetField(
printer->template.currentChar.raw, 0);
break;
case 0x205: {
int x = GetWindowWidth(printer->template.window) * 8;
int width = FontID_FlatArray_GetWidthFirstLine(printer->template.fontId, printer->template.currentChar.raw, printer->template.letterSpacing);
if (width < x) {
printer->template.currentX = printer->template.x + (x - width) / 2;
} else {
printer->template.currentX = printer->template.x;
}
} break;
case 0x206: {
int x = GetWindowWidth(printer->template.window) * 8;
int width = FontID_FlatArray_GetWidthFirstLine(printer->template.fontId, printer->template.currentChar.raw, printer->template.letterSpacing);
if (width < x) {
printer->template.currentX = x - width;
} else {
printer->template.currentX = printer->template.x;
}
} break;
case 0xFF01:
field = MsgArray_ControlCodeGetField(
printer->template.currentChar.raw, 0);
switch (field) {
case 100:
printer->template.glyphTable = 0;
printer->template.unk1A = 0;
break;
case 200:
printer->template.glyphTable = 0xFFFC;
printer->template.unk1A = 0;
break;
}
break;
case 0xFE06:
field = MsgArray_ControlCodeGetField(
printer->template.currentChar.raw, 0);
if (field != 0xFE00) {
if (field != 0xFE01) {
break;
}
printer->state = 2;
TextPrinter_InitDownArrowCounters(printer);
printer->template.currentChar.raw = MsgArray_SkipControlCode(
printer->template.currentChar.raw);
return RENDER_UPDATE;
}
printer->state = 3;
TextPrinter_InitDownArrowCounters(printer);
printer->template.currentChar.raw = MsgArray_SkipControlCode(printer->template.currentChar.raw);
return RENDER_UPDATE;
}
printer->template.currentChar.raw = MsgArray_SkipControlCode(printer->template.currentChar.raw);
return RENDER_REPEAT;
case 0x25BC:
printer->state = 2;
TextPrinter_InitDownArrowCounters(printer);
return RENDER_UPDATE;
case 0x25BD:
printer->state = 3;
TextPrinter_InitDownArrowCounters(printer);
return RENDER_UPDATE;
}
GlyphInfo *glyphInfo = FontID_TryLoadGlyph(subStruct->fontId, currentChar);
CopyGlyphToWindow(printer->template.window,
glyphInfo->data,
glyphInfo->width,
glyphInfo->height,
printer->template.currentX,
printer->template.currentY,
printer->template.glyphTable);
printer->template.currentX += glyphInfo->width + printer->template.letterSpacing;
return RENDER_PRINT;
case 1:
if (TextPrinter_Wait(printer) != 0) {
TextPrinter_ClearDownArrow(printer);
printer->state = 0;
}
return RENDER_UPDATE;
case 2:
if (TextPrinter_WaitWithDownArrow(printer) != 0) {
TextPrinter_ClearDownArrow(printer);
FillWindowPixelBuffer(
printer->template.window, printer->template.bgColor);
printer->template.currentX = printer->template.x;
printer->template.currentY = printer->template.y;
printer->state = 0;
}
return RENDER_UPDATE;
case 3:
if (TextPrinter_WaitWithDownArrow(printer) != 0) {
TextPrinter_ClearDownArrow(printer);
printer->scrollDistance = (GetFontAttribute(printer->template.fontId, 1) + printer->template.lineSpacing);
printer->template.currentX = printer->template.x;
printer->state = 4;
}
return RENDER_UPDATE;
case 4:
if (printer->scrollDistance != 0) {
if ((int)printer->scrollDistance < 4) {
ScrollWindow(printer->template.window,
0,
printer->scrollDistance,
(printer->template.bgColor | (printer->template.bgColor << 4)));
printer->scrollDistance = 0;
} else {
ScrollWindow(printer->template.window,
0,
4,
(printer->template.bgColor | (printer->template.bgColor << 4)));
printer->scrollDistance -= 4;
}
CopyWindowToVram(printer->template.window);
} else {
printer->state = 0;
}
return RENDER_UPDATE;
case 5:
printer->state = 0;
return RENDER_UPDATE;
case 6:
if (printer->delayCounter != 0) {
printer->delayCounter--;
} else {
printer->state = 0;
}
return RENDER_UPDATE;
case 7:
if (TextPrinter_WaitWithDownArrow(printer)) {
TextPrinter_ClearDownArrow(printer);
FillWindowPixelBuffer(printer->template.window, printer->template.bgColor);
printer->template.currentX = printer->template.x;
printer->template.currentY = printer->template.y;
printer->state = 0;
}
return RENDER_UPDATE;
case 8:
if (TextPrinter_WaitWithDownArrow(printer)) {
TextPrinter_ClearDownArrow(printer);
printer->scrollDistance = printer->template.lineSpacing + GetFontAttribute(printer->template.fontId, 1);
printer->template.currentX = printer->template.x;
printer->state = 4;
}
return RENDER_UPDATE;
}
return RENDER_FINISH;
}
void TextPrinter_SetDownArrowBaseTile(int tile) {
sDownArrowBaseTile = tile;
}
static void TextPrinter_InitDownArrowCounters(TextPrinter *printer) {
TextPrinterSubStruct *subStruct = (TextPrinterSubStruct *)(&printer->subStructFields);
if (sTextFlags.autoScroll) {
subStruct->autoScrollDelay = 0;
} else {
subStruct->downArrowYPosIdx = 0;
subStruct->downArrowDelay = 0;
}
sub_0200EB68(printer->template.window, sDownArrowBaseTile);
}
// Possible UB? Where does downArrowYPosIdx get reset to 0 when it reaches NELEMS(sDownArrowTileOffsets) == 4?
static void TextPrinter_DrawDownArrow(TextPrinter *printer) {
TextPrinterSubStruct *subStruct = (TextPrinterSubStruct *)(&printer->subStructFields);
if (sTextFlags.autoScroll || sTextFlags.useAlternateDownArrow) {
return;
}
if (subStruct->downArrowDelay != 0) {
subStruct->downArrowDelay--;
return;
}
u8 bg_id = GetWindowBgId(printer->template.window);
u8 x = GetWindowX(printer->template.window);
u8 y = GetWindowY(printer->template.window);
u8 width = GetWindowWidth(printer->template.window);
u8 height = GetWindowHeight(printer->template.window) - 2;
u16 baseTile = sDownArrowBaseTile;
FillBgTilemapRect(printer->template.window->bgConfig,
bg_id,
(baseTile + 18 + sDownArrowTileOffsets[subStruct->downArrowYPosIdx] * 4),
(x + width + 1),
(y + height),
1,
1,
0x10);
FillBgTilemapRect(printer->template.window->bgConfig,
bg_id,
(baseTile + 19 + sDownArrowTileOffsets[subStruct->downArrowYPosIdx] * 4),
(x + width + 2),
(y + height),
1,
1,
0x10);
FillBgTilemapRect(printer->template.window->bgConfig,
bg_id,
(baseTile + 20 + sDownArrowTileOffsets[subStruct->downArrowYPosIdx] * 4),
(x + width + 1),
(y + height + 1),
1,
1,
0x10);
FillBgTilemapRect(printer->template.window->bgConfig,
bg_id,
(baseTile + 21 + sDownArrowTileOffsets[subStruct->downArrowYPosIdx] * 4),
(x + width + 2),
(y + height + 1),
1,
1,
0x10);
BgCommitTilemapBufferToVram(printer->template.window->bgConfig, bg_id);
subStruct->downArrowDelay = 8;
subStruct->downArrowYPosIdx++;
}
static void TextPrinter_ClearDownArrow(TextPrinter *printer) {
if (sTextFlags.useAlternateDownArrow) {
return;
}
u8 bg_id = GetWindowBgId(printer->template.window);
u8 x = GetWindowX(printer->template.window);
u8 y = GetWindowY(printer->template.window);
u8 width = GetWindowWidth(printer->template.window);
u8 height = GetWindowHeight(printer->template.window) - 2;
u16 baseTile = sDownArrowBaseTile;
FillBgTilemapRect(printer->template.window->bgConfig,
bg_id,
(baseTile + 10),
(x + width + 1),
(y + height),
1,
2,
0x10);
FillBgTilemapRect(printer->template.window->bgConfig,
bg_id,
(baseTile + 11),
(x + width + 2),
(y + height),
1,
2,
0x10);
BgCommitTilemapBufferToVram(printer->template.window->bgConfig, bg_id);
}
static BOOL TextPrinter_Continue(TextPrinter *printer) {
#pragma unused(printer)
if (TextPrinter_ContinueInputNew()) {
PlaySE(SEQ_SE_DP_SELECT);
sTextFlags.hasContinuedInput = 1;
return TRUE;
}
return FALSE;
}
static BOOL TextPrinter_WaitAutoMode(TextPrinter *printer) {
TextPrinterSubStruct *subStruct = (TextPrinterSubStruct *)(&printer->subStructFields);
if (subStruct->autoScrollDelay == 100) {
return TRUE;
}
subStruct->autoScrollDelay++;
if (sTextFlags.autoScrollCanSpeedUp) {
return TextPrinter_Continue(printer);
}
return FALSE;
}
static BOOL TextPrinter_WaitWithDownArrow(TextPrinter *printer) {
if (sTextFlags.autoScroll) {
return TextPrinter_WaitAutoMode(printer);
}
TextPrinter_DrawDownArrow(printer);
return TextPrinter_Continue(printer);
}
static u8 TextPrinter_Wait(TextPrinter *printer) {
if (sTextFlags.autoScroll) {
return TextPrinter_WaitAutoMode(printer);
}
return TextPrinter_Continue(printer);
}
void TextFlags_SetCanABSpeedUpPrint(BOOL param0) {
sTextFlags.canABSpeedUpPrint = param0;
}
void TextFlags_SetAutoScrollParam(int param0) {
sTextFlags.autoScroll = param0 & 1;
sTextFlags.autoScrollCanSpeedUp = (param0 >> 1) & 1;
}
void TextFlags_SetCanTouchSpeedUpPrint(BOOL enable) {
sTextFlags.canTouchSpeedUpPrint = enable;
}
void TextFlags_SetAlternateDownArrow(BOOL enable) {
sTextFlags.useAlternateDownArrow = enable;
}
u8 TextFlags_GetHasSpedUpInput(void) {
return sTextFlags.hasSpedUpInput;
}
void TextFlags_ResetHasSpedUpInput(void) {
sTextFlags.hasSpedUpInput = 0;
}
u8 TextFlags_GetHasContinuedInput(void) {
return sTextFlags.hasContinuedInput;
}
void TextFlags_ResetHasContinuedInput(void) {
sTextFlags.hasContinuedInput = 0;
}
BOOL TextFlags_GetIsTouchSpeedingUpPrint(void) {
if (sTextFlags.canTouchSpeedUpPrint) {
return sTextFlags.touchIsSpeedingUpPrint;
} else {
return FALSE;
}
}
void TextFlags_SetFastForwardTouchButtonHitbox(const TouchscreenHitbox *hitbox) {
sTextFlags.touchHitboxActive = TRUE;
sTouchScreenHitbox = *hitbox;
}
void TextFlags_UnsetFastForwardTouchButtonHitbox(void) {
sTextFlags.touchHitboxActive = FALSE;
sTouchScreenHitbox.rect.top = 0;
sTouchScreenHitbox.rect.bottom = 192;
sTouchScreenHitbox.rect.left = 0;
sTouchScreenHitbox.rect.right = 255;
}
void TextFlags_BeginAutoScroll(BOOL noSpeedUp) {
if (noSpeedUp == FALSE) {
TextFlags_SetCanABSpeedUpPrint(TRUE);
TextFlags_SetAutoScrollParam(3);
TextFlags_SetCanTouchSpeedUpPrint(TRUE);
} else {
TextFlags_SetAutoScrollParam(1);
TextFlags_SetCanABSpeedUpPrint(FALSE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
}
}
void TextFlags_EndAutoScroll(void) {
TextFlags_SetCanABSpeedUpPrint(FALSE);
TextFlags_SetAutoScrollParam(0);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
}

View File

@ -849,8 +849,8 @@ BOOL ScrCmd_TrainerTips(ScriptContext *ctx) {
StringExpandPlaceholders(*msg_fmt, *unk, *tmp_str);
TextFlags_SetCanABSpeedUpPrint(TRUE);
sub_02002B50(FALSE);
sub_02002B8C(FALSE);
TextFlags_SetAutoScrollParam(FALSE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
Window *window = ov01_021F3D80(fieldSystem->unk68);
u8 text_speed = Options_GetTextFrameDelay(Save_PlayerData_GetOptionsAddr(fieldSystem->saveData));

View File

@ -14,7 +14,7 @@ const u16 *MsgArray_SkipControlCode(const u16 *arr) {
return arr;
}
u16 MsgArray_GetControlCode(const u16 *arr) {
int MsgArray_GetControlCode(const u16 *arr) {
GF_ASSERT(*arr == EXT_CTRL_CODE_BEGIN);
return arr[1];
}
@ -24,7 +24,7 @@ BOOL MsgArray_ControlCodeIsStrVar(const u16 *arr) {
return strcode == 0x100 || strcode == 0x300 || strcode == 0x400 || strcode == 0x3400;
}
u16 MsgArray_ControlCodeGetField(const u16 *arr, u32 fieldno) {
int MsgArray_ControlCodeGetField(const u16 *arr, u32 fieldno) {
GF_ASSERT(*arr == EXT_CTRL_CODE_BEGIN);
GF_ASSERT(fieldno < arr[2]);
arr += 3;

View File

@ -93,7 +93,7 @@ u8 AddTextPrinterParameterized(Window *window, FontID fontId, String *string, u3
template.fgColor = sFonts[fontId].fgColor;
template.bgColor = sFonts[fontId].bgColor;
template.shadowColor = sFonts[fontId].shadowColor;
template.unk18 = 0;
template.glyphTable = 0;
template.unk1A = 0;
template.unk1B = 0xFF;
@ -116,7 +116,7 @@ u8 AddTextPrinterParameterizedWithColor(Window *window, FontID fontId, String *s
template.fgColor = (color >> 16) & 0xFF;
template.shadowColor = (color >> 8) & 0xFF;
template.bgColor = (color >> 0) & 0xFF;
template.unk18 = 0;
template.glyphTable = 0;
template.unk1A = 0;
template.unk1B = 0xFF;
@ -139,7 +139,7 @@ u8 AddTextPrinterParameterizedWithColorAndSpacing(Window *window, int fontId, St
template.fgColor = (color >> 16) & 0xFF;
template.shadowColor = (color >> 8) & 0xFF;
template.bgColor = (color >> 0) & 0xFF;
template.unk18 = 0;
template.glyphTable = 0;
template.unk1A = 0;
template.unk1B = 0xFF;

View File

@ -207,7 +207,7 @@ SysTask *ov30_0225D520(BgConfig *bgConfig, void *a1, FieldSystem *fieldSystem, v
GfGfx_EngineBTogglePlanes(GX_PLANEMASK_BG2, GF_PLANE_TOGGLE_ON);
GfGfx_EngineBTogglePlanes(GX_PLANEMASK_OBJ, GF_PLANE_TOGGLE_ON);
sub_02002B8C(TRUE);
TextFlags_SetCanTouchSpeedUpPrint(TRUE);
return task;
}
@ -224,7 +224,7 @@ void ov30_0225D64C(BgConfig *bgConfig, SysTask *task) {
ov01_021F434C(data->unk40);
ov01_021F43D0(data->unk40);
sub_02002B8C(FALSE);
TextFlags_SetCanTouchSpeedUpPrint(FALSE);
if (ov123_0225F520(ov30_0225DC08)) {
AllocFromHeapAtEnd(HEAP_ID_3, 1000);

View File

@ -222,7 +222,7 @@ BOOL ScrCmd_236(ScriptContext *ctx) {
BOOL ScrCmd_237(ScriptContext *ctx) {
void **unused = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_MISC_DATA_PTR);
sub_02002C60(TRUE);
TextFlags_BeginAutoScroll(TRUE);
return FALSE;
}

View File

@ -1998,7 +1998,7 @@ static void ov122_021E8094(OVY_MANAGER *man) {
sub_0200FBDC(0);
sub_0200FBDC(1);
TextFlags_SetCanABSpeedUpPrint(TRUE);
sub_02002B8C(TRUE);
TextFlags_SetCanTouchSpeedUpPrint(TRUE);
Main_SetVBlankIntrCB((GFIntrCB)ov122_021E8004, work);
GameStats_AddScore(Save_GameStats_Get(args->saveData), SCORE_EVENT_6);