mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 23:17:03 -05:00
commit
089bd48186
|
|
@ -5,750 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8012BC4
|
||||
sub_8012BC4:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x24
|
||||
mov r10, r0
|
||||
mov r9, r1
|
||||
adds r1, r2, 0
|
||||
adds r7, r3, 0
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
add r0, sp, 0x4
|
||||
adds r2, r7, 0
|
||||
bl ConvertToDecimal
|
||||
subs r5, r7, 0x1
|
||||
cmp r5, 0
|
||||
ble _08012C0A
|
||||
lsls r0, r5, 2
|
||||
mov r1, sp
|
||||
adds r1, r0
|
||||
adds r1, 0x4
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08012C0A
|
||||
movs r2, 0xFF
|
||||
_08012BFA:
|
||||
str r2, [r1]
|
||||
subs r1, 0x4
|
||||
subs r5, 0x1
|
||||
cmp r5, 0
|
||||
ble _08012C0A
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _08012BFA
|
||||
_08012C0A:
|
||||
movs r5, 0
|
||||
cmp r5, r7
|
||||
bge _08012C50
|
||||
ldr r0, [sp, 0x4]
|
||||
cmp r0, 0xFF
|
||||
beq _08012C50
|
||||
add r6, sp, 0x4
|
||||
_08012C18:
|
||||
ldm r6!, {r0}
|
||||
adds r0, 0x30
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl ReturnIntFromChar2
|
||||
adds r4, r0, 0
|
||||
bl GetCharacter
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r0, r1]
|
||||
add r8, r0
|
||||
mov r2, r10
|
||||
mov r1, r8
|
||||
subs r0, r2, r1
|
||||
ldr r2, [sp, 0x48]
|
||||
str r2, [sp]
|
||||
mov r1, r9
|
||||
adds r2, r4, 0
|
||||
ldr r3, [sp, 0x44]
|
||||
bl xxx_call_draw_char
|
||||
adds r5, 0x1
|
||||
cmp r5, r7
|
||||
bge _08012C50
|
||||
ldr r0, [r6]
|
||||
cmp r0, 0xFF
|
||||
bne _08012C18
|
||||
_08012C50:
|
||||
add sp, 0x24
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012BC4
|
||||
|
||||
thumb_func_start sub_8012C60
|
||||
sub_8012C60:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x4
|
||||
adds r5, r0, 0
|
||||
adds r6, r1, 0
|
||||
adds r0, r2, 0
|
||||
adds r7, r3, 0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl ReturnIntFromChar2
|
||||
adds r4, r0, 0
|
||||
bl GetCharacter
|
||||
adds r1, r0, 0
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0xB
|
||||
bgt _08012C90
|
||||
movs r1, 0xC
|
||||
subs r1, r0
|
||||
lsrs r0, r1, 31
|
||||
adds r1, r0
|
||||
asrs r0, r1, 1
|
||||
b _08012C92
|
||||
_08012C90:
|
||||
movs r0, 0
|
||||
_08012C92:
|
||||
adds r0, r5, r0
|
||||
ldr r1, [sp, 0x18]
|
||||
str r1, [sp]
|
||||
adds r1, r6, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_call_draw_char
|
||||
add sp, 0x4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012C60
|
||||
|
||||
thumb_func_start sub_8012CAC
|
||||
sub_8012CAC:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r4, r1, 0
|
||||
movs r7, 0
|
||||
movs r6, 0
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08012CE6
|
||||
movs r5, 0x80
|
||||
lsls r5, 9
|
||||
_08012CC4:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r5, r1
|
||||
asrs r7, r0, 16
|
||||
ldr r0, [r4]
|
||||
bl sub_8008ED0
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, r6
|
||||
ble _08012CDE
|
||||
adds r6, r0, 0
|
||||
_08012CDE:
|
||||
adds r4, 0x8
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _08012CC4
|
||||
_08012CE6:
|
||||
adds r0, r6, 0
|
||||
cmp r0, 0
|
||||
bge _08012CEE
|
||||
adds r0, 0x7
|
||||
_08012CEE:
|
||||
asrs r0, 3
|
||||
adds r0, 0x2
|
||||
mov r1, r8
|
||||
strh r0, [r1, 0xC]
|
||||
mov r0, r8
|
||||
adds r1, r7, 0
|
||||
bl sub_8012D08
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012CAC
|
||||
|
||||
thumb_func_start sub_8012D08
|
||||
sub_8012D08:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
adds r0, r1, 0
|
||||
movs r1, 0xC
|
||||
bl sub_80095E4
|
||||
lsls r0, 16
|
||||
asrs r1, r0, 16
|
||||
ldr r0, [r4, 0x4]
|
||||
cmp r0, 0x6
|
||||
bne _08012D24
|
||||
adds r0, r1, 0x2
|
||||
lsls r0, 16
|
||||
asrs r1, r0, 16
|
||||
_08012D24:
|
||||
lsls r0, r1, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r4, 0xE]
|
||||
strh r0, [r4, 0x10]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012D08
|
||||
|
||||
thumb_func_start sub_8012D34
|
||||
sub_8012D34:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
adds r0, r1, 0
|
||||
movs r1, 0x18
|
||||
bl sub_8009614
|
||||
lsls r0, 16
|
||||
asrs r1, r0, 16
|
||||
ldr r0, [r4, 0x4]
|
||||
cmp r0, 0x6
|
||||
bne _08012D50
|
||||
adds r0, r1, 0x2
|
||||
lsls r0, 16
|
||||
asrs r1, r0, 16
|
||||
_08012D50:
|
||||
lsls r0, r1, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r4, 0xE]
|
||||
strh r0, [r4, 0x10]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012D34
|
||||
|
||||
thumb_func_start sub_8012D60
|
||||
sub_8012D60:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
adds r4, r0, 0
|
||||
adds r5, r3, 0
|
||||
ldr r7, [sp, 0x20]
|
||||
movs r3, 0
|
||||
movs r6, 0x1
|
||||
negs r6, r6
|
||||
mov r12, r3
|
||||
ldr r0, [sp, 0x24]
|
||||
str r0, [r4, 0x10]
|
||||
str r1, [r4, 0x4]
|
||||
str r2, [r4, 0x8]
|
||||
cmp r2, 0
|
||||
bne _08012D88
|
||||
ldr r0, _08012E00
|
||||
str r0, [r4, 0x8]
|
||||
_08012D88:
|
||||
str r5, [r4, 0xC]
|
||||
ldr r0, [r1]
|
||||
adds r5, r4, 0
|
||||
adds r5, 0x14
|
||||
movs r2, 0x4C
|
||||
adds r2, r4
|
||||
mov r8, r2
|
||||
movs r2, 0x4D
|
||||
adds r2, r4
|
||||
mov r9, r2
|
||||
movs r2, 0x4E
|
||||
adds r2, r4
|
||||
mov r10, r2
|
||||
cmp r0, 0
|
||||
beq _08012DC6
|
||||
_08012DA6:
|
||||
cmp r7, 0
|
||||
blt _08012DB2
|
||||
ldr r0, [r1, 0x4]
|
||||
cmp r7, r0
|
||||
bne _08012DB2
|
||||
adds r6, r3, 0
|
||||
_08012DB2:
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2A
|
||||
bne _08012DBC
|
||||
mov r12, r3
|
||||
_08012DBC:
|
||||
adds r1, 0x8
|
||||
adds r3, 0x1
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08012DA6
|
||||
_08012DC6:
|
||||
cmp r6, 0
|
||||
bge _08012DCC
|
||||
mov r6, r12
|
||||
_08012DCC:
|
||||
adds r0, r5, 0
|
||||
adds r1, r3, 0
|
||||
ldr r2, [sp, 0x24]
|
||||
bl sub_8013134
|
||||
strh r6, [r4, 0x2C]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0
|
||||
bl sub_80137B0
|
||||
movs r0, 0x1
|
||||
mov r1, r8
|
||||
strb r0, [r1]
|
||||
mov r2, r9
|
||||
strb r0, [r2]
|
||||
mov r1, r10
|
||||
strb r0, [r1]
|
||||
subs r0, 0x2
|
||||
str r0, [r4, 0x48]
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08012E00: .4byte gUnknown_80D47B8
|
||||
thumb_func_end sub_8012D60
|
||||
|
||||
thumb_func_start sub_8012E04
|
||||
sub_8012E04:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
adds r5, r0, 0
|
||||
adds r7, r1, 0
|
||||
mov r8, r2
|
||||
mov r9, r3
|
||||
ldr r3, [sp, 0x1C]
|
||||
movs r1, 0
|
||||
movs r6, 0x1
|
||||
negs r6, r6
|
||||
movs r4, 0
|
||||
ldr r0, [r7]
|
||||
cmp r0, 0
|
||||
beq _08012E46
|
||||
adds r2, r7, 0
|
||||
_08012E26:
|
||||
cmp r3, 0
|
||||
blt _08012E32
|
||||
ldr r0, [r2, 0x4]
|
||||
cmp r3, r0
|
||||
bne _08012E32
|
||||
adds r6, r1, 0
|
||||
_08012E32:
|
||||
ldr r0, [r2]
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2A
|
||||
bne _08012E3C
|
||||
adds r4, r1, 0
|
||||
_08012E3C:
|
||||
adds r2, 0x8
|
||||
adds r1, 0x1
|
||||
ldr r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _08012E26
|
||||
_08012E46:
|
||||
cmp r6, 0
|
||||
bge _08012E4C
|
||||
adds r6, r4, 0
|
||||
_08012E4C:
|
||||
adds r4, r5, 0
|
||||
adds r4, 0x14
|
||||
adds r0, r4, 0
|
||||
ldr r2, [sp, 0x20]
|
||||
bl sub_8013134
|
||||
strh r6, [r5, 0x2C]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_80137B0
|
||||
ldr r0, [sp, 0x20]
|
||||
str r0, [r5, 0x10]
|
||||
mov r0, r8
|
||||
str r0, [r5, 0x8]
|
||||
cmp r0, 0
|
||||
bne _08012E72
|
||||
ldr r0, _08012EA0
|
||||
str r0, [r5, 0x8]
|
||||
_08012E72:
|
||||
mov r0, r9
|
||||
str r0, [r5, 0xC]
|
||||
str r7, [r5, 0x4]
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x4E
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x4C
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
adds r0, 0x1
|
||||
strb r1, [r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r0, [r5, 0x48]
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08012EA0: .4byte gUnknown_80D47B8
|
||||
thumb_func_end sub_8012E04
|
||||
|
||||
thumb_func_start sub_8012EA4
|
||||
sub_8012EA4:
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x4C
|
||||
strb r1, [r2]
|
||||
adds r2, 0x1
|
||||
movs r1, 0x1
|
||||
strb r1, [r2]
|
||||
bl sub_8012EBC
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012EA4
|
||||
|
||||
thumb_func_start sub_8012EBC
|
||||
sub_8012EBC:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x164
|
||||
adds r5, r0, 0
|
||||
movs r0, 0x4D
|
||||
adds r0, r5
|
||||
mov r8, r0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08012F9E
|
||||
ldr r0, [r5, 0x10]
|
||||
bl sub_80073B8
|
||||
ldr r2, [r5, 0x10]
|
||||
lsls r0, r2, 3
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
ldr r1, _08012F54
|
||||
adds r0, r1
|
||||
ldr r0, [r0, 0xC]
|
||||
cmp r0, 0x6
|
||||
bne _08012F24
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
mov r4, sp
|
||||
adds r4, r0
|
||||
adds r4, 0x4
|
||||
add r0, sp, 0x4
|
||||
bl sub_8006518
|
||||
ldr r0, [r5]
|
||||
bl sub_8008ED0
|
||||
adds r1, r0, 0
|
||||
ldr r0, [r4, 0x14]
|
||||
ldrb r0, [r0, 0x2]
|
||||
lsls r0, 3
|
||||
subs r0, r1
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
adds r0, 0x8
|
||||
ldr r2, [r5]
|
||||
ldr r3, [r5, 0x10]
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
bl xxx_format_and_draw
|
||||
_08012F24:
|
||||
ldr r7, [r5, 0x8]
|
||||
ldr r4, [r5, 0x4]
|
||||
ldr r6, [r5, 0xC]
|
||||
movs r1, 0
|
||||
mov r9, r1
|
||||
ldr r0, [r4]
|
||||
mov r10, r8
|
||||
cmp r0, 0
|
||||
beq _08012F92
|
||||
add r0, sp, 0x64
|
||||
mov r8, r0
|
||||
_08012F3A:
|
||||
ldr r3, [r4]
|
||||
ldrb r0, [r3]
|
||||
cmp r0, 0x2A
|
||||
bne _08012F44
|
||||
adds r3, 0x1
|
||||
_08012F44:
|
||||
cmp r6, 0
|
||||
beq _08012F58
|
||||
ldrh r0, [r6]
|
||||
lsls r0, 2
|
||||
adds r0, r7
|
||||
ldr r2, [r0]
|
||||
adds r6, 0x2
|
||||
b _08012F64
|
||||
.align 2, 0
|
||||
_08012F54: .4byte gUnknown_2027370
|
||||
_08012F58:
|
||||
ldr r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
bge _08012F62
|
||||
ldr r2, [r7, 0x4]
|
||||
b _08012F64
|
||||
_08012F62:
|
||||
ldr r2, [r7]
|
||||
_08012F64:
|
||||
mov r0, r8
|
||||
ldr r1, _08012FBC
|
||||
bl sprintfStatic
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x14
|
||||
mov r1, r9
|
||||
bl sub_8013800
|
||||
adds r1, r0, 0
|
||||
ldr r3, [r5, 0x10]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
mov r2, r8
|
||||
bl xxx_format_and_draw
|
||||
adds r4, 0x8
|
||||
movs r1, 0x1
|
||||
add r9, r1
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _08012F3A
|
||||
_08012F92:
|
||||
ldr r0, [r5, 0x10]
|
||||
bl sub_80073E0
|
||||
movs r0, 0
|
||||
mov r1, r10
|
||||
strb r0, [r1]
|
||||
_08012F9E:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x4E
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08012FC8
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x4C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08012FC0
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x14
|
||||
bl AddMenuCursorSprite
|
||||
b _08012FC8
|
||||
.align 2, 0
|
||||
_08012FBC: .4byte gUnknown_80D4828
|
||||
_08012FC0:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x14
|
||||
bl sub_8013660
|
||||
_08012FC8:
|
||||
add sp, 0x164
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012EBC
|
||||
|
||||
thumb_func_start sub_8012FD8
|
||||
sub_8012FD8:
|
||||
push {r4-r7,lr}
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x2C
|
||||
ldrsh r7, [r4, r0]
|
||||
adds r6, r4, 0
|
||||
adds r6, 0x4C
|
||||
ldrb r0, [r6]
|
||||
cmp r0, 0
|
||||
beq _08013094
|
||||
adds r5, r4, 0
|
||||
adds r5, 0x14
|
||||
adds r0, r5, 0
|
||||
bl GetKeyPress
|
||||
cmp r0, 0x2
|
||||
beq _08013078
|
||||
cmp r0, 0x2
|
||||
bgt _08013002
|
||||
cmp r0, 0x1
|
||||
beq _08013028
|
||||
b _08013094
|
||||
_08013002:
|
||||
cmp r0, 0x7
|
||||
beq _08013012
|
||||
cmp r0, 0x8
|
||||
bne _08013094
|
||||
adds r0, r5, 0
|
||||
bl MoveMenuCursorDown
|
||||
b _08013018
|
||||
_08013012:
|
||||
adds r0, r5, 0
|
||||
bl MoveMenuCursorUp
|
||||
_08013018:
|
||||
movs r1, 0x2C
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r7, r0
|
||||
beq _08013094
|
||||
movs r0, 0x3
|
||||
bl PlayMenuSoundEffect
|
||||
b _08013094
|
||||
_08013028:
|
||||
adds r0, r5, 0
|
||||
bl sub_80137A8
|
||||
adds r2, r0, 0
|
||||
lsls r1, r2, 3
|
||||
ldr r0, [r4, 0x4]
|
||||
adds r0, r1
|
||||
ldr r3, [r0, 0x4]
|
||||
cmp r3, 0
|
||||
blt _08013068
|
||||
ldr r1, [r4, 0xC]
|
||||
cmp r1, 0
|
||||
beq _0801304C
|
||||
lsls r0, r2, 1
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _08013068
|
||||
_0801304C:
|
||||
str r3, [r4, 0x48]
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x4C
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
strh r0, [r4, 0x38]
|
||||
ldr r1, [r4, 0xC]
|
||||
cmp r1, 0
|
||||
beq _08013070
|
||||
lsls r0, r2, 1
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x2
|
||||
bne _08013070
|
||||
_08013068:
|
||||
movs r0, 0x2
|
||||
bl PlayMenuSoundEffect
|
||||
b _08013094
|
||||
_08013070:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
b _08013094
|
||||
_08013078:
|
||||
movs r1, 0x2E
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, [r4, 0x4]
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
blt _08013094
|
||||
str r0, [r4, 0x48]
|
||||
movs r0, 0
|
||||
strb r0, [r6]
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
_08013094:
|
||||
adds r0, r4, 0
|
||||
bl sub_8012EBC
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x4C
|
||||
ldrb r0, [r0]
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8012FD8
|
||||
|
||||
thumb_func_start sub_80130A8
|
||||
sub_80130A8:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
adds r6, r4, 0
|
||||
adds r6, 0x4C
|
||||
ldrb r0, [r6]
|
||||
cmp r0, 0
|
||||
beq _08013100
|
||||
adds r5, r4, 0
|
||||
adds r5, 0x14
|
||||
adds r0, r5, 0
|
||||
bl GetKeyPress
|
||||
cmp r0, 0x1
|
||||
beq _080130CA
|
||||
cmp r0, 0x2
|
||||
beq _080130E6
|
||||
b _08013100
|
||||
_080130CA:
|
||||
adds r0, r5, 0
|
||||
bl sub_80137A8
|
||||
lsls r0, 3
|
||||
ldr r1, [r4, 0x4]
|
||||
adds r1, r0
|
||||
ldr r0, [r1, 0x4]
|
||||
str r0, [r4, 0x48]
|
||||
movs r0, 0
|
||||
strb r0, [r6]
|
||||
strh r0, [r4, 0x38]
|
||||
bl PlayMenuSoundEffect
|
||||
b _08013100
|
||||
_080130E6:
|
||||
movs r1, 0x2E
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, [r4, 0x4]
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
blt _08013100
|
||||
str r0, [r4, 0x48]
|
||||
movs r0, 0
|
||||
strb r0, [r6]
|
||||
bl PlayMenuSoundEffect
|
||||
_08013100:
|
||||
adds r0, r4, 0
|
||||
bl sub_8012EBC
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x4C
|
||||
ldrb r0, [r0]
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80130A8
|
||||
|
||||
thumb_func_start sub_8013114
|
||||
sub_8013114:
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
adds r0, 0x4C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08013124
|
||||
movs r0, 0x1
|
||||
b _0801312E
|
||||
_08013124:
|
||||
cmp r1, 0
|
||||
beq _0801312C
|
||||
ldr r0, [r2, 0x48]
|
||||
str r0, [r1]
|
||||
_0801312C:
|
||||
movs r0, 0
|
||||
_0801312E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8013114
|
||||
|
||||
thumb_func_start sub_8013134
|
||||
sub_8013134:
|
||||
|
|
@ -6766,4 +6022,4 @@ _08015FE4:
|
|||
bx r0
|
||||
thumb_func_end sub_8015F84
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
.align 2,0
|
||||
1240
asm/code_801B3C0.s
1240
asm/code_801B3C0.s
File diff suppressed because it is too large
Load Diff
|
|
@ -1,311 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_801E198
|
||||
sub_801E198:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r4, _0801E210
|
||||
movs r0, 0xAC
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
stm r0!, {r5}
|
||||
bl sub_801317C
|
||||
ldr r1, [r4]
|
||||
movs r0, 0
|
||||
str r0, [r1, 0x44]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x4C
|
||||
str r0, [r1, 0x48]
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r2, [r1, 0x44]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x4C
|
||||
ldr r0, _0801E214
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x48]
|
||||
movs r1, 0x1
|
||||
bl sub_8012D08
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x4C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x10
|
||||
ldr r3, [r1, 0x44]
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_8013818
|
||||
bl nullsub_38
|
||||
bl CreateOptionsMenu
|
||||
movs r0, 0x1
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0801E210: .4byte gUnknown_203B260
|
||||
_0801E214: .4byte gUnknown_80DC03C
|
||||
thumb_func_end sub_801E198
|
||||
|
||||
thumb_func_start sub_801E218
|
||||
sub_801E218:
|
||||
push {r4,lr}
|
||||
movs r4, 0
|
||||
bl sub_8012AE8
|
||||
cmp r0, 0x2
|
||||
beq _0801E238
|
||||
cmp r0, 0x2
|
||||
bgt _0801E22E
|
||||
cmp r0, 0x1
|
||||
beq _0801E242
|
||||
b _0801E294
|
||||
_0801E22E:
|
||||
cmp r0, 0x9
|
||||
beq _0801E24C
|
||||
cmp r0, 0xA
|
||||
beq _0801E26C
|
||||
b _0801E294
|
||||
_0801E238:
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _0801E2BE
|
||||
_0801E242:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x3
|
||||
b _0801E2BE
|
||||
_0801E24C:
|
||||
ldr r0, _0801E264
|
||||
ldr r1, [r0]
|
||||
movs r2, 0x28
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0
|
||||
bne _0801E294
|
||||
ldr r1, [r1]
|
||||
ldrb r0, [r1, 0x8]
|
||||
cmp r0, 0
|
||||
bne _0801E268
|
||||
movs r0, 0x2
|
||||
b _0801E28A
|
||||
.align 2, 0
|
||||
_0801E264: .4byte gUnknown_203B260
|
||||
_0801E268:
|
||||
subs r0, 0x1
|
||||
b _0801E28A
|
||||
_0801E26C:
|
||||
ldr r0, _0801E284
|
||||
ldr r1, [r0]
|
||||
movs r2, 0x28
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0
|
||||
bne _0801E294
|
||||
ldr r1, [r1]
|
||||
ldrb r0, [r1, 0x8]
|
||||
cmp r0, 0x1
|
||||
bls _0801E288
|
||||
strb r4, [r1, 0x8]
|
||||
b _0801E28C
|
||||
.align 2, 0
|
||||
_0801E284: .4byte gUnknown_203B260
|
||||
_0801E288:
|
||||
adds r0, 0x1
|
||||
_0801E28A:
|
||||
strb r0, [r1, 0x8]
|
||||
_0801E28C:
|
||||
movs r0, 0x3
|
||||
bl PlayMenuSoundEffect
|
||||
movs r4, 0x1
|
||||
_0801E294:
|
||||
ldr r0, _0801E2B8
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x10
|
||||
movs r1, 0x1
|
||||
bl sub_80138B8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0801E2AA
|
||||
cmp r4, 0x1
|
||||
bne _0801E2BC
|
||||
_0801E2AA:
|
||||
bl nullsub_38
|
||||
bl CreateOptionsMenu
|
||||
movs r0, 0x1
|
||||
b _0801E2BE
|
||||
.align 2, 0
|
||||
_0801E2B8: .4byte gUnknown_203B260
|
||||
_0801E2BC:
|
||||
movs r0, 0
|
||||
_0801E2BE:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_801E218
|
||||
|
||||
thumb_func_start sub_801E2C4
|
||||
sub_801E2C4:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _0801E304
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _0801E2FE
|
||||
ldr r0, [r2, 0x44]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x4C
|
||||
ldr r0, _0801E308
|
||||
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, 0x4C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0801E2FE:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E304: .4byte gUnknown_203B260
|
||||
_0801E308: .4byte gUnknown_80DC020
|
||||
thumb_func_end sub_801E2C4
|
||||
|
||||
thumb_func_start nullsub_38
|
||||
nullsub_38:
|
||||
bx lr
|
||||
thumb_func_end nullsub_38
|
||||
|
||||
thumb_func_start CreateOptionsMenu
|
||||
CreateOptionsMenu:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
ldr r5, _0801E368
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, 0x44]
|
||||
bl sub_8008C54
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, 0x44]
|
||||
bl sub_80073B8
|
||||
ldr r2, _0801E36C
|
||||
ldr r0, [r5]
|
||||
ldr r3, [r0, 0x44]
|
||||
movs r4, 0
|
||||
str r4, [sp]
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x10
|
||||
movs r1, 0
|
||||
bl sub_8013800
|
||||
adds r6, r0, 0
|
||||
ldr r2, _0801E370
|
||||
ldr r0, [r5]
|
||||
ldr r3, [r0, 0x44]
|
||||
str r4, [sp]
|
||||
movs r0, 0x8
|
||||
adds r1, r6, 0
|
||||
bl xxx_call_draw_string
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x8]
|
||||
cmp r0, 0x1
|
||||
beq _0801E384
|
||||
cmp r0, 0x1
|
||||
bgt _0801E374
|
||||
cmp r0, 0
|
||||
beq _0801E37A
|
||||
b _0801E3D6
|
||||
.align 2, 0
|
||||
_0801E368: .4byte gUnknown_203B260
|
||||
_0801E36C: .4byte gWindowBGTitle
|
||||
_0801E370: .4byte gUnknown_80DC064
|
||||
_0801E374:
|
||||
cmp r0, 0x2
|
||||
beq _0801E3B0
|
||||
b _0801E3D6
|
||||
_0801E37A:
|
||||
ldr r0, _0801E380
|
||||
b _0801E386
|
||||
.align 2, 0
|
||||
_0801E380: .4byte gWindowBGBlueString
|
||||
_0801E384:
|
||||
ldr r0, _0801E3AC
|
||||
_0801E386:
|
||||
bl sub_8008ED0
|
||||
adds r4, r0, 0
|
||||
ldr r1, [r5]
|
||||
ldr r0, [r1, 0x44]
|
||||
ldr r1, [r1]
|
||||
ldrb r2, [r1, 0x8]
|
||||
lsls r1, r2, 2
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r1, 0x50
|
||||
adds r2, r6, 0
|
||||
adds r2, 0xA
|
||||
movs r3, 0x7
|
||||
str r3, [sp]
|
||||
adds r3, r4, 0
|
||||
bl sub_80078A4
|
||||
b _0801E3D6
|
||||
.align 2, 0
|
||||
_0801E3AC: .4byte gWindowBGRedString
|
||||
_0801E3B0:
|
||||
ldr r0, _0801E3E8
|
||||
bl sub_8008ED0
|
||||
adds r4, r0, 0
|
||||
ldr r1, [r5]
|
||||
ldr r0, [r1, 0x44]
|
||||
ldr r1, [r1]
|
||||
ldrb r2, [r1, 0x8]
|
||||
lsls r1, r2, 2
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r1, 0x50
|
||||
adds r2, r6, 0
|
||||
adds r2, 0xA
|
||||
movs r3, 0x7
|
||||
str r3, [sp]
|
||||
adds r3, r4, 0
|
||||
bl sub_80078A4
|
||||
_0801E3D6:
|
||||
ldr r0, _0801E3EC
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x44]
|
||||
bl sub_80073E0
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E3E8: .4byte gWindowBGGreenString
|
||||
_0801E3EC: .4byte gUnknown_203B260
|
||||
thumb_func_end CreateOptionsMenu
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -5,148 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_801EE10
|
||||
sub_801EE10:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
adds r6, r0, 0
|
||||
mov r9, r2
|
||||
adds r4, r3, 0
|
||||
ldr r0, [sp, 0x20]
|
||||
mov r8, r0
|
||||
lsls r1, 16
|
||||
asrs r7, r1, 16
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r5, _0801EF28
|
||||
movs r0, 0xBC
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r5]
|
||||
movs r2, 0
|
||||
strb r4, [r0, 0x4]
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x1
|
||||
strb r1, [r0, 0x5]
|
||||
ldr r0, [r5]
|
||||
strb r1, [r0, 0x6]
|
||||
ldr r0, [r5]
|
||||
strb r1, [r0, 0x7]
|
||||
ldr r0, [r5]
|
||||
str r6, [r0]
|
||||
cmp r6, 0x1
|
||||
bls _0801EE5E
|
||||
cmp r6, 0x3
|
||||
bhi _0801EE5E
|
||||
strb r2, [r0, 0x5]
|
||||
ldr r0, [r5]
|
||||
strb r2, [r0, 0x6]
|
||||
ldr r0, [r5]
|
||||
strb r2, [r0, 0x7]
|
||||
_0801EE5E:
|
||||
ldr r4, _0801EF28
|
||||
ldr r3, [r4]
|
||||
ldr r2, _0801EF2C
|
||||
movs r0, 0x58
|
||||
adds r1, r7, 0
|
||||
muls r1, r0
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r3, 0x8]
|
||||
ldrb r0, [r0, 0x2]
|
||||
strb r0, [r3, 0xC]
|
||||
ldr r0, [r4]
|
||||
mov r1, r9
|
||||
str r1, [r0, 0x10]
|
||||
adds r0, 0xB8
|
||||
ldr r1, [sp, 0x1C]
|
||||
str r1, [r0]
|
||||
bl sub_801F3F8
|
||||
adds r5, r0, 0
|
||||
adds r6, r5, 0
|
||||
cmp r5, 0x4
|
||||
bge _0801EE8E
|
||||
movs r6, 0x4
|
||||
_0801EE8E:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x58
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
mov r2, r8
|
||||
str r2, [r1, 0x50]
|
||||
lsls r0, r2, 1
|
||||
add r0, r8
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x58
|
||||
ldr r0, _0801EF30
|
||||
ldm r0!, {r2,r3,r7}
|
||||
stm r1!, {r2,r3,r7}
|
||||
ldm r0!, {r2,r3,r7}
|
||||
stm r1!, {r2,r3,r7}
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xB8
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0801EED8
|
||||
mov r0, r8
|
||||
bl sub_8006544
|
||||
ldr r1, [r4]
|
||||
str r0, [r1, 0x54]
|
||||
lsls r2, r0, 1
|
||||
adds r2, r0
|
||||
lsls r2, 3
|
||||
adds r1, r2
|
||||
adds r1, 0x58
|
||||
ldr r0, _0801EF34
|
||||
ldm r0!, {r2,r3,r7}
|
||||
stm r1!, {r2,r3,r7}
|
||||
ldm r0!, {r2,r3,r7}
|
||||
stm r1!, {r2,r3,r7}
|
||||
_0801EED8:
|
||||
ldr r0, [r4]
|
||||
ldr r2, [r0, 0x50]
|
||||
lsls r1, r2, 1
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r1, 0x58
|
||||
adds r0, r1
|
||||
adds r1, r6, 0
|
||||
bl sub_8012D08
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x58
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x1C
|
||||
adds r1, r5, 0
|
||||
adds r2, r5, 0
|
||||
mov r3, r8
|
||||
bl sub_8013818
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x1C
|
||||
movs r1, 0
|
||||
bl sub_8013780
|
||||
movs r0, 0x1
|
||||
bl sub_801F280
|
||||
movs r0, 0x1
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0801EF28: .4byte gUnknown_203B270
|
||||
_0801EF2C: .4byte gRecruitedPokemonRef
|
||||
_0801EF30: .4byte gUnknown_80DC25C
|
||||
_0801EF34: .4byte gUnknown_80DC274
|
||||
thumb_func_end sub_801EE10
|
||||
|
||||
thumb_func_start sub_801EF38
|
||||
sub_801EF38:
|
||||
push {r4-r7,lr}
|
||||
|
|
@ -3962,7 +3820,7 @@ sub_8020D90:
|
|||
bcc _08020DC6
|
||||
cmp r0, 0x3
|
||||
bne _08020DC6
|
||||
bl sub_801E930
|
||||
bl GulpinIsNextMoveLinked
|
||||
ldr r1, _08020DB8
|
||||
ldr r1, [r1]
|
||||
strb r0, [r1, 0x14]
|
||||
|
|
|
|||
|
|
@ -5,70 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_807CABC
|
||||
sub_807CABC:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
movs r6, 0
|
||||
b _0807CADC
|
||||
_0807CAC6:
|
||||
bl sub_8044B28
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807CB0A
|
||||
ldr r1, _0807CB38
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0807CB0A
|
||||
adds r6, 0x1
|
||||
_0807CADC:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8070828
|
||||
cmp r6, r0
|
||||
bge _0807CB0A
|
||||
ldr r5, [r4, 0x70]
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x48
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0
|
||||
bl sub_8055A00
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807CAC6
|
||||
_0807CB0A:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8057588
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807CB2A
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0x48
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, 0
|
||||
bl sub_806A9B4
|
||||
_0807CB2A:
|
||||
adds r0, r4, 0
|
||||
bl sub_806A1B0
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807CB38: .4byte 0x00000159
|
||||
thumb_func_end sub_807CABC
|
||||
|
||||
thumb_func_start sub_807CB3C
|
||||
sub_807CB3C:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -1,76 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8038440
|
||||
sub_8038440:
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0
|
||||
ldr r0, _080384B0
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
movs r3, 0xD4
|
||||
lsls r3, 1
|
||||
add r3, r12
|
||||
ldrh r1, [r3]
|
||||
ldr r0, _080384B4
|
||||
ands r0, r1
|
||||
ldr r1, _080384B8
|
||||
ands r0, r1
|
||||
ldr r4, _080384BC
|
||||
ands r0, r4
|
||||
ldr r1, _080384C0
|
||||
ands r0, r1
|
||||
ldr r1, _080384C4
|
||||
ands r0, r1
|
||||
movs r2, 0x80
|
||||
lsls r2, 7
|
||||
ldr r1, _080384C8
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strh r0, [r3]
|
||||
movs r2, 0xFC
|
||||
lsls r2, 2
|
||||
ldrh r1, [r3, 0x4]
|
||||
movs r0, 0xFC
|
||||
lsls r0, 8
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
ands r0, r4
|
||||
movs r2, 0xF
|
||||
movs r4, 0xF0
|
||||
lsls r4, 8
|
||||
ldr r1, _080384CC
|
||||
ands r0, r1
|
||||
orrs r0, r4
|
||||
strh r0, [r3, 0x4]
|
||||
movs r0, 0x70
|
||||
strh r0, [r3, 0x2]
|
||||
movs r1, 0xE0
|
||||
lsls r1, 3
|
||||
ldrh r0, [r3, 0x6]
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
strh r2, [r3, 0x6]
|
||||
movs r0, 0xD8
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r5, [r0]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080384B0: .4byte gUnknown_203B360
|
||||
_080384B4: .4byte 0x0000feff
|
||||
_080384B8: .4byte 0x0000fdff
|
||||
_080384BC: .4byte 0x0000f3ff
|
||||
_080384C0: .4byte 0x0000efff
|
||||
_080384C4: .4byte 0x0000dfff
|
||||
_080384C8: .4byte 0x00003fff
|
||||
_080384CC: .4byte 0x00000fff
|
||||
thumb_func_end sub_8038440
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -1,364 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start UpdateSaveMenu
|
||||
UpdateSaveMenu:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x18
|
||||
ldr r5, _080386A8
|
||||
movs r0, 0x3
|
||||
str r0, [sp, 0x14]
|
||||
ldr r6, _080386AC
|
||||
ldr r0, [r6]
|
||||
ldr r4, [r0, 0x4]
|
||||
cmp r4, 0x1
|
||||
bne _08038646
|
||||
b _08038798
|
||||
_08038646:
|
||||
cmp r4, 0x1
|
||||
bcc _0803864C
|
||||
b _08038824
|
||||
_0803864C:
|
||||
adds r0, 0x8
|
||||
bl sub_8012FD8
|
||||
movs r5, 0
|
||||
str r5, [sp, 0x10]
|
||||
bl sub_80140F8
|
||||
bl sub_8011C1C
|
||||
adds r1, r0, 0
|
||||
add r0, sp, 0x10
|
||||
bl WriteSavetoPak
|
||||
adds r4, r0, 0
|
||||
bl sub_8014114
|
||||
cmp r4, 0
|
||||
beq _080386B8
|
||||
cmp r4, 0x1
|
||||
beq _08038738
|
||||
ldr r0, [r6]
|
||||
movs r4, 0xA4
|
||||
lsls r4, 1
|
||||
adds r0, r4
|
||||
movs r1, 0
|
||||
bl sub_8035CC0
|
||||
ldr r1, [r6]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x2E
|
||||
bne _08038750
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
adds r1, r4
|
||||
ldr r3, _080386B0
|
||||
ldr r2, _080386B4
|
||||
str r2, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r2, 0x6
|
||||
str r2, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
movs r2, 0
|
||||
bl SetMenuItems
|
||||
b _0803876E
|
||||
.align 2, 0
|
||||
_080386A8: .4byte 0x0000ffdc
|
||||
_080386AC: .4byte gUnknown_203B364
|
||||
_080386B0: .4byte gUnknown_80E6F38
|
||||
_080386B4: .4byte gUnknown_80E7114
|
||||
_080386B8:
|
||||
ldr r0, [r6]
|
||||
movs r1, 0xA4
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
bl sub_8035CC0
|
||||
ldr r1, [r6]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x2E
|
||||
bne _080386F8
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
movs r2, 0xA4
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
ldr r3, _080386F0
|
||||
ldr r2, _080386F4
|
||||
str r2, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r2, 0x6
|
||||
str r2, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
movs r2, 0
|
||||
bl SetMenuItems
|
||||
b _08038716
|
||||
.align 2, 0
|
||||
_080386F0: .4byte gUnknown_80E6F38
|
||||
_080386F4: .4byte gUnknown_80E70CC
|
||||
_080386F8:
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
movs r2, 0xA4
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
ldr r3, _08038728
|
||||
ldr r2, _0803872C
|
||||
str r2, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r2, 0x6
|
||||
str r2, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
movs r2, 0
|
||||
bl SetMenuItems
|
||||
_08038716:
|
||||
ldr r4, _08038730
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x2D
|
||||
bne _08038734
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r0, 0x13
|
||||
b _08038826
|
||||
.align 2, 0
|
||||
_08038728: .4byte gUnknown_80E6F38
|
||||
_0803872C: .4byte gUnknown_80E6FBC
|
||||
_08038730: .4byte gUnknown_203B364
|
||||
_08038734:
|
||||
adds r0, r1, 0
|
||||
b _08038772
|
||||
_08038738:
|
||||
ldr r0, _0803874C
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_80141B4
|
||||
ldr r1, [r6]
|
||||
movs r0, 0x5
|
||||
b _08038780
|
||||
.align 2, 0
|
||||
_0803874C: .4byte gUnknown_80E7178
|
||||
_08038750:
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
movs r2, 0xA4
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
ldr r3, _08038788
|
||||
ldr r2, _0803878C
|
||||
str r2, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r2, 0x6
|
||||
str r2, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
movs r2, 0
|
||||
bl SetMenuItems
|
||||
_0803876E:
|
||||
ldr r4, _08038790
|
||||
ldr r0, [r4]
|
||||
_08038772:
|
||||
adds r0, 0x8
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8035CF4
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
_08038780:
|
||||
str r0, [r1, 0x4]
|
||||
ldr r5, _08038794
|
||||
b _08038824
|
||||
.align 2, 0
|
||||
_08038788: .4byte gUnknown_80E6F38
|
||||
_0803878C: .4byte gUnknown_80E701C
|
||||
_08038790: .4byte gUnknown_203B364
|
||||
_08038794: .4byte 0x0000ffdc
|
||||
_08038798:
|
||||
adds r0, 0x8
|
||||
bl sub_80130A8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080387AE
|
||||
ldr r0, [r6]
|
||||
adds r0, 0x8
|
||||
add r1, sp, 0x14
|
||||
bl sub_8013114
|
||||
_080387AE:
|
||||
ldr r0, [sp, 0x14]
|
||||
cmp r0, 0x3
|
||||
beq _0803881C
|
||||
cmp r0, 0x3
|
||||
bhi _080387BE
|
||||
cmp r0, 0x2
|
||||
beq _080387C2
|
||||
b _08038820
|
||||
_080387BE:
|
||||
cmp r0, 0x4
|
||||
bne _08038820
|
||||
_080387C2:
|
||||
ldr r4, _080387D8
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x29
|
||||
beq _080387D0
|
||||
cmp r0, 0x2E
|
||||
bne _080387DC
|
||||
_080387D0:
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r5, 0x1
|
||||
b _08038820
|
||||
.align 2, 0
|
||||
_080387D8: .4byte gUnknown_203B364
|
||||
_080387DC:
|
||||
cmp r0, 0x2D
|
||||
bne _080387E8
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r5, 0x13
|
||||
b _08038820
|
||||
_080387E8:
|
||||
cmp r0, 0x2C
|
||||
bne _080387F4
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r5, 0x1F
|
||||
b _08038820
|
||||
_080387F4:
|
||||
bl GetMainMenu
|
||||
adds r0, 0x3A
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0803880A
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r5, 0x35
|
||||
b _08038820
|
||||
_0803880A:
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1
|
||||
str r1, [r0, 0x4]
|
||||
ldr r0, [r0]
|
||||
movs r5, 0xB
|
||||
cmp r0, 0x2B
|
||||
bne _08038820
|
||||
movs r5, 0xD
|
||||
b _08038820
|
||||
_0803881C:
|
||||
ldr r0, [r6]
|
||||
str r4, [r0, 0x4]
|
||||
_08038820:
|
||||
bl sub_80388C4
|
||||
_08038824:
|
||||
adds r0, r5, 0
|
||||
_08038826:
|
||||
add sp, 0x18
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end UpdateSaveMenu
|
||||
|
||||
thumb_func_start sub_8038830
|
||||
sub_8038830:
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0
|
||||
ldr r0, _080388A4
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
movs r3, 0xD4
|
||||
lsls r3, 1
|
||||
add r3, r12
|
||||
ldrh r1, [r3]
|
||||
ldr r0, _080388A8
|
||||
ands r0, r1
|
||||
ldr r1, _080388AC
|
||||
ands r0, r1
|
||||
ldr r4, _080388B0
|
||||
ands r0, r4
|
||||
ldr r1, _080388B4
|
||||
ands r0, r1
|
||||
ldr r1, _080388B8
|
||||
ands r0, r1
|
||||
movs r2, 0x80
|
||||
lsls r2, 7
|
||||
ldr r1, _080388BC
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strh r0, [r3]
|
||||
movs r2, 0xFC
|
||||
lsls r2, 2
|
||||
ldrh r1, [r3, 0x4]
|
||||
movs r0, 0xFC
|
||||
lsls r0, 8
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
ands r0, r4
|
||||
movs r2, 0xF
|
||||
movs r4, 0xF0
|
||||
lsls r4, 8
|
||||
ldr r1, _080388C0
|
||||
ands r0, r1
|
||||
orrs r0, r4
|
||||
strh r0, [r3, 0x4]
|
||||
movs r0, 0x70
|
||||
strh r0, [r3, 0x2]
|
||||
movs r1, 0xD0
|
||||
lsls r1, 3
|
||||
ldrh r0, [r3, 0x6]
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
strh r2, [r3, 0x6]
|
||||
movs r0, 0xD8
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r5, [r0]
|
||||
movs r0, 0
|
||||
bl ResetSprites
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080388A4: .4byte gUnknown_203B364
|
||||
_080388A8: .4byte 0x0000feff
|
||||
_080388AC: .4byte 0x0000fdff
|
||||
_080388B0: .4byte 0x0000f3ff
|
||||
_080388B4: .4byte 0x0000efff
|
||||
_080388B8: .4byte 0x0000dfff
|
||||
_080388BC: .4byte 0x00003fff
|
||||
_080388C0: .4byte 0x00000fff
|
||||
thumb_func_end sub_8038830
|
||||
|
||||
thumb_func_start sub_80388C4
|
||||
sub_80388C4:
|
||||
push {r4,r5,lr}
|
||||
ldr r5, _080388FC
|
||||
ldr r2, [r5]
|
||||
movs r4, 0xD8
|
||||
lsls r4, 1
|
||||
adds r0, r2, r4
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080388EA
|
||||
movs r1, 0xD4
|
||||
lsls r1, 1
|
||||
adds r0, r2, r1
|
||||
subs r1, 0xA8
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl AddSprite
|
||||
_080388EA:
|
||||
ldr r1, [r5]
|
||||
adds r1, r4
|
||||
ldr r0, [r1]
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080388FC: .4byte gUnknown_203B364
|
||||
thumb_func_end sub_80388C4
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -1,10 +1,5 @@
|
|||
.section .rodata
|
||||
|
||||
.global gUnknown_80D47B8
|
||||
gUnknown_80D47B8: @ 80D47B8
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
|
||||
.global UnkData_80D47C4
|
||||
UnkData_80D47C4:
|
||||
|
|
|
|||
|
|
@ -520,358 +520,3 @@ gUnknown_80E6EAC: @ 80E6EAC
|
|||
|
||||
.asciz "pksdir0"
|
||||
|
||||
.global gUnknown_80E6F20
|
||||
gUnknown_80E6F20: @ 80E6F20
|
||||
.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_80E6F38
|
||||
gUnknown_80E6F38: @ 80E6F38
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x05, 0x00, 0x08, 0x00
|
||||
.byte 0x15, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6F50
|
||||
gUnknown_80E6F50: @ 80E6F50
|
||||
.4byte sUnknown_80E6FAC, 0x4
|
||||
.4byte sUnknown_80E6F90, 0x4
|
||||
.4byte sUnknown_80E6F70, 0x4
|
||||
.4byte 0, 0x2
|
||||
|
||||
sUnknown_80E6F70:
|
||||
.string "#+Don~27t turn off the power.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6F90:
|
||||
.string "#+Saving your adventure!\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6FAC:
|
||||
.string "#+#C2Beware!#R \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6FBC
|
||||
gUnknown_80E6FBC: @ 80E6FBC
|
||||
.4byte sUnknown_80E7008, 0x4
|
||||
.4byte sUnknown_80E6FF0, 0x4
|
||||
.4byte sUnknown_80E6FDC, 0x4
|
||||
.4byte 0, 0x2
|
||||
|
||||
sUnknown_80E6FDC:
|
||||
.string "#+has been saved.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6FF0:
|
||||
.string "#+Your adventure so far\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E7008:
|
||||
.string "#+#CGSuccess!#R \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E701C
|
||||
gUnknown_80E701C: @ 80E701C
|
||||
.4byte sUnknown_80E7078, 0x4
|
||||
.4byte sUnknown_80E7050, 0x4
|
||||
.4byte sUnknown_80E703C, 0x4
|
||||
.4byte 0, 0x2
|
||||
|
||||
sUnknown_80E703C:
|
||||
.string "#+Please try again.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E7050:
|
||||
.string "#+Your adventure could not be saved.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E7078:
|
||||
.string "#+#C2Save failed!#R \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7090
|
||||
gUnknown_80E7090: @ 80E7090
|
||||
.4byte sUnknown_80E6FAC, 0x4
|
||||
.4byte DeletingAdventure_80E70B0, 0x4
|
||||
.4byte sUnknown_80E6F70, 0x4
|
||||
.4byte 0, 0x2
|
||||
|
||||
DeletingAdventure_80E70B0:
|
||||
.string "{CENTER_ALIGN}Deleting your adventure!\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E70CC
|
||||
gUnknown_80E70CC: @ 80E70CC
|
||||
.4byte sUnknown_80E7008, 0x4
|
||||
.4byte AdventureDeleted_80E70F0, 0x4
|
||||
.4byte Data_80E70EC, 0x4
|
||||
.4byte 0, 0x2
|
||||
|
||||
Data_80E70EC:
|
||||
.string " \0"
|
||||
.align 2, 0
|
||||
|
||||
AdventureDeleted_80E70F0:
|
||||
.string "{CENTER_ALIGN}Your adventure has been deleted.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7114
|
||||
gUnknown_80E7114: @ 80E7114
|
||||
.4byte sUnknown_80E715C, 0x4
|
||||
.4byte sUnknown_80E7134, 0x4
|
||||
.4byte sUnknown_80E703C, 0x4
|
||||
.4byte 0, 0x2
|
||||
|
||||
sUnknown_80E7134:
|
||||
.string "#+Your adventure could not be deleted.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E715C:
|
||||
.string "#+#C2Deletion failed!#R \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7178
|
||||
gUnknown_80E7178: @ 80E7178
|
||||
.string "#+The data could not be written.\n"
|
||||
.string "#+Please turn off the power and remove\n"
|
||||
.string "#+and reinsert the DS Card.\0"
|
||||
.align 2, 0
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
||||
.global gUnknown_80E71E4
|
||||
gUnknown_80E71E4: @ 80E71E4
|
||||
.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_80E71FC
|
||||
gUnknown_80E71FC: @ 80E71FC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7214
|
||||
gUnknown_80E7214: @ 80E7214
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte IncorrectPassword_80E7250, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
CheckAgain_80E7234:
|
||||
.string "{CENTER_ALIGN}Please check it again.\0"
|
||||
.align 2, 0
|
||||
|
||||
IncorrectPassword_80E7250:
|
||||
.string "{CENTER_ALIGN}Incorrect password!\0"
|
||||
.align 2, 0
|
||||
|
||||
Error_80E7268:
|
||||
.string "{CENTER_ALIGN}{COLOR_1 RED}Error!{END_COLOR_TEXT_1} \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7278
|
||||
gUnknown_80E7278: @ 80E7278
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7290
|
||||
gUnknown_80E7290: @ 80E7290
|
||||
.4byte Success_80E72D8, 0xC
|
||||
.4byte PasswordAccept_80E72B4, 0xC
|
||||
.4byte DATA_80E72B0, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
DATA_80E72B0:
|
||||
.string " \0"
|
||||
.align 2, 0
|
||||
|
||||
PasswordAccept_80E72B4:
|
||||
.string "{CENTER_ALIGN}The password has been accepted.\0"
|
||||
.align 2, 0
|
||||
|
||||
Success_80E72D8:
|
||||
.string "{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}Success!{END_COLOR_TEXT_1} \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E72EC
|
||||
gUnknown_80E72EC: @ 80E72EC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7304
|
||||
gUnknown_80E7304: @ 80E7304
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte NotSOSMail_80E7324, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
NotSOSMail_80E7324:
|
||||
.string "{CENTER_ALIGN}This is not an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7344
|
||||
gUnknown_80E7344: @ 80E7344
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E735C
|
||||
gUnknown_80E735C: @ 80E735C
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte ReceiveSOSMail_80E737C, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
ReceiveSOSMail_80E737C:
|
||||
.string "{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} has been received already.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E73AC
|
||||
gUnknown_80E73AC: @ 80E73AC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E73C4
|
||||
gUnknown_80E73C4: @ 80E73C4
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E73E4, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E73E4:
|
||||
.string "#+This is not an #CGA-OK Mail#R.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7408
|
||||
gUnknown_80E7408: @ 80E7408
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7420
|
||||
gUnknown_80E7420: @ 80E7420
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E7440, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E7440:
|
||||
.string "#+This #CGA-OK Mail#R cannot be used.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7468
|
||||
gUnknown_80E7468: @ 80E7468
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7480
|
||||
gUnknown_80E7480: @ 80E7480
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E74A0, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E74A0:
|
||||
.string "#+This is not a #CGThank-You Mail#R.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E74C8
|
||||
gUnknown_80E74C8: @ 80E74C8
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E74E0
|
||||
gUnknown_80E74E0: @ 80E74E0
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E7500, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E7500:
|
||||
.string "#+This #CGThank-You Mail#R cannot be used.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E752C
|
||||
gUnknown_80E752C: @ 80E752C
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7544
|
||||
gUnknown_80E7544: @ 80E7544
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E7564, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E7564:
|
||||
.string "#+This is not a #CGWonder Mail#R.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7588
|
||||
gUnknown_80E7588: @ 80E7588
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E75A0
|
||||
gUnknown_80E75A0: @ 80E75A0
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E75CC, 0xC
|
||||
.4byte sUnknown_80E75C0, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E75C0:
|
||||
.string "#+new mail.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E75CC:
|
||||
.string "#+There is no space for receiving\0"
|
||||
.align 2, 0
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
|
|
|||
233
data/data_80E6F20.s
Normal file
233
data/data_80E6F20.s
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
.section .rodata
|
||||
|
||||
.global gUnknown_80E71E4
|
||||
gUnknown_80E71E4: @ 80E71E4
|
||||
.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_80E71FC
|
||||
gUnknown_80E71FC: @ 80E71FC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7214
|
||||
gUnknown_80E7214: @ 80E7214
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte IncorrectPassword_80E7250, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
CheckAgain_80E7234:
|
||||
.string "{CENTER_ALIGN}Please check it again.\0"
|
||||
.align 2, 0
|
||||
|
||||
IncorrectPassword_80E7250:
|
||||
.string "{CENTER_ALIGN}Incorrect password!\0"
|
||||
.align 2, 0
|
||||
|
||||
Error_80E7268:
|
||||
.string "{CENTER_ALIGN}{COLOR_1 RED}Error!{END_COLOR_TEXT_1} \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7278
|
||||
gUnknown_80E7278: @ 80E7278
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7290
|
||||
gUnknown_80E7290: @ 80E7290
|
||||
.4byte Success_80E72D8, 0xC
|
||||
.4byte PasswordAccept_80E72B4, 0xC
|
||||
.4byte DATA_80E72B0, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
DATA_80E72B0:
|
||||
.string " \0"
|
||||
.align 2, 0
|
||||
|
||||
PasswordAccept_80E72B4:
|
||||
.string "{CENTER_ALIGN}The password has been accepted.\0"
|
||||
.align 2, 0
|
||||
|
||||
Success_80E72D8:
|
||||
.string "{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}Success!{END_COLOR_TEXT_1} \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E72EC
|
||||
gUnknown_80E72EC: @ 80E72EC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7304
|
||||
gUnknown_80E7304: @ 80E7304
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte NotSOSMail_80E7324, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
NotSOSMail_80E7324:
|
||||
.string "{CENTER_ALIGN}This is not an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7344
|
||||
gUnknown_80E7344: @ 80E7344
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E735C
|
||||
gUnknown_80E735C: @ 80E735C
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte ReceiveSOSMail_80E737C, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
ReceiveSOSMail_80E737C:
|
||||
.string "{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} has been received already.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E73AC
|
||||
gUnknown_80E73AC: @ 80E73AC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E73C4
|
||||
gUnknown_80E73C4: @ 80E73C4
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E73E4, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E73E4:
|
||||
.string "#+This is not an #CGA-OK Mail#R.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7408
|
||||
gUnknown_80E7408: @ 80E7408
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7420
|
||||
gUnknown_80E7420: @ 80E7420
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E7440, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E7440:
|
||||
.string "#+This #CGA-OK Mail#R cannot be used.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7468
|
||||
gUnknown_80E7468: @ 80E7468
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7480
|
||||
gUnknown_80E7480: @ 80E7480
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E74A0, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E74A0:
|
||||
.string "#+This is not a #CGThank-You Mail#R.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E74C8
|
||||
gUnknown_80E74C8: @ 80E74C8
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E74E0
|
||||
gUnknown_80E74E0: @ 80E74E0
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E7500, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E7500:
|
||||
.string "#+This #CGThank-You Mail#R cannot be used.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E752C
|
||||
gUnknown_80E752C: @ 80E752C
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7544
|
||||
gUnknown_80E7544: @ 80E7544
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E7564, 0xC
|
||||
.4byte CheckAgain_80E7234, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E7564:
|
||||
.string "#+This is not a #CGWonder Mail#R.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E7588
|
||||
gUnknown_80E7588: @ 80E7588
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x09, 0x00
|
||||
.byte 0x17, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E75A0
|
||||
gUnknown_80E75A0: @ 80E75A0
|
||||
.4byte Error_80E7268, 0xC
|
||||
.4byte sUnknown_80E75CC, 0xC
|
||||
.4byte sUnknown_80E75C0, 0xC
|
||||
.4byte 0, 0xA
|
||||
|
||||
sUnknown_80E75C0:
|
||||
.string "#+new mail.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E75CC:
|
||||
.string "#+There is no space for receiving\0"
|
||||
.align 2, 0
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
||||
25
include/constants/input.h
Normal file
25
include/constants/input.h
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef GUARD_CONSTANTS_INPUT_H
|
||||
#define GUARD_CONSTANTS_INPUT_H
|
||||
|
||||
#define INPUT_NONE 0
|
||||
#define INPUT_A_BUTTON 1
|
||||
#define INPUT_B_BUTTON 2
|
||||
#define INPUT_SELECT_BUTTON 3
|
||||
#define INPUT_START_BUTTON 4
|
||||
#define INPUT_L_BUTTON 5
|
||||
#define INPUT_R_BUTTON 6
|
||||
#define INPUT_DPAD_UP 7
|
||||
#define INPUT_DPAD_DOWN 8
|
||||
#define INPUT_DPAD_LEFT 9
|
||||
#define INPUT_DPAD_RIGHT 10
|
||||
|
||||
// When R button is pressed in combination with other keys
|
||||
#define INPUT_R_A_BUTTONS 11
|
||||
#define INPUT_R_DPAD_UP_BUTTONS 12
|
||||
#define INPUT_R_DPAD_DOWN_BUTTONS 13
|
||||
#define INPUT_R_DPAD_LEFT_BUTTONS 14
|
||||
#define INPUT_R_DPAD_RIGHT_BUTTONS 15
|
||||
|
||||
|
||||
#endif // GUARD_CONSTANTS_INPUT_H
|
||||
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
enum DebugMenuOptions
|
||||
{
|
||||
|
|
@ -19,7 +20,7 @@ enum DebugMenuOptions
|
|||
struct DebugMenu
|
||||
{
|
||||
// size: 0x1A4
|
||||
u8 fill0[0x140];
|
||||
struct MenuStruct unk0[4];
|
||||
/* 0x140 */ struct UnkTextStruct2 unk140[4];
|
||||
u32 fill1A0;
|
||||
};
|
||||
|
|
@ -33,8 +34,7 @@ struct unkStruct_203B3F8
|
|||
u16 unk6;
|
||||
struct PokemonStruct *pokemon;
|
||||
u32 unkC;
|
||||
const char *unk10;
|
||||
u8 fill14[0x60 - 0x14];
|
||||
struct MenuStruct unk10;
|
||||
u32 unk60;
|
||||
u32 unk64;
|
||||
u32 unk68;
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ struct Dungeon
|
|||
u8 fill662[0x666 - 0x662];
|
||||
/* 0x666 */ u16 windTurns; // Turns remaining before getting swept out of the dungeon.
|
||||
u8 fill668[0x66A - 0x668];
|
||||
u16 unk66A;
|
||||
u16 bossSongIndex;
|
||||
u8 unk66C;
|
||||
u8 unk66D;
|
||||
/* 0x66E */ u8 unk66E;
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
#ifndef GUARD_FRIEND_AREA_ACTION_MENU_H
|
||||
#define GUARD_FRIEND_AREA_ACTION_MENU_H
|
||||
|
||||
#include "menu.h"
|
||||
struct unkStruct_203B2BC
|
||||
{
|
||||
// size: 0x1E0
|
||||
u32 state;
|
||||
u32 unk4;
|
||||
u32 fallbackState;
|
||||
s16 targetPoke;
|
||||
u16 unkA;
|
||||
u32 id;
|
||||
struct BulkItem itemToGive;
|
||||
struct BulkItem item2;
|
||||
struct PokemonStruct *unk18;
|
||||
u8 unk1C;
|
||||
bool8 isTeamLeader;
|
||||
u32 moveIndex; // some sort of move index
|
||||
u16 moveID;
|
||||
struct Move moves[8];
|
||||
|
|
@ -21,18 +22,23 @@ struct unkStruct_203B2BC
|
|||
u32 unk70;
|
||||
s32 unk74;
|
||||
u32 unk78;
|
||||
u32 unk7C;
|
||||
u8 fill80[0xFD - 0x80];
|
||||
struct MenuStruct unk7C;
|
||||
u8 fill80[0xFD - 0xCC];
|
||||
u32 unkFD;
|
||||
u8 fill101[0x11C - 0x104];
|
||||
struct MenuItem menuItems[4];
|
||||
u8 fill120[0x16C - 0x13C];
|
||||
|
||||
// Structure of some sort
|
||||
u32 unk16C;
|
||||
u16 unk16C;
|
||||
u8 fill170[0x180 - 0x170];
|
||||
|
||||
struct UnkTextStruct2 unk180[4];
|
||||
};
|
||||
|
||||
enum FriendAreaActionMenuStates {
|
||||
FRIEND_AREA_ACTION_MENU_INIT,
|
||||
FRIEND_AREA_ACTION_MENU_EXIT = 0x11,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "item.h"
|
||||
#include "pokemon.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "menu.h"
|
||||
|
||||
struct WonderMailStruct_203B33C
|
||||
{
|
||||
|
|
@ -21,13 +22,7 @@ struct WonderMailStruct_203B33C
|
|||
struct unkStruct_203B480 unk1B8;
|
||||
struct unkStruct_203B480 unk1E8;
|
||||
u8 unk218;
|
||||
u8 padding7[3];
|
||||
u32 unk21C;
|
||||
u8 padding[0x7C];
|
||||
u32 unk29C;
|
||||
u8 padding6[0x6C];
|
||||
u32 unk30C;
|
||||
u8 padding8[0x4C];
|
||||
struct MenuStruct unk21C[4];
|
||||
struct UnkTextStruct2 unk35C[4];
|
||||
struct UnkTextStruct2 unk3BC[4];
|
||||
struct Item unk41C;
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ struct unkStruct_203B26C
|
|||
s32 state;
|
||||
u32 unk8;
|
||||
s16 speciesNum; // species of chosen Pokemon
|
||||
u8 unkE;
|
||||
struct Move * unk10;
|
||||
bool8 isNextMoveLinked;
|
||||
struct Move * moves;
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u16 unk1C;
|
||||
|
|
@ -18,8 +18,8 @@ struct unkStruct_203B26C
|
|||
u32 unk24;
|
||||
struct MenuItem unk28[8];
|
||||
u16 unk68[8];
|
||||
u32 unk78;
|
||||
u8 fill7C[0x118 - 0x7C];
|
||||
struct MenuStruct unk78;
|
||||
u8 fillC8[0x118 - 0xC8];
|
||||
/* 0x118 */ struct OpenedFile *faceFile;
|
||||
/* 0x11C */ u8 *faceData;
|
||||
/* 0x120 */ u16 unk120;
|
||||
|
|
|
|||
|
|
@ -55,13 +55,13 @@ struct UnkInputStruct
|
|||
/* 0x2 */ u8 unk2;
|
||||
/* 0x3 */ u8 unk3;
|
||||
/* 0x4 */ u8 unk4;
|
||||
/* 0x5 */ u32 unk5;
|
||||
/* 0x9 */ u32 unk9;
|
||||
/* 0xD */ u32 unkD;
|
||||
/* 0x12 */ u32 unk11;
|
||||
/* 0x16 */ u32 unk15;
|
||||
/* 0x1A */ u32 unk19;
|
||||
/* 0x1E */ u32 unk1D;
|
||||
/* 0x8 */ u32 unk8;
|
||||
/* 0xC */ u32 unkC;
|
||||
/* 0x10 */ u32 unk10;
|
||||
/* 0x14 */ u32 unk14;
|
||||
/* 0x18 */ u32 unk18;
|
||||
/* 0x1C */ u32 unk1C;
|
||||
/* 0x20 */ u32 unk20;
|
||||
/* 0x24 */ u32 unk24;
|
||||
/* 0x28 */ u8 unk28;
|
||||
/* 0x29 */ u8 a_button;
|
||||
|
|
|
|||
|
|
@ -20,8 +20,7 @@ struct unkStruct_203B208
|
|||
u32 unk20;
|
||||
struct MenuItem unk24[5];
|
||||
u16 unk4C[5];
|
||||
u32 unk58;
|
||||
u8 unk5C[0xA8 - 0x5C];
|
||||
struct MenuStruct unk58;
|
||||
u32 unkA8;
|
||||
u8 unkAC[0xBC - 0xAC];
|
||||
u32 unkBC;
|
||||
|
|
@ -51,8 +50,7 @@ struct unkStruct_203B20C
|
|||
u32 unk1C;
|
||||
struct MenuItem unk20[8];
|
||||
u16 unk60[8];
|
||||
u32 unk70;
|
||||
u8 fill74[0xC0 - 0x74];
|
||||
struct MenuStruct unk70;
|
||||
u32 unkC0;
|
||||
u32 unkC4;
|
||||
u32 unkC8;
|
||||
|
|
|
|||
|
|
@ -25,8 +25,7 @@ struct unkStruct_203B210
|
|||
u32 unk30;
|
||||
struct MenuItem unk34[8];
|
||||
u16 unk74[8];
|
||||
u32 unk84;
|
||||
u8 fill88[0xD4 - 0x88];
|
||||
struct MenuStruct unk84;
|
||||
struct OpenedFile *faceFile;
|
||||
u8 *unkD8;
|
||||
u16 unkDC;
|
||||
|
|
|
|||
|
|
@ -19,8 +19,7 @@ struct unkStruct_203B304
|
|||
u8 fill51[0x64 - 0x51];
|
||||
u32 unk64;
|
||||
u32 unk68;
|
||||
u32 unk6C;
|
||||
u8 fill70[0xBC - 0x70];
|
||||
struct MenuStruct unk6C;
|
||||
struct MenuItem unkBC[8];
|
||||
u16 unkFC[8];
|
||||
struct UnkTextStruct2 unk10C[4];
|
||||
|
|
|
|||
|
|
@ -74,5 +74,6 @@ void CleanUpMenu(void);
|
|||
bool8 sub_80363E0(void);
|
||||
struct unkStruct_8035D94 *sub_8035D94(void);
|
||||
void sub_8035DA0(void);
|
||||
struct MainMenu *GetMainMenu(void);
|
||||
|
||||
#endif // GUARD_MAIN_MENU_H
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ void InitHeapInternal(void);
|
|||
void DoInitHeap(struct HeapDescriptor *, struct HeapSettings *, struct HeapFreeListElement *, u32);
|
||||
void InitSubHeap(struct HeapDescriptor *, struct HeapMemoryBlock *, u32);
|
||||
s32 _LocateSet(struct HeapDescriptor *heap, s32 size, s32 param_3);
|
||||
void *MemoryAlloc(s32 size, s32 b);
|
||||
void *MemoryAlloc(s32 size, s32 group);
|
||||
void MemoryFree(void *a);
|
||||
|
||||
#endif // GUARD_MEMORY_H
|
||||
|
|
|
|||
|
|
@ -4,7 +4,28 @@
|
|||
struct MenuItem
|
||||
{
|
||||
const u8 *text;
|
||||
u32 menuAction; // action??
|
||||
s32 menuAction; // action??
|
||||
};
|
||||
|
||||
struct MenuStruct
|
||||
{
|
||||
// size: 0x50
|
||||
const u8 *unk0; // header text?
|
||||
/* 0x4 */ const struct MenuItem *menuItems;
|
||||
const u32 *menuTextColorArray;
|
||||
u16 *unkC;
|
||||
/* 0x10 */ s32 index;
|
||||
/* 0x14 */ u32 unk14;
|
||||
u8 fill18[0x2C - 0x18];
|
||||
/* 0x2C */ s16 menuIndex;
|
||||
s16 unk2E;
|
||||
u8 fill30[0x38 - 0x30];
|
||||
u16 unk38;
|
||||
u8 fill3A[0x48 - 0x3A];
|
||||
/* 0x48 */ s32 menuAction;
|
||||
bool8 unk4C;
|
||||
bool8 unk4D;
|
||||
bool8 unk4E;
|
||||
};
|
||||
|
||||
#endif // GUARD_MENU_H
|
||||
|
|
|
|||
14
include/menu_input.h
Normal file
14
include/menu_input.h
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#include "menu.h"
|
||||
|
||||
void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 param_5, u32 param_6);
|
||||
void sub_8012C60(u32 x, u32 y, u32 param_3, u32 param_4, u32 param_5);
|
||||
void sub_8012CAC(struct UnkTextStruct2 *param_1, const struct MenuItem *param_2);
|
||||
void sub_8012D08(struct UnkTextStruct2 *param_1, s32 param_2);
|
||||
void sub_8012D34(struct UnkTextStruct2 *param_1, s32 param_2);
|
||||
void sub_8012D60(struct MenuStruct *param_1, const struct MenuItem *menuItems, u32 *colorArray, u16 *param_4, s32 param_5, s32 index);
|
||||
void sub_8012E04(struct MenuStruct *param_1, const struct MenuItem *menuItems, u32 *colorArray, u16 *param_4, s32 param_5, s32 index);
|
||||
void sub_8012EA4(struct MenuStruct *param_1, bool8 r1);
|
||||
void sub_8012EBC(struct MenuStruct *param_1);
|
||||
bool8 sub_8012FD8(struct MenuStruct *param_1);
|
||||
bool8 sub_80130A8(struct MenuStruct *param_1);
|
||||
bool8 sub_8013114(struct MenuStruct *param_1, s32 *menuAction);
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef GUARD_RESCUE_PASSWORD_MENU_H
|
||||
#define GUARD_RESCUE_PASSWORD_MENU_H
|
||||
|
||||
#include "menu.h"
|
||||
|
||||
struct unkSprite
|
||||
{
|
||||
u16 unk208;
|
||||
|
|
@ -14,13 +16,10 @@ struct RescuePasswordMenu
|
|||
// size: 0x214
|
||||
u32 currMenu;
|
||||
u32 state;
|
||||
u32 unk8;
|
||||
u8 fillC[0x148 - 0xC];
|
||||
struct MenuStruct unk8[4];
|
||||
struct UnkTextStruct2 unk148[4];
|
||||
struct UnkTextStruct2 unk1A8[4];
|
||||
|
||||
struct unkSprite unk208;
|
||||
|
||||
u32 unk210;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -6,5 +6,6 @@
|
|||
bool8 HasNegativeStatus(struct Entity *pokemon);
|
||||
bool8 IsSleeping(struct Entity *pokemon);
|
||||
bool8 HasLowHealth(struct Entity *pokemon);
|
||||
s32 sub_8070828(struct Entity *pokemon, bool8 displayMessage);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ struct UnkTextStruct1 {
|
|||
u16 unk04;
|
||||
u8 fill06[2];
|
||||
u16 unk08;
|
||||
u8 fill04[0x3c];
|
||||
u16 fillA;
|
||||
u32 unkC;
|
||||
u8 fill04[0x36];
|
||||
u8 unk46;
|
||||
};
|
||||
|
||||
|
|
@ -19,9 +21,10 @@ struct UnkTextStruct2_sub
|
|||
};
|
||||
|
||||
struct UnkTextStruct2 {
|
||||
u8 fill00[0x08];
|
||||
u8 fill00[0x04];
|
||||
s32 unk4;
|
||||
struct UnkTextStruct2_sub unk08;
|
||||
s16 unk0c;
|
||||
s16 unkC;
|
||||
s16 unkE;
|
||||
s16 unk10;
|
||||
s16 unk12;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "text.h"
|
||||
#include "item.h"
|
||||
#include "menu.h"
|
||||
|
||||
struct TradeSubStruct
|
||||
{
|
||||
|
|
@ -32,10 +33,7 @@ struct TradeItemsMenu
|
|||
u32 unk30;
|
||||
u32 unk34;
|
||||
u8 fill38[0x44 - 0x38];
|
||||
u32 unk44;
|
||||
u8 fill8[0x134 - 0x48];
|
||||
u32 unk134;
|
||||
u8 fill138[0x184 - 0x138];
|
||||
struct MenuStruct unk44[4];
|
||||
struct UnkTextStruct2 unk184[4];
|
||||
struct UnkTextStruct2 unk1E4[4];
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "file_system.h"
|
||||
#include "text.h"
|
||||
#include "item.h"
|
||||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "code_8094F88.h"
|
||||
|
||||
|
|
@ -61,12 +62,7 @@ struct WonderMailStruct_203B2C0
|
|||
struct WonderMailStruct_203B2C0_sub unk130;
|
||||
u8 fill16A[0x218 - 0x1B8];
|
||||
u8 mailIndex;
|
||||
u32 unk21C;
|
||||
u8 padding[0x7C];
|
||||
u32 unk29C;
|
||||
u8 padding6[0x6C];
|
||||
u32 unk30C;
|
||||
u8 padding8[0x4C];
|
||||
struct MenuStruct unk21C[4];
|
||||
struct UnkTextStruct2 unk35C[4];
|
||||
struct UnkTextStruct2 unk3BC[4];
|
||||
/* 0x41C */ u32 unkfill; // ItemSlot?
|
||||
|
|
@ -99,10 +95,7 @@ struct WonderMailStruct_203B2C4
|
|||
struct unkStruct_203B480 unk1B8;
|
||||
struct unkStruct_203B480 unk1E8;
|
||||
s8 mailIndex;
|
||||
u32 unk21C;
|
||||
u8 filler220[0x30C - 0x220];
|
||||
u32 unk30C;
|
||||
u8 filler310[0x35C - 0x310];
|
||||
struct MenuStruct unk21C[4];
|
||||
struct UnkTextStruct2 unk35C[4];
|
||||
struct UnkTextStruct2 unk3BC[4];
|
||||
struct Item unk41C;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "menu.h"
|
||||
struct unkStruct_203B2F4
|
||||
{
|
||||
u8 fill0[0x1A];
|
||||
|
|
@ -50,9 +51,8 @@ struct unkStruct_203B2F8
|
|||
u32 unk6C;
|
||||
u32 unk70;
|
||||
u32 unk74;
|
||||
u8 unk78[0xC8 - 0x78];
|
||||
u8 unkC8[4];
|
||||
u8 fillCC[0x118 - 0xCC];
|
||||
struct MenuStruct unk78;
|
||||
struct MenuStruct unkC8;
|
||||
struct MenuItem unk118[8];
|
||||
struct MenuItem unk158[8];
|
||||
u16 unk198[8];
|
||||
|
|
|
|||
|
|
@ -89,7 +89,8 @@ SECTIONS {
|
|||
src/save.o(.text);
|
||||
src/code_8012A18.o(.text);
|
||||
src/more_input.o(.text);
|
||||
asm/code_8012A18.o(.text);
|
||||
src/menu_input.o(.text);
|
||||
asm/code_80130A8.o(.text);
|
||||
src/code_8012A18_1.o(.text);
|
||||
src/felicity_bank.o(.text);
|
||||
asm/felicity_bank.o(.text);
|
||||
|
|
@ -111,16 +112,16 @@ SECTIONS {
|
|||
asm/code_801C620.o(.text);
|
||||
src/code_801D760.o(.text);
|
||||
asm/code_801D760.o(.text);
|
||||
src/code_801DCC4.o(.text);
|
||||
asm/code_801DCC4.o(.text);
|
||||
src/options_menu.o(.text);
|
||||
src/hints_menu.o(.text);
|
||||
src/gulpin_shop.o(.text);
|
||||
asm/gulpin_shop.o(.text);
|
||||
src/gulpin_shop_1.o(.text);
|
||||
src/code_801EE10.o(.text);
|
||||
asm/code_801EE10.o(.text);
|
||||
src/code_8023144.o(.text);
|
||||
asm/code_801EE10_1.o(.text);
|
||||
src/code_801EE10.o(.text);
|
||||
src/code_801EE10_1.o(.text);
|
||||
src/luminous_cave.o(.text);
|
||||
src/friend_list_menu_1.o(.text);
|
||||
asm/friend_list_menu.o(.text);
|
||||
|
|
@ -166,10 +167,7 @@ SECTIONS {
|
|||
asm/other_menus.o(.text);
|
||||
src/adventure_log_menu.o(.text);
|
||||
src/unk_menu_203B360.o(.text);
|
||||
asm/unk_menu_203B360.o(.text);
|
||||
src/unk_menu_203B360_1.o(.text);
|
||||
src/unk_menu_203B364.o(.text);
|
||||
asm/unk_menu_203B364.o(.text);
|
||||
src/save_menu.o(.text);
|
||||
src/rescue_password_menu.o(.text);
|
||||
asm/rescue_password_menu.o(.text);
|
||||
src/rescue_password_menu_1.o(.text);
|
||||
|
|
@ -424,6 +422,7 @@ SECTIONS {
|
|||
data/data_80B9BB8.o(.rodata);
|
||||
src/debug.o(.rodata);
|
||||
src/save.o(.rodata);
|
||||
src/menu_input.o(.rodata);
|
||||
data/data_80D47B8.o(.rodata);
|
||||
src/friend_area_action_menu.o(.rodata);
|
||||
src/friend_area_action_menu_1.o(.rodata);
|
||||
|
|
@ -448,6 +447,8 @@ SECTIONS {
|
|||
src/main_menu.o(.rodata);
|
||||
src/trade_items_menu.o(.rodata);
|
||||
data/data_80E59A8.o(.rodata);
|
||||
src/save_menu.o(.rodata);
|
||||
data/data_80E6F20.o(.rodata);
|
||||
src/load_screen.o(.rodata);
|
||||
src/wonder_mail_main_menu.o(.rodata);
|
||||
src/debug_menu.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "input.h"
|
||||
#include "gba/io_reg.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct AdventureLog
|
||||
{
|
||||
|
|
@ -23,7 +24,7 @@ extern struct AdventureLog *gAdventureLog;
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E1FF0 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -31,7 +32,7 @@ const struct UnkTextStruct2 gUnknown_80E1FF0 = {
|
|||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E2008 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x1A, 0x04,
|
||||
0x06, 0x00,
|
||||
|
|
@ -62,7 +63,6 @@ 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);
|
||||
|
|
@ -94,10 +94,10 @@ u32 HandleAdventureLogInput(u8 param_1)
|
|||
else {
|
||||
switch(GetKeyPress(gAdventureLog))
|
||||
{
|
||||
case B_BUTTON:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case A_BUTTON:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -67,10 +67,10 @@ s32 sub_8015FEC(u8 *buffer, s32 size)
|
|||
{
|
||||
struct unkChar *iVar2;
|
||||
s32 currLength;
|
||||
s32 iVar4;
|
||||
s32 length;
|
||||
u8 *bufferPtr;
|
||||
|
||||
iVar4 = 0;
|
||||
length = 0;
|
||||
currLength = 0;
|
||||
|
||||
if(currLength < size && *buffer != '\0')
|
||||
|
|
@ -78,12 +78,12 @@ s32 sub_8015FEC(u8 *buffer, s32 size)
|
|||
bufferPtr = buffer; // Had to have another variable to match..
|
||||
do {
|
||||
iVar2 = GetCharacter(ReturnIntFromChar2(*bufferPtr));
|
||||
iVar4 += iVar2->unk6;
|
||||
length += iVar2->unk6;
|
||||
bufferPtr++;
|
||||
currLength++;
|
||||
} while (currLength < size && *bufferPtr != '\0');
|
||||
}
|
||||
return iVar4;
|
||||
return length;
|
||||
}
|
||||
|
||||
s32 sub_8016028(void)
|
||||
|
|
@ -205,7 +205,7 @@ void CreateConfirmNameMenu(void)
|
|||
|
||||
void sub_80161F8(void)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 length;
|
||||
s32 maxLength;
|
||||
|
||||
if (sub_80154F0() == 3) {
|
||||
|
|
@ -214,9 +214,9 @@ void sub_80161F8(void)
|
|||
sub_80160F4(3);
|
||||
}
|
||||
else{
|
||||
iVar2 = sub_8015FEC(gUnknown_203B200->pokeName, POKEMON_NAME_LENGTH);
|
||||
length = sub_8015FEC(gUnknown_203B200->pokeName, POKEMON_NAME_LENGTH);
|
||||
maxLength = sub_8016028(); // returns 60
|
||||
if (iVar2 > maxLength) {
|
||||
if (length > maxLength) {
|
||||
sub_80160F4(2);
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "team_inventory.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct subStruct_203B240
|
||||
{
|
||||
|
|
@ -38,17 +39,14 @@ struct unkStruct_203B234
|
|||
// size: 0x154
|
||||
u32 unk0;
|
||||
u32 state;
|
||||
u32 unk8;
|
||||
u32 fallbackState;
|
||||
u8 unkC;
|
||||
u8 fillD[0x10 - 0xD];
|
||||
struct Item unk10;
|
||||
struct unkStruct_8090F58 unk14;
|
||||
struct Item unk20;
|
||||
u32 unk24;
|
||||
u32 unk28;
|
||||
u8 fill2C[0x78 - 0x2C];
|
||||
u32 unk78;
|
||||
u8 fill7C[0xC8 - 0x7C];
|
||||
struct MenuStruct unk28;
|
||||
struct MenuStruct unk78;
|
||||
u32 unkC8;
|
||||
struct MenuItem unkCC[5];
|
||||
struct UnkTextStruct2 unkF4[4];
|
||||
|
|
@ -78,7 +76,6 @@ extern struct UnkTextStruct2 gUnknown_80DBA88;
|
|||
extern struct UnkTextStruct2 gUnknown_80DBA70;
|
||||
|
||||
extern void sub_801BB5C(void);
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern void sub_801B748(u32);
|
||||
extern void sub_8008C54(u32);
|
||||
|
|
@ -90,8 +87,6 @@ extern void sub_8013F84(void);
|
|||
extern u32 sub_8012A64(u32 *, u32);
|
||||
extern s32 sub_80913E0(struct Item *, u32, struct subStruct_203B240 **);
|
||||
extern void sub_80141B4(u8 *, u32, u32 *, u32);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern void sub_801BB20(void);
|
||||
extern void sub_801A8D0(u32);
|
||||
extern void sub_801A9E0(void);
|
||||
|
|
@ -375,7 +370,7 @@ void sub_801B874(void)
|
|||
{
|
||||
case 0:
|
||||
if (gUnknown_203B234->unk10.id == ITEM_WEAVILE_FIG) {
|
||||
gUnknown_203B234->unk8 = 0x10;
|
||||
gUnknown_203B234->fallbackState = 0x10;
|
||||
if(sub_8001784(0,0x47,1) != 0)
|
||||
{
|
||||
AddToTeamMoney(1000);
|
||||
|
|
@ -389,7 +384,7 @@ void sub_801B874(void)
|
|||
}
|
||||
else if (gUnknown_203B234->unk10.id == ITEM_MIME_JR_FIG)
|
||||
{
|
||||
gUnknown_203B234->unk8 = 0x10;
|
||||
gUnknown_203B234->fallbackState = 0x10;
|
||||
if(sub_8001784(0, 0x47, 0) != 0)
|
||||
{
|
||||
AddToTeamMoney(1000);
|
||||
|
|
@ -410,13 +405,13 @@ void sub_801B874(void)
|
|||
if((gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.id] + gUnknown_203B234->unkC) > 0x3e7)
|
||||
{
|
||||
store:
|
||||
gUnknown_203B234->unk8 = 6;
|
||||
gUnknown_203B234->fallbackState = 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.id] += gUnknown_203B234->unkC;
|
||||
PlaySound(0xCB);
|
||||
gUnknown_203B234->unk8 = 5;
|
||||
gUnknown_203B234->fallbackState = 5;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -429,7 +424,7 @@ void sub_801B874(void)
|
|||
AddItemToInventory(&gUnknown_203B234->unk10);
|
||||
FillInventoryGaps();
|
||||
PlaySound(0xCB);
|
||||
gUnknown_203B234->unk8 = 0x10;
|
||||
gUnknown_203B234->fallbackState = 0x10;
|
||||
}
|
||||
if(gUnknown_203B234->unk0 == 1)
|
||||
sub_801B748(2);
|
||||
|
|
@ -456,7 +451,7 @@ void sub_801B874(void)
|
|||
sub_80141B4(gUnknown_80DBB9C,0,0,0x101);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B234->unk8 = 0x10;
|
||||
gUnknown_203B234->fallbackState = 0x10;
|
||||
sub_80141B4(gUnknown_80DBC28,0,0,0x101);
|
||||
break;
|
||||
case 6:
|
||||
|
|
@ -488,15 +483,15 @@ void sub_801B874(void)
|
|||
sub_8012D60(&gUnknown_203B234->unk78,gUnknown_203B234->unkCC,0,0,3,1);
|
||||
break;
|
||||
case 0xd:
|
||||
gUnknown_203B234->unk8 = 0x10;
|
||||
gUnknown_203B234->fallbackState = 0x10;
|
||||
sub_80141B4(gUnknown_80DBCC4,0,0,0x101);
|
||||
break;
|
||||
case 0xe:
|
||||
gUnknown_203B234->unk8 = 0x10;
|
||||
gUnknown_203B234->fallbackState = 0x10;
|
||||
sub_80141B4(gUnknown_80DBCE8,0,0,0x101);
|
||||
break;
|
||||
case 0xf:
|
||||
gUnknown_203B234->unk8 = 0x10;
|
||||
gUnknown_203B234->fallbackState = 0x10;
|
||||
sub_80141B4(gUnknown_80DBD24,0,0,0x101);
|
||||
break;
|
||||
case 0x10:
|
||||
|
|
|
|||
|
|
@ -3,15 +3,81 @@
|
|||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "team_inventory.h"
|
||||
#include "text.h"
|
||||
#include "subStruct_203B240.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B234
|
||||
{
|
||||
// size: 0x154
|
||||
u32 unk0;
|
||||
u32 state;
|
||||
u32 fallbackState;
|
||||
u8 unkC;
|
||||
struct Item unk10;
|
||||
struct unkStruct_8090F58 unk14;
|
||||
struct Item unk20;
|
||||
u32 unk24;
|
||||
struct MenuStruct unk28;
|
||||
struct MenuStruct unk78;
|
||||
u32 unkC8;
|
||||
struct MenuItem unkCC[5];
|
||||
struct UnkTextStruct2 unkF4[4];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B234 *gUnknown_203B234;
|
||||
|
||||
|
||||
struct unkStruct_203B238
|
||||
{
|
||||
// size: 0x124
|
||||
u32 state;
|
||||
s16 species;
|
||||
struct PokemonStruct *pokeStruct;
|
||||
u8 iqSkills[NUM_IQ_SKILLS];
|
||||
u32 unk24;
|
||||
u8 iqSkillIndex;
|
||||
u32 numIQSkills;
|
||||
s32 unk30;
|
||||
struct MenuItem unk34[8];
|
||||
struct MenuStruct unk74;
|
||||
struct UnkTextStruct2 unkC4[4];
|
||||
};
|
||||
|
||||
struct unkStruct_203B23C
|
||||
{
|
||||
// size: 0xC4
|
||||
/* 0x0 */ s16 species;
|
||||
/* 0x4 */ struct PokemonStruct *pokeStruct;
|
||||
/* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS];
|
||||
/* 0x20 */ s32 numIQSkills;
|
||||
/* 0x24 */ u32 unk24;
|
||||
u8 fill28[0x3C - 0x28];
|
||||
s16 unk3C;
|
||||
s16 unk3E;
|
||||
s16 unk40;
|
||||
s16 unk42;
|
||||
s16 unk44;
|
||||
s16 unk46;
|
||||
u8 fill48[0x52 - 0x48];
|
||||
u8 unk52;
|
||||
u8 fill52[0x58 - 0x53];
|
||||
u32 unk58;
|
||||
/* 0x5C */ struct UnkTextStruct2 *unk5C;
|
||||
/* 0x60 */ struct UnkTextStruct2 unk60[4];
|
||||
u8 unkC0;
|
||||
u8 unkC1;
|
||||
u8 unkC2;
|
||||
u8 unkC3;
|
||||
};
|
||||
|
||||
struct unkStruct_203B240
|
||||
{
|
||||
// size: 0x94
|
||||
s32 state;
|
||||
u8 chosenIQSkill;
|
||||
u8 fill5[3];
|
||||
s32 unk8;
|
||||
s32 unkC;
|
||||
struct subStruct_203B240 *unk10[2];
|
||||
|
|
@ -43,51 +109,680 @@ struct unkStruct_203B244
|
|||
};
|
||||
|
||||
extern const struct UnkTextStruct2 gUnknown_80DBE54;
|
||||
extern struct UnkTextStruct2 gUnknown_80DBDD8;
|
||||
extern struct UnkTextStruct2 gUnknown_80DBDF0;
|
||||
extern struct UnkTextStruct2 gUnknown_80DBDB0;
|
||||
extern struct UnkTextStruct2 gUnknown_80DBD98;
|
||||
|
||||
extern struct unkStruct_203B244 *gUnknown_203B244;
|
||||
extern struct unkStruct_203B238 *gUnknown_203B238;
|
||||
extern struct unkStruct_203B23C *gUnknown_203B23C;
|
||||
extern struct unkStruct_203B240 *gUnknown_203B240;
|
||||
extern struct unkStruct_203B244 *gUnknown_203B244;
|
||||
|
||||
extern u32 gUnknown_203B248;
|
||||
extern u16 gUnknown_203B24C;
|
||||
extern u16 gUnknown_203B24E;
|
||||
|
||||
extern char gUnknown_80DBE2C[]; // {ARG_MOVE_ITEM_0}
|
||||
extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0}
|
||||
extern u8 gUnknown_202DE58[0x58];
|
||||
extern u8 gAvailablePokemonNames[0x58];
|
||||
|
||||
extern u8 gUnknown_80DBE18[];
|
||||
extern u8 gUnknown_80DBE14[];
|
||||
extern u8 gUnknown_202DEA8[];
|
||||
extern u8 gUnknown_202DE58[];
|
||||
extern u8 gUnknown_80DBE08[];
|
||||
extern u8 gUnknown_80DBE1C[];
|
||||
extern char gUnknown_80DBE2C[]; // {ARG_MOVE_ITEM_0}
|
||||
extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0}
|
||||
extern u8 gUnknown_80DBDC8[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
|
||||
|
||||
extern bool8 sub_801CF14(u32);
|
||||
extern void sub_8012D08(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_8013818(u32 *, u32, u32, u32);
|
||||
extern u32 sub_801CE58(void);
|
||||
extern void sub_8013984(void *);
|
||||
extern void sub_801CC38(void);
|
||||
extern void sub_801CCD8(void);
|
||||
extern void sub_801CF94(void);
|
||||
|
||||
|
||||
extern void ResetSprites(u32);
|
||||
extern void sub_801317C(u32 *);
|
||||
extern void sub_80140B4(struct UnkTextStruct2 *);
|
||||
|
||||
|
||||
extern void xxx_format_and_draw(u32, u32, char *, u32, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void xxx_call_draw_string(u32, u32, char *, u32, u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
|
||||
extern u32 sub_8012A64(u32 *, u32);
|
||||
extern void sub_8013F84();
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern char * GetIQSkillName(u8 r0);
|
||||
extern char * GetIQSkillDescription(u8 r0);
|
||||
extern s32 GetNumAvailableIQSkills(u8 *param_1, s32 pokeIQ);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
|
||||
extern char * GetIQSkillName(u8 r0);
|
||||
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
|
||||
extern s32 sub_8013800(u32 *, s32);
|
||||
extern u32 sub_80095E4(s16, u32);
|
||||
extern void sub_801C440(void);
|
||||
extern void sub_801C4C8(void);
|
||||
extern void AddMenuCursorSprite(u32 *);
|
||||
extern u8 sub_80138B8(u32 *, u32);
|
||||
extern void sub_8013660(u32 *);
|
||||
extern s32 GetKeyPress(u32 *);
|
||||
extern bool8 HasNoAvailIQSkills(s16 species);
|
||||
extern u32 sub_801C674(void);
|
||||
extern void sub_801C6B4(void);
|
||||
|
||||
void sub_801BFB4(s32);
|
||||
void sub_801C6D0(s32);
|
||||
void sub_801C7D4();
|
||||
void sub_801C6E4();
|
||||
void sub_801C848();
|
||||
|
||||
u32 sub_801C308(u8);
|
||||
extern void PlaySound(u32);
|
||||
void ToggleIQSkill(u8 *param_1, u32 skillIndex);
|
||||
s32 sub_801C390(void);
|
||||
void sub_801C3F8(void);
|
||||
|
||||
bool8 sub_801C244(s16 species, u32 index, u32 param_3);
|
||||
void sub_801C0C8(void);
|
||||
u32 sub_801C620(u8 iqSkill);
|
||||
void sub_801C3B0(u8);
|
||||
void sub_801BFCC(void);
|
||||
void sub_801C03C(void);
|
||||
|
||||
void sub_801C118();
|
||||
void sub_801C1A0();
|
||||
void sub_801C228();
|
||||
|
||||
void sub_801B748(u32);
|
||||
|
||||
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern void sub_801A928(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern u32 sub_801A8AC();
|
||||
|
||||
extern u8 *gUnknown_80D4920[];
|
||||
extern u8 *gUnknown_80D4928[];
|
||||
|
||||
void sub_801BC24(void)
|
||||
{
|
||||
struct unkStruct_203B234 *puVar1;
|
||||
u8 *nullText;
|
||||
u32 menuAction;
|
||||
|
||||
puVar1 = gUnknown_203B234;
|
||||
nullText = NULL;
|
||||
puVar1->unkCC[0].text = *gUnknown_80D4920;
|
||||
gUnknown_203B234->unkCC[0].menuAction = 2;
|
||||
menuAction = 1;
|
||||
gUnknown_203B234->unkCC[1].text = *gUnknown_80D4928;
|
||||
gUnknown_203B234->unkCC[1].menuAction = 3;
|
||||
gUnknown_203B234->unkCC[2].text = nullText;
|
||||
gUnknown_203B234->unkCC[2].menuAction = menuAction;
|
||||
}
|
||||
|
||||
void sub_801BC64(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp)== 0)
|
||||
{
|
||||
switch(temp)
|
||||
{
|
||||
case 4:
|
||||
sub_801B748(0x8);
|
||||
break;
|
||||
case 5:
|
||||
sub_801B748(0x7);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801BC94(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
switch(temp)
|
||||
{
|
||||
case 2:
|
||||
sub_801B748(0xD);
|
||||
break;
|
||||
case 1:
|
||||
case 3:
|
||||
sub_801B748(0x6);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801BCCC(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B234->unk24 = sub_801A8AC();
|
||||
gUnknown_203B234->unk20 = gTeamInventory_203B460->teamItems[gUnknown_203B234->unk24];
|
||||
sub_8090E14(gUnknown_202DEA8, &gUnknown_203B234->unk20, &gUnknown_203B234->unk14);
|
||||
sub_801B748(0xA);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B234->unk24 = sub_801A8AC();
|
||||
gUnknown_203B234->unk20 = gTeamInventory_203B460->teamItems[gUnknown_203B234->unk24];
|
||||
sub_8090E14(gUnknown_202DEA8, &gUnknown_203B234->unk20, &gUnknown_203B234->unk14);
|
||||
sub_8099690(0);
|
||||
sub_801B748(0xB);
|
||||
break;
|
||||
case 2:
|
||||
sub_801A928();
|
||||
sub_801B748(6);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801BD80(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
if (sub_8012FD8(&gUnknown_203B234->unk28) == '\0') {
|
||||
sub_8013114(&gUnknown_203B234->unk28,&menuAction);
|
||||
if (menuAction != 1) gUnknown_203B234->unkC8 = menuAction;
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 6:
|
||||
MoveToStorage(&gUnknown_203B234->unk20);
|
||||
ShiftItemsDownFrom(gUnknown_203B234->unk24);
|
||||
AddItemToInventory(&gUnknown_203B234->unk10);
|
||||
FillInventoryGaps();
|
||||
PlaySound(0xcb);
|
||||
sub_8099690(0);
|
||||
sub_801A928();
|
||||
sub_801B748(0xE);
|
||||
break;
|
||||
case 7:
|
||||
sub_801B748(0xC);
|
||||
break;
|
||||
case 8:
|
||||
sub_8099690(0);
|
||||
sub_801B748(0xB);
|
||||
break;
|
||||
case 1:
|
||||
sub_801B748(0x9);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801BE30(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_8012FD8(&gUnknown_203B234->unk28);
|
||||
if (sub_8012FD8(&gUnknown_203B234->unk78) == '\0') {
|
||||
sub_8013114(&gUnknown_203B234->unk78,&menuAction);
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 1:
|
||||
case 3:
|
||||
sub_801B748(9);
|
||||
break;
|
||||
case 2:
|
||||
ShiftItemsDownFrom(gUnknown_203B234->unk24);
|
||||
AddItemToInventory(&gUnknown_203B234->unk10);
|
||||
FillInventoryGaps();
|
||||
PlaySound(0xcb);
|
||||
sub_801A928();
|
||||
sub_801B748(0xf);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801BEAC(void)
|
||||
{
|
||||
switch(sub_801B410())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B450();
|
||||
sub_801B748(9);
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801BEC8(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
sub_801B748(gUnknown_203B234->fallbackState);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_801BEEC(s16 species)
|
||||
{
|
||||
s32 species_s32 = species;
|
||||
if (HasNoAvailIQSkills(species_s32)) {
|
||||
return FALSE;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B238 = MemoryAlloc(sizeof(struct unkStruct_203B238),8);
|
||||
gUnknown_203B238->unk30 = 0;
|
||||
gUnknown_203B238->species = species_s32;
|
||||
gUnknown_203B238->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
|
||||
gUnknown_203B238->numIQSkills = GetNumAvailableIQSkills(gUnknown_203B238->iqSkills,gUnknown_203B238->pokeStruct->IQ);
|
||||
sub_801BFB4(0);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_801BF48(void)
|
||||
{
|
||||
switch(gUnknown_203B238->state)
|
||||
{
|
||||
case 4:
|
||||
return 3;
|
||||
case 0:
|
||||
case 1:
|
||||
sub_801C118();
|
||||
break;
|
||||
case 2:
|
||||
sub_801C1A0();
|
||||
break;
|
||||
case 3:
|
||||
sub_801C228();
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_801BF98(void)
|
||||
{
|
||||
if(gUnknown_203B238 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B238);
|
||||
gUnknown_203B238 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801BFB4(s32 newState)
|
||||
{
|
||||
gUnknown_203B238->state = newState;
|
||||
sub_801BFCC();
|
||||
sub_801C03C();
|
||||
}
|
||||
|
||||
void sub_801BFCC(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
sub_8006518(gUnknown_203B238->unkC4);
|
||||
if(gUnknown_203B238->state == 2)
|
||||
{
|
||||
gUnknown_203B238->unkC4[2] = gUnknown_80DBDB0;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B238->unkC4[index] = gUnknown_80DBD98;
|
||||
}
|
||||
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B238->unkC4, 1, 1);
|
||||
}
|
||||
|
||||
void sub_801C03C(void)
|
||||
{
|
||||
switch(gUnknown_203B238->state) {
|
||||
case 0:
|
||||
sub_801C244(gUnknown_203B238->species,0,8);
|
||||
break;
|
||||
case 1:
|
||||
sub_801C3B0(1);
|
||||
break;
|
||||
case 2:
|
||||
sub_801C4C8();
|
||||
sub_801C0C8();
|
||||
sub_8012D60(&gUnknown_203B238->unk74,gUnknown_203B238->unk34,0,0,gUnknown_203B238->unk30,2);
|
||||
break;
|
||||
case 3:
|
||||
sub_801C620(gUnknown_203B238->iqSkillIndex);
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801C0C8(void)
|
||||
{
|
||||
struct unkStruct_203B238 *puVar1;
|
||||
int index;
|
||||
u8 *nullText;
|
||||
u32 menuAction;
|
||||
s32 max;
|
||||
|
||||
puVar1 = gUnknown_203B238;
|
||||
nullText = NULL;
|
||||
gUnknown_203B238->unk34[0].text = gUnknown_80DBDC8;
|
||||
puVar1->unk34[0].menuAction = 2;
|
||||
menuAction = 1;
|
||||
puVar1->unk34[1].text = *gUnknown_80D4970;
|
||||
puVar1->unk34[1].menuAction = 3;
|
||||
|
||||
max = 2;
|
||||
puVar1->unk34[2].text = nullText;
|
||||
puVar1->unk34[2].menuAction = menuAction;
|
||||
|
||||
for(index = 0; index < max; index++)
|
||||
{
|
||||
if(gUnknown_203B238->unk34[index].menuAction == gUnknown_203B238->unk30)
|
||||
return;
|
||||
}
|
||||
gUnknown_203B238->unk30 = 2;
|
||||
}
|
||||
|
||||
void sub_801C118(void)
|
||||
{
|
||||
switch(sub_801C308(1)) {
|
||||
case 3:
|
||||
gUnknown_203B238->unk24 = sub_801C390();
|
||||
gUnknown_203B238->iqSkillIndex = gUnknown_203B238->iqSkills[gUnknown_203B238->unk24];
|
||||
sub_801BFB4(2);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B238->unk24 = sub_801C390();
|
||||
gUnknown_203B238->iqSkillIndex = gUnknown_203B238->iqSkills[gUnknown_203B238->unk24];
|
||||
sub_801BFB4(3);
|
||||
break;
|
||||
case 2:
|
||||
sub_801C3F8();
|
||||
sub_801BFB4(4);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801C1A0(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801C308(0);
|
||||
if (!(sub_8012FD8(&gUnknown_203B238->unk74)) && (sub_8013114(&gUnknown_203B238->unk74,&menuAction), menuAction != 1)) {
|
||||
gUnknown_203B238->unk30 = menuAction;
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
case 2:
|
||||
PlaySound(0x133);
|
||||
ToggleIQSkill((u8 *)&gUnknown_203B238->pokeStruct->IQSkills,gUnknown_203B238->iqSkillIndex);
|
||||
sub_801BFB4(1);
|
||||
break;
|
||||
case 3:
|
||||
sub_801BFB4(3);
|
||||
break;
|
||||
case 1:
|
||||
sub_801BFB4(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801C228(void)
|
||||
{
|
||||
switch(sub_801C674())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801C6B4();
|
||||
sub_801BFB4(1);
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_801C244(s16 species, u32 index, u32 param_3)
|
||||
{
|
||||
#ifndef NONMATCHING
|
||||
register s32 species_s32 asm("r4");
|
||||
#else
|
||||
s32 species_s32;
|
||||
#endif
|
||||
|
||||
species_s32 = species;
|
||||
|
||||
if (HasNoAvailIQSkills(species)) {
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_203B23C == NULL) {
|
||||
gUnknown_203B23C = MemoryAlloc(sizeof(struct unkStruct_203B23C),8);
|
||||
}
|
||||
gUnknown_203B23C->species = species_s32;
|
||||
gUnknown_203B23C->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
|
||||
gUnknown_203B23C->numIQSkills = GetNumAvailableIQSkills(gUnknown_203B23C->iqSkills,gUnknown_203B23C->pokeStruct->IQ);
|
||||
gUnknown_203B23C->unk58 = index;
|
||||
gUnknown_203B23C->unk5C = &gUnknown_203B23C->unk60[index];
|
||||
sub_8006518(gUnknown_203B23C->unk60);
|
||||
gUnknown_203B23C->unk60[gUnknown_203B23C->unk58] = gUnknown_80DBDF0;
|
||||
gUnknown_203B23C->unk5C->unk14 = &gUnknown_203B23C->unkC0;
|
||||
sub_8012D08(gUnknown_203B23C->unk5C,param_3);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B23C->unk60,1,1);
|
||||
sub_8013818(&gUnknown_203B23C->unk24,gUnknown_203B23C->numIQSkills,param_3,index);
|
||||
sub_801C440();
|
||||
sub_801C4C8();
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_801C308(u8 r0)
|
||||
{
|
||||
if(r0 == 0)
|
||||
{
|
||||
sub_8013660(&gUnknown_203B23C->unk24);
|
||||
return 0;
|
||||
}
|
||||
switch(GetKeyPress(&gUnknown_203B23C->unk24))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 4:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if(sub_80138B8(&gUnknown_203B23C->unk24, 1) != 0)
|
||||
{
|
||||
sub_801C440();
|
||||
sub_801C4C8();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_801C390(void)
|
||||
{
|
||||
return (gUnknown_203B23C->unk42 * gUnknown_203B23C->unk40) + gUnknown_203B23C->unk3C;
|
||||
}
|
||||
|
||||
void sub_801C3B0(u8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B23C->unk60, 0, 0);
|
||||
gUnknown_203B23C->unk46 = gUnknown_203B23C->numIQSkills;
|
||||
sub_8013984(&gUnknown_203B23C->unk24);
|
||||
sub_801C440();
|
||||
sub_801C4C8();
|
||||
if(r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B23C->unk24);
|
||||
}
|
||||
|
||||
void sub_801C3F8(void)
|
||||
{
|
||||
if(gUnknown_203B23C != NULL)
|
||||
{
|
||||
gUnknown_203B23C->unk60[gUnknown_203B23C->unk58] = gUnknown_80DBDD8;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B23C->unk60, 1, 1);
|
||||
MemoryFree(gUnknown_203B23C);
|
||||
gUnknown_203B23C = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
// https://decomp.me/scratch/NdDP3 (98.06% matching) - Seth
|
||||
void sub_801C440(void)
|
||||
{
|
||||
u16 sVar2;
|
||||
|
||||
gUnknown_203B23C->unkC0 = gUnknown_203B23C->unk44;
|
||||
gUnknown_203B23C->unkC1 = gUnknown_203B23C->unk42;
|
||||
gUnknown_203B23C->unkC2 = 0xA;
|
||||
gUnknown_203B23C->unkC3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B23C->unk60, 1, 1);
|
||||
sVar2 = sub_80095E4(gUnknown_203B23C->unk3E, 0xc) + 2;
|
||||
gUnknown_203B23C->unk60[gUnknown_203B23C->unk58].unkE = sVar2;
|
||||
gUnknown_203B23C->unk60[gUnknown_203B23C->unk58].unk10 = sVar2;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B23C->unk60, 1, 1);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_801C440(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tldr r4, _0801C4C4\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r1, r0, 0\n"
|
||||
"\tadds r1, 0x44\n"
|
||||
"\tldrh r1, [r1]\n"
|
||||
"\tadds r0, 0xC0\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r1, r0, 0\n"
|
||||
"\tadds r1, 0x42\n"
|
||||
"\tldrh r1, [r1]\n"
|
||||
"\tadds r0, 0xC1\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xC2\n"
|
||||
"\tmovs r1, 0xA\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xC3\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x60\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x3E\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x58]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x6E\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r3, [r2, 0x58]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r2, r1\n"
|
||||
"\tadds r2, 0x70\n"
|
||||
"\tstrh r0, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x60\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"
|
||||
"_0801C4C4: .4byte gUnknown_203B23C"
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
void sub_801C4C8(void)
|
||||
{
|
||||
u32 y;
|
||||
s32 x;
|
||||
s32 x2;
|
||||
u32 skillIndex;
|
||||
s32 counter;
|
||||
|
||||
sub_8008C54(gUnknown_203B23C->unk58);
|
||||
sub_80073B8(gUnknown_203B23C->unk58);
|
||||
x = gUnknown_203B23C->unk42 * 8;
|
||||
x2 = x;
|
||||
x2 += 10;
|
||||
xxx_call_draw_string(x2,0,gUnknown_80DBE08,gUnknown_203B23C->unk58,0);
|
||||
x += 4;
|
||||
x2 = x + gUnknown_203B23C->unkC2 * 8;
|
||||
sub_8012BC4(x2,0,gUnknown_203B23C->unk42 + 1,1,7,
|
||||
gUnknown_203B23C->unk58);
|
||||
counter = 0;
|
||||
if (counter < gUnknown_203B23C->unk3E) {
|
||||
do {
|
||||
skillIndex = gUnknown_203B23C->iqSkills
|
||||
[gUnknown_203B23C->unk42 * gUnknown_203B23C->unk40 + counter];
|
||||
y = sub_8013800(&gUnknown_203B23C->unk24,counter);
|
||||
strncpy(gUnknown_202DEA8,GetIQSkillName(skillIndex),0x50);
|
||||
if (IsIQSkillSet((u8 *)&gUnknown_203B23C->pokeStruct->IQSkills,1 << skillIndex)) {
|
||||
strcpy(gUnknown_202DEA8 - 0x50,gUnknown_80DBE14);
|
||||
}
|
||||
else {
|
||||
strcpy(gUnknown_202DEA8 - 0x50,gUnknown_80DBE18);
|
||||
}
|
||||
xxx_format_and_draw(0xc,y,gUnknown_80DBE1C,gUnknown_203B23C->unk58,0);
|
||||
counter++;
|
||||
} while (counter < gUnknown_203B23C->unk3E);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B23C->unk58);
|
||||
}
|
||||
|
||||
bool8 HasNoAvailIQSkills(s16 species)
|
||||
{
|
||||
s32 species_s32;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,17 @@
|
|||
#include "global.h"
|
||||
#include "friend_area.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "constants/input.h"
|
||||
#include "file_system.h"
|
||||
#include "item.h"
|
||||
#include "menu.h"
|
||||
#include "team_inventory.h"
|
||||
#include "memory.h"
|
||||
#include "input.h"
|
||||
#include "text.h"
|
||||
#include "rescue_team_info.h"
|
||||
#include "code_800D090.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B258
|
||||
{
|
||||
|
|
@ -63,8 +66,6 @@ extern u32 sub_80270A4();
|
|||
extern u32 sub_802C898(void);
|
||||
extern void sub_802C8F4(void);
|
||||
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern const char *sub_8098FB4();
|
||||
extern void xxx_format_string(const char *, u8 *, u32 **, u32);
|
||||
extern s32 sub_8008ED0(u8 *);
|
||||
|
|
@ -98,7 +99,7 @@ struct unk_203B250
|
|||
u8 unk9;
|
||||
u8 fillA[0x14 - 0xA];
|
||||
u32 unk14;
|
||||
u32 unk18; // an input struct??
|
||||
struct MenuStruct unk18;
|
||||
};
|
||||
|
||||
struct unk_203B250 *gUnknown_203B250;
|
||||
|
|
@ -394,10 +395,10 @@ u32 sub_801DA78(void)
|
|||
{
|
||||
switch(GetKeyPress(gUnknown_203B258))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
return 3;
|
||||
default:
|
||||
if(sub_80138B8(gUnknown_203B258, 1) != 0)
|
||||
|
|
|
|||
|
|
@ -1,311 +1,89 @@
|
|||
#include "global.h"
|
||||
#include "code_800D090.h"
|
||||
#include "pokemon.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "memory.h"
|
||||
#include "input.h"
|
||||
|
||||
struct unkStruct_203B2AC
|
||||
{
|
||||
u8 unk0[0x1E];
|
||||
s16 unk1E;
|
||||
s16 unk20;
|
||||
u8 unk22[0x34 - 0x22];
|
||||
u32 unk34[3];
|
||||
u8 unk40[0x48 - 0x40];
|
||||
s16 speciesNum;
|
||||
u32 unk4C;
|
||||
u8 unk50[0xB0 - 0x50];
|
||||
u32 unkB0;
|
||||
u8 fillB4[0xE0 - 0xB4];
|
||||
u32 unkE0;
|
||||
struct UnkTextStruct2 *unkE4;
|
||||
struct UnkTextStruct2 unkE8[4];
|
||||
u8 unk148[4];
|
||||
};
|
||||
extern struct unkStruct_203B2AC *gUnknown_203B2AC;
|
||||
|
||||
struct unkStruct_3001B60
|
||||
struct unkStruct_203B270
|
||||
{
|
||||
// size 0xBC
|
||||
u32 unk0;
|
||||
u32 sortMethod;
|
||||
u32 unk8;
|
||||
u32 unkC;
|
||||
u32 unk10;
|
||||
u8 fill14[0x18 - 0x14];
|
||||
s16 unk18;
|
||||
s16 unk1A[2];
|
||||
u8 fill1C[0x370 - 0x1E];
|
||||
s16 unk370;
|
||||
s16 unk372;
|
||||
s16 unk374;
|
||||
s16 unk376;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
/* 0x8 */ struct PokemonStruct *pokeStruct;
|
||||
/* 0xC */ u8 isTeamLeader;
|
||||
/* 0x10 */ struct Move *moves;
|
||||
u8 fill14[0x1C - 0x14];
|
||||
u32 unk1C;
|
||||
u8 fill20[0x50 - 0x20];
|
||||
u32 unk50;
|
||||
u32 unk54;
|
||||
struct UnkTextStruct2 unk58[4];
|
||||
u32 unkB8;
|
||||
};
|
||||
|
||||
extern struct unkStruct_3001B60 *gUnknown_3001B60;
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80DC9B0;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC9C8;
|
||||
extern struct unkStruct_203B270 *gUnknown_203B270;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC25C;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC274;
|
||||
|
||||
extern void sub_8012D08(void *, u32);
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
extern bool8 sub_80023E4(u32);
|
||||
extern void sub_808FF20(u32 *, struct PokemonStruct *, bool8);
|
||||
extern void CreatePokemonInfoTabScreen(u32, s16, u32 *, u32 *, u32);
|
||||
extern s32 GetKeyPress(void *);
|
||||
extern bool8 sub_8013938(void *);
|
||||
extern void sub_802452C(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern void sub_8013984(void *);
|
||||
void sub_80922B4(u8 *buffer, u8 *string, s32 size);
|
||||
bool8 ComparePokemonNames(s16 a1, s16 a2);
|
||||
u32 sub_8006544(u32 index);
|
||||
s32 sub_801F3F8(void);
|
||||
void sub_8013780(u32 *, u32);
|
||||
void sub_801F280(u32);
|
||||
|
||||
void sub_8024588(void);
|
||||
void sub_80245D0(void);
|
||||
void sub_8024604(void);
|
||||
|
||||
extern u8 gUnknown_80DC9A4[];
|
||||
|
||||
void SortbyInternalNo(s32 param_1, s32 param_2);
|
||||
void SortbyAlphabetNo(s32 param_1,s32 param_2);
|
||||
void SortbyName(s32 param_1,s32 param_2);
|
||||
|
||||
bool8 sub_8024184(struct PokemonStruct *pokemon, u8 area)
|
||||
u8 sub_801EE10(u32 param_1,s16 species,struct Move *moves,u32 param_4,u32 param_5,u32 param_6)
|
||||
{
|
||||
if(area == GetFriendArea(pokemon->speciesNum))
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80241A8(void)
|
||||
{
|
||||
switch(gUnknown_3001B60->sortMethod)
|
||||
{
|
||||
case 2:
|
||||
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) {
|
||||
SortbyAlphabetNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
|
||||
}
|
||||
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) {
|
||||
SortbyAlphabetNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) {
|
||||
SortbyName(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
|
||||
}
|
||||
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) {
|
||||
SortbyName(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) {
|
||||
SortbyInternalNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
|
||||
}
|
||||
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) {
|
||||
SortbyInternalNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SortbyInternalNo(s32 param_1, s32 param_2)
|
||||
{
|
||||
s16 *r4;
|
||||
s32 iVar4;
|
||||
s16 *r10;
|
||||
s16 *r5;
|
||||
s32 r6;
|
||||
s32 r1;
|
||||
s32 r7;
|
||||
s32 r9;
|
||||
|
||||
r10 = &gUnknown_3001B60->unk18 + param_2;
|
||||
r7 = param_1;
|
||||
r1 = param_2 - 1;
|
||||
if (r7 < r1) {
|
||||
r9 = r1;
|
||||
do {
|
||||
r4 = r10;
|
||||
r6 = r1;
|
||||
iVar4 = r7 + 1;
|
||||
for (; r6 > r7; r6--) {
|
||||
if (GetInternalNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum) > GetInternalNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum)) {
|
||||
r1 = *r4;
|
||||
*r4 = *r5;
|
||||
*r5 = r1;
|
||||
}
|
||||
r4 = r5;
|
||||
}
|
||||
r7 = iVar4;
|
||||
r1 = r9;
|
||||
} while (iVar4 < r1);
|
||||
}
|
||||
}
|
||||
|
||||
void SortbyAlphabetNo(s32 param_1,s32 param_2)
|
||||
{
|
||||
s16 *r4;
|
||||
s32 iVar4;
|
||||
s16 *r10;
|
||||
s16 *r5;
|
||||
s32 r6;
|
||||
s32 r1;
|
||||
s32 r7;
|
||||
s32 r9;
|
||||
|
||||
r10 = &gUnknown_3001B60->unk18 + param_2;
|
||||
r7 = param_1;
|
||||
r1 = param_2 - 1;
|
||||
if (r7 < r1) {
|
||||
r9 = r1;
|
||||
do {
|
||||
r4 = r10;
|
||||
r6 = r1;
|
||||
iVar4 = r7 + 1;
|
||||
for (; r6 > r7; r6--) {
|
||||
if (GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum, 0) > GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum, 0)) {
|
||||
r1 = *r4;
|
||||
*r4 = *r5;
|
||||
*r5 = r1;
|
||||
}
|
||||
r4 = r5;
|
||||
}
|
||||
r7 = iVar4;
|
||||
r1 = r9;
|
||||
} while (iVar4 < r1);
|
||||
}
|
||||
}
|
||||
|
||||
void SortbyName(s32 param_1,s32 param_2)
|
||||
{
|
||||
s16 *r4;
|
||||
s32 iVar4;
|
||||
s16 *r10;
|
||||
s16 *r5;
|
||||
s32 r6;
|
||||
s32 r1;
|
||||
s32 r7;
|
||||
s32 r9;
|
||||
|
||||
r10 = &gUnknown_3001B60->unk18 + param_2;
|
||||
r7 = param_1;
|
||||
r1 = param_2 - 1;
|
||||
if (r7 < r1) {
|
||||
r9 = r1;
|
||||
do {
|
||||
r4 = r10;
|
||||
r6 = r1;
|
||||
iVar4 = r7 + 1;
|
||||
for (; r6 > r7; r6--) {
|
||||
r5 = r4 - 1;
|
||||
if (ComparePokemonNames(*r5, *r4)) {
|
||||
r1 = *r4;
|
||||
*r4 = *r5;
|
||||
*r5 = r1;
|
||||
}
|
||||
r4 = r5;
|
||||
}
|
||||
r7 = iVar4;
|
||||
r1 = r9;
|
||||
} while (iVar4 < r1);
|
||||
}
|
||||
}
|
||||
|
||||
struct PokemonStruct *sub_80243E8(void)
|
||||
{
|
||||
u8 buffer [40];
|
||||
u8 nameBuffer [20];
|
||||
struct PokemonStruct *pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_3001B60->unk1A[gUnknown_3001B60->unk376 * gUnknown_3001B60->unk374 + gUnknown_3001B60->unk370]];
|
||||
|
||||
sub_80922B4(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH);
|
||||
sprintfStatic(buffer, gUnknown_80DC9A4,nameBuffer); // %s
|
||||
return pokeStruct;
|
||||
}
|
||||
|
||||
bool8 sub_8024458(s16 speciesNum, s32 param_2)
|
||||
{
|
||||
s32 speciesNum_s32 = speciesNum;
|
||||
gUnknown_203B2AC = MemoryAlloc(sizeof(struct unkStruct_203B2AC), 8);
|
||||
gUnknown_203B2AC->speciesNum = speciesNum_s32;
|
||||
gUnknown_203B2AC->unkE0 = param_2;
|
||||
gUnknown_203B2AC->unkE4 = &gUnknown_203B2AC->unkE8[param_2];
|
||||
sub_8006518(gUnknown_203B2AC->unkE8);
|
||||
gUnknown_203B2AC->unkE8[gUnknown_203B2AC->unkE0] = gUnknown_80DC9C8;
|
||||
gUnknown_203B2AC->unkE4->unk14 = gUnknown_203B2AC->unk148;
|
||||
gUnknown_203B2AC->unk148[2] = 10;
|
||||
sub_8024604();
|
||||
sub_802452C();
|
||||
sub_8013984(gUnknown_203B2AC);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u8 sub_80244E4(void)
|
||||
{
|
||||
switch(GetKeyPress(gUnknown_203B2AC))
|
||||
s32 iVar5;
|
||||
s32 iVar8;
|
||||
s32 species_s32;
|
||||
u8 param_4_u8;
|
||||
s32 four;
|
||||
|
||||
species_s32 = species;
|
||||
param_4_u8 = param_4;
|
||||
gUnknown_203B270 = MemoryAlloc(sizeof(struct unkStruct_203B270), 8);
|
||||
gUnknown_203B270->unk4 = param_4_u8;
|
||||
gUnknown_203B270->unk5 = 1;
|
||||
gUnknown_203B270->unk6 = 1;
|
||||
gUnknown_203B270->unk7 = 1;
|
||||
gUnknown_203B270->unk0 = param_1;
|
||||
switch(param_1)
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 3:
|
||||
gUnknown_203B270->unk5 = 0;
|
||||
gUnknown_203B270->unk6 = 0;
|
||||
gUnknown_203B270->unk7 = 0;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (sub_8013938(gUnknown_203B2AC) != 0) {
|
||||
sub_802452C();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802452C(void)
|
||||
{
|
||||
sub_8024588();
|
||||
sub_80245D0();
|
||||
}
|
||||
|
||||
void sub_802453C(void)
|
||||
{
|
||||
if(gUnknown_203B2AC)
|
||||
{
|
||||
gUnknown_203B2AC->unkE8[gUnknown_203B2AC->unkE0] = gUnknown_80DC9B0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2AC->unkE8, 1, 1);
|
||||
MemoryFree(gUnknown_203B2AC);
|
||||
gUnknown_203B2AC = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8024588(void)
|
||||
{
|
||||
gUnknown_203B2AC->unk148[0] = gUnknown_203B2AC->unk20;
|
||||
gUnknown_203B2AC->unk148[1] = gUnknown_203B2AC->unk1E;
|
||||
gUnknown_203B2AC->unk148[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2AC->unkE8,1,1);
|
||||
}
|
||||
|
||||
void sub_80245D0(void)
|
||||
{
|
||||
CreatePokemonInfoTabScreen
|
||||
(gUnknown_203B2AC->unk34[gUnknown_203B2AC->unk1E],
|
||||
gUnknown_203B2AC->unk1E,&gUnknown_203B2AC->unk4C,
|
||||
&gUnknown_203B2AC->unkB0,gUnknown_203B2AC->unkE0);
|
||||
}
|
||||
|
||||
void sub_8024604(void)
|
||||
{
|
||||
struct PokemonStruct *pokeStruct;
|
||||
u32 *iVar3;
|
||||
|
||||
gUnknown_203B2AC->unk34[0] = 2;
|
||||
gUnknown_203B2AC->unk34[1] = 3;
|
||||
gUnknown_203B2AC->unk34[2] = 5;
|
||||
sub_8013818(gUnknown_203B2AC,3,1,gUnknown_203B2AC->unkE0);
|
||||
iVar3 = &gUnknown_203B2AC->unk4C;
|
||||
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2AC->speciesNum];
|
||||
sub_808FF20(iVar3,pokeStruct, sub_80023E4(7));
|
||||
gUnknown_203B270->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
|
||||
gUnknown_203B270->isTeamLeader = gUnknown_203B270->pokeStruct->isTeamLeader;
|
||||
gUnknown_203B270->moves = moves;
|
||||
gUnknown_203B270->unkB8 = param_5;
|
||||
iVar8 = iVar5 = sub_801F3F8();
|
||||
four = 4;
|
||||
if (iVar8 < four) {
|
||||
iVar8 = 4;
|
||||
}
|
||||
sub_8006518(gUnknown_203B270->unk58);
|
||||
gUnknown_203B270->unk50 = param_6;
|
||||
gUnknown_203B270->unk58[param_6] = gUnknown_80DC25C;
|
||||
if (gUnknown_203B270->unkB8 != 0) {
|
||||
gUnknown_203B270->unk54 = sub_8006544(param_6);
|
||||
gUnknown_203B270->unk58[gUnknown_203B270->unk54] = gUnknown_80DC274;
|
||||
}
|
||||
sub_8012D08(&gUnknown_203B270->unk58[gUnknown_203B270->unk50],iVar8);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B270->unk58,1,1);
|
||||
sub_8013818(&gUnknown_203B270->unk1C,iVar5,iVar5,param_6);
|
||||
sub_8013780(&gUnknown_203B270->unk1C,0);
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
312
src/code_801EE10_1.c
Normal file
312
src/code_801EE10_1.c
Normal file
|
|
@ -0,0 +1,312 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "code_800D090.h"
|
||||
#include "pokemon.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
|
||||
struct unkStruct_203B2AC
|
||||
{
|
||||
u8 unk0[0x1E];
|
||||
s16 unk1E;
|
||||
s16 unk20;
|
||||
u8 unk22[0x34 - 0x22];
|
||||
u32 unk34[3];
|
||||
u8 unk40[0x48 - 0x40];
|
||||
s16 speciesNum;
|
||||
u32 unk4C;
|
||||
u8 unk50[0xB0 - 0x50];
|
||||
u32 unkB0;
|
||||
u8 fillB4[0xE0 - 0xB4];
|
||||
u32 unkE0;
|
||||
struct UnkTextStruct2 *unkE4;
|
||||
struct UnkTextStruct2 unkE8[4];
|
||||
u8 unk148[4];
|
||||
};
|
||||
extern struct unkStruct_203B2AC *gUnknown_203B2AC;
|
||||
|
||||
struct unkStruct_3001B60
|
||||
{
|
||||
u32 unk0;
|
||||
u32 sortMethod;
|
||||
u32 unk8;
|
||||
u32 unkC;
|
||||
u32 unk10;
|
||||
u8 fill14[0x18 - 0x14];
|
||||
s16 unk18;
|
||||
s16 unk1A[2];
|
||||
u8 fill1C[0x370 - 0x1E];
|
||||
s16 unk370;
|
||||
s16 unk372;
|
||||
s16 unk374;
|
||||
s16 unk376;
|
||||
};
|
||||
|
||||
extern struct unkStruct_3001B60 *gUnknown_3001B60;
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80DC9B0;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC9C8;
|
||||
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
extern bool8 sub_80023E4(u32);
|
||||
extern void sub_808FF20(u32 *, struct PokemonStruct *, bool8);
|
||||
extern void CreatePokemonInfoTabScreen(u32, s16, u32 *, u32 *, u32);
|
||||
extern s32 GetKeyPress(void *);
|
||||
extern bool8 sub_8013938(void *);
|
||||
extern void sub_802452C(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern void sub_8013984(void *);
|
||||
void sub_80922B4(u8 *buffer, u8 *string, s32 size);
|
||||
bool8 ComparePokemonNames(s16 a1, s16 a2);
|
||||
|
||||
void sub_8024588(void);
|
||||
void sub_80245D0(void);
|
||||
void sub_8024604(void);
|
||||
|
||||
extern u8 gUnknown_80DC9A4[];
|
||||
|
||||
void SortbyInternalNo(s32 param_1, s32 param_2);
|
||||
void SortbyAlphabetNo(s32 param_1,s32 param_2);
|
||||
void SortbyName(s32 param_1,s32 param_2);
|
||||
|
||||
bool8 sub_8024184(struct PokemonStruct *pokemon, u8 area)
|
||||
{
|
||||
if(area == GetFriendArea(pokemon->speciesNum))
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80241A8(void)
|
||||
{
|
||||
switch(gUnknown_3001B60->sortMethod)
|
||||
{
|
||||
case 2:
|
||||
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) {
|
||||
SortbyAlphabetNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
|
||||
}
|
||||
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) {
|
||||
SortbyAlphabetNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) {
|
||||
SortbyName(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
|
||||
}
|
||||
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) {
|
||||
SortbyName(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) {
|
||||
SortbyInternalNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
|
||||
}
|
||||
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) {
|
||||
SortbyInternalNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SortbyInternalNo(s32 param_1, s32 param_2)
|
||||
{
|
||||
s16 *r4;
|
||||
s32 iVar4;
|
||||
s16 *r10;
|
||||
s16 *r5;
|
||||
s32 r6;
|
||||
s32 r1;
|
||||
s32 r7;
|
||||
s32 r9;
|
||||
|
||||
r10 = &gUnknown_3001B60->unk18 + param_2;
|
||||
r7 = param_1;
|
||||
r1 = param_2 - 1;
|
||||
if (r7 < r1) {
|
||||
r9 = r1;
|
||||
do {
|
||||
r4 = r10;
|
||||
r6 = r1;
|
||||
iVar4 = r7 + 1;
|
||||
for (; r6 > r7; r6--) {
|
||||
if (GetInternalNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum) > GetInternalNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum)) {
|
||||
r1 = *r4;
|
||||
*r4 = *r5;
|
||||
*r5 = r1;
|
||||
}
|
||||
r4 = r5;
|
||||
}
|
||||
r7 = iVar4;
|
||||
r1 = r9;
|
||||
} while (iVar4 < r1);
|
||||
}
|
||||
}
|
||||
|
||||
void SortbyAlphabetNo(s32 param_1,s32 param_2)
|
||||
{
|
||||
s16 *r4;
|
||||
s32 iVar4;
|
||||
s16 *r10;
|
||||
s16 *r5;
|
||||
s32 r6;
|
||||
s32 r1;
|
||||
s32 r7;
|
||||
s32 r9;
|
||||
|
||||
r10 = &gUnknown_3001B60->unk18 + param_2;
|
||||
r7 = param_1;
|
||||
r1 = param_2 - 1;
|
||||
if (r7 < r1) {
|
||||
r9 = r1;
|
||||
do {
|
||||
r4 = r10;
|
||||
r6 = r1;
|
||||
iVar4 = r7 + 1;
|
||||
for (; r6 > r7; r6--) {
|
||||
if (GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum, 0) > GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum, 0)) {
|
||||
r1 = *r4;
|
||||
*r4 = *r5;
|
||||
*r5 = r1;
|
||||
}
|
||||
r4 = r5;
|
||||
}
|
||||
r7 = iVar4;
|
||||
r1 = r9;
|
||||
} while (iVar4 < r1);
|
||||
}
|
||||
}
|
||||
|
||||
void SortbyName(s32 param_1,s32 param_2)
|
||||
{
|
||||
s16 *r4;
|
||||
s32 iVar4;
|
||||
s16 *r10;
|
||||
s16 *r5;
|
||||
s32 r6;
|
||||
s32 r1;
|
||||
s32 r7;
|
||||
s32 r9;
|
||||
|
||||
r10 = &gUnknown_3001B60->unk18 + param_2;
|
||||
r7 = param_1;
|
||||
r1 = param_2 - 1;
|
||||
if (r7 < r1) {
|
||||
r9 = r1;
|
||||
do {
|
||||
r4 = r10;
|
||||
r6 = r1;
|
||||
iVar4 = r7 + 1;
|
||||
for (; r6 > r7; r6--) {
|
||||
r5 = r4 - 1;
|
||||
if (ComparePokemonNames(*r5, *r4)) {
|
||||
r1 = *r4;
|
||||
*r4 = *r5;
|
||||
*r5 = r1;
|
||||
}
|
||||
r4 = r5;
|
||||
}
|
||||
r7 = iVar4;
|
||||
r1 = r9;
|
||||
} while (iVar4 < r1);
|
||||
}
|
||||
}
|
||||
|
||||
struct PokemonStruct *sub_80243E8(void)
|
||||
{
|
||||
u8 buffer [40];
|
||||
u8 nameBuffer [20];
|
||||
struct PokemonStruct *pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_3001B60->unk1A[gUnknown_3001B60->unk376 * gUnknown_3001B60->unk374 + gUnknown_3001B60->unk370]];
|
||||
|
||||
sub_80922B4(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH);
|
||||
sprintfStatic(buffer, gUnknown_80DC9A4,nameBuffer); // %s
|
||||
return pokeStruct;
|
||||
}
|
||||
|
||||
bool8 sub_8024458(s16 speciesNum, s32 param_2)
|
||||
{
|
||||
s32 speciesNum_s32 = speciesNum;
|
||||
gUnknown_203B2AC = MemoryAlloc(sizeof(struct unkStruct_203B2AC), 8);
|
||||
gUnknown_203B2AC->speciesNum = speciesNum_s32;
|
||||
gUnknown_203B2AC->unkE0 = param_2;
|
||||
gUnknown_203B2AC->unkE4 = &gUnknown_203B2AC->unkE8[param_2];
|
||||
sub_8006518(gUnknown_203B2AC->unkE8);
|
||||
gUnknown_203B2AC->unkE8[gUnknown_203B2AC->unkE0] = gUnknown_80DC9C8;
|
||||
gUnknown_203B2AC->unkE4->unk14 = gUnknown_203B2AC->unk148;
|
||||
gUnknown_203B2AC->unk148[2] = 10;
|
||||
sub_8024604();
|
||||
sub_802452C();
|
||||
sub_8013984(gUnknown_203B2AC);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u8 sub_80244E4(void)
|
||||
{
|
||||
switch(GetKeyPress(gUnknown_203B2AC))
|
||||
{
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (sub_8013938(gUnknown_203B2AC) != 0) {
|
||||
sub_802452C();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_802452C(void)
|
||||
{
|
||||
sub_8024588();
|
||||
sub_80245D0();
|
||||
}
|
||||
|
||||
void sub_802453C(void)
|
||||
{
|
||||
if(gUnknown_203B2AC)
|
||||
{
|
||||
gUnknown_203B2AC->unkE8[gUnknown_203B2AC->unkE0] = gUnknown_80DC9B0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2AC->unkE8, 1, 1);
|
||||
MemoryFree(gUnknown_203B2AC);
|
||||
gUnknown_203B2AC = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8024588(void)
|
||||
{
|
||||
gUnknown_203B2AC->unk148[0] = gUnknown_203B2AC->unk20;
|
||||
gUnknown_203B2AC->unk148[1] = gUnknown_203B2AC->unk1E;
|
||||
gUnknown_203B2AC->unk148[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2AC->unkE8,1,1);
|
||||
}
|
||||
|
||||
void sub_80245D0(void)
|
||||
{
|
||||
CreatePokemonInfoTabScreen
|
||||
(gUnknown_203B2AC->unk34[gUnknown_203B2AC->unk1E],
|
||||
gUnknown_203B2AC->unk1E,&gUnknown_203B2AC->unk4C,
|
||||
&gUnknown_203B2AC->unkB0,gUnknown_203B2AC->unkE0);
|
||||
}
|
||||
|
||||
void sub_8024604(void)
|
||||
{
|
||||
struct PokemonStruct *pokeStruct;
|
||||
u32 *iVar3;
|
||||
|
||||
gUnknown_203B2AC->unk34[0] = 2;
|
||||
gUnknown_203B2AC->unk34[1] = 3;
|
||||
gUnknown_203B2AC->unk34[2] = 5;
|
||||
sub_8013818(gUnknown_203B2AC,3,1,gUnknown_203B2AC->unkE0);
|
||||
iVar3 = &gUnknown_203B2AC->unk4C;
|
||||
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2AC->speciesNum];
|
||||
sub_808FF20(iVar3,pokeStruct, sub_80023E4(7));
|
||||
}
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
#include "constants/input.h"
|
||||
#include "global.h"
|
||||
#include "constants/iq_skill.h"
|
||||
#include "memory.h"
|
||||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "team_inventory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
#include "item.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_3001B5C
|
||||
{
|
||||
|
|
@ -39,8 +42,7 @@ extern u16 gUnknown_203B29E;
|
|||
extern struct UnkTextStruct2 gUnknown_80DC91C;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC904;
|
||||
|
||||
extern u8 sub_8023704();
|
||||
extern void sub_8012D08(void *, u32);
|
||||
extern u8 sub_8023704(u8);
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
extern void sub_8013984(u8 *);
|
||||
extern void sub_8023420(void);
|
||||
|
|
@ -66,10 +68,8 @@ struct unkStruct_203B294
|
|||
/* 0x48 */ struct PokemonStruct *pokeStruct;
|
||||
u32 unk4C;
|
||||
struct Item unk50;
|
||||
u32 unk54;
|
||||
u8 fill58[0xA4 - 0x58];
|
||||
u32 unkA4;
|
||||
u8 fillA8[0xF4 - 0xA8];
|
||||
struct MenuStruct unk54;
|
||||
struct MenuStruct unkA4;
|
||||
u32 unkF4;
|
||||
u32 unkF8;
|
||||
u16 unkFC;
|
||||
|
|
@ -86,8 +86,6 @@ extern void sub_801B048(void);
|
|||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_801A928(void);
|
||||
|
|
@ -299,13 +297,13 @@ u8 sub_8023278(u8 param_1)
|
|||
}
|
||||
switch(GetKeyPress(&gUnknown_3001B5C->unk35C))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 3:
|
||||
case INPUT_SELECT_BUTTON:
|
||||
PlayMenuSoundEffect(5);
|
||||
if (temp = gUnknown_3001B5C->unk4, iVar3 = 1, temp < 2) {
|
||||
iVar3 = temp + 1;
|
||||
|
|
|
|||
|
|
@ -392,7 +392,7 @@ extern u8 JirachiFriendAreaSearch(void);
|
|||
extern u8 sub_80860A8(u32);
|
||||
extern void sub_8049ED4();
|
||||
extern void sub_8092578(u8 *buffer, u8 index, u8 r2);
|
||||
extern void sub_8052D44(u8 *, struct Entity *, struct Entity *);
|
||||
extern void sub_8052D44(s16 *, struct Entity *, struct Entity *);
|
||||
extern void sub_8097FD0(u32);
|
||||
extern void SetMessageArgument(u8 *, struct Entity *, u32);
|
||||
extern struct Entity *GetLeader();
|
||||
|
|
@ -513,7 +513,7 @@ void ZapdosReFightDialogue(void)
|
|||
DisplayDungeonDialogue(&gZapdosReFightDialogue_3);
|
||||
ZapdosScreenFlash(2);
|
||||
DisplayDungeonDialogue(&gZapdosReFightDialogue_4);
|
||||
SetupBossFightHP(ZapdosEntity,300,0xb);
|
||||
SetupBossFightHP(ZapdosEntity,300,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -541,7 +541,7 @@ void ZapdosPostStoryPreFightDialogue(void)
|
|||
ZapdosScreenFlash(2);
|
||||
DisplayDungeonDialogue(&gZapdosPostStoryPreFightDialogue_5);
|
||||
sub_803E708(10,0x46);
|
||||
SetupBossFightHP(ZapdosEntity,300,0xb);
|
||||
SetupBossFightHP(ZapdosEntity,300,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -719,7 +719,7 @@ void MoltresPreFightDialogue(void)
|
|||
MoltresScreenFlash2(0xb,6);
|
||||
DisplayDungeonDialogue(&gMoltresPreFightDialogue_12);
|
||||
sub_803E708(10,0x46);
|
||||
SetupBossFightHP(MoltresEntity,400,0xb);
|
||||
SetupBossFightHP(MoltresEntity,400,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -762,7 +762,7 @@ void MoltresReFightDialogue(void)
|
|||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(&gMoltresReFightDialogue_5);
|
||||
sub_803E708(10,0x46);
|
||||
SetupBossFightHP(MoltresEntity,400,0xb);
|
||||
SetupBossFightHP(MoltresEntity,400,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -800,7 +800,7 @@ void MoltresPostStoryPreFightDialogue(void)
|
|||
MoltresScreenFlash2(0xb,6);
|
||||
DisplayDungeonDialogue(&gMoltresPostStoryPreFightDialogue_5);
|
||||
sub_803E708(10,0x46);
|
||||
SetupBossFightHP(MoltresEntity,400,0xb);
|
||||
SetupBossFightHP(MoltresEntity,400,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -1147,7 +1147,7 @@ void ArticunoPreFightDialogue(void)
|
|||
DisplayDungeonDialogue(&gArticunoPreFightDialogue_12);
|
||||
sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH);
|
||||
sub_803E708(0x10,0x46);
|
||||
SetupBossFightHP(ArticunoEntity,0x1c2,0xb);
|
||||
SetupBossFightHP(ArticunoEntity,0x1c2,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -1169,7 +1169,7 @@ void ArticunoReFightDialogue(void)
|
|||
DisplayDungeonDialogue(&gArticunoReFightDialogue_3);
|
||||
sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH);
|
||||
sub_803E708(0x28,0x46);
|
||||
SetupBossFightHP(ArticunoEntity,0x1c2,0xb);
|
||||
SetupBossFightHP(ArticunoEntity,0x1c2,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -1205,7 +1205,7 @@ void ArticunoPostStoryPreFightDialogue(void)
|
|||
DisplayDungeonDialogue(&gArticunoPostStoryPreFightDialogue_5);
|
||||
sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH);
|
||||
sub_803E708(0x28,0x46);
|
||||
SetupBossFightHP(ArticunoEntity,0x1c2,0xb);
|
||||
SetupBossFightHP(ArticunoEntity,0x1c2,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -1468,7 +1468,7 @@ void GroudonPreFightDialogue(void)
|
|||
sub_8086A54(GroudonEntity);
|
||||
sub_8085930(DIRECTION_NORTH);
|
||||
sub_8086764();
|
||||
SetupBossFightHP(GroudonEntity,500,0xb);
|
||||
SetupBossFightHP(GroudonEntity,500,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -1500,7 +1500,7 @@ void GroudonReFightDialogue(void)
|
|||
sub_8086A54(GroudonEntity);
|
||||
sub_8085930(DIRECTION_NORTH);
|
||||
sub_8086764();
|
||||
SetupBossFightHP(GroudonEntity,500,0xb);
|
||||
SetupBossFightHP(GroudonEntity,500,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -1528,7 +1528,7 @@ void GroudonPostStoryPreFightDialogue(void)
|
|||
GroudonScreenFlash();
|
||||
DisplayDungeonDialogue(&gGroudonPostStoryPreFightDialogue_4);
|
||||
sub_803E708(10,0x46);
|
||||
SetupBossFightHP(GroudonEntity,500,0xb);
|
||||
SetupBossFightHP(GroudonEntity,500,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -1672,14 +1672,14 @@ void MagmaCavernMidDialogue(void)
|
|||
struct Entity * PartnerEntity;
|
||||
struct Entity * iVar3;
|
||||
struct Entity * iVar4;
|
||||
u8 auStack36 [4];
|
||||
s16 IDStack [2];
|
||||
struct Position32 local_20;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
PartnerEntity = GetPartnerEntity();
|
||||
iVar3 = GetEntityFromClientType(0xb);
|
||||
iVar4 = GetEntityFromClientType(0xc);
|
||||
sub_8052D44(auStack36,LeaderEntity,PartnerEntity);
|
||||
sub_8052D44(IDStack,LeaderEntity,PartnerEntity);
|
||||
sub_8086448();
|
||||
SpriteLookAroundEffect(PartnerEntity);
|
||||
// Let's see..
|
||||
|
|
@ -1970,7 +1970,7 @@ void RayquazaPreFightDialogue(void)
|
|||
DisplayDungeonDialogue(&gRayquazaPreFightDialogue_10);
|
||||
RayquazaScreenFlash();
|
||||
DisplayDungeonDialogue(&gRayquazaPreFightDialogue_11);
|
||||
SetupBossFightHP(RayquazaEntity,600,0x20);
|
||||
SetupBossFightHP(RayquazaEntity,600,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -1994,7 +1994,7 @@ void RayquazaReFightDialogue(void)
|
|||
DisplayDungeonDialogue(&gRayquazaReFightDialogue_3);
|
||||
RayquazaScreenFlash();
|
||||
DisplayDungeonDialogue(&gRayquazaReFightDialogue_4);
|
||||
SetupBossFightHP(RayquazaEntity,600,0x20);
|
||||
SetupBossFightHP(RayquazaEntity,600,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2020,7 +2020,7 @@ void RayquazaPostStoryPreFightDialogue(void)
|
|||
DisplayDungeonDialogue(&gRayquazaPostStoryPreFightDialogue_4);
|
||||
RayquazaScreenFlash();
|
||||
DisplayDungeonDialogue(&gRayquazaPostStoryPreFightDialogue_5);
|
||||
SetupBossFightHP(RayquazaEntity,600,0xb);
|
||||
SetupBossFightHP(RayquazaEntity,600,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -2267,7 +2267,7 @@ void MewtwoPreFightDialogue(void)
|
|||
MewtwoScreenFlash();
|
||||
DisplayDungeonDialogue(&gMewtwoPreFightDialogue_5);
|
||||
sub_803E708(10,0x46);
|
||||
SetupBossFightHP(MewtwoEntity,900,0x20);
|
||||
SetupBossFightHP(MewtwoEntity,900,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2293,7 +2293,7 @@ void MewtwoReFightDialogue(void)
|
|||
DisplayDungeonDialogue(&gMewtwoReFightDialogue_3);
|
||||
MewtwoScreenFlash();
|
||||
DisplayDungeonDialogue(&gMewtwoReFightDialogue_4);
|
||||
SetupBossFightHP(MewtwoEntity,900,0x20);
|
||||
SetupBossFightHP(MewtwoEntity,900,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -2406,7 +2406,7 @@ void EnteiPreFightDialogue(void)
|
|||
EnteiScreenFlash();
|
||||
DisplayDungeonDialogue(&gEnteiPreFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(EnteiEntity,600,0xb);
|
||||
SetupBossFightHP(EnteiEntity,600,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2424,7 +2424,7 @@ void EnteiReFightDialogue(void)
|
|||
EnteiScreenFlash();
|
||||
DisplayDungeonDialogue(&gEnteiReFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(EnteiEntity,600,0xb);
|
||||
SetupBossFightHP(EnteiEntity,600,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2446,7 +2446,7 @@ void EnteiPostStoryPreFightDialogue(void)
|
|||
EnteiScreenFlash();
|
||||
DisplayDungeonDialogue(&gEnteiPostStoryPreFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(EnteiEntity,600,0xb);
|
||||
SetupBossFightHP(EnteiEntity,600,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -2559,7 +2559,7 @@ void RaikouPreFightDialogue(void)
|
|||
RaikouScreenFlash();
|
||||
DisplayDungeonDialogue(&gRaikouPreFightDialogue_6);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(RaikouEntity,0x28a,0xb);
|
||||
SetupBossFightHP(RaikouEntity,0x28a,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2579,7 +2579,7 @@ void RaikouReFightDialogue(void)
|
|||
RaikouScreenFlash();
|
||||
DisplayDungeonDialogue(&gRaikouReFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(RaikouEntity,0x28a,0xb);
|
||||
SetupBossFightHP(RaikouEntity,0x28a,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2602,7 +2602,7 @@ void RaikouPostStoryPreFightDialogue(void)
|
|||
RaikouScreenFlash();
|
||||
DisplayDungeonDialogue(&gRaikouPostStoryPreFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(RaikouEntity,0x28a,0xb);
|
||||
SetupBossFightHP(RaikouEntity,0x28a,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -2717,7 +2717,7 @@ void SuicunePreFightDialogue(void)
|
|||
SuicuneScreenFlash();
|
||||
DisplayDungeonDialogue(&gSuicunePreFightDialogue_7);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(SuicuneEntity,0x28a,0xb);
|
||||
SetupBossFightHP(SuicuneEntity,0x28a,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2734,7 +2734,7 @@ void SuicuneReFightDialogue(void)
|
|||
SuicuneScreenFlash();
|
||||
DisplayDungeonDialogue(&gSuicuneReFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(SuicuneEntity,0x28a,0xb);
|
||||
SetupBossFightHP(SuicuneEntity,0x28a,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2755,7 +2755,7 @@ void SuicunePostStoryPreFightDialogue(void)
|
|||
SuicuneScreenFlash();
|
||||
DisplayDungeonDialogue(&gSuicunePostStoryPreFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(SuicuneEntity,0x28a,0xb);
|
||||
SetupBossFightHP(SuicuneEntity,0x28a,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -2898,7 +2898,7 @@ void HoOhPreFightDialogue(void)
|
|||
HoOhScreenFlash();
|
||||
DisplayDungeonDialogue(&gHoOhPreFightDialogue_6);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(HoOhEntity,800,0x20);
|
||||
SetupBossFightHP(HoOhEntity,800,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -2934,7 +2934,7 @@ void HoOhReFightDialogue(void)
|
|||
HoOhScreenFlash();
|
||||
DisplayDungeonDialogue(&HoOhReFightDialogue_4);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(HoOhEntity,800,0x20);
|
||||
SetupBossFightHP(HoOhEntity,800,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
}
|
||||
|
|
@ -3071,7 +3071,7 @@ void LatiosPreFightDialogue(void)
|
|||
LatiosScreenFlash();
|
||||
DisplayDungeonDialogue(&gLatiosPreFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(LatiosEntity,600,0xb);
|
||||
SetupBossFightHP(LatiosEntity,600,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -3090,7 +3090,7 @@ void LatiosReFightDialogue(void)
|
|||
LatiosScreenFlash();
|
||||
DisplayDungeonDialogue(&gLatiosPreFightDialogue_3);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(LatiosEntity,600,0xb);
|
||||
SetupBossFightHP(LatiosEntity,600,MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -3207,17 +3207,17 @@ void sub_808ADCC(void)
|
|||
void sub_808AE54(char param_1,char param_2,u32 *param_3)
|
||||
{
|
||||
struct Entity * LeaderEntity;
|
||||
u8 auStack24 [4];
|
||||
struct Item auStack20;
|
||||
s16 IDStack[2];
|
||||
struct Item item;
|
||||
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
sub_8052D44(auStack24,LeaderEntity,0);
|
||||
sub_8052D44(IDStack,LeaderEntity,0);
|
||||
if ((sub_8098100(0x22) == 0) && (param_2 == 0x2E) && (param_1 == 0x17)) {
|
||||
sub_808B1CC(0);
|
||||
if (sub_8098100(0x1d) == 0) {
|
||||
xxx_init_itemslot_8090A8C(&auStack20,ITEM_ROCK_PART,0);
|
||||
sub_80464C8(GetLeader(),param_3,&auStack20);
|
||||
xxx_init_itemslot_8090A8C(&item,ITEM_ROCK_PART,0);
|
||||
sub_80464C8(GetLeader(),param_3,&item);
|
||||
DungeonStartNewBGM(MUS_IN_THE_DEPTHS_OF_THE_PIT);
|
||||
// Something fell from Regirock's body
|
||||
// Regirock was apparently guarding this item
|
||||
|
|
@ -3230,17 +3230,17 @@ void sub_808AE54(char param_1,char param_2,u32 *param_3)
|
|||
void sub_808AEC8(char param_1,char param_2,u32 *param_3)
|
||||
{
|
||||
struct Entity * LeaderEntity;
|
||||
u8 auStack24 [4];
|
||||
struct Item auStack20;
|
||||
s16 IDStack[2];
|
||||
struct Item item;
|
||||
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
sub_8052D44(auStack24,LeaderEntity,0);
|
||||
sub_8052D44(IDStack,LeaderEntity,0);
|
||||
if ((sub_8098100(0x22) == 0) && (param_2 == 0x2F) && (param_1 == 0x18)) {
|
||||
sub_808B1CC(0);
|
||||
if (sub_8098100(0x1d) == 0) {
|
||||
xxx_init_itemslot_8090A8C(&auStack20,ITEM_ICE_PART,0);
|
||||
sub_80464C8(GetLeader(),param_3,&auStack20);
|
||||
xxx_init_itemslot_8090A8C(&item,ITEM_ICE_PART,0);
|
||||
sub_80464C8(GetLeader(),param_3,&item);
|
||||
DungeonStartNewBGM(MUS_IN_THE_DEPTHS_OF_THE_PIT);
|
||||
// Something fell from Regice's body
|
||||
// Regice was apparently guarding this item
|
||||
|
|
@ -3252,17 +3252,17 @@ void sub_808AEC8(char param_1,char param_2,u32 *param_3)
|
|||
void sub_808AF3C(char param_1,char param_2,u32 *param_3)
|
||||
{
|
||||
struct Entity * LeaderEntity;
|
||||
u8 auStack24 [4];
|
||||
struct Item auStack20;
|
||||
s16 IDStack[2];
|
||||
struct Item item;
|
||||
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
sub_8052D44(auStack24,LeaderEntity,0);
|
||||
sub_8052D44(IDStack,LeaderEntity,0);
|
||||
if ((sub_8098100(0x22) == 0) && (param_2 == 0x30) && (param_1 == 0x19)) {
|
||||
sub_808B1CC(0);
|
||||
if (sub_8098100(0x1d) == 0) {
|
||||
xxx_init_itemslot_8090A8C(&auStack20,ITEM_STEEL_PART,0);
|
||||
sub_80464C8(GetLeader(),param_3, &auStack20);
|
||||
xxx_init_itemslot_8090A8C(&item,ITEM_STEEL_PART,0);
|
||||
sub_80464C8(GetLeader(),param_3, &item);
|
||||
DungeonStartNewBGM(MUS_IN_THE_DEPTHS_OF_THE_PIT);
|
||||
// Something fell from Registeel's body
|
||||
// Registeel was apparently guarding this item
|
||||
|
|
@ -3274,10 +3274,10 @@ void sub_808AF3C(char param_1,char param_2,u32 *param_3)
|
|||
void sub_808AFB0(char param_1)
|
||||
{
|
||||
struct Entity * LeaderEntity;
|
||||
u8 auStack12 [4];
|
||||
s16 IDStack [2];
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
sub_8052D44(auStack12,LeaderEntity,0);
|
||||
sub_8052D44(IDStack,LeaderEntity,0);
|
||||
if ((sub_8098100(0x22) == 0) && (param_1 == 0x2E) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_ROCK_PART) != 0)) {
|
||||
sub_8097FD0(0x1d);
|
||||
SetMessageArgument(gAvailablePokemonNames,GetLeader(),0);
|
||||
|
|
@ -3292,10 +3292,10 @@ void sub_808AFB0(char param_1)
|
|||
void sub_808B030(char param_1)
|
||||
{
|
||||
struct Entity * LeaderEntity;
|
||||
u8 auStack12 [4];
|
||||
s16 IDStack [2];
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
sub_8052D44(auStack12,LeaderEntity,0);
|
||||
sub_8052D44(IDStack,LeaderEntity,0);
|
||||
if ((sub_8098100(0x22) == 0) && (param_1 == 0x2F) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_ICE_PART) != 0)) {
|
||||
sub_8097FD0(0x1d);
|
||||
SetMessageArgument(gAvailablePokemonNames,GetLeader(),0);
|
||||
|
|
@ -3310,10 +3310,10 @@ void sub_808B030(char param_1)
|
|||
void sub_808B0B0(char param_1)
|
||||
{
|
||||
struct Entity * LeaderEntity;
|
||||
u8 auStack12 [4];
|
||||
s16 IDStack [2];
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
sub_8052D44(auStack12,LeaderEntity,0);
|
||||
sub_8052D44(IDStack,LeaderEntity,0);
|
||||
if ((sub_8098100(0x22) == 0) && (param_1 == 0x30) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_STEEL_PART) != 0)) {
|
||||
sub_8097FD0(0x1d);
|
||||
SetMessageArgument(gAvailablePokemonNames, GetLeader(), 0);
|
||||
|
|
@ -3482,19 +3482,19 @@ void SetupRegiFacingDirection(struct Entity *regiEntity)
|
|||
|
||||
void SetupRegirockFightHP(struct Entity *r0)
|
||||
{
|
||||
SetupBossFightHP(r0, 450, 0xB);
|
||||
SetupBossFightHP(r0, 450, MUS_BOSS_BATTLE);
|
||||
}
|
||||
|
||||
|
||||
void SetupRegiceFightHP(struct Entity *r0)
|
||||
{
|
||||
SetupBossFightHP(r0, 450, 0xB);
|
||||
SetupBossFightHP(r0, 450, MUS_BOSS_BATTLE);
|
||||
}
|
||||
|
||||
|
||||
void SetupRegisteelFightHP(struct Entity *r0)
|
||||
{
|
||||
SetupBossFightHP(r0, 450, 0xB);
|
||||
SetupBossFightHP(r0, 450, MUS_BOSS_BATTLE);
|
||||
}
|
||||
|
||||
void sub_808B2F4(void)
|
||||
|
|
@ -3653,7 +3653,7 @@ void JirachiPreFightDialogue(void)
|
|||
sub_803E708(10,70);
|
||||
DisplayDungeonDialogue(&gJirachiPreFightDialogue_4);
|
||||
sub_803E708(10,70);
|
||||
SetupBossFightHP(JirachiEntity,0x15e,0x20);
|
||||
SetupBossFightHP(JirachiEntity,0x15e,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
|
|
@ -3692,12 +3692,12 @@ void JirachiWish(void)
|
|||
struct Position *LeaderPos;
|
||||
struct Entity *LeaderEntity;
|
||||
s32 wishChoice;
|
||||
s32 iVar4;
|
||||
u32 uVar6;
|
||||
s32 iVar9;
|
||||
struct Item auStack152 [9];
|
||||
struct Item auStack116 [9];
|
||||
struct Item auStack80 [9];
|
||||
s32 counter;
|
||||
u32 direction;
|
||||
s32 index;
|
||||
struct Item money [9];
|
||||
struct Item itemStack [9];
|
||||
struct Item strengthItems [9];
|
||||
s32 local_2c;
|
||||
s32 local_28;
|
||||
s32 local_24;
|
||||
|
|
@ -3751,12 +3751,12 @@ void JirachiWish(void)
|
|||
sub_803E708(10,0x46);
|
||||
JirachiWishGrantDialogue(JirachiEntity);
|
||||
|
||||
for(iVar4 = 0; iVar4 < 6; iVar4 = r8)
|
||||
for(counter = 0; counter < 6; counter = r8)
|
||||
{
|
||||
r8 = iVar4 + 1;
|
||||
for(iVar9 = 0; iVar9 < 9; iVar9++)
|
||||
r8 = counter + 1;
|
||||
for(index = 0; index < 9; index++)
|
||||
{
|
||||
sub_8045C28(&auStack152[iVar9], 0x69, 0);
|
||||
sub_8045C28(&money[index], 0x69, 0);
|
||||
}
|
||||
temp = (u16)(((((u16)JirachiEntity->pos.x + DungeonRandInt(3)) - 1) << 16) >> 16);
|
||||
local_2c &= 0xffff0000;
|
||||
|
|
@ -3768,7 +3768,7 @@ void JirachiWish(void)
|
|||
if ((GetTileSafe((s16)local_2c, local_2c >> 16)->terrainType & 3) != 0) {
|
||||
PlaySoundEffect(0x14c);
|
||||
sub_808BB3C((s16 *)&local_2c);
|
||||
sub_8046860(JirachiEntity,&local_2c,auStack152,9);
|
||||
sub_8046860(JirachiEntity,&local_2c,money,9);
|
||||
}
|
||||
}
|
||||
JirachiEntity->info->unk15D = 0;
|
||||
|
|
@ -3779,14 +3779,14 @@ void JirachiWish(void)
|
|||
sub_803E708(10,0x46);
|
||||
JirachiWishGrantDialogue(JirachiEntity);
|
||||
|
||||
for(iVar4 = 0; iVar4 < 6; iVar4++)
|
||||
for(counter = 0; counter < 6; counter++)
|
||||
{
|
||||
#ifndef NONMATCHING
|
||||
asm("":::"sl");
|
||||
#endif
|
||||
for(iVar9 = 0; iVar9 < 9; iVar9++)
|
||||
for(index = 0; index < 9; index++)
|
||||
{
|
||||
sub_8045C28(&auStack116[iVar9], sub_803D73C(0),0);
|
||||
sub_8045C28(&itemStack[index], sub_803D73C(0),0);
|
||||
}
|
||||
temp2 = (u16)(((((u16)JirachiEntity->pos.x + DungeonRandInt(3)) - 1) << 16) >> 16);
|
||||
local_28 &= 0xffff0000;
|
||||
|
|
@ -3798,7 +3798,7 @@ void JirachiWish(void)
|
|||
if ((GetTileSafe((s16)local_28, local_28 >> 16)->terrainType & 3) != 0) {
|
||||
PlaySoundEffect(400);
|
||||
sub_808BB3C((s16 *)&local_28);
|
||||
sub_8046860(JirachiEntity,&local_28,auStack116,9);
|
||||
sub_8046860(JirachiEntity,&local_28,itemStack,9);
|
||||
}
|
||||
}
|
||||
JirachiEntity->info->unk15D = 0;
|
||||
|
|
@ -3838,12 +3838,12 @@ void JirachiWish(void)
|
|||
sub_803E708(10,0x46);
|
||||
JirachiWishGrantDialogue(JirachiEntity);
|
||||
|
||||
for(iVar4 = 0; iVar4 < 5; iVar4++)
|
||||
for(counter = 0; counter < 5; counter++)
|
||||
{
|
||||
|
||||
for(iVar9 = 0; iVar9 < 4; iVar9++)
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
sub_8045C28(&auStack80[iVar9],gUnknown_81074FC[DungeonRandInt(8)],0);
|
||||
sub_8045C28(&strengthItems[index],gUnknown_81074FC[DungeonRandInt(8)],0);
|
||||
}
|
||||
temp3 = (u16)(((((u16)JirachiEntity->pos.x + DungeonRandInt(3)) - 1) << 16) >> 16);
|
||||
local_24 &= 0xffff0000;
|
||||
|
|
@ -3855,7 +3855,7 @@ void JirachiWish(void)
|
|||
if ((GetTileSafe((s16)local_24, local_24 >> 16)->terrainType & 3) != 0) {
|
||||
PlaySoundEffect(400);
|
||||
sub_808BB3C((s16 *)&local_24);
|
||||
sub_8046860(JirachiEntity,&local_24,auStack80,4);
|
||||
sub_8046860(JirachiEntity,&local_24,strengthItems,4);
|
||||
}
|
||||
}
|
||||
JirachiEntity->info->unk15D = 0;
|
||||
|
|
@ -3871,8 +3871,8 @@ void JirachiWish(void)
|
|||
DisplayDungeonDialogue(&gUnknown_8105D80);
|
||||
sub_803E708(10,0x46);
|
||||
LeaderPos = &GetLeader()->pos;
|
||||
uVar6 = GetDirectionTowardsPosition(&JirachiEntity->pos,LeaderPos);
|
||||
SetFacingDirection(JirachiEntity,uVar6);
|
||||
direction = GetDirectionTowardsPosition(&JirachiEntity->pos,LeaderPos);
|
||||
SetFacingDirection(JirachiEntity,direction);
|
||||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(&gUnknown_8105D9C);
|
||||
sub_803E708(10,0x46);
|
||||
|
|
@ -4157,7 +4157,7 @@ void LugiaPreFightDialogue(void)
|
|||
sub_80861D4(LugiaEntity,7,0);
|
||||
DisplayDungeonDialogue(&gLugiaPreFightDialogue_7);
|
||||
LugiaScreenFlash();
|
||||
SetupBossFightHP(LugiaEntity,800,0x20);
|
||||
SetupBossFightHP(LugiaEntity,800,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
DungeonStartNewBGM(MUS_FRIEND_AREA_CRYPTIC_CAVE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
|
@ -4307,7 +4307,7 @@ void KyogrePreFightDialogue(void)
|
|||
// power!
|
||||
DisplayDungeonDialogue(&gKyogrePreFightDialogue_7);
|
||||
sub_803E708(10,0x46);
|
||||
SetupBossFightHP(KyogreEntity,600,0xb);
|
||||
SetupBossFightHP(KyogreEntity,600,MUS_BOSS_BATTLE);
|
||||
DungeonStartNewBGM(MUS_FRIEND_AREA_CRYPTIC_CAVE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
|
@ -4449,7 +4449,7 @@ void SetupDeoxysFacingDirection(struct Entity *deoxysEntity)
|
|||
|
||||
void SetupDeoxysFightHP(struct Entity *deoxysEntity)
|
||||
{
|
||||
SetupBossFightHP(deoxysEntity, 950, 0x20);
|
||||
SetupBossFightHP(deoxysEntity, 950, MUS_BATTLE_WITH_RAYQUAZA);
|
||||
}
|
||||
|
||||
void sub_808C5C0(void)
|
||||
|
|
@ -4910,13 +4910,13 @@ void sub_808C938(void)
|
|||
void sub_808C948(struct Entity *param_1, u8 param_2)
|
||||
{
|
||||
bool8 flag;
|
||||
s32 iVar3;
|
||||
s32 index;
|
||||
struct Entity *iVar2;
|
||||
|
||||
if (param_2 == 0x37) {
|
||||
flag = FALSE;
|
||||
for(iVar3 = 0; iVar3 < DUNGEON_MAX_WILD_POKEMON; iVar3++){
|
||||
iVar2 = gDungeon->wildPokemon[iVar3];
|
||||
for(index = 0; index < DUNGEON_MAX_WILD_POKEMON; index++){
|
||||
iVar2 = gDungeon->wildPokemon[index];
|
||||
if ((iVar2 != param_1) && (EntityExists(iVar2) != 0)) {
|
||||
flag = TRUE;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ void sub_8086A54(struct Entity *pokemon)
|
|||
pokemon->info->unk15E = 0;
|
||||
}
|
||||
|
||||
void SetupBossFightHP(struct Entity *pokemon, s32 newHP, u16 param_3)
|
||||
void SetupBossFightHP(struct Entity *pokemon, s32 newHP, u16 songIndex)
|
||||
{
|
||||
|
||||
// NOTE: needed two of these to match.. very dumb
|
||||
|
|
@ -79,7 +79,7 @@ void SetupBossFightHP(struct Entity *pokemon, s32 newHP, u16 param_3)
|
|||
entityInfo->HP = newHP;
|
||||
}
|
||||
|
||||
gDungeon->unk66A = param_3;
|
||||
gDungeon->bossSongIndex = songIndex;
|
||||
SetDefaultIQSkills(enityData_1->IQSkillMenuFlags, enityData_1->bossFlag);
|
||||
LoadIQSkills(pokemon);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,13 +9,14 @@
|
|||
#include "pokemon.h"
|
||||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct DebugMenu *gUnknown_203B3EC;
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E7D40 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -25,7 +26,7 @@ const struct UnkTextStruct2 gUnknown_80E7D40 =
|
|||
const struct UnkTextStruct2 gUnknown_80E7D58 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x09, 0x0b,
|
||||
0x0b, 0x00,
|
||||
|
|
@ -54,14 +55,12 @@ ALIGNED(4) static const char debug_menu_fill6[] = "pksdir0";
|
|||
|
||||
|
||||
|
||||
extern u8 sub_8012FD8(struct DebugMenu *);
|
||||
extern void sub_8013114(struct DebugMenu *, s32 *);
|
||||
extern void sub_80976F8(u8);
|
||||
extern void sub_803A3BC(void);
|
||||
extern void sub_803A3A0(void);
|
||||
|
||||
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void sub_8035CF4(struct DebugMenu *, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct*, u32, u32);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_808D1DC(u8 *);
|
||||
extern void sub_808CFD0(u8 *, s32, u8 *, u32, u32 *, u16 *);
|
||||
|
|
@ -102,8 +101,8 @@ u32 UpdateDebugMenu(void)
|
|||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
debugMenuAction = 11;
|
||||
|
||||
if (sub_8012FD8(gUnknown_203B3EC) == 0) {
|
||||
sub_8013114(gUnknown_203B3EC, &debugMenuAction);
|
||||
if (sub_8012FD8(&gUnknown_203B3EC->unk0[0]) == 0) {
|
||||
sub_8013114(&gUnknown_203B3EC->unk0[0], &debugMenuAction);
|
||||
}
|
||||
|
||||
switch(debugMenuAction) {
|
||||
|
|
@ -147,8 +146,8 @@ u32 UpdateDebugMenu(void)
|
|||
|
||||
void SetDebugMenuItems(void)
|
||||
{
|
||||
SetMenuItems(gUnknown_203B3EC, gUnknown_203B3EC->unk140, 0, &gUnknown_80E7D58, gDebugMenuItems, 1, 0xd, 0);
|
||||
sub_8035CF4(gUnknown_203B3EC,0,1);
|
||||
SetMenuItems(gUnknown_203B3EC->unk0, gUnknown_203B3EC->unk140, 0, &gUnknown_80E7D58, gDebugMenuItems, 1, 0xd, 0);
|
||||
sub_8035CF4(gUnknown_203B3EC->unk0,0,1);
|
||||
}
|
||||
|
||||
void sub_803A3A0(void)
|
||||
|
|
|
|||
|
|
@ -4,12 +4,10 @@
|
|||
|
||||
extern struct unkStruct_203B3F8 *gUnknown_203B3F8;
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
extern u8 sub_8012FD8(void *);
|
||||
extern void sub_803AE58(void);
|
||||
extern u32 sub_8016080(void);
|
||||
extern void sub_803ACD0(u32);
|
||||
extern void sub_80160D8(void);
|
||||
extern void sub_8013114(void *, s32 *);
|
||||
|
||||
extern u32 sub_8023A94(u32);
|
||||
extern s16 sub_8023B44(void);
|
||||
|
|
@ -36,14 +34,14 @@ void sub_803AF38(void)
|
|||
|
||||
void sub_803AF88(void)
|
||||
{
|
||||
s32 local_c;
|
||||
s32 menuAction;
|
||||
|
||||
local_c = 0;
|
||||
sub_8023A94(local_c);
|
||||
menuAction = 0;
|
||||
sub_8023A94(0);
|
||||
if (sub_8012FD8(&gUnknown_203B3F8->unk10) == 0) {
|
||||
sub_8013114(&gUnknown_203B3F8->unk10, &local_c);
|
||||
sub_8013114(&gUnknown_203B3F8->unk10, &menuAction);
|
||||
}
|
||||
switch(local_c)
|
||||
switch(menuAction)
|
||||
{
|
||||
case 4:
|
||||
sub_803ACD0(5);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "debug_menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B3F8 *gUnknown_203B3F8;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7ED4;
|
||||
|
|
@ -17,7 +18,6 @@ extern void sub_80073B8(u32);
|
|||
extern void sub_8013C68(u32 *);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8023DA4(void);
|
||||
extern void sub_8012EA4(const char **, u32);
|
||||
extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32);
|
||||
|
||||
void sub_803ACD0(u32);
|
||||
|
|
@ -35,8 +35,6 @@ extern void sub_803AE58();
|
|||
extern void sub_801602C(u32, u8 *);
|
||||
|
||||
extern void sub_803AEB0();
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_8012D60(const char **, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
|
||||
u32 sub_803AC24(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "memory.h"
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B3F0
|
||||
{
|
||||
|
|
@ -14,8 +15,7 @@ struct unkStruct_203B3F0
|
|||
u8 fill5[0x8 - 5];
|
||||
u32 unk8;
|
||||
struct MenuItem menuItems[8];
|
||||
u32 unk4C;
|
||||
u8 fill50[0x9C - 0x50];
|
||||
struct MenuStruct unk4C;
|
||||
u32 unk9C;
|
||||
u32 unkA0;
|
||||
u32 unkA4;
|
||||
|
|
@ -39,8 +39,7 @@ struct unkStruct_203B3F4
|
|||
u8 fill5[0x8 - 5];
|
||||
u32 unk8;
|
||||
struct MenuItem menuItems[8];
|
||||
u32 unk4C;
|
||||
u8 fill50[0x9C - 0x50];
|
||||
struct MenuStruct unk4C;
|
||||
struct UnkTextStruct2 unk9C[4];
|
||||
};
|
||||
|
||||
|
|
@ -63,18 +62,14 @@ extern const char *gUnknown_80D4970[];
|
|||
extern void sub_801C8C4(u32, u32, u32, u32);
|
||||
extern void sub_801CB5C(u32);
|
||||
extern void sub_801CCD8();
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u32, u32, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void xxx_call_draw_string(s32, u32, const char *, u32, u32);
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern u8 sub_801CB24();
|
||||
extern void sub_801CBB8();
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
extern u32 sub_801B410();
|
||||
extern void sub_801B450();
|
||||
|
|
|
|||
|
|
@ -40,6 +40,13 @@ extern s32 gPotentialAttackTargetWeights[NUM_DIRECTIONS];
|
|||
extern u8 gPotentialAttackTargetDirections[NUM_DIRECTIONS];
|
||||
extern struct Entity *gPotentialTargets[NUM_DIRECTIONS];
|
||||
|
||||
extern void sub_8055A00(struct Entity *, u8, u32, u32, u32);
|
||||
extern void sub_806A9B4(struct Entity *, u8);
|
||||
extern bool8 sub_8044B28(void);
|
||||
extern void sub_8057588(struct Entity *, u32);
|
||||
extern void sub_806A1B0(struct Entity *);
|
||||
|
||||
|
||||
void DecideAttack(struct Entity *pokemon)
|
||||
{
|
||||
struct EntityInfo *pokemonInfo = pokemon->info;
|
||||
|
|
@ -922,3 +929,26 @@ bool8 IsTargetInRange(struct Entity *pokemon, struct Entity *targetPokemon, s32
|
|||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_807CABC(struct Entity *target)
|
||||
{
|
||||
struct EntityInfo *entityInfo;
|
||||
s32 counter;
|
||||
|
||||
counter = 0;
|
||||
while (1) {
|
||||
if(counter >= sub_8070828(target, TRUE)) break;
|
||||
entityInfo = target->info;
|
||||
sub_8055A00(target,(entityInfo->action).actionUseIndex,1,0,0);
|
||||
if(!EntityExists(target)) break;
|
||||
if(sub_8044B28()) break;
|
||||
if(entityInfo->unk159) break;
|
||||
counter++;
|
||||
}
|
||||
|
||||
sub_8057588(target,1);
|
||||
if (EntityExists(target)) {
|
||||
sub_806A9B4(target,(target->info->action).actionUseIndex);
|
||||
}
|
||||
sub_806A1B0(target);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@ extern void sub_80709C8(u8 *buffer, struct EntityInfo *entityInfo);
|
|||
void FadeOutAllMusic(u16);
|
||||
void xxx_call_stop_bgm(void);
|
||||
|
||||
// Dungeon Music Player adds in this flag to tell
|
||||
// the system to fade in rather than immediately playing
|
||||
#define DUNGEON_MUSIC_FADE_IN 0x8000
|
||||
|
||||
void sub_8083AB0(s16 param_0, struct Entity * target, struct Entity * entity)
|
||||
{
|
||||
u8 *defPtr;
|
||||
|
|
@ -144,48 +148,48 @@ bool8 sub_8083C88(u8 param_1)
|
|||
void sub_8083CE0(u8 param_1)
|
||||
{
|
||||
if ((param_1 == 0) || (1 < gUnknown_202EE10.unk1A)) {
|
||||
PlayFanfareSE(0x12d,0x100);
|
||||
PlayFanfareSE(0x12d,MAX_VOLUME);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8083D08(void)
|
||||
{
|
||||
PlayFanfareSE(0x12E, 0x100);
|
||||
PlayFanfareSE(0x12E, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void sub_8083D1C(void)
|
||||
{
|
||||
PlayFanfareSE(0x133, 0x100);
|
||||
PlayFanfareSE(0x133, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void sub_8083D30(void)
|
||||
{
|
||||
PlayFanfareSE(0x12F, 0x100);
|
||||
PlayFanfareSE(0x12F, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void sub_8083D44(void)
|
||||
{
|
||||
PlayFanfareSE(0x130, 0x100);
|
||||
PlayFanfareSE(0x130, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void sub_8083D58(void)
|
||||
{
|
||||
PlayFanfareSE(0xC8, 0x100);
|
||||
PlayFanfareSE(0xC8, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void sub_8083D68(void)
|
||||
{
|
||||
PlayFanfareSE(0xCF, 0x100);
|
||||
PlayFanfareSE(0xCF, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void sub_8083D78(void)
|
||||
{
|
||||
PlayFanfareSE(0xD3, 0x100);
|
||||
PlayFanfareSE(0xD3, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void sub_8083D88(void)
|
||||
{
|
||||
PlayFanfareSE(0xCC, 0x100);
|
||||
PlayFanfareSE(0xCC, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void PlayDungeonFailBGM(void)
|
||||
|
|
@ -194,7 +198,7 @@ void PlayDungeonFailBGM(void)
|
|||
gDungeon->unk66F = 0;
|
||||
gDungeon->unk672 = 0;
|
||||
gDungeon->unk699 = 0;
|
||||
gDungeon->unk66A = 999;
|
||||
gDungeon->bossSongIndex = STOP_BGM;
|
||||
}
|
||||
|
||||
void PlayDungeonCompleteBGM(void)
|
||||
|
|
@ -203,25 +207,25 @@ void PlayDungeonCompleteBGM(void)
|
|||
gDungeon->unk66F = 0;
|
||||
gDungeon->unk672 = 0;
|
||||
gDungeon->unk699 = 0;
|
||||
gDungeon->unk66A = 999;
|
||||
gDungeon->bossSongIndex = STOP_BGM;
|
||||
}
|
||||
|
||||
void sub_8083E28(void)
|
||||
{
|
||||
PlayFanfareSE(0xCF, 0x100);
|
||||
PlayFanfareSE(0xCF, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void PlaySoundEffect(u32 songIndex)
|
||||
{
|
||||
u16 songIndex_u32 = songIndex;
|
||||
if(songIndex_u32 != 0x3E5)
|
||||
PlayFanfareSE(songIndex_u32, 0x100);
|
||||
if(songIndex_u32 != STOP_SOUND_EFFECT)
|
||||
PlayFanfareSE(songIndex_u32, MAX_VOLUME);
|
||||
}
|
||||
|
||||
void StopSoundEffect(u32 songIndex)
|
||||
{
|
||||
u16 songIndex_u32 = songIndex;
|
||||
if(songIndex_u32 != 0x3E5)
|
||||
if(songIndex_u32 != STOP_SOUND_EFFECT)
|
||||
StopFanfareSE(songIndex_u32);
|
||||
}
|
||||
|
||||
|
|
@ -238,16 +242,16 @@ void DungeonStartNewBGM(u16 songIndex)
|
|||
|
||||
void DungeonFadeInNewBGM(u16 songIndex, u32 fadeInSpeed)
|
||||
{
|
||||
gDungeon->musPlayer.queuedSongIndex = 0x80 << 8 | songIndex;
|
||||
gDungeon->musPlayer.queuedSongIndex = DUNGEON_MUSIC_FADE_IN | songIndex;
|
||||
gDungeon->musPlayer.fadeInSpeed = fadeInSpeed;
|
||||
}
|
||||
|
||||
void DungeonFadeOutBGM(u16 speed)
|
||||
{
|
||||
FadeOutAllMusic(speed);
|
||||
gDungeon->musPlayer.songIndex = 999;
|
||||
gDungeon->musPlayer.pastSongIndex = 999;
|
||||
gDungeon->musPlayer.queuedSongIndex = 999;
|
||||
gDungeon->musPlayer.songIndex = STOP_BGM;
|
||||
gDungeon->musPlayer.pastSongIndex = STOP_BGM;
|
||||
gDungeon->musPlayer.queuedSongIndex = STOP_BGM;
|
||||
}
|
||||
|
||||
void DungeonStopBGM(void)
|
||||
|
|
@ -266,50 +270,50 @@ void StopDungeonBGM(void)
|
|||
struct DungeonMusicPlayer *temp = &gDungeon->musPlayer;
|
||||
temp->state = 0;
|
||||
temp->fadeOutSpeed = 0;
|
||||
temp->songIndex = 999;
|
||||
temp->pastSongIndex = 999;
|
||||
temp->queuedSongIndex = 999;
|
||||
temp->songIndex = STOP_BGM;
|
||||
temp->pastSongIndex = STOP_BGM;
|
||||
temp->queuedSongIndex = STOP_BGM;
|
||||
}
|
||||
|
||||
void UpdateDungeonMusic(void)
|
||||
{
|
||||
#ifndef NONMATCHING
|
||||
register s32 uVar1 asm("r1");
|
||||
register u16 *uVar3 asm("r3");
|
||||
register s32 currSongIndex asm("r1");
|
||||
register u16 *bossSongIndex asm("r3");
|
||||
#else
|
||||
s32 uVar1;
|
||||
u16 *uVar3;
|
||||
s32 currSongIndex;
|
||||
u16 *bossSongIndex;
|
||||
#endif
|
||||
s32 songIndex1;
|
||||
s32 newSongIndex;
|
||||
struct DungeonMusicPlayer *musPlayer;
|
||||
|
||||
musPlayer = &gDungeon->musPlayer;
|
||||
|
||||
uVar3 = &gDungeon->unk66A;
|
||||
songIndex1 = *uVar3;
|
||||
if (songIndex1 == 999) {
|
||||
bossSongIndex = &gDungeon->bossSongIndex;
|
||||
newSongIndex = *bossSongIndex;
|
||||
if (newSongIndex == STOP_BGM) {
|
||||
if (gDungeon->unk66F != 0) {
|
||||
songIndex1 = MUS_STOP_THIEF;
|
||||
newSongIndex = MUS_STOP_THIEF;
|
||||
}
|
||||
else if (gDungeon->unk672 != 0) {
|
||||
songIndex1 = MUS_MONSTER_HOUSE;
|
||||
newSongIndex = MUS_MONSTER_HOUSE;
|
||||
}
|
||||
else if (gDungeon->unk699 != 0) {
|
||||
songIndex1 = MUS_KECLEON_SHOP;
|
||||
newSongIndex = MUS_KECLEON_SHOP;
|
||||
}
|
||||
else {
|
||||
songIndex1 = musPlayer->queuedSongIndex;
|
||||
newSongIndex = musPlayer->queuedSongIndex;
|
||||
}
|
||||
}
|
||||
if (musPlayer->state == 4) {
|
||||
if (songIndex1 != musPlayer->pastSongIndex) {
|
||||
if (newSongIndex != musPlayer->pastSongIndex) {
|
||||
musPlayer->state = 2;
|
||||
musPlayer->songIndex = songIndex1;
|
||||
musPlayer->songIndex = newSongIndex;
|
||||
}
|
||||
}
|
||||
else if ((songIndex1 != 999) && (musPlayer->songIndex == 999)) {
|
||||
else if ((newSongIndex != STOP_BGM) && (musPlayer->songIndex == STOP_BGM)) {
|
||||
musPlayer->state = 1;
|
||||
musPlayer->songIndex = songIndex1;
|
||||
musPlayer->songIndex = newSongIndex;
|
||||
}
|
||||
switch(musPlayer->state) {
|
||||
case 0:
|
||||
|
|
@ -317,21 +321,21 @@ void UpdateDungeonMusic(void)
|
|||
default:
|
||||
break;
|
||||
case 1:
|
||||
uVar1 = musPlayer->songIndex;
|
||||
if (uVar1 == 999) {
|
||||
currSongIndex = musPlayer->songIndex;
|
||||
if (currSongIndex == STOP_BGM) {
|
||||
musPlayer->state = 0;
|
||||
}
|
||||
else {
|
||||
if ((uVar1 & 0x8000) != 0) {
|
||||
StartNewBGM(uVar1 & 0x7fff);
|
||||
if ((currSongIndex & DUNGEON_MUSIC_FADE_IN)) {
|
||||
StartNewBGM(currSongIndex & ~(DUNGEON_MUSIC_FADE_IN));
|
||||
}
|
||||
else {
|
||||
FadeInNewBGM(uVar1 & 0x7fff, musPlayer->fadeInSpeed);
|
||||
FadeInNewBGM(currSongIndex & ~(DUNGEON_MUSIC_FADE_IN), musPlayer->fadeInSpeed);
|
||||
}
|
||||
musPlayer->pastSongIndex = musPlayer->songIndex;
|
||||
musPlayer->state = 4;
|
||||
}
|
||||
musPlayer->songIndex = 999;
|
||||
musPlayer->songIndex = STOP_BGM;
|
||||
break;
|
||||
case 2:
|
||||
FadeOutBGM(0x1e);
|
||||
|
|
@ -342,7 +346,7 @@ void UpdateDungeonMusic(void)
|
|||
if ((musPlayer->fadeOutSpeed != 0) && (musPlayer->fadeOutSpeed--, musPlayer->fadeOutSpeed != 0)) {
|
||||
break;
|
||||
}
|
||||
if (musPlayer->songIndex == 999) {
|
||||
if (musPlayer->songIndex == STOP_BGM) {
|
||||
StopBGM();
|
||||
musPlayer->state = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
extern bool8 HasCompletedAllMazes(void);
|
||||
extern u8 sub_80973F4(u32);
|
||||
extern u8 _FlagJudge(u32, u32, u32);
|
||||
extern u8 _FlagJudge(s32, s32, u32);
|
||||
extern u32 sub_8001658(u32, s32);
|
||||
extern u32 _FlagCalc(s32, s32, u32);
|
||||
extern void sub_80018D8(u32, u32, u32);
|
||||
|
|
@ -365,7 +365,7 @@ u32 _FlagCalc(s32 param_1, s32 param_2, u32 operation)
|
|||
}
|
||||
}
|
||||
|
||||
u8 _FlagJudge(u32 param_1, u32 param_2, u32 operation)
|
||||
u8 _FlagJudge(s32 param_1, s32 param_2, u32 operation)
|
||||
{
|
||||
switch(operation) {
|
||||
case 0:
|
||||
|
|
@ -375,21 +375,21 @@ u8 _FlagJudge(u32 param_1, u32 param_2, u32 operation)
|
|||
case 2:
|
||||
return param_1 == param_2;
|
||||
case 7:
|
||||
return (-(param_1 ^ param_2) | (param_1 ^ param_2)) >> 0x1f;
|
||||
return param_1 != param_2;
|
||||
case 3:
|
||||
return (int)param_1 > (int)param_2;
|
||||
return param_1 > param_2;
|
||||
case 5:
|
||||
return (int)param_1 >= (int)param_2;
|
||||
return param_1 >= param_2;
|
||||
case 4:
|
||||
return (int)param_1 < (int)param_2;
|
||||
return param_1 < param_2;
|
||||
case 6:
|
||||
return (int)param_1 <= (int)param_2;
|
||||
return param_1 <= param_2;
|
||||
case 8:
|
||||
return (param_1 & param_2) != 0;
|
||||
case 9:
|
||||
return (param_1 ^ param_2) != 0;
|
||||
case 10:
|
||||
return (int)param_1 >> (param_2) & 1;
|
||||
return param_1 >> (param_2) & 1;
|
||||
default:
|
||||
FatalError(&gUnknown_80B7350,gUnknown_80B735C, operation); // event flag rule error %d
|
||||
}
|
||||
|
|
@ -415,9 +415,9 @@ void sub_800226C(u32 param_1, s16 param_2, s32 param_3, u32 operation)
|
|||
|
||||
void sub_80022A0(u32 param_1, s16 param_2, s16 param_3, u32 operation)
|
||||
{
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
u32 uVar3;
|
||||
s32 uVar1;
|
||||
s32 uVar2;
|
||||
s32 uVar3;
|
||||
|
||||
s32 param_2_s32 = param_2;
|
||||
s32 param_3_s32 = param_3;
|
||||
|
|
@ -429,14 +429,14 @@ void sub_80022A0(u32 param_1, s16 param_2, s16 param_3, u32 operation)
|
|||
sub_80018D8(param_1,param_2_s32,uVar3);
|
||||
}
|
||||
|
||||
u8 FlagJudge(u32 r0, u32 r1, u32 operation)
|
||||
u8 FlagJudge(s32 r0, s32 r1, u32 operation)
|
||||
{
|
||||
return _FlagJudge(r0, r1, operation);
|
||||
}
|
||||
|
||||
u8 sub_80022F8(u32 param_1, s16 param_2, s32 param_3, u32 operation)
|
||||
{
|
||||
u32 uVar1;
|
||||
s32 uVar1;
|
||||
|
||||
uVar1 = sub_8001658(param_1, param_2);
|
||||
return _FlagJudge(uVar1,param_3,operation);
|
||||
|
|
@ -444,8 +444,8 @@ u8 sub_80022F8(u32 param_1, s16 param_2, s32 param_3, u32 operation)
|
|||
|
||||
u8 sub_8002318(u32 param_1, s16 param_2, s16 param_3, u32 operation)
|
||||
{
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
s32 uVar1;
|
||||
s32 uVar2;
|
||||
|
||||
s32 param_2_s32 = param_2;
|
||||
s32 param_3_s32 = param_3;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include "item.h"
|
||||
#include "team_inventory.h"
|
||||
#include "felicity_bank.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B204 *gUnknown_203B204;
|
||||
|
||||
|
|
@ -14,7 +15,6 @@ extern u8 *gFelicityDeposit;
|
|||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
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_80073E0(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "friend_area.h"
|
||||
#include "pokemon.h"
|
||||
|
|
@ -359,9 +360,9 @@ void sub_8092404(u8 r0, u16 *r1, bool8 r2, bool8 r3)
|
|||
pokemon = &gRecruitedPokemonRef->pokemon[counter];
|
||||
if((u8)(pokemon->unk0) & 1)
|
||||
{
|
||||
if((pokemon->unk2 == 0) || r2)
|
||||
if((pokemon->isTeamLeader == 0) || r2)
|
||||
{
|
||||
flag = (u8)pokemon->fill4[0] == 65;
|
||||
flag = pokemon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER;
|
||||
if(!flag || r3)
|
||||
{
|
||||
if(sub_80923D4(counter) == r0)
|
||||
|
|
@ -463,123 +464,35 @@ NAKED void sub_8092404(u8 r0, u16 *r1, bool8 r2, bool8 r3)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_809249C(u8 index, u8 clear)
|
||||
void sub_809249C(u8 friendArea, u8 clear)
|
||||
{
|
||||
s32 counter;
|
||||
bool32 flag;
|
||||
u8 temp8;
|
||||
u8 neg8;
|
||||
s32 index;
|
||||
bool32 dungeonCheck;
|
||||
bool32 isTeamLeader;
|
||||
|
||||
if(!gFriendAreas[index])
|
||||
if(!gFriendAreas[friendArea])
|
||||
return;
|
||||
for(counter = 0; counter <= 412; counter++)
|
||||
for(index = 0; index < NUM_MONSTERS; index++)
|
||||
{
|
||||
if((u8)(gRecruitedPokemonRef[counter].unk0) & 1)
|
||||
struct PokemonStruct *pokemon = &gRecruitedPokemonRef->pokemon[index];
|
||||
|
||||
if((u8)(pokemon->unk0) & 1)
|
||||
{
|
||||
if(sub_80923D4(counter) == index)
|
||||
if(sub_80923D4(index) == friendArea)
|
||||
{
|
||||
flag = (u8)gRecruitedPokemonRef[counter].unk4[0] == 65;
|
||||
if(!flag)
|
||||
{
|
||||
temp8 = (u8)gRecruitedPokemonRef[counter].unk2;
|
||||
neg8 = -temp8;
|
||||
neg8 |= temp8;
|
||||
// still tries to left shift before the right shift..
|
||||
neg8 >>= 7;
|
||||
if(neg8 != 0)
|
||||
{
|
||||
clear = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gRecruitedPokemonRef[counter].unk0 = neg8;
|
||||
}
|
||||
}
|
||||
dungeonCheck = pokemon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER;
|
||||
if(dungeonCheck || (isTeamLeader = pokemon->isTeamLeader != FALSE, isTeamLeader))
|
||||
clear = FALSE;
|
||||
else
|
||||
pokemon->unk0 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(clear)
|
||||
{
|
||||
gFriendAreas[index] = FALSE;
|
||||
gFriendAreas[friendArea] = FALSE;
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED void sub_809249C(u8 index, u8 clear)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r6, r0, 24\n"
|
||||
"\tlsls r1, 24\n"
|
||||
"\tlsrs r7, r1, 24\n"
|
||||
"\tldr r0, _080924F8\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tadds r0, r6\n"
|
||||
"\tldrb r0, [r0]\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _0809251A\n"
|
||||
"\tmovs r5, 0\n"
|
||||
"_080924B4:\n"
|
||||
"\tldr r2, _080924FC\n"
|
||||
"\tmovs r0, 0x58\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tmuls r1, r0\n"
|
||||
"\tldr r0, [r2]\n"
|
||||
"\tadds r4, r0, r1\n"
|
||||
"\tldrb r1, [r4]\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tands r0, r1\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08092502\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl sub_80923D4\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tcmp r0, r6\n"
|
||||
"\tbne _08092502\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tldrb r0, [r4, 0x4]\n"
|
||||
"\tcmp r0, 0x41\n"
|
||||
"\tbne _080924E2\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"_080924E2:\n"
|
||||
"\tcmp r1, 0\n"
|
||||
"\tbne _080924F2\n"
|
||||
"\tldrb r1, [r4, 0x2]\n"
|
||||
"\tnegs r0, r1\n"
|
||||
"\torrs r0, r1\n"
|
||||
"\tlsrs r0, 31\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08092500\n"
|
||||
"_080924F2:\n"
|
||||
"\tmovs r7, 0\n"
|
||||
"\tb _08092502\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080924F8: .4byte gFriendAreas\n"
|
||||
"_080924FC: .4byte gRecruitedPokemonRef\n"
|
||||
"_08092500:\n"
|
||||
"\tstrh r0, [r4]\n"
|
||||
"_08092502:\n"
|
||||
"\tadds r5, 0x1\n"
|
||||
"\tmovs r0, 0xCE\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tcmp r5, r0\n"
|
||||
"\tble _080924B4\n"
|
||||
"\tcmp r7, 0\n"
|
||||
"\tbeq _0809251A\n"
|
||||
"\tldr r0, _08092520\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tadds r0, r6\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"_0809251A:\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08092520: .4byte gFriendAreas");
|
||||
}
|
||||
#endif
|
||||
|
||||
const char *GetFriendAreaName(u8 index)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@
|
|||
#include "pokemon.h"
|
||||
#include "team_inventory.h"
|
||||
#include "friend_area_action_menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B2BC *gUnknown_203B2BC;
|
||||
|
||||
extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
|
||||
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u32 *, u32, u32);
|
||||
extern void sub_8027D40(u32, struct BulkItem *);
|
||||
extern void sub_8023868(u32, u32, u32, u32);
|
||||
extern void sub_8023B7C(u32);
|
||||
|
|
@ -30,7 +30,6 @@ extern void sub_801B3C0(struct Item *);
|
|||
extern void unk_CopyMoves4To8(struct Move *, struct Move *);
|
||||
extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32);
|
||||
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void SetFriendAreaActionMenuState(u32);
|
||||
extern void ResetSprites(u8 );
|
||||
extern void sub_802719C();
|
||||
|
|
@ -39,7 +38,7 @@ extern void sub_80277FC();
|
|||
extern void sub_80278B4();
|
||||
extern void sub_8027A40();
|
||||
extern void sub_8027A5C();
|
||||
extern void sub_8027D1C();
|
||||
extern void FriendAreaActionMenu_GotoFallbackState();
|
||||
extern void sub_8027A78();
|
||||
extern void sub_8027AE4();
|
||||
extern void sub_8027B28();
|
||||
|
|
@ -53,7 +52,7 @@ extern void sub_80276A8();
|
|||
const struct UnkTextStruct2 gUnknown_80DD6EC =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -64,7 +63,7 @@ const struct UnkTextStruct2 gUnknown_80DD6EC =
|
|||
const struct UnkTextStruct2 gUnknown_80DD704 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x13, 0x00, 0x04, 0x00,
|
||||
0x09, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -74,7 +73,7 @@ const struct UnkTextStruct2 gUnknown_80DD704 =
|
|||
const struct UnkTextStruct2 gUnknown_80DD71C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x14, 0x00, 0x04, 0x00,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -84,7 +83,7 @@ const struct UnkTextStruct2 gUnknown_80DD71C =
|
|||
const struct UnkTextStruct2 gUnknown_80DD734 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x16, 0x00, 0x04, 0x00,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -94,7 +93,7 @@ const struct UnkTextStruct2 gUnknown_80DD734 =
|
|||
const struct UnkTextStruct2 gUnknown_80DD74C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x11, 0x00,
|
||||
0x1A, 0x02,
|
||||
0x02, 0x00,
|
||||
|
|
@ -131,14 +130,14 @@ u32 sub_8027074(void)
|
|||
gUnknown_203B2BC->unk70 = 0;
|
||||
gUnknown_203B2BC->unk74 = 0;
|
||||
gUnknown_203B2BC->unk78 = 0;
|
||||
SetFriendAreaActionMenuState(0);
|
||||
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_INIT);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_80270A4(void)
|
||||
{
|
||||
switch(gUnknown_203B2BC->state) {
|
||||
case 0:
|
||||
case FRIEND_AREA_ACTION_MENU_INIT:
|
||||
SetFriendAreaActionMenuState(1);
|
||||
break;
|
||||
case 1:
|
||||
|
|
@ -178,9 +177,9 @@ u32 sub_80270A4(void)
|
|||
sub_8027D00();
|
||||
break;
|
||||
default:
|
||||
sub_8027D1C();
|
||||
FriendAreaActionMenu_GotoFallbackState();
|
||||
break;
|
||||
case 0x11:
|
||||
case FRIEND_AREA_ACTION_MENU_EXIT:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -236,8 +235,8 @@ void sub_8027274(void)
|
|||
struct Item slot;
|
||||
|
||||
switch(gUnknown_203B2BC->state) {
|
||||
case 0:
|
||||
case 0x11:
|
||||
case FRIEND_AREA_ACTION_MENU_INIT:
|
||||
case FRIEND_AREA_ACTION_MENU_EXIT:
|
||||
break;
|
||||
case 1:
|
||||
sub_8023868(1,0,0,7);
|
||||
|
|
@ -290,13 +289,13 @@ void sub_8027274(void)
|
|||
sub_801F808(gUnknown_203B2BC->moveIDs);
|
||||
break;
|
||||
case 6:
|
||||
gUnknown_203B2BC->unk4 = 2;
|
||||
gUnknown_203B2BC->fallbackState = 2;
|
||||
// The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} was
|
||||
// returned to the Toolbox
|
||||
sub_80141B4(gUnknown_80DD8A0,0,0,0x101);
|
||||
break;
|
||||
case 7:
|
||||
gUnknown_203B2BC->unk4 = 2;
|
||||
gUnknown_203B2BC->fallbackState = 2;
|
||||
// The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} was
|
||||
// returned to storage
|
||||
sub_80141B4(gUnknown_80DD8D0,0,0,0x101);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "team_inventory.h"
|
||||
#include "pokemon.h"
|
||||
#include "friend_area_action_menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B2BC *gUnknown_203B2BC;
|
||||
extern struct TeamInventory *gTeamInventory_203B460;
|
||||
|
|
@ -16,8 +17,6 @@ extern u32 sub_801EF38(u8 r0);
|
|||
extern void sub_801F214();
|
||||
|
||||
extern void SetFriendAreaActionMenuState(u32);
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern void PlaySound(u32);
|
||||
extern void nullsub_104();
|
||||
extern void sub_801A928();
|
||||
|
|
@ -81,7 +80,7 @@ void sub_80277FC(void)
|
|||
gUnknown_203B2BC->targetPoke = sub_8023B44();
|
||||
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
|
||||
gUnknown_203B2BC->unk18 = pokeStruct;
|
||||
gUnknown_203B2BC->unk1C = pokeStruct->isTeamLeader;
|
||||
gUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader;
|
||||
PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->item2);
|
||||
SetFriendAreaActionMenuState(3);
|
||||
break;
|
||||
|
|
@ -89,13 +88,13 @@ void sub_80277FC(void)
|
|||
gUnknown_203B2BC->targetPoke = sub_8023B44();
|
||||
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
|
||||
gUnknown_203B2BC->unk18 = pokeStruct;
|
||||
gUnknown_203B2BC->unk1C = pokeStruct->isTeamLeader;
|
||||
gUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader;
|
||||
PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->item2);
|
||||
SetFriendAreaActionMenuState(4);
|
||||
break;
|
||||
case 2:
|
||||
sub_8023C60();
|
||||
SetFriendAreaActionMenuState(0x11);
|
||||
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_EXIT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -105,14 +104,14 @@ void sub_80278B4(void)
|
|||
struct PokemonStruct *playerStruct;
|
||||
struct PokemonStruct *pokeStruct1;
|
||||
struct PokemonStruct *pokeStruct2;
|
||||
int local_c;
|
||||
int menuAction;
|
||||
|
||||
local_c = 0;
|
||||
menuAction = 0;
|
||||
sub_8023A94(0);
|
||||
if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&local_c), local_c != 1)) {
|
||||
gUnknown_203B2BC->unk70 = local_c;
|
||||
if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&menuAction), menuAction != 1)) {
|
||||
gUnknown_203B2BC->unk70 = menuAction;
|
||||
}
|
||||
switch(local_c) {
|
||||
switch(menuAction) {
|
||||
case 6:
|
||||
if (sub_808D750(gUnknown_203B2BC->targetPoke)) {
|
||||
#ifdef NONMATCHING
|
||||
|
|
@ -242,10 +241,10 @@ void sub_8027A78(void)
|
|||
|
||||
void sub_8027AE4(void)
|
||||
{
|
||||
s32 local_8;
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&local_8) == 0) {
|
||||
switch(local_8)
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
switch(menuAction)
|
||||
{
|
||||
case 1:
|
||||
case 3:
|
||||
|
|
@ -368,12 +367,12 @@ void sub_8027D00(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_8027D1C(void)
|
||||
void FriendAreaActionMenu_GotoFallbackState(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
SetFriendAreaActionMenuState(gUnknown_203B2BC->unk4);
|
||||
SetFriendAreaActionMenuState(gUnknown_203B2BC->fallbackState);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,34 +1,35 @@
|
|||
#include "global.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "item.h"
|
||||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "text.h"
|
||||
#include "team_inventory.h"
|
||||
#include "constants/move.h"
|
||||
#include "code_800D090.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B2B8
|
||||
{
|
||||
// size: 0x280
|
||||
u32 state;
|
||||
u32 unk4;
|
||||
u32 fallbackState;
|
||||
u8 unk8;
|
||||
/* 0xA */ s16 pokeSpecies;
|
||||
u32 unkC;
|
||||
u32 id;
|
||||
/* 0x10 */ struct BulkItem item1;
|
||||
/* 0x14 */ struct BulkItem item2;
|
||||
struct PokemonStruct *unk18;
|
||||
u8 fill1C[0x4];
|
||||
u32 unk20;
|
||||
bool8 isTeamLeader;
|
||||
u32 moveIndex;
|
||||
/* 0x24 */ u16 moveID;
|
||||
struct Move unk28[4];
|
||||
u8 fill48[0x70 - 0x48];
|
||||
struct Move moves[8];
|
||||
u16 moveIDs[4]; // some list of move IDs
|
||||
u32 unk70;
|
||||
u32 unk74;
|
||||
u32 unk78;
|
||||
u32 unk7C;
|
||||
u8 fill80[0xCC - 0x80];
|
||||
u32 unkCC;
|
||||
struct MenuStruct unk7C;
|
||||
struct MenuStruct unkCC;
|
||||
};
|
||||
extern struct unkStruct_203B2B8 *gUnknown_203B2B8;
|
||||
extern u8 gAvailablePokemonNames[0x58];
|
||||
|
|
@ -69,8 +70,6 @@ extern void nullsub_104(void);
|
|||
extern void sub_801A928(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
|
||||
extern u32 sub_801A8AC(void);
|
||||
extern u32 sub_8022860(void);
|
||||
|
|
@ -268,15 +267,15 @@ void sub_8026B64(void)
|
|||
switch(sub_801A6E8(1))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B2B8->unkC = sub_801A8AC();
|
||||
gUnknown_203B2B8->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->unkC].id;
|
||||
gUnknown_203B2B8->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->unkC].quantity;
|
||||
gUnknown_203B2B8->id = sub_801A8AC();
|
||||
gUnknown_203B2B8->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].id;
|
||||
gUnknown_203B2B8->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].quantity;
|
||||
sub_8026074(0x14);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2B8->unkC = sub_801A8AC();
|
||||
gUnknown_203B2B8->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->unkC].id;
|
||||
gUnknown_203B2B8->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->unkC].quantity;
|
||||
gUnknown_203B2B8->id = sub_801A8AC();
|
||||
gUnknown_203B2B8->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].id;
|
||||
gUnknown_203B2B8->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].quantity;
|
||||
sub_8099690(0);
|
||||
sub_8026074(0x15);
|
||||
break;
|
||||
|
|
@ -307,7 +306,7 @@ void sub_8026C14(void)
|
|||
case 0xb:
|
||||
nextState = 0xF;
|
||||
PlaySound(0x14d);
|
||||
ShiftItemsDownFrom(gUnknown_203B2B8->unkC);
|
||||
ShiftItemsDownFrom(gUnknown_203B2B8->id);
|
||||
FillInventoryGaps();
|
||||
if (gUnknown_203B2B8->item2.id != ITEM_NOTHING) {
|
||||
AddHeldItemToInventory(&gUnknown_203B2B8->item2);
|
||||
|
|
@ -359,8 +358,8 @@ void sub_8026D0C(void)
|
|||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
gUnknown_203B2B8->unk20 = sub_801F194();
|
||||
gUnknown_203B2B8->moveID = gUnknown_203B2B8->unk28[gUnknown_203B2B8->unk20].id;
|
||||
gUnknown_203B2B8->moveIndex = sub_801F194();
|
||||
gUnknown_203B2B8->moveID = gUnknown_203B2B8->moves[gUnknown_203B2B8->moveIndex].id;
|
||||
sub_8026074(0x18);
|
||||
break;
|
||||
case 2:
|
||||
|
|
@ -390,7 +389,7 @@ void sub_8026D88(void)
|
|||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
sub_8026074(gUnknown_203B2B8->unk4);
|
||||
sub_8026074(gUnknown_203B2B8->fallbackState);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -423,7 +422,7 @@ void sub_8026E08(u32 r0)
|
|||
sub_808D930(buffer, gUnknown_203B2B8->unk18->speciesNum);
|
||||
sprintfStatic(buffer1, gUnknown_80DD6E0, gAvailablePokemonNames);
|
||||
x = sub_8008ED0(buffer1);
|
||||
xxx_call_draw_string(((gUnknown_80DD370.unk0c << 3) - x) / 2, 3, buffer1, r0, 0);
|
||||
xxx_call_draw_string(((gUnknown_80DD370.unkC << 3) - x) / 2, 3, buffer1, r0, 0);
|
||||
sub_80073E0(r0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "item.h"
|
||||
#include "pokemon.h"
|
||||
#include "moves.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
|
||||
// there might be more overlap with unkStruct_203B2BC
|
||||
|
|
@ -19,10 +20,10 @@ struct unkStruct_203B2B4
|
|||
u32 unk8;
|
||||
u8 unkC;
|
||||
u8 unkD;
|
||||
s16 unkE;
|
||||
s16 species;
|
||||
u32 unk10;
|
||||
struct BulkItem unk14;
|
||||
u32 unk18;
|
||||
struct BulkItem unk18;
|
||||
/* 0x1C */ struct PokemonStruct *pokeStruct;
|
||||
u32 moveIndex; // some sort of move index
|
||||
u16 moveID;
|
||||
|
|
@ -30,9 +31,7 @@ struct unkStruct_203B2B4
|
|||
u16 moveIDs[4]; // some list of move IDs
|
||||
u32 unk70;
|
||||
s32 unk74;
|
||||
u32 unk78;
|
||||
u32 unk7C;
|
||||
u8 fill7C[0xC8 - 0x80];
|
||||
struct MenuStruct unk78;
|
||||
struct MenuItem unkC8[4];
|
||||
u8 fillE8[0x108 - 0xE8];
|
||||
s16 unk108[8];
|
||||
|
|
@ -70,7 +69,6 @@ extern void sub_8025E24(void);
|
|||
extern void sub_8025E44(void);
|
||||
extern void sub_802544C(void);
|
||||
extern void sub_8025518(void);
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_8025728(void);
|
||||
extern void sub_802591C(void);
|
||||
extern u32 sub_801B3C0(struct Item *param_1);
|
||||
|
|
@ -80,19 +78,17 @@ extern void sub_801A5D8(u32,u32, u32, u32);
|
|||
extern void sub_801A8D0(u32);
|
||||
extern void sub_801A9E0(void);
|
||||
extern void PlaySound(u32);
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, s16 *, u32, u32);
|
||||
extern void sub_8024458(s16, u32);
|
||||
extern void sub_801BEEC(s16);
|
||||
extern void sub_8023B7C(u32);
|
||||
extern void sub_8023DA4(void);
|
||||
|
||||
extern void unk_CopyMoves4To8(struct Move *, struct Move *); // TODO convert arg 0 to PokemonMove struct *
|
||||
extern void unk_CopyMoves4To8(struct Move *, struct Move *);
|
||||
extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32);
|
||||
extern void GetLinkedSequence(u32, struct Move *, u16*);
|
||||
extern void sub_801F808(u16 *);
|
||||
u32 sub_801602C(u32 r0, u8 *name);
|
||||
extern void sub_8025E68(u32 , u32 *);
|
||||
extern void sub_8025E68(u32 , struct BulkItem *);
|
||||
|
||||
bool8 sub_80252F0(s32 param_1)
|
||||
{
|
||||
|
|
@ -246,10 +242,10 @@ void sub_8025518(void)
|
|||
sub_8012D60(&gUnknown_203B2B4->unk78,gUnknown_203B2B4->unkC8,0,gUnknown_203B2B4->unk108,gUnknown_203B2B4->unk70,2);
|
||||
break;
|
||||
case 4:
|
||||
sub_8024458(gUnknown_203B2B4->unkE,2);
|
||||
sub_8024458(gUnknown_203B2B4->species,2);
|
||||
break;
|
||||
case 5:
|
||||
sub_801BEEC(gUnknown_203B2B4->unkE);
|
||||
sub_801BEEC(gUnknown_203B2B4->species);
|
||||
break;
|
||||
case 0xb:
|
||||
sub_801A5D8(1,0,0,10);
|
||||
|
|
@ -284,7 +280,7 @@ void sub_8025518(void)
|
|||
break;
|
||||
case 0xf:
|
||||
unk_CopyMoves4To8(gUnknown_203B2B4->moves,gUnknown_203B2B4->pokeStruct->moves);
|
||||
sub_801EE10(3,gUnknown_203B2B4->unkE,gUnknown_203B2B4->moves,0,0,0);
|
||||
sub_801EE10(3,gUnknown_203B2B4->species,gUnknown_203B2B4->moves,0,0,0);
|
||||
break;
|
||||
case 0x10:
|
||||
sub_801F1B0(1,0);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#include "save.h"
|
||||
#include "menu.h"
|
||||
#include "rescue_password_menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
|
||||
extern struct TeamInventory *gTeamInventory_203B460;
|
||||
|
|
@ -45,10 +46,7 @@ extern u32 sub_80154F0();
|
|||
extern void sub_80155F0();
|
||||
extern void sub_80141B4(u8 *r0, u32, u32 *r1, u32);
|
||||
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
|
||||
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern void sub_801CBB8(void);
|
||||
extern void sub_801CB5C(u32);
|
||||
|
|
@ -56,7 +54,7 @@ extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
|||
extern void sub_801B3C0(struct Item *);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern u8 sub_801CB24(void);
|
||||
extern u32 sub_8030DA0(void);
|
||||
extern void sub_8030DE4(void);
|
||||
|
|
@ -232,7 +230,6 @@ extern void sub_8023868(u32, u32, u32, u32);
|
|||
extern u32 sub_801D008(void);
|
||||
extern void sub_8023DA4(void);
|
||||
extern void sub_8023C60(void);
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern s32 sub_8037B28(u32);
|
||||
extern void sub_803092C(void);
|
||||
extern void sub_801CCD8(void);
|
||||
|
|
@ -240,7 +237,6 @@ extern void sub_80151C0(u32, u8 *);
|
|||
extern void sub_801C8C4(u32, u32, s32 * , u32);
|
||||
extern void xxx_call_start_bg_music(void);
|
||||
extern u32 GetDungeonTeamRankPts(struct DungeonLocation *, u32);
|
||||
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void sub_802F204(struct unkStruct_802F204 *, u32);
|
||||
extern void nullsub_23(u32);
|
||||
extern s32 sub_8037D64(u32, void *, void *);
|
||||
|
|
@ -828,8 +824,8 @@ void sub_8034074(void)
|
|||
|
||||
menuAction = -1;
|
||||
sub_8030768(0);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
|
||||
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
|
||||
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
|
||||
switch(menuAction)
|
||||
{
|
||||
case 9:
|
||||
|
|
@ -865,7 +861,7 @@ void sub_8034130(void)
|
|||
sub_803092C();
|
||||
if(gUnknown_203B33C->fallbackState == 0x7E)
|
||||
{
|
||||
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
SetFriendRescueMenuState(0x1E);
|
||||
}
|
||||
else
|
||||
|
|
@ -911,8 +907,8 @@ void sub_8034254(void)
|
|||
menuAction = -1;
|
||||
|
||||
sub_8023A94(0);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
|
||||
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
|
||||
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
|
||||
switch(menuAction)
|
||||
{
|
||||
case 9:
|
||||
|
|
@ -951,7 +947,7 @@ void sub_8034310(void)
|
|||
sub_8023B7C(1);
|
||||
if(gUnknown_203B33C->fallbackState == 0x7E)
|
||||
{
|
||||
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
SetFriendRescueMenuState(0x27);
|
||||
}
|
||||
else
|
||||
|
|
@ -1106,8 +1102,8 @@ void sub_8034590(void)
|
|||
menuAction = -1;
|
||||
|
||||
sub_8030768(0);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
|
||||
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
|
||||
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
|
||||
switch(menuAction)
|
||||
{
|
||||
case 9:
|
||||
|
|
@ -1143,7 +1139,7 @@ void sub_803464C(void)
|
|||
sub_803092C();
|
||||
if(gUnknown_203B33C->fallbackState == 0x7E)
|
||||
{
|
||||
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
SetFriendRescueMenuState(0x33);
|
||||
}
|
||||
else
|
||||
|
|
@ -1431,8 +1427,8 @@ void sub_8034A70(void)
|
|||
|
||||
menuAction = -1;
|
||||
sub_8030768(0);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
|
||||
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
|
||||
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
|
||||
switch(menuAction)
|
||||
{
|
||||
case 9:
|
||||
|
|
@ -1468,7 +1464,7 @@ void sub_8034B2C(void)
|
|||
sub_803092C();
|
||||
if(gUnknown_203B33C->fallbackState == 0x7E)
|
||||
{
|
||||
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
SetFriendRescueMenuState(0x5D);
|
||||
}
|
||||
else
|
||||
|
|
@ -1518,7 +1514,7 @@ void sub_8034C38(void)
|
|||
sub_801CB5C(1);
|
||||
if(gUnknown_203B33C->fallbackState == 0x7E)
|
||||
{
|
||||
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
SetFriendRescueMenuState(0x60);
|
||||
}
|
||||
else
|
||||
|
|
@ -1536,8 +1532,8 @@ void sub_8034C98(void)
|
|||
|
||||
menuAction = -1;
|
||||
sub_801CA08(0);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
|
||||
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
|
||||
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
|
||||
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
|
||||
switch(menuAction)
|
||||
{
|
||||
case 9:
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "gulpin_shop.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B26C *gUnknown_203B26C;
|
||||
extern const struct UnkTextStruct2 gUnknown_80DC11C;
|
||||
|
|
@ -18,7 +19,6 @@ extern void sub_801EDA4();
|
|||
extern void sub_801EDC0();
|
||||
extern void sub_801E980();
|
||||
extern void sub_801EA28();
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_801EBC4();
|
||||
|
||||
u32 DisplayGulpinDialogueSprite(s32 param_1,s16 pokeSpecies,struct Move *param_3)
|
||||
|
|
@ -31,7 +31,7 @@ u32 DisplayGulpinDialogueSprite(s32 param_1,s16 pokeSpecies,struct Move *param_3
|
|||
gUnknown_203B26C = MemoryAlloc(sizeof(struct unkStruct_203B26C),8);
|
||||
gUnknown_203B26C->unk0 = param_1;
|
||||
gUnknown_203B26C->speciesNum = species_32;
|
||||
gUnknown_203B26C->unk10 = param_3;
|
||||
gUnknown_203B26C->moves = param_3;
|
||||
gUnknown_203B26C->unk1C = param_3[4].id;
|
||||
|
||||
if (param_1 == 0) {
|
||||
|
|
@ -81,9 +81,9 @@ u32 sub_801E8C0(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
u8 sub_801E930(void)
|
||||
bool8 GulpinIsNextMoveLinked(void)
|
||||
{
|
||||
return gUnknown_203B26C->unkE;
|
||||
return gUnknown_203B26C->isNextMoveLinked;
|
||||
}
|
||||
|
||||
void sub_801E93C(void)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "gulpin_shop.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B26C *gUnknown_203B26C;
|
||||
extern void UpdateGulpinShopState(u32);
|
||||
|
|
@ -14,8 +15,6 @@ extern void sub_801F214(void);
|
|||
extern s32 sub_80144A4(s32 *);
|
||||
extern u32 sub_801F890(void);
|
||||
extern void sub_801F8D0(void);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern u8 IsNextMoveLinked(u32, struct Move *);
|
||||
extern void PlaySound(u32);
|
||||
extern void sub_801EF38(u32);
|
||||
|
|
@ -36,7 +35,7 @@ void sub_801ED28(void)
|
|||
break;
|
||||
case 2:
|
||||
PlaySound(0x133);
|
||||
gUnknown_203B26C->unkE = IsNextMoveLinked(gUnknown_203B26C->unk20, gUnknown_203B26C->unk10);
|
||||
gUnknown_203B26C->isNextMoveLinked = IsNextMoveLinked(gUnknown_203B26C->unk20, gUnknown_203B26C->moves);
|
||||
UpdateGulpinShopState(4);
|
||||
break;
|
||||
case 3:
|
||||
|
|
@ -67,7 +66,7 @@ void sub_801EDC0(void)
|
|||
{
|
||||
case 4:
|
||||
sub_801F214();
|
||||
RemoveLinkSequenceFromMoves8(gUnknown_203B26C->unk10, gUnknown_203B26C->unk20);
|
||||
RemoveLinkSequenceFromMoves8(gUnknown_203B26C->moves, gUnknown_203B26C->unk20);
|
||||
gUnknown_203B26C->state = 5;
|
||||
break;
|
||||
case 1:
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "input.h"
|
||||
#include "item.h"
|
||||
#include "kangaskhan_storage.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B208 *gUnknown_203B208;
|
||||
|
||||
|
|
@ -12,7 +13,6 @@ extern u8 gUnknown_80DB7A8;
|
|||
extern void xxx_call_draw_string(u32 x, u32 y, u8 *, u32, u32);
|
||||
extern void sub_801CCD8();
|
||||
extern void sub_801AD34(u32);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "team_inventory.h"
|
||||
#include "input.h"
|
||||
#include "kangaskhan_storage.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B208 *gUnknown_203B208;
|
||||
|
||||
|
|
@ -30,8 +31,6 @@ extern s32 sub_80144A4(s32 *);
|
|||
extern void sub_801B450();
|
||||
extern u32 sub_801B410(void);
|
||||
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern void sub_801CBB8();
|
||||
|
||||
extern bool8 sub_801ADA0(u32);
|
||||
|
|
@ -47,13 +46,11 @@ extern u32 sub_801A6E8(u32);
|
|||
extern u32 sub_801AEA8(void);
|
||||
extern u32 sub_801A8AC(void);
|
||||
extern void sub_801A928(void);
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_80182E4(void);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
extern void xxx_call_draw_string(u32 x, u32 y, u8 *, u32, u32);
|
||||
|
||||
extern void sub_801A9E0();
|
||||
|
|
@ -65,7 +62,6 @@ extern void sub_8013AA0(u32 *);
|
|||
extern void sub_801B3C0(struct Item *);
|
||||
extern void sub_801A5D8(u32, u32, u32, u32);
|
||||
extern void sub_801C8C4(u32, u32, u32, u32);
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern void sub_801CB5C(u32);
|
||||
extern void sub_801A8D0(u32);
|
||||
extern u32 sub_801CFE0(u8);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include "item.h"
|
||||
#include "kangaskhan_storage.h"
|
||||
#include "team_inventory.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B20C *gUnknown_203B20C;
|
||||
|
||||
|
|
@ -11,11 +12,8 @@ extern void sub_8017F10(u32);
|
|||
|
||||
extern u8 sub_801CF14(u32);
|
||||
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern void sub_801CBB8(void);
|
||||
extern void sub_8017F10(u32);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
|
||||
extern u8 sub_801ADA0(s32);
|
||||
extern void sub_801A928(void);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "file_system.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
|
|
@ -7,6 +8,7 @@
|
|||
#include "kecleon_items.h"
|
||||
#include "team_inventory.h"
|
||||
#include "code_800D090.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B210 *gUnknown_203B210;
|
||||
extern u16 gUnknown_203B218;
|
||||
|
|
@ -34,8 +36,6 @@ extern u32 sub_801B410(void);
|
|||
extern void sub_801B450(void);
|
||||
|
||||
extern void sub_8099690(u32);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern u32 sub_8019EDC(u8);
|
||||
extern u32 sub_801A2A8(u8);
|
||||
extern s32 sub_801A8AC(void);
|
||||
|
|
@ -47,12 +47,10 @@ extern void sub_80073B8(u32);
|
|||
extern void sub_80073E0(u32);
|
||||
extern s32 sub_8013800(void *, u32);
|
||||
extern void xxx_call_draw_string(s32 x, s32, u8 *, u32, u32);
|
||||
extern void sub_8012BC4(s32, s32, s32, s32, s32, s32);
|
||||
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
|
||||
extern s32 sub_801AED0(s32);
|
||||
void sub_8007B7C(s32, s32, s32, s32, s32);
|
||||
extern void sub_801AE84(void);
|
||||
extern void sub_8012D08(void *, u32);
|
||||
extern void sub_801A998(void);
|
||||
extern void sub_801A9E0(void);
|
||||
extern void Kecleon_SortItems(void);
|
||||
|
|
@ -527,10 +525,10 @@ u32 sub_8019EDC(u8 r0)
|
|||
{
|
||||
switch(GetKeyPress(gUnknown_203B214))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
item = GetKecleonShopItem(sub_8019FB0());
|
||||
slot.id = item->id;
|
||||
slot.quantity = item->quantity;
|
||||
|
|
@ -543,7 +541,7 @@ u32 sub_8019EDC(u8 r0)
|
|||
PlayMenuSoundEffect(0);
|
||||
}
|
||||
return 3;
|
||||
case 4:
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
|
|
@ -737,13 +735,12 @@ u32 sub_801A2A8(u8 r0)
|
|||
{
|
||||
switch(GetKeyPress(gUnknown_203B21C))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
item = GetKecleonWareItem(sub_801A37C());
|
||||
|
||||
// NOTE: needs seperate vars to match
|
||||
slot.id = item->id;
|
||||
slot.quantity = item->quantity;
|
||||
|
||||
|
|
@ -756,7 +753,7 @@ u32 sub_801A2A8(u8 r0)
|
|||
PlayMenuSoundEffect(0);
|
||||
}
|
||||
return 3;
|
||||
case 4:
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
|
|
@ -958,10 +955,10 @@ u32 sub_801A6E8(u8 param_1)
|
|||
return 0;
|
||||
}
|
||||
switch(GetKeyPress(&gUnknown_203B224->unk54)) {
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
switch(gUnknown_203B224->unk0) {
|
||||
case 0:
|
||||
case 1:
|
||||
|
|
@ -989,11 +986,11 @@ u32 sub_801A6E8(u8 param_1)
|
|||
break;
|
||||
}
|
||||
return 3;
|
||||
case 4:
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
case 5:
|
||||
case 6:
|
||||
case INPUT_L_BUTTON:
|
||||
case INPUT_R_BUTTON:
|
||||
if (gUnknown_203B224->unk0 != 3) goto _0801A87C;
|
||||
index = sub_801A8AC();
|
||||
if ((gUnknown_203B224->unk4[index] != 0) || (sub_801ADA0(index) != 0)) {
|
||||
|
|
@ -1008,7 +1005,7 @@ u32 sub_801A6E8(u8 param_1)
|
|||
PlayMenuSoundEffect(2);
|
||||
goto _0801A87C;
|
||||
}
|
||||
case 3:
|
||||
case INPUT_SELECT_BUTTON:
|
||||
if (gUnknown_203B224->unk0 != 2) {
|
||||
PlayMenuSoundEffect(5);
|
||||
Kecleon_SortItems();
|
||||
|
|
@ -1169,7 +1166,7 @@ void sub_801A9E0(void)
|
|||
break;
|
||||
}
|
||||
if ((sub_801AED0(teamItemIndex) & 1) != 0) {
|
||||
sub_8007B7C(gUnknown_203B224->unk88,8,sub_8013800(&gUnknown_203B224->unk54,r7),(gUnknown_203B224->unk8C->unk0c - 2) * 8,10);
|
||||
sub_8007B7C(gUnknown_203B224->unk88,8,sub_8013800(&gUnknown_203B224->unk54,r7),(gUnknown_203B224->unk8C->unkC - 2) * 8,10);
|
||||
}
|
||||
}
|
||||
sub_80073E0(gUnknown_203B224->unk88);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include "save.h"
|
||||
#include "code_800D090.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern const struct FileArchive gTitleMenuFileArchive;
|
||||
|
||||
|
|
@ -18,12 +19,7 @@ struct LoadScreen
|
|||
{
|
||||
// size: 0x27c
|
||||
u32 currMenu;
|
||||
u32 unk4;
|
||||
u8 fill8[0x54 - 8];
|
||||
u32 unk54;
|
||||
u8 fill58[0xA4 - 0x58];
|
||||
u32 unkA4;
|
||||
u8 fillA8[0x144 - 0xA8];
|
||||
struct MenuStruct unk4[4];
|
||||
struct UnkTextStruct2 unk144[4];
|
||||
/* 0x1A4 */ u8 formattedTeamName[0x24];
|
||||
/* 0x1C8 */ u8 formattedPlayerName[0x24];
|
||||
|
|
@ -44,10 +40,8 @@ u8 IsQuickSave(void);
|
|||
void DrawLoadScreenText(void);
|
||||
void sub_80397B4(void);
|
||||
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern void SetMenuItems(u32 *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
|
||||
extern void sub_80920D8(u8 *);
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
|
|
@ -71,7 +65,7 @@ extern void sub_8007E20(s32, s32, s32, u32, u32, s32, u32);
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E75F8 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -80,7 +74,7 @@ const struct UnkTextStruct2 gUnknown_80E75F8 = {
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E7610 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x1A, 0x0B,
|
||||
0x0B, 0x00,
|
||||
|
|
@ -91,7 +85,7 @@ const u8 gUnkData_80E7628[] = {0x20, 0x00, 0x00, 0x00};
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E762C = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x0F, 0x00,
|
||||
0x13, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -136,7 +130,7 @@ const struct MenuItem gDeleteSaveConfirmMenuItems[3] =
|
|||
const struct UnkTextStruct2 gUnknown_80E7784 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x17, 0x00, 0x0F, 0x00,
|
||||
0x05, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -170,40 +164,40 @@ ALIGNED(4) const char load_screen_fill[] = "pksdir0";
|
|||
|
||||
void CreateLoadScreen(u32 currMenu)
|
||||
{
|
||||
int iVar8;
|
||||
int index;
|
||||
|
||||
if (gLoadScreen == NULL) {
|
||||
gLoadScreen = MemoryAlloc(sizeof(struct LoadScreen),8);
|
||||
MemoryFill8((u8 *)gLoadScreen,0,sizeof(struct LoadScreen));
|
||||
}
|
||||
gLoadScreen->currMenu = currMenu;
|
||||
for(iVar8 = 0; iVar8 < 4; iVar8++){
|
||||
gLoadScreen->unk144[iVar8] = gUnknown_80E75F8;
|
||||
for(index = 0; index < 4; index++){
|
||||
gLoadScreen->unk144[index] = gUnknown_80E75F8;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gLoadScreen->unk144,1,1);
|
||||
SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,0,6,0);
|
||||
switch(gLoadScreen->currMenu){
|
||||
case MENU_CONTINUE:
|
||||
if (IsQuickSave())
|
||||
SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,0,6,0);
|
||||
else
|
||||
SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,0,6,0);
|
||||
break;
|
||||
case MENU_AWAITING_RESCUE:
|
||||
SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,0,6,0);
|
||||
break;
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,0,6,0);
|
||||
break;
|
||||
case MENU_DELETE_SAVE_CONFIRM:
|
||||
SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,0,6,0);
|
||||
break;
|
||||
}
|
||||
SetMenuItems(&gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,1,2,0);
|
||||
sub_8035CF4(&gLoadScreen->unk4,0,0);
|
||||
sub_8035CF4(&gLoadScreen->unk4,1,0);
|
||||
sub_8035CF4(&gLoadScreen->unk4,2,1);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,1,2,0);
|
||||
sub_8035CF4(gLoadScreen->unk4,0,0);
|
||||
sub_8035CF4(gLoadScreen->unk4,1,0);
|
||||
sub_8035CF4(gLoadScreen->unk4,2,1);
|
||||
DrawLoadScreenText();
|
||||
}
|
||||
|
||||
|
|
@ -225,9 +219,9 @@ u32 UpdateLoadScreenMenu(void)
|
|||
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
menuAction = 4;
|
||||
sub_8012FD8(&gLoadScreen->unk54);
|
||||
if (sub_8012FD8(&gLoadScreen->unkA4) == '\0') {
|
||||
sub_8013114(&gLoadScreen->unkA4,&menuAction);
|
||||
sub_8012FD8(&gLoadScreen->unk4[1]);
|
||||
if (sub_8012FD8(&gLoadScreen->unk4[2]) == '\0') {
|
||||
sub_8013114(&gLoadScreen->unk4[2],&menuAction);
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include "random.h"
|
||||
#include "text.h"
|
||||
#include "team_inventory.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B2B0
|
||||
{
|
||||
|
|
@ -32,8 +33,8 @@ struct unkStruct_203B2B0
|
|||
u32 unk30;
|
||||
struct MenuItem unk34[8];
|
||||
u16 unk74[0x8];
|
||||
u32 unk84;
|
||||
u8 fill88[0x104 - 0x88];
|
||||
struct MenuStruct unk84;
|
||||
u8 fillD4[0x104 - 0xD4];
|
||||
struct OpenedFile *unk104;
|
||||
u8 *unk108;
|
||||
u16 unk10C;
|
||||
|
|
@ -111,7 +112,6 @@ extern void nullsub_104();
|
|||
void sub_8024DBC(void);
|
||||
void sub_8024E30(void);
|
||||
void sub_801AEE4(u32, u32);
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
void sub_808F734(struct PokemonStruct *, s16);
|
||||
void BoundedCopyStringtoBuffer(u8 *buffer, u8 *string, s32 size);
|
||||
u32 sub_801602C(u32 r0, u8 *name);
|
||||
|
|
@ -121,8 +121,6 @@ extern s32 sub_801A8AC(void);
|
|||
extern void sub_8099690(u32);
|
||||
extern void sub_801A928(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
extern u32 sub_8016080(void);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "input.h"
|
||||
#include "mailbox.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
|
||||
extern void HandleMailboxMenu(void);
|
||||
|
|
@ -23,7 +24,7 @@ extern void sub_802E1AC(void);
|
|||
const struct UnkTextStruct2 gUnknown_80E0284 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -33,7 +34,7 @@ const struct UnkTextStruct2 gUnknown_80E0284 =
|
|||
const struct UnkTextStruct2 gUnknown_80E029C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x03, 0x00, 0x03, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -43,7 +44,7 @@ const struct UnkTextStruct2 gUnknown_80E029C =
|
|||
const struct UnkTextStruct2 gUnknown_80E02B4 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x04,
|
||||
0x15, 0x00, 0x06, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -53,7 +54,7 @@ const struct UnkTextStruct2 gUnknown_80E02B4 =
|
|||
const struct UnkTextStruct2 gUnknown_80E02CC =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x04,
|
||||
0x15, 0x00, 0x0f, 0x00,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -71,11 +72,9 @@ static const u8 mailbox_fill[] = "pksdir0";
|
|||
|
||||
extern struct unkStruct_203B304 *gUnknown_203B304;
|
||||
extern void sub_802E088(u32);
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void CreateMailboxMenu(void);
|
||||
extern void CreateMailActionMenu(void);
|
||||
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern void sub_802BD14(u32, u32, u32);
|
||||
extern void sub_802BE94(u32);
|
||||
extern void CreateMailMenu(void);
|
||||
|
|
@ -172,7 +171,7 @@ void sub_802E0A0(void)
|
|||
CreateMailActionMenu();
|
||||
gUnknown_203B304->unk10C[2] = gUnknown_80E02B4;
|
||||
sub_8012CAC(&gUnknown_203B304->unk10C[2], gUnknown_203B304->unkBC);
|
||||
gUnknown_203B304->unk10C[2].unk0c = 6;
|
||||
gUnknown_203B304->unk10C[2].unkC = 6;
|
||||
gUnknown_203B304->unk10C[3] = gUnknown_80E02CC;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "input.h"
|
||||
#include "mailbox.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B304 *gUnknown_203B304;
|
||||
|
||||
|
|
@ -12,7 +13,6 @@ extern u8 gMailAccepted[];
|
|||
extern u8 gUnknown_80E0324[];
|
||||
|
||||
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);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
|
|
@ -27,8 +27,6 @@ extern u32 sub_802DEE0(void);
|
|||
extern void sub_802DF24(void);
|
||||
extern struct WonderMail *GetMailboxSlotInfo(u8);
|
||||
extern u8 HasNoMailinMailbox(void);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_802BDEC(u32);
|
||||
extern void sub_8096A78(struct WonderMail *);
|
||||
extern void sub_8096C80(void);
|
||||
|
|
@ -42,7 +40,6 @@ extern void sub_802BEDC(void);
|
|||
extern u8 sub_802BE74(void);
|
||||
extern u8 HasNoAcceptedJobs(void);
|
||||
extern u8 HasNoPKMNNews(void);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
|
||||
void HandleMailboxMenu(void)
|
||||
{
|
||||
|
|
|
|||
153
src/main_menu.c
153
src/main_menu.c
|
|
@ -2,6 +2,7 @@
|
|||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "input.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
#include "adventure_log.h"
|
||||
#include "debug_menu.h"
|
||||
|
|
@ -30,30 +31,11 @@
|
|||
// Deletes the Save
|
||||
|
||||
|
||||
struct unkStruct_Menu
|
||||
{
|
||||
// size 0x50;
|
||||
u8 fil0[0x4C];
|
||||
u8 unk4C;
|
||||
u8 fill4D[0x50 - 0x4D];
|
||||
};
|
||||
|
||||
struct unkStruct_203B34C
|
||||
{
|
||||
// size: 0x1A8
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
struct MenuItem *unk8; // Array of menu choices??
|
||||
u8 fillC[0x30 - 0xC];
|
||||
s16 menuIndex;
|
||||
u8 fill32[0x54 - 0x32];
|
||||
|
||||
u32 unk54;
|
||||
u8 fill58[0xA4 - 0x58];
|
||||
|
||||
u32 unkA4;
|
||||
u32 unkA8;
|
||||
u8 fillAC[0x144 - 0xAC];
|
||||
struct MenuStruct unk4[4];
|
||||
struct UnkTextStruct2 unk144[4];
|
||||
/* 0x1A4 */ u32 currMenuChoice;
|
||||
};
|
||||
|
|
@ -76,11 +58,7 @@ extern void sub_80370D4(void);
|
|||
extern void CleanWonderMailMenu(void);
|
||||
extern void sub_80383A8(void);
|
||||
extern void CleanSaveMenu(void);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u8 sub_803D0D8();
|
||||
extern void sub_8012D60(struct unkStruct_Menu *, const struct MenuItem *, u32, u32, u32, u32);
|
||||
extern void sub_8012E04(struct unkStruct_Menu *, const struct MenuItem *, u32, u32, u32, u32);
|
||||
|
||||
void CleanMainMenu(void);
|
||||
void DrawMainMenu(void);
|
||||
|
|
@ -113,7 +91,7 @@ static const u8 sUnknown_80E6070[];
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E59A8 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -124,7 +102,7 @@ static const char main_menu_fill[] = "pksdir0";
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E59C8 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -133,7 +111,7 @@ const struct UnkTextStruct2 gUnknown_80E59C8 = {
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E59E0 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0A, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -149,7 +127,7 @@ const struct MenuItem gUnknown_80E59F8[] =
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E5A29 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0A, 0x02,
|
||||
0x02, 0x00,
|
||||
|
|
@ -164,7 +142,7 @@ const struct MenuItem gUnknown_80E5A44[] =
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E5A60 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0A, 0x08,
|
||||
0x08, 0x00,
|
||||
|
|
@ -173,7 +151,7 @@ const struct UnkTextStruct2 gUnknown_80E5A60 = {
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E5A78 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0B, 0x09,
|
||||
0x09, 0x00,
|
||||
|
|
@ -203,7 +181,7 @@ const struct MenuItem gUnknown_80E5AFC[] =
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E5B34 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0A, 0x08,
|
||||
0x08, 0x00,
|
||||
|
|
@ -233,7 +211,7 @@ const struct MenuItem gUnknown_80E5B8C[] =
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E5BC4 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0A, 0x08,
|
||||
0x08, 0x00,
|
||||
|
|
@ -263,7 +241,7 @@ const struct MenuItem gUnknown_80E5C18[] =
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E5C50 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0A, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -286,7 +264,7 @@ const struct MenuItem gUnknown_80E5C9C[] =
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E5CB4 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x00, 0x0F, 0x00,
|
||||
0x1A, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -645,18 +623,18 @@ void sub_8035C1C(void)
|
|||
}
|
||||
|
||||
void
|
||||
SetMenuItems(struct unkStruct_Menu *param_1, struct UnkTextStruct2 *unkData, int param_3, const struct UnkTextStruct2 *param_4, const struct MenuItem *param_5, char param_6 ,u32 param_7, u32 unused_8)
|
||||
SetMenuItems(struct MenuStruct *param_1, struct UnkTextStruct2 *unkData, s32 index, const struct UnkTextStruct2 *param_4, const struct MenuItem *menuItems, u8 param_6 ,u32 param_7, u32 unused_8)
|
||||
{
|
||||
unkData[param_3] = *param_4;
|
||||
unkData[index] = *param_4;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(unkData,1,1);
|
||||
if (param_6 != '\0') {
|
||||
sub_8012D60(¶m_1[param_3],param_5,0,0,param_7,param_3);
|
||||
if (param_6 != 0) {
|
||||
sub_8012D60(¶m_1[index],menuItems,0,0,param_7,index);
|
||||
}
|
||||
else {
|
||||
sub_8012E04(¶m_1[param_3],param_5,0,0,0,param_3);
|
||||
sub_8012E04(¶m_1[index],menuItems,0,0,0,index);
|
||||
}
|
||||
param_1[param_3].unk4C = 1;
|
||||
param_1[index].unk4C = TRUE;
|
||||
}
|
||||
|
||||
void sub_8035CC0(struct UnkTextStruct2 *dataArray, u32 index)
|
||||
|
|
@ -667,27 +645,12 @@ void sub_8035CC0(struct UnkTextStruct2 *dataArray, u32 index)
|
|||
sub_800641C(dataArray, 1, 1);
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_8035CF4(void * Menu, u32 index, u8 r2)
|
||||
{
|
||||
asm_unified("\tpush {lr}\n"
|
||||
"\tadds r3, r0, 0\n"
|
||||
"\tlsls r0, r1, 2\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 4\n"
|
||||
"\tadds r0, r3\n"
|
||||
"\tadds r1, r0, 0\n"
|
||||
"\tadds r1, 0x4C\n"
|
||||
"\tstrb r2, [r1]\n"
|
||||
"\tadds r2, r0, 0\n"
|
||||
"\tadds r2, 0x4D\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tstrb r1, [r2]\n"
|
||||
"\tsubs r1, 0x2\n"
|
||||
"\tstr r1, [r0, 0x48]\n"
|
||||
"\tbl sub_8012EBC\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0");
|
||||
void sub_8035CF4(struct MenuStruct * Menu, u32 index, bool8 r2)
|
||||
{
|
||||
Menu[index].unk4C = r2;
|
||||
Menu[index].unk4D = 1;
|
||||
Menu[index].menuAction = -1;
|
||||
sub_8012EBC(&Menu[index]);
|
||||
}
|
||||
|
||||
void sub_8035D1C(void)
|
||||
|
|
@ -814,10 +777,10 @@ void DrawMainMenu(void)
|
|||
|
||||
if(SetMainMenuText())
|
||||
{
|
||||
sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,2,0);
|
||||
}
|
||||
|
||||
sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,0,1);
|
||||
gUnknown_203B34C->unk0 = 1;
|
||||
}
|
||||
|
||||
|
|
@ -838,14 +801,14 @@ u32 UpdateMainMenu(void)
|
|||
switch(gUnknown_203B34C->unk0)
|
||||
{
|
||||
case 1:
|
||||
sub_8012FD8(&gUnknown_203B34C->unkA4);
|
||||
if(!sub_8012FD8(&gUnknown_203B34C->unk4))
|
||||
sub_8013114(&gUnknown_203B34C->unk4, &nextMenu);
|
||||
sub_8012FD8(&gUnknown_203B34C->unk4[2]);
|
||||
if(!sub_8012FD8(gUnknown_203B34C->unk4))
|
||||
sub_8013114(gUnknown_203B34C->unk4, &nextMenu);
|
||||
|
||||
if(SetMainMenuText())
|
||||
{
|
||||
sub_8035CF4(&gUnknown_203B34C->unk4, 0, 1);
|
||||
sub_8035CF4(&gUnknown_203B34C->unk4, 2, 0);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 0, 1);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 2, 0);
|
||||
}
|
||||
switch(nextMenu)
|
||||
{
|
||||
|
|
@ -856,8 +819,8 @@ u32 UpdateMainMenu(void)
|
|||
gUnknown_203B34C->unk0 = 1;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
ResetUnusedInputStruct();
|
||||
sub_8035CF4(&gUnknown_203B34C->unk4, 0, 1);
|
||||
sub_8035CF4(&gUnknown_203B34C->unk4, 2, 0);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 0, 1);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4, 2, 0);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
sub_8035DA0();
|
||||
|
|
@ -880,8 +843,8 @@ u32 UpdateMainMenu(void)
|
|||
}
|
||||
break;
|
||||
case 0xC:
|
||||
if(!sub_8012FD8(&gUnknown_203B34C->unk54))
|
||||
sub_8013114(&gUnknown_203B34C->unk54, &nextMenu);
|
||||
if(!sub_8012FD8(&gUnknown_203B34C->unk4[1]))
|
||||
sub_8013114(&gUnknown_203B34C->unk4[1], &nextMenu);
|
||||
switch(nextMenu)
|
||||
{
|
||||
case 0xffdd:
|
||||
|
|
@ -914,11 +877,11 @@ u32 UpdateMainMenu(void)
|
|||
bool8 SetMainMenuText(void)
|
||||
{
|
||||
u32 menuChoice;
|
||||
struct MenuItem *preload;
|
||||
const struct MenuItem *preload;
|
||||
|
||||
// Have to load the pointer before the index
|
||||
preload = gUnknown_203B34C->unk8;
|
||||
menuChoice = preload[gUnknown_203B34C->menuIndex].menuAction; // chosen menu action?
|
||||
preload = gUnknown_203B34C->unk4[0].menuItems;
|
||||
menuChoice = preload[gUnknown_203B34C->unk4[0].menuIndex].menuAction; // chosen menu action?
|
||||
if (gUnknown_203B34C->currMenuChoice == menuChoice) {
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -929,50 +892,50 @@ bool8 SetMainMenuText(void)
|
|||
switch(menuChoice) {
|
||||
case MENU_WIRELESS_COMMS:
|
||||
// Using wireless communications, you can go on an adventure to unknown worlds.
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
|
||||
break;
|
||||
case MENU_WONDER_MAIL:
|
||||
// Using passwords, you can receive Wonder Mail
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
|
||||
break;
|
||||
case MENU_AWAITING_RESCUE:
|
||||
// You are awaiting resuce by a friend
|
||||
// You can give up waiting for rescue
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
|
||||
break;
|
||||
case MENU_NEW_GAME:
|
||||
// Start an entirely new adventure
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
|
||||
break;
|
||||
case MENU_CONTINUE:
|
||||
// Resume your adventure from where you last saved
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
|
||||
break;
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
// This will delete your saved game data.
|
||||
// Beware! This will delete it forever
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
|
||||
break;
|
||||
case MENU_ADVENTURE_LOG:
|
||||
// Check your career as an adventurer
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
|
||||
break;
|
||||
case MENU_FRIEND_RESCUE:
|
||||
// Using a Game Link cable or passwords, friends may rescue each other
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
// Using a Game Link cable you can trade stored items with a friend
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
|
||||
break;
|
||||
case MENU_DUAL_SLOT:
|
||||
// Using Dual Slot function, you can receive teams from your friends
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
|
||||
break;
|
||||
case MENU_DEBUG:
|
||||
// This is the Debug Mode.
|
||||
// It won't be in the release version
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -986,9 +949,9 @@ void sub_803623C(void)
|
|||
SetMainMenuItems();
|
||||
gUnknown_203B34C->currMenuChoice = -1;
|
||||
if (SetMainMenuText()) {
|
||||
sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,2,0);
|
||||
}
|
||||
sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
|
||||
sub_8035CF4(gUnknown_203B34C->unk4,0,1);
|
||||
}
|
||||
|
||||
void SetMainMenuItems(void)
|
||||
|
|
@ -1003,7 +966,7 @@ void SetMainMenuItems(void)
|
|||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
|
||||
}
|
||||
else {
|
||||
// Revive Team
|
||||
|
|
@ -1011,7 +974,7 @@ void SetMainMenuItems(void)
|
|||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -1022,7 +985,7 @@ void SetMainMenuItems(void)
|
|||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
|
||||
}
|
||||
else {
|
||||
// Continue
|
||||
|
|
@ -1030,7 +993,7 @@ void SetMainMenuItems(void)
|
|||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1042,7 +1005,7 @@ void SetMainMenuItems(void)
|
|||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
|
||||
}
|
||||
else {
|
||||
// Awaiting Rescue
|
||||
|
|
@ -1050,7 +1013,7 @@ void SetMainMenuItems(void)
|
|||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1058,7 +1021,7 @@ void SetMainMenuItems(void)
|
|||
{
|
||||
// New Game
|
||||
// Adventure Log
|
||||
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
|
||||
SetMenuItems(gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ 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,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "constants/colors.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "constants/input.h"
|
||||
#include "code_800D090.h"
|
||||
#include "dungeon.h"
|
||||
#include "input.h"
|
||||
|
|
@ -8,6 +9,7 @@
|
|||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "makuhita_dojo.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B31C
|
||||
{
|
||||
|
|
@ -35,7 +37,7 @@ static const u8 makuhita_dojo_fill[] = "pksdir0";
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E07EC = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -43,7 +45,7 @@ const struct UnkTextStruct2 gUnknown_80E07EC = {
|
|||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E0804 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0E, 0x0E,
|
||||
0x0E, 0x00,
|
||||
|
|
@ -65,7 +67,6 @@ extern void sub_8008C54(u32);
|
|||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32);
|
||||
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
|
||||
extern u8 sub_80A2740(s32 r0);
|
||||
extern s16 sub_80A2668(u32 r0);
|
||||
extern s32 sub_8013800(void *, u32);
|
||||
|
|
@ -80,7 +81,6 @@ extern u8 sub_80138B8(void *, u32);
|
|||
extern void PlayMenuSoundEffect(u32);
|
||||
extern s32 GetKeyPress(void *);
|
||||
extern void sub_8013660(void *);
|
||||
extern void sub_8012D08(void *, u32);
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
extern void sub_803053C(void);
|
||||
extern u8 sub_80306A4(void);
|
||||
|
|
@ -215,10 +215,10 @@ u32 sub_80303AC(u8 param_1)
|
|||
}
|
||||
switch(GetKeyPress(&gUnknown_203B31C->unk30))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -54,9 +54,9 @@ error:
|
|||
heap,size,atb,group);
|
||||
}
|
||||
|
||||
void *MemoryAlloc(s32 size, s32 b)
|
||||
void *MemoryAlloc(s32 size, s32 group)
|
||||
{
|
||||
DoAlloc(&gMainHeapDescriptor, size, b);
|
||||
DoAlloc(&gMainHeapDescriptor, size, group);
|
||||
}
|
||||
|
||||
void MemoryFree(void *a)
|
||||
|
|
|
|||
459
src/menu_input.c
Normal file
459
src/menu_input.c
Normal file
|
|
@ -0,0 +1,459 @@
|
|||
#include "global.h"
|
||||
#include "constants/colors.h"
|
||||
#include "constants/input.h"
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
#include "util.h"
|
||||
#include "code_800D090.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkChar
|
||||
{
|
||||
u32 unk0;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
};
|
||||
extern struct UnkTextStruct1 gUnknown_2027370[4];
|
||||
extern u8 gUnknown_80D4828[];
|
||||
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern s32 GetKeyPress(u32 *);
|
||||
extern u32 sub_80137A8(u32 *);
|
||||
void MoveMenuCursorUp(u32 *);
|
||||
void MoveMenuCursorDown(u32 *);
|
||||
extern void sub_80073B8(u32);
|
||||
extern s32 sub_8008ED0(const u8 *);
|
||||
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
|
||||
extern s32 sub_8013800(u32 *, s32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8013660(u32 *);
|
||||
void AddMenuCursorSprite(void *);
|
||||
void sub_8012EBC(struct MenuStruct *param_1);
|
||||
extern void sub_8013134(u32 *, u32, u32);
|
||||
extern void sub_80137B0(u32 *, u32);
|
||||
extern s16 sub_8009614(u32, u32);
|
||||
extern u32 ReturnIntFromChar2(u8);
|
||||
struct unkChar *GetCharacter(u32);
|
||||
extern void xxx_call_draw_char(u32, u32, u32, u32, u32);
|
||||
|
||||
const u32 gDefaultMenuTextColors[] = { COLOR_WHITE_2, COLOR_RED, COLOR_RED };
|
||||
|
||||
void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 param_5, u32 param_6)
|
||||
{
|
||||
s32 iVar1;
|
||||
u32 uVar2;
|
||||
struct unkChar *iVar3;
|
||||
s32 counter;
|
||||
s32 *piVar3;
|
||||
s32 *piVar4;
|
||||
s32 total_x;
|
||||
s32 decimal [8];
|
||||
|
||||
total_x = 0;
|
||||
ConvertToDecimal(decimal,n,len);
|
||||
counter = len - 1;
|
||||
if (0 < counter) {
|
||||
piVar3 = &decimal[counter];
|
||||
if(*piVar3 == 0)
|
||||
{
|
||||
do {
|
||||
*piVar3 = 0xff;
|
||||
piVar3--;
|
||||
counter--;
|
||||
if (counter <= 0) break;
|
||||
} while(*piVar3 == 0);
|
||||
}
|
||||
}
|
||||
|
||||
counter = 0;
|
||||
if ((counter < len) && (decimal[0] != 0xFF)) {
|
||||
piVar4 = &decimal[0];
|
||||
do {
|
||||
iVar1 = *piVar4;
|
||||
piVar4++;
|
||||
uVar2 = ReturnIntFromChar2(iVar1 + 0x30);
|
||||
iVar3 = GetCharacter(uVar2);
|
||||
total_x += iVar3->unk6;
|
||||
xxx_call_draw_char(x - total_x,y,uVar2,param_5,param_6);
|
||||
counter++;
|
||||
if (counter >= len) {
|
||||
break;
|
||||
}
|
||||
} while (*piVar4 != 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8012C60(u32 x,u32 y,u32 param_3,u32 param_4,u32 param_5)
|
||||
{
|
||||
u32 add_x;
|
||||
struct unkChar *iVar3;
|
||||
u32 uVar2;
|
||||
|
||||
uVar2 = ReturnIntFromChar2(param_3);
|
||||
iVar3 = GetCharacter(uVar2);
|
||||
if (iVar3->unk6 < 0xc) {
|
||||
add_x = ((0xc - iVar3->unk6) / 2);
|
||||
}
|
||||
else {
|
||||
add_x = 0;
|
||||
}
|
||||
xxx_call_draw_char(x + add_x,y,uVar2,param_4,param_5);
|
||||
}
|
||||
|
||||
void sub_8012CAC(struct UnkTextStruct2 *param_1, const struct MenuItem *param_2)
|
||||
{
|
||||
s16 length;
|
||||
int r5;
|
||||
int r6;
|
||||
int r7;
|
||||
s32 iVar4;
|
||||
#ifndef NONMATCHING
|
||||
register s32 r0 asm("r0");
|
||||
#else
|
||||
s32 r0;
|
||||
#endif
|
||||
|
||||
r7 = 0;
|
||||
r6 = 0;
|
||||
if (param_2->text != NULL) {
|
||||
r5 = 0x10000;
|
||||
r0 = r5;
|
||||
do {
|
||||
r0 = r5;
|
||||
r5 = r5 + 0x10000;
|
||||
r7 = r0 >> 0x10;
|
||||
length = sub_8008ED0(param_2->text);
|
||||
if (length > r6) {
|
||||
r6 = length;
|
||||
}
|
||||
param_2++;
|
||||
} while (param_2->text != NULL);
|
||||
}
|
||||
if (r6 < 0)
|
||||
iVar4 = r6 + 7;
|
||||
else
|
||||
iVar4 = r6;
|
||||
param_1->unkC = (iVar4 >> 3) + 2;
|
||||
sub_8012D08(param_1, r7);
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_8012D08(struct UnkTextStruct2 *param_1, s32 param_2)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tadds r4, r0, 0\n"
|
||||
"\tadds r0, r1, 0\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r1, r0, 16\n"
|
||||
"\tldr r0, [r4, 0x4]\n"
|
||||
"\tcmp r0, 0x6\n"
|
||||
"\tbne _08012D24\n"
|
||||
"\tadds r0, r1, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r1, r0, 16\n"
|
||||
"_08012D24:\n"
|
||||
"\tlsls r0, r1, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r4, 0xE]\n"
|
||||
"\tstrh r0, [r4, 0x10]\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0");
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/QadfW (200 - 90% matched) - Seth
|
||||
NAKED
|
||||
void sub_8012D34(struct UnkTextStruct2 *param_1, s32 param_2)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tadds r4, r0, 0\n"
|
||||
"\tadds r0, r1, 0\n"
|
||||
"\tmovs r1, 0x18\n"
|
||||
"\tbl sub_8009614\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r1, r0, 16\n"
|
||||
"\tldr r0, [r4, 0x4]\n"
|
||||
"\tcmp r0, 0x6\n"
|
||||
"\tbne _08012D50\n"
|
||||
"\tadds r0, r1, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r1, r0, 16\n"
|
||||
"_08012D50:\n"
|
||||
"\tlsls r0, r1, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r4, 0xE]\n"
|
||||
"\tstrh r0, [r4, 0x10]\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0");
|
||||
}
|
||||
|
||||
void sub_8012D60(struct MenuStruct *param_1,const struct MenuItem *menuItems,u32 *colorArray,u16 *param_4,s32 param_5,
|
||||
s32 index)
|
||||
{
|
||||
const u8 *textPtr;
|
||||
s32 counter;
|
||||
s32 menuIndex;
|
||||
s32 iVar1;
|
||||
|
||||
counter = 0;
|
||||
menuIndex = -1;
|
||||
iVar1 = 0;
|
||||
param_1->index = index;
|
||||
param_1->menuItems = menuItems;
|
||||
param_1->menuTextColorArray = colorArray;
|
||||
if (colorArray == NULL) {
|
||||
param_1->menuTextColorArray = gDefaultMenuTextColors;
|
||||
}
|
||||
param_1->unkC = param_4;
|
||||
textPtr = menuItems->text;
|
||||
if(textPtr)
|
||||
{
|
||||
while (textPtr != 0) {
|
||||
if ((0 <= param_5) && (param_5 == menuItems->menuAction)) {
|
||||
menuIndex = counter;
|
||||
}
|
||||
if (*menuItems->text == '*') {
|
||||
iVar1 = counter;
|
||||
}
|
||||
menuItems++;
|
||||
counter++;
|
||||
textPtr = menuItems->text;
|
||||
}
|
||||
}
|
||||
if (menuIndex < 0) {
|
||||
menuIndex = iVar1;
|
||||
}
|
||||
sub_8013134(¶m_1->unk14,counter,index);
|
||||
param_1->menuIndex = menuIndex;
|
||||
sub_80137B0(¶m_1->unk14,0);
|
||||
param_1->unk4C = TRUE;
|
||||
param_1->unk4D = TRUE;
|
||||
param_1->unk4E = TRUE;
|
||||
param_1->menuAction = -1;
|
||||
}
|
||||
|
||||
void sub_8012E04(struct MenuStruct *param_1,const struct MenuItem *menuItems,u32 *colorArray,u16 *param_4,s32 param_5,
|
||||
s32 index)
|
||||
{
|
||||
const u8 *textPtr;
|
||||
s32 counter;
|
||||
const struct MenuItem *menuItemPtr;
|
||||
s32 iVar1;
|
||||
s32 menuIndex;
|
||||
|
||||
counter = 0;
|
||||
menuIndex = -1;
|
||||
iVar1 = 0;
|
||||
textPtr = menuItems->text;
|
||||
if (textPtr) {
|
||||
menuItemPtr = menuItems;
|
||||
while (textPtr != NULL) {
|
||||
if ((0 <= param_5) && (param_5 == menuItemPtr->menuAction)) {
|
||||
menuIndex = counter;
|
||||
}
|
||||
if (*menuItemPtr->text == '*') {
|
||||
iVar1 = counter;
|
||||
}
|
||||
menuItemPtr++;
|
||||
counter++;
|
||||
textPtr = menuItemPtr->text;
|
||||
}
|
||||
}
|
||||
|
||||
if (menuIndex < 0) {
|
||||
menuIndex = iVar1;
|
||||
}
|
||||
sub_8013134(¶m_1->unk14,counter,index);
|
||||
param_1->menuIndex = menuIndex;
|
||||
sub_80137B0(¶m_1->unk14,0);
|
||||
param_1->index = index;
|
||||
param_1->menuTextColorArray = colorArray;
|
||||
if (colorArray == NULL) {
|
||||
param_1->menuTextColorArray = gDefaultMenuTextColors;
|
||||
}
|
||||
param_1->unkC = param_4;
|
||||
param_1->menuItems = menuItems;
|
||||
param_1->unk4E = FALSE;
|
||||
param_1->unk4C = TRUE;
|
||||
param_1->unk4D = TRUE;
|
||||
param_1->menuAction = -1;
|
||||
}
|
||||
|
||||
void sub_8012EA4(struct MenuStruct *param_1, bool8 r1)
|
||||
{
|
||||
param_1->unk4C = r1;
|
||||
param_1->unk4D = TRUE;
|
||||
sub_8012EBC(param_1);
|
||||
}
|
||||
|
||||
void sub_8012EBC(struct MenuStruct *param_1)
|
||||
{
|
||||
s32 x;
|
||||
s32 y;
|
||||
u32 color;
|
||||
const u8 *textPtr;
|
||||
const struct MenuItem *menuItemsPtr;
|
||||
u16 *_puVar2;
|
||||
const u32 *colorArray;
|
||||
s32 counter;
|
||||
s32 index;
|
||||
struct UnkTextStruct2 textStack[4];
|
||||
u8 buffer [256];
|
||||
struct UnkTextStruct1 *ptr_text;
|
||||
struct UnkTextStruct2 *ptr_text2;
|
||||
|
||||
if (param_1->unk4D) {
|
||||
sub_80073B8(param_1->index);
|
||||
index = param_1->index;
|
||||
ptr_text = &gUnknown_2027370[index];
|
||||
if ((ptr_text->unkC) == 6) {
|
||||
ptr_text2 = &textStack[index];
|
||||
sub_8006518(textStack);
|
||||
x = sub_8008ED0(param_1->unk0);
|
||||
xxx_format_and_draw((((ptr_text2->unk14[2]) * 8 - x) /2) + 8,
|
||||
0,*(u8 **)param_1, param_1->index, 0);
|
||||
}
|
||||
colorArray = param_1->menuTextColorArray;
|
||||
menuItemsPtr = param_1->menuItems;
|
||||
_puVar2 = param_1->unkC;
|
||||
counter = 0;
|
||||
if (menuItemsPtr->text != NULL) {
|
||||
do {
|
||||
textPtr = menuItemsPtr->text;
|
||||
if (*textPtr == '*') {
|
||||
textPtr++;
|
||||
}
|
||||
if (_puVar2 != NULL) {
|
||||
color = colorArray[*_puVar2];
|
||||
_puVar2++;
|
||||
}
|
||||
else if (menuItemsPtr->menuAction < 0) {
|
||||
// Color the action red
|
||||
color = colorArray[1];
|
||||
}
|
||||
else {
|
||||
// Use the default white
|
||||
color = colorArray[0];
|
||||
}
|
||||
sprintfStatic(buffer,gUnknown_80D4828,color,textPtr);
|
||||
y = sub_8013800(¶m_1->unk14,counter);
|
||||
xxx_format_and_draw(8,y,buffer,param_1->index,0);
|
||||
menuItemsPtr++;
|
||||
counter++;
|
||||
} while (menuItemsPtr->text != NULL);
|
||||
}
|
||||
sub_80073E0(param_1->index);
|
||||
param_1->unk4D = FALSE;
|
||||
}
|
||||
if (param_1->unk4E) {
|
||||
if (param_1->unk4C) {
|
||||
AddMenuCursorSprite(¶m_1->unk14);
|
||||
}
|
||||
else {
|
||||
sub_8013660(¶m_1->unk14);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8012FD8(struct MenuStruct *param_1)
|
||||
{
|
||||
u32 prevMenuIndex;
|
||||
s32 index;
|
||||
const struct MenuItem *item;
|
||||
|
||||
prevMenuIndex = param_1->menuIndex;
|
||||
if (param_1->unk4C) {
|
||||
switch(GetKeyPress(¶m_1->unk14))
|
||||
{
|
||||
case INPUT_DPAD_DOWN:
|
||||
MoveMenuCursorDown(¶m_1->unk14);
|
||||
if (prevMenuIndex != param_1->menuIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
break;
|
||||
case INPUT_DPAD_UP:
|
||||
MoveMenuCursorUp(¶m_1->unk14);
|
||||
if (prevMenuIndex != param_1->menuIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
break;
|
||||
case INPUT_A_BUTTON:
|
||||
index = sub_80137A8(¶m_1->unk14);
|
||||
item = ¶m_1->menuItems[index];
|
||||
if ((-1 < item->menuAction) &&
|
||||
((param_1->unkC == NULL || (param_1->unkC[index] != 1)))) {
|
||||
param_1->menuAction = item->menuAction;
|
||||
++param_1; --param_1;
|
||||
param_1->unk4C = FALSE;
|
||||
param_1->unk38 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
if ((param_1->unkC != NULL) && (param_1->unkC[index] == 2)) {
|
||||
PlayMenuSoundEffect(2);
|
||||
}
|
||||
else
|
||||
PlayMenuSoundEffect(0);
|
||||
break;
|
||||
case INPUT_B_BUTTON:
|
||||
if (-1 < param_1->menuItems[param_1->unk2E].menuAction) {
|
||||
param_1->menuAction = param_1->menuItems[param_1->unk2E].menuAction;
|
||||
param_1->unk4C = FALSE;
|
||||
PlayMenuSoundEffect(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
sub_8012EBC(param_1);
|
||||
return param_1->unk4C;
|
||||
}
|
||||
|
||||
bool8 sub_80130A8(struct MenuStruct *param_1)
|
||||
{
|
||||
s32 index;
|
||||
s32 menuAction;
|
||||
const struct MenuItem *menuItem;
|
||||
|
||||
if (param_1->unk4C) {
|
||||
|
||||
switch(GetKeyPress(¶m_1->unk14))
|
||||
{
|
||||
case INPUT_A_BUTTON:
|
||||
index = sub_80137A8(¶m_1->unk14);
|
||||
menuItem = ¶m_1->menuItems[index];
|
||||
param_1->menuAction = menuItem->menuAction;
|
||||
param_1->unk4C = FALSE;
|
||||
param_1->unk38 = 0;
|
||||
PlayMenuSoundEffect(0);
|
||||
break;
|
||||
case INPUT_B_BUTTON:
|
||||
if(menuAction = param_1->menuItems[param_1->unk2E].menuAction, -1 < menuAction) {
|
||||
param_1->menuAction = menuAction;
|
||||
param_1->unk4C = FALSE;
|
||||
PlayMenuSoundEffect(0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
sub_8012EBC(param_1);
|
||||
return param_1->unk4C;
|
||||
}
|
||||
|
||||
bool8 sub_8013114(struct MenuStruct *param_1, s32 *menuAction)
|
||||
{
|
||||
if(param_1->unk4C){
|
||||
return TRUE;
|
||||
}
|
||||
if (menuAction != NULL){
|
||||
*menuAction = param_1->menuAction;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
#include "constants/input.h"
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
|
||||
|
|
@ -34,19 +35,19 @@ u32 GetKeyPress(struct UnkInputStruct *r0)
|
|||
{
|
||||
if(r0->a_button != 0)
|
||||
{
|
||||
return 1;
|
||||
return INPUT_A_BUTTON;
|
||||
}
|
||||
if(r0->b_button != 0)
|
||||
{
|
||||
return 2;
|
||||
return INPUT_B_BUTTON;
|
||||
}
|
||||
if(r0->dpad_left != 0)
|
||||
{
|
||||
return 9;
|
||||
return INPUT_DPAD_LEFT;
|
||||
}
|
||||
if(r0->dpad_right != 0)
|
||||
{
|
||||
return 10;
|
||||
return INPUT_DPAD_RIGHT;
|
||||
}
|
||||
}
|
||||
return sub_8012AE8();
|
||||
|
|
@ -56,54 +57,54 @@ u32 sub_8012AE8(void)
|
|||
{
|
||||
if ((gRealInputs.held & R_BUTTON) != 0) {
|
||||
if ((gRealInputs.pressed & A_BUTTON) != 0) {
|
||||
return 11;
|
||||
return INPUT_R_A_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_UP) != 0) {
|
||||
return 12;
|
||||
return INPUT_R_DPAD_UP_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_DOWN) != 0) {
|
||||
return 13;
|
||||
return INPUT_R_DPAD_DOWN_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_LEFT) != 0) {
|
||||
return 14;
|
||||
return INPUT_R_DPAD_LEFT_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_RIGHT) != 0) {
|
||||
return 15;
|
||||
return INPUT_R_DPAD_RIGHT_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & R_BUTTON) != 0) {
|
||||
return 6;
|
||||
return INPUT_R_BUTTON;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gRealInputs.pressed & A_BUTTON) != 0) {
|
||||
return 1;
|
||||
return INPUT_A_BUTTON;
|
||||
}
|
||||
if ((gRealInputs.pressed & B_BUTTON) != 0) {
|
||||
return 2;
|
||||
return INPUT_B_BUTTON;
|
||||
}
|
||||
if ((gRealInputs.pressed & SELECT_BUTTON) != 0) {
|
||||
return 3;
|
||||
return INPUT_SELECT_BUTTON;
|
||||
}
|
||||
if ((gRealInputs.pressed & START_BUTTON) != 0) {
|
||||
return 4;
|
||||
return INPUT_START_BUTTON;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_UP) != 0) {
|
||||
return 7;
|
||||
return INPUT_DPAD_UP;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_DOWN) != 0) {
|
||||
return 8;
|
||||
return INPUT_DPAD_DOWN;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_LEFT) != 0) {
|
||||
return 9;
|
||||
return INPUT_DPAD_LEFT;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_RIGHT) != 0) {
|
||||
return 10;
|
||||
return INPUT_DPAD_RIGHT;
|
||||
}
|
||||
if ((gRealInputs.repeated & L_BUTTON) != 0) {
|
||||
return 5;
|
||||
return INPUT_L_BUTTON;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return INPUT_NONE;
|
||||
}
|
||||
|
||||
|
|
|
|||
22
src/music.c
22
src/music.c
|
|
@ -61,7 +61,7 @@ struct PMDMusicPlayer
|
|||
u16 unk0;
|
||||
u16 songIndex;
|
||||
u16 volume;
|
||||
bool8 unk6;
|
||||
bool8 isNotMaxVolume;
|
||||
};
|
||||
|
||||
extern struct PMDMusicPlayer gUnknown_3000FD8[8];
|
||||
|
|
@ -418,7 +418,7 @@ void InitMusic(void)
|
|||
musicPlayer->unk0 = 0;
|
||||
musicPlayer->songIndex = STOP_SOUND_EFFECT;
|
||||
musicPlayer->volume = 0;
|
||||
musicPlayer->unk6 = FALSE;
|
||||
musicPlayer->isNotMaxVolume = FALSE;
|
||||
}
|
||||
nullsub_19();
|
||||
}
|
||||
|
|
@ -677,11 +677,11 @@ void PlayFanfareSE(u16 songIndex, u16 volume)
|
|||
musicPlayer->songIndex = songIndex;
|
||||
if(volume == MAX_VOLUME)
|
||||
{
|
||||
musicPlayer->unk6 = FALSE;
|
||||
musicPlayer->isNotMaxVolume = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
musicPlayer->unk6 = TRUE;
|
||||
musicPlayer->isNotMaxVolume = TRUE;
|
||||
}
|
||||
musicPlayer->volume = volume;
|
||||
if (interrupt_flag2)
|
||||
|
|
@ -739,7 +739,7 @@ void StopFanfareSE(u16 songIndex)
|
|||
musicPlayer1->unk0 = 0;
|
||||
musicPlayer1->songIndex = STOP_SOUND_EFFECT;
|
||||
musicPlayer1->volume = 0;
|
||||
musicPlayer1->unk6 = FALSE;
|
||||
musicPlayer1->isNotMaxVolume = FALSE;
|
||||
}
|
||||
if (cVar1 != '\0') {
|
||||
EnableInterrupts();
|
||||
|
|
@ -760,7 +760,7 @@ void StopFanfareSE(u16 songIndex)
|
|||
musicPlayer->unk0 = 0;
|
||||
musicPlayer->songIndex = STOP_SOUND_EFFECT;
|
||||
musicPlayer->volume = 0;
|
||||
musicPlayer->unk6 = FALSE;
|
||||
musicPlayer->isNotMaxVolume = FALSE;
|
||||
}
|
||||
if (cVar2 != '\0') {
|
||||
EnableInterrupts();
|
||||
|
|
@ -834,7 +834,7 @@ void FadeOutFanfareSE(u16 songIndex, u16 speed)
|
|||
musicPlayer1->unk0 = 0;
|
||||
musicPlayer1->songIndex = STOP_SOUND_EFFECT;
|
||||
musicPlayer1->volume = 0;
|
||||
musicPlayer1->unk6 = FALSE;
|
||||
musicPlayer1->isNotMaxVolume = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -856,7 +856,7 @@ void FadeOutFanfareSE(u16 songIndex, u16 speed)
|
|||
musicPlayer->unk0 = 0;
|
||||
musicPlayer->songIndex = STOP_SOUND_EFFECT;
|
||||
musicPlayer->volume = 0;
|
||||
musicPlayer->unk6 = FALSE;
|
||||
musicPlayer->isNotMaxVolume = FALSE;
|
||||
}
|
||||
}
|
||||
if (cVar2 != '\0') {
|
||||
|
|
@ -1089,9 +1089,9 @@ void UpdateSound(void)
|
|||
case 2:
|
||||
if (IsMusicPlayerPlaying(musicPlayerIndex))
|
||||
{
|
||||
if(musicPlayer->unk6)
|
||||
if(musicPlayer->isNotMaxVolume)
|
||||
{
|
||||
musicPlayer->unk6 = FALSE;
|
||||
musicPlayer->isNotMaxVolume = FALSE;
|
||||
m4aMPlayVolumeControl(gMPlayTable[musicPlayerIndex].info,0xff,musicPlayer->volume);
|
||||
}
|
||||
}
|
||||
|
|
@ -1100,7 +1100,7 @@ void UpdateSound(void)
|
|||
musicPlayer->unk0 = 0;
|
||||
musicPlayer->songIndex = STOP_SOUND_EFFECT;
|
||||
musicPlayer->volume = 0;
|
||||
musicPlayer->unk6 = FALSE;
|
||||
musicPlayer->isNotMaxVolume = FALSE;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "menu.h"
|
||||
#include "game_options.h"
|
||||
#include "text.h"
|
||||
#include "game_options.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B25C
|
||||
{
|
||||
|
|
@ -11,16 +13,63 @@ struct unkStruct_203B25C
|
|||
u32 chosenHintIndex;
|
||||
struct GameOptions newOptions;
|
||||
u32 unk18;
|
||||
const char *unk1C;
|
||||
u8 fill20[0x6C - 0x20];
|
||||
struct MenuStruct unk1C;
|
||||
struct MenuItem menuItems[8];
|
||||
u16 unkAC[8];
|
||||
struct UnkTextStruct2 unkBC[4];
|
||||
};
|
||||
|
||||
struct unkStruct_203B260
|
||||
{
|
||||
struct GameOptions *optionsMenu;
|
||||
u32 unk4;
|
||||
u8 unk8;
|
||||
u8 fill9[0x10 - 0x9];
|
||||
u32 unk10;
|
||||
u8 fill14[0x28 - 0x14];
|
||||
s16 unk28;
|
||||
u8 fill2A[0x44 - 0x2A];
|
||||
u32 unk44;
|
||||
struct UnkTextStruct2 * unk48;
|
||||
struct UnkTextStruct2 unk4C[4];
|
||||
};
|
||||
struct unkStruct_203B260 *gUnknown_203B260;
|
||||
extern struct GameOptions *gGameOptionsRef;
|
||||
extern struct unkStruct_203B25C *gUnknown_203B25C;
|
||||
|
||||
extern const struct UnkTextStruct2 gUnknown_80DBFB0;
|
||||
extern const struct UnkTextStruct2 gUnknown_80DBFCC;
|
||||
extern const struct UnkTextStruct2 gUnknown_80DC020;
|
||||
extern const struct UnkTextStruct2 gUnknown_80DC03C;
|
||||
|
||||
extern u8 gWindowBGTitle[];
|
||||
extern u8 gUnknown_80DC064[];
|
||||
extern u8 gWindowBGGreenString[];
|
||||
extern u8 gWindowBGRedString[];
|
||||
extern u8 gWindowBGBlueString[];
|
||||
|
||||
extern const char gOthers_MenuOption[];
|
||||
extern const char gUnknown_80DBFEC[];
|
||||
extern const char gOthers_GameOptions[];
|
||||
extern const char gOthers_Hints[];
|
||||
extern const char *gUnknown_80D4920[];
|
||||
extern const char *gUnknown_80D4928[];
|
||||
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32);
|
||||
extern s32 sub_8008ED0(u8 *);
|
||||
extern s32 sub_8013800(u32 *, u32);
|
||||
extern void sub_80078A4(u32, u32, u32, u32, u32);
|
||||
extern u8 sub_80138B8(u32 *, u32);
|
||||
void PlayMenuSoundEffect(u32);
|
||||
s32 sub_8012AE8(void);
|
||||
void sub_801317C(u32 *);
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
void CreateOptionsMenu(void);
|
||||
void nullsub_38(void);
|
||||
extern void sub_801DD6C(u32);
|
||||
|
||||
extern void HandleOthersMenu();
|
||||
extern void sub_801E088();
|
||||
extern void sub_801E0E0();
|
||||
|
|
@ -28,15 +77,12 @@ extern void sub_801E0FC();
|
|||
extern void HandleChangeSettingsMenu();
|
||||
extern void sub_801DD84();
|
||||
extern void sub_801DED0();
|
||||
extern void sub_8012D60(const char **, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern u32 sub_801E198(struct GameOptions *);
|
||||
extern bool8 sub_801E198(struct GameOptions *);
|
||||
extern void sub_8014248(const char *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32);
|
||||
extern void CreateHintDisplayScreen(u32);
|
||||
extern void sub_801E3F0(u32);
|
||||
extern void CreateHintSelectionScreen(u32);
|
||||
extern void CreateChangeSettingsConfirmMenu(void);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern u32 sub_801E474(u32);
|
||||
extern u32 GetChosenHintIndex(void);
|
||||
extern void sub_801E54C(void);
|
||||
|
|
@ -47,20 +93,6 @@ extern void sub_801E2C4(void);
|
|||
extern s32 sub_80144A4(s32 *);
|
||||
extern void SetWindowBGColor(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
|
||||
extern struct GameOptions *gGameOptionsRef;
|
||||
extern struct unkStruct_203B25C *gUnknown_203B25C;
|
||||
extern const struct UnkTextStruct2 gUnknown_80DBFCC;
|
||||
extern const struct UnkTextStruct2 gUnknown_80DBFB0;
|
||||
|
||||
extern const char gOthers_MenuOption[];
|
||||
extern const char gUnknown_80DBFEC[];
|
||||
extern const char gOthers_GameOptions[];
|
||||
extern const char gOthers_Hints[];
|
||||
extern const char *gUnknown_80D4920[];
|
||||
extern const char *gUnknown_80D4928[];
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
|
|
@ -350,7 +382,7 @@ void sub_801DED0(void)
|
|||
switch(gUnknown_203B25C->state) {
|
||||
case 0:
|
||||
case 1:
|
||||
gUnknown_203B25C->unk1C = gOthers_MenuOption;
|
||||
gUnknown_203B25C->unk1C.unk0 = gOthers_MenuOption;
|
||||
sub_8012D60(&gUnknown_203B25C->unk1C,gUnknown_203B25C->menuItems,0,gUnknown_203B25C->unkAC,gUnknown_203B25C->unk18,0);
|
||||
break;
|
||||
case 3:
|
||||
|
|
@ -420,8 +452,8 @@ void HandleOthersMenu(void)
|
|||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
if (sub_8012FD8((u32 *)&gUnknown_203B25C->unk1C) == '\0') {
|
||||
sub_8013114((u32 *)&gUnknown_203B25C->unk1C,&menuAction);
|
||||
if (sub_8012FD8(&gUnknown_203B25C->unk1C) == '\0') {
|
||||
sub_8013114(&gUnknown_203B25C->unk1C,&menuAction);
|
||||
gUnknown_203B25C->unk18 = menuAction;
|
||||
}
|
||||
switch(menuAction)
|
||||
|
|
@ -519,3 +551,123 @@ void HandleChangeSettingsMenu(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_801E198(struct GameOptions *optionsMenu)
|
||||
{
|
||||
gUnknown_203B260 = MemoryAlloc(sizeof(struct unkStruct_203B260), 8);
|
||||
gUnknown_203B260->optionsMenu = optionsMenu;
|
||||
sub_801317C(&gUnknown_203B260->unk4);
|
||||
gUnknown_203B260->unk44 = 0;
|
||||
gUnknown_203B260->unk48 = &gUnknown_203B260->unk4C[0];
|
||||
sub_8006518(gUnknown_203B260->unk4C);
|
||||
gUnknown_203B260->unk4C[gUnknown_203B260->unk44] = gUnknown_80DC03C;
|
||||
sub_8012D08(gUnknown_203B260->unk48,1);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B260->unk4C,1,1);
|
||||
sub_8013818(&gUnknown_203B260->unk10,1,1,gUnknown_203B260->unk44);
|
||||
nullsub_38();
|
||||
CreateOptionsMenu();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_801E218(void)
|
||||
{
|
||||
bool32 flag;
|
||||
|
||||
flag = FALSE;
|
||||
|
||||
switch(sub_8012AE8())
|
||||
{
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case INPUT_DPAD_LEFT:
|
||||
if (gUnknown_203B260->unk28 == 0)
|
||||
{
|
||||
if (gUnknown_203B260->optionsMenu->windowColor == WINDOW_COLOR_BLUE) {
|
||||
gUnknown_203B260->optionsMenu->windowColor = WINDOW_COLOR_GREEN;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B260->optionsMenu->windowColor--;
|
||||
}
|
||||
PlayMenuSoundEffect(3);
|
||||
flag = TRUE;
|
||||
}
|
||||
break;
|
||||
case INPUT_DPAD_RIGHT:
|
||||
if(gUnknown_203B260->unk28 == 0)
|
||||
{
|
||||
if (gUnknown_203B260->optionsMenu->windowColor > WINDOW_COLOR_RED) {
|
||||
gUnknown_203B260->optionsMenu->windowColor = WINDOW_COLOR_BLUE;
|
||||
}
|
||||
else
|
||||
gUnknown_203B260->optionsMenu->windowColor++;
|
||||
PlayMenuSoundEffect(3);
|
||||
flag = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// == 1 is needed for matching
|
||||
if ((sub_80138B8(&gUnknown_203B260->unk10,1) != 0) || (flag == TRUE)) {
|
||||
nullsub_38();
|
||||
CreateOptionsMenu();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801E2C4(void)
|
||||
{
|
||||
if(gUnknown_203B260 != NULL)
|
||||
{
|
||||
gUnknown_203B260->unk4C[gUnknown_203B260->unk44] = gUnknown_80DC020;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B260->unk4C, 1, 1);
|
||||
MemoryFree(gUnknown_203B260);
|
||||
gUnknown_203B260 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void nullsub_38(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CreateOptionsMenu(void)
|
||||
{
|
||||
u32 length;
|
||||
u32 y;
|
||||
|
||||
sub_8008C54(gUnknown_203B260->unk44);
|
||||
sub_80073B8(gUnknown_203B260->unk44);
|
||||
xxx_call_draw_string(0x10,0,gWindowBGTitle,gUnknown_203B260->unk44,0);
|
||||
y = sub_8013800(&gUnknown_203B260->unk10,0);
|
||||
xxx_call_draw_string(8,y,gUnknown_80DC064,gUnknown_203B260->unk44,0);
|
||||
|
||||
switch(gUnknown_203B260->optionsMenu->windowColor)
|
||||
{
|
||||
case WINDOW_COLOR_BLUE:
|
||||
length = sub_8008ED0(gWindowBGBlueString);
|
||||
sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50,
|
||||
y + 0xA,length,7);
|
||||
break;
|
||||
case WINDOW_COLOR_RED:
|
||||
length = sub_8008ED0(gWindowBGRedString);
|
||||
sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50,
|
||||
y + 0xA,length,7);
|
||||
break;
|
||||
case WINDOW_COLOR_GREEN:
|
||||
length = sub_8008ED0(gWindowBGGreenString);
|
||||
sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50,
|
||||
y + 0xA,length,7);
|
||||
break;
|
||||
}
|
||||
sub_80073E0(gUnknown_203B260->unk44);
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
#include "menu.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B35C
|
||||
{
|
||||
|
|
@ -15,8 +16,7 @@ struct unkStruct_203B35C
|
|||
u32 linkStatus;
|
||||
u32 state;
|
||||
u8 fillC[0x1C - 0xC];
|
||||
u32 unk1C;
|
||||
u8 fill20[0x15C - 0x20];
|
||||
struct MenuStruct unk1C[4];
|
||||
struct UnkTextStruct2 unk15C[4];
|
||||
u8 unk1BC[4];
|
||||
u32 unk1C0[9];
|
||||
|
|
@ -56,19 +56,17 @@ extern struct MenuItem gUnknown_80E6D6C[];
|
|||
|
||||
extern void sub_8037400(void);
|
||||
extern void ResetSprites(u32);
|
||||
extern void sub_8035CF4(u32 *,u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *,u32, u32);
|
||||
extern void sub_80376CC();
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
|
||||
extern u8 sub_80130A8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern u32 sub_8037C10(u32);
|
||||
extern void sub_8037748(void);
|
||||
extern void sub_80371B8(void);
|
||||
extern void sub_8037900(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern u32 sub_8037798(void);
|
||||
extern void SetMenuItems(void *, void *, u32, struct UnkTextStruct2 *, struct MenuItem *, u32, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, void *, u32, struct UnkTextStruct2 *, struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_8005838(u32, u32);
|
||||
extern void sub_80060EC();
|
||||
extern void sub_800CB20();
|
||||
|
|
@ -107,9 +105,9 @@ void sub_8036FDC(s32 param_1)
|
|||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B35C->unk15C,1,1);
|
||||
SetMenuItems(&gUnknown_203B35C->unk1C,gUnknown_203B35C->unk15C,0,&gUnknown_80E6CD0,gUnknown_80E6CE8,0,
|
||||
SetMenuItems(gUnknown_203B35C->unk1C,gUnknown_203B35C->unk15C,0,&gUnknown_80E6CD0,gUnknown_80E6CE8,0,
|
||||
6,0);
|
||||
sub_8035CF4(&gUnknown_203B35C->unk1C,0,1);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C,0,1);
|
||||
sub_80376CC();
|
||||
}
|
||||
#else
|
||||
|
|
@ -250,8 +248,8 @@ u32 sub_80370F0(void)
|
|||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
switch(gUnknown_203B35C->state){
|
||||
case 0:
|
||||
if (sub_80130A8(&gUnknown_203B35C->unk1C) == '\0') {
|
||||
sub_8013114(&gUnknown_203B35C->unk1C,&local_10);
|
||||
if (sub_80130A8(&gUnknown_203B35C->unk1C[0]) == '\0') {
|
||||
sub_8013114(&gUnknown_203B35C->unk1C[0],&local_10);
|
||||
}
|
||||
if (local_10 == 4) {
|
||||
sub_8037748();
|
||||
|
|
@ -271,8 +269,8 @@ u32 sub_80370F0(void)
|
|||
return 0x29; // TODO: what screen is this?
|
||||
}
|
||||
else {
|
||||
if (sub_80130A8(&gUnknown_203B35C->unk1C) == '\0') {
|
||||
sub_8013114(&gUnknown_203B35C->unk1C,&local_10);
|
||||
if (sub_80130A8(&gUnknown_203B35C->unk1C[0]) == '\0') {
|
||||
sub_8013114(&gUnknown_203B35C->unk1C[0],&local_10);
|
||||
}
|
||||
if (local_10 != 4) {
|
||||
PlayMenuSoundEffect(3);
|
||||
|
|
@ -302,8 +300,8 @@ void sub_80371B8(void)
|
|||
// Success!
|
||||
// The item exchange with your friend
|
||||
// went through successfully
|
||||
SetMenuItems(&gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, &gUnknown_80E6C50, gUnknown_80E6C68, 0, 6, 0);
|
||||
sub_8035CF4(&gUnknown_203B35C->unk1C, 0, 1);
|
||||
SetMenuItems(gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, &gUnknown_80E6C50, gUnknown_80E6C68, 0, 6, 0);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C, 0, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -362,8 +360,8 @@ void sub_80371B8(void)
|
|||
MenuItems = gUnknown_80E6C0C;
|
||||
break;
|
||||
}
|
||||
SetMenuItems(&gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0);
|
||||
sub_8035CF4(&gUnknown_203B35C->unk1C, 0, 1);
|
||||
SetMenuItems(gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0);
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C, 0, 1);
|
||||
if ((gUnknown_203B35C->linkStatus != COMMS_GOOD) && (gUnknown_203B35C->unk0 == 0) &&
|
||||
(item = sub_8035D94(), item->itemIndex.itemIndex_u8 != ITEM_NOTHING) && (item->numItems != 0)) {
|
||||
gTeamInventory_203B460->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "input.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
// Guessing based off of 203B304
|
||||
struct unkStruct_203B308
|
||||
|
|
@ -18,8 +19,7 @@ struct unkStruct_203B308
|
|||
u8 fill51[0x64 - 0x51];
|
||||
u32 unk64;
|
||||
u32 unk68;
|
||||
u32 unk6C;
|
||||
u8 fill70[0xBC - 0x70];
|
||||
struct MenuStruct unk6C;
|
||||
struct MenuItem unkBC[8];
|
||||
u16 unkFC[8];
|
||||
struct UnkTextStruct2 unk10C[4];
|
||||
|
|
@ -30,7 +30,7 @@ extern void SetPelipperBoardState(u32);
|
|||
const struct UnkTextStruct2 gUnknown_80E0330 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -40,7 +40,7 @@ const struct UnkTextStruct2 gUnknown_80E0330 =
|
|||
const struct UnkTextStruct2 gUnknown_80E0348 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x03, 0x00, 0x03, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -50,7 +50,7 @@ const struct UnkTextStruct2 gUnknown_80E0348 =
|
|||
const struct UnkTextStruct2 gUnknown_80E0360 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x04,
|
||||
0x15, 0x00, 0x06, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -60,7 +60,7 @@ const struct UnkTextStruct2 gUnknown_80E0360 =
|
|||
const struct UnkTextStruct2 gUnknown_80E0378 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x04,
|
||||
0x15, 0x00, 0x0f, 0x00,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -73,7 +73,6 @@ 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);
|
||||
extern void sub_802ED4C(void);
|
||||
|
|
@ -85,7 +84,6 @@ extern void sub_802EA58(void);
|
|||
extern void CreatePelipperBoardMenu(void);
|
||||
extern void sub_802EC10(void);
|
||||
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern void sub_802C10C(u32, u32, u32);
|
||||
extern void sub_802C28C(u32);
|
||||
extern void sub_802C39C(void);
|
||||
|
|
@ -178,7 +176,7 @@ void sub_802E94C(void)
|
|||
sub_802EC10();
|
||||
gUnknown_203B308->unk10C[2] = gUnknown_80E0360;
|
||||
sub_8012CAC(&gUnknown_203B308->unk10C[2], gUnknown_203B308->unkBC);
|
||||
gUnknown_203B308->unk10C[2].unk0c = 6;
|
||||
gUnknown_203B308->unk10C[2].unkC = 6;
|
||||
gUnknown_203B308->unk10C[3] = gUnknown_80E0378;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "text.h"
|
||||
#include "team_inventory.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B308
|
||||
{
|
||||
|
|
@ -21,8 +22,7 @@ struct unkStruct_203B308
|
|||
u8 fill51[0x64 - 0x51];
|
||||
u32 unk64;
|
||||
u32 unk68;
|
||||
u32 unk6C;
|
||||
u8 fill70[0xBC - 0x70];
|
||||
struct MenuStruct unk6C;
|
||||
struct MenuItem unkBC[8];
|
||||
u16 unkFC[8];
|
||||
struct UnkTextStruct2 unk10C[4];
|
||||
|
|
@ -32,7 +32,6 @@ extern struct unkStruct_203B308 *gUnknown_203B308;
|
|||
extern u8 gPelipperBoard_Accepted[];
|
||||
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);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
|
|
@ -48,14 +47,11 @@ extern void sub_8096A78(struct WonderMail*);
|
|||
extern void ResetPelipperBoardSlot(u8);
|
||||
extern void sub_80965F4(void);
|
||||
extern void sub_802C2D4(void);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_802C1E4(u32);
|
||||
extern void PlaySound(u32);
|
||||
extern void SetPelipperBoardState(u32);
|
||||
extern u8 sub_802C26C(void);
|
||||
extern u8 HasNoAcceptedJobs(void);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
|
||||
void sub_802ECB4(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "global.h"
|
||||
#include "personality_test.h"
|
||||
#include "constants/emotions.h"
|
||||
#include "constants/input.h"
|
||||
#include "constants/type.h"
|
||||
#include "random.h"
|
||||
#include "file_system.h"
|
||||
#include "pokemon.h"
|
||||
|
|
@ -355,7 +357,7 @@ const char * const gPersonalityTypeDescriptionTable[NUM_PERSONALITIES] =
|
|||
const struct UnkTextStruct2 gUnknown_80F4244 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00,
|
||||
0x05,
|
||||
0x0C, 0x00, 0x06, 0x00,
|
||||
0x05, 0x05,
|
||||
0x05, 0x00,
|
||||
|
|
@ -381,7 +383,7 @@ const s16 gPartners[NUM_PARTNERS] =
|
|||
const struct UnkTextStruct2 gUnknown_80F4278 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -391,7 +393,7 @@ const struct UnkTextStruct2 gUnknown_80F4278 =
|
|||
const struct UnkTextStruct2 gUnknown_80F4290 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x09, 0x0B,
|
||||
0x0D, 0x00,
|
||||
|
|
@ -401,7 +403,7 @@ const struct UnkTextStruct2 gUnknown_80F4290 =
|
|||
const struct UnkTextStruct2 gUnknown_80F42A8 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00,
|
||||
0x05,
|
||||
0x0E, 0x00, 0x04, 0x00,
|
||||
0x05, 0x05,
|
||||
0x05, 0x00,
|
||||
|
|
@ -801,7 +803,7 @@ u16 HandlePartnerSelectionInput(void)
|
|||
|
||||
partnerID = gUnknown_203B404->currPartnerSelection;
|
||||
gUnknown_203B404->unk16 = 0;
|
||||
if (GetKeyPress(&gUnknown_203B404->unk18) == A_BUTTON) {
|
||||
if (GetKeyPress(&gUnknown_203B404->unk18) == INPUT_A_BUTTON) {
|
||||
PlayMenuSoundEffect(0);
|
||||
return gUnknown_203B404->PartnerArray[gUnknown_203B404->currPartnerSelection];
|
||||
}
|
||||
|
|
@ -1034,8 +1036,8 @@ s32 GetValidPartners(void)
|
|||
CurrentPartnerID = gPartners[counter];
|
||||
currentPartnerTypes[0] = GetPokemonType(CurrentPartnerID, 0);
|
||||
currentPartnerTypes[1] = GetPokemonType(CurrentPartnerID, 1);
|
||||
if (((currentPartnerTypes[0] == '\0') || ((currentPartnerTypes[0] != PlayerType[0] && (currentPartnerTypes[0] != PlayerType[1]))))
|
||||
&& ((currentPartnerTypes[1] == '\0' || ((currentPartnerTypes[1] != PlayerType[0] && (currentPartnerTypes[1] != PlayerType[1])))
|
||||
if (((currentPartnerTypes[0] == TYPE_NONE) || ((currentPartnerTypes[0] != PlayerType[0] && (currentPartnerTypes[0] != PlayerType[1]))))
|
||||
&& ((currentPartnerTypes[1] == TYPE_NONE || ((currentPartnerTypes[1] != PlayerType[0] && (currentPartnerTypes[1] != PlayerType[1])))
|
||||
))) {
|
||||
gUnknown_203B404->PartnerArray[ValidPartnerCounter] = CurrentPartnerID;
|
||||
ValidPartnerCounter++;
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ ALIGNED(4) const u8 wonder_mail_fill[] = _("pksdir0");
|
|||
const struct UnkTextStruct2 gUnknown_80E1EFC =
|
||||
{
|
||||
0, 0, 0, 0,
|
||||
3, 0, 0, 0,
|
||||
3,
|
||||
0, 0, 0, 0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
|
|
@ -156,7 +156,7 @@ const u8 gUnkData_80E1F14[] = {1, 0, 8, 0};
|
|||
const struct UnkTextStruct2 gUnknown_80E1F18 =
|
||||
{
|
||||
0, 0, 0, 0,
|
||||
6, 0, 0, 0,
|
||||
6,
|
||||
2, 0, 2, 0,
|
||||
0x14, 4,
|
||||
4, 0,
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include "rescue_password_menu.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern u8 gRescuePasswordBuffer[];
|
||||
extern u32 gUnknown_202EC4C;
|
||||
|
|
@ -34,8 +35,6 @@ extern u32 sub_8039068(u32, u8 *passwordBuffer, struct unkStruct_203B480 *r0);
|
|||
|
||||
extern void sub_80951BC(struct unkStruct_203B480 *r0);
|
||||
extern bool8 sub_80951FC(struct unkStruct_203B480 *r0);
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_80154F0(void);
|
||||
extern void sub_8095274(u32);
|
||||
extern u32 sub_8031DCC(void);
|
||||
|
|
@ -45,8 +44,8 @@ extern void DisplayRescuePasswordError(u32);
|
|||
extern struct MainMenu *GetMainMenu(void);
|
||||
|
||||
|
||||
extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_8035CF4(u32 *r0, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *r0, u32, u32);
|
||||
bool8 IsInvalidItemReward(u8);
|
||||
bool8 sub_8095298(s32);
|
||||
bool8 sub_803D204(u8 *, struct unkStruct_203B480 *);
|
||||
|
|
@ -304,8 +303,8 @@ s32 UpdateRescuePasswordMenu(void)
|
|||
}
|
||||
break;
|
||||
case 8:
|
||||
if (sub_8012FD8(&gRescuePasswordMenu->unk8) == '\0') {
|
||||
sub_8013114(&gRescuePasswordMenu->unk8, &local_14);
|
||||
if (sub_8012FD8(&gRescuePasswordMenu->unk8[0]) == '\0') {
|
||||
sub_8013114(&gRescuePasswordMenu->unk8[0], &local_14);
|
||||
}
|
||||
switch(local_14)
|
||||
{
|
||||
|
|
@ -332,8 +331,8 @@ s32 UpdateRescuePasswordMenu(void)
|
|||
}
|
||||
break;
|
||||
case 9:
|
||||
if (sub_8012FD8(&gRescuePasswordMenu->unk8) == '\0') {
|
||||
sub_8013114(&gRescuePasswordMenu->unk8, &local_14);
|
||||
if (sub_8012FD8(&gRescuePasswordMenu->unk8[0]) == '\0') {
|
||||
sub_8013114(&gRescuePasswordMenu->unk8[0], &local_14);
|
||||
}
|
||||
switch(local_14)
|
||||
{
|
||||
|
|
@ -371,36 +370,36 @@ void DisplayRescuePasswordError(u32 passwordError)
|
|||
sub_80155F0();
|
||||
switch(passwordError) {
|
||||
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,0,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_SOS_MAIL:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,0,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,0,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NO_SPACE:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,0,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_AOK_MAIL:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,0,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_DUPLICATE_AOK_MAIL:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,0,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,0,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,0,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_WONDER_MAIL:
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,0,0xd,0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sub_8035CF4(&gRescuePasswordMenu->unk8,0,1);
|
||||
sub_8035CF4(gRescuePasswordMenu->unk8,0,1);
|
||||
}
|
||||
|
||||
void DisplayPasswordAcceptScreen(void)
|
||||
|
|
@ -409,8 +408,8 @@ void DisplayPasswordAcceptScreen(void)
|
|||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
sub_80155F0();
|
||||
SetMenuItems(&gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,0,0xd,0);
|
||||
sub_8035CF4(&gRescuePasswordMenu->unk8,0,1);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,0,0xd,0);
|
||||
sub_8035CF4(gRescuePasswordMenu->unk8,0,1);
|
||||
}
|
||||
|
||||
u32 ConvertMenutoRescuePasswordState(u32 unused)
|
||||
|
|
|
|||
350
src/save_menu.c
Normal file
350
src/save_menu.c
Normal file
|
|
@ -0,0 +1,350 @@
|
|||
#include "gba/defines.h"
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "main_menu.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "save.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkSprite
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
u32 unk4;
|
||||
struct MenuStruct unk8[4];
|
||||
struct UnkTextStruct2 unk148[4];
|
||||
struct unkSprite unk1A8;
|
||||
u32 unk1B0; // Sprite count?
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B360 *gUnknown_203B364;
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E6F20 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E6F38 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x05, 0x00, 0x08, 0x00,
|
||||
0x15, 0x05,
|
||||
0x05, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
const u8 sUnknown_80E6F70[];
|
||||
const u8 sUnknown_80E6F90[];
|
||||
const u8 sUnknown_80E6FAC[];
|
||||
|
||||
const struct MenuItem gSavingAdventureMenuItems[] = {
|
||||
{sUnknown_80E6FAC, 4},
|
||||
{sUnknown_80E6F90, 4},
|
||||
{sUnknown_80E6F70, 4},
|
||||
{NULL, 2}
|
||||
};
|
||||
ALIGNED(4) const u8 sUnknown_80E6F70[] = _("{CENTER_ALIGN}Don{APOSTROPHE}t turn off the power.");
|
||||
ALIGNED(4) const u8 sUnknown_80E6F90[] = _("{CENTER_ALIGN}Saving your adventure!");
|
||||
ALIGNED(4) const u8 sUnknown_80E6FAC[] = _("{CENTER_ALIGN}{COLOR_1 RED}Beware!{END_COLOR_TEXT_1} ");
|
||||
|
||||
extern const u8 sUnknown_80E6FDC[];
|
||||
extern const u8 sUnknown_80E7008[];
|
||||
extern const u8 sUnknown_80E6FF0[];
|
||||
|
||||
const struct MenuItem gAdventureSavedMenuItems[] = {
|
||||
{sUnknown_80E7008, 4},
|
||||
{sUnknown_80E6FF0, 4},
|
||||
{sUnknown_80E6FDC, 4},
|
||||
{NULL, 2}
|
||||
};
|
||||
ALIGNED(4) const u8 sUnknown_80E6FDC[] = _("{CENTER_ALIGN}has been saved.");
|
||||
ALIGNED(4) const u8 sUnknown_80E6FF0[] = _("{CENTER_ALIGN}Your adventure so far");
|
||||
ALIGNED(4) const u8 sUnknown_80E7008[] = _("{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}Success!{END_COLOR_TEXT_1} ");
|
||||
|
||||
extern const u8 sUnknown_80E7078[];
|
||||
extern const u8 sUnknown_80E7050[];
|
||||
extern const u8 sUnknown_80E703C[];
|
||||
|
||||
const struct MenuItem gAdventureCouldNotBeSavedMenuItems[] = {
|
||||
{sUnknown_80E7078, 4},
|
||||
{sUnknown_80E7050, 4},
|
||||
{sUnknown_80E703C, 4},
|
||||
{NULL, 2}
|
||||
};
|
||||
ALIGNED(4) const u8 sUnknown_80E703C[] = _("{CENTER_ALIGN}Please try again.");
|
||||
ALIGNED(4) const u8 sUnknown_80E7050[] = _("{CENTER_ALIGN}Your adventure could not be saved.");
|
||||
ALIGNED(4) const u8 sUnknown_80E7078[] = _("{CENTER_ALIGN}{COLOR_1 RED}Save failed!{END_COLOR_TEXT_1} ");
|
||||
|
||||
|
||||
extern const u8 DeletingAdventure_80E70B0[];
|
||||
|
||||
const struct MenuItem gDeletingYourAdventureMenuItems[] = {
|
||||
{sUnknown_80E6FAC, 4},
|
||||
{DeletingAdventure_80E70B0, 4},
|
||||
{sUnknown_80E6F70, 4},
|
||||
{NULL, 2}
|
||||
};
|
||||
ALIGNED(4) const u8 DeletingAdventure_80E70B0[] = _("{CENTER_ALIGN}Deleting your adventure!");
|
||||
|
||||
extern const u8 Data_80E70EC[];
|
||||
extern const u8 AdventureDeleted_80E70F0[];
|
||||
|
||||
const struct MenuItem gDeletedSaveMenuItems[] = {
|
||||
{sUnknown_80E7008, 4},
|
||||
{AdventureDeleted_80E70F0, 4},
|
||||
{Data_80E70EC, 4},
|
||||
{NULL, 2},
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 Data_80E70EC[] = _(" ");
|
||||
ALIGNED(4) const u8 AdventureDeleted_80E70F0[] = _("{CENTER_ALIGN}Your adventure has been deleted.");
|
||||
|
||||
extern const u8 sUnknown_80E7134[];
|
||||
extern const u8 sUnknown_80E715C[];
|
||||
|
||||
const struct MenuItem gAdventureCouldNotBeDeletedMenuItems[] = {
|
||||
{sUnknown_80E715C, 4},
|
||||
{sUnknown_80E7134, 4},
|
||||
{sUnknown_80E703C, 4},
|
||||
{NULL, 2},
|
||||
};
|
||||
ALIGNED(4) const u8 sUnknown_80E7134[] = _("{CENTER_ALIGN}Your adventure could not be deleted.");
|
||||
ALIGNED(4) const u8 sUnknown_80E715C[] = _("{CENTER_ALIGN}{COLOR_1 RED}Deletion failed!{END_COLOR_TEXT_1} ");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E7178[] = _("{CENTER_ALIGN}The data could not be written.\n"
|
||||
"{CENTER_ALIGN}Please turn off the power and remove\n"
|
||||
"{CENTER_ALIGN}and reinsert the DS Card.");
|
||||
|
||||
ALIGNED(4) static const u8 save_menu_fill0[] = "pksdir0";
|
||||
|
||||
extern void ResetSprites(u32);
|
||||
extern void sub_8038440();
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_80384D0();
|
||||
extern void sub_8038830();
|
||||
extern void sub_80388C4(void);
|
||||
extern void sub_8014114();
|
||||
extern void sub_80140F8(void);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
|
||||
extern void AddSprite(struct unkSprite *, u32, u32, u32);
|
||||
|
||||
void CreateSaveMenu(s32 currMenu)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
if (gUnknown_203B364 == NULL) {
|
||||
gUnknown_203B364 = MemoryAlloc(sizeof(struct unkStruct_203B360),8);
|
||||
MemoryFill8((u8 *)gUnknown_203B364,0,sizeof(struct unkStruct_203B360));
|
||||
}
|
||||
for(index = 0; index < 4; index++){
|
||||
gUnknown_203B364->unk148[index] = gUnknown_80E6F20;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B364->unk148,1,1);
|
||||
|
||||
if (currMenu == MENU_DELETE_SAVE) {
|
||||
// Beware, Deleting your Adventure
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems,
|
||||
0,6,0);
|
||||
}
|
||||
else {
|
||||
// Saving your Adventure
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems,
|
||||
0,6,0);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,1);
|
||||
gUnknown_203B364->unk4 = 0;
|
||||
gUnknown_203B364->currMenu = currMenu;
|
||||
sub_8038830();
|
||||
}
|
||||
|
||||
void CleanSaveMenu(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
if (gUnknown_203B364 != NULL) {
|
||||
MemoryFree(gUnknown_203B364);
|
||||
gUnknown_203B364 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
s32 UpdateSaveMenu(void)
|
||||
{
|
||||
int saveStatus;
|
||||
struct MainMenu *mainMenu;
|
||||
u32 menu;
|
||||
u32 uStack_18;
|
||||
u32 action;
|
||||
|
||||
menu = MENU_NO_SCREEN_CHANGE;
|
||||
action = 3;
|
||||
|
||||
switch(gUnknown_203B364->unk4)
|
||||
{
|
||||
default:
|
||||
case 2:
|
||||
menu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case 0:
|
||||
sub_8012FD8(&gUnknown_203B364->unk8[0]);
|
||||
uStack_18 = 0;
|
||||
sub_80140F8();
|
||||
saveStatus = WriteSavetoPak(&uStack_18,sub_8011C1C());
|
||||
sub_8014114();
|
||||
switch(saveStatus)
|
||||
{
|
||||
case SAVE_COMPLETED:
|
||||
sub_8035CC0(gUnknown_203B364->unk148,0);
|
||||
if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) {
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gDeletedSaveMenuItems,0,6,0);
|
||||
}
|
||||
else {
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureSavedMenuItems,0,6,0);
|
||||
}
|
||||
if (gUnknown_203B364->currMenu == 0x2d) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
return MENU_COMMUNICATION_1;
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,1);
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
break;
|
||||
case SAVE_NOT_WRTTEN:
|
||||
sub_80141B4(gUnknown_80E7178,0,0,0);
|
||||
gUnknown_203B364->unk4 = 5;
|
||||
break;
|
||||
default:
|
||||
sub_8035CC0(gUnknown_203B364->unk148,0);
|
||||
if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) {
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureCouldNotBeDeletedMenuItems,0,6,0);
|
||||
}
|
||||
else {
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureCouldNotBeSavedMenuItems,0,6,0);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,1);
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
break;
|
||||
}
|
||||
menu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case 1:
|
||||
if (sub_80130A8(&gUnknown_203B364->unk8[0]) == '\0') {
|
||||
sub_8013114(&gUnknown_203B364->unk8[0],&action);
|
||||
}
|
||||
switch(action)
|
||||
{
|
||||
case 2:
|
||||
case 4:
|
||||
if ((gUnknown_203B364->currMenu == 0x29) || (gUnknown_203B364->currMenu == MENU_DELETE_SAVE)) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
menu = MENU_MAIN_SCREEN;
|
||||
}
|
||||
else if (gUnknown_203B364->currMenu == 0x2d) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
menu = MENU_COMMUNICATION_1;
|
||||
}
|
||||
else if (gUnknown_203B364->currMenu == 0x2c) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
menu = 0x1f;
|
||||
}
|
||||
else {
|
||||
mainMenu = GetMainMenu();
|
||||
if (mainMenu->unk3A != 0) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
menu = 0x35;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
menu = gUnknown_203B364->currMenu == 0x2b ? MENU_WONDER_MAIL : MENU_FRIEND_RESCUE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
break;
|
||||
}
|
||||
sub_80388C4();
|
||||
}
|
||||
return menu;
|
||||
}
|
||||
|
||||
void sub_8038830(void)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u32 r0;
|
||||
u32 r2;
|
||||
#else
|
||||
register u32 r0 asm("r0");
|
||||
register u32 r2 asm("r2");
|
||||
#endif
|
||||
u32 r1;
|
||||
u32 r4;
|
||||
u32 r5;
|
||||
struct unkSprite *sprite;
|
||||
|
||||
r5 = 0;
|
||||
sprite = &gUnknown_203B364->unk1A8;
|
||||
|
||||
r1 = sprite->unk0;
|
||||
r0 = 0xfeff;
|
||||
r0 &= r1;
|
||||
r0 &= 0xfdff;
|
||||
r0 &= 0xf3ff;
|
||||
r0 &= 0xefff;
|
||||
r0 &= 0xdfff;
|
||||
r2 = 0x4000;
|
||||
r0 &= 0x3fff;
|
||||
r0 |= r2;
|
||||
sprite->unk0 = r0;
|
||||
|
||||
r2 = 0x3F0;
|
||||
r1 = sprite->unk4;
|
||||
r0 = 0xFC00;
|
||||
r0 &= r1;
|
||||
r0 |= r2;
|
||||
r0 &= 0xf3ff;
|
||||
r2 = 0xF;
|
||||
r4 = 0xF000;
|
||||
r0 &= 0xfff;
|
||||
r0 |= r4;
|
||||
|
||||
sprite->unk4 = r0;
|
||||
|
||||
sprite->unk2 = 0x70;
|
||||
|
||||
r1 = 0x680;
|
||||
r2 &= sprite->unk6;
|
||||
r2 |= r1;
|
||||
sprite->unk6 = r2;
|
||||
|
||||
gUnknown_203B364->unk1B0 = r5;
|
||||
ResetSprites(0);
|
||||
}
|
||||
|
||||
void sub_80388C4(void) {
|
||||
if ((gUnknown_203B364->unk1B0 & 8) != 0) {
|
||||
AddSprite(&gUnknown_203B364->unk1A8, 0x100, 0, 0);
|
||||
}
|
||||
gUnknown_203B364->unk1B0++;
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@ extern u8 *gUnknown_80F8968[];
|
|||
extern u8 *gUnknown_80F8988[];
|
||||
extern u8 gUnknown_8106FA4[];
|
||||
|
||||
u8 sub_8070828(struct Entity *pokemon, bool8 displayMessage)
|
||||
s32 sub_8070828(struct Entity *pokemon, bool8 displayMessage)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
|
|
|
|||
|
|
@ -154,11 +154,11 @@ void sub_8006438(const struct UnkTextStruct2 *a0, u8 a1, u8 a2, u32 *a3)
|
|||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
gUnknown_202AFC0[i] = a0[i];
|
||||
if (a0[i].unk0c)
|
||||
if (a0[i].unkC)
|
||||
{
|
||||
sub_8006554(gUnknown_2027370, (void *)VRAM, gUnknown_20274B4, gUnknown_202B038, gUnknown_80B8804[i], a0 + i, a1, r9, a3, 0);
|
||||
sub_80089AC(a0 + i, a3);
|
||||
r9 += a0[i].unk0c * a0[i].unk10;
|
||||
r9 += a0[i].unkC * a0[i].unk10;
|
||||
}
|
||||
}
|
||||
#ifdef NONMATCHING
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "text.h"
|
||||
#include "team_inventory.h"
|
||||
#include "code_800D090.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4;
|
||||
|
||||
|
|
@ -55,7 +56,7 @@ extern char gAvailablePokemonNames[0x50];
|
|||
const struct UnkTextStruct2 gUnknown_80DED48 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x00, 0x04, 0x00,
|
||||
0x06, 0x05,
|
||||
0x05, 0x00,
|
||||
|
|
@ -65,7 +66,7 @@ const struct UnkTextStruct2 gUnknown_80DED48 =
|
|||
const struct UnkTextStruct2 gUnknown_80DED60 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x16, 0x00, 0x07, 0x00,
|
||||
0x06, 0x05,
|
||||
0x05, 0x00,
|
||||
|
|
@ -86,7 +87,7 @@ const struct MenuItem gUnknown_80DED78[3] =
|
|||
const struct UnkTextStruct2 gUnknown_80DEDA0 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -155,7 +156,6 @@ const struct MenuItem gUnknown_80DEEE4[4] =
|
|||
|
||||
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
|
||||
extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, struct OpenedFile **r5, u32);
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *r0, u32);
|
||||
extern void sub_8030810(u32);
|
||||
extern u32 sub_8031DCC(void);
|
||||
|
|
@ -167,7 +167,6 @@ extern u32 sub_8030768(u32);
|
|||
extern s8 sub_80307EC(void);
|
||||
extern void sub_8030D40(u8, u32);
|
||||
extern u32 sub_8030DA0();
|
||||
extern void sub_8013114(u32 *r0, s32 *r1);
|
||||
extern void HandleThankYouMailPelipperMainMenu();
|
||||
extern void sub_802AAC8();
|
||||
extern void ReturnToThankYouMailMainMenu();
|
||||
|
|
@ -218,7 +217,7 @@ extern void sub_802F2C0();
|
|||
extern u32 sub_80144A4(s32 *r0);
|
||||
extern void SetThankYouMailMenuState(u32);
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void sub_80922B4(u8 *, u8 *, u32);
|
||||
extern void sub_802F204(struct unkStruct_802F204 *, u32);
|
||||
extern void sub_80151C0(u32, u8 *);
|
||||
|
|
@ -239,7 +238,7 @@ extern u32 GetDungeonTeamRankPts(struct DungeonLocation *, u32);
|
|||
extern void sub_8031D70(u8, u32);
|
||||
|
||||
extern void sub_803092C(void);
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern void sub_801CBB8(void);
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
|
|
@ -620,8 +619,8 @@ void sub_802A174(void)
|
|||
|
||||
menuAction = -1;
|
||||
sub_8030768(0);
|
||||
if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
|
||||
sub_8013114(&gUnknown_203B2C4->unk30C, &menuAction);
|
||||
if (sub_8012FD8(&gUnknown_203B2C4->unk21C[3]) == 0) {
|
||||
sub_8013114(&gUnknown_203B2C4->unk21C[3], &menuAction);
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
|
|
@ -659,7 +658,7 @@ void sub_802A230(void)
|
|||
sub_800641C(gUnknown_203B2C4->unk3BC, 1, 1);
|
||||
sub_803092C();
|
||||
if (gUnknown_203B2C4->fallbackState == 0x2b) {
|
||||
sub_8035CF4(&gUnknown_203B2C4->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C, 3, 1);
|
||||
SetThankYouMailMenuState(0x11);
|
||||
}
|
||||
else {
|
||||
|
|
@ -711,7 +710,7 @@ void sub_802A33C(void)
|
|||
sub_800641C(gUnknown_203B2C4->unk3BC,1,1);
|
||||
sub_801CB5C(1);
|
||||
if (gUnknown_203B2C4->fallbackState == 0x2b) {
|
||||
sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,1);
|
||||
SetThankYouMailMenuState(0x14);
|
||||
}
|
||||
else {
|
||||
|
|
@ -730,8 +729,8 @@ void sub_802A39C(void)
|
|||
|
||||
menuAction = -1;
|
||||
sub_801CA08(0);
|
||||
if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
|
||||
sub_8013114(&gUnknown_203B2C4->unk30C, &menuAction);
|
||||
if (sub_8012FD8(&gUnknown_203B2C4->unk21C[3]) == 0) {
|
||||
sub_8013114(&gUnknown_203B2C4->unk21C[3], &menuAction);
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
|
|
@ -1299,9 +1298,9 @@ void UpdateThankYouMailText(void)
|
|||
break;
|
||||
case 0x11:
|
||||
sub_8006518(gUnknown_203B2C4->unk35C);
|
||||
SetMenuItems(&gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0);
|
||||
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0);
|
||||
sub_803092C();
|
||||
sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,1);
|
||||
break;
|
||||
case 0x13:
|
||||
if (sub_801D008() != 0)
|
||||
|
|
@ -1316,9 +1315,9 @@ void UpdateThankYouMailText(void)
|
|||
break;
|
||||
case 0x14:
|
||||
sub_8006518(gUnknown_203B2C4->unk35C);
|
||||
SetMenuItems(&gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0);
|
||||
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,1);
|
||||
break;
|
||||
case THANK_YOU_MAIL_COMMS_FINISHED:
|
||||
gUnknown_203B2C4->linkError = COMMS_GOOD;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "memory.h"
|
||||
#include "save.h"
|
||||
#include "menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct TradeItemsMenu *gTradeItemsMenu;
|
||||
|
||||
|
|
@ -29,7 +30,7 @@ const struct MenuItem gUnknown_80E60D4[3] = {
|
|||
const struct UnkTextStruct2 gUnknown_80E60EC =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x00, 0x04, 0x00,
|
||||
0x06, 0x05,
|
||||
0x05, 0x00,
|
||||
|
|
@ -46,7 +47,7 @@ const struct MenuItem gUnknown_80E6104[4] = {
|
|||
static const struct UnkTextStruct2 unused =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x16, 0x00, 0x09, 0x00,
|
||||
0x05, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -63,7 +64,7 @@ const struct MenuItem gUnknown_80E6154[3] = {
|
|||
const struct UnkTextStruct2 gUnknown_80E6174 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x00, 0x0D, 0x00,
|
||||
0x06, 0x04,
|
||||
0x04, 0x00,
|
||||
|
|
@ -87,14 +88,12 @@ extern u32 sub_801CA08(u32);
|
|||
extern void sub_801CBB8();
|
||||
extern u8 sub_801CB24();
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_801CCD8();
|
||||
extern u32 sub_801B410();
|
||||
extern void sub_801B450();
|
||||
extern void sub_801CB5C(u32);
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
extern void sub_80141B4(const u8 *, u32, u32, u32);
|
||||
|
||||
|
|
@ -109,7 +108,7 @@ extern void sub_801C8C4(u32, u32, s32 *, u32);
|
|||
extern s32 sub_8037B28(u32);
|
||||
extern void sub_8011830(void);
|
||||
extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, void *r5, u32);
|
||||
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
|
||||
extern void nullsub_23(u32);
|
||||
extern void xxx_call_start_bg_music(void);
|
||||
extern s32 sub_80381F4(u32, void *, void *);
|
||||
|
|
@ -312,8 +311,8 @@ void sub_8036674(void)
|
|||
|
||||
menuAction = -1;
|
||||
sub_801CA08(0);
|
||||
if (sub_8012FD8(&gTradeItemsMenu->unk134) == '\0') {
|
||||
sub_8013114(&gTradeItemsMenu->unk134, &menuAction);
|
||||
if (sub_8012FD8(&gTradeItemsMenu->unk44[3]) == '\0') {
|
||||
sub_8013114(&gTradeItemsMenu->unk44[3], &menuAction);
|
||||
}
|
||||
switch(menuAction){
|
||||
case 3: // confirm
|
||||
|
|
@ -348,7 +347,7 @@ void sub_8036728(void)
|
|||
sub_800641C(gTradeItemsMenu->unk1E4, 1, 1);
|
||||
sub_801CB5C(1);
|
||||
if (gTradeItemsMenu->fallbackState == 0x13) {
|
||||
sub_8035CF4(&gTradeItemsMenu->unk44, 3, 1);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 1);
|
||||
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU);
|
||||
}
|
||||
else {
|
||||
|
|
@ -362,20 +361,20 @@ void sub_8036728(void)
|
|||
|
||||
void sub_8036788(void)
|
||||
{
|
||||
sub_8012FD8(&gTradeItemsMenu->unk134);
|
||||
sub_8012FD8(&gTradeItemsMenu->unk44[3]);
|
||||
sub_801CA08(0);
|
||||
switch(sub_8013BBC(&gTradeItemsMenu->quantityToSend)){
|
||||
case 1:
|
||||
// When you change the #
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(&gTradeItemsMenu->unk44, 3, 0);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 0);
|
||||
sub_8036F30();
|
||||
break;
|
||||
case 2:
|
||||
// If you back out of the # selection
|
||||
sub_8035CC0(gTradeItemsMenu->unk184, 2);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(&gTradeItemsMenu->unk44, 3, 1);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 1);
|
||||
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU);
|
||||
break;
|
||||
case 3:
|
||||
|
|
@ -634,10 +633,10 @@ void sub_8036B28(void)
|
|||
break;
|
||||
case TRADE_ITEMS_SEND_ITEM_POPUP_MENU:
|
||||
sub_8006518(gTradeItemsMenu->unk184);
|
||||
SetMenuItems(&gTradeItemsMenu->unk44,gTradeItemsMenu->unk184,3,&gUnknown_80E60EC,
|
||||
SetMenuItems(gTradeItemsMenu->unk44,gTradeItemsMenu->unk184,3,&gUnknown_80E60EC,
|
||||
gUnknown_80E6104,1,0,0);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(&gTradeItemsMenu->unk44,3,1);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44,3,1);
|
||||
break;
|
||||
case TRADE_ITEMS_SEND_ITEM_NUMBER:
|
||||
sub_8036F74();
|
||||
|
|
@ -793,7 +792,7 @@ void sub_8036F74(void)
|
|||
sub_8006518(gTradeItemsMenu->unk184);
|
||||
sub_8036ECC(2, gTeamInventory_203B460->teamStorage[gTradeItemsMenu->itemToSend.id]);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(&gTradeItemsMenu->unk44, 3, 0);
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 0);
|
||||
sub_8036F30();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,18 +2,26 @@
|
|||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
#include "memory.h"
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkSprite
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
u32 unk4; // state
|
||||
u32 unk8;
|
||||
u8 fill8[0x148 - 0xC];
|
||||
struct MenuStruct unk8[4];
|
||||
struct UnkTextStruct2 unk148[4];
|
||||
u32 unk1A8;
|
||||
u32 unk1AC;
|
||||
struct unkSprite unk1A8;
|
||||
u32 unk1B0; // sprite count?
|
||||
};
|
||||
|
||||
|
|
@ -22,11 +30,10 @@ extern struct UnkTextStruct2 gUnknown_80E6E7C;
|
|||
extern struct UnkTextStruct2 gUnknown_80E6E94;
|
||||
extern struct MenuItem gUnknown_80E6EAC[];
|
||||
|
||||
extern void AddSprite(struct unkSprite *, u32, u32, u32);
|
||||
extern void sub_8038440();
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, struct UnkTextStruct2 *, struct MenuItem *, u32, u32, u32);
|
||||
extern u8 sub_80130A8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, struct UnkTextStruct2 *, struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_80384D0();
|
||||
|
||||
void sub_80382E4(s32 param_1)
|
||||
|
|
@ -46,10 +53,10 @@ void sub_80382E4(s32 param_1)
|
|||
// Caution!
|
||||
// The storage space is empty!
|
||||
// Please check again.
|
||||
SetMenuItems(&gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC,
|
||||
SetMenuItems(gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC,
|
||||
0,4,0);
|
||||
}
|
||||
sub_8035CF4(&gUnknown_203B360->unk8,0,1);
|
||||
sub_8035CF4(gUnknown_203B360->unk8,0,1);
|
||||
gUnknown_203B360->currMenu = param_1;
|
||||
gUnknown_203B360->unk4 = 0;
|
||||
sub_8038440();
|
||||
|
|
@ -74,8 +81,8 @@ u32 sub_80383D4(void)
|
|||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
|
||||
if (gUnknown_203B360->unk4 == 0){
|
||||
if (sub_80130A8(&gUnknown_203B360->unk8) == '\0') {
|
||||
sub_8013114(&gUnknown_203B360->unk8, &menuAction);
|
||||
if (sub_80130A8(&gUnknown_203B360->unk8[0]) == '\0') {
|
||||
sub_8013114(&gUnknown_203B360->unk8[0], &menuAction);
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
|
|
@ -94,3 +101,65 @@ u32 sub_80383D4(void)
|
|||
|
||||
return nextMenu;
|
||||
}
|
||||
|
||||
void sub_8038440(void)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u32 r0;
|
||||
u32 r2;
|
||||
#else
|
||||
register u32 r0 asm("r0");
|
||||
register u32 r2 asm("r2");
|
||||
#endif
|
||||
u32 r1;
|
||||
u32 r4;
|
||||
u32 r5;
|
||||
struct unkSprite *sprite;
|
||||
|
||||
r5 = 0;
|
||||
sprite = &gUnknown_203B360->unk1A8;
|
||||
|
||||
r1 = sprite->unk0;
|
||||
r0 = 0xfeff;
|
||||
r0 &= r1;
|
||||
r0 &= 0xfdff;
|
||||
r0 &= 0xf3ff;
|
||||
r0 &= 0xefff;
|
||||
r0 &= 0xdfff;
|
||||
r2 = 0x4000;
|
||||
r0 &= 0x3fff;
|
||||
r0 |= r2;
|
||||
sprite->unk0 = r0;
|
||||
|
||||
r2 = 0x3F0;
|
||||
r1 = sprite->unk4;
|
||||
r0 = 0xFC00;
|
||||
r0 &= r1;
|
||||
r0 |= r2;
|
||||
r0 &= 0xf3ff;
|
||||
r2 = 0xF;
|
||||
r4 = 0xF000;
|
||||
r0 &= 0xfff;
|
||||
r0 |= r4;
|
||||
|
||||
sprite->unk4 = r0;
|
||||
|
||||
sprite->unk2 = 0x70;
|
||||
|
||||
r1 = 0x700;
|
||||
r2 &= sprite->unk6;
|
||||
r2 |= r1;
|
||||
sprite->unk6 = r2;
|
||||
|
||||
gUnknown_203B360->unk1B0 = r5;
|
||||
}
|
||||
|
||||
|
||||
void sub_80384D0(void)
|
||||
{
|
||||
if ((gUnknown_203B360->unk1B0 & 8) != 0) {
|
||||
AddSprite(&gUnknown_203B360->unk1A8, 0x100, 0, 0);
|
||||
}
|
||||
gUnknown_203B360->unk1B0++;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,28 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "text.h"
|
||||
|
||||
struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
u8 fill8[0x148 - 0xC];
|
||||
struct UnkTextStruct2 unk148[4];
|
||||
u16 unk1A8;
|
||||
u16 unk1AA;
|
||||
u16 unk1AC;
|
||||
u16 unk1AE;
|
||||
u32 unk1B0; // Sprite count?
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B360 *gUnknown_203B360;
|
||||
extern void AddSprite(u16 *, u32, u32, u32);
|
||||
|
||||
void sub_80384D0(void)
|
||||
{
|
||||
if ((gUnknown_203B360->unk1B0 & 8) != 0) {
|
||||
AddSprite(&gUnknown_203B360->unk1A8, 0x100, 0, 0);
|
||||
}
|
||||
gUnknown_203B360->unk1B0++;
|
||||
}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "main_menu.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
|
||||
struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
u8 fill8[0x148 - 0xC];
|
||||
struct UnkTextStruct2 unk148[4];
|
||||
u16 unk1A8;
|
||||
u16 unk1AA;
|
||||
u16 unk1AC;
|
||||
u16 unk1AE;
|
||||
u32 unk1B0; // Sprite count?
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B360 *gUnknown_203B364;
|
||||
extern struct UnkTextStruct2 gUnknown_80E6F20;
|
||||
extern struct UnkTextStruct2 gUnknown_80E6F38;
|
||||
extern struct MenuItem gUnknown_80E7090[];
|
||||
extern struct MenuItem gUnknown_80E6F50[];
|
||||
|
||||
extern void sub_8038440();
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, struct UnkTextStruct2 *, struct MenuItem *, u32, u32, u32);
|
||||
extern u8 sub_80130A8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern void sub_80384D0();
|
||||
extern void sub_8038830();
|
||||
|
||||
void CreateSaveMenu(s32 currMenu)
|
||||
{
|
||||
s32 iVar4;
|
||||
|
||||
if (gUnknown_203B364 == NULL) {
|
||||
gUnknown_203B364 = MemoryAlloc(sizeof(struct unkStruct_203B360),8);
|
||||
MemoryFill8((u8 *)gUnknown_203B364,0,sizeof(struct unkStruct_203B360));
|
||||
}
|
||||
for(iVar4 = 0; iVar4 < 4; iVar4++){
|
||||
gUnknown_203B364->unk148[iVar4] = gUnknown_80E6F20;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B364->unk148,1,1);
|
||||
|
||||
if (currMenu == MENU_DELETE_SAVE) {
|
||||
// Beware, Deleting your Adventure
|
||||
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gUnknown_80E7090,
|
||||
0,6,0);
|
||||
}
|
||||
else {
|
||||
// Saving your Adventure
|
||||
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gUnknown_80E6F50,
|
||||
0,6,0);
|
||||
}
|
||||
sub_8035CF4(&gUnknown_203B364->unk8,0,1);
|
||||
gUnknown_203B364->unk4 = 0;
|
||||
gUnknown_203B364->currMenu = currMenu;
|
||||
sub_8038830();
|
||||
}
|
||||
|
||||
void CleanSaveMenu(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
if (gUnknown_203B364 != NULL) {
|
||||
MemoryFree(gUnknown_203B364);
|
||||
gUnknown_203B364 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -11,6 +11,7 @@
|
|||
#include "text.h"
|
||||
#include "team_inventory.h"
|
||||
#include "rescue_password_menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
|
||||
|
||||
|
|
@ -36,10 +37,9 @@ extern void sub_803084C();
|
|||
extern u32 sub_8030768(u32);
|
||||
extern s8 sub_80307EC();
|
||||
extern void sub_8030D40(u8, u32);
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8030810(u32);
|
||||
extern void sub_8035CC0(struct UnkTextStruct2 *r0, u32);
|
||||
extern void sub_8035CF4(u32 *r0, u32, u32);
|
||||
extern void sub_8035CF4(struct MenuStruct *r0, u32, u32);
|
||||
extern u32 sub_8030DA0(void);
|
||||
extern void sub_8030DE4(void);
|
||||
extern void sub_803092C(void);
|
||||
|
|
@ -50,7 +50,6 @@ extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32
|
|||
extern void sub_8095274(u32);
|
||||
extern void sub_80155F0();
|
||||
extern void sub_80951BC(struct unkStruct_203B480 *r0);
|
||||
extern void sub_8013114(u32 *r0, s32 *r1);
|
||||
extern void sub_8023C60();
|
||||
extern u32 sub_8023A94(u32);
|
||||
extern void sub_8024458(s16, u32);
|
||||
|
|
@ -86,7 +85,7 @@ extern u32 sub_8023CE8(void);
|
|||
extern u32 sub_8030894(void);
|
||||
extern void sub_8030F58(u32);
|
||||
extern void sub_8023DA4(void);
|
||||
extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
|
||||
extern void sub_8029B34(void);
|
||||
extern void sub_8029AD8(void);
|
||||
extern void sub_8029AF4(void);
|
||||
|
|
@ -203,7 +202,7 @@ ALIGNED(4) const u8 SendWOPokemon[] = _("Send w/o Pokémon");
|
|||
const struct UnkTextStruct2 gUnknown_80DDACC =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x16, 0x00, 0x07, 0x00,
|
||||
0x06, 0x04,
|
||||
0x04, 0x00,
|
||||
|
|
@ -213,7 +212,7 @@ const struct UnkTextStruct2 gUnknown_80DDACC =
|
|||
const struct UnkTextStruct2 gUnknown_80DDAE4 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x16, 0x00, 0x06, 0x00,
|
||||
0x06, 0x04,
|
||||
0x04, 0x00,
|
||||
|
|
@ -536,9 +535,9 @@ void sub_8028348(void)
|
|||
break;
|
||||
case 0x34:
|
||||
sub_8006518(gUnknown_203B2C0->unk35C);
|
||||
SetMenuItems(&gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0);
|
||||
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0);
|
||||
sub_8023DA4();
|
||||
sub_8035CF4(&gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
break;
|
||||
case 0x31:
|
||||
sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
|
||||
|
|
@ -698,9 +697,9 @@ void sub_8028348(void)
|
|||
case 0x20:
|
||||
case 0x2B:
|
||||
sub_8006518(gUnknown_203B2C0->unk35C);
|
||||
SetMenuItems(&gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0);
|
||||
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0);
|
||||
sub_803092C();
|
||||
sub_8035CF4(&gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
break;
|
||||
case 0xA:
|
||||
gUnknown_203B2C0->unk540 = sub_8095350();
|
||||
|
|
@ -1233,9 +1232,9 @@ void sub_80290F0(void)
|
|||
s32 menuAction;
|
||||
menuAction = -1;
|
||||
sub_8030768(0);
|
||||
if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0)
|
||||
if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0)
|
||||
{
|
||||
sub_8013114(&(gUnknown_203B2C0->unk30C), &menuAction);
|
||||
sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction);
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
|
|
@ -1274,7 +1273,7 @@ void sub_80291AC(void)
|
|||
sub_803092C();
|
||||
if(gUnknown_203B2C0->fallbackState == 0x3D)
|
||||
{
|
||||
sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8028B04(0x20);
|
||||
}
|
||||
else
|
||||
|
|
@ -1582,9 +1581,9 @@ void sub_8029684(void)
|
|||
s32 menuAction;
|
||||
menuAction = -1;
|
||||
sub_8030768(0);
|
||||
if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0)
|
||||
if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0)
|
||||
{
|
||||
sub_8013114(&(gUnknown_203B2C0->unk30C), &menuAction);
|
||||
sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction);
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
|
|
@ -1621,7 +1620,7 @@ void sub_8029740(void)
|
|||
sub_803092C();
|
||||
if(gUnknown_203B2C0->fallbackState == 0x3D)
|
||||
{
|
||||
sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8028B04(0x2B);
|
||||
}
|
||||
else
|
||||
|
|
@ -1682,9 +1681,9 @@ void sub_8029884(void)
|
|||
s32 menuAction;
|
||||
menuAction = -1;
|
||||
sub_8023A94(0);
|
||||
if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0)
|
||||
if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0)
|
||||
{
|
||||
sub_8013114(&(gUnknown_203B2C0->unk30C), &menuAction);
|
||||
sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction);
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
|
|
@ -1730,7 +1729,7 @@ void sub_8029944(void)
|
|||
sub_8023B7C(1);
|
||||
if(gUnknown_203B2C0->fallbackState == 0x3D)
|
||||
{
|
||||
sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1);
|
||||
sub_8028B04(0x34);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "wonder_mail.h"
|
||||
#include "code_800D090.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B2C8
|
||||
{
|
||||
|
|
@ -155,7 +156,6 @@ extern void sub_80073B8(u32);
|
|||
extern void sub_802BC7C(void);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32);
|
||||
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
|
||||
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
|
||||
extern void sub_803B6B0(u32, u32, u32, u32);
|
||||
extern s32 sub_8013800(u32 *, s32);
|
||||
|
|
@ -166,7 +166,6 @@ extern void sub_801317C(u32 *);
|
|||
extern u8 HasNoMailinMailbox(void);
|
||||
extern void sub_802BF30(void);
|
||||
extern void CreateMailMenu(void);
|
||||
extern void sub_8012D34(struct UnkTextStruct2 *, u32);
|
||||
extern s32 CountEmptyMailSlots(void);
|
||||
extern void sub_8013848(u32 *, s32, u32, u32);
|
||||
|
||||
|
|
@ -199,7 +198,7 @@ ALIGNED(4) const char wonder_mail_2_fill[] = "pksdir0";
|
|||
const struct UnkTextStruct2 gUnknown_80DFBD0 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -211,7 +210,7 @@ const u8 gUnknown_80DFBE8[] = { 0x01, 0x00, 0x0C, 0x00 };
|
|||
const struct UnkTextStruct2 gUnknown_80DFBEC =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x18, 0x0E,
|
||||
0x0E, 0x00,
|
||||
|
|
@ -224,7 +223,7 @@ ALIGNED(4) static const char wonder_mail_2_fill1[] = "pksdir0";
|
|||
const struct UnkTextStruct2 gUnknown_80DFC18 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -236,7 +235,7 @@ const u8 gUnkData_80DFC30[] = { 0x01, 0x00, 0x16, 0x00 };
|
|||
const struct UnkTextStruct2 gUnknown_80DFC34 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x1A, 0x10,
|
||||
0x10, 0x00,
|
||||
|
|
@ -250,7 +249,7 @@ ALIGNED(4) static const char wonder_mail_2_fill2[] = "pksdir0";
|
|||
const struct UnkTextStruct2 gUnknown_80DFC5C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -260,7 +259,7 @@ const struct UnkTextStruct2 gUnknown_80DFC5C =
|
|||
const struct UnkTextStruct2 gUnknown_80DFC74 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x18, 0x0E,
|
||||
0x0E, 0x00,
|
||||
|
|
@ -273,7 +272,7 @@ ALIGNED(4) static const char wonder_mail_2_fill3[] = "pksdir0";
|
|||
const struct UnkTextStruct2 gUnknown_80DFC9C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -283,7 +282,7 @@ const struct UnkTextStruct2 gUnknown_80DFC9C =
|
|||
const struct UnkTextStruct2 gUnknown_80DFCB4 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x18, 0x0E,
|
||||
0x0E, 0x00,
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "code_802C39C.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B2E8
|
||||
{
|
||||
|
|
@ -37,8 +38,8 @@ struct unkStruct_203B2F0
|
|||
u32 unk10;
|
||||
u8 fill14[0x68 - 0x14];
|
||||
u32 unk68;
|
||||
u8 fill6C[0xBC - 0x6C];
|
||||
u8 unkBC[0x10C - 0xBC];
|
||||
struct MenuStruct unk6C;
|
||||
struct MenuStruct unkBC;
|
||||
struct MenuItem unk10C[8];
|
||||
struct MenuItem unk14C[8];
|
||||
u8 fill18C[0x19C - 0x18C];
|
||||
|
|
@ -54,7 +55,7 @@ u16 gUnknown_203B2EC;
|
|||
const struct UnkTextStruct2 gUnknown_80DFCE4 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -64,7 +65,7 @@ const struct UnkTextStruct2 gUnknown_80DFCE4 =
|
|||
const struct UnkTextStruct2 gUnknown_80DFCFC =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x18, 0x0E,
|
||||
0x0E, 0x00,
|
||||
|
|
@ -77,7 +78,7 @@ static const u8 wonder_mail_fill[] = "pksdir0";
|
|||
const struct UnkTextStruct2 gUnknown_80DFD28 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -87,7 +88,7 @@ const struct UnkTextStruct2 gUnknown_80DFD28 =
|
|||
const struct UnkTextStruct2 gUnknown_80DFD40 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x04,
|
||||
0x15, 0x00, 0x06, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -97,7 +98,7 @@ const struct UnkTextStruct2 gUnknown_80DFD40 =
|
|||
const struct UnkTextStruct2 gUnknown_80DFD58 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x04,
|
||||
0x15, 0x00, 0x0f, 0x00,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -111,7 +112,7 @@ static const u8 wonder_mail_fill0[] = "pksdir0";
|
|||
const struct UnkTextStruct2 gUnknown_80DFD8C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -121,7 +122,7 @@ const struct UnkTextStruct2 gUnknown_80DFD8C =
|
|||
const struct UnkTextStruct2 gUnknown_80DFDA4 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x18, 0x0e,
|
||||
0x0e, 0x00,
|
||||
|
|
@ -131,7 +132,6 @@ const struct UnkTextStruct2 gUnknown_80DFDA4 =
|
|||
const u8 gUnknown_80DFDBC[] = "RESCUE EVENT";
|
||||
static const u8 wonder_mail_fill1[] = "pksdir0";
|
||||
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_802CAA4(void);
|
||||
extern u8 IsJobSlotEmpty(u8);
|
||||
extern void sub_8008C54(u32);
|
||||
|
|
@ -142,7 +142,6 @@ 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, const u8 *, u32, u32);
|
||||
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
|
||||
extern void CreateRescueTitle(void *);
|
||||
|
||||
extern void sub_8013984(u32 *);
|
||||
|
|
@ -154,7 +153,6 @@ 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 IsPelipperBoardSlotEmpty(u8);
|
||||
extern void sub_802C910(u32);
|
||||
extern void sub_802CC00(void);
|
||||
|
|
@ -163,9 +161,7 @@ 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);
|
||||
|
|
@ -499,13 +495,13 @@ void sub_802C9D8(void)
|
|||
break;
|
||||
case 2:
|
||||
sub_802C750();
|
||||
sub_8012D60(gUnknown_203B2F0->fill6C, gUnknown_203B2F0->unk10C, 0, 0, gUnknown_203B2F0->unk68, 2);
|
||||
sub_8012D60(&gUnknown_203B2F0->unk6C, 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);
|
||||
sub_8012EA4(&gUnknown_203B2F0->unk6C, 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);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "constants/mailbox.h"
|
||||
#include "code_800D090.h"
|
||||
#include "input.h"
|
||||
|
|
@ -7,12 +8,12 @@
|
|||
#include "pokemon_mail.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "code_802C39C.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
bool8 IsMailSlotEmpty(u8);
|
||||
extern void sub_8013984(void *);
|
||||
extern void sub_8013848(u32 *, s32, u32, u32);
|
||||
extern s32 sub_802C474(void);
|
||||
extern void sub_8012D34(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_802C328(void);
|
||||
extern void sub_802C39C(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
|
|
@ -32,7 +33,6 @@ extern u8 gBulletinBoardText[];
|
|||
extern bool8 IsMailinJobSlot(struct WonderMail *);
|
||||
extern void CreateRescueTitle(void *);
|
||||
extern void xxx_call_draw_string(s32, s32, u8 *, s32, s32);
|
||||
extern void sub_8012BC4(s32, s32, s32, s32 ,s32 ,s32);
|
||||
|
||||
|
||||
struct unkStruct_203B2D8
|
||||
|
|
@ -196,13 +196,13 @@ u32 sub_802C1E4(u8 param_1)
|
|||
else {
|
||||
switch(GetKeyPress(&gUnknown_203B2E0->unk8))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 4:
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -8,11 +8,12 @@
|
|||
#include "wonder_mail.h"
|
||||
#include "wonder_mail_3.h"
|
||||
#include "code_802C39C.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80DFDD4 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -23,7 +24,7 @@ const struct UnkTextStruct2 gUnknown_80DFDD4 =
|
|||
const struct UnkTextStruct2 gUnknown_80DFDEC =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x03, 0x00, 0x03, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -33,7 +34,7 @@ const struct UnkTextStruct2 gUnknown_80DFDEC =
|
|||
const struct UnkTextStruct2 gUnknown_80DFE04 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x00, 0x06, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -42,7 +43,7 @@ const struct UnkTextStruct2 gUnknown_80DFE04 =
|
|||
const struct UnkTextStruct2 gUnknown_80DFE1C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x00, 0x0f, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -53,7 +54,7 @@ const struct UnkTextStruct2 gUnknown_80DFE1C =
|
|||
const struct UnkTextStruct2 gUnknown_80DFE34 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x00, 0x0f, 0x00,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -104,7 +105,6 @@ ALIGNED(4) const u8 gUnknown_80E014C[] = "New Mail";
|
|||
ALIGNED(4) const u8 gUnknown_80E0158[] = "Old Mail";
|
||||
static const u8 wonder_mail_3_fill[] = "pksdir0";
|
||||
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_802D63C(void);
|
||||
extern void sub_802D5A4(void);
|
||||
|
||||
|
|
@ -131,7 +131,6 @@ extern u8 *sub_8096DD8(void);
|
|||
extern u8 sub_8096C08(u8 *);
|
||||
extern void sub_802C750(void);
|
||||
extern void sub_802D1A0(u32);
|
||||
extern void sub_8012EA4(u8 *, u32);
|
||||
extern struct WonderMail* GetJobSlotInfo(u8);
|
||||
extern void sub_803B35C(void *, u32*);
|
||||
extern void sub_802DE84(u32 *);
|
||||
|
|
@ -143,13 +142,11 @@ extern void sub_802D690(void);
|
|||
extern void sub_8096C80(void);
|
||||
extern void sub_8096D24(void);
|
||||
extern void sub_80141B4(const u8 *, u32, u32, u32);
|
||||
extern void sub_8012D60(u8 *, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern u8 *sub_8096DE8(void);
|
||||
extern void sub_8096A78(struct unkSubStruct_203B2F8 *);
|
||||
extern void sub_8014248(const char *text, u32, u32, struct MenuItem *r0, u32, u32, u32, u32, u32);
|
||||
struct unkStruct_803B344 *sub_803B344(u8);
|
||||
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
|
||||
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
|
|
@ -272,13 +269,13 @@ void sub_802D1B8(void)
|
|||
sub_802D5A4();
|
||||
gUnknown_203B2F8->unk1A8[2] = gUnknown_80DFE04;
|
||||
sub_8012CAC(&gUnknown_203B2F8->unk1A8[2], gUnknown_203B2F8->unk118);
|
||||
gUnknown_203B2F8->unk1A8[2].unk0c = 6;
|
||||
gUnknown_203B2F8->unk1A8[2].unkC = 6;
|
||||
break;
|
||||
case 0xE:
|
||||
sub_802D63C();
|
||||
gUnknown_203B2F8->unk1A8[3] = gUnknown_80DFE1C;
|
||||
sub_8012CAC(&gUnknown_203B2F8->unk1A8[3], gUnknown_203B2F8->unk158);
|
||||
gUnknown_203B2F8->unk1A8[3].unk0c = 6;
|
||||
gUnknown_203B2F8->unk1A8[3].unkC = 6;
|
||||
break;
|
||||
default:
|
||||
for(iVar2 = 0; iVar2 < 4; iVar2++)
|
||||
|
|
@ -391,13 +388,13 @@ void sub_802D2A8(void)
|
|||
break;
|
||||
case 0xd:
|
||||
sub_802C750();
|
||||
sub_8012D60(gUnknown_203B2F8->unk78,gUnknown_203B2F8->unk118,0,gUnknown_203B2F8->unk198,
|
||||
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);
|
||||
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->jobSlotIndex),&gUnknown_203B2F8->unk14);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
|
|
@ -8,6 +9,7 @@
|
|||
#include "rescue_team_info.h"
|
||||
#include "friend_area.h"
|
||||
#include "item.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_803B344
|
||||
{
|
||||
|
|
@ -33,8 +35,7 @@ struct unkStruct_203B30C
|
|||
u8 fill4D[0x58 - 0x4D];
|
||||
u8 *unk58;
|
||||
u32 unk5C;
|
||||
u32 unk60;
|
||||
u8 fill64[0xB0 - 0x64];
|
||||
struct MenuStruct unk60;
|
||||
struct MenuItem unkB0[8];
|
||||
struct UnkTextStruct2 unkF0[4];
|
||||
};
|
||||
|
|
@ -100,7 +101,6 @@ extern struct unkStruct_203B314 *gUnknown_203B314;
|
|||
extern u8 sub_802FCF0(u32);
|
||||
extern void sub_802F9C0(void);
|
||||
extern void sub_802FA50(void);
|
||||
extern void sub_8012D08(struct UnkTextStruct2 *, u32);
|
||||
extern void sub_8013818(u32 *, u32, u32, u32);
|
||||
extern u32 sub_802FBF4(void);
|
||||
extern void sub_8013878(u32 *, s32);
|
||||
|
|
@ -118,18 +118,14 @@ extern void sub_801B72C(void);
|
|||
extern u32 sub_801B6AC(void);
|
||||
extern void sub_802F108(void);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_803B35C(struct WonderMail*, u32 *);
|
||||
extern void sub_802DE84(u32 *);
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern void sub_802CDD4(u32);
|
||||
extern void sub_802CED8(u32);
|
||||
extern void sub_802CFD0(void);
|
||||
extern u8 sub_802CEBC(void);
|
||||
extern u32 sub_802CE5C(u32);
|
||||
extern void sub_802CF14(void);
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_802DEE0(void);
|
||||
extern void sub_802DF24(void);
|
||||
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
|
||||
|
|
@ -150,7 +146,7 @@ void HandleMissionReward(void);
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E03C4 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -158,7 +154,7 @@ const struct UnkTextStruct2 gUnknown_80E03C4 = {
|
|||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E03DC = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x03, 0x00, 0x03, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -166,7 +162,7 @@ const struct UnkTextStruct2 gUnknown_80E03DC = {
|
|||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E03F4 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x00, 0x06, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -177,7 +173,7 @@ 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,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -238,7 +234,7 @@ static const u8 wonder_mail_fill2[] = "pksdir0";
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E06FC = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -247,7 +243,7 @@ const struct UnkTextStruct2 gUnknown_80E06FC = {
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E0714 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x0E, 0x0E,
|
||||
0x0E, 0x00,
|
||||
|
|
@ -255,7 +251,7 @@ const struct UnkTextStruct2 gUnknown_80E0714 = {
|
|||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E072C = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x10, 0x10,
|
||||
0x10, 0x00,
|
||||
|
|
@ -798,10 +794,10 @@ u32 sub_802F8A0(u8 r0)
|
|||
{
|
||||
switch(GetKeyPress(&gUnknown_203B314->unkBC))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "code_8094F88.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "code_802C39C.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B320
|
||||
{
|
||||
|
|
@ -33,7 +34,7 @@ extern struct unkStruct_203B480 *gUnknown_203B480;
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E083C = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -42,7 +43,7 @@ const struct UnkTextStruct2 gUnknown_80E083C = {
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E0854 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x18, 0x11,
|
||||
0x11, 0x00,
|
||||
|
|
@ -96,7 +97,6 @@ extern void sub_8013984(u32 *);
|
|||
extern void AddMenuCursorSprite(u32 *);
|
||||
extern s32 sub_8013800(void *, u32);
|
||||
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
|
||||
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ extern struct unkStruct_203B480 *gUnknown_203B480;
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E0900 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -35,7 +35,7 @@ const u8 DATA_80E0918[] = {0x01, 0x00, 0x12, 0x00};
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E091C = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x1A, 0x10,
|
||||
0x10, 0x00,
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "pokemon.h"
|
||||
#include "menu.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern bool8 HasNoWonderMailType(u32);
|
||||
|
||||
|
|
@ -14,10 +15,8 @@ struct unkStruct_203B328
|
|||
// size: 0x11C
|
||||
u32 state;
|
||||
u8 mailIndex;
|
||||
u32 unk8;
|
||||
u8 fillC[0x58 - 0xC];
|
||||
u32 unk58;
|
||||
u8 fill5C[0xA8 - 0x5C];
|
||||
struct MenuStruct unk8;
|
||||
struct MenuStruct unk58;
|
||||
struct UnkTextStruct2 unkA8[4];
|
||||
/* 0x108 */ struct OpenedFile *faceFile;
|
||||
/* 0x10C */ u8 *faceData;
|
||||
|
|
@ -47,7 +46,7 @@ const struct MenuItem gUnknown_80E0968[] =
|
|||
|
||||
const struct UnkTextStruct2 gUnknown_80E0990 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -55,7 +54,7 @@ const struct UnkTextStruct2 gUnknown_80E0990 = {
|
|||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E09A8 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x13, 0x00, 0x0B, 0x00,
|
||||
0x08, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -63,7 +62,7 @@ const struct UnkTextStruct2 gUnknown_80E09A8 = {
|
|||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E09C0 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x11, 0x00, 0x0F, 0x00,
|
||||
0x07, 0x03,
|
||||
0x03, 0x00,
|
||||
|
|
@ -79,7 +78,6 @@ ALIGNED(4) const u8 gUnknown_80E0A0C[] = _(
|
|||
"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(const char *r0, u32, struct OpenedFile **r1, u32);
|
||||
extern void sub_8031300(void);
|
||||
|
|
@ -97,10 +95,6 @@ extern void sub_8030DE4();
|
|||
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 *, const struct MenuItem *, u32, u32, u32, u32);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern void sub_8095240(u8);
|
||||
|
||||
bool8 sub_8030F58(u32 wonderMailType)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include "wonder_mail.h"
|
||||
#include "wonder_mail_3.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B2FC
|
||||
{
|
||||
|
|
@ -54,7 +55,7 @@ extern u8 gUnknown_202DE58[];
|
|||
const struct UnkTextStruct2 gUnknown_80E016C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -84,7 +85,7 @@ static const u8 wonder_mail_802DF88_fill[] = "pksdir0";
|
|||
const struct UnkTextStruct2 gUnknown_80E0248 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -96,7 +97,7 @@ const u8 UnkData_80E0260[] = {0x01, 0x00, 0x12, 0x00};
|
|||
const struct UnkTextStruct2 gUnknown_80E0264 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x02, 0x00, 0x02, 0x00,
|
||||
0x1A, 0x10,
|
||||
0x10, 0x00,
|
||||
|
|
@ -123,8 +124,6 @@ struct WonderMail *GetJobSlotInfo(u8);
|
|||
extern void sub_8096AF8(u8 *, u32, u32);
|
||||
extern void sub_8096EEC(void);
|
||||
extern void sub_803C21C(struct WonderMail *, u32 *);
|
||||
extern u8 sub_8012FD8(u8 *);
|
||||
extern void sub_8013114(u8 *r0, s32 *r1);
|
||||
extern u32 sub_802C598(s32);
|
||||
extern void sub_802C688(void);
|
||||
extern void sub_8096C80(void);
|
||||
|
|
@ -227,7 +226,7 @@ void sub_802D940(void)
|
|||
|
||||
menuAction = 0;
|
||||
sub_802C598(0);
|
||||
if ((sub_8012FD8(gUnknown_203B2F8->unk78) == 0) && (sub_8013114(gUnknown_203B2F8->unk78,&menuAction), menuAction != 1)) {
|
||||
if ((sub_8012FD8(&gUnknown_203B2F8->unk78) == 0) && (sub_8013114(&gUnknown_203B2F8->unk78,&menuAction), menuAction != 1)) {
|
||||
gUnknown_203B2F8->unk6C = menuAction;
|
||||
}
|
||||
|
||||
|
|
@ -258,9 +257,9 @@ void sub_802D9F0(void)
|
|||
|
||||
menuAction = 0;
|
||||
sub_802C598(0);
|
||||
sub_8012FD8(gUnknown_203B2F8->unk78);
|
||||
if (sub_8012FD8(gUnknown_203B2F8->unkC8) == 0) {
|
||||
sub_8013114(gUnknown_203B2F8->unkC8,&menuAction);
|
||||
sub_8012FD8(&gUnknown_203B2F8->unk78);
|
||||
if (sub_8012FD8(&gUnknown_203B2F8->unkC8) == 0) {
|
||||
sub_8013114(&gUnknown_203B2F8->unkC8,&menuAction);
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user