mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 15:46:18 -05:00
actually fix DisplayAdventureLog and decomp some more wonder mail
This commit is contained in:
parent
9f98e08fb9
commit
a1692a1aa0
|
|
@ -1026,29 +1026,4 @@ _080196FA:
|
|||
bx r0
|
||||
thumb_func_end sub_8019660
|
||||
|
||||
thumb_func_start sub_8019700
|
||||
sub_8019700:
|
||||
ldr r0, _08019724
|
||||
ldr r1, [r0]
|
||||
movs r3, 0
|
||||
ldr r0, _08019728
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x34]
|
||||
movs r0, 0x5
|
||||
str r0, [r1, 0x38]
|
||||
movs r2, 0x1
|
||||
ldr r0, _0801972C
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x3C]
|
||||
movs r0, 0x6
|
||||
str r0, [r1, 0x40]
|
||||
str r3, [r1, 0x44]
|
||||
str r2, [r1, 0x48]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08019724: .4byte gUnknown_203B210
|
||||
_08019728: .4byte gUnknown_80D4920
|
||||
_0801972C: .4byte gUnknown_80D4928
|
||||
thumb_func_end sub_8019700
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
1556
asm/wonder_mail_2.s
1556
asm/wonder_mail_2.s
File diff suppressed because it is too large
Load Diff
759
asm/wonder_mail_802C860.s
Normal file
759
asm/wonder_mail_802C860.s
Normal file
|
|
@ -0,0 +1,759 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_802CAA4
|
||||
sub_802CAA4:
|
||||
push {r4-r7,lr}
|
||||
movs r7, 0
|
||||
ldr r5, _0802CAC8
|
||||
ldr r0, [r5]
|
||||
ldrb r0, [r0, 0xC]
|
||||
bl GetJobSlotInfo
|
||||
adds r4, r0, 0
|
||||
ldr r2, [r5]
|
||||
ldr r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _0802CB26
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0x5
|
||||
beq _0802CACC
|
||||
cmp r0, 0x6
|
||||
beq _0802CB10
|
||||
b _0802CB26
|
||||
.align 2, 0
|
||||
_0802CAC8: .4byte gUnknown_203B2F0
|
||||
_0802CACC:
|
||||
movs r0, 0x86
|
||||
lsls r0, 1
|
||||
adds r1, r2, r0
|
||||
ldr r0, _0802CAFC
|
||||
str r0, [r1]
|
||||
adds r0, r4, 0
|
||||
bl sub_809693C
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CAEE
|
||||
ldrb r0, [r4, 0x4]
|
||||
bl sub_80A2824
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CB00
|
||||
_0802CAEE:
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x88
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
b _0802CB0A
|
||||
.align 2, 0
|
||||
_0802CAFC: .4byte gUnknown_80DFD70
|
||||
_0802CB00:
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x88
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0x2
|
||||
_0802CB0A:
|
||||
str r1, [r0]
|
||||
adds r7, 0x1
|
||||
b _0802CB26
|
||||
_0802CB10:
|
||||
movs r0, 0x86
|
||||
lsls r0, 1
|
||||
adds r1, r2, r0
|
||||
ldr r0, _0802CB9C
|
||||
str r0, [r1]
|
||||
movs r0, 0x88
|
||||
lsls r0, 1
|
||||
adds r1, r2, r0
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r7, 0x1
|
||||
_0802CB26:
|
||||
ldr r4, _0802CBA0
|
||||
ldr r6, [r4]
|
||||
lsls r1, r7, 3
|
||||
movs r0, 0x86
|
||||
lsls r0, 1
|
||||
adds r3, r6, r0
|
||||
adds r2, r3, r1
|
||||
ldr r0, _0802CBA4
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
movs r0, 0x88
|
||||
lsls r0, 1
|
||||
adds r5, r6, r0
|
||||
adds r1, r5, r1
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
adds r7, 0x1
|
||||
lsls r1, r7, 3
|
||||
adds r2, r3, r1
|
||||
ldr r0, _0802CBA8
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
adds r1, r5, r1
|
||||
movs r0, 0x7
|
||||
str r0, [r1]
|
||||
adds r7, 0x1
|
||||
lsls r1, r7, 3
|
||||
adds r3, r1
|
||||
movs r0, 0
|
||||
str r0, [r3]
|
||||
adds r1, r5, r1
|
||||
movs r0, 0x1
|
||||
str r0, [r1]
|
||||
movs r3, 0
|
||||
mov r12, r4
|
||||
cmp r3, r7
|
||||
bge _0802CB8C
|
||||
adds r4, r6, 0
|
||||
adds r1, r5, 0
|
||||
movs r5, 0x1
|
||||
negs r5, r5
|
||||
_0802CB78:
|
||||
ldr r2, [r1]
|
||||
cmp r2, r5
|
||||
beq _0802CB84
|
||||
ldr r0, [r4, 0x68]
|
||||
cmp r2, r0
|
||||
beq _0802CB94
|
||||
_0802CB84:
|
||||
adds r1, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r7
|
||||
blt _0802CB78
|
||||
_0802CB8C:
|
||||
mov r0, r12
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x7
|
||||
str r0, [r1, 0x68]
|
||||
_0802CB94:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802CB9C: .4byte gUnknown_80DFD7C
|
||||
_0802CBA0: .4byte gUnknown_203B2F0
|
||||
_0802CBA4: .4byte gUnknown_80D494C
|
||||
_0802CBA8: .4byte gUnknown_80D4970
|
||||
thumb_func_end sub_802CAA4
|
||||
|
||||
thumb_func_start sub_802CBAC
|
||||
sub_802CBAC:
|
||||
ldr r0, _0802CBF4
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
movs r3, 0
|
||||
movs r1, 0xA6
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802CBF8
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xA8
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r1, 0xAA
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802CBFC
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x6
|
||||
str r0, [r1]
|
||||
movs r0, 0xAE
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
movs r0, 0xB0
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0802CBF4: .4byte gUnknown_203B2F0
|
||||
_0802CBF8: .4byte gUnknown_80D4920
|
||||
_0802CBFC: .4byte gUnknown_80D4928
|
||||
thumb_func_end sub_802CBAC
|
||||
|
||||
thumb_func_start sub_802CC00
|
||||
sub_802CC00:
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl sub_802C598
|
||||
cmp r0, 0x4
|
||||
bhi _0802CC6A
|
||||
lsls r0, 2
|
||||
ldr r1, _0802CC18
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0802CC18: .4byte _0802CC1C
|
||||
.align 2, 0
|
||||
_0802CC1C:
|
||||
.4byte _0802CC6A
|
||||
.4byte _0802CC6A
|
||||
.4byte _0802CC60
|
||||
.4byte _0802CC30
|
||||
.4byte _0802CC48
|
||||
_0802CC30:
|
||||
bl sub_802C620
|
||||
ldr r1, _0802CC44
|
||||
ldr r1, [r1]
|
||||
strb r0, [r1, 0xC]
|
||||
movs r0, 0x2
|
||||
bl sub_802C910
|
||||
b _0802CC6A
|
||||
.align 2, 0
|
||||
_0802CC44: .4byte gUnknown_203B2F0
|
||||
_0802CC48:
|
||||
bl sub_802C620
|
||||
ldr r1, _0802CC5C
|
||||
ldr r1, [r1]
|
||||
strb r0, [r1, 0xC]
|
||||
movs r0, 0x4
|
||||
bl sub_802C910
|
||||
b _0802CC6A
|
||||
.align 2, 0
|
||||
_0802CC5C: .4byte gUnknown_203B2F0
|
||||
_0802CC60:
|
||||
bl sub_802C688
|
||||
movs r0, 0x5
|
||||
bl sub_802C910
|
||||
_0802CC6A:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_802CC00
|
||||
|
||||
thumb_func_start sub_802CC70
|
||||
sub_802CC70:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_802C598
|
||||
ldr r4, _0802CCB4
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CCA0
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
ldr r1, [sp]
|
||||
cmp r1, 0x1
|
||||
beq _0802CCA0
|
||||
ldr r0, [r4]
|
||||
str r1, [r0, 0x68]
|
||||
_0802CCA0:
|
||||
ldr r0, [sp]
|
||||
subs r0, 0x1
|
||||
cmp r0, 0x6
|
||||
bhi _0802CD2E
|
||||
lsls r0, 2
|
||||
ldr r1, _0802CCB8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0802CCB4: .4byte gUnknown_203B2F0
|
||||
_0802CCB8: .4byte _0802CCBC
|
||||
.align 2, 0
|
||||
_0802CCBC:
|
||||
.4byte _0802CD28
|
||||
.4byte _0802CCD8
|
||||
.4byte _0802CCF4
|
||||
.4byte _0802CD18
|
||||
.4byte _0802CD2E
|
||||
.4byte _0802CD2E
|
||||
.4byte _0802CD20
|
||||
_0802CCD8:
|
||||
ldr r0, _0802CCEC
|
||||
bl PlaySound
|
||||
ldr r0, _0802CCF0
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xC]
|
||||
bl GetJobSlotInfo
|
||||
movs r1, 0x6
|
||||
b _0802CD06
|
||||
.align 2, 0
|
||||
_0802CCEC: .4byte 0x00000133
|
||||
_0802CCF0: .4byte gUnknown_203B2F0
|
||||
_0802CCF4:
|
||||
ldr r0, _0802CD10
|
||||
bl PlaySound
|
||||
ldr r0, _0802CD14
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xC]
|
||||
bl GetJobSlotInfo
|
||||
movs r1, 0x5
|
||||
_0802CD06:
|
||||
strb r1, [r0]
|
||||
movs r0, 0x1
|
||||
bl sub_802C910
|
||||
b _0802CD2E
|
||||
.align 2, 0
|
||||
_0802CD10: .4byte 0x00000133
|
||||
_0802CD14: .4byte gUnknown_203B2F0
|
||||
_0802CD18:
|
||||
movs r0, 0x3
|
||||
bl sub_802C910
|
||||
b _0802CD2E
|
||||
_0802CD20:
|
||||
movs r0, 0x4
|
||||
bl sub_802C910
|
||||
b _0802CD2E
|
||||
_0802CD28:
|
||||
movs r0, 0x1
|
||||
bl sub_802C910
|
||||
_0802CD2E:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_802CC70
|
||||
|
||||
thumb_func_start sub_802CD38
|
||||
sub_802CD38:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_802C598
|
||||
ldr r4, _0802CD78
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
bl sub_8012FD8
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xBC
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CD66
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xBC
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
_0802CD66:
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0x5
|
||||
beq _0802CD88
|
||||
cmp r0, 0x5
|
||||
bgt _0802CD7C
|
||||
cmp r0, 0x1
|
||||
beq _0802CD80
|
||||
b _0802CDB0
|
||||
.align 2, 0
|
||||
_0802CD78: .4byte gUnknown_203B2F0
|
||||
_0802CD7C:
|
||||
cmp r0, 0x6
|
||||
bne _0802CDB0
|
||||
_0802CD80:
|
||||
movs r0, 0x1
|
||||
bl sub_802C910
|
||||
b _0802CDB0
|
||||
_0802CD88:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0xC]
|
||||
bl sub_8096C3C
|
||||
bl sub_8096C80
|
||||
bl HasNoAcceptedJobs
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802CDAA
|
||||
bl sub_802C688
|
||||
movs r0, 0x5
|
||||
bl sub_802C910
|
||||
b _0802CDB0
|
||||
_0802CDAA:
|
||||
movs r0, 0x1
|
||||
bl sub_802C910
|
||||
_0802CDB0:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_802CD38
|
||||
|
||||
thumb_func_start sub_802CDB8
|
||||
sub_802CDB8:
|
||||
push {lr}
|
||||
bl sub_802DEE0
|
||||
cmp r0, 0x1
|
||||
bls _0802CDD0
|
||||
cmp r0, 0x3
|
||||
bhi _0802CDD0
|
||||
bl sub_802DF24
|
||||
movs r0, 0x1
|
||||
bl sub_802C910
|
||||
_0802CDD0:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_802CDB8
|
||||
|
||||
thumb_func_start sub_802CDD4
|
||||
sub_802CDD4:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r4, _0802CE54
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0802CDEA
|
||||
movs r0, 0xA0
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
_0802CDEA:
|
||||
ldr r0, [r4]
|
||||
str r5, [r0, 0x34]
|
||||
lsls r1, r5, 1
|
||||
adds r1, r5
|
||||
lsls r1, 3
|
||||
adds r1, 0x3C
|
||||
adds r1, r0, r1
|
||||
str r1, [r0, 0x38]
|
||||
adds r0, 0x3C
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r2, [r1, 0x34]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x3C
|
||||
ldr r0, _0802CE58
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x38]
|
||||
adds r1, 0x9C
|
||||
str r1, [r0, 0x14]
|
||||
movs r1, 0x4
|
||||
bl sub_8012D34
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x5
|
||||
movs r2, 0x4
|
||||
adds r3, r5, 0
|
||||
bl sub_8013848
|
||||
bl sub_802CF5C
|
||||
bl sub_802CFD0
|
||||
movs r0, 0x1
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0802CE54: .4byte gUnknown_203B2F4
|
||||
_0802CE58: .4byte gUnknown_80DFDA4
|
||||
thumb_func_end sub_802CDD4
|
||||
|
||||
thumb_func_start sub_802CE5C
|
||||
sub_802CE5C:
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CE74
|
||||
ldr r0, _0802CE70
|
||||
ldr r0, [r0]
|
||||
bl sub_8013660
|
||||
movs r0, 0
|
||||
b _0802CEB4
|
||||
.align 2, 0
|
||||
_0802CE70: .4byte gUnknown_203B2F4
|
||||
_0802CE74:
|
||||
ldr r4, _0802CE90
|
||||
ldr r0, [r4]
|
||||
bl GetKeyPress
|
||||
cmp r0, 0x1
|
||||
beq _0802CE94
|
||||
cmp r0, 0x2
|
||||
bne _0802CE98
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _0802CEB4
|
||||
.align 2, 0
|
||||
_0802CE90: .4byte gUnknown_203B2F4
|
||||
_0802CE94:
|
||||
movs r0, 0x3
|
||||
b _0802CEB4
|
||||
_0802CE98:
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1
|
||||
bl sub_80138B8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CEAA
|
||||
movs r0, 0
|
||||
b _0802CEB4
|
||||
_0802CEAA:
|
||||
bl sub_802CF5C
|
||||
bl sub_802CFD0
|
||||
movs r0, 0x1
|
||||
_0802CEB4:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_802CE5C
|
||||
|
||||
thumb_func_start sub_802CEBC
|
||||
sub_802CEBC:
|
||||
ldr r0, _0802CED4
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x1E
|
||||
ldrsh r2, [r1, r0]
|
||||
movs r3, 0x1C
|
||||
ldrsh r0, [r1, r3]
|
||||
muls r0, r2
|
||||
ldrb r1, [r1, 0x18]
|
||||
adds r0, r1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0802CED4: .4byte gUnknown_203B2F4
|
||||
thumb_func_end sub_802CEBC
|
||||
|
||||
thumb_func_start sub_802CED8
|
||||
sub_802CED8:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r5, _0802CF10
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl sub_800641C
|
||||
ldr r0, [r5]
|
||||
bl sub_8013984
|
||||
bl sub_802CF5C
|
||||
bl sub_802CFD0
|
||||
cmp r4, 0
|
||||
beq _0802CF0A
|
||||
ldr r0, [r5]
|
||||
bl AddMenuCursorSprite
|
||||
_0802CF0A:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802CF10: .4byte gUnknown_203B2F4
|
||||
thumb_func_end sub_802CED8
|
||||
|
||||
thumb_func_start sub_802CF14
|
||||
sub_802CF14:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _0802CF54
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _0802CF4E
|
||||
ldr r0, [r2, 0x34]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x3C
|
||||
ldr r0, _0802CF58
|
||||
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, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0802CF4E:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802CF54: .4byte gUnknown_203B2F4
|
||||
_0802CF58: .4byte gUnknown_80DFD8C
|
||||
thumb_func_end sub_802CF14
|
||||
|
||||
thumb_func_start sub_802CF5C
|
||||
sub_802CF5C:
|
||||
push {r4,lr}
|
||||
ldr r4, _0802CFCC
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x20]
|
||||
adds r0, 0x9C
|
||||
movs r2, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x1E]
|
||||
adds r0, 0x9D
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x9E
|
||||
movs r1, 0xC
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x9F
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1A
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, 0x18
|
||||
bl sub_8009614
|
||||
adds r0, 0x2
|
||||
lsls r0, 16
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2, 0x34]
|
||||
lsls r1, r3, 1
|
||||
adds r1, r3
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x4A
|
||||
asrs r3, r0, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r1]
|
||||
ldr r1, [r2, 0x34]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r2, r0
|
||||
adds r3, 0x2
|
||||
adds r2, 0x4C
|
||||
strh r3, [r2]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802CFCC: .4byte gUnknown_203B2F4
|
||||
thumb_func_end sub_802CF5C
|
||||
|
||||
thumb_func_start sub_802CFD0
|
||||
sub_802CFD0:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x60
|
||||
ldr r6, _0802D02C
|
||||
ldr r0, [r6]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_8008C54
|
||||
ldr r0, [r6]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_80073B8
|
||||
ldr r0, [r6]
|
||||
movs r1, 0x1E
|
||||
ldrsh r4, [r0, r1]
|
||||
lsls r4, 3
|
||||
adds r5, r4, 0
|
||||
adds r5, 0xA
|
||||
ldr r2, _0802D030
|
||||
ldr r3, [r0, 0x34]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
adds r4, 0x4
|
||||
ldr r1, [r6]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x9E
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 3
|
||||
adds r5, r4, r0
|
||||
movs r0, 0x1E
|
||||
ldrsh r2, [r1, r0]
|
||||
adds r2, 0x1
|
||||
movs r0, 0x7
|
||||
str r0, [sp]
|
||||
ldr r0, [r1, 0x34]
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0
|
||||
movs r3, 0x2
|
||||
bl sub_8012BC4
|
||||
movs r5, 0
|
||||
b _0802D076
|
||||
.align 2, 0
|
||||
_0802D02C: .4byte gUnknown_203B2F4
|
||||
_0802D030: .4byte gUnknown_80DFDBC
|
||||
_0802D034:
|
||||
ldr r0, [r6]
|
||||
movs r2, 0x1E
|
||||
ldrsh r1, [r0, r2]
|
||||
movs r2, 0x1C
|
||||
ldrsh r0, [r0, r2]
|
||||
muls r0, r1
|
||||
adds r0, r5
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_803B344
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r6]
|
||||
ldr r1, [r0, 0x34]
|
||||
str r1, [sp, 0x8]
|
||||
adds r1, r5, 0
|
||||
bl sub_8013800
|
||||
str r0, [sp, 0x50]
|
||||
adds r0, r4, 0
|
||||
add r1, sp, 0x8
|
||||
bl sub_803B35C
|
||||
mov r1, sp
|
||||
adds r1, 0x4B
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, 0x14]
|
||||
str r0, [sp, 0x54]
|
||||
add r0, sp, 0x8
|
||||
bl sub_803B6D4
|
||||
adds r5, 0x1
|
||||
_0802D076:
|
||||
ldr r0, [r6]
|
||||
movs r1, 0x1A
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r5, r0
|
||||
blt _0802D034
|
||||
ldr r0, _0802D094
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_80073E0
|
||||
add sp, 0x60
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802D094: .4byte gUnknown_203B2F4
|
||||
thumb_func_end sub_802CFD0
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -126,6 +126,8 @@ SECTIONS {
|
|||
src/thank_you_wonder_mail.o(.text);
|
||||
src/wonder_mail_2.o(.text);
|
||||
asm/wonder_mail_2.o(.text);
|
||||
src/wonder_mail_2_1.o(.text);
|
||||
asm/wonder_mail_802C860.o(.text);
|
||||
src/wonder_mail_3.o(.text);
|
||||
asm/wonder_mail_3.o(.text);
|
||||
src/wonder_mail_802DF88.o(.text);
|
||||
|
|
|
|||
|
|
@ -62,7 +62,14 @@ extern s16 sub_8097838();
|
|||
extern s16 sub_8097870();
|
||||
extern s32 sub_80977B8();
|
||||
extern s32 sub_80977F8();
|
||||
extern void xxx_call_draw_string(s32, u32, u8 *, u32, u32);
|
||||
extern void xxx_call_draw_string(s32, u32, const u8 *, u32, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
|
||||
extern void xxx_format_and_draw(u32, u32, const char *, u32, u32);
|
||||
const u8 *GetAdventureLogLine(u8 index);
|
||||
extern s32 sub_8013800(void *, s32);
|
||||
extern u32 gUnknown_202DE30;
|
||||
|
||||
u32 CreateAdventureLogScreen(u32 param_1)
|
||||
|
|
@ -202,14 +209,13 @@ void sub_8032084(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
// Mostly matches except around the switch
|
||||
#ifdef NONMATCHING
|
||||
void DisplayAdventureLog(void)
|
||||
{
|
||||
s32 counter;
|
||||
s32 r4; // r4
|
||||
s32 r6; // r6
|
||||
u8 temp;
|
||||
s32 v1, v2, v3, v4, v5, v6;
|
||||
|
||||
sub_8008C54(gAdventureLog->unk34);
|
||||
sub_80073B8(gAdventureLog->unk34);
|
||||
|
|
@ -229,27 +235,38 @@ void DisplayAdventureLog(void)
|
|||
if(sub_8097710(temp)){
|
||||
switch(temp) {
|
||||
case 0xc:
|
||||
gUnknown_202DE30 = sub_80978B8();
|
||||
v1 = sub_80978B8();
|
||||
gUnknown_202DE30 = (s16)v1;
|
||||
xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0);
|
||||
break;
|
||||
case 7:
|
||||
gUnknown_202DE30 = sub_8097880();
|
||||
v2 = sub_8097880();
|
||||
gUnknown_202DE30 = (s16)v2;
|
||||
xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0);
|
||||
break;
|
||||
case 0xb:
|
||||
gUnknown_202DE30 = sub_8097838();
|
||||
v3 = sub_8097838();
|
||||
gUnknown_202DE30 = (s16)v3;
|
||||
xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0);
|
||||
break;
|
||||
case 8:
|
||||
gUnknown_202DE30 = sub_80977B8();
|
||||
v4 = sub_80977B8();
|
||||
gUnknown_202DE30 = v4;
|
||||
xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0);
|
||||
break;
|
||||
case 9:
|
||||
gUnknown_202DE30 = sub_80977F8();
|
||||
v5 = sub_80977F8();
|
||||
gUnknown_202DE30 = v5;
|
||||
xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0);
|
||||
break;
|
||||
case 10:
|
||||
gUnknown_202DE30 = sub_8097870();
|
||||
break;
|
||||
v6 = sub_8097870();
|
||||
gUnknown_202DE30 = (s16)v6;
|
||||
// fallthrough
|
||||
default:
|
||||
xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0);
|
||||
break;
|
||||
}
|
||||
xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -259,171 +276,3 @@ void DisplayAdventureLog(void)
|
|||
}
|
||||
sub_80073E0(gAdventureLog->unk34);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void DisplayAdventureLog(void)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tsub sp, 0x8\n"
|
||||
"\tldr r5, _08032158\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r0, [r0, 0x34]\n"
|
||||
"\tbl sub_8008C54\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r0, [r0, 0x34]\n"
|
||||
"\tbl sub_80073B8\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r1, 0x1E\n"
|
||||
"\tldrsh r4, [r0, r1]\n"
|
||||
"\tlsls r4, 3\n"
|
||||
"\tadds r6, r4, 0\n"
|
||||
"\tadds r6, 0xA\n"
|
||||
"\tldr r2, _0803215C\n"
|
||||
"\tldr r3, [r0, 0x34]\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tbl xxx_call_draw_string\n"
|
||||
"\tadds r4, 0x4\n"
|
||||
"\tldr r1, [r5]\n"
|
||||
"\tadds r0, r1, 0\n"
|
||||
"\tadds r0, 0x9E\n"
|
||||
"\tldrb r0, [r0]\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r6, r4, r0\n"
|
||||
"\tmovs r0, 0x1E\n"
|
||||
"\tldrsh r2, [r1, r0]\n"
|
||||
"\tadds r2, 0x1\n"
|
||||
"\tmovs r0, 0x7\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tldr r0, [r1, 0x34]\n"
|
||||
"\tstr r0, [sp, 0x4]\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tmovs r3, 0x1\n"
|
||||
"\tbl sub_8012BC4\n"
|
||||
"\tmovs r7, 0\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tb _0803223A\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08032158: .4byte gAdventureLog\n"
|
||||
"_0803215C: .4byte gAdventureLogHeaderText\n"
|
||||
"_08032160:\n"
|
||||
"\tldr r5, _08032194\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r2, 0x1E\n"
|
||||
"\tldrsh r1, [r0, r2]\n"
|
||||
"\tmovs r2, 0x1C\n"
|
||||
"\tldrsh r0, [r0, r2]\n"
|
||||
"\tmuls r0, r1\n"
|
||||
"\tadds r0, r7\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r6, r0, 24\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tbl sub_8097710\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r4, r0, 24\n"
|
||||
"\tcmp r4, 0\n"
|
||||
"\tbeq _0803221C\n"
|
||||
"\tsubs r0, r6, 0x7\n"
|
||||
"\tcmp r0, 0x5\n"
|
||||
"\tbhi _080321EC\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tldr r1, _08032198\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tmov pc, r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08032194: .4byte gAdventureLog\n"
|
||||
"_08032198: .4byte _0803219C\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0803219C:\n"
|
||||
"\t.4byte _080321BA\n"
|
||||
"\t.4byte _080321C6\n"
|
||||
"\t.4byte _080321D4\n"
|
||||
"\t.4byte _080321E0\n"
|
||||
"\t.4byte _080321C0\n"
|
||||
"\t.4byte _080321B4\n"
|
||||
"_080321B4:\n"
|
||||
"\tbl sub_80978B8\n"
|
||||
"\tb _080321E4\n"
|
||||
"_080321BA:\n"
|
||||
"\tbl sub_8097880\n"
|
||||
"\tb _080321E4\n"
|
||||
"_080321C0:\n"
|
||||
"\tbl sub_8097838\n"
|
||||
"\tb _080321E4\n"
|
||||
"_080321C6:\n"
|
||||
"\tbl sub_80977B8\n"
|
||||
"\tldr r1, _080321D0\n"
|
||||
"\tb _080321EA\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080321D0: .4byte gUnknown_202DE30\n"
|
||||
"_080321D4:\n"
|
||||
"\tbl sub_80977F8\n"
|
||||
"\tldr r1, _080321DC\n"
|
||||
"\tb _080321EA\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080321DC: .4byte gUnknown_202DE30\n"
|
||||
"_080321E0:\n"
|
||||
"\tbl sub_8097870\n"
|
||||
"_080321E4:\n"
|
||||
"\tldr r1, _08032214\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r0, 16\n"
|
||||
"_080321EA:\n"
|
||||
"\tstr r0, [r1]\n"
|
||||
"_080321EC:\n"
|
||||
"\tldr r4, _08032218\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r1, r7, 0\n"
|
||||
"\tbl sub_8013800\n"
|
||||
"\tadds r5, r0, 0\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tbl GetAdventureLogLine\n"
|
||||
"\tadds r2, r0, 0\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldr r3, [r0, 0x34]\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tmovs r0, 0x8\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tbl xxx_format_and_draw\n"
|
||||
"\tb _08032234\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08032214: .4byte gUnknown_202DE30\n"
|
||||
"_08032218: .4byte gAdventureLog\n"
|
||||
"_0803221C:\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tadds r1, r7, 0\n"
|
||||
"\tbl sub_8013800\n"
|
||||
"\tadds r1, r0, 0\n"
|
||||
"\tldr r2, _08032254\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r3, [r0, 0x34]\n"
|
||||
"\tstr r4, [sp]\n"
|
||||
"\tmovs r0, 0x8\n"
|
||||
"\tbl xxx_call_draw_string\n"
|
||||
"_08032234:\n"
|
||||
"\tadds r7, 0x1\n"
|
||||
"\tldr r0, _08032258\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"_0803223A:\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tcmp r7, r0\n"
|
||||
"\tblt _08032160\n"
|
||||
"\tldr r0, _08032258\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tldr r0, [r0, 0x34]\n"
|
||||
"\tbl sub_80073E0\n"
|
||||
"\tadd sp, 0x8\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08032254: .4byte gUnknown_80E2030\n"
|
||||
"_08032258: .4byte gAdventureLog");
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -175,11 +175,10 @@ void sub_8017C7C(void)
|
|||
sub_8099690(0);
|
||||
if(!IsNotMoneyOrUsedTMItem(gUnknown_203B208->unkC.itemIndex))
|
||||
UpdateKangaskhanStorageState(9);
|
||||
else if(!sub_801ADA0(gUnknown_203B208->unk10))
|
||||
UpdateKangaskhanStorageState(0xA);
|
||||
else
|
||||
if(!sub_801ADA0(gUnknown_203B208->unk10))
|
||||
UpdateKangaskhanStorageState(0xA);
|
||||
else
|
||||
UpdateKangaskhanStorageState(0x11);
|
||||
UpdateKangaskhanStorageState(0x11);
|
||||
break;
|
||||
case 6:
|
||||
sub_8099690(0);
|
||||
|
|
@ -209,13 +208,10 @@ void sub_8017D24(void)
|
|||
sub_801CBB8();
|
||||
UpdateKangaskhanStorageState(6);
|
||||
}
|
||||
else if(IsThrowableItem(gUnknown_203B208->unkC.itemIndex))
|
||||
UpdateKangaskhanStorageState(0x18);
|
||||
else
|
||||
{
|
||||
if(IsThrowableItem(gUnknown_203B208->unkC.itemIndex))
|
||||
UpdateKangaskhanStorageState(0x18);
|
||||
else
|
||||
UpdateKangaskhanStorageState(0x1B);
|
||||
}
|
||||
UpdateKangaskhanStorageState(0x1B);
|
||||
break;
|
||||
case 6:
|
||||
UpdateKangaskhanStorageState(0x1A);
|
||||
|
|
|
|||
|
|
@ -9,10 +9,16 @@
|
|||
#include "code_800D090.h"
|
||||
|
||||
extern struct unkStruct_203B210 *gUnknown_203B210;
|
||||
extern u16 gUnknown_203B218;
|
||||
extern u16 gUnknown_203B220;
|
||||
extern u16 gUnknown_203B228;
|
||||
extern u16 gUnknown_203B22A;
|
||||
extern u8 gUnknown_80DB8E4[];
|
||||
extern u8 gUnknown_80DB8EC[];
|
||||
extern u8 gUnknown_80DB92C[];
|
||||
extern u8 gUnknown_80DB934[];
|
||||
extern u8 *gUnknown_80D4920[];
|
||||
extern u8 *gUnknown_80D4928[];
|
||||
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
void UpdateKecleonStoreState(u32);
|
||||
|
|
@ -90,9 +96,8 @@ extern struct UnkTextStruct2 gUnknown_80DB8CC;
|
|||
extern struct UnkTextStruct2 gUnknown_80DB8B4;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB8FC;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB944;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB95C;
|
||||
extern const struct UnkTextStruct2 gUnknown_80DB914;
|
||||
extern u16 gUnknown_203B218;
|
||||
extern u16 gUnknown_203B220;
|
||||
extern void sub_801A430(void);
|
||||
extern void sub_801A4A4(void);
|
||||
extern void sub_8013984(u8 *);
|
||||
|
|
@ -100,9 +105,6 @@ extern void sub_801A064(void);
|
|||
extern void sub_801A0D8(void);
|
||||
extern void AddMenuCursorSprite(void *);
|
||||
extern u8 sub_801A37C(void);
|
||||
extern u16 gUnknown_203B228;
|
||||
extern u16 gUnknown_203B22A;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB95C;
|
||||
|
||||
extern void sub_801A010(void);
|
||||
extern void sub_801A3DC(void);
|
||||
|
|
@ -114,6 +116,23 @@ extern void xxx_fill_inv_unk250_gaps_8091AA8(void);
|
|||
|
||||
u32 sub_8019D8C(void);
|
||||
|
||||
void sub_8019700(void)
|
||||
{
|
||||
u32 menuAction;
|
||||
struct unkStruct_203B210 *preload;
|
||||
u8 *nullText;
|
||||
|
||||
preload = gUnknown_203B210;
|
||||
nullText = NULL;
|
||||
preload->unk34[0].text = *gUnknown_80D4920;
|
||||
preload->unk34[0].menuAction = 5;
|
||||
menuAction = 1;
|
||||
preload->unk34[1].text = *gUnknown_80D4928;
|
||||
preload->unk34[1].menuAction = 6;
|
||||
preload->unk34[2].text = nullText;
|
||||
preload->unk34[2].menuAction = menuAction;
|
||||
}
|
||||
|
||||
void sub_8019730(void)
|
||||
{
|
||||
s32 local_8;
|
||||
|
|
|
|||
449
src/wonder_mail_2_1.c
Normal file
449
src/wonder_mail_2_1.c
Normal file
|
|
@ -0,0 +1,449 @@
|
|||
#include "global.h"
|
||||
#include "constants/mailbox.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "menu.h"
|
||||
|
||||
|
||||
struct unkStruct_203B2E8
|
||||
{
|
||||
// size: 0xA8
|
||||
u8 unk0[MAX_ACCEPTED_JOBS];
|
||||
u32 unk8;
|
||||
u8 fillC[0x20 - 0xC];
|
||||
s16 unk20;
|
||||
s16 unk22;
|
||||
s16 unk24;
|
||||
s16 unk26;
|
||||
u16 unk28;
|
||||
u16 unk2A;
|
||||
u16 unk2C;
|
||||
u8 fill2E[0x3C - 0x2E];
|
||||
u32 unk3C;
|
||||
struct UnkTextStruct2 *unk40;
|
||||
struct UnkTextStruct2 unk44[4];
|
||||
u8 unkA4[4];
|
||||
};
|
||||
|
||||
struct unkStruct_203B2F0
|
||||
{
|
||||
// size: 0x1FC
|
||||
u32 unk0;
|
||||
u32 state;
|
||||
u8 unk8[0xC - 0x8];
|
||||
u8 unkC;
|
||||
u8 fillD[0x10 - 0xD];
|
||||
u32 unk10;
|
||||
u8 fill14[0x68 - 0x14];
|
||||
u32 unk68;
|
||||
u8 fill6C[0xBC - 0x6C];
|
||||
u8 unkBC[0x10C - 0xBC];
|
||||
struct MenuItem unk10C[8];
|
||||
struct MenuItem unk14C[8];
|
||||
u8 fill18C[0x19C - 0x18C];
|
||||
struct UnkTextStruct2 unk19C[4];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B2F0 *gUnknown_203B2F0;
|
||||
extern struct unkStruct_203B2E8* gUnknown_203B2E8;
|
||||
extern struct unkStruct_203B2E8* gUnknown_203B2E0;
|
||||
|
||||
u16 gUnknown_203B2EC;
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80DFCE4;
|
||||
extern struct UnkTextStruct2 gUnknown_80DFCFC;
|
||||
extern struct UnkTextStruct2 gUnknown_80DFD40;
|
||||
extern struct UnkTextStruct2 gUnknown_80DFD58;
|
||||
extern struct UnkTextStruct2 gUnknown_80DFD28;
|
||||
extern u8 gUnknown_80DFD14[];
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_802CAA4(void);
|
||||
extern u8 IsJobSlotEmpty(u8);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void sub_80073E0(u32);
|
||||
extern struct WonderMail* GetJobSlotInfo(u8);
|
||||
extern s32 sub_8013800(void *, u32);
|
||||
extern void sub_803B35C(void *, u32 *);
|
||||
extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32);
|
||||
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
|
||||
extern void sub_803B6D4(u32 *);
|
||||
|
||||
extern void sub_8013984(u32 *);
|
||||
extern void sub_802C6DC(void);
|
||||
extern void sub_802C750(void);
|
||||
extern void AddMenuCursorSprite(u32 *);
|
||||
extern u8 sub_80138B8(void *, u32);
|
||||
extern s32 GetKeyPress(void *);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern void sub_8013660(void *);
|
||||
extern void sub_8013848(u32 *, s32, u32, u32);
|
||||
extern void sub_8012D34(struct UnkTextStruct2 *, u32);
|
||||
extern bool8 sub_809658C(u8);
|
||||
extern void sub_802C910(u32);
|
||||
extern void sub_802CC00(void);
|
||||
extern void sub_802CC70(void);
|
||||
extern void sub_802CD38(void);
|
||||
extern void sub_802CDB8(void);
|
||||
extern void sub_802C928(void);
|
||||
extern void sub_802C9D8(void);
|
||||
extern void sub_8012D60(u8 *, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern void sub_802DE84(u32 *);
|
||||
extern void sub_8012EA4(u8 *, u32);
|
||||
extern void sub_802CBAC(void);
|
||||
|
||||
s32 CountAcceptedJobs(void);
|
||||
bool8 HasNoAcceptedJobs(void);
|
||||
|
||||
s32 sub_802C474(void)
|
||||
{
|
||||
s32 index;
|
||||
s32 counter = 0;
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
if(!sub_809658C(index))
|
||||
{
|
||||
gUnknown_203B2E0->unk0[counter] = index;
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
|
||||
bool8 sub_802C4A4(void)
|
||||
{
|
||||
s32 index;
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
if(!sub_809658C(index))
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_802C4C8(int param_1,struct UnkTextStruct2_sub *param_2,u32 param_3)
|
||||
{
|
||||
if (HasNoAcceptedJobs()) {
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E8),8);
|
||||
gUnknown_203B2E8->unk3C = param_1;
|
||||
gUnknown_203B2E8->unk40 = &gUnknown_203B2E8->unk44[param_1];
|
||||
sub_8006518(gUnknown_203B2E8->unk44);
|
||||
|
||||
gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = gUnknown_80DFCFC;
|
||||
|
||||
gUnknown_203B2E8->unk40->unk14 = gUnknown_203B2E8->unkA4;
|
||||
if (param_2 != NULL) {
|
||||
gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C].unk08 = *param_2;
|
||||
}
|
||||
sub_8012D34(gUnknown_203B2E8->unk40,param_3);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2E8->unk44,1,1);
|
||||
sub_8013848(&gUnknown_203B2E8->unk8,CountAcceptedJobs(),param_3,param_1);
|
||||
gUnknown_203B2E8->unk20 = gUnknown_203B2EC;
|
||||
sub_8013984(&gUnknown_203B2E8->unk8);
|
||||
sub_802C6DC();
|
||||
sub_802C750();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_802C598(u8 param_1)
|
||||
{
|
||||
if (param_1 == '\0') {
|
||||
sub_8013660(&gUnknown_203B2E8->unk8);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
switch(GetKeyPress(&gUnknown_203B2E8->unk8))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 4:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
break;
|
||||
}
|
||||
if (sub_80138B8(&gUnknown_203B2E8->unk8, 1) != '\0') {
|
||||
sub_802C6DC();
|
||||
sub_802C750();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_802C620(void)
|
||||
{
|
||||
return gUnknown_203B2E8->unk0[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + gUnknown_203B2E8->unk20];
|
||||
}
|
||||
|
||||
void sub_802C640(u32 r0)
|
||||
{
|
||||
u8 r0_u8;
|
||||
r0_u8 = r0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2E8->unk44, 0, 0);
|
||||
gUnknown_203B2E8->unk2A = CountAcceptedJobs();
|
||||
sub_8013984(&gUnknown_203B2E8->unk8);
|
||||
sub_802C6DC();
|
||||
sub_802C750();
|
||||
if(r0_u8)
|
||||
AddMenuCursorSprite(&gUnknown_203B2E8->unk8);
|
||||
}
|
||||
|
||||
void sub_802C688(void)
|
||||
{
|
||||
if(gUnknown_203B2E8 != NULL)
|
||||
{
|
||||
gUnknown_203B2EC = gUnknown_203B2E8->unk20;
|
||||
gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = gUnknown_80DFCE4;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2E8->unk44, 1, 1);
|
||||
MemoryFree(gUnknown_203B2E8);
|
||||
gUnknown_203B2E8 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_802C6DC(void)
|
||||
{
|
||||
asm_unified("\tpush {r4,lr}\n"
|
||||
"\tldr r4, _0802C74C\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x28]\n"
|
||||
"\tadds r0, 0xA4\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x26]\n"
|
||||
"\tadds r0, 0xA5\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xA6\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xA7\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x22\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0x18\n"
|
||||
"\tbl sub_8009614\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x3C]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x52\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x3C]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x54\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x44\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"
|
||||
"_0802C74C: .4byte gUnknown_203B2E8");
|
||||
|
||||
}
|
||||
|
||||
void sub_802C750(void)
|
||||
{
|
||||
struct WonderMail *uVar1;
|
||||
int iVar2;
|
||||
s32 r4;
|
||||
s32 r5;
|
||||
u32 auStack104 [18];
|
||||
u32 uStack32[4];
|
||||
|
||||
sub_8008C54(gUnknown_203B2E8->unk3C);
|
||||
sub_80073B8(gUnknown_203B2E8->unk3C);
|
||||
r4 = gUnknown_203B2E8->unk26 * 8;
|
||||
r5 = r4;
|
||||
r5 += 10;
|
||||
xxx_call_draw_string(r5,0,gUnknown_80DFD14,gUnknown_203B2E8->unk3C,0); // "Job List"
|
||||
r4 += 4;
|
||||
r5 = r4 + gUnknown_203B2E8->unkA4[2] * 8;
|
||||
sub_8012BC4(r5,0,gUnknown_203B2E8->unk26 + 1,2,7,gUnknown_203B2E8->unk3C);
|
||||
iVar2 = 0;
|
||||
|
||||
if(( iVar2 < gUnknown_203B2E8->unk22))
|
||||
do
|
||||
{
|
||||
uVar1 = GetJobSlotInfo(gUnknown_203B2E8->unk0[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + iVar2]);
|
||||
auStack104[0] = gUnknown_203B2E8->unk3C;
|
||||
uStack32[0] = sub_8013800(&gUnknown_203B2E8->unk8,iVar2);
|
||||
sub_803B35C(uVar1,auStack104);
|
||||
sub_803B6D4(auStack104);
|
||||
iVar2++;
|
||||
} while( iVar2 < gUnknown_203B2E8->unk22);
|
||||
sub_80073E0(gUnknown_203B2E8->unk3C);
|
||||
}
|
||||
|
||||
s32 CountAcceptedJobs(void)
|
||||
{
|
||||
s32 index;
|
||||
s32 counter = 0;
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
if(!IsJobSlotEmpty(index))
|
||||
{
|
||||
gUnknown_203B2E8->unk0[counter] = index;
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
|
||||
bool8 HasNoAcceptedJobs(void)
|
||||
{
|
||||
s32 index;
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
if(!IsJobSlotEmpty(index))
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_802C860(u32 r0)
|
||||
{
|
||||
if(HasNoAcceptedJobs())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B2F0 = MemoryAlloc(sizeof(struct unkStruct_203B2F0), 0x8);
|
||||
gUnknown_203B2F0->unk68 = 0;
|
||||
gUnknown_203B2F0->unk0 = r0;
|
||||
sub_802C910(0);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_802C898(void)
|
||||
{
|
||||
switch(gUnknown_203B2F0->state)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
sub_802CC00();
|
||||
break;
|
||||
case 2:
|
||||
sub_802CC70();
|
||||
break;
|
||||
case 3:
|
||||
sub_802CD38();
|
||||
break;
|
||||
case 4:
|
||||
sub_802CDB8();
|
||||
break;
|
||||
case 5:
|
||||
default:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_802C8F4(void)
|
||||
{
|
||||
if(gUnknown_203B2F0 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B2F0);
|
||||
gUnknown_203B2F0 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802C910(u32 newState)
|
||||
{
|
||||
gUnknown_203B2F0->state = newState;
|
||||
sub_802C928();
|
||||
sub_802C9D8();
|
||||
}
|
||||
|
||||
void sub_802C928(void)
|
||||
{
|
||||
s32 index;
|
||||
sub_8006518(gUnknown_203B2F0->unk19C);
|
||||
switch(gUnknown_203B2F0->state)
|
||||
{
|
||||
case 2:
|
||||
sub_802CAA4();
|
||||
gUnknown_203B2F0->unk19C[2] = gUnknown_80DFD40;
|
||||
sub_8012CAC(&gUnknown_203B2F0->unk19C[2], gUnknown_203B2F0->unk10C);
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B2F0->unk19C[3] = gUnknown_80DFD58;
|
||||
break;
|
||||
default:
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B2F0->unk19C[index] = gUnknown_80DFD28;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2F0->unk19C, 1, 1);
|
||||
}
|
||||
|
||||
void sub_802C9D8(void)
|
||||
{
|
||||
switch(gUnknown_203B2F0->state)
|
||||
{
|
||||
case 0:
|
||||
sub_802C4C8(0, 0, 4);
|
||||
break;
|
||||
case 1:
|
||||
sub_802C640(1);
|
||||
break;
|
||||
case 2:
|
||||
sub_802C750();
|
||||
sub_8012D60(gUnknown_203B2F0->fill6C, gUnknown_203B2F0->unk10C, 0, 0, gUnknown_203B2F0->unk68, 2);
|
||||
break;
|
||||
case 3:
|
||||
sub_802CBAC();
|
||||
sub_802C750();
|
||||
sub_8012EA4(gUnknown_203B2F0->fill6C, 0);
|
||||
sub_8012D60(gUnknown_203B2F0->unkBC, gUnknown_203B2F0->unk14C, 0, 0, 6, 3);
|
||||
break;
|
||||
case 4:
|
||||
sub_803B35C(GetJobSlotInfo(gUnknown_203B2F0->unkC), &gUnknown_203B2F0->unk10);
|
||||
gUnknown_203B2F0->unk10 = 3;
|
||||
sub_802DE84(&gUnknown_203B2F0->unk10);
|
||||
break;
|
||||
case 5:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -208,128 +208,119 @@ void sub_802D2A8(void)
|
|||
{
|
||||
|
||||
switch(gUnknown_203B2F8->state) {
|
||||
case 0:
|
||||
if (sub_80968B0(gUnknown_203B2F8->unkC) != 0) {
|
||||
sub_802D1A0(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sub_8096F50(gUnknown_203B2F8->unkC) != 0) {
|
||||
sub_802D1A0(4);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) && (sub_8096C08(&gUnknown_203B2F8->unk10) != 0)) {
|
||||
if (sub_802DAA8() != 0) {
|
||||
sub_802D1A0(9);
|
||||
}
|
||||
else {
|
||||
sub_802D1A0(5);
|
||||
}
|
||||
case 0:
|
||||
if (sub_80968B0(gUnknown_203B2F8->unkC) != 0) {
|
||||
sub_802D1A0(3);
|
||||
}
|
||||
else {
|
||||
if (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) {
|
||||
else if (sub_8096F50(gUnknown_203B2F8->unkC) != 0) {
|
||||
sub_802D1A0(4);
|
||||
}
|
||||
else if ((gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) && (sub_8096C08(&gUnknown_203B2F8->unk10) != 0)) {
|
||||
if (sub_802DAA8() != 0) {
|
||||
sub_802D1A0(9);
|
||||
}
|
||||
else {
|
||||
sub_802D1A0(5);
|
||||
}
|
||||
}
|
||||
else if (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) {
|
||||
if (sub_802DADC() != 0) {
|
||||
sub_802D1A0(10);
|
||||
}
|
||||
else {
|
||||
sub_802D1A0(6);
|
||||
sub_802D1A0(6);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_802D1A0(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
sub_802D73C();
|
||||
sub_8014248(gUnknown_80DFE4C,0,gUnknown_203B2F8->unk70,gUnknown_203B2F8->unk158,0,4,0,0,0);
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80DFE9C,0,0,0x101);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80DFED0,0,0,0x101);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80DFF2C,0,0,0x101);
|
||||
break;
|
||||
case 6:
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80DFFA4,0,0,0x101);
|
||||
break;
|
||||
case 7:
|
||||
gUnknown_203B2F8->unk4 = 0xc;
|
||||
sub_80141B4(gUnknown_80E0010,0,0,0x101);
|
||||
break;
|
||||
case 8:
|
||||
gUnknown_203B2F8->unk8 = 1;
|
||||
sub_8096A78(gUnknown_203B2F8->unkC);
|
||||
sub_8096C80();
|
||||
sub_8096D24();
|
||||
if (gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) {
|
||||
MemoryCopy8(sub_8096DD8(),gUnknown_203B2F8->unkC->unk14,0x28);
|
||||
MemoryCopy8(sub_8096DE8(),gUnknown_203B2F8->unkC->unk18,0x78);
|
||||
}
|
||||
switch(gUnknown_203B2F8->unkC->wonderMail.dungeon)
|
||||
{
|
||||
// NOTE: subtract 1 from each of the case as the input??
|
||||
case DUNGEON_ODDITY_CAVE: // 0x2B
|
||||
sub_8097418(0x2A, 1);
|
||||
break;
|
||||
case DUNGEON_REMAINS_ISLAND:
|
||||
sub_8097418(0x2B, 1);
|
||||
break;
|
||||
case DUNGEON_MARVELOUS_SEA:
|
||||
sub_8097418(0x2C, 1);
|
||||
break;
|
||||
case DUNGEON_FANTASY_STRAIT: // 0x2E
|
||||
sub_8097418(0x2D, 1);
|
||||
break;
|
||||
}
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80E0074,0,0,0x101);
|
||||
break;
|
||||
case 9:
|
||||
sub_802D690();
|
||||
sub_8014248(gUnknown_80E0094,0,gUnknown_203B2F8->unk74,gUnknown_203B2F8->unk158,0,4,0,0,0);
|
||||
break;
|
||||
case 10:
|
||||
gUnknown_203B2F8->unk4 = 0xb;
|
||||
sub_80141B4(gUnknown_80E0108,0,0,0x101);
|
||||
break;
|
||||
case 0xb:
|
||||
sub_802C4C8(0,0,4);
|
||||
break;
|
||||
case 0xc:
|
||||
sub_802C640(1);
|
||||
break;
|
||||
case 0xd:
|
||||
sub_802C750();
|
||||
sub_8012D60(gUnknown_203B2F8->unk78,gUnknown_203B2F8->unk118,0,gUnknown_203B2F8->unk198,
|
||||
gUnknown_203B2F8->unk6C,2);
|
||||
break;
|
||||
case 0xe:
|
||||
sub_802C750();
|
||||
sub_8012EA4(gUnknown_203B2F8->unk78,0);
|
||||
sub_8012D60(gUnknown_203B2F8->unkC8,gUnknown_203B2F8->unk158,0,0,4,3);
|
||||
break;
|
||||
case 0xf:
|
||||
sub_803B35C(GetJobSlotInfo(gUnknown_203B2F8->unk10),&gUnknown_203B2F8->unk14);
|
||||
gUnknown_203B2F8->unk14 = 3;
|
||||
sub_802DE84(&gUnknown_203B2F8->unk14);
|
||||
break;
|
||||
case 0x10:
|
||||
sub_803B35C(gUnknown_203B2F8->unkC,&gUnknown_203B2F8->unk14);
|
||||
gUnknown_203B2F8->unk14 = 3;
|
||||
gUnknown_203B2F8->unk58 = 0;
|
||||
gUnknown_203B2F8->unk64 = gUnknown_203B2F8->unkC->unk18;
|
||||
sub_802DE84(&gUnknown_203B2F8->unk14);
|
||||
else
|
||||
sub_802D1A0(8);
|
||||
break;
|
||||
case 1:
|
||||
sub_802D73C();
|
||||
sub_8014248(gUnknown_80DFE4C,0,gUnknown_203B2F8->unk70,gUnknown_203B2F8->unk158,0,4,0,0,0);
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80DFE9C,0,0,0x101);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80DFED0,0,0,0x101);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80DFF2C,0,0,0x101);
|
||||
break;
|
||||
case 6:
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80DFFA4,0,0,0x101);
|
||||
break;
|
||||
case 7:
|
||||
gUnknown_203B2F8->unk4 = 0xc;
|
||||
sub_80141B4(gUnknown_80E0010,0,0,0x101);
|
||||
break;
|
||||
case 8:
|
||||
gUnknown_203B2F8->unk8 = 1;
|
||||
sub_8096A78(gUnknown_203B2F8->unkC);
|
||||
sub_8096C80();
|
||||
sub_8096D24();
|
||||
if (gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) {
|
||||
MemoryCopy8(sub_8096DD8(),gUnknown_203B2F8->unkC->unk14,0x28);
|
||||
MemoryCopy8(sub_8096DE8(),gUnknown_203B2F8->unkC->unk18,0x78);
|
||||
}
|
||||
switch(gUnknown_203B2F8->unkC->wonderMail.dungeon)
|
||||
{
|
||||
// NOTE: subtract 1 from each of the case as the input??
|
||||
case DUNGEON_ODDITY_CAVE: // 0x2B
|
||||
sub_8097418(0x2A, 1);
|
||||
break;
|
||||
case DUNGEON_REMAINS_ISLAND:
|
||||
sub_8097418(0x2B, 1);
|
||||
break;
|
||||
case DUNGEON_MARVELOUS_SEA:
|
||||
sub_8097418(0x2C, 1);
|
||||
break;
|
||||
case DUNGEON_FANTASY_STRAIT: // 0x2E
|
||||
sub_8097418(0x2D, 1);
|
||||
break;
|
||||
}
|
||||
gUnknown_203B2F8->unk4 = 2;
|
||||
sub_80141B4(gUnknown_80E0074,0,0,0x101);
|
||||
break;
|
||||
case 9:
|
||||
sub_802D690();
|
||||
sub_8014248(gUnknown_80E0094,0,gUnknown_203B2F8->unk74,gUnknown_203B2F8->unk158,0,4,0,0,0);
|
||||
break;
|
||||
case 10:
|
||||
gUnknown_203B2F8->unk4 = 0xb;
|
||||
sub_80141B4(gUnknown_80E0108,0,0,0x101);
|
||||
break;
|
||||
case 0xb:
|
||||
sub_802C4C8(0,0,4);
|
||||
break;
|
||||
case 0xc:
|
||||
sub_802C640(1);
|
||||
break;
|
||||
case 0xd:
|
||||
sub_802C750();
|
||||
sub_8012D60(gUnknown_203B2F8->unk78,gUnknown_203B2F8->unk118,0,gUnknown_203B2F8->unk198,
|
||||
gUnknown_203B2F8->unk6C,2);
|
||||
break;
|
||||
case 0xe:
|
||||
sub_802C750();
|
||||
sub_8012EA4(gUnknown_203B2F8->unk78,0);
|
||||
sub_8012D60(gUnknown_203B2F8->unkC8,gUnknown_203B2F8->unk158,0,0,4,3);
|
||||
break;
|
||||
case 0xf:
|
||||
sub_803B35C(GetJobSlotInfo(gUnknown_203B2F8->unk10),&gUnknown_203B2F8->unk14);
|
||||
gUnknown_203B2F8->unk14 = 3;
|
||||
sub_802DE84(&gUnknown_203B2F8->unk14);
|
||||
break;
|
||||
case 0x10:
|
||||
sub_803B35C(gUnknown_203B2F8->unkC,&gUnknown_203B2F8->unk14);
|
||||
gUnknown_203B2F8->unk14 = 3;
|
||||
gUnknown_203B2F8->unk58 = 0;
|
||||
gUnknown_203B2F8->unk64 = gUnknown_203B2F8->unkC->unk18;
|
||||
sub_802DE84(&gUnknown_203B2F8->unk14);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user