through sub_8130324 nonmatching
This commit is contained in:
@@ -5,743 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_812FDC0
|
|
||||||
sub_812FDC0: @ 812FDC0
|
|
||||||
push {r4-r6,lr}
|
|
||||||
sub sp, 0x10
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
lsls r0, r6, 2
|
|
||||||
adds r0, r6
|
|
||||||
lsls r0, 3
|
|
||||||
ldr r1, _0812FDEC @ =gTasks+0x8
|
|
||||||
adds r1, r0, r1
|
|
||||||
movs r2, 0x4
|
|
||||||
ldrsh r0, [r1, r2]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0812FE72
|
|
||||||
ldrh r0, [r1, 0x6]
|
|
||||||
movs r2, 0x6
|
|
||||||
ldrsh r4, [r1, r2]
|
|
||||||
cmp r4, 0
|
|
||||||
beq _0812FDF0
|
|
||||||
subs r0, 0x1
|
|
||||||
strh r0, [r1, 0x6]
|
|
||||||
b _0812FE72
|
|
||||||
.align 2, 0
|
|
||||||
_0812FDEC: .4byte gTasks+0x8
|
|
||||||
_0812FDF0:
|
|
||||||
movs r2, 0x3C
|
|
||||||
negs r2, r2
|
|
||||||
adds r0, r2, 0
|
|
||||||
strh r0, [r1, 0x2]
|
|
||||||
bl sub_8131310
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80F6EE4
|
|
||||||
ldr r2, _0812FE34 @ =gUnknown_81C59D5
|
|
||||||
ldr r5, _0812FE38 @ =gStringVar4
|
|
||||||
cmp r2, r5
|
|
||||||
beq _0812FE40
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r1, r2, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
ldr r0, _0812FE3C @ =sOakSpeechResources
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r3, [r0, 0x1F]
|
|
||||||
str r4, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
adds r2, r5, 0
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
b _0812FE5C
|
|
||||||
.align 2, 0
|
|
||||||
_0812FE34: .4byte gUnknown_81C59D5
|
|
||||||
_0812FE38: .4byte gStringVar4
|
|
||||||
_0812FE3C: .4byte sOakSpeechResources
|
|
||||||
_0812FE40:
|
|
||||||
ldr r0, _0812FE7C @ =sOakSpeechResources
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r3, [r0, 0x1F]
|
|
||||||
str r4, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
_0812FE5C:
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
bl CopyWindowToVram
|
|
||||||
ldr r0, _0812FE80 @ =gTasks
|
|
||||||
lsls r1, r6, 2
|
|
||||||
adds r1, r6
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _0812FE84 @ =sub_812FE88
|
|
||||||
str r0, [r1]
|
|
||||||
_0812FE72:
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0812FE7C: .4byte sOakSpeechResources
|
|
||||||
_0812FE80: .4byte gTasks
|
|
||||||
_0812FE84: .4byte sub_812FE88
|
|
||||||
thumb_func_end sub_812FDC0
|
|
||||||
|
|
||||||
thumb_func_start sub_812FE88
|
|
||||||
sub_812FE88: @ 812FE88
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
sub sp, 0xC
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
movs r0, 0
|
|
||||||
bl IsTextPrinterActive
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r7, r0, 16
|
|
||||||
cmp r7, 0
|
|
||||||
bne _0812FF7E
|
|
||||||
ldr r0, _0812FF8C @ =gUnknown_8462EC8
|
|
||||||
bl AddWindow
|
|
||||||
ldr r1, _0812FF90 @ =gTasks
|
|
||||||
lsls r5, r4, 2
|
|
||||||
adds r5, r4
|
|
||||||
lsls r5, 3
|
|
||||||
adds r5, r1
|
|
||||||
strh r0, [r5, 0x22]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
bl PutWindowTilemap
|
|
||||||
ldrh r4, [r5, 0x22]
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
bl sub_80F796C
|
|
||||||
adds r2, r0, 0
|
|
||||||
lsls r2, 16
|
|
||||||
lsrs r2, 16
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x1
|
|
||||||
movs r3, 0xE
|
|
||||||
bl SetWindowBorderStyle
|
|
||||||
ldrh r0, [r5, 0x22]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
movs r1, 0x11
|
|
||||||
bl FillWindowPixelBuffer
|
|
||||||
ldr r4, _0812FF94 @ =sOakSpeechResources
|
|
||||||
ldr r0, [r4]
|
|
||||||
movs r1, 0x1
|
|
||||||
mov r9, r1
|
|
||||||
mov r1, r9
|
|
||||||
strb r1, [r0, 0x1C]
|
|
||||||
ldr r0, [r4]
|
|
||||||
movs r6, 0x2
|
|
||||||
strb r6, [r0, 0x1D]
|
|
||||||
ldr r0, [r4]
|
|
||||||
movs r1, 0x3
|
|
||||||
mov r8, r1
|
|
||||||
mov r1, r8
|
|
||||||
strb r1, [r0, 0x1E]
|
|
||||||
ldrh r0, [r5, 0x22]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r1, 0x1C
|
|
||||||
str r1, [sp]
|
|
||||||
str r7, [sp, 0x4]
|
|
||||||
ldr r1, _0812FF98 @ =gUnknown_8415D93
|
|
||||||
str r1, [sp, 0x8]
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r2, 0x8
|
|
||||||
movs r3, 0x1
|
|
||||||
bl box_print
|
|
||||||
ldr r0, [r4]
|
|
||||||
mov r1, r9
|
|
||||||
strb r1, [r0, 0x1C]
|
|
||||||
ldr r0, [r4]
|
|
||||||
strb r6, [r0, 0x1D]
|
|
||||||
ldr r0, [r4]
|
|
||||||
mov r1, r8
|
|
||||||
strb r1, [r0, 0x1E]
|
|
||||||
ldrh r0, [r5, 0x22]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r1, 0x1C
|
|
||||||
str r1, [sp]
|
|
||||||
str r7, [sp, 0x4]
|
|
||||||
ldr r1, _0812FF9C @ =gUnknown_8415D97
|
|
||||||
str r1, [sp, 0x8]
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r2, 0x8
|
|
||||||
movs r3, 0x11
|
|
||||||
bl box_print
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r1, 0x1
|
|
||||||
bl GetFontAttribute
|
|
||||||
adds r0, 0x2
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldrh r1, [r5, 0x22]
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
str r0, [sp]
|
|
||||||
str r6, [sp, 0x4]
|
|
||||||
str r7, [sp, 0x8]
|
|
||||||
adds r0, r1, 0
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x1
|
|
||||||
bl sub_810F7D8
|
|
||||||
ldrh r0, [r5, 0x22]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
movs r1, 0x3
|
|
||||||
bl CopyWindowToVram
|
|
||||||
ldr r0, _0812FFA0 @ =sub_812FFA4
|
|
||||||
str r0, [r5]
|
|
||||||
_0812FF7E:
|
|
||||||
add sp, 0xC
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0812FF8C: .4byte gUnknown_8462EC8
|
|
||||||
_0812FF90: .4byte gTasks
|
|
||||||
_0812FF94: .4byte sOakSpeechResources
|
|
||||||
_0812FF98: .4byte gUnknown_8415D93
|
|
||||||
_0812FF9C: .4byte gUnknown_8415D97
|
|
||||||
_0812FFA0: .4byte sub_812FFA4
|
|
||||||
thumb_func_end sub_812FE88
|
|
||||||
|
|
||||||
thumb_func_start sub_812FFA4
|
|
||||||
sub_812FFA4: @ 812FFA4
|
|
||||||
push {r4,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
bl ProcessMenuInputNoWrapAround
|
|
||||||
lsls r0, 24
|
|
||||||
asrs r1, r0, 24
|
|
||||||
cmp r1, 0
|
|
||||||
beq _0812FFC8
|
|
||||||
cmp r1, 0
|
|
||||||
bgt _0812FFC4
|
|
||||||
movs r0, 0x2
|
|
||||||
negs r0, r0
|
|
||||||
cmp r1, r0
|
|
||||||
blt _0812FFCE
|
|
||||||
b _0812FFDC
|
|
||||||
_0812FFC4:
|
|
||||||
cmp r1, 0x1
|
|
||||||
bne _0812FFCE
|
|
||||||
_0812FFC8:
|
|
||||||
ldr r0, _0812FFE4 @ =gSaveBlock2Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
strb r1, [r0, 0x8]
|
|
||||||
_0812FFCE:
|
|
||||||
ldr r0, _0812FFE8 @ =gTasks
|
|
||||||
lsls r1, r4, 2
|
|
||||||
adds r1, r4
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _0812FFEC @ =sub_812FFF0
|
|
||||||
str r0, [r1]
|
|
||||||
_0812FFDC:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0812FFE4: .4byte gSaveBlock2Ptr
|
|
||||||
_0812FFE8: .4byte gTasks
|
|
||||||
_0812FFEC: .4byte sub_812FFF0
|
|
||||||
thumb_func_end sub_812FFA4
|
|
||||||
|
|
||||||
thumb_func_start sub_812FFF0
|
|
||||||
sub_812FFF0: @ 812FFF0
|
|
||||||
push {r4-r6,lr}
|
|
||||||
sub sp, 0x8
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r5, r0, 2
|
|
||||||
adds r5, r0
|
|
||||||
lsls r5, 3
|
|
||||||
ldr r6, _08130048 @ =gTasks+0x8
|
|
||||||
adds r4, r5, r6
|
|
||||||
ldrb r0, [r4, 0x1A]
|
|
||||||
movs r1, 0x1
|
|
||||||
bl sub_810F4D8
|
|
||||||
ldrb r0, [r4, 0x1A]
|
|
||||||
bl RemoveWindow
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r4, 0x1A]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x1
|
|
||||||
bl sub_80F6F54
|
|
||||||
movs r0, 0x1E
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x14
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0
|
|
||||||
bl FillBgTilemapBufferRect_Palette0
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
subs r6, 0x8
|
|
||||||
adds r5, r6
|
|
||||||
ldr r0, _0813004C @ =sub_8130050
|
|
||||||
str r0, [r5]
|
|
||||||
add sp, 0x8
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08130048: .4byte gTasks+0x8
|
|
||||||
_0813004C: .4byte sub_8130050
|
|
||||||
thumb_func_end sub_812FFF0
|
|
||||||
|
|
||||||
thumb_func_start sub_8130050
|
|
||||||
sub_8130050: @ 8130050
|
|
||||||
push {r4,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
ldr r0, _0813006C @ =gSaveBlock2Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r0, [r0, 0x8]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08130070
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_81311F4
|
|
||||||
b _08130078
|
|
||||||
.align 2, 0
|
|
||||||
_0813006C: .4byte gSaveBlock2Ptr
|
|
||||||
_08130070:
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_81311F4
|
|
||||||
_08130078:
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x2
|
|
||||||
bl sub_81315CC
|
|
||||||
ldr r1, _08130098 @ =gTasks
|
|
||||||
lsls r0, r4, 2
|
|
||||||
adds r0, r4
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x20
|
|
||||||
strh r1, [r0, 0xE]
|
|
||||||
ldr r1, _0813009C @ =sub_81300A0
|
|
||||||
str r1, [r0]
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08130098: .4byte gTasks
|
|
||||||
_0813009C: .4byte sub_81300A0
|
|
||||||
thumb_func_end sub_8130050
|
|
||||||
|
|
||||||
thumb_func_start sub_81300A0
|
|
||||||
sub_81300A0: @ 81300A0
|
|
||||||
push {r4-r6,lr}
|
|
||||||
sub sp, 0x10
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
lsls r0, r6, 2
|
|
||||||
adds r0, r6
|
|
||||||
lsls r0, 3
|
|
||||||
ldr r1, _081300CC @ =gTasks+0x8
|
|
||||||
adds r1, r0, r1
|
|
||||||
movs r2, 0x4
|
|
||||||
ldrsh r0, [r1, r2]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0813014A
|
|
||||||
ldrh r0, [r1, 0x6]
|
|
||||||
movs r2, 0x6
|
|
||||||
ldrsh r4, [r1, r2]
|
|
||||||
cmp r4, 0
|
|
||||||
beq _081300D0
|
|
||||||
subs r0, 0x1
|
|
||||||
strh r0, [r1, 0x6]
|
|
||||||
b _0813014A
|
|
||||||
.align 2, 0
|
|
||||||
_081300CC: .4byte gTasks+0x8
|
|
||||||
_081300D0:
|
|
||||||
strh r4, [r1, 0x2]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80F6EE4
|
|
||||||
ldr r2, _0813010C @ =gUnknown_81C5DEA
|
|
||||||
ldr r5, _08130110 @ =gStringVar4
|
|
||||||
cmp r2, r5
|
|
||||||
beq _08130118
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r1, r2, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
ldr r0, _08130114 @ =sOakSpeechResources
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r3, [r0, 0x1F]
|
|
||||||
str r4, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
adds r2, r5, 0
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
b _08130134
|
|
||||||
.align 2, 0
|
|
||||||
_0813010C: .4byte gUnknown_81C5DEA
|
|
||||||
_08130110: .4byte gStringVar4
|
|
||||||
_08130114: .4byte sOakSpeechResources
|
|
||||||
_08130118:
|
|
||||||
ldr r0, _08130154 @ =sOakSpeechResources
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r3, [r0, 0x1F]
|
|
||||||
str r4, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
_08130134:
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
bl CopyWindowToVram
|
|
||||||
ldr r0, _08130158 @ =gTasks
|
|
||||||
lsls r1, r6, 2
|
|
||||||
adds r1, r6
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _0813015C @ =sub_8130160
|
|
||||||
str r0, [r1]
|
|
||||||
_0813014A:
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08130154: .4byte sOakSpeechResources
|
|
||||||
_08130158: .4byte gTasks
|
|
||||||
_0813015C: .4byte sub_8130160
|
|
||||||
thumb_func_end sub_81300A0
|
|
||||||
|
|
||||||
thumb_func_start sub_8130160
|
|
||||||
sub_8130160: @ 8130160
|
|
||||||
push {r4,r5,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r5, r0, 24
|
|
||||||
movs r0, 0
|
|
||||||
bl IsTextPrinterActive
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
cmp r4, 0
|
|
||||||
bne _0813019A
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
str r4, [sp]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x10
|
|
||||||
bl BeginNormalPaletteFade
|
|
||||||
ldr r0, _081301A4 @ =sOakSpeechResources
|
|
||||||
ldr r0, [r0]
|
|
||||||
strh r4, [r0, 0x10]
|
|
||||||
ldr r1, _081301A8 @ =gTasks
|
|
||||||
lsls r0, r5, 2
|
|
||||||
adds r0, r5
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, _081301AC @ =sub_81303B4
|
|
||||||
str r1, [r0]
|
|
||||||
_0813019A:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_081301A4: .4byte sOakSpeechResources
|
|
||||||
_081301A8: .4byte gTasks
|
|
||||||
_081301AC: .4byte sub_81303B4
|
|
||||||
thumb_func_end sub_8130160
|
|
||||||
|
|
||||||
thumb_func_start sub_81301B0
|
|
||||||
sub_81301B0: @ 81301B0
|
|
||||||
push {r4-r7,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
adds r5, r0, 0
|
|
||||||
lsls r0, r5, 2
|
|
||||||
adds r0, r5
|
|
||||||
lsls r6, r0, 3
|
|
||||||
ldr r7, _081301F8 @ =gTasks+0x8
|
|
||||||
adds r4, r6, r7
|
|
||||||
movs r0, 0
|
|
||||||
bl IsTextPrinterActive
|
|
||||||
lsls r0, 16
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08130218
|
|
||||||
ldrh r2, [r4, 0x2]
|
|
||||||
movs r1, 0x2
|
|
||||||
ldrsh r0, [r4, r1]
|
|
||||||
movs r1, 0x3C
|
|
||||||
negs r1, r1
|
|
||||||
cmp r0, r1
|
|
||||||
ble _08130200
|
|
||||||
subs r0, r2, 0x2
|
|
||||||
strh r0, [r4, 0x2]
|
|
||||||
ldr r1, _081301FC @ =gSpriteCoordOffsetX
|
|
||||||
ldrh r0, [r1]
|
|
||||||
adds r0, 0x2
|
|
||||||
strh r0, [r1]
|
|
||||||
movs r1, 0x80
|
|
||||||
lsls r1, 2
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r2, 0x2
|
|
||||||
bl ChangeBgX
|
|
||||||
b _08130218
|
|
||||||
.align 2, 0
|
|
||||||
_081301F8: .4byte gTasks+0x8
|
|
||||||
_081301FC: .4byte gSpriteCoordOffsetX
|
|
||||||
_08130200:
|
|
||||||
strh r1, [r4, 0x2]
|
|
||||||
ldr r0, _08130220 @ =sOakSpeechResources
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r1, [r0, 0x10]
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl sub_8131660
|
|
||||||
adds r0, r7, 0
|
|
||||||
subs r0, 0x8
|
|
||||||
adds r0, r6, r0
|
|
||||||
ldr r1, _08130224 @ =sub_8130324
|
|
||||||
str r1, [r0]
|
|
||||||
_08130218:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08130220: .4byte sOakSpeechResources
|
|
||||||
_08130224: .4byte sub_8130324
|
|
||||||
thumb_func_end sub_81301B0
|
|
||||||
|
|
||||||
thumb_func_start sub_8130228
|
|
||||||
sub_8130228: @ 8130228
|
|
||||||
push {r4-r6,lr}
|
|
||||||
sub sp, 0x10
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
ldr r4, _08130278 @ =sOakSpeechResources
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldrb r1, [r0, 0x10]
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl sub_8131660
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldrh r4, [r0, 0x10]
|
|
||||||
cmp r4, 0
|
|
||||||
bne _081302A6
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80F6EE4
|
|
||||||
ldr r2, _0813027C @ =gUnknown_81C5DEA
|
|
||||||
ldr r5, _08130280 @ =gStringVar4
|
|
||||||
cmp r2, r5
|
|
||||||
beq _08130284
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r1, r2, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
str r4, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
adds r2, r5, 0
|
|
||||||
movs r3, 0
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
b _0813029C
|
|
||||||
.align 2, 0
|
|
||||||
_08130278: .4byte sOakSpeechResources
|
|
||||||
_0813027C: .4byte gUnknown_81C5DEA
|
|
||||||
_08130280: .4byte gStringVar4
|
|
||||||
_08130284:
|
|
||||||
str r4, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
movs r3, 0
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
_0813029C:
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
bl CopyWindowToVram
|
|
||||||
b _08130306
|
|
||||||
_081302A6:
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80F6EE4
|
|
||||||
ldr r2, _081302DC @ =gUnknown_81C5E91
|
|
||||||
ldr r4, _081302E0 @ =gStringVar4
|
|
||||||
cmp r2, r4
|
|
||||||
beq _081302E4
|
|
||||||
adds r0, r4, 0
|
|
||||||
adds r1, r2, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
adds r2, r4, 0
|
|
||||||
movs r3, 0
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
b _081302FE
|
|
||||||
.align 2, 0
|
|
||||||
_081302DC: .4byte gUnknown_81C5E91
|
|
||||||
_081302E0: .4byte gStringVar4
|
|
||||||
_081302E4:
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x3
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
movs r3, 0
|
|
||||||
bl AddTextPrinterParametrized
|
|
||||||
_081302FE:
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
bl CopyWindowToVram
|
|
||||||
_08130306:
|
|
||||||
ldr r0, _0813031C @ =gTasks
|
|
||||||
lsls r1, r6, 2
|
|
||||||
adds r1, r6
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _08130320 @ =sub_8130324
|
|
||||||
str r0, [r1]
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813031C: .4byte gTasks
|
|
||||||
_08130320: .4byte sub_8130324
|
|
||||||
thumb_func_end sub_8130228
|
|
||||||
|
|
||||||
thumb_func_start sub_8130324
|
|
||||||
sub_8130324: @ 8130324
|
|
||||||
push {r4-r7,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
lsls r6, r1, 3
|
|
||||||
ldr r7, _0813037C @ =gTasks+0x8
|
|
||||||
adds r5, r6, r7
|
|
||||||
bl ProcessMenuInput
|
|
||||||
lsls r0, 24
|
|
||||||
asrs r4, r0, 24
|
|
||||||
cmp r4, 0
|
|
||||||
beq _08130388
|
|
||||||
cmp r4, 0
|
|
||||||
ble _081303A8
|
|
||||||
cmp r4, 0x4
|
|
||||||
bgt _081303A8
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
ldrb r0, [r5, 0x1A]
|
|
||||||
movs r1, 0x1
|
|
||||||
bl sub_810F4D8
|
|
||||||
ldrb r0, [r5, 0x1A]
|
|
||||||
bl RemoveWindow
|
|
||||||
ldr r0, _08130380 @ =sOakSpeechResources
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r0, [r0, 0x10]
|
|
||||||
subs r1, r4, 0x1
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
bl sub_8131754
|
|
||||||
movs r0, 0x1
|
|
||||||
strh r0, [r5, 0x1E]
|
|
||||||
adds r0, r7, 0
|
|
||||||
subs r0, 0x8
|
|
||||||
adds r0, r6, r0
|
|
||||||
ldr r1, _08130384 @ =sub_8130464
|
|
||||||
b _081303A6
|
|
||||||
.align 2, 0
|
|
||||||
_0813037C: .4byte gTasks+0x8
|
|
||||||
_08130380: .4byte sOakSpeechResources
|
|
||||||
_08130384: .4byte sub_8130464
|
|
||||||
_08130388:
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
str r4, [sp]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x10
|
|
||||||
bl BeginNormalPaletteFade
|
|
||||||
adds r0, r7, 0
|
|
||||||
subs r0, 0x8
|
|
||||||
adds r0, r6, r0
|
|
||||||
ldr r1, _081303B0 @ =sub_81303B4
|
|
||||||
_081303A6:
|
|
||||||
str r1, [r0]
|
|
||||||
_081303A8:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_081303B0: .4byte sub_81303B4
|
|
||||||
thumb_func_end sub_8130324
|
|
||||||
|
|
||||||
thumb_func_start sub_81303B4
|
thumb_func_start sub_81303B4
|
||||||
sub_81303B4: @ 81303B4
|
sub_81303B4: @ 81303B4
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
|
|||||||
+2
-2
@@ -77,10 +77,10 @@ gUnknown_8462EC0:: @ 8462EC0
|
|||||||
window_template 0x00, 0x01, 0x04, 0x1c, 0x0f, 0x0f, 0x0001
|
window_template 0x00, 0x01, 0x04, 0x1c, 0x0f, 0x0f, 0x0001
|
||||||
|
|
||||||
gUnknown_8462EC8:: @ 8462EC8
|
gUnknown_8462EC8:: @ 8462EC8
|
||||||
.incbin "baserom.gba", 0x462EC8, 0x8
|
window_template 0x00, 0x12, 0x09, 0x09, 0x04, 0x0f, 0x0174
|
||||||
|
|
||||||
gUnknown_8462ED0:: @ 8462ED0
|
gUnknown_8462ED0:: @ 8462ED0
|
||||||
.incbin "baserom.gba", 0x462ED0, 0x8
|
window_template 0x00, 0x02, 0x02, 0x06, 0x04, 0x0f, 0x0180
|
||||||
|
|
||||||
gUnknown_8462ED8:: @ 8462ED8
|
gUnknown_8462ED8:: @ 8462ED8
|
||||||
.incbin "baserom.gba", 0x462ED8, 0x10
|
.incbin "baserom.gba", 0x462ED8, 0x10
|
||||||
|
|||||||
@@ -706,5 +706,13 @@ extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni4[];
|
|||||||
extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni5[];
|
extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni5[];
|
||||||
|
|
||||||
extern const u8 gUnknown_81C582D[];
|
extern const u8 gUnknown_81C582D[];
|
||||||
|
extern const u8 gUnknown_81C59D5[];
|
||||||
|
extern const u8 gUnknown_81C5C78[];
|
||||||
|
extern const u8 gUnknown_81C5D06[];
|
||||||
|
extern const u8 gUnknown_81C5D12[];
|
||||||
|
extern const u8 gUnknown_81C5D4B[];
|
||||||
|
extern const u8 gUnknown_81C5DBD[];
|
||||||
|
extern const u8 gUnknown_81C5DEA[];
|
||||||
|
extern const u8 gUnknown_81C5E91[];
|
||||||
|
|
||||||
#endif //GUARD_EVENT_SCRIPTS_H
|
#endif //GUARD_EVENT_SCRIPTS_H
|
||||||
|
|||||||
@@ -43,5 +43,6 @@ void sub_810F650(const u8 *, const u8 *, u8, u32, u8);
|
|||||||
void sub_810F5E8(const u8 *, u32, u8);
|
void sub_810F5E8(const u8 *, u32, u8);
|
||||||
void sub_810F71C(void);
|
void sub_810F71C(void);
|
||||||
void sub_810F740(void);
|
void sub_810F740(void);
|
||||||
|
void sub_810F7D8(u8, u8, u8, u8, u8, u8, u8);
|
||||||
|
|
||||||
#endif // GUARD_MENU_H
|
#endif // GUARD_MENU_H
|
||||||
|
|||||||
@@ -28,5 +28,6 @@ void sub_80F6C6C(void);
|
|||||||
void sub_80F6C98(void);
|
void sub_80F6C98(void);
|
||||||
void sub_80F77CC(u16);
|
void sub_80F77CC(u16);
|
||||||
void * malloc_and_decompress(const void * src, u32 * size);
|
void * malloc_and_decompress(const void * src, u32 * size);
|
||||||
|
u16 sub_80F796C(void);
|
||||||
|
|
||||||
#endif // GUARD_NEW_MENU_HELPERS_H
|
#endif // GUARD_NEW_MENU_HELPERS_H
|
||||||
|
|||||||
+272
-17
@@ -26,10 +26,11 @@ struct OakSpeechResources
|
|||||||
void * unk_0000;
|
void * unk_0000;
|
||||||
u8 filler_0004[0x4];
|
u8 filler_0004[0x4];
|
||||||
void * unk_0008;
|
void * unk_0008;
|
||||||
u8 filler_000C[6];
|
u8 filler_000C[4];
|
||||||
|
u16 unk_0010;
|
||||||
u16 unk_0012;
|
u16 unk_0012;
|
||||||
u16 unk_0014[3];
|
u16 unk_0014[4];
|
||||||
u8 filler_001A[5];
|
u8 unk_001C[3];
|
||||||
u8 unk_001F;
|
u8 unk_001F;
|
||||||
u8 filler_0020[0x1800];
|
u8 filler_0020[0x1800];
|
||||||
u8 bg2TilemapBuffer[0x400];
|
u8 bg2TilemapBuffer[0x400];
|
||||||
@@ -58,20 +59,30 @@ void sub_812FBF0(u8 taskId);
|
|||||||
void sub_812FC68(u8 taskId);
|
void sub_812FC68(u8 taskId);
|
||||||
void sub_812FD78(u8 taskId);
|
void sub_812FD78(u8 taskId);
|
||||||
void sub_812FDC0(u8 taskId);
|
void sub_812FDC0(u8 taskId);
|
||||||
|
void sub_812FE88(u8 taskId);
|
||||||
|
void sub_812FFA4(u8 taskId);
|
||||||
|
void sub_812FFF0(u8 taskId);
|
||||||
|
void sub_8130050(u8 taskId);
|
||||||
|
void sub_81300A0(u8 taskId);
|
||||||
|
void sub_8130160(u8 taskId);
|
||||||
|
void sub_8130324(u8 taskId);
|
||||||
|
void sub_81303B4(u8 taskId);
|
||||||
|
void sub_8130464(u8 taskId);
|
||||||
void sub_8130F2C(u8 taskId);
|
void sub_8130F2C(u8 taskId);
|
||||||
void sub_8130FD4(u8 taskId, u8 state);
|
void sub_8130FD4(u8 taskId, u8 state);
|
||||||
void sub_8131168(u8 taskId, u8 state);
|
void sub_8131168(u8 taskId, u8 state);
|
||||||
void sub_81311F4(u8 taskId, u8 state);
|
void sub_81311F4(u8 arg0, u8 state);
|
||||||
|
void sub_8131310(void);
|
||||||
void sub_813144C(u8 taskId, u8 state);
|
void sub_813144C(u8 taskId, u8 state);
|
||||||
|
void sub_81315CC(u8 taskId, u8 state);
|
||||||
|
void sub_8131660(u8 taskId, u8 state);
|
||||||
|
void sub_8131754(u8 arg0, u8 namePick);
|
||||||
|
|
||||||
extern const u8 gUnknown_8415D2C[];
|
extern const u8 gUnknown_8415D2C[];
|
||||||
extern const u8 gUnknown_8415D48[];
|
extern const u8 gUnknown_8415D48[];
|
||||||
extern const u8 gUnknown_8415D50[];
|
extern const u8 gUnknown_8415D50[];
|
||||||
extern const u8 gUnknown_81C5C78[];
|
extern const u8 gUnknown_8415D93[];
|
||||||
extern const u8 gUnknown_81C5D06[];
|
extern const u8 gUnknown_8415D97[];
|
||||||
extern const u8 gUnknown_81C5D12[];
|
|
||||||
extern const u8 gUnknown_81C5D4B[];
|
|
||||||
extern const u8 gUnknown_81C5DBD[];
|
|
||||||
|
|
||||||
const u8 gUnknown_845FD54[][5] = {
|
const u8 gUnknown_845FD54[][5] = {
|
||||||
[SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29},
|
[SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29},
|
||||||
@@ -501,6 +512,7 @@ extern const u16 gUnknown_8460E34[];
|
|||||||
extern const struct BgTemplate gUnknown_8462E58[3];
|
extern const struct BgTemplate gUnknown_8462E58[3];
|
||||||
extern const struct WindowTemplate *const gUnknown_8462EB4[3];
|
extern const struct WindowTemplate *const gUnknown_8462EB4[3];
|
||||||
extern const struct WindowTemplate gUnknown_8462EC0;
|
extern const struct WindowTemplate gUnknown_8462EC0;
|
||||||
|
extern const struct WindowTemplate gUnknown_8462EC8;
|
||||||
extern const struct TextColor gUnknown_8462EE8;
|
extern const struct TextColor gUnknown_8462EE8;
|
||||||
extern const struct TextColor gUnknown_8462EEC;
|
extern const struct TextColor gUnknown_8462EEC;
|
||||||
extern const u8 *const gUnknown_8462EF0[];
|
extern const u8 *const gUnknown_8462EF0[];
|
||||||
@@ -1015,16 +1027,16 @@ void sub_812F7C0(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define OaksSpeechPrintMessage(str) ({ \
|
#define OaksSpeechPrintMessage(str, speed) ({ \
|
||||||
sub_80F6EE4(0, FALSE);\
|
sub_80F6EE4(0, FALSE);\
|
||||||
if (str != gStringVar4) \
|
if (str != gStringVar4) \
|
||||||
{ \
|
{ \
|
||||||
StringExpandPlaceholders(gStringVar4, str); \
|
StringExpandPlaceholders(gStringVar4, str); \
|
||||||
AddTextPrinterParametrized(0, 4, gStringVar4, sOakSpeechResources->unk_001F, NULL, 2, 1, 3); \
|
AddTextPrinterParametrized(0, 4, gStringVar4, speed, NULL, 2, 1, 3); \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
AddTextPrinterParametrized(0, 4, str, sOakSpeechResources->unk_001F, NULL, 2, 1, 3); \
|
AddTextPrinterParametrized(0, 4, str, speed, NULL, 2, 1, 3); \
|
||||||
} \
|
} \
|
||||||
CopyWindowToVram(0, 3); \
|
CopyWindowToVram(0, 3); \
|
||||||
})
|
})
|
||||||
@@ -1039,7 +1051,7 @@ void sub_812F880(u8 taskId)
|
|||||||
data[3]--;
|
data[3]--;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OaksSpeechPrintMessage(gUnknown_81C5C78);
|
OaksSpeechPrintMessage(gUnknown_81C5C78, sOakSpeechResources->unk_001F);
|
||||||
gTasks[taskId].func = sub_812F944;
|
gTasks[taskId].func = sub_812F944;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1049,7 +1061,7 @@ void sub_812F944(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (!IsTextPrinterActive(0))
|
if (!IsTextPrinterActive(0))
|
||||||
{
|
{
|
||||||
OaksSpeechPrintMessage(gUnknown_81C5D06);
|
OaksSpeechPrintMessage(gUnknown_81C5D06, sOakSpeechResources->unk_001F);
|
||||||
gTasks[taskId].data[3] = 30;
|
gTasks[taskId].data[3] = 30;
|
||||||
gTasks[taskId].func = sub_812F9EC;
|
gTasks[taskId].func = sub_812F9EC;
|
||||||
}
|
}
|
||||||
@@ -1087,7 +1099,7 @@ void sub_812FA78(u8 taskId)
|
|||||||
gTasks[taskId].data[3]++;
|
gTasks[taskId].data[3]++;
|
||||||
if (gTasks[taskId].data[3] == 32)
|
if (gTasks[taskId].data[3] == 32)
|
||||||
{
|
{
|
||||||
OaksSpeechPrintMessage(gUnknown_81C5D12);
|
OaksSpeechPrintMessage(gUnknown_81C5D12, sOakSpeechResources->unk_001F);
|
||||||
PlayCry1(SPECIES_NIDORAN_F, 0);
|
PlayCry1(SPECIES_NIDORAN_F, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1097,7 +1109,7 @@ void sub_812FB4C(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (!IsTextPrinterActive(0))
|
if (!IsTextPrinterActive(0))
|
||||||
{
|
{
|
||||||
OaksSpeechPrintMessage(gUnknown_81C5D4B);
|
OaksSpeechPrintMessage(gUnknown_81C5D4B, sOakSpeechResources->unk_001F);
|
||||||
gTasks[taskId].func = sub_812FBF0;
|
gTasks[taskId].func = sub_812FBF0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1142,7 +1154,7 @@ void sub_812FC68(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OaksSpeechPrintMessage(gUnknown_81C5DBD);
|
OaksSpeechPrintMessage(gUnknown_81C5DBD, sOakSpeechResources->unk_001F);
|
||||||
gTasks[taskId].func = sub_812FD78;
|
gTasks[taskId].func = sub_812FD78;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1160,3 +1172,246 @@ void sub_812FD78(u8 taskId)
|
|||||||
gTasks[taskId].func = sub_812FDC0;
|
gTasks[taskId].func = sub_812FDC0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_812FDC0(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 * data = gTasks[taskId].data;
|
||||||
|
|
||||||
|
if (data[2] != 0)
|
||||||
|
{
|
||||||
|
if (data[3] != 0)
|
||||||
|
data[3]--;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
data[1] = -60;
|
||||||
|
sub_8131310();
|
||||||
|
OaksSpeechPrintMessage(gUnknown_81C59D5, sOakSpeechResources->unk_001F);
|
||||||
|
gTasks[taskId].func = sub_812FE88;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_812FE88(u8 taskId)
|
||||||
|
{
|
||||||
|
if (!IsTextPrinterActive(0))
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[13] = AddWindow(&gUnknown_8462EC8);
|
||||||
|
PutWindowTilemap(gTasks[taskId].data[13]);
|
||||||
|
SetWindowBorderStyle(gTasks[taskId].data[13], 1, sub_80F796C(), 14);
|
||||||
|
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
|
||||||
|
sOakSpeechResources->unk_001C[0] = 1;
|
||||||
|
sOakSpeechResources->unk_001C[1] = 2;
|
||||||
|
sOakSpeechResources->unk_001C[2] = 3;
|
||||||
|
box_print(gTasks[taskId].data[13], 2, 8, 1, sOakSpeechResources->unk_001C, 0, gUnknown_8415D93);
|
||||||
|
sOakSpeechResources->unk_001C[0] = 1;
|
||||||
|
sOakSpeechResources->unk_001C[1] = 2;
|
||||||
|
sOakSpeechResources->unk_001C[2] = 3;
|
||||||
|
box_print(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->unk_001C, 0, gUnknown_8415D97);
|
||||||
|
sub_810F7D8(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0);
|
||||||
|
CopyWindowToVram(gTasks[taskId].data[13], 3);
|
||||||
|
gTasks[taskId].func = sub_812FFA4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_812FFA4(u8 taskId)
|
||||||
|
{
|
||||||
|
s8 input = ProcessMenuInputNoWrapAround();
|
||||||
|
switch (input)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
gSaveBlock2Ptr->playerGender = MALE;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
gSaveBlock2Ptr->playerGender = FEMALE;
|
||||||
|
break;
|
||||||
|
case -1:
|
||||||
|
case -2:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
gTasks[taskId].func = sub_812FFF0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_812FFF0(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 * data = gTasks[taskId].data;
|
||||||
|
sub_810F4D8(data[13], 1);
|
||||||
|
RemoveWindow(data[13]);
|
||||||
|
data[13] = 0;
|
||||||
|
sub_80F6F54(0, 1);
|
||||||
|
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
gTasks[taskId].func = sub_8130050;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8130050(u8 taskId)
|
||||||
|
{
|
||||||
|
if (gSaveBlock2Ptr->playerGender == MALE)
|
||||||
|
sub_81311F4(MALE, 0);
|
||||||
|
else
|
||||||
|
sub_81311F4(FEMALE, 0);
|
||||||
|
sub_81315CC(taskId, 2);
|
||||||
|
gTasks[taskId].data[3] = 32;
|
||||||
|
gTasks[taskId].func = sub_81300A0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81300A0(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 * data = gTasks[taskId].data;
|
||||||
|
|
||||||
|
if (data[2] != 0)
|
||||||
|
{
|
||||||
|
if (data[3] != 0)
|
||||||
|
data[3]--;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
data[1] = 0;
|
||||||
|
OaksSpeechPrintMessage(gUnknown_81C5DEA, sOakSpeechResources->unk_001F);
|
||||||
|
gTasks[taskId].func = sub_8130160;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8130160(u8 taskId)
|
||||||
|
{
|
||||||
|
if (!IsTextPrinterActive(0))
|
||||||
|
{
|
||||||
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||||
|
sOakSpeechResources->unk_0010 = 0;
|
||||||
|
gTasks[taskId].func = sub_81303B4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void sub_81301B0(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 * data = gTasks[taskId].data;
|
||||||
|
|
||||||
|
if (!IsTextPrinterActive(0))
|
||||||
|
{
|
||||||
|
if (data[1] > -60)
|
||||||
|
{
|
||||||
|
data[1] -= 2;
|
||||||
|
gSpriteCoordOffsetX += 2;
|
||||||
|
ChangeBgX(2, 0x200, 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
data[1] = -60;
|
||||||
|
sub_8131660(taskId, sOakSpeechResources->unk_0010);
|
||||||
|
gTasks[taskId].func = sub_8130324;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8130228(u8 taskId)
|
||||||
|
{
|
||||||
|
sub_8131660(taskId, sOakSpeechResources->unk_0010);
|
||||||
|
if (sOakSpeechResources->unk_0010 == 0)
|
||||||
|
{
|
||||||
|
OaksSpeechPrintMessage(gUnknown_81C5DEA, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OaksSpeechPrintMessage(gUnknown_81C5E91, 0);
|
||||||
|
}
|
||||||
|
gTasks[taskId].func = sub_8130324;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
// switch case uses blt, should use ble
|
||||||
|
void sub_8130324(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 * data = gTasks[taskId].data;
|
||||||
|
s8 input = ProcessMenuInput();
|
||||||
|
|
||||||
|
switch (input)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_810F4D8(data[13], TRUE);
|
||||||
|
RemoveWindow(data[13]);
|
||||||
|
sub_8131754(sOakSpeechResources->unk_0010, input - 1);
|
||||||
|
data[15] = 1;
|
||||||
|
gTasks[taskId].func = sub_8130464;
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||||
|
gTasks[taskId].func = sub_81303B4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
NAKED
|
||||||
|
void sub_8130324(u8 taskId)
|
||||||
|
{
|
||||||
|
asm_unified("\tpush {r4-r7,lr}\n"
|
||||||
|
"\tsub sp, 0x4\n"
|
||||||
|
"\tlsls r0, 24\n"
|
||||||
|
"\tlsrs r0, 24\n"
|
||||||
|
"\tlsls r1, r0, 2\n"
|
||||||
|
"\tadds r1, r0\n"
|
||||||
|
"\tlsls r6, r1, 3\n"
|
||||||
|
"\tldr r7, _0813037C @ =gTasks+0x8\n"
|
||||||
|
"\tadds r5, r6, r7\n"
|
||||||
|
"\tbl ProcessMenuInput\n"
|
||||||
|
"\tlsls r0, 24\n"
|
||||||
|
"\tasrs r4, r0, 24\n"
|
||||||
|
"\tcmp r4, 0\n"
|
||||||
|
"\tbeq _08130388\n"
|
||||||
|
"\tcmp r4, 0\n"
|
||||||
|
"\tble _081303A8\n"
|
||||||
|
"\tcmp r4, 0x4\n"
|
||||||
|
"\tbgt _081303A8\n"
|
||||||
|
"\tmovs r0, 0x5\n"
|
||||||
|
"\tbl PlaySE\n"
|
||||||
|
"\tldrb r0, [r5, 0x1A]\n"
|
||||||
|
"\tmovs r1, 0x1\n"
|
||||||
|
"\tbl sub_810F4D8\n"
|
||||||
|
"\tldrb r0, [r5, 0x1A]\n"
|
||||||
|
"\tbl RemoveWindow\n"
|
||||||
|
"\tldr r0, _08130380 @ =sOakSpeechResources\n"
|
||||||
|
"\tldr r0, [r0]\n"
|
||||||
|
"\tldrb r0, [r0, 0x10]\n"
|
||||||
|
"\tsubs r1, r4, 0x1\n"
|
||||||
|
"\tlsls r1, 24\n"
|
||||||
|
"\tlsrs r1, 24\n"
|
||||||
|
"\tbl sub_8131754\n"
|
||||||
|
"\tmovs r0, 0x1\n"
|
||||||
|
"\tstrh r0, [r5, 0x1E]\n"
|
||||||
|
"\tadds r0, r7, 0\n"
|
||||||
|
"\tsubs r0, 0x8\n"
|
||||||
|
"\tadds r0, r6, r0\n"
|
||||||
|
"\tldr r1, _08130384 @ =sub_8130464\n"
|
||||||
|
"\tb _081303A6\n"
|
||||||
|
"\t.align 2, 0\n"
|
||||||
|
"_0813037C: .4byte gTasks+0x8\n"
|
||||||
|
"_08130380: .4byte sOakSpeechResources\n"
|
||||||
|
"_08130384: .4byte sub_8130464\n"
|
||||||
|
"_08130388:\n"
|
||||||
|
"\tmovs r0, 0x5\n"
|
||||||
|
"\tbl PlaySE\n"
|
||||||
|
"\tmovs r0, 0x1\n"
|
||||||
|
"\tnegs r0, r0\n"
|
||||||
|
"\tstr r4, [sp]\n"
|
||||||
|
"\tmovs r1, 0\n"
|
||||||
|
"\tmovs r2, 0\n"
|
||||||
|
"\tmovs r3, 0x10\n"
|
||||||
|
"\tbl BeginNormalPaletteFade\n"
|
||||||
|
"\tadds r0, r7, 0\n"
|
||||||
|
"\tsubs r0, 0x8\n"
|
||||||
|
"\tadds r0, r6, r0\n"
|
||||||
|
"\tldr r1, _081303B0 @ =sub_81303B4\n"
|
||||||
|
"_081303A6:\n"
|
||||||
|
"\tstr r1, [r0]\n"
|
||||||
|
"_081303A8:\n"
|
||||||
|
"\tadd sp, 0x4\n"
|
||||||
|
"\tpop {r4-r7}\n"
|
||||||
|
"\tpop {r0}\n"
|
||||||
|
"\tbx r0\n"
|
||||||
|
"\t.align 2, 0\n"
|
||||||
|
"_081303B0: .4byte sub_81303B4");
|
||||||
|
}
|
||||||
|
#endif //NONMATCHING
|
||||||
|
|||||||
Reference in New Issue
Block a user