mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 07:28:17 -05:00
last decomp for this branch
This commit is contained in:
parent
6c6541f276
commit
aca93c70b7
7814
asm/code_800D090.s
7814
asm/code_800D090.s
File diff suppressed because it is too large
Load Diff
7515
asm/code_800DAC0.s
Normal file
7515
asm/code_800DAC0.s
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -8065,350 +8065,4 @@ _08022E70:
|
|||
bx r0
|
||||
thumb_func_end sub_8022D2C
|
||||
|
||||
thumb_func_start sub_8022E78
|
||||
sub_8022E78:
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl sub_801A6E8
|
||||
cmp r0, 0x3
|
||||
beq _08022E94
|
||||
cmp r0, 0x3
|
||||
bhi _08022E8E
|
||||
cmp r0, 0x2
|
||||
beq _08022EE8
|
||||
b _08022EEE
|
||||
_08022E8E:
|
||||
cmp r0, 0x4
|
||||
beq _08022EBC
|
||||
b _08022EEE
|
||||
_08022E94:
|
||||
bl sub_801A8AC
|
||||
ldr r1, _08022EB4
|
||||
ldr r2, [r1]
|
||||
str r0, [r2, 0x4C]
|
||||
ldr r1, _08022EB8
|
||||
ldr r1, [r1]
|
||||
lsls r0, 2
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x50]
|
||||
movs r0, 0x2
|
||||
bl sub_8022924
|
||||
b _08022EEE
|
||||
.align 2, 0
|
||||
_08022EB4: .4byte gUnknown_203B294
|
||||
_08022EB8: .4byte gTeamInventory_203B460
|
||||
_08022EBC:
|
||||
bl sub_801A8AC
|
||||
ldr r1, _08022EE0
|
||||
ldr r2, [r1]
|
||||
str r0, [r2, 0x4C]
|
||||
ldr r1, _08022EE4
|
||||
ldr r1, [r1]
|
||||
lsls r0, 2
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x50]
|
||||
movs r0, 0
|
||||
bl sub_8099690
|
||||
movs r0, 0x4
|
||||
bl sub_8022924
|
||||
b _08022EEE
|
||||
.align 2, 0
|
||||
_08022EE0: .4byte gUnknown_203B294
|
||||
_08022EE4: .4byte gTeamInventory_203B460
|
||||
_08022EE8:
|
||||
movs r0, 0x16
|
||||
bl sub_8022924
|
||||
_08022EEE:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8022E78
|
||||
|
||||
thumb_func_start sub_8022EF4
|
||||
sub_8022EF4:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_801A6E8
|
||||
ldr r4, _08022F3C
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x54
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08022F26
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x54
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
ldr r1, [sp]
|
||||
cmp r1, 0x1
|
||||
beq _08022F26
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xF4
|
||||
str r1, [r0]
|
||||
_08022F26:
|
||||
ldr r0, [sp]
|
||||
subs r0, 0x1
|
||||
cmp r0, 0x6
|
||||
bls _08022F30
|
||||
b _08023060
|
||||
_08022F30:
|
||||
lsls r0, 2
|
||||
ldr r1, _08022F40
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08022F3C: .4byte gUnknown_203B294
|
||||
_08022F40: .4byte _08022F44
|
||||
.align 2, 0
|
||||
_08022F44:
|
||||
.4byte _08022F60
|
||||
.4byte _08023060
|
||||
.4byte _08023060
|
||||
.4byte _0802304C
|
||||
.4byte _08022F68
|
||||
.4byte _08023044
|
||||
.4byte _08023054
|
||||
_08022F60:
|
||||
movs r0, 0x1
|
||||
bl sub_8022924
|
||||
b _08023060
|
||||
_08022F68:
|
||||
ldr r4, _08022FEC
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
ldr r1, [r1, 0x48]
|
||||
movs r2, 0x14
|
||||
ldrsh r1, [r1, r2]
|
||||
bl GetNumAvailableIQSkills
|
||||
ldr r3, [r4]
|
||||
str r0, [r3, 0x38]
|
||||
ldr r0, [r3, 0x48]
|
||||
adds r1, r3, 0
|
||||
adds r1, 0x52
|
||||
ldrb r1, [r1]
|
||||
adds r3, 0x44
|
||||
movs r2, 0
|
||||
bl GetGummiItemStatBoost
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x20
|
||||
ldr r1, [r1, 0x48]
|
||||
movs r2, 0x14
|
||||
ldrsh r1, [r1, r2]
|
||||
bl GetNumAvailableIQSkills
|
||||
ldr r1, [r4]
|
||||
str r0, [r1, 0x3C]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x40]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x44
|
||||
movs r2, 0
|
||||
ldrsh r5, [r0, r2]
|
||||
ldr r0, _08022FF0
|
||||
ldr r3, _08022FF4
|
||||
ldr r2, [r1, 0x4C]
|
||||
lsls r2, 2
|
||||
ldr r1, [r3]
|
||||
adds r1, r2
|
||||
movs r2, 0
|
||||
bl sub_8090E14
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r5, r0
|
||||
beq _08022FD0
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x4C]
|
||||
bl ShiftItemsDownFrom
|
||||
_08022FD0:
|
||||
movs r0, 0
|
||||
bl sub_8099690
|
||||
ldr r1, [r4]
|
||||
movs r0, 0xA
|
||||
str r0, [r1, 0x4]
|
||||
adds r0, r5, 0x1
|
||||
cmp r0, 0x4
|
||||
bhi _08023030
|
||||
lsls r0, 2
|
||||
ldr r1, _08022FF8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08022FEC: .4byte gUnknown_203B294
|
||||
_08022FF0: .4byte gUnknown_202DE58
|
||||
_08022FF4: .4byte gTeamInventory_203B460
|
||||
_08022FF8: .4byte _08022FFC
|
||||
.align 2, 0
|
||||
_08022FFC:
|
||||
.4byte _08023030
|
||||
.4byte _08023010
|
||||
.4byte _08023018
|
||||
.4byte _08023020
|
||||
.4byte _08023028
|
||||
_08023010:
|
||||
movs r0, 0x6
|
||||
bl sub_8022924
|
||||
b _08023060
|
||||
_08023018:
|
||||
movs r0, 0x7
|
||||
bl sub_8022924
|
||||
b _08023060
|
||||
_08023020:
|
||||
movs r0, 0x8
|
||||
bl sub_8022924
|
||||
b _08023060
|
||||
_08023028:
|
||||
movs r0, 0x9
|
||||
bl sub_8022924
|
||||
b _08023060
|
||||
_08023030:
|
||||
ldr r0, _08023040
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x16
|
||||
str r0, [r1, 0x4]
|
||||
movs r0, 0x5
|
||||
bl sub_8022924
|
||||
b _08023060
|
||||
.align 2, 0
|
||||
_08023040: .4byte gUnknown_203B294
|
||||
_08023044:
|
||||
movs r0, 0x15
|
||||
bl sub_8022924
|
||||
b _08023060
|
||||
_0802304C:
|
||||
movs r0, 0x3
|
||||
bl sub_8022924
|
||||
b _08023060
|
||||
_08023054:
|
||||
movs r0, 0
|
||||
bl sub_8099690
|
||||
movs r0, 0x4
|
||||
bl sub_8022924
|
||||
_08023060:
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8022EF4
|
||||
|
||||
thumb_func_start sub_8023068
|
||||
sub_8023068:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_801A6E8
|
||||
ldr r4, _080230A8
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x54
|
||||
bl sub_8012FD8
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xA4
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08023096
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xA4
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
_08023096:
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0x2
|
||||
beq _080230B8
|
||||
cmp r0, 0x2
|
||||
bgt _080230AC
|
||||
cmp r0, 0x1
|
||||
beq _080230B0
|
||||
b _080230E0
|
||||
.align 2, 0
|
||||
_080230A8: .4byte gUnknown_203B294
|
||||
_080230AC:
|
||||
cmp r0, 0x3
|
||||
bne _080230E0
|
||||
_080230B0:
|
||||
movs r0, 0x1
|
||||
bl sub_8022924
|
||||
b _080230E0
|
||||
_080230B8:
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x4C]
|
||||
bl ShiftItemsDownFrom
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0
|
||||
bne _080230DA
|
||||
movs r0, 0
|
||||
bl sub_8099690
|
||||
bl sub_801A928
|
||||
movs r0, 0x14
|
||||
bl sub_8022924
|
||||
b _080230E0
|
||||
_080230DA:
|
||||
movs r0, 0x1
|
||||
bl sub_8022924
|
||||
_080230E0:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8023068
|
||||
|
||||
thumb_func_start sub_80230E8
|
||||
sub_80230E8:
|
||||
push {lr}
|
||||
bl sub_801B410
|
||||
cmp r0, 0x1
|
||||
bls _08023100
|
||||
cmp r0, 0x3
|
||||
bhi _08023100
|
||||
bl sub_801B450
|
||||
movs r0, 0x1
|
||||
bl sub_8022924
|
||||
_08023100:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80230E8
|
||||
|
||||
thumb_func_start sub_8023104
|
||||
sub_8023104:
|
||||
push {lr}
|
||||
bl sub_801B00C
|
||||
cmp r0, 0x1
|
||||
bls _0802311C
|
||||
cmp r0, 0x3
|
||||
bhi _0802311C
|
||||
bl sub_801B048
|
||||
movs r0, 0x1
|
||||
bl sub_8022924
|
||||
_0802311C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8023104
|
||||
|
||||
thumb_func_start sub_8023120
|
||||
sub_8023120:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r0, sp
|
||||
bl sub_80144A4
|
||||
cmp r0, 0
|
||||
bne _08023138
|
||||
ldr r0, _08023140
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x4]
|
||||
bl sub_8022924
|
||||
_08023138:
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08023140: .4byte gUnknown_203B294
|
||||
thumb_func_end sub_8023120
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ _0802FFAC:
|
|||
.4byte _08030180
|
||||
.4byte _080301A0
|
||||
_0802FFE4:
|
||||
bl sub_80301B0
|
||||
bl DrawMakuhitaMainMenu
|
||||
ldr r2, _0802FFF8
|
||||
ldr r0, _0802FFFC
|
||||
ldr r5, [r0]
|
||||
|
|
@ -265,465 +265,4 @@ _080301A8: .4byte gMakuhitaDialogue
|
|||
_080301AC: .4byte 0x0000010d
|
||||
thumb_func_end UpdateMakuhitaDialogue
|
||||
|
||||
thumb_func_start sub_80301B0
|
||||
sub_80301B0:
|
||||
push {r4,lr}
|
||||
ldr r4, _080301F8
|
||||
ldr r1, [r4]
|
||||
movs r2, 0x2
|
||||
str r2, [r1, 0x14]
|
||||
ldr r0, _080301FC
|
||||
str r0, [r1, 0x18]
|
||||
str r2, [r1, 0x1C]
|
||||
bl sub_80306A4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080301D6
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r1, [r0, 0x1C]
|
||||
movs r1, 0x1
|
||||
str r1, [r0, 0x14]
|
||||
_080301D6:
|
||||
ldr r1, [r4]
|
||||
movs r2, 0x1
|
||||
ldr r0, _08030200
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x20]
|
||||
movs r0, 0x3
|
||||
str r0, [r1, 0x24]
|
||||
ldr r0, _08030204
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x28]
|
||||
str r2, [r1, 0x2C]
|
||||
movs r0, 0
|
||||
str r0, [r1, 0x30]
|
||||
str r2, [r1, 0x34]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080301F8: .4byte gUnknown_203B318
|
||||
_080301FC: .4byte gMakuhitaDojoGoTrain
|
||||
_08030200: .4byte gUnknown_80D4970
|
||||
_08030204: .4byte gUnknown_80D4934
|
||||
thumb_func_end sub_80301B0
|
||||
|
||||
thumb_func_start sub_8030208
|
||||
sub_8030208:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r0, sp
|
||||
bl sub_80144A4
|
||||
cmp r0, 0
|
||||
bne _08030250
|
||||
ldr r0, _08030230
|
||||
ldr r1, [r0]
|
||||
ldr r0, [sp]
|
||||
str r0, [r1, 0x14]
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0x2
|
||||
beq _0803023A
|
||||
cmp r0, 0x2
|
||||
bgt _08030234
|
||||
cmp r0, 0x1
|
||||
beq _0803024A
|
||||
b _08030250
|
||||
.align 2, 0
|
||||
_08030230: .4byte gUnknown_203B318
|
||||
_08030234:
|
||||
cmp r0, 0x3
|
||||
beq _08030242
|
||||
b _08030250
|
||||
_0803023A:
|
||||
movs r0, 0x3
|
||||
bl UpdateMakuhitaState
|
||||
b _08030250
|
||||
_08030242:
|
||||
movs r0, 0xC
|
||||
bl UpdateMakuhitaState
|
||||
b _08030250
|
||||
_0803024A:
|
||||
movs r0, 0x2
|
||||
bl UpdateMakuhitaState
|
||||
_08030250:
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8030208
|
||||
|
||||
thumb_func_start sub_8030258
|
||||
sub_8030258:
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl sub_80303AC
|
||||
cmp r0, 0x2
|
||||
beq _08030288
|
||||
cmp r0, 0x2
|
||||
bcc _0803029A
|
||||
cmp r0, 0x3
|
||||
bne _0803029A
|
||||
bl sub_8030418
|
||||
ldr r1, _08030284
|
||||
ldr r1, [r1]
|
||||
strh r0, [r1, 0x10]
|
||||
bl sub_8030480
|
||||
movs r0, 0x5
|
||||
bl UpdateMakuhitaState
|
||||
b _0803029A
|
||||
.align 2, 0
|
||||
_08030284: .4byte gUnknown_203B318
|
||||
_08030288:
|
||||
bl sub_8030480
|
||||
ldr r0, _080302A0
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080302A4
|
||||
strh r0, [r1, 0x10]
|
||||
movs r0, 0x1
|
||||
bl UpdateMakuhitaState
|
||||
_0803029A:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080302A0: .4byte gUnknown_203B318
|
||||
_080302A4: .4byte 0x0000ffff
|
||||
thumb_func_end sub_8030258
|
||||
|
||||
thumb_func_start sub_80302A8
|
||||
sub_80302A8:
|
||||
push {lr}
|
||||
bl sub_801B6AC
|
||||
cmp r0, 0x1
|
||||
bls _080302C0
|
||||
cmp r0, 0x3
|
||||
bhi _080302C0
|
||||
bl sub_801B72C
|
||||
movs r0, 0xA
|
||||
bl UpdateMakuhitaState
|
||||
_080302C0:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80302A8
|
||||
|
||||
thumb_func_start sub_80302C4
|
||||
sub_80302C4:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r0, sp
|
||||
bl sub_80144A4
|
||||
cmp r0, 0
|
||||
bne _080302DC
|
||||
ldr r0, _080302E4
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0xC]
|
||||
bl UpdateMakuhitaState
|
||||
_080302DC:
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080302E4: .4byte gUnknown_203B318
|
||||
thumb_func_end sub_80302C4
|
||||
|
||||
thumb_func_start sub_80302E8
|
||||
sub_80302E8:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r5, r0, 0
|
||||
adds r6, r1, 0
|
||||
mov r8, r2
|
||||
bl sub_80306A4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08030302
|
||||
movs r0, 0
|
||||
b _0803039A
|
||||
_08030302:
|
||||
ldr r4, _080303A4
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _08030314
|
||||
movs r0, 0xD0
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
_08030314:
|
||||
ldr r0, [r4]
|
||||
str r5, [r0, 0x64]
|
||||
lsls r1, r5, 1
|
||||
adds r1, r5
|
||||
lsls r1, 3
|
||||
adds r1, 0x6C
|
||||
adds r1, r0, r1
|
||||
str r1, [r0, 0x68]
|
||||
adds r0, 0x6C
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r2, [r1, 0x64]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x6C
|
||||
ldr r0, _080303A8
|
||||
ldm r0!, {r2,r3,r7}
|
||||
stm r1!, {r2,r3,r7}
|
||||
ldm r0!, {r2,r3,r7}
|
||||
stm r1!, {r2,r3,r7}
|
||||
ldr r2, [r4]
|
||||
ldr r1, [r2, 0x68]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xCC
|
||||
str r0, [r1, 0x14]
|
||||
cmp r6, 0
|
||||
beq _08030362
|
||||
ldr r1, [r2, 0x64]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x74
|
||||
adds r1, r0
|
||||
ldr r0, [r6]
|
||||
str r0, [r1]
|
||||
_08030362:
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x68]
|
||||
mov r1, r8
|
||||
bl sub_8012D08
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r4, [r4]
|
||||
adds r4, 0x30
|
||||
bl sub_8030668
|
||||
adds r1, r0, 0
|
||||
adds r0, r4, 0
|
||||
mov r2, r8
|
||||
adds r3, r5, 0
|
||||
bl sub_8013818
|
||||
bl sub_80304C8
|
||||
bl DrawDojoCourseList
|
||||
movs r0, 0x1
|
||||
_0803039A:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080303A4: .4byte gUnknown_203B31C
|
||||
_080303A8: .4byte gUnknown_80E0804
|
||||
thumb_func_end sub_80302E8
|
||||
|
||||
thumb_func_start sub_80303AC
|
||||
sub_80303AC:
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080303C8
|
||||
ldr r0, _080303C4
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x30
|
||||
bl sub_8013660
|
||||
movs r0, 0
|
||||
b _08030410
|
||||
.align 2, 0
|
||||
_080303C4: .4byte gUnknown_203B31C
|
||||
_080303C8:
|
||||
ldr r4, _080303E4
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x30
|
||||
bl GetKeyPress
|
||||
cmp r0, 0x1
|
||||
beq _080303E8
|
||||
cmp r0, 0x2
|
||||
bne _080303F2
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _08030410
|
||||
.align 2, 0
|
||||
_080303E4: .4byte gUnknown_203B31C
|
||||
_080303E8:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x3
|
||||
b _08030410
|
||||
_080303F2:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x30
|
||||
movs r1, 0x1
|
||||
bl sub_80138B8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08030406
|
||||
movs r0, 0
|
||||
b _08030410
|
||||
_08030406:
|
||||
bl sub_80304C8
|
||||
bl DrawDojoCourseList
|
||||
movs r0, 0x1
|
||||
_08030410:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80303AC
|
||||
|
||||
thumb_func_start sub_8030418
|
||||
sub_8030418:
|
||||
ldr r0, _08030440
|
||||
ldr r2, [r0]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x4E
|
||||
movs r3, 0
|
||||
ldrsh r1, [r0, r3]
|
||||
subs r0, 0x2
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
muls r0, r1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x48
|
||||
movs r3, 0
|
||||
ldrsh r1, [r1, r3]
|
||||
adds r0, r1
|
||||
lsls r0, 1
|
||||
adds r0, r2, r0
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08030440: .4byte gUnknown_203B31C
|
||||
thumb_func_end sub_8030418
|
||||
|
||||
thumb_func_start sub_8030444
|
||||
sub_8030444:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
bl sub_8030668
|
||||
adds r1, r0, 0
|
||||
ldr r5, _0803047C
|
||||
ldr r0, [r5]
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x52
|
||||
strh r1, [r2]
|
||||
adds r0, 0x30
|
||||
bl sub_8013984
|
||||
bl sub_80304C8
|
||||
bl DrawDojoCourseList
|
||||
cmp r4, 0
|
||||
beq _08030476
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x30
|
||||
bl AddMenuCursorSprite
|
||||
_08030476:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803047C: .4byte gUnknown_203B31C
|
||||
thumb_func_end sub_8030444
|
||||
|
||||
thumb_func_start sub_8030480
|
||||
sub_8030480:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _080304C0
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _080304BA
|
||||
ldr r0, [r2, 0x64]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x6C
|
||||
ldr r0, _080304C4
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_080304BA:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080304C0: .4byte gUnknown_203B31C
|
||||
_080304C4: .4byte gUnknown_80E07EC
|
||||
thumb_func_end sub_8030480
|
||||
|
||||
thumb_func_start sub_80304C8
|
||||
sub_80304C8:
|
||||
push {r4,lr}
|
||||
ldr r4, _08030538
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xCC
|
||||
movs r2, 0
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xCD
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xCE
|
||||
movs r1, 0x8
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xCF
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x4A
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, 0xC
|
||||
bl sub_80095E4
|
||||
adds r0, 0x2
|
||||
lsls r0, 16
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2, 0x64]
|
||||
lsls r1, r3, 1
|
||||
adds r1, r3
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x7A
|
||||
asrs r3, r0, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r1]
|
||||
ldr r1, [r2, 0x64]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r2, r0
|
||||
adds r3, 0x2
|
||||
adds r2, 0x7C
|
||||
strh r3, [r2]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08030538: .4byte gUnknown_203B31C
|
||||
thumb_func_end sub_80304C8
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ gUnknown_8270000: @ 8270000
|
|||
.4byte MemoryCard_Text
|
||||
.4byte Performance_Text
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte PokeDungeon_Text
|
||||
.4byte sGameInternalVersion
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ struct HeldItem {
|
|||
|
||||
struct unkStruct_80915F4
|
||||
{
|
||||
u16 unk0;
|
||||
s16 unk0;
|
||||
u16 unk2;
|
||||
};
|
||||
|
||||
|
|
|
|||
23
include/makuhita_dojo.h
Normal file
23
include/makuhita_dojo.h
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
struct unkStruct_203B318
|
||||
{
|
||||
// size: 0xcc
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
s32 state;
|
||||
s32 fallbackState;
|
||||
s16 unk10;
|
||||
s32 unk14;
|
||||
struct MenuItem unk18[4];
|
||||
u8 fill[0x58 - 0x38];
|
||||
struct OpenedFile *faceFile;
|
||||
u8 *faceData;
|
||||
u16 unk60;
|
||||
u16 unk62;
|
||||
u8 unk64;
|
||||
u8 unk65;
|
||||
u8 unk66;
|
||||
u8 unk67;
|
||||
struct OpenedFile** unk68;
|
||||
struct UnkTextStruct2 unk6C[4];
|
||||
};
|
||||
|
||||
|
|
@ -82,6 +82,8 @@ SECTIONS {
|
|||
src/flash.o(.text);
|
||||
src/code_800D090.o(.text);
|
||||
asm/code_800D090.o(.text);
|
||||
src/code_800DAC0.o(.text);
|
||||
asm/code_800DAC0.o(.text);
|
||||
src/code_80118A4.o(.text);
|
||||
src/debug.o(.text);
|
||||
src/save.o(.text);
|
||||
|
|
|
|||
218
src/code_800DAC0.c
Normal file
218
src/code_800DAC0.c
Normal file
|
|
@ -0,0 +1,218 @@
|
|||
#include "global.h"
|
||||
#include "file_system.h"
|
||||
#include "memory.h"
|
||||
|
||||
struct unkStruct_203B0CC_sub
|
||||
{
|
||||
// size: 0xD0
|
||||
u32 unk0;
|
||||
s32 unk4;
|
||||
u8 fill8[0x34 - 8];
|
||||
u32 unk34;
|
||||
u32 unk38;
|
||||
u8 fill3C[0x4C - 0x3C];
|
||||
u32 unk4C;
|
||||
s32 unk50;
|
||||
u8 unk54;
|
||||
u8 fill55[0xB8 - 0x55];
|
||||
u32 unkB8;
|
||||
u8 fillBC[0xD0 - 0xBC];
|
||||
};
|
||||
|
||||
struct unkStruct_203B0CC
|
||||
{
|
||||
// size: 0x1A18
|
||||
struct unkStruct_203B0CC_sub unk0[0x20];
|
||||
u32 unk1A00;
|
||||
/* 0x1A04 */ u32 fileSelection;
|
||||
u32 unk1A08;
|
||||
u32 unk1A0C;
|
||||
u32 unk1A10;
|
||||
u8 fill1A14[0x1A18 - 0x1A14];
|
||||
};
|
||||
|
||||
struct unkStruct_203B0CC *gUnknown_203B0CC;
|
||||
|
||||
struct unkStruct_800F18C
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
extern s32 sub_800E2C0(void);
|
||||
extern s32 sub_8000728(void);
|
||||
extern u32 sub_800E900(void);
|
||||
extern void sub_8009BE4(void);
|
||||
extern void sub_8040238(void);
|
||||
extern void sub_800F204(void);
|
||||
extern void sub_803EAF0(u32, u32);
|
||||
extern void sub_800CD64(u32, u32);
|
||||
extern struct unkStruct_800F18C *sub_800F18C(s32);
|
||||
extern void sub_800DCA8(struct unkStruct_203B0CC_sub *);
|
||||
extern void PlaySound(u16);
|
||||
|
||||
extern u8 gefob000_string[];
|
||||
extern u8 gefob001_string[];
|
||||
extern struct FileArchive gEffectFileArchive;
|
||||
|
||||
extern void sub_8005610(struct OpenedFile *, u32, u32,u32);
|
||||
extern void sub_800DB7C(void);
|
||||
extern void sub_800F034(void);
|
||||
extern void sub_800ED38(u32);
|
||||
extern void sub_800DC14(void);
|
||||
extern void sub_800F078();
|
||||
extern void sub_800ED64();
|
||||
extern void sub_800ED80();
|
||||
extern void sub_800F094();
|
||||
|
||||
void sub_800DAC0(u32 fileSelection)
|
||||
{
|
||||
s32 index;
|
||||
struct OpenedFile *filePtr;
|
||||
struct unkStruct_203B0CC_sub *preload;
|
||||
|
||||
if (gUnknown_203B0CC != NULL) {
|
||||
sub_800DB7C();
|
||||
}
|
||||
gUnknown_203B0CC = MemoryAlloc(sizeof(struct unkStruct_203B0CC), 0xb);
|
||||
MemoryClear8((u8 *)gUnknown_203B0CC, sizeof(struct unkStruct_203B0CC));
|
||||
gUnknown_203B0CC->fileSelection = fileSelection;
|
||||
for(index = 0, preload = &gUnknown_203B0CC->unk0[index]; index < 0x20; index++, preload++)
|
||||
{
|
||||
preload->unk4 = -1;
|
||||
}
|
||||
sub_800ED38(fileSelection);
|
||||
sub_800F034();
|
||||
|
||||
switch(gUnknown_203B0CC->fileSelection)
|
||||
{
|
||||
case 1:
|
||||
filePtr = Call_OpenFileAndGetFileDataPtr(gefob001_string, &gEffectFileArchive);
|
||||
if (filePtr != NULL) {
|
||||
sub_8005610(filePtr,0x248,0x1f,0);
|
||||
CloseFile(filePtr);
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
filePtr = Call_OpenFileAndGetFileDataPtr(gefob000_string, &gEffectFileArchive);
|
||||
if (filePtr != NULL) {
|
||||
sub_8005610(filePtr,0x248,0x1f,0);
|
||||
CloseFile(filePtr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800DB7C(void)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_203B0CC_sub *preload;
|
||||
|
||||
for(index = 0, preload = &gUnknown_203B0CC->unk0[index]; index < 0x20; index++, preload++)
|
||||
{
|
||||
if(preload->unk4 != -1)
|
||||
sub_800DC14();
|
||||
}
|
||||
|
||||
|
||||
sub_800F078();
|
||||
sub_800ED64();
|
||||
if(gUnknown_203B0CC != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B0CC);
|
||||
gUnknown_203B0CC = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800DBBC(void)
|
||||
{
|
||||
s32 index1;
|
||||
s32 index2;
|
||||
struct unkStruct_203B0CC_sub *preload;
|
||||
struct unkStruct_203B0CC_sub *preload2;
|
||||
|
||||
for(index1 = 0, preload = &gUnknown_203B0CC->unk0[index1]; index1 < 0x20; index1++, preload++)
|
||||
{
|
||||
if(preload->unk4 != -1)
|
||||
sub_800DC14();
|
||||
}
|
||||
|
||||
|
||||
for(index2 = 0, preload2 = &gUnknown_203B0CC->unk0[index2]; index2 < 0x20; index2++, preload2++)
|
||||
{
|
||||
preload2->unk4 = -1;
|
||||
}
|
||||
sub_800ED80();
|
||||
sub_800F094();
|
||||
}
|
||||
|
||||
bool8 sub_800DCC0(void)
|
||||
{
|
||||
return gUnknown_203B0CC != NULL;
|
||||
}
|
||||
|
||||
void sub_800DC14(void)
|
||||
{
|
||||
s32 index1;
|
||||
s32 index2;
|
||||
struct unkStruct_800F18C *piVar3;
|
||||
struct unkStruct_800F18C *puVar4;
|
||||
struct unkStruct_203B0CC_sub *preload;
|
||||
|
||||
index1 = sub_800E2C0();
|
||||
if (index1 != -1) {
|
||||
preload = &gUnknown_203B0CC->unk0[index1];
|
||||
if (preload->unk34 == 4) {
|
||||
sub_8009BE4();
|
||||
if (sub_8000728() == 1) {
|
||||
sub_8040238();
|
||||
sub_803EAF0(0,0);
|
||||
sub_800CD64(0x8000,0);
|
||||
}
|
||||
}
|
||||
if (preload->unk34 == 3) {
|
||||
for (index2 = 0; index2 < 2; index2 = index2 + 1) {
|
||||
piVar3 = sub_800F18C(index2);
|
||||
if (piVar3->unk0 == preload->unk38) {
|
||||
piVar3->unk4--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
puVar4 = sub_800F18C(1);
|
||||
puVar4->unk4 = 0;
|
||||
puVar4->unk0 = 0xffffffff;
|
||||
}
|
||||
sub_800DCA8(preload);
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_800DC9C(void) {
|
||||
return sub_800E900();
|
||||
}
|
||||
|
||||
void sub_800DCA8(struct unkStruct_203B0CC_sub *param_1)
|
||||
{
|
||||
param_1->unk4 = -1;
|
||||
param_1->unk54 = 0;
|
||||
if(param_1->unkB8 != 0)
|
||||
{
|
||||
sub_800F204();
|
||||
param_1->unkB8 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800DCD0(struct unkStruct_203B0CC_sub *param_1)
|
||||
{
|
||||
if ((param_1->unk4C != -1) && (param_1->unk50 == 0)) {
|
||||
if (sub_8000728() != 2) {
|
||||
PlaySound(param_1->unk4C);
|
||||
}
|
||||
param_1->unk4C = -1;
|
||||
param_1->unk50 = -1;
|
||||
}
|
||||
if (param_1->unk50 > 0) {
|
||||
param_1->unk50--;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,11 @@
|
|||
#include "global.h"
|
||||
#include "constants/iq_skill.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
#include "team_inventory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
#include "item.h"
|
||||
|
||||
struct unkStruct_3001B5C
|
||||
{
|
||||
|
|
@ -48,6 +52,207 @@ extern s32 GetKeyPress(void *);
|
|||
extern void sub_8013660(void *);
|
||||
extern void AddMenuCursorSprite(void *);
|
||||
|
||||
struct unkStruct_203B294
|
||||
{
|
||||
// size: 0x1A8
|
||||
/* 0x0 */ u32 state;
|
||||
/* 0x4 */ u32 fallbackState;
|
||||
u8 unk8[NUM_IQ_SKILLS];
|
||||
u8 unk20[NUM_IQ_SKILLS];
|
||||
u32 unk38;
|
||||
u32 unk3C;
|
||||
u32 unk40;
|
||||
struct unkStruct_80915F4 unk44;
|
||||
/* 0x48 */ struct PokemonStruct *pokeStruct;
|
||||
u32 unk4C;
|
||||
struct ItemSlot unk50;
|
||||
u32 unk54;
|
||||
u8 fill58[0xA4 - 0x58];
|
||||
u32 unkA4;
|
||||
u8 fillA8[0xF4 - 0xA8];
|
||||
u32 unkF4;
|
||||
u32 unkF8;
|
||||
u16 unkFC;
|
||||
};
|
||||
|
||||
struct unkStruct_203B294 *gUnknown_203B294;
|
||||
|
||||
extern u8 gUnknown_80DC5EC[];
|
||||
extern u8 gUnknown_202DE58[];
|
||||
extern void sub_8022924(s32);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern u32 sub_801B00C(void);
|
||||
extern void sub_801B048(void);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_801A928(void);
|
||||
s32 GetNumAvailableIQSkills(u8 *iqSkillBuffer, s32 pokeIQ);
|
||||
void GetGummiItemStatBoost(struct PokemonStruct* pokemon, u8 itemIndex, u8 a3, struct unkStruct_80915F4* a4);
|
||||
extern u32 sub_801A8AC(void);
|
||||
|
||||
void sub_8022E78(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B294->unk4C = sub_801A8AC();
|
||||
gUnknown_203B294->unk50 = gTeamInventory_203B460->teamItems[gUnknown_203B294->unk4C];
|
||||
sub_8022924(2);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B294->unk4C = sub_801A8AC();
|
||||
gUnknown_203B294->unk50 = gTeamInventory_203B460->teamItems[gUnknown_203B294->unk4C];
|
||||
sub_8099690(0);
|
||||
sub_8022924(4);
|
||||
break;
|
||||
case 2:
|
||||
sub_8022924(0x16);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8022EF4(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
s32 r5;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
if (sub_8012FD8(&gUnknown_203B294->unk54) == 0) {
|
||||
sub_8013114(&gUnknown_203B294->unk54,&menuAction);
|
||||
if(menuAction != 1) gUnknown_203B294->unkF4 = menuAction;
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
case 1:
|
||||
sub_8022924(1);
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B294->unk38 = GetNumAvailableIQSkills(gUnknown_203B294->unk8, gUnknown_203B294->pokeStruct->IQ);
|
||||
GetGummiItemStatBoost(gUnknown_203B294->pokeStruct, gUnknown_203B294->unk50.itemIndex, 0, &gUnknown_203B294->unk44);
|
||||
gUnknown_203B294->unk3C = GetNumAvailableIQSkills(gUnknown_203B294->unk20, gUnknown_203B294->pokeStruct->IQ);
|
||||
gUnknown_203B294->unk40 = 1;
|
||||
r5 = gUnknown_203B294->unk44.unk0;
|
||||
|
||||
sub_8090E14(gUnknown_202DE58, &gTeamInventory_203B460->teamItems[gUnknown_203B294->unk4C], NULL);
|
||||
|
||||
if(r5 != -1)
|
||||
ShiftItemsDownFrom(gUnknown_203B294->unk4C);
|
||||
|
||||
sub_8099690(0);
|
||||
gUnknown_203B294->fallbackState = 0xA;
|
||||
|
||||
switch(r5 + 1)
|
||||
{
|
||||
case 1:
|
||||
sub_8022924(6);
|
||||
break;
|
||||
case 2:
|
||||
sub_8022924(7);
|
||||
break;
|
||||
case 3:
|
||||
sub_8022924(8);
|
||||
break;
|
||||
case 4:
|
||||
sub_8022924(9);
|
||||
break;
|
||||
default:
|
||||
case 0:
|
||||
gUnknown_203B294->fallbackState = 0x16;
|
||||
sub_8022924(5);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
sub_8022924(0x15);
|
||||
break;
|
||||
case 4:
|
||||
sub_8022924(3);
|
||||
break;
|
||||
case 7:
|
||||
sub_8099690(0);
|
||||
sub_8022924(4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8023068(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_8012FD8(&gUnknown_203B294->unk54);
|
||||
if (sub_8012FD8(&gUnknown_203B294->unkA4) == 0) {
|
||||
sub_8013114(&gUnknown_203B294->unkA4,&menuAction);
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
case 1:
|
||||
case 3:
|
||||
sub_8022924(1);
|
||||
break;
|
||||
case 2:
|
||||
ShiftItemsDownFrom(gUnknown_203B294->unk4C);
|
||||
if (GetNumberOfFilledInventorySlots() == 0) {
|
||||
sub_8099690(0);
|
||||
sub_801A928();
|
||||
sub_8022924(0x14);
|
||||
}
|
||||
else {
|
||||
sub_8022924(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80230E8(void)
|
||||
{
|
||||
switch(sub_801B410())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B450();
|
||||
sub_8022924(1);
|
||||
case 1:
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8023104(void)
|
||||
{
|
||||
switch(sub_801B00C())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B048();
|
||||
sub_8022924(1);
|
||||
case 1:
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8023120(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
sub_8022924(gUnknown_203B294->fallbackState);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8023144(s32 param_1, s32 index, struct UnkTextStruct2_sub *sub, u32 param_4)
|
||||
{
|
||||
u8 param_1_u8 = param_1;
|
||||
|
|
|
|||
|
|
@ -4,27 +4,8 @@
|
|||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
|
||||
struct unkStruct_203B318
|
||||
{
|
||||
// size: 0xcc
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
s32 state;
|
||||
u8 fillC[0x10 - 0xC];
|
||||
s16 unk10;
|
||||
u8 fill[0x58 - 0x12];
|
||||
struct OpenedFile *faceFile;
|
||||
u8 *faceData;
|
||||
u16 unk60;
|
||||
u16 unk62;
|
||||
u8 unk64;
|
||||
u8 unk65;
|
||||
u8 unk66;
|
||||
u8 unk67;
|
||||
struct OpenedFile** unk68;
|
||||
struct UnkTextStruct2 unk6C[4];
|
||||
};
|
||||
#include "menu.h"
|
||||
#include "makuhita_dojo.h"
|
||||
|
||||
extern u8 gUnknown_202E5D8[];
|
||||
extern u8 gUnknown_202E1C8[];
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
#include "constants/dungeon.h"
|
||||
#include "code_800D090.h"
|
||||
#include "dungeon.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "makuhita_dojo.h"
|
||||
|
||||
struct unkStruct_203B31C
|
||||
{
|
||||
|
|
@ -25,13 +29,20 @@ struct unkStruct_203B31C
|
|||
};
|
||||
|
||||
extern struct unkStruct_203B31C *gUnknown_203B31C;
|
||||
extern struct unkStruct_203B318 *gUnknown_203B318;
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80E07EC;
|
||||
extern struct UnkTextStruct2 gUnknown_80E0804;
|
||||
|
||||
extern bool8 sub_8097504(s16);
|
||||
extern s16 sub_80A26CC(s16 r0);
|
||||
extern u8 gMakuhitaDojoGoTrain[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
extern u8 *gUnknown_80D4934[];
|
||||
extern u8 gUnknown_80E081C[];
|
||||
extern u8 gUnknown_80E0824[];
|
||||
extern u8 gUnknown_80E0828[];
|
||||
|
||||
extern bool8 sub_8097504(s16);
|
||||
extern s16 sub_80A26CC(s16 r0);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
|
|
@ -41,6 +52,251 @@ extern u8 sub_80A2740(s32 r0);
|
|||
extern s16 sub_80A2668(u32 r0);
|
||||
extern s32 sub_8013800(void *, u32);
|
||||
extern bool8 IsMazeCompleted(s32);
|
||||
extern s32 sub_8030668(void);
|
||||
extern void sub_8013984(u32 *);
|
||||
extern void sub_80304C8();
|
||||
extern void AddMenuCursorSprite(u32 *);
|
||||
extern void DrawDojoCourseList(void);
|
||||
|
||||
extern u8 sub_80138B8(void *, u32);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern s32 GetKeyPress(void *);
|
||||
extern void sub_8013660(void *);
|
||||
extern void sub_8012D08(void *, u32);
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
extern void sub_803053C(void);
|
||||
extern u8 sub_80306A4(void);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
void UpdateMakuhitaState(s32);
|
||||
extern u32 sub_801B6AC(void);
|
||||
extern void sub_801B72C(void);
|
||||
extern s16 sub_8030418(void);
|
||||
extern u32 sub_80303AC(u8);
|
||||
extern void sub_8030480(void);
|
||||
|
||||
|
||||
void DrawMakuhitaMainMenu(void) {
|
||||
|
||||
s32 menuAction;
|
||||
struct unkStruct_203B318 *preload;
|
||||
|
||||
gUnknown_203B318->unk14 = 2;
|
||||
gUnknown_203B318->unk18[0].text = gMakuhitaDojoGoTrain;
|
||||
gUnknown_203B318->unk18[0].menuAction = 2;
|
||||
if(sub_80306A4())
|
||||
{
|
||||
gUnknown_203B318->unk18[0].menuAction = -1;
|
||||
gUnknown_203B318->unk14 = 1;
|
||||
}
|
||||
preload = gUnknown_203B318;
|
||||
menuAction = 1;
|
||||
preload->unk18[1].text = *gUnknown_80D4970;
|
||||
preload->unk18[1].menuAction = 3;
|
||||
preload->unk18[2].text = *gUnknown_80D4934;
|
||||
preload->unk18[2].menuAction = menuAction;
|
||||
preload->unk18[3].text = NULL;
|
||||
preload->unk18[3].menuAction = menuAction;
|
||||
}
|
||||
|
||||
void sub_8030208(void) {
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
gUnknown_203B318->unk14 = temp;
|
||||
switch(temp)
|
||||
{
|
||||
case 2:
|
||||
UpdateMakuhitaState(3);
|
||||
break;
|
||||
case 3:
|
||||
UpdateMakuhitaState(12);
|
||||
break;
|
||||
case 1:
|
||||
UpdateMakuhitaState(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8030258(void) {
|
||||
switch(sub_80303AC(1))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B318->unk10 = sub_8030418();
|
||||
sub_8030480();
|
||||
UpdateMakuhitaState(5);
|
||||
break;
|
||||
case 2:
|
||||
sub_8030480();
|
||||
gUnknown_203B318->unk10 = -1;
|
||||
UpdateMakuhitaState(1);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void sub_80302A8(void) {
|
||||
switch(sub_801B6AC())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B72C();
|
||||
UpdateMakuhitaState(0xA);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80302C4(void) {
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
UpdateMakuhitaState(gUnknown_203B318->fallbackState);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80302E8(int param_1, struct UnkTextStruct2_sub *param_2, u32 param_3)
|
||||
{
|
||||
|
||||
if (sub_80306A4()) {
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_203B31C == NULL) {
|
||||
gUnknown_203B31C = MemoryAlloc(sizeof(struct unkStruct_203B31C),8);
|
||||
}
|
||||
gUnknown_203B31C->unk64 = param_1;
|
||||
gUnknown_203B31C->unk68 = &gUnknown_203B31C->unk6C[param_1];
|
||||
sub_8006518(gUnknown_203B31C->unk6C);
|
||||
gUnknown_203B31C->unk6C[gUnknown_203B31C->unk64] = gUnknown_80E0804;
|
||||
gUnknown_203B31C->unk68->unk14 = gUnknown_203B31C->unkCC;
|
||||
if (param_2 != NULL) {
|
||||
gUnknown_203B31C->unk6C[gUnknown_203B31C->unk64].unk08 = *param_2;
|
||||
}
|
||||
sub_8012D08(gUnknown_203B31C->unk68,param_3);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B31C->unk6C,1,1);
|
||||
sub_8013818(&gUnknown_203B31C->unk30,sub_8030668(),param_3,param_1);
|
||||
sub_80304C8();
|
||||
DrawDojoCourseList();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_80303AC(u8 param_1)
|
||||
{
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(&gUnknown_203B31C->unk30);
|
||||
return 0;
|
||||
}
|
||||
switch(GetKeyPress(&gUnknown_203B31C->unk30))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (sub_80138B8(&gUnknown_203B31C->unk30, 1)) {
|
||||
sub_80304C8();
|
||||
DrawDojoCourseList();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
s16 sub_8030418(void) {
|
||||
return gUnknown_203B31C->unk0[(gUnknown_203B31C->unk4E * gUnknown_203B31C->unk4C) + gUnknown_203B31C->unk48];
|
||||
}
|
||||
|
||||
void sub_8030444(u8 r0) {
|
||||
gUnknown_203B31C->unk52 = sub_8030668();
|
||||
sub_8013984(&gUnknown_203B31C->unk30);
|
||||
sub_80304C8();
|
||||
DrawDojoCourseList();
|
||||
if(r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B31C->unk30);
|
||||
}
|
||||
|
||||
void sub_8030480(void) {
|
||||
if(gUnknown_203B31C != NULL)
|
||||
{
|
||||
gUnknown_203B31C->unk6C[gUnknown_203B31C->unk64] = gUnknown_80E07EC;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B31C->unk6C, 1, 1);
|
||||
MemoryFree(gUnknown_203B31C);
|
||||
gUnknown_203B31C = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_80304C8(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tldr r4, _08030538\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xCC\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xCD\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xCE\n"
|
||||
"\tmovs r1, 0x8\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xCF\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x4A\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x64]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x7A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x64]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x7C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x6C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08030538: .4byte gUnknown_203B31C");
|
||||
}
|
||||
|
||||
void DrawDojoCourseList(void)
|
||||
{
|
||||
|
|
@ -96,8 +352,8 @@ s32 sub_8030668(void)
|
|||
return counter;
|
||||
}
|
||||
|
||||
s32 sub_80306A4(void)
|
||||
bool8 sub_80306A4(void)
|
||||
{
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
|||
18
src/save.c
18
src/save.c
|
|
@ -82,17 +82,17 @@ extern u32 *gUnknown_203B488;
|
|||
extern u32 *gUnknown_203B48C;
|
||||
extern u32 gUnknown_203B494;
|
||||
|
||||
ALIGNED(4) const char PokeDungeon_Text[] = _("POKE_DUNGEON__05");
|
||||
ALIGNED(4) const char sGameInternalVersion[] = _("POKE_DUNGEON__05");
|
||||
|
||||
ALIGNED(4) const char fill_save0[] = _("pksdir0");
|
||||
ALIGNED(4) const char fill_save1[] = _("pksdir0");
|
||||
ALIGNED(4) const char fill_save2[] = _("pksdir0");
|
||||
ALIGNED(4) const char fill_save3[] = _("pksdir0");
|
||||
ALIGNED(4) static const char fill_save0[] = _("pksdir0");
|
||||
ALIGNED(4) static const char fill_save1[] = _("pksdir0");
|
||||
ALIGNED(4) static const char fill_save2[] = _("pksdir0");
|
||||
ALIGNED(4) static const char fill_save3[] = _("pksdir0");
|
||||
|
||||
ALIGNED(4) const char gSaveCorrupted[] = _("{CENTER_ALIGN}The game data is corrupted.\n"
|
||||
"{CENTER_ALIGN}Your data will be erased.");
|
||||
|
||||
ALIGNED(4) const char fill_save4[] = _("pksdir0");
|
||||
ALIGNED(4) static const char fill_save4[] = _("pksdir0");
|
||||
|
||||
ALIGNED(4) const char gSavingAdventure[] = _("{CENTER_ALIGN}Saving your adventure...\n"
|
||||
"{CENTER_ALIGN}Please don{APOSTROPHE}t turn off the power.");
|
||||
|
|
@ -109,7 +109,7 @@ ALIGNED(4) const char gSaveNotWritten[] = _("{CENTER_ALIGN}The data could not be
|
|||
|
||||
ALIGNED(4) const char gSaveFailed[] = _("{CENTER_ALIGN}Save failed.");
|
||||
|
||||
ALIGNED(4) const char fill_save5[] = _("pksdir0");
|
||||
ALIGNED(4) static const char fill_save5[] = _("pksdir0");
|
||||
|
||||
ALIGNED(4) const char gUnknown_80D44C8[] = _("{CENTER_ALIGN}Your data was not properly saved{COMMA}\n"
|
||||
"{CENTER_ALIGN}so your game cannot be resumed\n"
|
||||
|
|
@ -118,7 +118,7 @@ ALIGNED(4) const char gUnknown_80D44C8[] = _("{CENTER_ALIGN}Your data was not pr
|
|||
"{CENTER_ALIGN}Before shutting down{COMMA} save in your\n"
|
||||
"{CENTER_ALIGN}team base{COMMA} or quicksave in a dungeon.");
|
||||
|
||||
ALIGNED(4) const char fill_save6[] = _("pksdir0");
|
||||
ALIGNED(4) static const char fill_save6[] = _("pksdir0");
|
||||
|
||||
ALIGNED(4) const char gUnknown_80D45AC[] = _("{CENTER_ALIGN}Quicksaving your adventure...\n"
|
||||
"{CENTER_ALIGN}Please don{APOSTROPHE}t turn off the power.");
|
||||
|
|
@ -139,7 +139,7 @@ ALIGNED(4) const char gSaveNotWritten2[] = _("{CENTER_ALIGN}The data could not b
|
|||
"{CENTER_ALIGN}and reinsert the DS Card.");
|
||||
|
||||
ALIGNED(4) const char gSaveFailed2[] = _("{CENTER_ALIGN}Save failed.");
|
||||
ALIGNED(4) const char fill_save7[] = _("pksdir0");
|
||||
ALIGNED(4) static const char fill_save7[] = _("pksdir0");
|
||||
|
||||
|
||||
extern bool8 sub_800DAB0(u16, u8*, s32);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user