mirror of https://github.com/zeldaret/tmc.git
more textbox
This commit is contained in:
parent
44a7255d63
commit
d58f3fbd63
|
|
@ -6,311 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start sub_08056458
|
||||
sub_08056458: @ 0x08056458
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _08056484 @ =gTextBox
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _08056470
|
||||
ldr r0, _08056488 @ =gUnk_02022780
|
||||
movs r1, #0xa8
|
||||
bl _DmaZero
|
||||
movs r0, #1
|
||||
bl sub_080564C8
|
||||
_08056470:
|
||||
ldr r2, _08056488 @ =gUnk_02022780
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x8a
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0805648C
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
b _080564A2
|
||||
.align 2, 0
|
||||
_08056484: .4byte gTextBox
|
||||
_08056488: .4byte gUnk_02022780
|
||||
_0805648C:
|
||||
ldr r5, _080564C0 @ =gUnk_08107BC8
|
||||
adds r4, r2, #0
|
||||
adds r4, #0x88
|
||||
_08056492:
|
||||
ldrb r0, [r4]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r5
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
cmp r0, #0
|
||||
bne _08056492
|
||||
_080564A2:
|
||||
ldr r0, _080564C4 @ =gUnk_02022780
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x9d
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080564B6
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
bl sub_08056F70
|
||||
_080564B6:
|
||||
bl sub_08056C68
|
||||
bl sub_08056D70
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080564C0: .4byte gUnk_08107BC8
|
||||
_080564C4: .4byte gUnk_02022780
|
||||
|
||||
thumb_func_start sub_080564C8
|
||||
sub_080564C8: @ 0x080564C8
|
||||
ldr r1, _080564D8 @ =gUnk_02022780
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x88
|
||||
movs r3, #0
|
||||
strb r0, [r2]
|
||||
adds r1, #0x89
|
||||
strb r3, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080564D8: .4byte gUnk_02022780
|
||||
|
||||
thumb_func_start sub_080564DC
|
||||
sub_080564DC: @ 0x080564DC
|
||||
ldr r0, _080564E8 @ =gUnk_02022780
|
||||
adds r0, #0x99
|
||||
movs r1, #0
|
||||
strb r1, [r0]
|
||||
movs r0, #0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080564E8: .4byte gUnk_02022780
|
||||
|
||||
thumb_func_start sub_080564EC
|
||||
sub_080564EC: @ 0x080564EC
|
||||
push {r4, lr}
|
||||
ldr r0, _08056598 @ =gUnk_02036A40
|
||||
movs r1, #8
|
||||
bl _DmaZero
|
||||
ldr r0, _0805659C @ =gUnk_02024030
|
||||
movs r1, #0x18
|
||||
bl _DmaZero
|
||||
ldr r4, _080565A0 @ =gUnk_02022780
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa8
|
||||
bl _DmaZero
|
||||
ldr r0, _080565A4 @ =gTextBox
|
||||
adds r1, r4, #0
|
||||
movs r2, #0x20
|
||||
bl _DmaCopy
|
||||
ldrb r0, [r4, #2]
|
||||
cmp r0, #0x63
|
||||
bne _08056520
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #5]
|
||||
strb r0, [r4, #2]
|
||||
_08056520:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x9c
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x20
|
||||
ldrh r1, [r4, #8]
|
||||
bl sub_0805EEB4
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x5c
|
||||
movs r0, #2
|
||||
strb r0, [r3]
|
||||
movs r0, #0xe
|
||||
strb r0, [r3, #1]
|
||||
adds r3, #2
|
||||
movs r2, #0
|
||||
ldr r0, _080565A8 @ =gUnk_02002A40
|
||||
adds r0, #0x80
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _08056560
|
||||
adds r4, r0, #0
|
||||
_0805654E:
|
||||
strb r1, [r3]
|
||||
adds r3, #1
|
||||
adds r2, #1
|
||||
cmp r2, #5
|
||||
bhi _08056560
|
||||
adds r0, r2, r4
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _0805654E
|
||||
_08056560:
|
||||
movs r0, #2
|
||||
strb r0, [r3]
|
||||
movs r0, #0xf
|
||||
strb r0, [r3, #1]
|
||||
movs r0, #0
|
||||
strb r0, [r3, #2]
|
||||
ldr r4, _080565A0 @ =gUnk_02022780
|
||||
adds r0, r4, #0
|
||||
bl sub_08056FBC
|
||||
ldr r0, _080565AC @ =gUnk_08107BE0
|
||||
str r0, [r4, #0x2c]
|
||||
ldr r0, _080565B0 @ =gUnk_02000D00
|
||||
str r0, [r4, #0x58]
|
||||
adds r4, #0x54
|
||||
movs r0, #0xd0
|
||||
strh r0, [r4]
|
||||
movs r0, #2
|
||||
bl sub_08056C54
|
||||
movs r0, #0
|
||||
bl sub_08056BDC
|
||||
movs r0, #2
|
||||
bl sub_080564C8
|
||||
movs r0, #1
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08056598: .4byte gUnk_02036A40
|
||||
_0805659C: .4byte gUnk_02024030
|
||||
_080565A0: .4byte gUnk_02022780
|
||||
_080565A4: .4byte gTextBox
|
||||
_080565A8: .4byte gUnk_02002A40
|
||||
_080565AC: .4byte gUnk_08107BE0
|
||||
_080565B0: .4byte gUnk_02000D00
|
||||
|
||||
thumb_func_start sub_080565B4
|
||||
sub_080565B4: @ 0x080565B4
|
||||
push {r4, lr}
|
||||
ldr r4, _080565F4 @ =gUnk_02022780
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x89
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080565DA
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r1, #0x10
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4, #3]
|
||||
subs r1, #0x46
|
||||
ldrb r1, [r1]
|
||||
bl sub_08056F88
|
||||
movs r0, #0x65
|
||||
bl PlaySFX
|
||||
_080565DA:
|
||||
movs r0, #1
|
||||
bl sub_08056CC0
|
||||
cmp r0, #0
|
||||
beq _080565F0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x99
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
bl sub_080564C8
|
||||
_080565F0:
|
||||
movs r0, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080565F4: .4byte gUnk_02022780
|
||||
|
||||
thumb_func_start sub_080565F8
|
||||
sub_080565F8: @ 0x080565F8
|
||||
push {r4, lr}
|
||||
ldr r4, _0805663C @ =gUnk_02022780
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x89
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0805661C
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r1, #0x10
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
movs r0, #0
|
||||
bl sub_08056BDC
|
||||
movs r0, #0x66
|
||||
bl PlaySFX
|
||||
_0805661C:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
bl sub_08056CC0
|
||||
cmp r0, #0
|
||||
beq _08056636
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x99
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
movs r0, #2
|
||||
bl sub_080564C8
|
||||
_08056636:
|
||||
movs r0, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805663C: .4byte gUnk_02022780
|
||||
|
||||
thumb_func_start sub_08056640
|
||||
sub_08056640: @ 0x08056640
|
||||
push {lr}
|
||||
movs r0, #0
|
||||
bl sub_08056C54
|
||||
movs r0, #0
|
||||
bl sub_080564C8
|
||||
movs r0, #0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08056654
|
||||
sub_08056654: @ 0x08056654
|
||||
push {lr}
|
||||
movs r0, #4
|
||||
bl sub_08056C54
|
||||
ldr r2, _0805667C @ =gUnk_08107BF4
|
||||
ldr r0, _08056680 @ =gUnk_02022780
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x89
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
movs r0, #0
|
||||
bl sub_08056CC0
|
||||
movs r0, #0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805667C: .4byte gUnk_08107BF4
|
||||
_08056680: .4byte gUnk_02022780
|
||||
|
||||
thumb_func_start sub_08056684
|
||||
sub_08056684: @ 0x08056684
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
ldr r4, _080566AC @ =gUnk_02022780
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x20
|
||||
ldrb r1, [r0]
|
||||
movs r3, #1
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080566B0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x99
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080566B6
|
||||
movs r0, #5
|
||||
bl sub_080564C8
|
||||
b _080566B6
|
||||
.align 2, 0
|
||||
_080566AC: .4byte gUnk_02022780
|
||||
_080566B0:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x89
|
||||
strb r3, [r0]
|
||||
_080566B6:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080566B8
|
||||
sub_080566B8: @ 0x080566B8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,90 @@
|
|||
.syntax unified
|
||||
push {r4, lr}
|
||||
ldr r0, _08056598 @ =gUnk_02036A40
|
||||
movs r1, #8
|
||||
bl _DmaZero
|
||||
ldr r0, _0805659C @ =gUnk_02024030
|
||||
movs r1, #0x18
|
||||
bl _DmaZero
|
||||
ldr r4, _080565A0 @ =gUnk_02022780
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa8
|
||||
bl _DmaZero
|
||||
ldr r0, _080565A4 @ =gTextBox
|
||||
adds r1, r4, #0
|
||||
movs r2, #0x20
|
||||
bl _DmaCopy
|
||||
ldrb r0, [r4, #2]
|
||||
cmp r0, #0x63
|
||||
bne _08056520
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #5]
|
||||
strb r0, [r4, #2]
|
||||
_08056520:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x9c
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x20
|
||||
ldrh r1, [r4, #8]
|
||||
bl sub_0805EEB4
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x5c
|
||||
movs r0, #2
|
||||
strb r0, [r3]
|
||||
movs r0, #0xe
|
||||
strb r0, [r3, #1]
|
||||
adds r3, #2
|
||||
movs r2, #0
|
||||
ldr r0, _080565A8 @ =gUnk_02002A40
|
||||
adds r0, #0x80
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _08056560
|
||||
adds r4, r0, #0
|
||||
_0805654E:
|
||||
strb r1, [r3]
|
||||
adds r3, #1
|
||||
adds r2, #1
|
||||
cmp r2, #5
|
||||
bhi _08056560
|
||||
adds r0, r2, r4
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _0805654E
|
||||
_08056560:
|
||||
movs r0, #2
|
||||
strb r0, [r3]
|
||||
movs r0, #0xf
|
||||
strb r0, [r3, #1]
|
||||
movs r0, #0
|
||||
strb r0, [r3, #2]
|
||||
ldr r4, _080565A0 @ =gUnk_02022780
|
||||
adds r0, r4, #0
|
||||
bl sub_08056FBC
|
||||
ldr r0, _080565AC @ =gUnk_08107BE0
|
||||
str r0, [r4, #0x2c]
|
||||
ldr r0, _080565B0 @ =gUnk_02000D00
|
||||
str r0, [r4, #0x58]
|
||||
adds r4, #0x54
|
||||
movs r0, #0xd0
|
||||
strh r0, [r4]
|
||||
movs r0, #2
|
||||
bl sub_08056C54
|
||||
movs r0, #0
|
||||
bl sub_08056BDC
|
||||
movs r0, #2
|
||||
bl sub_080564C8
|
||||
movs r0, #1
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08056598: .4byte gUnk_02036A40
|
||||
_0805659C: .4byte gUnk_02024030
|
||||
_080565A0: .4byte gUnk_02022780
|
||||
_080565A4: .4byte gTextBox
|
||||
_080565A8: .4byte gUnk_02002A40
|
||||
_080565AC: .4byte gUnk_08107BE0
|
||||
_080565B0: .4byte gUnk_02000D00
|
||||
.syntax divided
|
||||
|
|
@ -46,6 +46,32 @@ extern u32 LoadFixedGFX(Entity*, u32);
|
|||
extern void ExecuteScriptCommandSet();
|
||||
extern void _DmaFill32(u32, void*, u32);
|
||||
extern Entity* CreateItemEntity(u32, u32, u32);
|
||||
void _DmaCopy(const void* src, void* dst, u32 size);
|
||||
extern u32 ProcessMovement(Entity*);
|
||||
extern Entity* FindEntityInListBySubtype(u32, u32, u32);
|
||||
extern Entity* FindEntityInListByForm(u32, u32, u32, u32, u32);
|
||||
extern void _DmaZero(void*, u32);
|
||||
extern void MenuFadeIn(u32, u32);
|
||||
extern void LoadAssetAsync(const void*, u32, u32);
|
||||
extern void LoadPaletteGroup(u32);
|
||||
extern void TryLoadPrologueHyruleTown(void);
|
||||
extern Manager* GetEmptyManager(void);
|
||||
extern void AppendEntityToList(void*, u32);
|
||||
extern void LoadGfxGroup(u32);
|
||||
extern void EnqueueSFX(u32);
|
||||
extern void ResetPlayer(void);
|
||||
extern void CreateDust(Entity*);
|
||||
extern u32 IsItemEquipped(u32);
|
||||
extern void DeleteManager(Manager*);
|
||||
extern bool32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY);
|
||||
extern u32 CheckIsDungeon();
|
||||
extern void HandleIntroScreen(void);
|
||||
extern void HandleChooseFileScreen(void);
|
||||
extern void HandleGameplayScreen(void);
|
||||
extern void HandleGameOverScreen(void);
|
||||
extern void HandleCreditsScreen(void);
|
||||
extern void HandleDebugTextScreen(void);
|
||||
extern u32 GetTileTypeByEntity(Entity*);
|
||||
|
||||
// Unidentified
|
||||
extern u32 sub_0806ED78(Entity*);
|
||||
|
|
@ -53,7 +79,6 @@ extern void sub_0806920C(Entity*);
|
|||
extern u32 sub_0805ACC0(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_0806924C(Entity*);
|
||||
extern u32 ProcessMovement(Entity*);
|
||||
extern Entity* sub_080873AC(Entity*, u32, u32);
|
||||
extern void sub_08078778(Entity*);
|
||||
extern void sub_080787A8(Entity*, u32);
|
||||
|
|
@ -74,8 +99,6 @@ extern u32 sub_0806F5A4(u32);
|
|||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern void sub_0807DD94(Entity*, u32);
|
||||
extern Entity* FindEntityInListBySubtype(u32, u32, u32);
|
||||
extern Entity* FindEntityInListByForm(u32, u32, u32, u32, u32);
|
||||
extern s32 sub_0806ED9C(Entity*, u32, u32);
|
||||
extern void sub_0807000C(Entity*);
|
||||
extern void sub_0805E47C(Entity*);
|
||||
|
|
@ -105,7 +128,6 @@ extern Entity* sub_0804A98C(Entity*, u8, u8);
|
|||
extern u32 sub_080544DC(u32);
|
||||
extern void sub_08077E54(Entity*);
|
||||
extern void sub_080042BA(Entity*, u32);
|
||||
extern void _DmaZero(void*, u32);
|
||||
extern void sub_08077F24(ItemBehavior*, u32);
|
||||
extern void sub_08079184();
|
||||
extern void sub_08077F50(ItemBehavior* beh, u32 arg1);
|
||||
|
|
@ -118,7 +140,6 @@ extern void sub_080AD90C(void);
|
|||
extern void sub_080AD9B0(void);
|
||||
extern void sub_080AD918(void);
|
||||
extern void sub_0801E104(void);
|
||||
extern void MenuFadeIn(u32, u32);
|
||||
extern void sub_080A57F4(void);
|
||||
extern void sub_0804B29C(void*);
|
||||
extern void sub_08030118(u32);
|
||||
|
|
@ -139,8 +160,6 @@ extern void sub_0804C2F0(void);
|
|||
extern void sub_0801AFE4(void);
|
||||
extern u32 sub_08060354(void);
|
||||
extern void sub_08057E64(void);
|
||||
extern void LoadAssetAsync(const void*, u32, u32);
|
||||
extern void LoadPaletteGroup(u32);
|
||||
extern void sub_0809F814(u32);
|
||||
extern void sub_080300E8(void);
|
||||
extern void sub_0801DA90(u32);
|
||||
|
|
@ -157,7 +176,6 @@ extern void sub_080534AC();
|
|||
extern void sub_0807BA8C(u32, u32);
|
||||
extern void sub_0804D9B0();
|
||||
extern void sub_0807BB98(u32, u32, u32, u32);
|
||||
extern void TryLoadPrologueHyruleTown(void);
|
||||
extern void sub_0801D000(u32);
|
||||
extern void sub_08018C58(u32);
|
||||
extern void sub_0804E150(void);
|
||||
|
|
@ -170,7 +188,6 @@ extern void sub_080AF2E4(void);
|
|||
extern void sub_0805ADD8(u32);
|
||||
extern void sub_0804F578(void);
|
||||
extern void sub_08059994(void);
|
||||
extern void LoadGfxGroup(u32);
|
||||
extern s32 sub_0801CFA8(u32);
|
||||
extern void sub_080A3210(void);
|
||||
extern void sub_080ADA14(u32, u32);
|
||||
|
|
@ -193,15 +210,10 @@ extern void sub_08001242(Entity*);
|
|||
extern u32 sub_08003FC4(Entity*, u32);
|
||||
extern u32 sub_080043E8(Entity*);
|
||||
extern void sub_08001290(Entity*, u32);
|
||||
extern void EnqueueSFX(u32);
|
||||
extern void sub_08004596(Entity*, u32);
|
||||
extern u32 sub_080045B4(Entity*, u32, u32);
|
||||
extern u32 sub_0807953C(void);
|
||||
extern void ResetPlayer(void);
|
||||
extern void CreateDust(Entity*);
|
||||
extern void sub_080AE068(Entity*);
|
||||
extern Manager* GetEmptyManager(void);
|
||||
extern void AppendEntityToList(void*, u32);
|
||||
extern u32 sub_0800445C(Entity*);
|
||||
extern void sub_0807A108(void);
|
||||
extern void sub_0801766C(Entity*);
|
||||
|
|
@ -233,7 +245,6 @@ extern u32 sub_0808288C(Entity*, u32, u32, u32);
|
|||
extern void sub_0806FDA0(Entity*);
|
||||
extern void sub_080AE008(Entity*, u32, u32);
|
||||
extern u32 sub_08016A30(Entity*);
|
||||
extern u32 IsItemEquipped(u32);
|
||||
extern void sub_08077728();
|
||||
extern void sub_0807AEE4();
|
||||
extern u32 sub_08078EFC();
|
||||
|
|
@ -241,12 +252,6 @@ extern void sub_0807921C();
|
|||
extern void sub_0807A1B8();
|
||||
extern void sub_08079938();
|
||||
extern void sub_0807ACCC(Entity*);
|
||||
extern void HandleIntroScreen(void);
|
||||
extern void HandleChooseFileScreen(void);
|
||||
extern void HandleGameplayScreen(void);
|
||||
extern void HandleGameOverScreen(void);
|
||||
extern void HandleCreditsScreen(void);
|
||||
extern void HandleDebugTextScreen(void);
|
||||
extern void sub_080A2BE4(Entity*, u32);
|
||||
extern u32 sub_08097ADC(Entity*);
|
||||
extern void sub_08097B24(Entity*);
|
||||
|
|
@ -265,7 +270,6 @@ extern u32 sub_080040A8(Entity*);
|
|||
extern u32 sub_08017850(Entity*);
|
||||
extern void sub_080809D4(void);
|
||||
extern void sub_08080CB4(Entity*);
|
||||
extern u32 GetTileTypeByEntity(Entity*);
|
||||
extern u32 sub_0800442E(Entity*);
|
||||
extern void sub_08081404(Entity*, u32);
|
||||
extern void sub_0807B7D8(u32, u32, u32);
|
||||
|
|
@ -288,8 +292,6 @@ extern void sub_080A1D70(Entity*, u32);
|
|||
extern void sub_0806F62C(Entity*, u32, u32);
|
||||
extern u32 sub_08079F8C(void);
|
||||
extern void sub_080A1ED0(u32, u32, u32);
|
||||
extern void DeleteManager(Manager*);
|
||||
extern bool32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY);
|
||||
extern u32 sub_0806F5B0(u32);
|
||||
extern void sub_0801DFB4(Entity*, u32, u32, u32);
|
||||
extern void sub_0801E00C();
|
||||
|
|
@ -318,10 +320,19 @@ extern void sub_0807A108();
|
|||
extern u32 sub_08079FC4(u32);
|
||||
extern void sub_0800455E(Entity*);
|
||||
extern void sub_08008790(Entity*, u32);
|
||||
extern u32 CheckIsDungeon();
|
||||
extern void sub_0804ACF8();
|
||||
extern void sub_08073904(Entity*);
|
||||
extern u32 sub_08056134(void);
|
||||
extern u32 sub_0807CF30(void*);
|
||||
extern void sub_08004484(Entity*, Entity*);
|
||||
extern void sub_080564C8(u32);
|
||||
extern void sub_08056F70(void);
|
||||
extern void sub_08056C68(void);
|
||||
extern void sub_08056D70(void);
|
||||
extern void sub_0805EEB4(u8*, u32, u32);
|
||||
extern void sub_08056FBC(void*);
|
||||
extern void sub_08056C54(u32);
|
||||
extern void sub_08056BDC(u32);
|
||||
extern void sub_08056F88(u32, u32);
|
||||
extern u32 sub_08056CC0(u32);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ static void sub_08050624(u32);
|
|||
static void sub_0805066C(void);
|
||||
static void sub_080507FC(void);
|
||||
|
||||
extern void _DmaCopy(const void* src, void* dest, u32 size);
|
||||
extern void sub_08056FEC(u32, struct_020227E8*);
|
||||
extern void sub_0805F46C(u32, struct_080FC844*);
|
||||
extern void sub_0801C4A0(u32, u32);
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ extern void sub_0804FF84(u32);
|
|||
extern u16 gPaletteBuffer[];
|
||||
extern void VBlankInterruptWait(void);
|
||||
extern void DisableInterruptsAndDMA(void);
|
||||
extern void _DmaCopy(void*, u8*, int);
|
||||
extern void sub_08016B34(void);
|
||||
|
||||
static void sub_08055F70(void);
|
||||
|
|
|
|||
173
src/textbox.c
173
src/textbox.c
|
|
@ -1,16 +1,57 @@
|
|||
#include "global.h"
|
||||
#include "room.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "textbox.h"
|
||||
#include "structures.h"
|
||||
|
||||
void _DmaZero();
|
||||
void ShowTextbox();
|
||||
void TextboxAtPosition();
|
||||
|
||||
extern u32 gUnk_02022780;
|
||||
typedef struct {
|
||||
u8 _0;
|
||||
u8 _1;
|
||||
u8 _2;
|
||||
u8 _3[5];
|
||||
u16 _8;
|
||||
u8 _b[0x16];
|
||||
u8 _20;
|
||||
u8 _21;
|
||||
u8 _22[0xa];
|
||||
void* _2c;
|
||||
u8 _30[0x23];
|
||||
u8 _53;
|
||||
u16 _54;
|
||||
u8 _56[0x2];
|
||||
void* _58;
|
||||
u8 _5c;
|
||||
u8 _5d;
|
||||
u8 _5e[24];
|
||||
u8 _76;
|
||||
u8 _77[0x11];
|
||||
u8 _88;
|
||||
u8 _89;
|
||||
u8 _8a;
|
||||
u8 _8b[0xe];
|
||||
u8 _99;
|
||||
u8 _9a;
|
||||
u8 _9b;
|
||||
u8 _9c;
|
||||
u8 _9d;
|
||||
u8 _9e[0xa];
|
||||
} struct_02022780;
|
||||
extern struct_02022780 gUnk_02022780;
|
||||
static_assert(sizeof(struct_02022780) == 0xa8);
|
||||
|
||||
extern const s32 (*const gUnk_08107BC8[])();
|
||||
extern const void (*const gUnk_08107BF4[])(struct_02022780*);
|
||||
|
||||
extern u32 gUnk_02036A40;
|
||||
extern u32 gUnk_02036A38;
|
||||
extern u8 gUnk_02024030;
|
||||
extern u8 gUnk_020227A0;
|
||||
extern u8 gUnk_02000D00;
|
||||
extern u8 gUnk_08107BE0;
|
||||
|
||||
s32 sub_08056338(void) {
|
||||
s32 result;
|
||||
|
|
@ -60,7 +101,7 @@ void TextboxAtPosition(u32 index, u32 x, u32 y) {
|
|||
}
|
||||
|
||||
void ShowTextbox(u32 index, u32 param_2, u32* dest) {
|
||||
_DmaZero(&gTextBox, 32, dest);
|
||||
_DmaZero(&gTextBox, 32);
|
||||
gTextBox.textIndex = index;
|
||||
gTextBox.textSpeed = 99;
|
||||
gTextBox.textWindowWidth = 26;
|
||||
|
|
@ -77,3 +118,129 @@ void sub_08056418(void) {
|
|||
_DmaZero(&gUnk_02036A38, 8);
|
||||
_DmaZero(&gUnk_02000040, 4);
|
||||
}
|
||||
|
||||
void sub_08056458(void) {
|
||||
int iVar1;
|
||||
|
||||
if (gTextBox.doTextBox == 1) {
|
||||
_DmaZero((u32*)&gUnk_02022780, sizeof(gUnk_02022780));
|
||||
sub_080564C8(1);
|
||||
}
|
||||
|
||||
if (gUnk_02022780._8a != 0) {
|
||||
gUnk_02022780._8a--;
|
||||
} else {
|
||||
do {
|
||||
iVar1 = gUnk_08107BC8[gUnk_02022780._88]();
|
||||
} while (iVar1 != 0);
|
||||
}
|
||||
if (gUnk_02022780._9d != 0) {
|
||||
gUnk_02022780._9d = 0;
|
||||
sub_08056F70();
|
||||
}
|
||||
sub_08056C68();
|
||||
sub_08056D70();
|
||||
}
|
||||
|
||||
void sub_080564C8(u32 a1) {
|
||||
gUnk_02022780._88 = a1;
|
||||
gUnk_02022780._89 = 0;
|
||||
}
|
||||
|
||||
u32 sub_080564DC(void) {
|
||||
gUnk_02022780._99 = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// regalloc in loop
|
||||
NONMATCH("asm/non_matching/textbox/sub_080564EC.inc", u32 sub_080564EC(void)) {
|
||||
u32 uVar1;
|
||||
char* dest;
|
||||
u32 i;
|
||||
char c;
|
||||
|
||||
_DmaZero((void *)&gUnk_02036A40, 8);
|
||||
_DmaZero((void *)&gUnk_02024030, 0x18);
|
||||
_DmaZero((void *)&gUnk_02022780, 0xa8);
|
||||
_DmaCopy(&gTextBox, &gUnk_02022780, 32);
|
||||
if (gUnk_02022780._2 == 0x63) {
|
||||
gUnk_02022780._2 = gUnk_02000000->messageSpeed;
|
||||
}
|
||||
gUnk_02022780._9c = 0xff;
|
||||
sub_0805EEB4(&gUnk_02022780._20, gUnk_02022780._8, 32);
|
||||
gUnk_02022780._5c = 2;
|
||||
gUnk_02022780._5d = 0xe;
|
||||
dest = gUnk_02022780._5e;
|
||||
|
||||
for (i = 0; i < 6; ++i) {
|
||||
c = gUnk_02002A40.playerName[i];
|
||||
if (c == '\0') break;
|
||||
dest[i] = c;
|
||||
}
|
||||
|
||||
dest[0] = 2;
|
||||
dest[1] = 15;
|
||||
dest[2] = 0;
|
||||
sub_08056FBC(&gUnk_02022780);
|
||||
gUnk_02022780._2c = &gUnk_08107BE0;
|
||||
gUnk_02022780._58 = &gUnk_02000D00;
|
||||
gUnk_02022780._54 = 0xd0;
|
||||
sub_08056C54(2);
|
||||
sub_08056BDC(0);
|
||||
sub_080564C8(2);
|
||||
return 1;
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
u32 sub_080565B4(void) {
|
||||
if (gUnk_02022780._89 == 0) {
|
||||
gUnk_02022780._89 = 1;
|
||||
gUnk_02022780._99 = 1;
|
||||
sub_08056F88(gUnk_02022780._3[0], gUnk_02022780._53);
|
||||
PlaySFX(0x65);
|
||||
}
|
||||
|
||||
if (sub_08056CC0(1)) {
|
||||
gUnk_02022780._99 = 2;
|
||||
sub_080564C8(2);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_080565F8(void) {
|
||||
if (gUnk_02022780._89 == 0) {
|
||||
gUnk_02022780._89 = 1;
|
||||
gUnk_02022780._99 = 3;
|
||||
sub_08056BDC(0);
|
||||
PlaySFX(0x66);
|
||||
}
|
||||
|
||||
if (sub_08056CC0(-1)) {
|
||||
gUnk_02022780._99 = 0;
|
||||
sub_080564C8(2);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_08056640() {
|
||||
sub_08056C54(0);
|
||||
sub_080564C8(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_08056654(void) {
|
||||
sub_08056C54(4);
|
||||
gUnk_08107BF4[gUnk_02022780._89](&gUnk_02022780);
|
||||
sub_08056CC0(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_08056684(struct_02022780* this) {
|
||||
if ((gUnk_02022780._20 & 1) == 0) {
|
||||
if (gUnk_02022780._99 == '\0') {
|
||||
sub_080564C8(5);
|
||||
}
|
||||
} else {
|
||||
this->_89 = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
"files.associations" : {
|
||||
"algorithm": "cpp",
|
||||
"ios": "c",
|
||||
"functions.h": "c"
|
||||
"functions.h": "c",
|
||||
"textbox.h": "c",
|
||||
"structures.h": "c"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue