Some symbol renaming
This commit is contained in:
@@ -1,558 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_813C5D4
|
||||
sub_813C5D4: @ 813C5D4
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
ldr r2, _0813C5F0 @ =0x0000ffff
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
ldr r1, _0813C5F4 @ =gDecompressionBuffer + 0x3D00
|
||||
ldr r2, _0813C5F8 @ =0x010000e0
|
||||
mov r0, sp
|
||||
bl CpuSet
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813C5F0: .4byte 0x0000ffff
|
||||
_0813C5F4: .4byte gDecompressionBuffer + 0x3D00
|
||||
_0813C5F8: .4byte 0x010000e0
|
||||
thumb_func_end sub_813C5D4
|
||||
|
||||
thumb_func_start sub_813C5FC
|
||||
sub_813C5FC: @ 813C5FC
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
ldr r2, _0813C618 @ =0x0000ffff
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
ldr r1, _0813C61C @ =gDecompressionBuffer + 0x3400
|
||||
ldr r2, _0813C620 @ =0x01000200
|
||||
mov r0, sp
|
||||
bl CpuSet
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813C618: .4byte 0x0000ffff
|
||||
_0813C61C: .4byte gDecompressionBuffer + 0x3400
|
||||
_0813C620: .4byte 0x01000200
|
||||
thumb_func_end sub_813C5FC
|
||||
|
||||
thumb_func_start sub_813C624
|
||||
sub_813C624: @ 813C624
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
ldr r2, _0813C640 @ =0x0000ffff
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
ldr r1, _0813C644 @ =gDecompressionBuffer
|
||||
ldr r2, _0813C648 @ =0x01001a00
|
||||
mov r0, sp
|
||||
bl CpuSet
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813C640: .4byte 0x0000ffff
|
||||
_0813C644: .4byte gDecompressionBuffer
|
||||
_0813C648: .4byte 0x01001a00
|
||||
thumb_func_end sub_813C624
|
||||
|
||||
thumb_func_start sub_813C64C
|
||||
sub_813C64C: @ 813C64C
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _0813C680 @ =gUnknown_203F190
|
||||
adds r3, r4, 0
|
||||
ldm r0!, {r5-r7}
|
||||
stm r3!, {r5-r7}
|
||||
movs r0, 0
|
||||
strb r1, [r4, 0xC]
|
||||
strb r2, [r4, 0xD]
|
||||
strb r0, [r4, 0xE]
|
||||
ldrh r0, [r4, 0x4]
|
||||
ldrh r1, [r4, 0x6]
|
||||
cmp r0, r1
|
||||
bcs _0813C668
|
||||
strh r0, [r4, 0x6]
|
||||
_0813C668:
|
||||
movs r0, 0
|
||||
bl sub_813BDA4
|
||||
bl sub_813C624
|
||||
bl sub_813C7CC
|
||||
bl sub_813C828
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813C680: .4byte gUnknown_203F190
|
||||
thumb_func_end sub_813C64C
|
||||
|
||||
thumb_func_start sub_813C684
|
||||
sub_813C684: @ 813C684
|
||||
ldr r1, _0813C68C @ =gUnknown_203F176
|
||||
strb r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0813C68C: .4byte gUnknown_203F176
|
||||
thumb_func_end sub_813C684
|
||||
|
||||
thumb_func_start sub_813C690
|
||||
sub_813C690: @ 813C690
|
||||
push {lr}
|
||||
ldr r1, _0813C6A0 @ =gUnknown_203F176
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _0813C6A4
|
||||
subs r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _0813C752
|
||||
.align 2, 0
|
||||
_0813C6A0: .4byte gUnknown_203F176
|
||||
_0813C6A4:
|
||||
ldr r2, _0813C6C8 @ =gMain
|
||||
ldrh r1, [r2, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813C6D0
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
ldr r1, _0813C6CC @ =gUnknown_203F190
|
||||
ldrb r0, [r1, 0xC]
|
||||
ldrb r2, [r1, 0xD]
|
||||
adds r0, r2
|
||||
ldr r1, [r1]
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r0, [r0, 0x4]
|
||||
b _0813C756
|
||||
.align 2, 0
|
||||
_0813C6C8: .4byte gMain
|
||||
_0813C6CC: .4byte gUnknown_203F190
|
||||
_0813C6D0:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813C6E4
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
movs r0, 0x2
|
||||
negs r0, r0
|
||||
b _0813C756
|
||||
_0813C6E4:
|
||||
movs r0, 0xC0
|
||||
lsls r0, 2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813C6F4
|
||||
movs r0, 0x6
|
||||
negs r0, r0
|
||||
b _0813C756
|
||||
_0813C6F4:
|
||||
ldrh r1, [r2, 0x30]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813C702
|
||||
movs r0, 0x1
|
||||
b _0813C718
|
||||
_0813C702:
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813C70E
|
||||
movs r0, 0x1
|
||||
b _0813C73A
|
||||
_0813C70E:
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813C730
|
||||
movs r0, 0x7
|
||||
_0813C718:
|
||||
movs r1, 0
|
||||
bl sub_813C944
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0813C72A
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
_0813C72A:
|
||||
movs r0, 0x4
|
||||
negs r0, r0
|
||||
b _0813C756
|
||||
_0813C730:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0813C752
|
||||
movs r0, 0x7
|
||||
_0813C73A:
|
||||
movs r1, 0x1
|
||||
bl sub_813C944
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0813C74C
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
_0813C74C:
|
||||
movs r0, 0x5
|
||||
negs r0, r0
|
||||
b _0813C756
|
||||
_0813C752:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
_0813C756:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_813C690
|
||||
|
||||
thumb_func_start sub_813C75C
|
||||
sub_813C75C: @ 813C75C
|
||||
push {r4-r6,lr}
|
||||
ldr r5, _0813C784 @ =gUnknown_203F190
|
||||
ldrh r1, [r5, 0x4]
|
||||
subs r0, r1, 0x7
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
cmp r1, 0x7
|
||||
bls _0813C7C4
|
||||
ldrb r4, [r5, 0xC]
|
||||
ldrb r0, [r5, 0xD]
|
||||
adds r4, r0
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_813C004
|
||||
cmp r4, 0
|
||||
bne _0813C788
|
||||
movs r0, 0x1
|
||||
b _0813C7A2
|
||||
.align 2, 0
|
||||
_0813C784: .4byte gUnknown_203F190
|
||||
_0813C788:
|
||||
ldrb r0, [r5, 0xC]
|
||||
cmp r0, 0
|
||||
bne _0813C798
|
||||
ldrb r0, [r5, 0xD]
|
||||
cmp r0, 0
|
||||
beq _0813C798
|
||||
movs r0, 0x1
|
||||
b _0813C7A2
|
||||
_0813C798:
|
||||
ldr r0, _0813C7AC @ =gUnknown_203F190
|
||||
ldrb r0, [r0, 0xC]
|
||||
cmp r0, r6
|
||||
bne _0813C7B0
|
||||
movs r0, 0
|
||||
_0813C7A2:
|
||||
movs r1, 0x1
|
||||
bl sub_813C004
|
||||
b _0813C7C4
|
||||
.align 2, 0
|
||||
_0813C7AC: .4byte gUnknown_203F190
|
||||
_0813C7B0:
|
||||
cmp r0, 0
|
||||
beq _0813C7C4
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
bl sub_813C004
|
||||
movs r0, 0x1
|
||||
movs r1, 0x1
|
||||
bl sub_813C004
|
||||
_0813C7C4:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_813C75C
|
||||
|
||||
thumb_func_start sub_813C7CC
|
||||
sub_813C7CC: @ 813C7CC
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
movs r0, 0x2
|
||||
movs r1, 0x1
|
||||
bl GetFontAttribute
|
||||
adds r0, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
ldr r3, _0813C824 @ =gUnknown_203F190
|
||||
ldrb r5, [r3, 0xC]
|
||||
movs r6, 0
|
||||
ldrh r0, [r3, 0x6]
|
||||
cmp r6, r0
|
||||
bge _0813C81A
|
||||
adds r4, r3, 0
|
||||
movs r7, 0
|
||||
_0813C7F2:
|
||||
ldrb r1, [r4, 0x8]
|
||||
adds r1, 0x8
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldrb r2, [r4, 0x9]
|
||||
adds r2, r7
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r3, [r4]
|
||||
lsls r0, r5, 3
|
||||
adds r0, r3
|
||||
ldr r0, [r0]
|
||||
bl sub_813C4CC
|
||||
adds r5, 0x1
|
||||
add r7, r8
|
||||
adds r6, 0x1
|
||||
ldrh r0, [r4, 0x6]
|
||||
cmp r6, r0
|
||||
blt _0813C7F2
|
||||
_0813C81A:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813C824: .4byte gUnknown_203F190
|
||||
thumb_func_end sub_813C7CC
|
||||
|
||||
thumb_func_start sub_813C828
|
||||
sub_813C828: @ 813C828
|
||||
push {r4,lr}
|
||||
movs r0, 0x2
|
||||
movs r1, 0x1
|
||||
bl GetFontAttribute
|
||||
adds r0, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r3, _0813C858 @ =gUnknown_203F190
|
||||
ldrb r1, [r3, 0x8]
|
||||
ldrb r2, [r3, 0xD]
|
||||
adds r4, r2, 0
|
||||
muls r4, r0
|
||||
adds r2, r4, 0
|
||||
ldrb r3, [r3, 0x9]
|
||||
adds r2, r3
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r0, _0813C85C @ =gFameCheckerText_ListMenuCursor
|
||||
bl sub_813C4CC
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813C858: .4byte gUnknown_203F190
|
||||
_0813C85C: .4byte gFameCheckerText_ListMenuCursor
|
||||
thumb_func_end sub_813C828
|
||||
|
||||
thumb_func_start sub_813C860
|
||||
sub_813C860: @ 813C860
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
movs r0, 0x2
|
||||
movs r1, 0x1
|
||||
bl GetFontAttribute
|
||||
adds r0, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r3, _0813C894 @ =gUnknown_203F190
|
||||
ldrb r1, [r3, 0x8]
|
||||
adds r2, r4, 0
|
||||
muls r2, r0
|
||||
ldrb r3, [r3, 0x9]
|
||||
adds r2, r3
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r0, _0813C898 @ =gUnknown_841CB4E
|
||||
bl sub_813C4CC
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813C894: .4byte gUnknown_203F190
|
||||
_0813C898: .4byte gUnknown_841CB4E
|
||||
thumb_func_end sub_813C860
|
||||
|
||||
thumb_func_start sub_813C89C
|
||||
sub_813C89C: @ 813C89C
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0813C8EC
|
||||
ldr r0, _0813C8B4 @ =gUnknown_203F190
|
||||
ldrh r1, [r0, 0x6]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0x1
|
||||
bne _0813C8B8
|
||||
movs r4, 0
|
||||
b _0813C8CA
|
||||
.align 2, 0
|
||||
_0813C8B4: .4byte gUnknown_203F190
|
||||
_0813C8B8:
|
||||
ldrh r0, [r5, 0x6]
|
||||
lsrs r2, r0, 1
|
||||
movs r1, 0x1
|
||||
ands r1, r0
|
||||
adds r2, r1
|
||||
subs r0, r2
|
||||
subs r0, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
_0813C8CA:
|
||||
ldrb r1, [r5, 0xC]
|
||||
cmp r1, 0
|
||||
bne _0813C8DA
|
||||
ldrb r0, [r5, 0xD]
|
||||
cmp r0, 0
|
||||
beq _0813C926
|
||||
subs r0, 0x1
|
||||
b _0813C93A
|
||||
_0813C8DA:
|
||||
ldrb r0, [r5, 0xD]
|
||||
cmp r0, r4
|
||||
bls _0813C8E4
|
||||
subs r0, 0x1
|
||||
b _0813C93A
|
||||
_0813C8E4:
|
||||
subs r0, r1, 0x1
|
||||
strb r0, [r5, 0xC]
|
||||
movs r0, 0x2
|
||||
b _0813C93E
|
||||
_0813C8EC:
|
||||
ldr r0, _0813C8FC @ =gUnknown_203F190
|
||||
ldrh r1, [r0, 0x6]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0x1
|
||||
bne _0813C900
|
||||
movs r4, 0
|
||||
b _0813C90A
|
||||
.align 2, 0
|
||||
_0813C8FC: .4byte gUnknown_203F190
|
||||
_0813C900:
|
||||
ldrh r0, [r5, 0x6]
|
||||
lsrs r2, r0, 1
|
||||
movs r1, 0x1
|
||||
ands r0, r1
|
||||
adds r4, r2, r0
|
||||
_0813C90A:
|
||||
adds r1, r5, 0
|
||||
ldrb r2, [r1, 0xC]
|
||||
ldrh r0, [r1, 0x4]
|
||||
ldrh r3, [r1, 0x6]
|
||||
subs r0, r3
|
||||
cmp r2, r0
|
||||
bne _0813C92A
|
||||
ldrb r2, [r1, 0xD]
|
||||
subs r0, r3, 0x1
|
||||
cmp r2, r0
|
||||
bge _0813C926
|
||||
adds r0, r2, 0x1
|
||||
strb r0, [r1, 0xD]
|
||||
b _0813C93C
|
||||
_0813C926:
|
||||
movs r0, 0
|
||||
b _0813C93E
|
||||
_0813C92A:
|
||||
ldrb r0, [r1, 0xD]
|
||||
cmp r0, r4
|
||||
bcc _0813C938
|
||||
adds r0, r2, 0x1
|
||||
strb r0, [r1, 0xC]
|
||||
movs r0, 0x2
|
||||
b _0813C93E
|
||||
_0813C938:
|
||||
adds r0, 0x1
|
||||
_0813C93A:
|
||||
strb r0, [r5, 0xD]
|
||||
_0813C93C:
|
||||
movs r0, 0x1
|
||||
_0813C93E:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_813C89C
|
||||
|
||||
thumb_func_start sub_813C944
|
||||
sub_813C944: @ 813C944
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r6, r1, 24
|
||||
ldr r0, _0813C97C @ =gUnknown_203F190
|
||||
ldrb r7, [r0, 0xD]
|
||||
movs r5, 0
|
||||
cmp r5, r2
|
||||
bge _0813C96C
|
||||
adds r4, r2, 0
|
||||
_0813C95A:
|
||||
adds r0, r6, 0
|
||||
bl sub_813C89C
|
||||
orrs r5, r0
|
||||
lsls r0, r5, 24
|
||||
lsrs r5, r0, 24
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bne _0813C95A
|
||||
_0813C96C:
|
||||
cmp r5, 0x1
|
||||
beq _0813C980
|
||||
cmp r5, 0x1
|
||||
ble _0813C978
|
||||
cmp r5, 0x3
|
||||
ble _0813C990
|
||||
_0813C978:
|
||||
movs r0, 0x1
|
||||
b _0813C9D6
|
||||
.align 2, 0
|
||||
_0813C97C: .4byte gUnknown_203F190
|
||||
_0813C980:
|
||||
adds r0, r7, 0
|
||||
bl sub_813C860
|
||||
bl sub_813C828
|
||||
bl sub_813BC5C
|
||||
b _0813C9D4
|
||||
_0813C990:
|
||||
bl sub_812BF88
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0813C9B8
|
||||
movs r0, 0x2
|
||||
bl sub_813C684
|
||||
bl sub_813C624
|
||||
bl sub_813C7CC
|
||||
bl sub_813C828
|
||||
bl sub_812BDEC
|
||||
bl sub_813C75C
|
||||
b _0813C9D0
|
||||
_0813C9B8:
|
||||
movs r0, 0
|
||||
bl sub_813BDA4
|
||||
bl sub_813C624
|
||||
bl sub_813C7CC
|
||||
bl sub_813C828
|
||||
movs r0, 0x1
|
||||
bl sub_813BDA4
|
||||
_0813C9D0:
|
||||
bl sub_813BC5C
|
||||
_0813C9D4:
|
||||
movs r0, 0
|
||||
_0813C9D6:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_813C944
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
@@ -73,7 +73,7 @@ _080F516C:
|
||||
ldr r1, _080F5188 @ =0x0000ffff
|
||||
movs r2, 0x80
|
||||
bl m4aMPlayVolumeControl
|
||||
bl sub_813BB38
|
||||
bl SaveCallbacks
|
||||
ldr r1, _080F518C @ =gUnknown_203AB50
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
@@ -83,9 +83,9 @@ _080F5184: .4byte gMPlayInfo_BGM
|
||||
_080F5188: .4byte 0x0000ffff
|
||||
_080F518C: .4byte gUnknown_203AB50
|
||||
_080F5190:
|
||||
bl sub_813BBAC
|
||||
bl sub_813BB74
|
||||
bl sub_813BBC8
|
||||
bl SaveMapTiles
|
||||
bl SaveMapGPURegs
|
||||
bl SaveMapTextColors
|
||||
bl sub_80F52EC
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
@@ -197,7 +197,7 @@ _080F5298:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
bl sub_813BC2C
|
||||
bl RestoreMapTiles
|
||||
bl sub_80F52EC
|
||||
ldr r1, _080F52B0 @ =gUnknown_203AB50
|
||||
movs r0, 0x8
|
||||
@@ -211,9 +211,9 @@ _080F52B4:
|
||||
movs r2, 0x80
|
||||
lsls r2, 1
|
||||
bl m4aMPlayVolumeControl
|
||||
bl sub_813BC48
|
||||
bl sub_813BBF4
|
||||
bl sub_813BBDC
|
||||
bl RestoreMapTextColors
|
||||
bl RestoreGPURegs
|
||||
bl RestoreCallbacks
|
||||
ldr r0, _080F52E4 @ =gUnknown_3005430
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
|
||||
+4
-4
@@ -1912,16 +1912,16 @@ gUnknown_841B779:: @ 841B779
|
||||
|
||||
.include "data/text/teachy_tv.inc"
|
||||
|
||||
gUnknown_841CB3C:: @ 841CB3C
|
||||
gString_Bill:: @ 841CB3C
|
||||
.string "BILL$"
|
||||
|
||||
gUnknown_841CB41:: @ 841CB41
|
||||
gString_Someone:: @ 841CB41
|
||||
.string "SOMEONE$"
|
||||
|
||||
gUnknown_841CB49:: @ 841CB49
|
||||
gString_Help:: @ 841CB49
|
||||
.string "HELP$"
|
||||
|
||||
gUnknown_841CB4E:: @ 841CB4E
|
||||
gString_HelpSystem_ClearTo8:: @ 841CB4E
|
||||
.string "{CLEAR_TO 8}$"
|
||||
|
||||
gUnknown_841CB52:: @ 841CB52
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
#define TEST_BUTTON(field, button) ({(field) & (button);})
|
||||
#define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button)
|
||||
#define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button)
|
||||
#define JOY_REPT(button) TEST_BUTTON(gMain.newAndRepeatedKeys, button)
|
||||
|
||||
extern u8 gStringVar1[];
|
||||
extern u8 gStringVar2[];
|
||||
|
||||
+59
-36
@@ -3,27 +3,28 @@
|
||||
|
||||
#include "global.h"
|
||||
#include "list_menu.h"
|
||||
#include "blit.h"
|
||||
|
||||
struct HelpSystemStruct_203F190_sub
|
||||
struct HelpSystemListMenu_sub
|
||||
{
|
||||
struct ListMenuItem * field_00;
|
||||
u16 field_04;
|
||||
u16 field_06;
|
||||
u8 field_08;
|
||||
u8 field_09;
|
||||
struct ListMenuItem * items;
|
||||
u16 totalItems;
|
||||
u16 maxShowed;
|
||||
u8 left;
|
||||
u8 top;
|
||||
};
|
||||
|
||||
struct HelpSystemStruct_203F190
|
||||
struct HelpSystemListMenu
|
||||
{
|
||||
struct HelpSystemStruct_203F190_sub sub;
|
||||
struct HelpSystemListMenu_sub sub;
|
||||
u8 field_0C;
|
||||
u8 field_0D;
|
||||
u8 field_0E;
|
||||
u8 filler_10[0xC];
|
||||
};
|
||||
|
||||
extern struct HelpSystemStruct_203F190 gUnknown_203F190;
|
||||
extern struct ListMenuItem gUnknown_203F1AC[];
|
||||
extern struct HelpSystemListMenu gHelpSystemListMenu;
|
||||
extern struct ListMenuItem gHelpSystemListMenuItems[];
|
||||
extern bool8 gUnknown_3005ECC;
|
||||
extern u8 gUnknown_203F175;
|
||||
|
||||
@@ -35,36 +36,58 @@ bool8 sub_812B45C(void);
|
||||
void sub_812B478(void);
|
||||
void sub_812B484(void);
|
||||
void sub_812B4B8(void);
|
||||
bool8 sub_812BB9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BC54(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BC80(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BCA8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BCD0(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BD2C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BD64(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BD98(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BE10(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BEEC(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BF18(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BB9C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BC54(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BC80(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BCA8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BCD0(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BD2C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BD64(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BD98(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
void sub_812BDEC(void);
|
||||
bool8 sub_812BE10(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BEEC(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BF18(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
bool8 sub_812BF88(void);
|
||||
|
||||
// help_system
|
||||
void sub_813C64C(struct HelpSystemStruct_203F190 *, u8, u8);
|
||||
void sub_813C4CC(const u8 *, u8, u8);
|
||||
void sub_813BDA4(u8);
|
||||
bool8 RunHelpSystemCallback(void);
|
||||
void SaveCallbacks(void);
|
||||
void SaveMapGPURegs(void);
|
||||
void SaveMapTiles(void);
|
||||
void SaveMapTextColors(void);
|
||||
void RestoreCallbacks(void);
|
||||
void RestoreGPURegs(void);
|
||||
void RestoreMapTiles(void);
|
||||
void RestoreMapTextColors(void);
|
||||
void CommitTilemap(void);
|
||||
void sub_813BCF4(void);
|
||||
void sub_813BD14(u8);
|
||||
void sub_813BD5C(u8);
|
||||
void sub_813BDA4(u8);
|
||||
void sub_813BDE8(u8);
|
||||
void sub_813BFC0(u8);
|
||||
void sub_813BE78(u8);
|
||||
s32 sub_813C690(void);
|
||||
void sub_813C75C(void);
|
||||
void sub_813C684(u8);
|
||||
void sub_813C004(u8, u8);
|
||||
void sub_813C50C(const u8 *a0, const u8 *a1);
|
||||
void sub_813BEE4(u8);
|
||||
void sub_813C624(void);
|
||||
void sub_813C5FC(void);
|
||||
void sub_813C488(const u8 *str);
|
||||
void sub_813C584(const u8 *str);
|
||||
void sub_813BE30(u8);
|
||||
void sub_813BE78(u8);
|
||||
void sub_813BEE4(u8);
|
||||
void sub_813BF50(u8);
|
||||
void sub_813BFC0(u8);
|
||||
void sub_813C004(u8, u8);
|
||||
void HelpSystem_PrintTextRightAlign_Row52(const u8 *str);
|
||||
void HelpSystem_PrintTextAt(const u8 *, u8, u8);
|
||||
void HelpSystem_PrintTwoStrings(const u8 *a0, const u8 *a1);
|
||||
void HelpSystem_PrintText_813C584(const u8 *str);
|
||||
void HelpSystem_FillPanel2(void);
|
||||
void HelpSystem_FillPanel1(void);
|
||||
void HelpSystem_InitListMenuController(struct HelpSystemListMenu *, u8, u8);
|
||||
void HelpSystem_SetInputDelay(u8);
|
||||
s32 HelpSystem_GetMenuInput(void);
|
||||
void sub_813C75C(void);
|
||||
|
||||
void DecompressAndRenderGlyph(u8 font, u16 glyph, struct Bitmap *srcBlit, struct Bitmap *destBlit, u8 *destBuffer, u8 x, u8 y, u8 width, u8 height);
|
||||
void HelpSystem_PrintText_Row61(const u8 * str);
|
||||
void HelpSystem_FillPanel3(void);
|
||||
void PrintListMenuItems(void);
|
||||
void PlaceListMenuCursor(void);
|
||||
bool8 MoveCursor(u8 by, u8 dirn);
|
||||
|
||||
#endif //GUARD_HELP_SYSTEM_H
|
||||
|
||||
+4
-4
@@ -143,9 +143,9 @@ extern const u8 gUnknown_841DFBE[];
|
||||
extern const u8 gUnknown_841DFC9[];
|
||||
|
||||
// help_system
|
||||
extern const u8 gUnknown_841CB3C[];
|
||||
extern const u8 gUnknown_841CB41[];
|
||||
extern const u8 gUnknown_841CB49[];
|
||||
extern const u8 gUnknown_841CB4E[];
|
||||
extern const u8 gString_Bill[];
|
||||
extern const u8 gString_Someone[];
|
||||
extern const u8 gString_Help[];
|
||||
extern const u8 gString_HelpSystem_ClearTo8[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
||||
@@ -249,7 +249,6 @@ SECTIONS {
|
||||
asm/pokedex_area_markers.o(.text);
|
||||
asm/pokemon_summary_screen.o(.text);
|
||||
src/help_system.o(.text);
|
||||
asm/help_system.o(.text);
|
||||
asm/wild_pokemon_area.o(.text);
|
||||
asm/unk_text_util.o(.text);
|
||||
asm/berry_pouch.o(.text);
|
||||
|
||||
+364
-155
@@ -16,21 +16,6 @@
|
||||
|
||||
extern u8 gGlyphInfo[];
|
||||
|
||||
struct DmaController
|
||||
{
|
||||
void * dest;
|
||||
void * src;
|
||||
u32 size:21;
|
||||
u32 destMode:2;
|
||||
u32 srcMode:2;
|
||||
u32 repeat:1;
|
||||
u32 width:1;
|
||||
u32 dreqOn:1;
|
||||
u32 startMode:3;
|
||||
u32 intrEnable:1;
|
||||
u32 dmaEnable:1;
|
||||
};
|
||||
|
||||
struct HelpSystemVideoState
|
||||
{
|
||||
/*0x00*/ MainCallback savedVblankCb;
|
||||
@@ -44,42 +29,26 @@ struct HelpSystemVideoState
|
||||
/*0x15*/ u8 state;
|
||||
};
|
||||
|
||||
void sub_813BB38(void);
|
||||
void sub_813BB74(void);
|
||||
void sub_813BBAC(void);
|
||||
void sub_813BBC8(void);
|
||||
void sub_813BBDC(void);
|
||||
void sub_813BCF4(void);
|
||||
void sub_813BBF4(void);
|
||||
void sub_813BD14(u8);
|
||||
void sub_813BF50(u8);
|
||||
void sub_813BC2C(void);
|
||||
void sub_813BC48(void);
|
||||
void sub_813BC5C(void);
|
||||
void sub_813C3AC(u8, u16, struct Bitmap *, struct Bitmap *, u8 *, u8, u8, u8, u8);
|
||||
void sub_813C454(const u8 * str);
|
||||
void sub_813C5D4(void);
|
||||
|
||||
EWRAM_DATA u8 gUnknown_203B174[BG_CHAR_SIZE] = {0};
|
||||
static EWRAM_DATA u8 sMapTilesBackup[BG_CHAR_SIZE] = {0};
|
||||
EWRAM_DATA u8 gUnknown_203F174 = 0;
|
||||
EWRAM_DATA u8 gUnknown_203F175 = 0;
|
||||
EWRAM_DATA u8 gUnknown_203F176 = 0;
|
||||
EWRAM_DATA u8 gUnknown_203F177 = 0;
|
||||
EWRAM_DATA struct HelpSystemVideoState gUnknown_203F178 = {0};
|
||||
EWRAM_DATA struct HelpSystemStruct_203F190 gUnknown_203F190 = {0};
|
||||
EWRAM_DATA struct ListMenuItem gUnknown_203F1AC[52] = {0};
|
||||
static EWRAM_DATA u8 sDelayTimer = 0;
|
||||
static EWRAM_DATA u8 sInHelpSystem = 0;
|
||||
static EWRAM_DATA struct HelpSystemVideoState sVideoState = {0};
|
||||
EWRAM_DATA struct HelpSystemListMenu gHelpSystemListMenu = {0};
|
||||
EWRAM_DATA struct ListMenuItem gHelpSystemListMenuItems[52] = {0};
|
||||
|
||||
const u16 gUnknown_8464008[] = INCBIN_U16("graphics/help_system/unk_8464008.4bpp");
|
||||
const u16 gUnknown_8464128[] = INCBIN_U16("graphics/help_system/unk_8464008.gbapal");
|
||||
static const u16 sTiles[] = INCBIN_U16("graphics/help_system/unk_8464008.4bpp");
|
||||
static const u16 sPals[] = INCBIN_U16("graphics/help_system/unk_8464008.gbapal");
|
||||
|
||||
u8 sub_813B870(void)
|
||||
u8 RunHelpSystemCallback(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
switch (gUnknown_203F178.state)
|
||||
switch (sVideoState.state)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_203F177 = 0;
|
||||
sInHelpSystem = 0;
|
||||
if (gSaveBlock2Ptr->optionsButtonMode != OPTIONS_BUTTON_MODE_NORMAL)
|
||||
return 0;
|
||||
if (JOY_NEW(R_BUTTON) && gUnknown_203F175 == 1)
|
||||
@@ -96,39 +65,39 @@ u8 sub_813B870(void)
|
||||
PlaySE(SE_HELP_OPEN);
|
||||
if (!gUnknown_203F174)
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x80);
|
||||
sub_813BB38();
|
||||
gUnknown_203F177 = 1;
|
||||
gUnknown_203F178.state = 1;
|
||||
SaveCallbacks();
|
||||
sInHelpSystem = 1;
|
||||
sVideoState.state = 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
sub_813BBAC();
|
||||
sub_813BB74();
|
||||
sub_813BBC8();
|
||||
(*(vu16 *)PLTT) = gUnknown_8464128[15];
|
||||
SaveMapTiles();
|
||||
SaveMapGPURegs();
|
||||
SaveMapTextColors();
|
||||
(*(vu16 *)PLTT) = sPals[15];
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
gUnknown_203F178.state = 2;
|
||||
sVideoState.state = 2;
|
||||
break;
|
||||
case 2:
|
||||
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
|
||||
RequestDma3Copy(gUnknown_8464128, (void *)PLTT, sizeof(gUnknown_8464128), 0);
|
||||
RequestDma3Copy(gUnknown_8464008, gDecompressionBuffer + 0x3EE0, sizeof(gUnknown_8464008), 0);
|
||||
gUnknown_203F178.state = 3;
|
||||
RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), 0);
|
||||
RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), 0);
|
||||
sVideoState.state = 3;
|
||||
break;
|
||||
case 3:
|
||||
sub_813BCF4();
|
||||
sub_813C5D4();
|
||||
sub_813C5FC();
|
||||
sub_813C454(gUnknown_841CB49);
|
||||
HelpSystem_FillPanel3();
|
||||
HelpSystem_FillPanel2();
|
||||
HelpSystem_PrintText_Row61(gString_Help);
|
||||
sub_813BD14(1);
|
||||
if (sub_812B40C() == TRUE)
|
||||
sub_812BC54(&gUnknown_203F190, gUnknown_203F1AC);
|
||||
sub_812BC54(&gHelpSystemListMenu, gHelpSystemListMenuItems);
|
||||
else
|
||||
sub_812BCA8(&gUnknown_203F190, gUnknown_203F1AC);
|
||||
sub_812BCA8(&gHelpSystemListMenu, gHelpSystemListMenuItems);
|
||||
sub_813BE78(1);
|
||||
sub_813BF50(1);
|
||||
sub_813BC5C();
|
||||
gUnknown_203F178.state = 4;
|
||||
CommitTilemap();
|
||||
sVideoState.state = 4;
|
||||
break;
|
||||
case 4:
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
@@ -136,46 +105,46 @@ u8 sub_813B870(void)
|
||||
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31));
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON);
|
||||
gUnknown_203F178.state = 5;
|
||||
sVideoState.state = 5;
|
||||
break;
|
||||
case 5:
|
||||
if (!sub_812BB9C(&gUnknown_203F190, gUnknown_203F1AC))
|
||||
if (!sub_812BB9C(&gHelpSystemListMenu, gHelpSystemListMenuItems))
|
||||
{
|
||||
PlaySE(SE_HELP_CLOSE);
|
||||
gUnknown_203F178.state = 6;
|
||||
sVideoState.state = 6;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
sub_813BC2C();
|
||||
RestoreMapTiles();
|
||||
for (i = 0; i < 0x200; i += 2)
|
||||
{
|
||||
*((vu16 *)(PLTT + 0x000 + i)) = gUnknown_8464128[15];
|
||||
*((vu16 *)(PLTT + 0x200 + i)) = gUnknown_8464128[15];
|
||||
*((vu16 *)(PLTT + 0x000 + i)) = sPals[15];
|
||||
*((vu16 *)(PLTT + 0x200 + i)) = sPals[15];
|
||||
}
|
||||
gUnknown_203F178.state = 7;
|
||||
sVideoState.state = 7;
|
||||
break;
|
||||
case 7:
|
||||
if (!gUnknown_203F174)
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
|
||||
sub_813BC48();
|
||||
sub_813BBF4();
|
||||
gUnknown_203F178.state = 8;
|
||||
RestoreMapTextColors();
|
||||
RestoreGPURegs();
|
||||
sVideoState.state = 8;
|
||||
break;
|
||||
case 8:
|
||||
sub_813BBDC();
|
||||
gUnknown_203F177 = 0;
|
||||
gUnknown_203F178.state = 0;
|
||||
RestoreCallbacks();
|
||||
sInHelpSystem = 0;
|
||||
sVideoState.state = 0;
|
||||
break;
|
||||
}
|
||||
return gUnknown_203F178.state;
|
||||
return sVideoState.state;
|
||||
}
|
||||
|
||||
void sub_813BB38(void)
|
||||
void SaveCallbacks(void)
|
||||
{
|
||||
vu16 * dma;
|
||||
gUnknown_203F178.savedVblankCb = gMain.vblankCallback;
|
||||
gUnknown_203F178.savedHblankCb = gMain.hblankCallback;
|
||||
sVideoState.savedVblankCb = gMain.vblankCallback;
|
||||
sVideoState.savedHblankCb = gMain.hblankCallback;
|
||||
gMain.vblankCallback = NULL;
|
||||
gMain.hblankCallback = NULL;
|
||||
|
||||
@@ -185,64 +154,64 @@ void sub_813BB38(void)
|
||||
dma[5];
|
||||
}
|
||||
|
||||
void sub_813BB74(void)
|
||||
void SaveMapGPURegs(void)
|
||||
{
|
||||
gUnknown_203F178.savedDispCnt = GetGpuReg(REG_OFFSET_DISPCNT);
|
||||
gUnknown_203F178.savedBg0Cnt = GetGpuReg(REG_OFFSET_BG0CNT);
|
||||
gUnknown_203F178.savedBg0Hofs = GetGpuReg(REG_OFFSET_BG0HOFS);
|
||||
gUnknown_203F178.savedBg0Vofs = GetGpuReg(REG_OFFSET_BG0VOFS);
|
||||
gUnknown_203F178.savedBldCnt = GetGpuReg(REG_OFFSET_BLDCNT);
|
||||
sVideoState.savedDispCnt = GetGpuReg(REG_OFFSET_DISPCNT);
|
||||
sVideoState.savedBg0Cnt = GetGpuReg(REG_OFFSET_BG0CNT);
|
||||
sVideoState.savedBg0Hofs = GetGpuReg(REG_OFFSET_BG0HOFS);
|
||||
sVideoState.savedBg0Vofs = GetGpuReg(REG_OFFSET_BG0VOFS);
|
||||
sVideoState.savedBldCnt = GetGpuReg(REG_OFFSET_BLDCNT);
|
||||
}
|
||||
|
||||
void sub_813BBAC(void)
|
||||
void SaveMapTiles(void)
|
||||
{
|
||||
RequestDma3Copy((void *)BG_CHAR_ADDR(3), gUnknown_203B174, BG_CHAR_SIZE, 0);
|
||||
RequestDma3Copy((void *)BG_CHAR_ADDR(3), sMapTilesBackup, BG_CHAR_SIZE, 0);
|
||||
}
|
||||
|
||||
void sub_813BBC8(void)
|
||||
void SaveMapTextColors(void)
|
||||
{
|
||||
SaveTextColors(
|
||||
&gUnknown_203F178.savedTextColor.fgColor,
|
||||
&gUnknown_203F178.savedTextColor.bgColor,
|
||||
&gUnknown_203F178.savedTextColor.shadowColor
|
||||
&sVideoState.savedTextColor.fgColor,
|
||||
&sVideoState.savedTextColor.bgColor,
|
||||
&sVideoState.savedTextColor.shadowColor
|
||||
);
|
||||
}
|
||||
|
||||
void sub_813BBDC(void)
|
||||
void RestoreCallbacks(void)
|
||||
{
|
||||
gMain.vblankCallback = gUnknown_203F178.savedVblankCb;
|
||||
gMain.hblankCallback = gUnknown_203F178.savedHblankCb;
|
||||
gMain.vblankCallback = sVideoState.savedVblankCb;
|
||||
gMain.hblankCallback = sVideoState.savedHblankCb;
|
||||
}
|
||||
|
||||
void sub_813BBF4(void)
|
||||
void RestoreGPURegs(void)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, gUnknown_203F178.savedBldCnt);
|
||||
SetGpuReg(REG_OFFSET_BG0HOFS, gUnknown_203F178.savedBg0Hofs);
|
||||
SetGpuReg(REG_OFFSET_BG0VOFS, gUnknown_203F178.savedBg0Vofs);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, gUnknown_203F178.savedBg0Cnt);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, gUnknown_203F178.savedDispCnt);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, sVideoState.savedBldCnt);
|
||||
SetGpuReg(REG_OFFSET_BG0HOFS, sVideoState.savedBg0Hofs);
|
||||
SetGpuReg(REG_OFFSET_BG0VOFS, sVideoState.savedBg0Vofs);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, sVideoState.savedBg0Cnt);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, sVideoState.savedDispCnt);
|
||||
}
|
||||
|
||||
void sub_813BC2C(void)
|
||||
void RestoreMapTiles(void)
|
||||
{
|
||||
RequestDma3Copy(gUnknown_203B174, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
|
||||
RequestDma3Copy(sMapTilesBackup, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
|
||||
}
|
||||
|
||||
void sub_813BC48(void)
|
||||
void RestoreMapTextColors(void)
|
||||
{
|
||||
RestoreTextColors(
|
||||
&gUnknown_203F178.savedTextColor.fgColor,
|
||||
&gUnknown_203F178.savedTextColor.bgColor,
|
||||
&gUnknown_203F178.savedTextColor.shadowColor
|
||||
&sVideoState.savedTextColor.fgColor,
|
||||
&sVideoState.savedTextColor.bgColor,
|
||||
&sVideoState.savedTextColor.shadowColor
|
||||
);
|
||||
}
|
||||
|
||||
void sub_813BC5C(void)
|
||||
void CommitTilemap(void)
|
||||
{
|
||||
RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
|
||||
}
|
||||
|
||||
void sub_813BC78(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increment)
|
||||
void HS_DrawBgTilemapRect(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increment)
|
||||
{
|
||||
u16 i, j;
|
||||
|
||||
@@ -255,12 +224,12 @@ void sub_813BC78(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increme
|
||||
}
|
||||
}
|
||||
|
||||
sub_813BC5C();
|
||||
CommitTilemap();
|
||||
}
|
||||
|
||||
void sub_813BCF4(void)
|
||||
{
|
||||
sub_813BC78(0x1FF, 0, 0, 30, 20, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 0, 0, 30, 20, 0);
|
||||
}
|
||||
|
||||
void sub_813BD14(u8 mode)
|
||||
@@ -268,10 +237,10 @@ void sub_813BD14(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 1, 0, 7, 2, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 1, 0, 7, 2, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x1E8, 1, 0, 7, 2, 1);
|
||||
HS_DrawBgTilemapRect(0x1E8, 1, 0, 7, 2, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -281,10 +250,10 @@ void sub_813BD5C(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 13, 0, 16, 2, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 13, 0, 16, 2, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x1A0, 13, 0, 16, 2, 1);
|
||||
HS_DrawBgTilemapRect(0x1A0, 13, 0, 16, 2, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -294,10 +263,10 @@ void sub_813BDA4(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 2, 3, 26, 16, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 2, 3, 26, 16, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x000, 2, 3, 26, 16, 1);
|
||||
HS_DrawBgTilemapRect(0x000, 2, 3, 26, 16, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -307,10 +276,10 @@ void sub_813BDE8(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 1, 3, 28, 16, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 1, 3, 28, 16, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x1FA, 1, 3, 28, 17, 0);
|
||||
HS_DrawBgTilemapRect(0x1FA, 1, 3, 28, 17, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -320,10 +289,10 @@ void sub_813BE30(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 2, 14, 26, 5, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 2, 14, 26, 5, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x11E, 2, 14, 26, 5, 1);
|
||||
HS_DrawBgTilemapRect(0x11E, 2, 14, 26, 5, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -333,12 +302,12 @@ void sub_813BE78(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 1, 2, 28, 1, 0);
|
||||
sub_813BC78(0x1FF, 1, 19, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 1, 2, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 1, 19, 28, 1, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x1F7, 1, 2, 28, 1, 0);
|
||||
sub_813BC78(0x1F8, 1, 19, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1F7, 1, 2, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1F8, 1, 19, 28, 1, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -348,12 +317,12 @@ void sub_813BEE4(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 1, 2, 28, 1, 0);
|
||||
sub_813BC78(0x1FF, 1, 19, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 1, 2, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 1, 19, 28, 1, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x1FB, 1, 2, 28, 1, 0);
|
||||
sub_813BC78(0x1FC, 1, 19, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FB, 1, 2, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FC, 1, 19, 28, 1, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -363,12 +332,12 @@ void sub_813BF50(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 0, 0, 1, 20, 0);
|
||||
sub_813BC78(0x1FF, 29, 0, 1, 20, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 0, 0, 1, 20, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 29, 0, 1, 20, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x1F9, 0, 0, 1, 20, 0);
|
||||
sub_813BC78(0x1F9, 29, 0, 1, 20, 0);
|
||||
HS_DrawBgTilemapRect(0x1F9, 0, 0, 1, 20, 0);
|
||||
HS_DrawBgTilemapRect(0x1F9, 29, 0, 1, 20, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -378,10 +347,10 @@ void sub_813BFC0(u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 1, 5, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 1, 5, 28, 1, 0);
|
||||
break;
|
||||
case 1:
|
||||
sub_813BC78(0x1FC, 1, 5, 28, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FC, 1, 5, 28, 1, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -391,20 +360,20 @@ void sub_813C004(u8 a0, u8 mode)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
sub_813BC78(0x1FF, 28, 3, 1, 1, 0);
|
||||
sub_813BC78(0x1FF, 28, 18, 1, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 28, 3, 1, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FF, 28, 18, 1, 1, 0);
|
||||
break;
|
||||
case 1:
|
||||
if (a0 == 0)
|
||||
sub_813BC78(0x1FE, 28, 3, 1, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FE, 28, 3, 1, 1, 0);
|
||||
else
|
||||
sub_813BC78(0x1FD, 28, 18, 1, 1, 0);
|
||||
HS_DrawBgTilemapRect(0x1FD, 28, 18, 1, 1, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#define HelpSystemHandleRenderGlyph(character) ({\
|
||||
do {sub_813C3AC(font, character, &srcBlit, &destBlit, dest, x, y, width, height);} while (0); font;\
|
||||
do {DecompressAndRenderGlyph(font, character, &srcBlit, &destBlit, dest, x, y, width, height);} while (0); font;\
|
||||
})
|
||||
|
||||
#ifdef NONMATCHING
|
||||
@@ -447,15 +416,15 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
|
||||
{
|
||||
if (FlagGet(FLAG_SYS_NOT_SOMEONES_PC) == TRUE)
|
||||
{
|
||||
if (gUnknown_841CB3C[i] == EOS)
|
||||
if (gString_Bill[i] == EOS)
|
||||
break;
|
||||
HelpSystemHandleRenderGlyph(gUnknown_841CB3C[i]);
|
||||
HelpSystemHandleRenderGlyph(gString_Bill[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_841CB41[i] == EOS)
|
||||
if (gString_Someone[i] == EOS)
|
||||
break;
|
||||
HelpSystemHandleRenderGlyph(gUnknown_841CB41[i]);
|
||||
HelpSystemHandleRenderGlyph(gString_Someone[i]);
|
||||
}
|
||||
x += gGlyphInfo[0x80];
|
||||
}
|
||||
@@ -634,7 +603,7 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
|
||||
"\tldr r0, [sp, 0x24]\n"
|
||||
"\tadd r2, sp, 0x14\n"
|
||||
"\tadd r3, sp, 0x1C\n"
|
||||
"\tbl sub_813C3AC\n"
|
||||
"\tbl DecompressAndRenderGlyph\n"
|
||||
"\tldr r0, [sp, 0x24]\n"
|
||||
"\tldrb r0, [r5]\n"
|
||||
"\tadds r0, r7, r0\n"
|
||||
@@ -677,10 +646,10 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
|
||||
"\tldr r0, [sp, 0x24]\n"
|
||||
"\tadd r2, sp, 0x14\n"
|
||||
"\tadd r3, sp, 0x1C\n"
|
||||
"\tbl sub_813C3AC\n"
|
||||
"\tbl DecompressAndRenderGlyph\n"
|
||||
"\tb _0813C1AC\n"
|
||||
"_0813C184:\n"
|
||||
"\tldr r0, _0813C1D8 @ =gUnknown_841CB41\n"
|
||||
"\tldr r0, _0813C1D8 @ =gString_Someone\n"
|
||||
"\tadds r1, r4, r0\n"
|
||||
"\tldrb r0, [r1]\n"
|
||||
"\tcmp r0, 0xFF\n"
|
||||
@@ -698,7 +667,7 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
|
||||
"\tldr r0, [sp, 0x24]\n"
|
||||
"\tadd r2, sp, 0x14\n"
|
||||
"\tadd r3, sp, 0x1C\n"
|
||||
"\tbl sub_813C3AC\n"
|
||||
"\tbl DecompressAndRenderGlyph\n"
|
||||
"_0813C1AC:\n"
|
||||
"\tldr r1, [sp, 0x24]\n"
|
||||
"\tldrb r0, [r5]\n"
|
||||
@@ -715,16 +684,16 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tcmp r0, 0x1\n"
|
||||
"\tbne _0813C184\n"
|
||||
"\tldr r0, _0813C1E0 @ =gUnknown_841CB3C\n"
|
||||
"\tldr r0, _0813C1E0 @ =gString_Bill\n"
|
||||
"\tadds r1, r4, r0\n"
|
||||
"\tldrb r0, [r1]\n"
|
||||
"\tcmp r0, 0xFF\n"
|
||||
"\tbne _0813C164\n"
|
||||
"\tb _0813C0AC_masterLoop\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0813C1D8: .4byte gUnknown_841CB41\n"
|
||||
"_0813C1D8: .4byte gString_Someone\n"
|
||||
"_0813C1DC: .4byte 0x00000834\n"
|
||||
"_0813C1E0: .4byte gUnknown_841CB3C\n"
|
||||
"_0813C1E0: .4byte gString_Bill\n"
|
||||
"_0813C1E4:\n"
|
||||
"\tldr r7, [sp, 0x34]\n"
|
||||
"\tldr r1, _0813C1FC @ =gGlyphInfo\n"
|
||||
@@ -916,7 +885,7 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
|
||||
"\tstr r0, [sp, 0x10]\n"
|
||||
"\tldr r0, [sp, 0x24]\n"
|
||||
"\tadd r2, sp, 0x14\n"
|
||||
"\tbl sub_813C3AC\n"
|
||||
"\tbl DecompressAndRenderGlyph\n"
|
||||
"\tldr r1, [sp, 0x24]\n"
|
||||
"\tldr r0, _0813C398 @ =gGlyphInfo\n"
|
||||
"\tadds r0, 0x80\n"
|
||||
@@ -941,7 +910,7 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
|
||||
}
|
||||
#endif //NONMATCHING
|
||||
|
||||
void sub_813C3AC(u8 font, u16 glyph, struct Bitmap *srcBlit, struct Bitmap *destBlit, u8 *destBuffer, u8 x, u8 y, u8 width, u8 height)
|
||||
void DecompressAndRenderGlyph(u8 font, u16 glyph, struct Bitmap *srcBlit, struct Bitmap *destBlit, u8 *destBuffer, u8 x, u8 y, u8 width, u8 height)
|
||||
{
|
||||
if (font == 0)
|
||||
DecompressGlyphFont0(glyph, FALSE);
|
||||
@@ -958,26 +927,26 @@ void sub_813C3AC(u8 font, u16 glyph, struct Bitmap *srcBlit, struct Bitmap *dest
|
||||
BlitBitmapRect4Bit(srcBlit, destBlit, 0, 0, x, y, gGlyphInfo[0x80], gGlyphInfo[0x81], 0);
|
||||
}
|
||||
|
||||
void sub_813C454(const u8 * str)
|
||||
void HelpSystem_PrintText_Row61(const u8 * str)
|
||||
{
|
||||
GenerateFontHalfRowLookupTable(1, 15, 2);
|
||||
HelpSystemRenderText(5, gDecompressionBuffer + 0x3D00, str, 6, 2, 7, 2);
|
||||
}
|
||||
|
||||
void sub_813C488(const u8 * str)
|
||||
void HelpSystem_PrintTextRightAlign_Row52(const u8 * str)
|
||||
{
|
||||
s32 left = 0x7C - GetStringWidth(0, str, 0);
|
||||
GenerateFontHalfRowLookupTable(1, 15, 2);
|
||||
HelpSystemRenderText(0, gDecompressionBuffer + 0x3400, str, left, 2, 16, 2);
|
||||
}
|
||||
|
||||
void sub_813C4CC(const u8 * str, u8 x, u8 y)
|
||||
void HelpSystem_PrintTextAt(const u8 * str, u8 x, u8 y)
|
||||
{
|
||||
GenerateFontHalfRowLookupTable(1, 15, 2);
|
||||
HelpSystemRenderText(2, gDecompressionBuffer + 0x0000, str, x, y, 26, 16);
|
||||
}
|
||||
|
||||
void sub_813C50C(const u8 * str1, const u8 * str2)
|
||||
void HelpSystem_PrintTwoStrings(const u8 * str1, const u8 * str2)
|
||||
{
|
||||
CpuFill16(0xEEEE, gDecompressionBuffer + 0x0000, 0x3400);
|
||||
GenerateFontHalfRowLookupTable(1, 14, 2);
|
||||
@@ -985,9 +954,249 @@ void sub_813C50C(const u8 * str1, const u8 * str2)
|
||||
HelpSystemRenderText(2, gDecompressionBuffer + 0x09C0, str2, 0, 0, 26, 13);
|
||||
}
|
||||
|
||||
void sub_813C584(const u8 * str)
|
||||
void HelpSystem_PrintText_813C584(const u8 * str)
|
||||
{
|
||||
CpuFill16(0x1111, gDecompressionBuffer + 0x23C0, 0x1040);
|
||||
GenerateFontHalfRowLookupTable(2, 1, 3);
|
||||
HelpSystemRenderText(2, gDecompressionBuffer + 0x23C0, str, 2, 6, 26, 5);
|
||||
}
|
||||
|
||||
void HelpSystem_FillPanel3(void)
|
||||
{
|
||||
CpuFill16(0xFFFF, gDecompressionBuffer + 0x3D00, 0x1C0);
|
||||
}
|
||||
|
||||
void HelpSystem_FillPanel2(void)
|
||||
{
|
||||
CpuFill16(0xFFFF, gDecompressionBuffer + 0x3400, 0x400);
|
||||
}
|
||||
|
||||
void HelpSystem_FillPanel1(void)
|
||||
{
|
||||
CpuFill16(0xFFFF, gDecompressionBuffer + 0x0000, 0x3400);
|
||||
}
|
||||
|
||||
void HelpSystem_InitListMenuController(struct HelpSystemListMenu * a0, u8 a1, u8 a2)
|
||||
{
|
||||
gHelpSystemListMenu.sub = a0->sub;
|
||||
gHelpSystemListMenu.field_0C = a1;
|
||||
gHelpSystemListMenu.field_0D = a2;
|
||||
gHelpSystemListMenu.field_0E = 0;
|
||||
if (gHelpSystemListMenu.sub.totalItems < gHelpSystemListMenu.sub.maxShowed)
|
||||
gHelpSystemListMenu.sub.maxShowed = gHelpSystemListMenu.sub.totalItems;
|
||||
sub_813BDA4(0);
|
||||
HelpSystem_FillPanel1();
|
||||
PrintListMenuItems();
|
||||
PlaceListMenuCursor();
|
||||
}
|
||||
|
||||
void HelpSystem_SetInputDelay(u8 a0)
|
||||
{
|
||||
sDelayTimer = a0;
|
||||
}
|
||||
|
||||
s32 HelpSystem_GetMenuInput(void)
|
||||
{
|
||||
if (sDelayTimer != 0)
|
||||
{
|
||||
sDelayTimer--;
|
||||
return -1;
|
||||
}
|
||||
else if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
return gHelpSystemListMenu.sub.items[gHelpSystemListMenu.field_0C + gHelpSystemListMenu.field_0D].index;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
return -2;
|
||||
}
|
||||
else if (JOY_NEW(L_BUTTON | R_BUTTON))
|
||||
{
|
||||
return -6;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
if (!MoveCursor(1, 0))
|
||||
PlaySE(SE_SELECT);
|
||||
return -4;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN))
|
||||
{
|
||||
if (!MoveCursor(1, 1))
|
||||
PlaySE(SE_SELECT);
|
||||
return -5;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_LEFT))
|
||||
{
|
||||
if (!MoveCursor(7, 0))
|
||||
PlaySE(SE_SELECT);
|
||||
return -4;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_RIGHT))
|
||||
{
|
||||
if (!MoveCursor(7, 1))
|
||||
PlaySE(SE_SELECT);
|
||||
return -5;
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
void sub_813C75C(void)
|
||||
{
|
||||
u8 r6 = gHelpSystemListMenu.sub.totalItems - 7;
|
||||
if (gHelpSystemListMenu.sub.totalItems > 7)
|
||||
{
|
||||
s32 r4 = gHelpSystemListMenu.field_0C + gHelpSystemListMenu.field_0D;
|
||||
sub_813C004(0, 0);
|
||||
if (r4 == 0)
|
||||
sub_813C004(1, 1);
|
||||
else if (gHelpSystemListMenu.field_0C == 0 && gHelpSystemListMenu.field_0D != 0)
|
||||
sub_813C004(1, 1);
|
||||
else if (gHelpSystemListMenu.field_0C == r6)
|
||||
sub_813C004(0, 1);
|
||||
else if (gHelpSystemListMenu.field_0C != 0)
|
||||
{
|
||||
sub_813C004(0, 1);
|
||||
sub_813C004(1, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PrintListMenuItems(void)
|
||||
{
|
||||
u8 glyphHeight = GetFontAttribute(2, 1) + 1;
|
||||
s32 i;
|
||||
s32 r5 = gHelpSystemListMenu.field_0C;
|
||||
|
||||
for (i = 0; i < gHelpSystemListMenu.sub.maxShowed; i++)
|
||||
{
|
||||
u8 x = gHelpSystemListMenu.sub.left + 8;
|
||||
u8 y = gHelpSystemListMenu.sub.top + glyphHeight * i;
|
||||
HelpSystem_PrintTextAt(gHelpSystemListMenu.sub.items[r5].label, x, y);
|
||||
r5++;
|
||||
}
|
||||
}
|
||||
|
||||
void PlaceListMenuCursor(void)
|
||||
{
|
||||
u8 glyphHeight = GetFontAttribute(2, 1) + 1;
|
||||
u8 x = gHelpSystemListMenu.sub.left;
|
||||
u8 y = gHelpSystemListMenu.sub.top + glyphHeight * gHelpSystemListMenu.field_0D;
|
||||
HelpSystem_PrintTextAt(gFameCheckerText_ListMenuCursor, x, y);
|
||||
}
|
||||
|
||||
void sub_813C860(u8 i)
|
||||
{
|
||||
u8 glyphHeight = GetFontAttribute(2, 1) + 1;
|
||||
u8 x = gHelpSystemListMenu.sub.left;
|
||||
u8 y = gHelpSystemListMenu.sub.top + i * glyphHeight;
|
||||
HelpSystem_PrintTextAt(gString_HelpSystem_ClearTo8, x, y);
|
||||
}
|
||||
|
||||
u8 TryMoveCursor1(u8 dirn)
|
||||
{
|
||||
u16 r4;
|
||||
if (dirn == 0)
|
||||
{
|
||||
if (gHelpSystemListMenu.sub.maxShowed == 1)
|
||||
r4 = 0;
|
||||
else
|
||||
r4 = gHelpSystemListMenu.sub.maxShowed - (gHelpSystemListMenu.sub.maxShowed / 2 + (gHelpSystemListMenu.sub.maxShowed & 1)) - 1;
|
||||
if (gHelpSystemListMenu.field_0C == 0)
|
||||
{
|
||||
if (gHelpSystemListMenu.field_0D != 0)
|
||||
{
|
||||
gHelpSystemListMenu.field_0D--;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
if (gHelpSystemListMenu.field_0D > r4)
|
||||
{
|
||||
gHelpSystemListMenu.field_0D--;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gHelpSystemListMenu.field_0C--;
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gHelpSystemListMenu.sub.maxShowed == 1)
|
||||
r4 = 0;
|
||||
else
|
||||
r4 = gHelpSystemListMenu.sub.maxShowed / 2 + (gHelpSystemListMenu.sub.maxShowed & 1);
|
||||
if (gHelpSystemListMenu.field_0C == gHelpSystemListMenu.sub.totalItems - gHelpSystemListMenu.sub.maxShowed)
|
||||
{
|
||||
if (gHelpSystemListMenu.field_0D < gHelpSystemListMenu.sub.maxShowed - 1)
|
||||
{
|
||||
gHelpSystemListMenu.field_0D++;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
else if (gHelpSystemListMenu.field_0D < r4)
|
||||
{
|
||||
gHelpSystemListMenu.field_0D++;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gHelpSystemListMenu.field_0C++;
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 MoveCursor(u8 by, u8 dirn)
|
||||
{
|
||||
u8 r7 = gHelpSystemListMenu.field_0D;
|
||||
u8 flags = 0;
|
||||
s32 i;
|
||||
for (i = 0; i < by; i++)
|
||||
flags |= TryMoveCursor1(dirn);
|
||||
|
||||
switch (flags)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
// neither changed
|
||||
return TRUE;
|
||||
case 1:
|
||||
// changed field_0D only
|
||||
sub_813C860(r7);
|
||||
PlaceListMenuCursor();
|
||||
CommitTilemap();
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
// changed field_0C
|
||||
if (sub_812BF88() == TRUE)
|
||||
{
|
||||
HelpSystem_SetInputDelay(2);
|
||||
HelpSystem_FillPanel1();
|
||||
PrintListMenuItems();
|
||||
PlaceListMenuCursor();
|
||||
sub_812BDEC();
|
||||
sub_813C75C();
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_813BDA4(0);
|
||||
HelpSystem_FillPanel1();
|
||||
PrintListMenuItems();
|
||||
PlaceListMenuCursor();
|
||||
sub_813BDA4(1);
|
||||
}
|
||||
CommitTilemap();
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+54
-54
@@ -23,16 +23,16 @@ u8 gUnknown_3005E9C[4];
|
||||
u16 gUnknown_3005EA0;
|
||||
|
||||
static bool32 sub_812B27C(const u16 * mapIdxs);
|
||||
static void sub_812B520(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
static void sub_812B614(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
static bool8 sub_812B754(void);
|
||||
static bool8 sub_812B780(u8);
|
||||
static bool8 sub_812BB10(void);
|
||||
|
||||
static void sub_812BF5C(void);
|
||||
static void sub_812BF74(const u8 *);
|
||||
static void sub_812BF94(struct HelpSystemStruct_203F190 * a0);
|
||||
static void sub_812BF9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
|
||||
static void sub_812BF94(struct HelpSystemListMenu * a0);
|
||||
static void sub_812BF9C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
|
||||
|
||||
static const u8 *const gUnknown_845B080[] = {
|
||||
gUnknown_81B2DF8,
|
||||
@@ -1029,27 +1029,27 @@ void sub_812B4B8(void)
|
||||
gUnknown_203F175 = 0;
|
||||
}
|
||||
|
||||
static void sub_812B4C4(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
static void sub_812B4C4(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
a0->sub.field_00 = a1;
|
||||
a0->sub.field_04 = 1;
|
||||
a0->sub.field_06 = 1;
|
||||
a0->sub.field_08 = 1;
|
||||
a0->sub.field_09 = 4;
|
||||
a0->sub.items = a1;
|
||||
a0->sub.totalItems = 1;
|
||||
a0->sub.maxShowed = 1;
|
||||
a0->sub.left = 1;
|
||||
a0->sub.top = 4;
|
||||
}
|
||||
|
||||
static void sub_812B4D8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
static void sub_812B4D8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
sub_812B4C4(a0, a1);
|
||||
sub_812B520(a0, a1);
|
||||
sub_812BF74(gUnknown_841DFAC);
|
||||
sub_813C64C(a0, 0, gUnknown_3005E9C[2]);
|
||||
HelpSystem_InitListMenuController(a0, 0, gUnknown_3005E9C[2]);
|
||||
sub_812BF9C(a0, a1);
|
||||
sub_813BDA4(1);
|
||||
sub_813BD5C(1);
|
||||
}
|
||||
|
||||
static void sub_812B520(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
u8 i;
|
||||
u8 r4 = 0;
|
||||
@@ -1063,12 +1063,12 @@ static void sub_812B520(struct HelpSystemStruct_203F190 * a0, struct ListMenuIte
|
||||
}
|
||||
}
|
||||
a1[r4 - 1].index = -2;
|
||||
a0->sub.field_04 = r4;
|
||||
a0->sub.field_06 = r4;
|
||||
a0->sub.field_08 = 0;
|
||||
a0->sub.totalItems = r4;
|
||||
a0->sub.maxShowed = r4;
|
||||
a0->sub.left = 0;
|
||||
}
|
||||
|
||||
static void sub_812B5A8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
static void sub_812B5A8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
sub_813BDE8(0);
|
||||
sub_813BFC0(0);
|
||||
@@ -1076,13 +1076,13 @@ static void sub_812B5A8(struct HelpSystemStruct_203F190 * a0, struct ListMenuIte
|
||||
sub_812B4C4(a0, a1);
|
||||
sub_812B614(a0, a1);
|
||||
sub_812BF74(gUnknown_841DFC9);
|
||||
sub_813C64C(a0, a0->field_0C, a0->field_0D);
|
||||
sub_813C4CC(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0);
|
||||
HelpSystem_InitListMenuController(a0, a0->field_0C, a0->field_0D);
|
||||
HelpSystem_PrintTextAt(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0);
|
||||
sub_813BDA4(1);
|
||||
sub_813BD5C(1);
|
||||
}
|
||||
|
||||
static void sub_812B614(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
u8 r6 = 0;
|
||||
const u8 * r3 = gUnknown_845B9E0[gUnknown_203B0EC * 5 + gUnknown_3005E9C[1]];
|
||||
@@ -1117,10 +1117,10 @@ static void sub_812B614(struct HelpSystemStruct_203F190 * a0, struct ListMenuIte
|
||||
a1[r6].label = gUnknown_81B2E6F;
|
||||
a1[r6].index = -2;
|
||||
r6++;
|
||||
a0->sub.field_04 = r6;
|
||||
a0->sub.field_06 = 7;
|
||||
a0->sub.field_08 = 0;
|
||||
a0->sub.field_09 = 21;
|
||||
a0->sub.totalItems = r6;
|
||||
a0->sub.maxShowed = 7;
|
||||
a0->sub.left = 0;
|
||||
a0->sub.top = 21;
|
||||
}
|
||||
|
||||
static bool8 sub_812B754(void)
|
||||
@@ -1358,7 +1358,7 @@ static bool8 sub_812BB10(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_812BB9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BB9C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
switch (a0->field_0E)
|
||||
{
|
||||
@@ -1386,7 +1386,7 @@ bool8 sub_812BB9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_812BC54(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BC54(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
sub_812BF74(gUnknown_841DFA5);
|
||||
sub_812BF5C();
|
||||
@@ -1396,7 +1396,7 @@ bool8 sub_812BC54(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812BC80(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BC80(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
@@ -1406,7 +1406,7 @@ bool8 sub_812BC80(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812BCA8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BCA8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
gUnknown_3005E9C[2] = 0;
|
||||
sub_812BF94(a0);
|
||||
@@ -1415,9 +1415,9 @@ bool8 sub_812BCA8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812BCD0(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BCD0(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
s32 v0 = sub_813C690();
|
||||
s32 v0 = HelpSystem_GetMenuInput();
|
||||
switch (v0)
|
||||
{
|
||||
case -6:
|
||||
@@ -1438,19 +1438,19 @@ bool8 sub_812BCD0(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812BD2C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BD2C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
gUnknown_3005E9C[0] = 1;
|
||||
gUnknown_3005E9C[2] = a0->field_0D;
|
||||
sub_812BF94(a0);
|
||||
sub_812B5A8(a0, a1);
|
||||
sub_813C75C();
|
||||
sub_813C684(2);
|
||||
HelpSystem_SetInputDelay(2);
|
||||
a0->field_0E = 3;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812BD64(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BD64(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
sub_813C004(0, 0);
|
||||
sub_813C004(1, 0);
|
||||
@@ -1460,9 +1460,9 @@ bool8 sub_812BD64(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812BD98(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BD98(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
s32 v0 = sub_813C690();
|
||||
s32 v0 = HelpSystem_GetMenuInput();
|
||||
switch (v0)
|
||||
{
|
||||
case -6:
|
||||
@@ -1485,37 +1485,37 @@ bool8 sub_812BD98(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
|
||||
void sub_812BDEC(void)
|
||||
{
|
||||
sub_813C4CC(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0);
|
||||
HelpSystem_PrintTextAt(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0);
|
||||
}
|
||||
|
||||
bool8 sub_812BE10(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BE10(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
gUnknown_3005E9C[0] = 2;
|
||||
sub_813BDA4(0);
|
||||
sub_813C624();
|
||||
HelpSystem_FillPanel1();
|
||||
sub_812BF74(gUnknown_841DFBE);
|
||||
sub_813BDE8(1);
|
||||
sub_813BEE4(1);
|
||||
|
||||
if (gUnknown_3005E9C[1] == 0)
|
||||
{
|
||||
sub_813C50C(gUnknown_845B0B0[gUnknown_3005E9C[3]], gUnknown_845B164[gUnknown_3005E9C[3]]);
|
||||
HelpSystem_PrintTwoStrings(gUnknown_845B0B0[gUnknown_3005E9C[3]], gUnknown_845B164[gUnknown_3005E9C[3]]);
|
||||
}
|
||||
else if (gUnknown_3005E9C[1] == 1)
|
||||
{
|
||||
sub_813C50C(gUnknown_845B218[gUnknown_3005E9C[3]], gUnknown_845B2DC[gUnknown_3005E9C[3]]);
|
||||
HelpSystem_PrintTwoStrings(gUnknown_845B218[gUnknown_3005E9C[3]], gUnknown_845B2DC[gUnknown_3005E9C[3]]);
|
||||
}
|
||||
else if (gUnknown_3005E9C[1] == 2)
|
||||
{
|
||||
sub_813C50C(gUnknown_845B3A0[gUnknown_3005E9C[3]], gUnknown_845B450[gUnknown_3005E9C[3]]);
|
||||
HelpSystem_PrintTwoStrings(gUnknown_845B3A0[gUnknown_3005E9C[3]], gUnknown_845B450[gUnknown_3005E9C[3]]);
|
||||
}
|
||||
else if (gUnknown_3005E9C[1] == 3)
|
||||
{
|
||||
sub_813C50C(gUnknown_845B500[gUnknown_3005E9C[3]], gUnknown_845B520[gUnknown_3005E9C[3]]);
|
||||
HelpSystem_PrintTwoStrings(gUnknown_845B500[gUnknown_3005E9C[3]], gUnknown_845B520[gUnknown_3005E9C[3]]);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_813C50C(gUnknown_845B540[gUnknown_3005E9C[3]], gUnknown_845B5D0[gUnknown_3005E9C[3]]);
|
||||
HelpSystem_PrintTwoStrings(gUnknown_845B540[gUnknown_3005E9C[3]], gUnknown_845B5D0[gUnknown_3005E9C[3]]);
|
||||
}
|
||||
sub_813BDA4(1);
|
||||
sub_813BD5C(1);
|
||||
@@ -1523,17 +1523,17 @@ bool8 sub_812BE10(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812BEEC(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BEEC(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
gUnknown_3005E9C[0] = 1;
|
||||
sub_812B5A8(a0, a1);
|
||||
sub_813C75C();
|
||||
sub_813C684(2);
|
||||
HelpSystem_SetInputDelay(2);
|
||||
a0->field_0E = 3;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812BF18(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
bool8 sub_812BF18(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON))
|
||||
{
|
||||
@@ -1548,14 +1548,14 @@ bool8 sub_812BF18(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
|
||||
|
||||
static void sub_812BF5C(void)
|
||||
{
|
||||
sub_813C624();
|
||||
sub_813C4CC(gUnknown_81B2FC9, 0, 0);
|
||||
HelpSystem_FillPanel1();
|
||||
HelpSystem_PrintTextAt(gUnknown_81B2FC9, 0, 0);
|
||||
}
|
||||
|
||||
static void sub_812BF74(const u8 * str)
|
||||
{
|
||||
sub_813C5FC();
|
||||
sub_813C488(str);
|
||||
HelpSystem_FillPanel2();
|
||||
HelpSystem_PrintTextRightAlign_Row52(str);
|
||||
}
|
||||
|
||||
u8 sub_812BF88(void)
|
||||
@@ -1563,18 +1563,18 @@ u8 sub_812BF88(void)
|
||||
return gUnknown_3005E9C[0];
|
||||
}
|
||||
|
||||
static void sub_812BF94(struct HelpSystemStruct_203F190 * a0)
|
||||
static void sub_812BF94(struct HelpSystemListMenu * a0)
|
||||
{
|
||||
a0->field_0C = 0;
|
||||
a0->field_0D = 0;
|
||||
}
|
||||
|
||||
static void sub_812BF9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
|
||||
static void sub_812BF9C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
|
||||
{
|
||||
s32 index = a1[a0->field_0C + a0->field_0D].index;
|
||||
if (index == -2)
|
||||
sub_813C584(gUnknown_845B098[5]);
|
||||
HelpSystem_PrintText_813C584(gUnknown_845B098[5]);
|
||||
else
|
||||
sub_813C584(gUnknown_845B098[index]);
|
||||
HelpSystem_PrintText_813C584(gUnknown_845B098[index]);
|
||||
sub_813BE30(1);
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,6 +5,7 @@
|
||||
#include "dma3.h"
|
||||
#include "gba/flash_internal.h"
|
||||
#include "battle.h"
|
||||
#include "help_system.h"
|
||||
|
||||
extern u16 GetGpuReg(u8);
|
||||
extern void SetGpuReg(u8, u16);
|
||||
@@ -32,7 +33,6 @@ extern u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
|
||||
extern void ScanlineEffect_Stop(void);
|
||||
extern void sub_80F50F4(void);
|
||||
extern bool32 sub_80F5118(void);
|
||||
extern bool8 sub_813B870(void);
|
||||
|
||||
extern struct SoundInfo gSoundInfo;
|
||||
extern u32 gFlashMemoryPresent;
|
||||
@@ -206,7 +206,7 @@ static void InitMainCallbacks(void)
|
||||
|
||||
static void CallCallbacks(void)
|
||||
{
|
||||
if (!sub_80F5118() && !sub_813B870())
|
||||
if (!sub_80F5118() && !RunHelpSystemCallback())
|
||||
{
|
||||
if (gMain.callback1)
|
||||
gMain.callback1();
|
||||
|
||||
Reference in New Issue
Block a user