more decomping

This commit is contained in:
Seth Barberee 2022-09-16 10:48:13 -07:00
parent 2aa3844ec4
commit 04fa09ec81
23 changed files with 1926 additions and 2429 deletions

File diff suppressed because it is too large Load Diff

1129
asm/code_8005838.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2488,556 +2488,4 @@ _080A5E5A:
_080A5E6C: .4byte gUnknown_3001B70
thumb_func_end sub_80A59DC
thumb_func_start sub_80A5E70
sub_80A5E70:
push {lr}
ldr r0, _080A5E88
ldr r0, [r0]
cmp r0, 0
beq _080A5E7E
bl sub_80A49E8
_080A5E7E:
bl sub_80A62D0
pop {r0}
bx r0
.align 2, 0
_080A5E88: .4byte gUnknown_3001B70
thumb_func_end sub_80A5E70
thumb_func_start sub_80A5E8C
sub_80A5E8C:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _080A5EB4
movs r0, 0x24
movs r1, 0x6
bl MemoryAlloc
str r0, [r5]
ldr r1, _080A5EB8
strh r1, [r0]
movs r1, 0
strb r1, [r0, 0x2]
adds r0, r4, 0
bl sub_80A5EDC
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080A5EB4: .4byte gUnknown_3001B74
_080A5EB8: .4byte 0x0000ffff
thumb_func_end sub_80A5E8C
thumb_func_start sub_80A5EBC
sub_80A5EBC:
push {r4,lr}
movs r0, 0
bl sub_80A5EDC
ldr r4, _080A5ED8
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080A5ED8: .4byte gUnknown_3001B74
thumb_func_end sub_80A5EBC
thumb_func_start sub_80A5EDC
sub_80A5EDC:
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
movs r6, 0x1
negs r6, r6
movs r0, 0
movs r1, 0x1B
adds r2, r6, 0
bl sub_80018D8
ldr r0, _080A5F34
ldr r1, [r0]
ldr r0, _080A5F38
strh r0, [r1]
strb r5, [r1, 0x2]
ldr r4, _080A5F3C
ldr r0, [r4]
cmp r0, 0
beq _080A5F12
bl sub_80A2D00
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_080A5F12:
cmp r5, 0
beq _080A5F2E
ldr r0, _080A5F40
movs r1, 0x6
bl MemoryAlloc
str r0, [r4]
ldr r1, _080A5F44
bl sub_80A2B40
ldr r0, [r4]
adds r1, r6, 0
bl sub_80A2FBC
_080A5F2E:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080A5F34: .4byte gUnknown_3001B74
_080A5F38: .4byte 0x0000ffff
_080A5F3C: .4byte gUnknown_3001B78
_080A5F40: .4byte 0x0000055c
_080A5F44: .4byte gUnknown_8117784
thumb_func_end sub_80A5EDC
thumb_func_start nullsub_121
nullsub_121:
bx lr
thumb_func_end nullsub_121
thumb_func_start nullsub_122
nullsub_122:
bx lr
thumb_func_end nullsub_122
thumb_func_start GroundWeather_Select
GroundWeather_Select:
push {r4-r7,lr}
lsls r0, 16
asrs r5, r0, 16
adds r7, r5, 0
ldr r1, _080A5F94
ldr r6, _080A5F98
ldr r0, [r6]
ldrb r3, [r0, 0x2]
movs r0, 0
adds r2, r5, 0
bl Log
movs r0, 0
movs r1, 0x1B
adds r2, r5, 0
bl sub_80018D8
ldr r0, [r6]
movs r4, 0
strh r5, [r0]
ldrb r0, [r0, 0x2]
cmp r0, 0
bne _080A5F80
b _080A60B4
_080A5F80:
movs r0, 0x1
negs r0, r0
cmp r5, r0
bne _080A5FA0
ldr r0, _080A5F9C
ldr r0, [r0]
adds r1, r5, 0
bl sub_80A2FBC
b _080A60B4
.align 2, 0
_080A5F94: .4byte gUnknown_811779C
_080A5F98: .4byte gUnknown_3001B74
_080A5F9C: .4byte gUnknown_3001B78
_080A5FA0:
lsls r1, r7, 2
ldr r0, _080A5FD8
adds r5, r1, r0
ldr r0, _080A5FDC
ldr r0, [r0]
movs r2, 0x2
ldrsh r1, [r5, r2]
bl sub_80A2FBC
ldr r0, [r6]
str r4, [r0, 0x4]
str r4, [r0, 0x8]
str r4, [r0, 0xC]
str r4, [r0, 0x10]
str r4, [r0, 0x20]
str r4, [r0, 0x1C]
str r4, [r0, 0x18]
str r4, [r0, 0x14]
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0xF
bhi _080A6098
lsls r0, 2
ldr r1, _080A5FE0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A5FD8: .4byte gUnknown_811E5F4
_080A5FDC: .4byte gUnknown_3001B78
_080A5FE0: .4byte _080A5FE4
.align 2, 0
_080A5FE4:
.4byte _080A6088
.4byte _080A6098
.4byte _080A6098
.4byte _080A6088
.4byte _080A6088
.4byte _080A6088
.4byte _080A6098
.4byte _080A6040
.4byte _080A6088
.4byte _080A6024
.4byte _080A6098
.4byte _080A6098
.4byte _080A6098
.4byte _080A6098
.4byte _080A6050
.4byte _080A606C
_080A6024:
ldr r0, _080A6034
ldr r0, [r0]
movs r1, 0x1
bl sub_80A3BB0
ldr r1, _080A6038
ldr r2, _080A603C
b _080A60B0
.align 2, 0
_080A6034: .4byte gUnknown_3001B78
_080A6038: .4byte gUnknown_2026E4E
_080A603C: .4byte 0x0000040c
_080A6040:
ldr r1, _080A6048
ldr r2, _080A604C
b _080A60B0
.align 2, 0
_080A6048: .4byte gUnknown_2026E4E
_080A604C: .4byte 0x00000808
_080A6050:
ldr r0, _080A6060
ldr r0, [r0]
movs r1, 0x1
bl sub_80A3BB0
ldr r1, _080A6064
ldr r2, _080A6068
b _080A60B0
.align 2, 0
_080A6060: .4byte gUnknown_3001B78
_080A6064: .4byte gUnknown_2026E4E
_080A6068: .4byte 0x00001010
_080A606C:
ldr r0, _080A607C
ldr r0, [r0]
movs r1, 0x1
bl sub_80A3BB0
ldr r1, _080A6080
ldr r2, _080A6084
b _080A60B0
.align 2, 0
_080A607C: .4byte gUnknown_3001B78
_080A6080: .4byte gUnknown_2026E4E
_080A6084: .4byte 0x0000040c
_080A6088:
ldr r1, _080A6090
ldr r2, _080A6094
b _080A60B0
.align 2, 0
_080A6090: .4byte gUnknown_2026E4E
_080A6094: .4byte 0x00001010
_080A6098:
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _080A60AA
ldr r0, _080A60BC
ldr r0, [r0]
movs r1, 0x1
bl sub_80A3BB0
_080A60AA:
ldr r1, _080A60C0
movs r2, 0x80
lsls r2, 5
_080A60B0:
adds r0, r2, 0
strh r0, [r1]
_080A60B4:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080A60BC: .4byte gUnknown_3001B78
_080A60C0: .4byte gUnknown_2026E4E
thumb_func_end GroundWeather_Select
thumb_func_start sub_80A60C4
sub_80A60C4:
ldr r0, _080A60D0
ldr r0, [r0]
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_080A60D0: .4byte gUnknown_3001B74
thumb_func_end sub_80A60C4
thumb_func_start nullsub_123
nullsub_123:
bx lr
thumb_func_end nullsub_123
thumb_func_start sub_80A60D8
sub_80A60D8:
push {r4-r6,lr}
sub sp, 0x28
ldr r0, _080A6104
ldr r3, [r0]
ldrb r1, [r3, 0x2]
adds r6, r0, 0
cmp r1, 0
bne _080A60EA
b _080A62C0
_080A60EA:
ldrh r0, [r3]
adds r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
bls _080A60F8
b _080A6278
_080A60F8:
lsls r0, 2
ldr r1, _080A6108
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A6104: .4byte gUnknown_3001B74
_080A6108: .4byte _080A610C
.align 2, 0
_080A610C:
.4byte _080A62AC
.4byte _080A6278
.4byte _080A6278
.4byte _080A6278
.4byte _080A6278
.4byte _080A6278
.4byte _080A6278
.4byte _080A6278
.4byte _080A6278
.4byte _080A6278
.4byte _080A6150
.4byte _080A61CC
.4byte _080A61CC
.4byte _080A61CC
.4byte _080A61CC
.4byte _080A61D0
.4byte _080A6224
_080A6150:
ldr r2, [r6]
ldr r1, [r2, 0x4]
adds r0, r1, 0x2
str r0, [r2, 0x4]
ldr r4, [r2, 0x8]
adds r3, r4, 0x1
str r3, [r2, 0x8]
cmp r0, 0
bge _080A6164
adds r0, r1, 0x5
_080A6164:
asrs r1, r0, 2
ldr r0, [r2, 0xC]
adds r0, r1
str r0, [r2, 0xC]
adds r1, r3, 0
cmp r1, 0
bge _080A6174
adds r1, r4, 0x4
_080A6174:
asrs r1, 2
ldr r0, [r2, 0x10]
adds r0, r1
str r0, [r2, 0x10]
ldr r4, _080A61C8
ldr r0, [r4]
adds r2, 0xC
movs r1, 0
bl sub_80A4580
ldr r1, [r6]
ldr r0, [r1, 0x4]
movs r2, 0x3
ands r0, r2
str r0, [r1, 0x4]
ldr r0, [r1, 0x8]
ands r0, r2
str r0, [r1, 0x8]
mov r0, sp
bl sub_80A56C0
ldr r2, [r6]
ldr r0, [sp]
ldr r1, [r2, 0xC]
subs r0, r1
str r0, [sp]
ldr r0, [sp, 0x4]
ldr r1, [r2, 0x10]
adds r0, r1
str r0, [sp, 0x4]
ldr r0, [r4]
movs r1, 0
mov r2, sp
bl sub_80A4580
ldr r0, [r4]
movs r1, 0
mov r2, sp
bl sub_80A456C
b _080A62B8
.align 2, 0
_080A61C8: .4byte gUnknown_3001B78
_080A61CC:
add r4, sp, 0x8
b _080A628E
_080A61D0:
ldr r2, [r6]
ldr r1, [r2, 0x4]
adds r0, r1, 0x1
str r0, [r2, 0x4]
cmp r0, 0
bge _080A61DE
adds r0, r1, 0x4
_080A61DE:
asrs r1, r0, 2
ldr r0, [r2, 0xC]
adds r0, r1
str r0, [r2, 0xC]
ldr r5, _080A6220
ldr r0, [r5]
adds r2, 0xC
movs r1, 0
bl sub_80A4580
ldr r2, [r6]
ldr r0, [r2, 0x4]
movs r1, 0x3
ands r0, r1
str r0, [r2, 0x4]
add r4, sp, 0x10
adds r0, r4, 0
bl sub_80A56C0
ldr r1, [r6]
ldr r0, [sp, 0x10]
ldr r1, [r1, 0xC]
subs r0, r1
str r0, [sp, 0x10]
movs r0, 0
str r0, [r4, 0x4]
ldr r0, [r5]
movs r1, 0
adds r2, r4, 0
bl sub_80A4580
ldr r0, [r5]
b _080A6298
.align 2, 0
_080A6220: .4byte gUnknown_3001B78
_080A6224:
ldr r2, [r6]
ldr r1, [r2, 0x4]
adds r0, r1, 0x2
str r0, [r2, 0x4]
cmp r0, 0
bge _080A6232
adds r0, r1, 0x5
_080A6232:
asrs r1, r0, 2
ldr r0, [r2, 0xC]
adds r0, r1
str r0, [r2, 0xC]
ldr r5, _080A6274
ldr r0, [r5]
adds r2, 0xC
movs r1, 0
bl sub_80A4580
ldr r2, [r6]
ldr r0, [r2, 0x4]
movs r1, 0x3
ands r0, r1
str r0, [r2, 0x4]
add r4, sp, 0x18
adds r0, r4, 0
bl sub_80A56C0
ldr r1, [r6]
ldr r0, [sp, 0x18]
ldr r1, [r1, 0xC]
subs r0, r1
str r0, [sp, 0x18]
movs r0, 0
str r0, [r4, 0x4]
ldr r0, [r5]
movs r1, 0
adds r2, r4, 0
bl sub_80A4580
ldr r0, [r5]
b _080A6298
.align 2, 0
_080A6274: .4byte gUnknown_3001B78
_080A6278:
ldr r0, [r6]
movs r1, 0
ldrsh r0, [r0, r1]
lsls r0, 2
ldr r1, _080A62A4
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080A62AC
add r4, sp, 0x20
_080A628E:
adds r0, r4, 0
bl sub_80A56C0
ldr r0, _080A62A8
ldr r0, [r0]
_080A6298:
movs r1, 0
adds r2, r4, 0
bl sub_80A456C
b _080A62B8
.align 2, 0
_080A62A4: .4byte gUnknown_811E5F4
_080A62A8: .4byte gUnknown_3001B78
_080A62AC:
ldr r0, _080A62C8
ldr r0, [r0]
ldr r2, _080A62CC
movs r1, 0
bl sub_80A456C
_080A62B8:
ldr r0, _080A62C8
ldr r0, [r0]
bl sub_80A4764
_080A62C0:
add sp, 0x28
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080A62C8: .4byte gUnknown_3001B78
_080A62CC: .4byte gUnknown_81177BC
thumb_func_end sub_80A60D8
thumb_func_start sub_80A62D0
sub_80A62D0:
push {lr}
ldr r0, _080A62E8
ldr r0, [r0]
ldrb r0, [r0, 0x2]
cmp r0, 0
beq _080A62E4
ldr r0, _080A62EC
ldr r0, [r0]
bl sub_80A49E8
_080A62E4:
pop {r0}
bx r0
.align 2, 0
_080A62E8: .4byte gUnknown_3001B74
_080A62EC: .4byte gUnknown_3001B78
thumb_func_end sub_80A62D0
.align 2,0

View File

@ -5,184 +5,6 @@
.text
thumb_func_start GroundScript_ExecutePP
GroundScript_ExecutePP:
push {r4-r7,lr}
adds r5, r0, 0
adds r7, r1, 0
adds r6, r2, 0
cmp r6, 0
beq _0809D7A2
ldr r0, [r6]
cmp r0, 0
bne _0809D7A6
_0809D7A2:
movs r0, 0
b _0809D8B8
_0809D7A6:
movs r1, 0x4
ldrsh r0, [r6, r1]
cmp r0, 0x5
bhi _0809D858
lsls r0, 2
ldr r1, _0809D7B8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809D7B8: .4byte _0809D7BC
.align 2, 0
_0809D7BC:
.4byte _0809D830
.4byte _0809D84A
.4byte _0809D7D4
.4byte _0809D7D4
.4byte _0809D858
.4byte _0809D7EE
_0809D7D4:
movs r3, 0x24
ldrsh r0, [r5, r3]
cmp r0, 0x1
beq _0809D838
adds r4, r5, 0
adds r4, 0x24
cmp r0, 0x5
bne _0809D86C
adds r0, r5, 0
adds r0, 0x84
bl sub_809D568
b _0809D86C
_0809D7EE:
movs r1, 0x24
ldrsh r0, [r5, r1]
cmp r0, 0x2
beq _0809D808
ldr r0, _0809D800
ldr r1, _0809D804
bl FatalError
.align 2, 0
_0809D800: .4byte gUnknown_8116538
_0809D804: .4byte gUnknown_8116544
_0809D808:
adds r2, r5, 0
adds r2, 0x84
movs r3, 0
ldrsh r1, [r2, r3]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809D828
ldr r0, _0809D820
ldr r1, _0809D824
bl FatalError
.align 2, 0
_0809D820: .4byte gUnknown_8116560
_0809D824: .4byte gUnknown_811656C
_0809D828:
adds r4, r5, 0
adds r4, 0x24
adds r0, r2, 0
b _0809D840
_0809D830:
movs r1, 0x24
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _0809D84A
_0809D838:
adds r0, r5, 0
adds r0, 0x84
adds r4, r5, 0
adds r4, 0x24
_0809D840:
adds r1, r4, 0
movs r2, 0x60
bl memcpy
b _0809D86C
_0809D84A:
adds r0, r5, 0
adds r0, 0x84
bl sub_809D568
adds r4, r5, 0
adds r4, 0x24
b _0809D86C
_0809D858:
ldr r0, _0809D864
ldr r1, _0809D868
movs r3, 0x4
ldrsh r2, [r6, r3]
bl FatalError
.align 2, 0
_0809D864: .4byte gUnknown_8116588
_0809D868: .4byte gUnknown_8116594
_0809D86C:
adds r0, r4, 0
bl sub_809D568
cmp r7, 0
beq _0809D87C
ldr r0, [r7]
str r0, [r5, 0xC]
b _0809D884
_0809D87C:
adds r0, r5, 0
adds r0, 0xC
bl sub_809D520
_0809D884:
ldrh r0, [r6, 0x4]
movs r1, 0
strh r0, [r5, 0x24]
movs r0, 0x3
strh r0, [r5, 0x26]
ldrh r0, [r6, 0x6]
strh r0, [r5, 0x30]
ldrb r0, [r6, 0x8]
adds r2, r5, 0
adds r2, 0x32
strb r0, [r2]
ldr r0, [r6]
str r0, [r5, 0x28]
str r0, [r5, 0x2C]
str r1, [r5, 0x34]
str r1, [r5, 0x38]
ldr r0, [r5]
ldr r2, [r0, 0x14]
cmp r2, 0
beq _0809D8B6
ldr r0, [r5, 0x4]
adds r1, r5, 0
adds r1, 0x4A
bl _call_via_r2
_0809D8B6:
movs r0, 0x1
_0809D8B8:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GroundScript_ExecutePP
thumb_func_start sub_809D8C0
sub_809D8C0:
push {r4-r6,lr}
sub sp, 0xC
adds r4, r0, 0
adds r5, r1, 0
adds r6, r3, 0
lsls r2, 16
asrs r2, 16
mov r1, sp
bl sub_809D6E4
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
adds r3, r6, 0
bl GroundScript_ExecutePP
lsls r0, 24
lsrs r0, 24
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_809D8C0
thumb_func_start sub_809D8EC
sub_809D8EC:
push {r4,r5,lr}
@ -9130,55 +8952,4 @@ sub_80A2598:
bx r0
thumb_func_end sub_80A2598
thumb_func_start sub_80A25AC
sub_80A25AC:
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
bl sub_8098F88
lsls r0, 24
cmp r0, 0
beq _080A25C2
adds r0, r4, 0
b _080A2602
_080A25C2:
cmp r4, 0x32
bne _080A25CA
movs r0, 0x32
b _080A2602
_080A25CA:
movs r0, 0xC
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _080A25E0
ldr r0, _080A25DC
b _080A2602
.align 2, 0
_080A25DC: .4byte 0x000003e7
_080A25E0:
movs r0, 0xD
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A25F0
movs r0, 0x13
b _080A2602
_080A25F0:
cmp r4, 0x1
bne _080A2600
movs r0, 0
movs r1, 0x28
bl sub_8001658
movs r0, 0x1
b _080A2602
_080A2600:
adds r0, r5, 0
_080A2602:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A25AC
.align 2,0

View File

@ -210,7 +210,7 @@ _0803010C:
.align 2, 0
_08030138: .4byte gPlayerName
_0803013C: .4byte gUnknown_203B318
_08030140: .4byte gUnknown_80E0778
_08030140: .4byte gMakuhitaDojoBonslyDoll
_08030144: .4byte 0x00000101
_08030148:
ldr r3, [r5]
@ -305,7 +305,7 @@ _080301D6:
bx r0
.align 2, 0
_080301F8: .4byte gUnknown_203B318
_080301FC: .4byte gUnknown_80E07D8
_080301FC: .4byte gMakuhitaDojoGoTrain
_08030200: .4byte gUnknown_80D4970
_08030204: .4byte gUnknown_80D4934
thumb_func_end sub_80301B0
@ -866,43 +866,4 @@ _08030660: .4byte gUnknown_80E0824
_08030664: .4byte gUnknown_80E0828
thumb_func_end sub_803053C
thumb_func_start sub_8030668
sub_8030668:
push {r4-r6,lr}
movs r6, 0
movs r5, 0
_0803066E:
lsls r0, r5, 16
asrs r4, r0, 16
adds r0, r4, 0
bl sub_8097504
lsls r0, 24
cmp r0, 0
beq _08030690
adds r0, r4, 0
bl sub_80A26CC
ldr r1, _080306A0
ldr r1, [r1]
lsls r2, r6, 1
adds r1, r2
strh r0, [r1]
adds r6, 0x1
_08030690:
adds r5, 0x1
cmp r5, 0x16
ble _0803066E
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080306A0: .4byte gUnknown_203B31C
thumb_func_end sub_8030668
thumb_func_start sub_80306A4
sub_80306A4:
movs r0, 0
bx lr
thumb_func_end sub_80306A4
.align 2,0

View File

@ -1,201 +1,5 @@
.section .rodata
.global gPelipperBoard_BulletinBoard
gPelipperBoard_BulletinBoard: @ 80E0390
.string "Bulletin Board\0"
.align 2,0
.global gPelipperBoard_JobList
gPelipperBoard_JobList: @ 80E03A0
.string "Job List\0"
.align 2,0
.global gPelipperBoard_Accepted
gPelipperBoard_Accepted: @ 80E03AC
.string "Accepted\0"
.align 2,0
.global gUnknown_80E03B8
gUnknown_80E03B8: @ 80E03B8
.string "/\0"
.align 2,0
.string "pksdir0\0"
.global gUnknown_80E03C4
gUnknown_80E03C4: @ 80E03C4
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x03, 0x00
.byte 0x07, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E03F4
gUnknown_80E03F4: @ 80E03F4
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x06, 0x00
.byte 0x07, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E040C
gUnknown_80E040C: @ 80E040C
.string "Send\0"
.align 2,0
.string "pksdir0\0"
.global gUnknown_80E041C
gUnknown_80E041C: @ 80E041C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E0434
gUnknown_80E0434: @ 80E0434
.string " Here{APOSTROPHE}s your reward!\n"
.string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}!\0"
.align 2,0
.global gUnknown_80E045C
gUnknown_80E045C: @ 80E045C
@ replacing .incbin "baserom.gba", 0x000e045c, 0x28
.string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} received\n"
.string "{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1}"
.byte 0x20, 0x83
.byte 0xbf, 0x83, 0xc4, 0x2e, 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E0484
gUnknown_80E0484: @ 80E0484
.string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team received\n"
.string "{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}"
.byte 0x2E, 0x00, 0x00, 0x00
.global gUnknown_80E04B4
gUnknown_80E04B4: @ 80E04B4
.string " As your reward{COMMA} you can\n"
.string "now go to the Friend Area\n"
.string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}!\0"
.align 2,0
.global gUnknown_80E04F4
gUnknown_80E04F4: @ 80E04F4
.string "{CENTER_ALIGN}...Oh{COMMA} wait{COMMA} sorry.{EXTRA_MSG}"
.string "{CENTER_ALIGN}You already have the \n"
.string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA} Friend Area{END_COLOR_TEXT_1}.{EXTRA_MSG}"
.string "{CENTER_ALIGN}I{APOSTROPHE}m sorry that my reward is\n"
.string "{CENTER_ALIGN}something you already have.{EXTRA_MSG}"
.string "{CENTER_ALIGN}In its place{COMMA} {COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{COMMA}\n"
.string "{CENTER_ALIGN}you can have {COLOR_1 LIGHT_BLUE_2}1{COMMA}000{END_COLOR_TEXT_1} {POKE}.\0"
.align 2, 0
.global gUnknown_80E05C0
gUnknown_80E05C0: @ 80E05C0
.string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} gained access\n"
.string "{CENTER_ALIGN}to the Friend Area\n"
.string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0"
.align 2,0
.global gUnknown_80E05FC
gUnknown_80E05FC: @ 80E05FC
.string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team gained access\n"
.string "{CENTER_ALIGN}to the Friend Area\n"
.string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0"
.align 2,0
.global gUnknown_80E0640
gUnknown_80E0640: @ 80E0640
.string " Here{APOSTROPHE}s your reward!\n"
.string "The promised {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1}!\0"
.align 2,0
.global gUnknown_80E0670
gUnknown_80E0670: @ 80E0670
.string "{CENTER_ALIGN}Rescue Team {COLOR_1 LIGHT_BLUE_2}$t{END_COLOR_TEXT_1}\n"
.string "{CENTER_ALIGN}gained {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} rescue points.\0"
.align 2,0
.global gUnknown_80E06A8
gUnknown_80E06A8: @ 80E06A8
.string "{CENTER_ALIGN}Congratulations!{EXTRA_MSG}"
.string "{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}$t{END_COLOR_TEXT_1} went up in rank\n"
.string "{CENTER_ALIGN}from the {ARG_POKEMON_2}\n"
.string "{CENTER_ALIGN}to the {ARG_POKEMON_3}!\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80E06FC
gUnknown_80E06FC: @ 80E06FC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E0714
gUnknown_80E0714: @ 80E0714
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x0e, 0x00, 0x0e, 0x00
.byte 0x0e, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E072C
gUnknown_80E072C: @ 80E072C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x10, 0x00, 0x10, 0x00
.byte 0x10, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E0744
gUnknown_80E0744: @ 80E0744
.string "Dungeons\0"
.align 2,0
.global gUnknown_80E0750
gUnknown_80E0750: @ 80E0750
.byte 0x83, 0xC2, 0x00, 0x00
.global gUnknown_80E0754
gUnknown_80E0754: @ 80E0754
.byte 0x83, 0xC0, 0x00, 0x00
.string "pksdir0\0"
.global gUnknown_80E0760
gUnknown_80E0760: @ 80E0760
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E0778
gUnknown_80E0778: @ 80E0778
.string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}$n0{END_COLOR_TEXT_1} received the {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!\n"
.string "{CENTER_ALIGN}It has been placed outside your\n"
.string "{CENTER_ALIGN}rescue team base.\0"
.align 2,0
.global gUnknown_80E07D8
gUnknown_80E07D8: @ 80E07D8
.string "Go Train\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
@ -338,81 +142,3 @@ gUnknown_80E0938: @ 80E0938
.string "%-4d\0"
.align 2,0
.string "pksdir0\0"
.global gUnknown_80E0948
gUnknown_80E0948: @ 80E0948
.4byte Yes_80E0964
.byte 0x02, 0x00, 0x00, 0x00
.4byte No_80E0960
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.global No_80E0960
No_80E0960:
.string "No\0"
.align 2,0
.global Yes_80E0964
Yes_80E0964:
.string "Yes\0"
.align 2,0
.global gUnknown_80E0968
gUnknown_80E0968: @ 80E0968
.4byte Delete_80E0988
.byte 0x04, 0x00, 0x00, 0x00
.4byte Info_80E0980
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.global Info_80E0980
Info_80E0980:
.string "Info\0"
.align 2,0
.global Delete_80E0988
Delete_80E0988:
.string "Delete\0"
.align 2,0
.global gUnknown_80E0990
gUnknown_80E0990: @ 80E0990
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E09A8
gUnknown_80E09A8: @ 80E09A8
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x13, 0x00, 0x0B, 0x00
.byte 0x08, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E09C0
gUnknown_80E09C0: @ 80E09C0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x11, 0x00, 0x0F, 0x00
.byte 0x07, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E09D8
gUnknown_80E09D8: @ 80E09D8
.string " ...Uh{COMMA} no?\n"
.string "You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\0"
.align 2,0
.global gUnknown_80E0A0C
gUnknown_80E0A0C: @ 80E0A0C
.string " ...Uh{COMMA} no?\n"
.string "You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.\0"
.align 2,0
.asciz "pksdir0"

View File

@ -2,7 +2,11 @@
.global gUnknown_8106F7C
gUnknown_8106F7C: @ 8106F7C
.incbin "baserom.gba", 0x106F7C, 0x28
.int 0, 0, 0, 1
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.global gUnknown_8106FA4
gUnknown_8106FA4: @ 8106FA4

View File

@ -923,8 +923,8 @@ gUnknown_8117770: @ 8117770
gUnknown_8117784: @ 8117784
.byte 0x0d, 0x00, 0x01, 0x00, 0x80, 0x03, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0xbc, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_811779C
gUnknown_811779C: @ 811779C
.global gGroundWeatherSelect
gGroundWeatherSelect: @ 811779C
.string "GroundWeather Select %3d %3d\0"
.align 2,0

View File

@ -50,7 +50,7 @@ struct DungeonGlobalData
u8 fill646[0x65C - 0x646];
u8 unk65C;
u8 fill65D[0x660 - 0x65D];
/* 0x660 */ u16 speedTurnCounter; // Handles turn order when Pokémon have different movement speeds.
/* 0x660 */ s16 speedTurnCounter; // Handles turn order when Pokémon have different movement speeds.
u8 fill662[0x666 - 0x662];
/* 0x666 */ u16 turnsLeft; // Turns remaining before getting swept out of the dungeon.
u8 fill668[0x66A - 0x668];

View File

@ -3,7 +3,7 @@
struct MenuItem
{
const char *text;
const u8 *text;
u32 menuAction; // action??
};

View File

@ -33,7 +33,7 @@ s32 GetPtsToNextRank(void);
void SetTeamRankPoints(s32 newPts);
void AddToTeamRankPts(s32 newPts);
u8 GetRescueTeamRank(void);
const char *GetTeamRankString(u8 index);
const u8 *GetTeamRankString(u8 index);
u8 sub_80921B8(void);
u32 SaveRescueTeamInfo(u8 *param_1,u32 param_2);
u32 ReadRescueTeamInfo(u8 *param_1, u32 param_2);

View File

@ -62,6 +62,8 @@ SECTIONS {
src/sprite.o(.text);
asm/sprite.o(.text);
asm/code_800558C.o(.text);
src/code_800558C_1.o(.text);
asm/code_8005838.o(.text);
src/code_800558C.o(.text);
src/random.o(.text);
src/text.o(.text);
@ -139,6 +141,7 @@ SECTIONS {
src/wonder_mail_3_1.o(.text);
src/makuhita_dojo.o(.text);
asm/makuhita_dojo.o(.text);
src/makuhita_dojo_1.o(.text);
src/wonder_mail_4.o(.text);
asm/wonder_mail_4.o(.text);
src/wonder_mail_5.o(.text);
@ -323,6 +326,7 @@ SECTIONS {
asm/code_8098BDC.o(.text);
src/code_809D148.o(.text);
asm/code_809D148.o(.text);
src/ground_script.o(.text);
asm/ground_script.o(.text);
src/code_80A26CC.o(.text);
asm/code_80A26CC.o(.text);
@ -332,6 +336,7 @@ SECTIONS {
asm/ground_map.o(.text);
src/ground_map_1.o(.text);
asm/ground_map_1.o(.text);
src/ground_map_2.o(.text);
asm/ground_sprite.o(.text);
src/code_80A7714.o(.text);
asm/ground_lives.o(.text);
@ -420,7 +425,10 @@ SECTIONS {
src/wonder_mail_802DF88.o(.rodata);
src/mailbox.o(.rodata);
src/pelipper_board.o(.rodata);
src/wonder_mail_3_mid.o(.rodata);
src/makuhita_dojo.o(.rodata);
data/data_80DED44.o(.rodata);
src/wonder_mail_6.o(.rodata);
src/post_office_guide.o(.rodata);
data/data_80E1F30.o(.rodata);
src/adventure_log.o(.rodata);

99
src/code_800558C_1.c Normal file
View File

@ -0,0 +1,99 @@
#include "global.h"
extern u8 gUnknown_2026E38;
extern u32 gUnknown_2026E3C;
extern u16 gUnknown_2026E4E;
extern bool32 gUnknown_2026E50;
extern bool32 gUnknown_2026E54;
extern u32 gUnknown_2026E58;
extern u8 gUnknown_2026E4C;
extern u32 gUnknown_203B078;
extern void SetBGPaletteBufferColorRGB(s32 index, u8 *RGBArray, s32 a1, u8 *a2);
void sub_8005770(s32 param_1, u8 *RGBArray, s32 a1, u8 *a2);
void sub_8005764(s32 param_1, u8 *RGBArrays[], s32 a1, u8 *a2)
{
sub_8005770(param_1,RGBArrays[1],a1,a2);
}
void sub_8005770(s32 param_1, u8 *RGBArray, s32 a1, u8 *a2)
{
s32 i;
for(i = 0; i < 16; i++)
{
SetBGPaletteBufferColorRGB((param_1 + 0x10) * 0x10 + i,&RGBArray[i * 4],a1,a2);
}
}
void nullsub_7(void)
{}
void nullsub_8(void)
{}
void nullsub_9(void)
{}
void nullsub_10(void)
{}
void nullsub_144(void)
{}
void nullsub_11(void)
{}
void nullsub_12(void)
{}
void nullsub_13(void)
{}
void nullsub_145(void)
{}
void nullsub_14(void)
{}
void nullsub_146(void)
{}
void nullsub_147(void)
{}
void nullsub_148(void)
{}
void nullsub_149(void)
{}
u32 sub_80057D8(void)
{
return 0;
}
u32 sub_80057DC(void)
{
return 0;
}
void nullsub_150(void)
{}
void nullsub_151(void)
{}
void sub_80057E8(void)
{
gUnknown_2026E4C = 1;
gUnknown_2026E54 = 0;
gUnknown_2026E50 = 1;
gUnknown_2026E58 = 0;
gUnknown_2026E3C = 0;
gUnknown_2026E38 = 0;
gUnknown_2026E4E = 0x60c;
gUnknown_203B078 = 0;
}

View File

@ -8,6 +8,35 @@ s16 sub_80A26B8(s16);
extern s16 gUnknown_8116F9A[];
extern s16 gUnknown_8116F24[];
extern struct unkStruct_80A2608 gUnknown_81168A8[];
extern u8 sub_8098F88(void);
extern void sub_8001658(u32, u32);
u32 sub_80A25AC(u16 param_1)
{
if (sub_8098F88() != 0) {
return param_1;
}
else
{
if (param_1 == 0x32) {
return 0x32;
}
else if (sub_80023E4(0xc) == 0) {
return 999;
}
else if (sub_80023E4(0xd) != 0) {
return 0x13;
}
else if (param_1 != 1) {
return param_1;
}
else
{
sub_8001658(0,0x28);
return 1;
}
}
}
struct unkStruct_80A2608 *sub_80A2608(s16 r0)
{
@ -120,7 +149,7 @@ u8 sub_80A2728(s16 r0)
return temp->unkC;
}
u8 sub_80A2740(s16 r0)
u8 sub_80A2740(s32 r0)
{
struct unkStruct_80A2608 *temp;
temp = sub_80A2608(r0);

267
src/ground_map_2.c Normal file
View File

@ -0,0 +1,267 @@
#include "global.h"
#include "memory.h"
#include "debug.h"
struct unkStruct_3001B74
{
// size: 0x24
s16 unk0;
u8 unk2;
u32 unk4;
u32 unk8;
s32 unkC;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
};
extern struct unkStruct_3001B74 *gUnknown_3001B74;
extern u16 gUnknown_2026E4E;
// size: 0x55C
extern u8 *gUnknown_3001B78;
extern u8 gUnknown_8117784[];
extern s16 gUnknown_811E5F4[][2];
extern u8 gGroundWeatherSelect[];
extern u8 *gUnknown_3001B70;
extern s32 gUnknown_81177BC[];
extern void sub_80A3BB0(void* , u32);
extern void sub_80018D8(u8, u8, u32);
extern void sub_80A2D00(void *);
extern void sub_80A2B40(void *, u8 *);
extern void sub_80A2FBC(void *, u32);
extern void sub_80A49E8(void *);
extern void sub_80A456C(void *, u32, s32 *);
extern void sub_80A4580(void *, u32, s32 *);
extern void sub_80A56C0(s32 *);
extern void sub_80A4764(void *);
void sub_80A62D0(void);
void sub_80A5EDC(u8 param_1);
void sub_80A5E70(void)
{
if (gUnknown_3001B70 != NULL) {
sub_80A49E8(gUnknown_3001B70);
}
sub_80A62D0();
}
void sub_80A5E8C(u8 param_1)
{
gUnknown_3001B74 = MemoryAlloc(sizeof(struct unkStruct_3001B74), 6);
gUnknown_3001B74->unk0 = -1;
gUnknown_3001B74->unk2 = 0;
sub_80A5EDC(param_1);
}
void sub_80A5EBC(void)
{
sub_80A5EDC(0);
MemoryFree(gUnknown_3001B74);
gUnknown_3001B74 = NULL;
}
void sub_80A5EDC(u8 param_1)
{
sub_80018D8(0, 0x1b, -1);
gUnknown_3001B74->unk0 = -1;
gUnknown_3001B74->unk2 = param_1;
if (gUnknown_3001B78 != NULL) {
sub_80A2D00(gUnknown_3001B78);
MemoryFree(gUnknown_3001B78);
gUnknown_3001B78 = NULL;
}
if (param_1 != 0) {
gUnknown_3001B78 = MemoryAlloc(0x55c,6);
sub_80A2B40(gUnknown_3001B78,gUnknown_8117784);
sub_80A2FBC(gUnknown_3001B78,-1);
}
}
void nullsub_121(void)
{}
void nullsub_122(void)
{}
void GroundWeather_Select(s16 param_1)
{
s32 iVar2;
s32 iVar3;
s16 *pVar1;
iVar2 = param_1;
iVar3 = iVar2;
Log(0,gGroundWeatherSelect,iVar2,gUnknown_3001B74->unk2);
sub_80018D8(0,0x1b,iVar2);
gUnknown_3001B74->unk0 = iVar2;
if (gUnknown_3001B74->unk2 != 0) {
if (iVar2 == -1) {
sub_80A2FBC(gUnknown_3001B78, -1);
}
else {
pVar1 = gUnknown_811E5F4[iVar3];
sub_80A2FBC(gUnknown_3001B78, pVar1[1]);
gUnknown_3001B74->unk4 = 0;
gUnknown_3001B74->unk8 = 0;
gUnknown_3001B74->unkC = 0;
gUnknown_3001B74->unk10 = 0;
gUnknown_3001B74->unk20 = 0;
gUnknown_3001B74->unk1C = 0;
gUnknown_3001B74->unk18 = 0;
gUnknown_3001B74->unk14 = 0;
switch(gUnknown_3001B74->unk0) {
case 9:
sub_80A3BB0(gUnknown_3001B78,1);
gUnknown_2026E4E = 0x40c;
break;
case 7:
gUnknown_2026E4E = 0x808;
break;
case 0xe:
sub_80A3BB0(gUnknown_3001B78,1);
gUnknown_2026E4E = 0x1010;
break;
case 0xf:
sub_80A3BB0(gUnknown_3001B78,1);
gUnknown_2026E4E = 0x40c;
break;
case 0:
case 3:
case 4:
case 5:
case 8:
gUnknown_2026E4E = 0x1010;
break;
default:
if (pVar1[0] == 1) {
sub_80A3BB0(gUnknown_3001B78,1);
}
gUnknown_2026E4E = 0x1000;
break;
}
}
}
}
s16 sub_80A60C4(void)
{
return gUnknown_3001B74->unk0;
}
void nullsub_123(void)
{}
void sub_80A60D8(void)
{
s32 r0;
#ifndef NONMATCHING
register s32 r1 asm("r1");
#else
s32 r1;
#endif
s32 r3;
s32 r4;
s32 local_00[2]; // sp 0x0
s32 local_08[2]; // sp 0x8
s32 local_10[2]; // sp 0x10
s32 local_18[2]; // sp 0x18
s32 local_20[2]; // sp 0x20
s16 *puVar1;
if (gUnknown_3001B74->unk2 == 0) {
return;
}
switch((s16)(gUnknown_3001B74->unk0 + 1)) {
case 10:
r1 = gUnknown_3001B74->unk4;
r0 = r1 + 2;
gUnknown_3001B74->unk4 = r0;
r4 = gUnknown_3001B74->unk8;
r3 = r4 + 1;
gUnknown_3001B74->unk8 = r3;
if (r0 < 0) {
r0 = r1 + 5;
}
gUnknown_3001B74->unkC += (r0 >> 2);
r1 = r3;
if (r1 < 0) {
r1 = r4 + 4;
}
gUnknown_3001B74->unk10 += (r1 >> 2);
sub_80A4580(gUnknown_3001B78,0,&gUnknown_3001B74->unkC);
gUnknown_3001B74->unk4 &= 3;
gUnknown_3001B74->unk8 &= 3;
sub_80A56C0(local_00);
local_00[0] -= gUnknown_3001B74->unkC;
local_00[1] += gUnknown_3001B74->unk10;
sub_80A4580(gUnknown_3001B78,0,local_00);
sub_80A456C(gUnknown_3001B78,0,local_00);
break;
case 0xb:
case 0xc:
case 0xd:
case 0xe:
sub_80A56C0(local_08);
sub_80A456C(gUnknown_3001B78,0,local_08);
break;
case 0xf:
r1 = gUnknown_3001B74->unk4 ;
r0 = r1 + 1;
gUnknown_3001B74->unk4 = r0;
if (r0 < 0) {
r0 = r1 + 4;
}
gUnknown_3001B74->unkC += (r0 >> 2);
sub_80A4580(gUnknown_3001B78,0,&gUnknown_3001B74->unkC);
gUnknown_3001B74->unk4 &= 3;
sub_80A56C0(local_10);
local_10[0] -= gUnknown_3001B74->unkC;
local_10[1] = 0;
sub_80A4580(gUnknown_3001B78,0,local_10);
sub_80A456C(gUnknown_3001B78,0,local_10);
break;
case 0x10:
r1 = gUnknown_3001B74->unk4;
r0 = r1 + 2;
gUnknown_3001B74->unk4 = r0;
if (r0 < 0) {
r0 = r1 + 5;
}
gUnknown_3001B74->unkC += (r0 >> 2);
sub_80A4580(gUnknown_3001B78,0,&gUnknown_3001B74->unkC);
gUnknown_3001B74->unk4 &= 3;
sub_80A56C0(local_18);
local_18[0] -= gUnknown_3001B74->unkC;
local_18[1] = 0;
sub_80A4580(gUnknown_3001B78,0,local_18);
sub_80A456C(gUnknown_3001B78,0,local_18);
break;
default:
puVar1 = gUnknown_811E5F4[gUnknown_3001B74->unk0];
if (puVar1[0] == 0) {
sub_80A56C0(local_20);
sub_80A456C(gUnknown_3001B78,0,local_20);
break;
}
// NOTE: Fallthrough needed here..
case 0:
sub_80A456C(gUnknown_3001B78,0,gUnknown_81177BC);
break;
}
sub_80A4764(gUnknown_3001B78);
}
void sub_80A62D0(void)
{
if (gUnknown_3001B74->unk2 != 0) {
sub_80A49E8(gUnknown_3001B78);
}
}

130
src/ground_script.c Normal file
View File

@ -0,0 +1,130 @@
#include "global.h"
#include "debug.h"
extern u32 gUnknown_8116588;
extern u32 gUnknown_8116538;
extern u32 gUnknown_8116560;
extern u8 gUnknown_8116594[];
extern u8 gUnknown_8116544[];
extern u8 gUnknown_811656C[];
struct GroundScript_ExecutePP_3
{
// size: 0xC
u32 unk0;
s16 scriptType;
s16 unk6;
u8 unk8;
};
struct GroundScript_ExecutePP_1_sub
{
// size: 0x60
/* 0x0 */ s16 scriptType;
/* 0x2 */ s16 unk2;
/* 0x4 */ u32 unk4;
/* 0x8 */ u32 unk8;
/* 0xC */ u16 unkC;
/* 0xE */ u8 unkE;
/* 0xF */ u8 fillF;
/* 0x10 */ u32 unk10;
/* 0x14 */ u32 unk14;
/* 0x18 */ u8 fill3C[0x26 - 0x18];
/* 0x26 */ u32 unk26;
u8 fill50[0x60 - 0x2A];
} __attribute__((packed));
typedef void (*Callback)(u32, void *);
struct GroundScript_ExecutePP_1_sub2
{
Callback callbacks[10]; // IDK the size..
};
struct GroundScript_ExecutePP_1
{
struct GroundScript_ExecutePP_1_sub2 *unk0;
u32 unk4;
u32 fill8;
u32 unkC;
u32 fill10;
u8 fill18[0x24 - 0x14];
struct GroundScript_ExecutePP_1_sub unk24;
struct GroundScript_ExecutePP_1_sub unk84;
};
extern void sub_809D520(void *);
extern void sub_809D568(void *);
extern void sub_809D6E4(struct GroundScript_ExecutePP_1 *, struct GroundScript_ExecutePP_3 *, s32);
void FatalError(u32 *, const char *, ...) __attribute__((noreturn));
bool8 GroundScript_ExecutePP(struct GroundScript_ExecutePP_1 *param_1, s32 *param_2, struct GroundScript_ExecutePP_3 *param_3, struct DebugLocation *unused)
{
if ((param_3 == NULL) || (param_3->unk0 == 0)) {
return FALSE;
}
switch(param_3->scriptType) {
case 2:
case 3:
if (param_1->unk24.scriptType == 1) {
memcpy(&param_1->unk84, &param_1->unk24, 0x60);
break;
}
if (param_1->unk24.scriptType == 5) {
sub_809D568(&param_1->unk84);
}
break;
case 5:
if (param_1->unk24.scriptType != 2) {
// "execute script type error B"
FatalError(&gUnknown_8116538, gUnknown_8116544);
}
if (param_1->unk84.scriptType != -1) {
// "execute script type error C"
FatalError(&gUnknown_8116560, gUnknown_811656C);
}
memcpy(&param_1->unk84, &param_1->unk24, 0x60);
break;
case 0:
if (param_1->unk24.scriptType != 1) goto _0809D84A;
memcpy(&param_1->unk84, &param_1->unk24, 0x60);
break;
case 1:
_0809D84A:
sub_809D568(&param_1->unk84);
break;
default:
// "execute script type error %d"
FatalError(&gUnknown_8116588, gUnknown_8116594, param_3->scriptType);
}
sub_809D568(&param_1->unk24);
if (param_2 != NULL) {
param_1->unkC = param_2[0];
}
else {
sub_809D520(&param_1->unkC);
}
param_1->unk24.scriptType = param_3->scriptType;
param_1->unk24.unk2 = 3;
param_1->unk24.unkC = param_3->unk6;
param_1->unk24.unkE = param_3->unk8;
param_1->unk24.unk4 = param_3->unk0;
param_1->unk24.unk8 = param_3->unk0;
param_1->unk24.unk10 = 0;
param_1->unk24.unk14 = 0;
if (param_1->unk0->callbacks[5] != 0) {
param_1->unk0->callbacks[5](param_1->unk4, &param_1->unk24.unk26);
}
return TRUE;
}
bool8 sub_809D8C0(struct GroundScript_ExecutePP_1 *param_1, s32 *param_2, s16 param_3, struct DebugLocation *debug)
{
struct GroundScript_ExecutePP_3 auStack28;
sub_809D6E4(param_1,&auStack28,param_3);
return GroundScript_ExecutePP(param_1, param_2, &auStack28, debug);
}

View File

@ -29,7 +29,25 @@ struct unkStruct_203B318
extern u8 gUnknown_202E5D8[];
extern u8 gUnknown_202E1C8[];
extern struct unkStruct_203B318 *gUnknown_203B318;
extern struct UnkTextStruct2 gUnknown_80E0760;
ALIGNED(4) const u8 gUnknown_80E0744[] = "Dungeons";
ALIGNED(4) const u8 gUnknown_80E0750[] = {0x83, 0xC2};
ALIGNED(4) const u8 gUnknown_80E0754[] = {0x83, 0xC0};
static const u8 makuhita_dojo_fill[] = "pksdir0";
const struct UnkTextStruct2 gUnknown_80E0760 = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
NULL
};
ALIGNED(4) const u8 gMakuhitaDojoBonslyDoll[] = _(
"{CENTER_ALIGN}{COLOR_1 YELLOW_5}$n0{END_COLOR_TEXT_1} received the {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!\n"
"{CENTER_ALIGN}It has been placed outside your\n"
"{CENTER_ALIGN}rescue team base.");
const u8 gMakuhitaDojoGoTrain[] = "Go Train";
extern void sub_8030208();
extern void sub_8030258();

52
src/makuhita_dojo_1.c Normal file
View File

@ -0,0 +1,52 @@
#include "global.h"
#include "text.h"
struct unkStruct_203B31C
{
// Size: 0xD0
u16 unk0[2];
u8 fill4[0x30 - 0x4];
u32 unk30;
u8 fill34[0x48 - 0x34];
s16 unk48;
s16 unk4A;
s16 unk4C;
s16 unk4E;
u16 unk50;
u16 unk52;
u8 fill54[0x64 - 0x54];
u32 unk64;
struct UnkTextStruct2 *unk68;
struct UnkTextStruct2 unk6C[4];
u8 unkCC[4];
};
extern struct unkStruct_203B31C *gUnknown_203B31C;
extern bool8 sub_8097504(s16);
extern s16 sub_80A26CC(s16 r0);
s32 sub_8030668(void)
{
s32 index;
s32 counter;
counter = 0;
for(index = 0; index < 0x17; index++)
{
if (sub_8097504(index)) {
gUnknown_203B31C->unk0[counter] = sub_80A26CC(index);
counter++;
}
}
return counter;
}
s32 sub_80306A4(void)
{
return 0;
}

View File

@ -67,6 +67,12 @@ const struct UnkTextStruct2 gUnknown_80E0378 =
NULL
};
const u8 gPelipperBoard_BulletinBoard[] = "Bulletin Board";
const u8 gPelipperBoard_JobList[] = "Job List";
const u8 gPelipperBoard_Accepted[] = "Accepted";
const u8 gPelipperStatusSlash[] = "/";
static const u8 gPelipperfill[] = "pksdir0";
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_802ECB4(void);
extern void nullsub_134(void);

View File

@ -29,7 +29,7 @@ struct unkStruct_203B308
extern struct unkStruct_203B308 *gUnknown_203B308;
extern u8 gPelipperBoard_Accepted[];
extern u8 gUnknown_80E03B8[];
extern u8 gPelipperStatusSlash[];
extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32);
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
extern void sub_8008C54(u32);
@ -212,7 +212,7 @@ void CreatePelipperAcceptedStatusBox(u32 r0)
sub_80073B8(r0);
xxx_call_draw_string(3, 0, gPelipperBoard_Accepted, r0, 0);
sub_8012BC4(0x12, 0xD, GetNumAcceptedJobs(), 2, 7, r0);
xxx_call_draw_string(0x16, 0xD, gUnknown_80E03B8, r0, 0); // "/"
xxx_call_draw_string(0x16, 0xD, gPelipperStatusSlash, r0, 0); // "/"
sub_8012BC4(0x23, 0xD, MAX_ACCEPTED_JOBS, 2, 7, r0);
sub_80073E0(r0);
}

View File

@ -9,7 +9,7 @@ extern u8 sub_80023E4(u32);
extern void sub_80922B4(u8 *buffer, u8 *string, s32 size);
extern void BoundedCopyStringtoBuffer(u8 *buffer, u8 *string, s32 size);
extern const char *gRescueTeamRanks[];
extern const u8 *gRescueTeamRanks[];
extern s32 gRescueRankMaxPoints[7];
extern u8 gTeamNamePlaceholder[0x8]; // Pokemon
@ -98,7 +98,7 @@ u8 GetRescueTeamRank(void)
return LUCARIO_RANK;
}
const char *GetTeamRankString(u8 index)
const u8 *GetTeamRankString(u8 index)
{
return gRescueTeamRanks[index];
}

View File

@ -96,9 +96,6 @@ struct unkStruct_203B314
};
extern struct unkStruct_203B314 *gUnknown_203B314;
extern struct UnkTextStruct2 gUnknown_80E072C;
extern struct UnkTextStruct2 gUnknown_80E0714;
extern struct UnkTextStruct2 gUnknown_80E06FC;
extern u8 sub_802FCF0(u32);
extern void sub_802F9C0(void);
@ -146,24 +143,124 @@ extern void PlayMenuSoundEffect(u32);
extern void sub_802F300(void);
extern void PlaySound(u32);
extern s32 sub_808D544(u32);
extern void sub_80141B4(u8 *, u32, struct OpenedFile **, u32);
extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32);
extern u32 sub_801B60C(u32, u8, u8);
extern void sub_8092578(u8 *buffer, u8 index, u8 r2);
void HandleMissionReward(void);
extern struct UnkTextStruct2 gUnknown_80E03C4;
extern struct UnkTextStruct2 gUnknown_80E03F4;
extern struct UnkTextStruct2 gUnknown_80E041C;
extern u8 gUnknown_80E0434[];
extern u8 gUnknown_80E045C[];
extern u8 gUnknown_80E0484[];
extern u8 gUnknown_80E04F4[];
extern u8 gUnknown_80E06A8[];
extern u8 gUnknown_80E0670[];
extern u8 gUnknown_80E05FC[];
extern u8 gUnknown_80E04B4[];
extern u8 gUnknown_80E05C0[];
extern u8 gUnknown_80E0640[];
const struct UnkTextStruct2 gUnknown_80E03C4 = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
NULL
};
const struct UnkTextStruct2 gUnknown_80E03DC = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x03, 0x00,
0x07, 0x03,
0x03, 0x00,
NULL
};
const struct UnkTextStruct2 gUnknown_80E03F4 = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x15, 0x00, 0x06, 0x00,
0x07, 0x03,
0x03, 0x00,
NULL
};
const u8 gUnknown_80E040C[] = "Send";
static const u8 wonder_mail_fill[] = "pksdir0";
const struct UnkTextStruct2 gUnknown_80E041C = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
NULL
};
ALIGNED(4) const u8 gUnknown_80E0434[] = _(
" Here{APOSTROPHE}s your reward!\n"
"{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}!");
ALIGNED(4) const u8 gUnknown_80E045C[] = _(
"{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} received\n"
"{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.");
ALIGNED(4) const u8 gUnknown_80E0484[] = _(
"{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team received\n"
"{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.");
ALIGNED(4) const u8 gUnknown_80E04B4[]= _(
" As your reward{COMMA} you can\n"
"now go to the Friend Area\n"
"{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}!");
ALIGNED(4) const u8 gUnknown_80E04F4[] = _(
"{CENTER_ALIGN}...Oh{COMMA} wait{COMMA} sorry.{EXTRA_MSG}"
"{CENTER_ALIGN}You already have the \n"
"{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA} Friend Area{END_COLOR_TEXT_1}.{EXTRA_MSG}"
"{CENTER_ALIGN}I{APOSTROPHE}m sorry that my reward is\n"
"{CENTER_ALIGN}something you already have.{EXTRA_MSG}"
"{CENTER_ALIGN}In its place{COMMA} {COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{COMMA}\n"
"{CENTER_ALIGN}you can have {COLOR_1 LIGHT_BLUE_2}1{COMMA}000{END_COLOR_TEXT_1} {POKE}.");
ALIGNED(4) const u8 gUnknown_80E05C0[] = _(
"{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} gained access\n"
"{CENTER_ALIGN}to the Friend Area\n"
"{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.");
ALIGNED(4) const u8 gUnknown_80E05FC[] = _(
"{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team gained access\n"
"{CENTER_ALIGN}to the Friend Area\n"
"{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.");
ALIGNED(4) const u8 gUnknown_80E0640[] = _(
" Here{APOSTROPHE}s your reward!\n"
"The promised {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1}!");
ALIGNED(4) const u8 gUnknown_80E0670[] = _(
"{CENTER_ALIGN}Rescue Team {COLOR_1 LIGHT_BLUE_2}$t{END_COLOR_TEXT_1}\n"
"{CENTER_ALIGN}gained {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} rescue points.");
ALIGNED(4) const u8 gUnknown_80E06A8[] = _(
"{CENTER_ALIGN}Congratulations!{EXTRA_MSG}"
"{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}$t{END_COLOR_TEXT_1} went up in rank\n"
"{CENTER_ALIGN}from the {ARG_POKEMON_2}\n"
"{CENTER_ALIGN}to the {ARG_POKEMON_3}!");
static const u8 wonder_mail_fill2[] = "pksdir0";
const struct UnkTextStruct2 gUnknown_80E06FC = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
NULL
};
const struct UnkTextStruct2 gUnknown_80E0714 = {
0x00, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00,
0x02, 0x00, 0x02, 0x00,
0x0E, 0x0E,
0x0E, 0x00,
NULL
};
const struct UnkTextStruct2 gUnknown_80E072C = {
0x00, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00,
0x02, 0x00, 0x02, 0x00,
0x10, 0x10,
0x10, 0x00,
NULL
};
extern u8 gUnknown_202E038[];
extern u8 gUnknown_202E088[];
@ -172,8 +269,7 @@ extern u8 gUnknown_202DEA8[];
extern u8 gUnknown_202E5D8[];
extern u8 gAvailablePokemonNames[];
extern u32 gUnknown_202DE30;
extern const char gUnknown_80E040C[];
extern const char *gUnknown_80D4970[];
extern const u8 *gUnknown_80D4970[];
@ -279,7 +375,7 @@ void sub_802F088(void)
void sub_802F108(void)
{
struct unkStruct_203B30C *preload;
const char *blankText;
const u8 *blankText;
s32 action_1;
preload = gUnknown_203B30C;
@ -442,7 +538,7 @@ void sub_802F300(void)
void HandleMissionReward(void)
{
int moneyReward;
const char *rankString;
const u8 *rankString;
u8 uVar7;
struct unkStruct_8090F58 local_20;
struct ItemSlot_Alt item;

View File

@ -31,18 +31,57 @@ struct unkStruct_203B328
extern struct unkStruct_203B328 *gUnknown_203B328;
extern struct unkStruct_203B480 *gUnknown_203B480;
extern u8 gUnknown_80E0A0C[];
extern u8 gUnknown_80E09D8[];
const struct MenuItem gUnknown_80E0948[] =
{
{"Yes", 0x2},
{"No", 0x3},
{NULL, 0x1}
};
extern struct UnkTextStruct2 gUnknown_80E0990;
extern struct UnkTextStruct2 gUnknown_80E09A8;
extern struct MenuItem gUnknown_80E0968;
extern struct UnkTextStruct2 gUnknown_80E09C0;
extern struct MenuItem gUnknown_80E0948;
const struct MenuItem gUnknown_80E0968[] =
{
{"Delete", 0x4},
{"Info", 0x5},
{NULL, 0x1}
};
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
const struct UnkTextStruct2 gUnknown_80E0990 = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
NULL
};
const struct UnkTextStruct2 gUnknown_80E09A8 = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x13, 0x00, 0x0B, 0x00,
0x08, 0x03,
0x03, 0x00,
NULL
};
const struct UnkTextStruct2 gUnknown_80E09C0 = {
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x11, 0x00, 0x0F, 0x00,
0x07, 0x03,
0x03, 0x00,
NULL
};
ALIGNED(4) const u8 gUnknown_80E09D8[] = _(
" ...Uh{COMMA} no?\n"
"You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.");
ALIGNED(4) const u8 gUnknown_80E0A0C[] = _(
" ...Uh{COMMA} no?\n"
"You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.");
const u8 wonder_mail_6_fill[] = "pksdir0";
extern void sub_8012CAC(struct UnkTextStruct2 *, const struct MenuItem *);
extern void sub_80306A8(s32, u32, u32, u32);
extern void sub_80141B4(char *r0, u32, struct OpenedFile **r1, u32);
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
extern void sub_8031300(void);
extern void sub_803136C(void);
extern void sub_80313D8(u32);
@ -59,7 +98,7 @@ extern void sub_8030810(u32);
extern void sub_803092C(void);
extern void sub_8030D40(u8, u32);
extern void sub_8012EA4(u32 *, u32);
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u32, u32, u32);
extern void sub_8012D60(u32 *, const struct MenuItem *, u32, u32, u32, u32);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, s32 *);
extern void sub_8095240(u8);
@ -160,12 +199,12 @@ void sub_80310FC(void)
gUnknown_203B328->unkA8[1] = gUnknown_80E09A8;
gUnknown_203B328->unkA8[2] = gUnknown_80E0990;
gUnknown_203B328->unkA8[3] = gUnknown_80E0990;
sub_8012CAC(&gUnknown_203B328->unkA8[1], &gUnknown_80E0968);
sub_8012CAC(&gUnknown_203B328->unkA8[1], gUnknown_80E0968);
break;
case 2:
case 3:
gUnknown_203B328->unkA8[2] = gUnknown_80E09C0;
sub_8012CAC(&gUnknown_203B328->unkA8[2], &gUnknown_80E0948);
sub_8012CAC(&gUnknown_203B328->unkA8[2], gUnknown_80E0948);
break;
case 4:
gUnknown_203B328->unkA8[0] = gUnknown_80E0990;
@ -193,13 +232,13 @@ void sub_8031258(void)
break;
case 1:
sub_803092C();
sub_8012D60(&gUnknown_203B328->unk8, &gUnknown_80E0968, 0, 0, 4, 1);
sub_8012D60(&gUnknown_203B328->unk8, gUnknown_80E0968, 0, 0, 4, 1);
break;
case 2:
case 3:
sub_803092C();
sub_8012EA4(&gUnknown_203B328->unk8, 0);
sub_8012D60(&gUnknown_203B328->unk58, &gUnknown_80E0948, 0, 0, 3, 2);
sub_8012D60(&gUnknown_203B328->unk58, gUnknown_80E0948, 0, 0, 3, 2);
break;
case 4:
sub_8030D40(gUnknown_203B328->unk4, 3);