mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 15:07:09 -05:00
Merge branch 'master' of https://github.com/pret/pmd-red
This commit is contained in:
commit
a7d20ddced
|
|
@ -934,7 +934,7 @@ _08000DAC:
|
|||
cmp r0, 0
|
||||
beq _08000E00
|
||||
ldrb r0, [r4]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r0, 0x2C
|
||||
ldrb r1, [r0]
|
||||
|
|
|
|||
|
|
@ -1085,102 +1085,4 @@ _0800DA70: .4byte 0x04000004
|
|||
_0800DA74: .4byte 0x05000004
|
||||
thumb_func_end sub_800D9B8
|
||||
|
||||
thumb_func_start nullsub_189
|
||||
nullsub_189:
|
||||
bx lr
|
||||
thumb_func_end nullsub_189
|
||||
|
||||
thumb_func_start nullsub_190
|
||||
nullsub_190:
|
||||
bx lr
|
||||
thumb_func_end nullsub_190
|
||||
|
||||
thumb_func_start nullsub_191
|
||||
nullsub_191:
|
||||
bx lr
|
||||
thumb_func_end nullsub_191
|
||||
|
||||
thumb_func_start nullsub_192
|
||||
nullsub_192:
|
||||
bx lr
|
||||
thumb_func_end nullsub_192
|
||||
|
||||
thumb_func_start nullsub_193
|
||||
nullsub_193:
|
||||
bx lr
|
||||
thumb_func_end nullsub_193
|
||||
|
||||
thumb_func_start nullsub_194
|
||||
nullsub_194:
|
||||
bx lr
|
||||
thumb_func_end nullsub_194
|
||||
|
||||
thumb_func_start nullsub_195
|
||||
nullsub_195:
|
||||
bx lr
|
||||
thumb_func_end nullsub_195
|
||||
|
||||
thumb_func_start sub_800DA94
|
||||
sub_800DA94:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800DA94
|
||||
|
||||
thumb_func_start sub_800DA98
|
||||
sub_800DA98:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800DA98
|
||||
|
||||
thumb_func_start sub_800DA9C
|
||||
sub_800DA9C:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800DA9C
|
||||
|
||||
thumb_func_start nullsub_196
|
||||
nullsub_196:
|
||||
bx lr
|
||||
thumb_func_end nullsub_196
|
||||
|
||||
thumb_func_start nullsub_197
|
||||
nullsub_197:
|
||||
bx lr
|
||||
thumb_func_end nullsub_197
|
||||
|
||||
thumb_func_start nullsub_198
|
||||
nullsub_198:
|
||||
bx lr
|
||||
thumb_func_end nullsub_198
|
||||
|
||||
thumb_func_start sub_800DAAC
|
||||
sub_800DAAC:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800DAAC
|
||||
|
||||
thumb_func_start sub_800DAB0
|
||||
sub_800DAB0:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800DAB0
|
||||
|
||||
thumb_func_start sub_800DAB4
|
||||
sub_800DAB4:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800DAB4
|
||||
|
||||
thumb_func_start sub_800DAB8
|
||||
sub_800DAB8:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800DAB8
|
||||
|
||||
thumb_func_start sub_800DABC
|
||||
sub_800DABC:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800DABC
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
|
|
|
|||
7288
asm/code_801EE10.s
7288
asm/code_801EE10.s
File diff suppressed because it is too large
Load Diff
6641
asm/code_801EE10_mid.s
Normal file
6641
asm/code_801EE10_mid.s
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -929,7 +929,7 @@ _0804326A:
|
|||
beq _080432F4
|
||||
mov r0, sp
|
||||
ldrb r0, [r0]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x2C
|
||||
movs r0, 0
|
||||
|
|
|
|||
|
|
@ -1,726 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80487E0
|
||||
sub_80487E0:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x4
|
||||
mov r9, r0
|
||||
mov r8, r1
|
||||
lsls r3, r2, 24
|
||||
ldr r5, [r1, 0x70]
|
||||
ldr r4, _08048858
|
||||
lsrs r3, 23
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x5C
|
||||
ldrb r0, [r0]
|
||||
lsls r1, r0, 3
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r3, r1
|
||||
adds r0, r1, r4
|
||||
movs r2, 0
|
||||
ldrsh r6, [r0, r2]
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x5D
|
||||
ldrb r2, [r0]
|
||||
lsls r0, r2, 3
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r3, r0
|
||||
adds r4, r3, r4
|
||||
movs r2, 0
|
||||
ldrsh r0, [r4, r2]
|
||||
adds r6, r0
|
||||
ldr r0, _0804885C
|
||||
adds r1, r0
|
||||
movs r4, 0
|
||||
ldrsh r2, [r1, r4]
|
||||
adds r3, r0
|
||||
movs r1, 0
|
||||
ldrsh r0, [r3, r1]
|
||||
adds r2, r0
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
mov r0, r9
|
||||
mov r1, r8
|
||||
movs r3, 0
|
||||
bl sub_8078B5C
|
||||
ldrb r0, [r5, 0x6]
|
||||
cmp r0, 0
|
||||
bne _08048906
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x40
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4A
|
||||
beq _08048852
|
||||
cmp r0, 0x47
|
||||
bne _08048860
|
||||
_08048852:
|
||||
movs r0, 0x1
|
||||
b _08048862
|
||||
.align 2, 0
|
||||
_08048858: .4byte gTypeGummiIQBoost
|
||||
_0804885C: .4byte gUnknown_810A808
|
||||
_08048860:
|
||||
movs r0, 0
|
||||
_08048862:
|
||||
cmp r0, 0
|
||||
bne _08048906
|
||||
movs r2, 0xC
|
||||
ldrsh r7, [r5, r2]
|
||||
ldrh r0, [r5, 0xC]
|
||||
adds r0, r6
|
||||
strh r0, [r5, 0xC]
|
||||
adds r2, r7, r6
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bgt _0804887C
|
||||
movs r0, 0x1
|
||||
strh r0, [r5, 0xC]
|
||||
_0804887C:
|
||||
movs r4, 0xC
|
||||
ldrsh r0, [r5, r4]
|
||||
ldr r1, _080488A0
|
||||
cmp r0, r1
|
||||
ble _08048888
|
||||
strh r1, [r5, 0xC]
|
||||
_08048888:
|
||||
movs r1, 0xC
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r7, r0
|
||||
bne _080488A8
|
||||
ldr r0, _080488A4
|
||||
ldr r2, [r0]
|
||||
mov r0, r9
|
||||
mov r1, r8
|
||||
bl sub_80522F4
|
||||
b _08048906
|
||||
.align 2, 0
|
||||
_080488A0: .4byte 0x000003e7
|
||||
_080488A4: .4byte gUnknown_80FD644
|
||||
_080488A8:
|
||||
subs r0, r2, r7
|
||||
movs r2, 0
|
||||
cmp r0, 0x8
|
||||
bgt _080488BE
|
||||
movs r2, 0x1
|
||||
cmp r0, 0x4
|
||||
bgt _080488BE
|
||||
movs r2, 0x3
|
||||
cmp r0, 0x2
|
||||
ble _080488BE
|
||||
movs r2, 0x2
|
||||
_080488BE:
|
||||
movs r4, 0xC
|
||||
ldrsh r0, [r5, r4]
|
||||
subs r0, r7
|
||||
movs r4, 0
|
||||
cmp r0, 0x8
|
||||
bgt _080488D8
|
||||
movs r4, 0x1
|
||||
cmp r0, 0x4
|
||||
bgt _080488D8
|
||||
movs r4, 0x3
|
||||
cmp r0, 0x2
|
||||
ble _080488D8
|
||||
movs r4, 0x2
|
||||
_080488D8:
|
||||
ldr r1, _08048914
|
||||
lsls r0, r2, 2
|
||||
adds r0, r1
|
||||
ldr r2, [r0]
|
||||
mov r0, r9
|
||||
mov r1, r8
|
||||
bl sub_80522F4
|
||||
ldr r1, _08048918
|
||||
lsls r0, r4, 2
|
||||
adds r0, r1
|
||||
ldr r2, [r0]
|
||||
mov r0, r9
|
||||
mov r1, r8
|
||||
bl sub_80522F4
|
||||
mov r0, r8
|
||||
bl LoadIQSkills
|
||||
adds r0, r5, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_806A7E8
|
||||
_08048906:
|
||||
add sp, 0x4
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08048914: .4byte gUnknown_80FD648
|
||||
_08048918: .4byte gUnknown_80FD6E8
|
||||
thumb_func_end sub_80487E0
|
||||
|
||||
thumb_func_start sub_804891C
|
||||
sub_804891C:
|
||||
push {lr}
|
||||
movs r2, 0x3
|
||||
bl RaiseAtkStatTarget
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_804891C
|
||||
|
||||
thumb_func_start sub_8048928
|
||||
sub_8048928:
|
||||
push {lr}
|
||||
movs r2, 0x3
|
||||
bl RaiseSpAtkStatTarget
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8048928
|
||||
|
||||
thumb_func_start sub_8048934
|
||||
sub_8048934:
|
||||
push {lr}
|
||||
movs r2, 0x3
|
||||
bl RaiseDefStatTarget
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8048934
|
||||
|
||||
thumb_func_start sub_8048940
|
||||
sub_8048940:
|
||||
push {lr}
|
||||
movs r2, 0x3
|
||||
bl RaiseSpDefStatTarget
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8048940
|
||||
|
||||
thumb_func_start nullsub_94
|
||||
nullsub_94:
|
||||
bx lr
|
||||
thumb_func_end nullsub_94
|
||||
|
||||
thumb_func_start sub_8048950
|
||||
sub_8048950:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
mov r10, r0
|
||||
mov r8, r1
|
||||
ldrb r0, [r1, 0x2]
|
||||
bl GetItemMoveID
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
mov r9, r0
|
||||
mov r0, r8
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08048988
|
||||
ldr r0, _08048984
|
||||
_08048978:
|
||||
ldr r1, [r0]
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
bl PrintFieldMessage
|
||||
b _08048A58
|
||||
.align 2, 0
|
||||
_08048984: .4byte gUnknown_80FE3E8
|
||||
_08048988:
|
||||
mov r1, r8
|
||||
ldrb r0, [r1, 0x2]
|
||||
bl IsHMItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080489A0
|
||||
ldr r0, _0804899C
|
||||
b _08048978
|
||||
.align 2, 0
|
||||
_0804899C: .4byte gPtrCantUseInDungeonMessage
|
||||
_080489A0:
|
||||
movs r7, 0
|
||||
_080489A2:
|
||||
ldr r0, _080489FC
|
||||
ldr r0, [r0]
|
||||
lsls r1, r7, 2
|
||||
ldr r2, _08048A00
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048A12
|
||||
ldr r6, [r4, 0x70]
|
||||
movs r0, 0x2
|
||||
ldrsh r1, [r6, r0]
|
||||
mov r0, r9
|
||||
bl CanMonLearnMove
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080489DC
|
||||
movs r5, 0
|
||||
_080489DC:
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xA4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _080489E8
|
||||
movs r5, 0
|
||||
_080489E8:
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x40
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4A
|
||||
beq _080489F6
|
||||
cmp r0, 0x47
|
||||
bne _08048A04
|
||||
_080489F6:
|
||||
movs r0, 0x1
|
||||
b _08048A06
|
||||
.align 2, 0
|
||||
_080489FC: .4byte gDungeon
|
||||
_08048A00: .4byte 0x0001357c
|
||||
_08048A04:
|
||||
movs r0, 0
|
||||
_08048A06:
|
||||
cmp r0, 0
|
||||
beq _08048A0C
|
||||
movs r5, 0
|
||||
_08048A0C:
|
||||
ldr r1, _08048A50
|
||||
adds r0, r6, r1
|
||||
strb r5, [r0]
|
||||
_08048A12:
|
||||
adds r7, 0x1
|
||||
cmp r7, 0x3
|
||||
ble _080489A2
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
bl DrawFieldGiveItemMenu
|
||||
adds r4, r0, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048A58
|
||||
mov r0, r10
|
||||
mov r1, r8
|
||||
bl sub_804245C
|
||||
adds r0, r4, 0
|
||||
mov r1, r9
|
||||
bl sub_8072938
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048A58
|
||||
ldr r2, _08048A54
|
||||
mov r0, r10
|
||||
movs r1, 0
|
||||
bl sub_8044E24
|
||||
movs r0, 0x1
|
||||
b _08048A5A
|
||||
.align 2, 0
|
||||
_08048A50: .4byte 0x00000157
|
||||
_08048A54: .4byte 0x00000141
|
||||
_08048A58:
|
||||
movs r0, 0
|
||||
_08048A5A:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8048950
|
||||
|
||||
thumb_func_start sub_8048A68
|
||||
sub_8048A68:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
mov r9, r0
|
||||
mov r8, r1
|
||||
ldrb r1, [r1]
|
||||
movs r0, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08048A90
|
||||
ldr r0, _08048A8C
|
||||
_08048A80:
|
||||
ldr r1, [r0]
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
bl PrintFieldMessage
|
||||
b _08048B8C
|
||||
.align 2, 0
|
||||
_08048A8C: .4byte gUnknown_80FE3E8
|
||||
_08048A90:
|
||||
ldr r0, _08048AA4
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08048AA8
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08048AB0
|
||||
ldr r0, _08048AAC
|
||||
b _08048A80
|
||||
.align 2, 0
|
||||
_08048AA4: .4byte gDungeon
|
||||
_08048AA8: .4byte 0x0000065c
|
||||
_08048AAC: .4byte gUnknown_80F9BD8
|
||||
_08048AB0:
|
||||
movs r7, 0
|
||||
_08048AB2:
|
||||
ldr r0, _08048B24
|
||||
ldr r0, [r0]
|
||||
lsls r1, r7, 2
|
||||
ldr r2, _08048B28
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048B4A
|
||||
ldr r5, [r4, 0x70]
|
||||
movs r6, 0x1
|
||||
ldrb r0, [r5, 0xA]
|
||||
cmp r0, 0x3
|
||||
bhi _08048AF4
|
||||
ldr r2, _08048B2C
|
||||
ldrb r1, [r5, 0xA]
|
||||
movs r0, 0x64
|
||||
muls r1, r0
|
||||
ldr r0, _08048B30
|
||||
adds r1, r0
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
movs r1, 0xA
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_806A538
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048AF6
|
||||
_08048AF4:
|
||||
movs r6, 0
|
||||
_08048AF6:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048B06
|
||||
movs r6, 0
|
||||
_08048B06:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xA4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _08048B12
|
||||
movs r6, 0
|
||||
_08048B12:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x40
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4A
|
||||
beq _08048B20
|
||||
cmp r0, 0x47
|
||||
bne _08048B34
|
||||
_08048B20:
|
||||
movs r0, 0x1
|
||||
b _08048B36
|
||||
.align 2, 0
|
||||
_08048B24: .4byte gDungeon
|
||||
_08048B28: .4byte 0x0001357c
|
||||
_08048B2C: .4byte gRecruitedPokemonRef
|
||||
_08048B30: .4byte 0x00008df8
|
||||
_08048B34:
|
||||
movs r0, 0
|
||||
_08048B36:
|
||||
cmp r0, 0
|
||||
beq _08048B3C
|
||||
movs r6, 0
|
||||
_08048B3C:
|
||||
ldrb r0, [r5, 0x7]
|
||||
cmp r0, 0
|
||||
beq _08048B44
|
||||
movs r6, 0
|
||||
_08048B44:
|
||||
ldr r2, _08048B84
|
||||
adds r0, r5, r2
|
||||
strb r6, [r0]
|
||||
_08048B4A:
|
||||
adds r7, 0x1
|
||||
cmp r7, 0x3
|
||||
ble _08048AB2
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
bl DrawFieldGiveItemMenu
|
||||
adds r4, r0, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048B8C
|
||||
mov r0, r9
|
||||
mov r1, r8
|
||||
bl sub_804245C
|
||||
ldr r0, _08048B88
|
||||
ldr r0, [r0]
|
||||
adds r0, 0xBC
|
||||
str r4, [r0]
|
||||
movs r2, 0xA1
|
||||
lsls r2, 1
|
||||
mov r0, r9
|
||||
movs r1, 0
|
||||
bl sub_8044E24
|
||||
movs r0, 0x1
|
||||
b _08048B8E
|
||||
.align 2, 0
|
||||
_08048B84: .4byte 0x00000157
|
||||
_08048B88: .4byte gDungeon
|
||||
_08048B8C:
|
||||
movs r0, 0
|
||||
_08048B8E:
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8048A68
|
||||
|
||||
thumb_func_start sub_8048B9C
|
||||
sub_8048B9C:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x20
|
||||
mov r9, r0
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
mov r2, r9
|
||||
ldr r0, [r2, 0x70]
|
||||
adds r6, r0, 0
|
||||
adds r6, 0x44
|
||||
ldrb r1, [r1]
|
||||
movs r0, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08048BD4
|
||||
ldr r0, _08048BD0
|
||||
ldr r1, [r0]
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
bl PrintFieldMessage
|
||||
movs r0, 0
|
||||
b _08048D40
|
||||
.align 2, 0
|
||||
_08048BD0: .4byte gUnknown_80FE3E8
|
||||
_08048BD4:
|
||||
movs r2, 0
|
||||
_08048BD6:
|
||||
ldr r0, _08048C28
|
||||
ldr r0, [r0]
|
||||
lsls r1, r2, 2
|
||||
ldr r3, _08048C2C
|
||||
adds r0, r3
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
str r2, [sp, 0x1C]
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
ldr r2, [sp, 0x1C]
|
||||
cmp r0, 0
|
||||
beq _08048C3E
|
||||
ldr r5, [r4, 0x70]
|
||||
movs r7, 0x1
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl CannotMove
|
||||
lsls r0, 24
|
||||
ldr r2, [sp, 0x1C]
|
||||
cmp r0, 0
|
||||
beq _08048C0A
|
||||
movs r7, 0
|
||||
_08048C0A:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xA4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _08048C16
|
||||
movs r7, 0
|
||||
_08048C16:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x40
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4A
|
||||
beq _08048C24
|
||||
cmp r0, 0x47
|
||||
bne _08048C30
|
||||
_08048C24:
|
||||
movs r0, 0x1
|
||||
b _08048C32
|
||||
.align 2, 0
|
||||
_08048C28: .4byte gDungeon
|
||||
_08048C2C: .4byte 0x0001357c
|
||||
_08048C30:
|
||||
movs r0, 0
|
||||
_08048C32:
|
||||
cmp r0, 0
|
||||
beq _08048C38
|
||||
movs r7, 0
|
||||
_08048C38:
|
||||
ldr r4, _08048C5C
|
||||
adds r0, r5, r4
|
||||
strb r7, [r0]
|
||||
_08048C3E:
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x3
|
||||
ble _08048BD6
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
bl DrawFieldGiveItemMenu
|
||||
adds r4, r0, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08048C60
|
||||
movs r0, 0
|
||||
b _08048D40
|
||||
.align 2, 0
|
||||
_08048C5C: .4byte 0x00000157
|
||||
_08048C60:
|
||||
add r1, sp, 0x4
|
||||
adds r0, r6, 0
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
b _08048CE2
|
||||
_08048C6E:
|
||||
ldrh r0, [r6]
|
||||
cmp r0, 0x1D
|
||||
bne _08048C7C
|
||||
adds r0, r6, 0
|
||||
bl sub_80637E8
|
||||
b _08048CE2
|
||||
_08048C7C:
|
||||
cmp r0, 0x20
|
||||
bne _08048C9A
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
adds r0, r6, 0
|
||||
bl sub_8063BB4
|
||||
movs r0, 0x1
|
||||
bl sub_8044C10
|
||||
movs r5, 0x1
|
||||
mov r8, r5
|
||||
b _08048CE2
|
||||
_08048C9A:
|
||||
cmp r0, 0x21
|
||||
bne _08048CB6
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl sub_8063CF0
|
||||
movs r0, 0x1
|
||||
bl sub_8044C10
|
||||
b _08048CE2
|
||||
_08048CB6:
|
||||
cmp r0, 0x1E
|
||||
beq _08048CBE
|
||||
cmp r0, 0x33
|
||||
bne _08048CD0
|
||||
_08048CBE:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl sub_8063A70
|
||||
b _08048CE2
|
||||
_08048CD0:
|
||||
cmp r0, 0x1F
|
||||
bne _08048CE2
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
adds r0, r6, 0
|
||||
bl sub_8063B54
|
||||
_08048CE2:
|
||||
adds r0, r6, 0
|
||||
bl ClearMonsterActionFields
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_8062F90
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08048C6E
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
beq _08048D38
|
||||
ldr r0, _08048D34
|
||||
ldr r1, [r0]
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8052B8C
|
||||
cmp r0, 0x1
|
||||
bne _08048C6E
|
||||
adds r1, r6, 0
|
||||
add r0, sp, 0x4
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
mov r0, r9
|
||||
movs r1, 0
|
||||
movs r2, 0x6E
|
||||
bl sub_8044DF0
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x2C
|
||||
bl SetMonsterActionFields
|
||||
b _08048D3E
|
||||
.align 2, 0
|
||||
_08048D34: .4byte gUnknown_80FECA0
|
||||
_08048D38:
|
||||
movs r0, 0x1
|
||||
bl sub_8044C10
|
||||
_08048D3E:
|
||||
mov r0, r8
|
||||
_08048D40:
|
||||
add sp, 0x20
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8048B9C
|
||||
|
||||
.align 2, 0
|
||||
|
|
@ -5299,7 +5299,7 @@ _080551F2:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_8057948
|
||||
bl EncoreMoveAction
|
||||
b _080554BA
|
||||
_08055200:
|
||||
adds r0, r7, 0
|
||||
|
|
|
|||
|
|
@ -1,60 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_807034C
|
||||
sub_807034C:
|
||||
push {r4,lr}
|
||||
adds r4, r1, 0
|
||||
lsls r0, 16
|
||||
asrs r2, r0, 16
|
||||
ldr r0, [r4, 0x10]
|
||||
cmp r0, 0
|
||||
bne _08070398
|
||||
ldrh r1, [r4]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08070398
|
||||
adds r0, r2, 0
|
||||
bl GetCrossableTerrain
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
ldrh r0, [r4]
|
||||
movs r1, 0x3
|
||||
ands r1, r0
|
||||
cmp r2, 0x1
|
||||
beq _08070388
|
||||
cmp r2, 0x1
|
||||
bgt _08070382
|
||||
cmp r2, 0
|
||||
beq _0807038C
|
||||
b _08070390
|
||||
_08070382:
|
||||
cmp r2, 0x2
|
||||
beq _08070394
|
||||
b _08070390
|
||||
_08070388:
|
||||
cmp r1, 0x2
|
||||
beq _08070390
|
||||
_0807038C:
|
||||
cmp r1, 0x1
|
||||
bne _08070398
|
||||
_08070390:
|
||||
movs r0, 0
|
||||
b _0807039A
|
||||
_08070394:
|
||||
cmp r1, 0
|
||||
bne _08070390
|
||||
_08070398:
|
||||
movs r0, 0x1
|
||||
_0807039A:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_807034C
|
||||
|
||||
.align 2, 0
|
||||
|
|
@ -5,124 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8078968
|
||||
sub_8078968:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
ldr r5, [r4, 0x70]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08078A4A
|
||||
adds r0, r6, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
bl HasSafeguardStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08078A4A
|
||||
movs r3, 0
|
||||
ldr r0, _080789E8
|
||||
mov r8, r0
|
||||
movs r1, 0x1
|
||||
mov r12, r1
|
||||
movs r0, 0x8C
|
||||
lsls r0, 1
|
||||
adds r2, r5, r0
|
||||
movs r7, 0x10
|
||||
_080789A2:
|
||||
ldrb r1, [r2]
|
||||
mov r0, r12
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080789B4
|
||||
adds r0, r7, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080789BC
|
||||
_080789B4:
|
||||
adds r2, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x3
|
||||
ble _080789A2
|
||||
_080789BC:
|
||||
cmp r3, 0x4
|
||||
bne _080789F0
|
||||
movs r1, 0x9C
|
||||
lsls r1, 1
|
||||
adds r0, r5, r1
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080789F0
|
||||
mov r0, r8
|
||||
adds r1, r4, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
ldr r0, _080789EC
|
||||
ldr r2, [r0]
|
||||
adds r0, r6, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_80522F4
|
||||
b _08078A4A
|
||||
.align 2, 0
|
||||
_080789E8: .4byte gAvailablePokemonNames
|
||||
_080789EC: .4byte gUnknown_80FBBD4
|
||||
_080789F0:
|
||||
mov r0, r8
|
||||
adds r1, r4, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
adds r1, r5, 0
|
||||
adds r1, 0xBC
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0x6
|
||||
beq _08078A38
|
||||
movs r0, 0x6
|
||||
strb r0, [r1]
|
||||
ldr r1, _08078A30
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x1
|
||||
bl CalculateStatusTurns
|
||||
adds r0, 0x1
|
||||
adds r1, r5, 0
|
||||
adds r1, 0xBD
|
||||
strb r0, [r1]
|
||||
adds r0, r4, 0
|
||||
bl nullsub_83
|
||||
ldr r0, _08078A34
|
||||
ldr r2, [r0]
|
||||
adds r0, r6, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_80522F4
|
||||
b _08078A44
|
||||
.align 2, 0
|
||||
_08078A30: .4byte gUnknown_80F4EF4
|
||||
_08078A34: .4byte gUnknown_80FBB94
|
||||
_08078A38:
|
||||
ldr r0, _08078A54
|
||||
ldr r2, [r0]
|
||||
adds r0, r6, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_80522F4
|
||||
_08078A44:
|
||||
adds r0, r4, 0
|
||||
bl EntityUpdateStatusSprites
|
||||
_08078A4A:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08078A54: .4byte gUnknown_80FBBB8
|
||||
thumb_func_end sub_8078968
|
||||
|
||||
thumb_func_start sub_8078A58
|
||||
sub_8078A58:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -6225,377 +6225,4 @@ _08083002:
|
|||
bx r0
|
||||
thumb_func_end sub_8082FE0
|
||||
|
||||
thumb_func_start nullsub_98
|
||||
nullsub_98:
|
||||
bx lr
|
||||
thumb_func_end nullsub_98
|
||||
|
||||
thumb_func_start sub_808300C
|
||||
sub_808300C:
|
||||
push {lr}
|
||||
movs r2, 0x8
|
||||
bl sub_8082FA8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_808300C
|
||||
|
||||
thumb_func_start sub_8083018
|
||||
sub_8083018:
|
||||
push {lr}
|
||||
sub sp, 0xC
|
||||
mov r1, sp
|
||||
movs r2, 0x8
|
||||
bl sub_8082FE0
|
||||
mov r1, sp
|
||||
movs r0, 0
|
||||
strb r0, [r1, 0x8]
|
||||
add sp, 0xC
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8083018
|
||||
|
||||
thumb_func_start sub_8083030
|
||||
sub_8083030:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r2, sp
|
||||
strh r1, [r2]
|
||||
mov r1, sp
|
||||
movs r2, 0x2
|
||||
bl sub_8082FA8
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8083030
|
||||
|
||||
thumb_func_start sub_8083048
|
||||
sub_8083048:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r2, sp
|
||||
strh r1, [r2]
|
||||
mov r1, sp
|
||||
movs r2, 0x2
|
||||
bl sub_8082FA8
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8083048
|
||||
|
||||
thumb_func_start sub_8083060
|
||||
sub_8083060:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r2, sp
|
||||
strb r1, [r2]
|
||||
mov r1, sp
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8083060
|
||||
|
||||
thumb_func_start sub_8083078
|
||||
sub_8083078:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
str r1, [sp]
|
||||
mov r1, sp
|
||||
movs r2, 0x4
|
||||
bl sub_8082FA8
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8083078
|
||||
|
||||
thumb_func_start sub_808308C
|
||||
sub_808308C:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
str r1, [sp]
|
||||
mov r1, sp
|
||||
movs r2, 0x4
|
||||
bl sub_8082FA8
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_808308C
|
||||
|
||||
thumb_func_start sub_80830A0
|
||||
sub_80830A0:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
str r1, [sp]
|
||||
mov r1, sp
|
||||
movs r2, 0x4
|
||||
bl sub_8082FA8
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80830A0
|
||||
|
||||
thumb_func_start sub_80830B4
|
||||
sub_80830B4:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
adds r3, r0, 0
|
||||
lsls r1, 24
|
||||
movs r2, 0
|
||||
cmp r1, 0
|
||||
beq _080830C4
|
||||
movs r2, 0xFF
|
||||
_080830C4:
|
||||
mov r0, sp
|
||||
strb r2, [r0]
|
||||
adds r0, r3, 0
|
||||
mov r1, sp
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80830B4
|
||||
|
||||
thumb_func_start sub_80830D8
|
||||
sub_80830D8:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
adds r4, 0x2
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80830D8
|
||||
|
||||
thumb_func_start sub_80830F8
|
||||
sub_80830F8:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
adds r1, r4, 0x4
|
||||
adds r0, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x8
|
||||
adds r0, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
adds r4, 0xC
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80830F8
|
||||
|
||||
thumb_func_start sub_808312C
|
||||
sub_808312C:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
adds r4, 0x2
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FA8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_808312C
|
||||
|
||||
thumb_func_start sub_808314C
|
||||
sub_808314C:
|
||||
push {lr}
|
||||
bl sub_8082FA8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_808314C
|
||||
|
||||
thumb_func_start sub_8083158
|
||||
sub_8083158:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
movs r2, 0x2
|
||||
bl sub_8082FE0
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
add sp, 0x4
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8083158
|
||||
|
||||
thumb_func_start sub_8083170
|
||||
sub_8083170:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
movs r2, 0x2
|
||||
bl sub_8082FE0
|
||||
mov r0, sp
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
add sp, 0x4
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8083170
|
||||
|
||||
thumb_func_start sub_8083188
|
||||
sub_8083188:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
mov r0, sp
|
||||
ldrb r0, [r0]
|
||||
add sp, 0x4
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8083188
|
||||
|
||||
thumb_func_start sub_80831A0
|
||||
sub_80831A0:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
movs r2, 0x4
|
||||
bl sub_8082FE0
|
||||
ldr r0, [sp]
|
||||
add sp, 0x4
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80831A0
|
||||
|
||||
thumb_func_start sub_80831B4
|
||||
sub_80831B4:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
movs r2, 0x4
|
||||
bl sub_8082FE0
|
||||
ldr r0, [sp]
|
||||
add sp, 0x4
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80831B4
|
||||
|
||||
thumb_func_start sub_80831C8
|
||||
sub_80831C8:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
movs r2, 0x4
|
||||
bl sub_8082FE0
|
||||
ldr r0, [sp]
|
||||
add sp, 0x4
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80831C8
|
||||
|
||||
thumb_func_start sub_80831DC
|
||||
sub_80831DC:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
mov r0, sp
|
||||
ldrb r1, [r0]
|
||||
negs r0, r1
|
||||
orrs r0, r1
|
||||
lsrs r0, 31
|
||||
add sp, 0x4
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80831DC
|
||||
|
||||
thumb_func_start sub_80831F8
|
||||
sub_80831F8:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r0, 0
|
||||
strh r0, [r4]
|
||||
strh r0, [r4, 0x2]
|
||||
adds r0, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
adds r4, 0x2
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80831F8
|
||||
|
||||
thumb_func_start sub_8083220
|
||||
sub_8083220:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
str r0, [r4, 0x4]
|
||||
str r0, [r4, 0x8]
|
||||
str r0, [r4, 0xC]
|
||||
adds r0, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
adds r1, r4, 0x4
|
||||
adds r0, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x8
|
||||
adds r0, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
adds r4, 0xC
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8083220
|
||||
|
||||
thumb_func_start sub_8083260
|
||||
sub_8083260:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r0, 0
|
||||
strh r0, [r4]
|
||||
strh r0, [r4, 0x2]
|
||||
adds r0, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
adds r4, 0x2
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8082FE0
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8083260
|
||||
|
||||
.align 2, 0
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80951BC
|
||||
sub_80951BC:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl FindOpenMailSlot
|
||||
adds r2, r0, 0
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r2, r0
|
||||
beq _080951F4
|
||||
ldr r0, _080951F0
|
||||
ldr r1, [r0]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 4
|
||||
adds r1, r0
|
||||
adds r0, r4, 0
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
movs r0, 0x1
|
||||
b _080951F6
|
||||
.align 2, 0
|
||||
_080951F0: .4byte gUnknown_203B480
|
||||
_080951F4:
|
||||
movs r0, 0
|
||||
_080951F6:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80951BC
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803AEB0
|
||||
sub_803AEB0:
|
||||
push {r4-r6,lr}
|
||||
ldr r4, _0803AEFC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xD0
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r4, [r4]
|
||||
movs r3, 0
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x90
|
||||
ldr r0, _0803AF00
|
||||
str r0, [r1]
|
||||
adds r5, r4, 0
|
||||
adds r5, 0x94
|
||||
movs r0, 0x4
|
||||
str r0, [r5]
|
||||
movs r2, 0x1
|
||||
adds r1, 0x8
|
||||
ldr r0, _0803AF04
|
||||
str r0, [r1]
|
||||
adds r1, 0x4
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
movs r6, 0x2
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xA0
|
||||
str r3, [r0]
|
||||
adds r0, 0x4
|
||||
str r2, [r0]
|
||||
adds r0, 0x2C
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0803AF08
|
||||
ldr r0, [r5]
|
||||
str r0, [r4, 0xC]
|
||||
b _0803AF2C
|
||||
.align 2, 0
|
||||
_0803AEFC: .4byte gUnknown_203B3F8
|
||||
_0803AF00: .4byte gDebug_LevelText
|
||||
_0803AF04: .4byte gUnknown_80E7F2C
|
||||
_0803AF08:
|
||||
adds r3, 0x1
|
||||
cmp r3, r6
|
||||
bge _0803AF2C
|
||||
ldr r0, _0803AF34
|
||||
ldr r2, [r0]
|
||||
lsls r1, r3, 1
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xD0
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0803AF08
|
||||
lsls r0, r3, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x94
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0xC]
|
||||
_0803AF2C:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803AF34: .4byte gUnknown_203B3F8
|
||||
thumb_func_end sub_803AEB0
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -298,178 +298,4 @@ _080276A0:
|
|||
bx r0
|
||||
thumb_func_end CreateFriendActionMenu
|
||||
|
||||
thumb_func_start sub_80276A8
|
||||
sub_80276A8:
|
||||
push {r4-r7,lr}
|
||||
ldr r5, _0802775C
|
||||
ldr r0, [r5]
|
||||
movs r7, 0xB6
|
||||
lsls r7, 1
|
||||
adds r0, r7
|
||||
movs r1, 0
|
||||
movs r2, 0x14
|
||||
bl MemoryFill16
|
||||
ldr r2, [r5]
|
||||
movs r0, 0x8E
|
||||
lsls r0, 1
|
||||
adds r1, r2, r0
|
||||
ldr r0, _08027760
|
||||
str r0, [r1]
|
||||
movs r3, 0x90
|
||||
lsls r3, 1
|
||||
adds r1, r2, r3
|
||||
movs r0, 0xA
|
||||
str r0, [r1]
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0
|
||||
bne _080276E4
|
||||
ldr r0, [r5]
|
||||
adds r4, r7, 0
|
||||
adds r0, r4
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
_080276E4:
|
||||
ldr r4, [r5]
|
||||
movs r2, 0x1
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
ldr r0, _08027764
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r3, 0x94
|
||||
lsls r3, 1
|
||||
adds r1, r4, r3
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
movs r6, 0x2
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
movs r1, 0x98
|
||||
lsls r1, 1
|
||||
adds r0, r4, r1
|
||||
str r2, [r0]
|
||||
movs r3, 0
|
||||
mov r12, r4
|
||||
movs r4, 0x90
|
||||
lsls r4, 1
|
||||
add r4, r12
|
||||
mov r0, r12
|
||||
adds r2, r0, r7
|
||||
_08027720:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _08027730
|
||||
ldr r1, [r4]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x74]
|
||||
cmp r1, r0
|
||||
beq _0802778E
|
||||
_08027730:
|
||||
adds r4, 0x8
|
||||
adds r2, 0x2
|
||||
adds r3, 0x1
|
||||
cmp r3, r6
|
||||
blt _08027720
|
||||
movs r3, 0
|
||||
cmp r3, r6
|
||||
bge _0802778E
|
||||
ldr r1, [r5]
|
||||
movs r2, 0xB6
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08027768
|
||||
movs r3, 0x90
|
||||
lsls r3, 1
|
||||
adds r0, r1, r3
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x74]
|
||||
b _0802778E
|
||||
.align 2, 0
|
||||
_0802775C: .4byte gUnknown_203B2BC
|
||||
_08027760: .4byte gFriendActionGive
|
||||
_08027764: .4byte gUnknown_80D4970
|
||||
_08027768:
|
||||
adds r3, 0x1
|
||||
cmp r3, r6
|
||||
bge _0802778E
|
||||
ldr r2, [r5]
|
||||
lsls r0, r3, 1
|
||||
movs r4, 0xB6
|
||||
lsls r4, 1
|
||||
adds r1, r2, r4
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08027768
|
||||
lsls r0, r3, 3
|
||||
movs r7, 0x90
|
||||
lsls r7, 1
|
||||
adds r1, r2, r7
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x74]
|
||||
_0802778E:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80276A8
|
||||
|
||||
thumb_func_start sub_8027794
|
||||
sub_8027794:
|
||||
push {r4,lr}
|
||||
ldr r4, _080277F0
|
||||
ldr r0, [r4]
|
||||
movs r1, 0xB6
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
movs r2, 0x14
|
||||
bl MemoryFill16
|
||||
ldr r4, [r4]
|
||||
movs r3, 0
|
||||
movs r0, 0x8E
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
ldr r0, _080277F4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r0, 0x90
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
movs r0, 0x2
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
ldr r0, _080277F8
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r1, 0x96
|
||||
lsls r1, 1
|
||||
adds r0, r4, r1
|
||||
str r3, [r0]
|
||||
adds r1, 0x4
|
||||
adds r0, r4, r1
|
||||
str r2, [r0]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080277F0: .4byte gUnknown_203B2BC
|
||||
_080277F4: .4byte gUnknown_80D4920
|
||||
_080277F8: .4byte gUnknown_80D4928
|
||||
thumb_func_end sub_8027794
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -848,7 +848,7 @@ _0803304A:
|
|||
lsls r3, 2
|
||||
adds r0, r3
|
||||
ldrb r0, [r0]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r1, [r6]
|
||||
adds r1, 0x48
|
||||
ldm r0!, {r2,r4,r5}
|
||||
|
|
@ -907,7 +907,7 @@ _080330B4:
|
|||
lsls r3, 2
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r1, [r6]
|
||||
adds r1, 0xA8
|
||||
ldm r0!, {r2-r4}
|
||||
|
|
@ -1202,7 +1202,7 @@ _0803331A:
|
|||
lsls r2, 2
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r1, [r6]
|
||||
adds r1, r4
|
||||
ldm r0!, {r2,r3,r5}
|
||||
|
|
@ -1420,7 +1420,7 @@ _0803349C:
|
|||
bl GetMailIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r0, 0x22
|
||||
ldrb r1, [r0]
|
||||
|
|
|
|||
|
|
@ -1128,7 +1128,7 @@ _0809E524:
|
|||
bl sub_8001658
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x6
|
||||
bl sub_80023E4
|
||||
|
|
|
|||
|
|
@ -1,274 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80175FC
|
||||
sub_80175FC:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _0801767C
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x4C
|
||||
movs r1, 0
|
||||
movs r2, 0xA
|
||||
bl MemoryFill16
|
||||
ldr r3, [r4]
|
||||
movs r2, 0
|
||||
ldr r0, _08017680
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x24]
|
||||
movs r0, 0x2
|
||||
str r0, [r3, 0x28]
|
||||
movs r1, 0x1
|
||||
ldr r0, _08017684
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x2C]
|
||||
movs r0, 0x3
|
||||
str r0, [r3, 0x30]
|
||||
ldr r0, _08017688
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x34]
|
||||
movs r0, 0x6
|
||||
str r0, [r3, 0x38]
|
||||
ldr r0, _0801768C
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x3C]
|
||||
str r1, [r3, 0x40]
|
||||
movs r6, 0x4
|
||||
str r2, [r3, 0x44]
|
||||
str r1, [r3, 0x48]
|
||||
movs r5, 0
|
||||
mov r12, r3
|
||||
adds r3, 0x28
|
||||
mov r2, r12
|
||||
adds r2, 0x4C
|
||||
_08017648:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _08017658
|
||||
ldr r1, [r3]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x18]
|
||||
cmp r1, r0
|
||||
beq _080176B2
|
||||
_08017658:
|
||||
adds r3, 0x8
|
||||
adds r2, 0x2
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
blt _08017648
|
||||
movs r5, 0
|
||||
cmp r5, r6
|
||||
bge _080176B2
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x4C
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08017690
|
||||
ldr r0, [r1, 0x28]
|
||||
str r0, [r1, 0x18]
|
||||
b _080176B2
|
||||
.align 2, 0
|
||||
_0801767C: .4byte gUnknown_203B208
|
||||
_08017680: .4byte gUnknown_80D4958
|
||||
_08017684: .4byte gUnknown_80D4964
|
||||
_08017688: .4byte gUnknown_80D4970
|
||||
_0801768C: .4byte gUnknown_80D4934
|
||||
_08017690:
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
bge _080176B2
|
||||
ldr r2, [r4]
|
||||
lsls r0, r5, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x4C
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08017690
|
||||
lsls r0, r5, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x28
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x18]
|
||||
_080176B2:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80175FC
|
||||
|
||||
thumb_func_start sub_80176B8
|
||||
sub_80176B8:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _08017724
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x4C
|
||||
movs r1, 0
|
||||
movs r2, 0xA
|
||||
bl MemoryFill16
|
||||
ldr r3, [r4]
|
||||
movs r2, 0
|
||||
ldr r0, _08017728
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x24]
|
||||
movs r0, 0x2
|
||||
str r0, [r3, 0x28]
|
||||
movs r1, 0x1
|
||||
ldr r0, _0801772C
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x2C]
|
||||
movs r0, 0x6
|
||||
str r0, [r3, 0x30]
|
||||
movs r6, 0x2
|
||||
str r2, [r3, 0x34]
|
||||
str r1, [r3, 0x38]
|
||||
movs r5, 0
|
||||
mov r12, r3
|
||||
adds r3, 0x28
|
||||
mov r2, r12
|
||||
adds r2, 0x4C
|
||||
_080176F2:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _08017702
|
||||
ldr r1, [r3]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x1C]
|
||||
cmp r1, r0
|
||||
beq _08017752
|
||||
_08017702:
|
||||
adds r3, 0x8
|
||||
adds r2, 0x2
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
blt _080176F2
|
||||
movs r5, 0
|
||||
cmp r5, r6
|
||||
bge _08017752
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x4C
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08017730
|
||||
ldr r0, [r1, 0x28]
|
||||
str r0, [r1, 0x1C]
|
||||
b _08017752
|
||||
.align 2, 0
|
||||
_08017724: .4byte gUnknown_203B208
|
||||
_08017728: .4byte gUnknown_80D4958
|
||||
_0801772C: .4byte gUnknown_80D4970
|
||||
_08017730:
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
bge _08017752
|
||||
ldr r2, [r4]
|
||||
lsls r0, r5, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x4C
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08017730
|
||||
lsls r0, r5, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x28
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x1C]
|
||||
_08017752:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80176B8
|
||||
|
||||
thumb_func_start sub_8017758
|
||||
sub_8017758:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _080177C4
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x4C
|
||||
movs r1, 0
|
||||
movs r2, 0xA
|
||||
bl MemoryFill16
|
||||
ldr r3, [r4]
|
||||
movs r2, 0
|
||||
ldr r0, _080177C8
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x24]
|
||||
movs r0, 0x3
|
||||
str r0, [r3, 0x28]
|
||||
movs r1, 0x1
|
||||
ldr r0, _080177CC
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x2C]
|
||||
movs r0, 0x6
|
||||
str r0, [r3, 0x30]
|
||||
movs r6, 0x2
|
||||
str r2, [r3, 0x34]
|
||||
str r1, [r3, 0x38]
|
||||
movs r5, 0
|
||||
mov r12, r3
|
||||
adds r3, 0x28
|
||||
mov r2, r12
|
||||
adds r2, 0x4C
|
||||
_08017792:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _080177A2
|
||||
ldr r1, [r3]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x20]
|
||||
cmp r1, r0
|
||||
beq _080177F2
|
||||
_080177A2:
|
||||
adds r3, 0x8
|
||||
adds r2, 0x2
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
blt _08017792
|
||||
movs r5, 0
|
||||
cmp r5, r6
|
||||
bge _080177F2
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x4C
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080177D0
|
||||
ldr r0, [r1, 0x28]
|
||||
str r0, [r1, 0x20]
|
||||
b _080177F2
|
||||
.align 2, 0
|
||||
_080177C4: .4byte gUnknown_203B208
|
||||
_080177C8: .4byte gUnknown_80D4964
|
||||
_080177CC: .4byte gUnknown_80D4970
|
||||
_080177D0:
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
bge _080177F2
|
||||
ldr r2, [r4]
|
||||
lsls r0, r5, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x4C
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _080177D0
|
||||
lsls r0, r5, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x28
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x20]
|
||||
_080177F2:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8017758
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -1,359 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80182E4
|
||||
sub_80182E4:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
ldr r4, _080183DC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x60
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r1, [r4]
|
||||
ldr r0, _080183E0
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x20]
|
||||
movs r0, 0x2
|
||||
str r0, [r1, 0x24]
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0
|
||||
beq _0801831C
|
||||
movs r0, 0
|
||||
bl sub_801CF50
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08018324
|
||||
_0801831C:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x60
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
_08018324:
|
||||
movs r1, 0x1
|
||||
add r8, r1
|
||||
ldr r4, _080183DC
|
||||
ldr r2, [r4]
|
||||
mov r0, r8
|
||||
lsls r3, r0, 3
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x20
|
||||
adds r0, r3
|
||||
ldr r1, _080183E4
|
||||
ldr r1, [r1]
|
||||
str r1, [r0]
|
||||
adds r2, 0x24
|
||||
adds r2, r3
|
||||
movs r0, 0x3
|
||||
str r0, [r2]
|
||||
movs r0, 0x1
|
||||
bl sub_801CF14
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08018358
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0x13
|
||||
ble _08018366
|
||||
_08018358:
|
||||
ldr r0, [r4]
|
||||
mov r2, r8
|
||||
lsls r1, r2, 1
|
||||
adds r0, 0x60
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
_08018366:
|
||||
movs r0, 0x1
|
||||
add r8, r0
|
||||
ldr r4, _080183DC
|
||||
ldr r7, [r4]
|
||||
mov r2, r8
|
||||
lsls r1, r2, 3
|
||||
adds r2, r7, 0
|
||||
adds r2, 0x20
|
||||
adds r3, r2, r1
|
||||
ldr r0, _080183E8
|
||||
ldr r0, [r0]
|
||||
str r0, [r3]
|
||||
adds r6, r7, 0
|
||||
adds r6, 0x24
|
||||
adds r1, r6, r1
|
||||
movs r3, 0x1
|
||||
str r3, [r1]
|
||||
add r8, r3
|
||||
mov r1, r8
|
||||
lsls r0, r1, 3
|
||||
adds r2, r0
|
||||
movs r1, 0
|
||||
str r1, [r2]
|
||||
adds r0, r6, r0
|
||||
str r3, [r0]
|
||||
movs r5, 0
|
||||
mov r12, r4
|
||||
cmp r5, r8
|
||||
bge _080183C0
|
||||
adds r4, r7, 0
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x60
|
||||
adds r3, r6, 0
|
||||
_080183A8:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _080183B6
|
||||
ldr r1, [r3]
|
||||
ldr r0, [r4, 0x14]
|
||||
cmp r1, r0
|
||||
beq _08018410
|
||||
_080183B6:
|
||||
adds r2, 0x2
|
||||
adds r3, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, r8
|
||||
blt _080183A8
|
||||
_080183C0:
|
||||
movs r5, 0
|
||||
cmp r5, r8
|
||||
bge _08018410
|
||||
mov r2, r12
|
||||
ldr r1, [r2]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x60
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080183EC
|
||||
ldr r0, [r1, 0x24]
|
||||
str r0, [r1, 0x14]
|
||||
b _08018410
|
||||
.align 2, 0
|
||||
_080183DC: .4byte gUnknown_203B20C
|
||||
_080183E0: .4byte gUnknown_80D4958
|
||||
_080183E4: .4byte gUnknown_80D4964
|
||||
_080183E8: .4byte gUnknown_80D4934
|
||||
_080183EC:
|
||||
adds r5, 0x1
|
||||
cmp r5, r8
|
||||
bge _08018410
|
||||
mov r0, r12
|
||||
ldr r2, [r0]
|
||||
lsls r0, r5, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x60
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _080183EC
|
||||
lsls r0, r5, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x24
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x14]
|
||||
_08018410:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80182E4
|
||||
|
||||
thumb_func_start sub_801841C
|
||||
sub_801841C:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _080184A0
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x60
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r1, [r4]
|
||||
ldr r0, _080184A4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x20]
|
||||
movs r0, 0x2
|
||||
str r0, [r1, 0x24]
|
||||
ldr r0, [r1, 0xC]
|
||||
bl sub_801ADA0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0801844C
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x60
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
_0801844C:
|
||||
ldr r2, [r4]
|
||||
movs r1, 0x1
|
||||
ldr r0, _080184A8
|
||||
ldr r0, [r0]
|
||||
str r0, [r2, 0x28]
|
||||
movs r0, 0x4
|
||||
str r0, [r2, 0x2C]
|
||||
movs r5, 0x2
|
||||
movs r0, 0
|
||||
str r0, [r2, 0x30]
|
||||
str r1, [r2, 0x34]
|
||||
movs r3, 0
|
||||
adds r6, r4, 0
|
||||
mov r12, r2
|
||||
mov r4, r12
|
||||
adds r4, 0x60
|
||||
adds r2, 0x24
|
||||
_0801846E:
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0801847E
|
||||
ldr r1, [r2]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x18]
|
||||
cmp r1, r0
|
||||
beq _080184CE
|
||||
_0801847E:
|
||||
adds r4, 0x2
|
||||
adds r2, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
blt _0801846E
|
||||
movs r3, 0
|
||||
cmp r3, r5
|
||||
bge _080184CE
|
||||
ldr r1, [r6]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x60
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080184AC
|
||||
ldr r0, [r1, 0x24]
|
||||
str r0, [r1, 0x18]
|
||||
b _080184CE
|
||||
.align 2, 0
|
||||
_080184A0: .4byte gUnknown_203B20C
|
||||
_080184A4: .4byte gUnknown_80D4958
|
||||
_080184A8: .4byte gUnknown_80D4970
|
||||
_080184AC:
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
bge _080184CE
|
||||
ldr r2, [r6]
|
||||
lsls r0, r3, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x60
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _080184AC
|
||||
lsls r0, r3, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x24
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x18]
|
||||
_080184CE:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_801841C
|
||||
|
||||
thumb_func_start sub_80184D4
|
||||
sub_80184D4:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _08018554
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x60
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r1, [r4]
|
||||
ldr r0, _08018558
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x20]
|
||||
movs r0, 0x3
|
||||
str r0, [r1, 0x24]
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0x13
|
||||
ble _08018500
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x60
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
_08018500:
|
||||
ldr r2, [r4]
|
||||
movs r1, 0x1
|
||||
ldr r0, _0801855C
|
||||
ldr r0, [r0]
|
||||
str r0, [r2, 0x28]
|
||||
movs r0, 0x4
|
||||
str r0, [r2, 0x2C]
|
||||
movs r5, 0x2
|
||||
movs r0, 0
|
||||
str r0, [r2, 0x30]
|
||||
str r1, [r2, 0x34]
|
||||
movs r3, 0
|
||||
adds r6, r4, 0
|
||||
mov r12, r2
|
||||
mov r4, r12
|
||||
adds r4, 0x60
|
||||
adds r2, 0x24
|
||||
_08018522:
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _08018532
|
||||
ldr r1, [r2]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x1C]
|
||||
cmp r1, r0
|
||||
beq _08018582
|
||||
_08018532:
|
||||
adds r4, 0x2
|
||||
adds r2, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
blt _08018522
|
||||
movs r3, 0
|
||||
cmp r3, r5
|
||||
bge _08018582
|
||||
ldr r1, [r6]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x60
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08018560
|
||||
ldr r0, [r1, 0x24]
|
||||
str r0, [r1, 0x1C]
|
||||
b _08018582
|
||||
.align 2, 0
|
||||
_08018554: .4byte gUnknown_203B20C
|
||||
_08018558: .4byte gUnknown_80D4964
|
||||
_0801855C: .4byte gUnknown_80D4970
|
||||
_08018560:
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
bge _08018582
|
||||
ldr r2, [r6]
|
||||
lsls r0, r3, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x60
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08018560
|
||||
lsls r0, r3, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x24
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x1C]
|
||||
_08018582:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80184D4
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -755,275 +755,4 @@ _080194F0: .4byte gKecleonShopDialogue
|
|||
_080194F4: .4byte 0x0000010d
|
||||
thumb_func_end UpdateKecleonStoreDialogue
|
||||
|
||||
thumb_func_start sub_80194F8
|
||||
sub_80194F8:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _08019580
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x74
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r3, [r4]
|
||||
movs r2, 0
|
||||
ldr r0, _08019584
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x34]
|
||||
movs r0, 0x2
|
||||
str r0, [r3, 0x38]
|
||||
movs r1, 0x1
|
||||
ldr r0, _08019588
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x3C]
|
||||
movs r0, 0x3
|
||||
str r0, [r3, 0x40]
|
||||
ldr r0, _0801958C
|
||||
str r0, [r3, 0x44]
|
||||
movs r0, 0x4
|
||||
str r0, [r3, 0x48]
|
||||
ldr r0, _08019590
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x4C]
|
||||
movs r0, 0x7
|
||||
str r0, [r3, 0x50]
|
||||
ldr r0, _08019594
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x54]
|
||||
str r1, [r3, 0x58]
|
||||
movs r6, 0x5
|
||||
str r2, [r3, 0x5C]
|
||||
str r1, [r3, 0x60]
|
||||
movs r5, 0
|
||||
mov r12, r3
|
||||
adds r3, 0x38
|
||||
mov r2, r12
|
||||
adds r2, 0x74
|
||||
_0801954C:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _0801955C
|
||||
ldr r1, [r3]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x28]
|
||||
cmp r1, r0
|
||||
beq _080195BA
|
||||
_0801955C:
|
||||
adds r3, 0x8
|
||||
adds r2, 0x2
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
blt _0801954C
|
||||
movs r5, 0
|
||||
cmp r5, r6
|
||||
bge _080195BA
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x74
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08019598
|
||||
ldr r0, [r1, 0x38]
|
||||
str r0, [r1, 0x28]
|
||||
b _080195BA
|
||||
.align 2, 0
|
||||
_08019580: .4byte gUnknown_203B210
|
||||
_08019584: .4byte gUnknown_80D4978
|
||||
_08019588: .4byte gUnknown_80D4984
|
||||
_0801958C: .4byte gUnknown_80DB8A0
|
||||
_08019590: .4byte gUnknown_80D4970
|
||||
_08019594: .4byte gUnknown_80D4934
|
||||
_08019598:
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
bge _080195BA
|
||||
ldr r2, [r4]
|
||||
lsls r0, r5, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x74
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08019598
|
||||
lsls r0, r5, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x38
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x28]
|
||||
_080195BA:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80194F8
|
||||
|
||||
thumb_func_start sub_80195C0
|
||||
sub_80195C0:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _0801962C
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x74
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r3, [r4]
|
||||
movs r2, 0
|
||||
ldr r0, _08019630
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x34]
|
||||
movs r0, 0x2
|
||||
str r0, [r3, 0x38]
|
||||
movs r1, 0x1
|
||||
ldr r0, _08019634
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x3C]
|
||||
movs r0, 0x7
|
||||
str r0, [r3, 0x40]
|
||||
movs r6, 0x2
|
||||
str r2, [r3, 0x44]
|
||||
str r1, [r3, 0x48]
|
||||
movs r5, 0
|
||||
mov r12, r3
|
||||
adds r3, 0x38
|
||||
mov r2, r12
|
||||
adds r2, 0x74
|
||||
_080195FA:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _0801960A
|
||||
ldr r1, [r3]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x30]
|
||||
cmp r1, r0
|
||||
beq _0801965A
|
||||
_0801960A:
|
||||
adds r3, 0x8
|
||||
adds r2, 0x2
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
blt _080195FA
|
||||
movs r5, 0
|
||||
cmp r5, r6
|
||||
bge _0801965A
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x74
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08019638
|
||||
ldr r0, [r1, 0x38]
|
||||
str r0, [r1, 0x30]
|
||||
b _0801965A
|
||||
.align 2, 0
|
||||
_0801962C: .4byte gUnknown_203B210
|
||||
_08019630: .4byte gUnknown_80D4978
|
||||
_08019634: .4byte gUnknown_80D4970
|
||||
_08019638:
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
bge _0801965A
|
||||
ldr r2, [r4]
|
||||
lsls r0, r5, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x74
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08019638
|
||||
lsls r0, r5, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x38
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x30]
|
||||
_0801965A:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80195C0
|
||||
|
||||
thumb_func_start sub_8019660
|
||||
sub_8019660:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _080196CC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x74
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r3, [r4]
|
||||
movs r2, 0
|
||||
ldr r0, _080196D0
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x34]
|
||||
movs r0, 0x3
|
||||
str r0, [r3, 0x38]
|
||||
movs r1, 0x1
|
||||
ldr r0, _080196D4
|
||||
ldr r0, [r0]
|
||||
str r0, [r3, 0x3C]
|
||||
movs r0, 0x7
|
||||
str r0, [r3, 0x40]
|
||||
movs r6, 0x2
|
||||
str r2, [r3, 0x44]
|
||||
str r1, [r3, 0x48]
|
||||
movs r5, 0
|
||||
mov r12, r3
|
||||
adds r3, 0x38
|
||||
mov r2, r12
|
||||
adds r2, 0x74
|
||||
_0801969A:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _080196AA
|
||||
ldr r1, [r3]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x2C]
|
||||
cmp r1, r0
|
||||
beq _080196FA
|
||||
_080196AA:
|
||||
adds r3, 0x8
|
||||
adds r2, 0x2
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
blt _0801969A
|
||||
movs r5, 0
|
||||
cmp r5, r6
|
||||
bge _080196FA
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x74
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080196D8
|
||||
ldr r0, [r1, 0x38]
|
||||
str r0, [r1, 0x2C]
|
||||
b _080196FA
|
||||
.align 2, 0
|
||||
_080196CC: .4byte gUnknown_203B210
|
||||
_080196D0: .4byte gUnknown_80D4984
|
||||
_080196D4: .4byte gUnknown_80D4970
|
||||
_080196D8:
|
||||
adds r5, 0x1
|
||||
cmp r5, r6
|
||||
bge _080196FA
|
||||
ldr r2, [r4]
|
||||
lsls r0, r5, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x74
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _080196D8
|
||||
lsls r0, r5, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x38
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x2C]
|
||||
_080196FA:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8019660
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
271
asm/mailbox.s
271
asm/mailbox.s
|
|
@ -1,271 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start CreateMailboxMenu
|
||||
CreateMailboxMenu:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _0802E380
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xFC
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r1, [r4]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xBC
|
||||
ldr r0, _0802E384
|
||||
str r0, [r2]
|
||||
adds r1, 0xC0
|
||||
movs r0, 0x2
|
||||
str r0, [r1]
|
||||
bl HasNoMailinMailbox
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802E2E6
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xFC
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
_0802E2E6:
|
||||
movs r5, 0x1
|
||||
ldr r1, [r4]
|
||||
movs r6, 0x1
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xC4
|
||||
ldr r0, _0802E388
|
||||
str r0, [r2]
|
||||
adds r1, 0xC8
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
bl HasNoAcceptedJobs
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802E30A
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xFE
|
||||
strh r5, [r0]
|
||||
_0802E30A:
|
||||
ldr r1, [r4]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xCC
|
||||
ldr r0, _0802E38C
|
||||
str r0, [r2]
|
||||
adds r1, 0xD0
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
bl HasNoPKMNNews
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802E32E
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x80
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
strh r6, [r0]
|
||||
_0802E32E:
|
||||
movs r5, 0x3
|
||||
ldr r2, [r4]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xD4
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
adds r0, 0x4
|
||||
str r6, [r0]
|
||||
movs r3, 0
|
||||
adds r6, r4, 0
|
||||
mov r12, r2
|
||||
mov r4, r12
|
||||
adds r4, 0xFC
|
||||
adds r2, 0xC0
|
||||
_0802E34A:
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0802E35A
|
||||
ldr r1, [r2]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x64]
|
||||
cmp r1, r0
|
||||
beq _0802E3B2
|
||||
_0802E35A:
|
||||
adds r4, 0x2
|
||||
adds r2, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
blt _0802E34A
|
||||
movs r3, 0
|
||||
cmp r3, r5
|
||||
bge _0802E3B2
|
||||
ldr r1, [r6]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xFC
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0802E390
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xC0
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x64]
|
||||
b _0802E3B2
|
||||
.align 2, 0
|
||||
_0802E380: .4byte gUnknown_203B304
|
||||
_0802E384: .4byte gMailboxCheckMail
|
||||
_0802E388: .4byte gMailboxJobList
|
||||
_0802E38C: .4byte gMailboxPKMNNews
|
||||
_0802E390:
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
bge _0802E3B2
|
||||
ldr r2, [r6]
|
||||
lsls r0, r3, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xFC
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _0802E390
|
||||
lsls r0, r3, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xC0
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x64]
|
||||
_0802E3B2:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CreateMailboxMenu
|
||||
|
||||
thumb_func_start CreateMailActionMenu
|
||||
CreateMailActionMenu:
|
||||
push {r4-r7,lr}
|
||||
movs r5, 0
|
||||
ldr r4, _0802E3F0
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x8]
|
||||
bl GetMailboxSlotInfo
|
||||
adds r7, r0, 0
|
||||
ldrb r0, [r7]
|
||||
cmp r0, 0x1
|
||||
bne _0802E3FC
|
||||
ldr r2, [r4]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xBC
|
||||
ldr r0, _0802E3F4
|
||||
str r0, [r1]
|
||||
adds r1, 0x4
|
||||
movs r0, 0x6
|
||||
str r0, [r1]
|
||||
adds r1, 0x4
|
||||
ldr r0, _0802E3F8
|
||||
str r0, [r1]
|
||||
adds r1, 0x4
|
||||
movs r0, 0x7
|
||||
str r0, [r1]
|
||||
movs r5, 0x2
|
||||
b _0802E44A
|
||||
.align 2, 0
|
||||
_0802E3F0: .4byte gUnknown_203B304
|
||||
_0802E3F4: .4byte gMailActionStore
|
||||
_0802E3F8: .4byte gMailActionRead
|
||||
_0802E3FC:
|
||||
ldr r1, [r4]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xBC
|
||||
ldr r0, _0802E494
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
adds r1, 0xC0
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
adds r0, r7, 0
|
||||
bl IsMailinJobSlot
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802E422
|
||||
bl GetNumAcceptedJobs
|
||||
cmp r0, 0x7
|
||||
ble _0802E42C
|
||||
_0802E422:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xC0
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r1, [r0]
|
||||
_0802E42C:
|
||||
adds r5, 0x1
|
||||
ldr r4, _0802E498
|
||||
ldr r2, [r4]
|
||||
lsls r3, r5, 3
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xBC
|
||||
adds r0, r3
|
||||
ldr r1, _0802E49C
|
||||
ldr r1, [r1]
|
||||
str r1, [r0]
|
||||
adds r2, 0xC0
|
||||
adds r2, r3
|
||||
movs r0, 0x8
|
||||
str r0, [r2]
|
||||
adds r5, 0x1
|
||||
_0802E44A:
|
||||
mov r12, r4
|
||||
mov r0, r12
|
||||
ldr r4, [r0]
|
||||
lsls r2, r5, 3
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xBC
|
||||
adds r0, r2
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
adds r1, r4, 0
|
||||
adds r1, 0xC0
|
||||
adds r2, r1, r2
|
||||
movs r0, 0x1
|
||||
str r0, [r2]
|
||||
movs r3, 0
|
||||
cmp r3, r5
|
||||
bge _0802E486
|
||||
movs r6, 0x1
|
||||
negs r6, r6
|
||||
adds r2, r1, 0
|
||||
_0802E472:
|
||||
ldr r1, [r2]
|
||||
cmp r1, r6
|
||||
beq _0802E47E
|
||||
ldr r0, [r4, 0x68]
|
||||
cmp r1, r0
|
||||
beq _0802E4A8
|
||||
_0802E47E:
|
||||
adds r2, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
blt _0802E472
|
||||
_0802E486:
|
||||
ldrb r0, [r7]
|
||||
cmp r0, 0x1
|
||||
bne _0802E4A0
|
||||
mov r0, r12
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x7
|
||||
b _0802E4A6
|
||||
.align 2, 0
|
||||
_0802E494: .4byte gUnknown_80D4990
|
||||
_0802E498: .4byte gUnknown_203B304
|
||||
_0802E49C: .4byte gUnknown_80D4970
|
||||
_0802E4A0:
|
||||
mov r0, r12
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x8
|
||||
_0802E4A6:
|
||||
str r0, [r1, 0x68]
|
||||
_0802E4A8:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CreateMailActionMenu
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -116,7 +116,7 @@ _080374E4:
|
|||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r3, _08037518
|
||||
ldr r1, [r3]
|
||||
movs r2, 0xE6
|
||||
|
|
@ -154,7 +154,7 @@ _08037534:
|
|||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r3, _08037568
|
||||
ldr r1, [r3]
|
||||
movs r2, 0x8B
|
||||
|
|
@ -180,7 +180,7 @@ _0803756C:
|
|||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
ldr r4, _080375CC
|
||||
ldr r1, [r4]
|
||||
movs r5, 0xA3
|
||||
|
|
@ -1363,7 +1363,7 @@ _08037ED0:
|
|||
bl GetMailIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r4, r0, 0
|
||||
adds r1, r4, 0
|
||||
adds r0, r5, 0
|
||||
|
|
@ -1434,7 +1434,7 @@ _08037F5E:
|
|||
bl GetMailIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8095228
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r1, r4, 0
|
||||
ldm r1!, {r3-r5}
|
||||
|
|
|
|||
|
|
@ -1,210 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start CreatePelipperBoardMenu
|
||||
CreatePelipperBoardMenu:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _0802EBDC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xFC
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r1, [r4]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xBC
|
||||
ldr r0, _0802EBE0
|
||||
str r0, [r2]
|
||||
adds r1, 0xC0
|
||||
movs r0, 0x2
|
||||
str r0, [r1]
|
||||
bl HasNoPelipperBoardJobs
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802EB66
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xFC
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
_0802EB66:
|
||||
movs r5, 0x1
|
||||
ldr r1, [r4]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xC4
|
||||
ldr r0, _0802EBE4
|
||||
str r0, [r2]
|
||||
adds r1, 0xC8
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
bl HasNoAcceptedJobs
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802EB88
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xFE
|
||||
strh r5, [r0]
|
||||
_0802EB88:
|
||||
movs r5, 0x2
|
||||
ldr r2, [r4]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xCC
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
adds r1, 0x4
|
||||
movs r0, 0x1
|
||||
str r0, [r1]
|
||||
movs r3, 0
|
||||
adds r6, r4, 0
|
||||
mov r12, r2
|
||||
mov r4, r12
|
||||
adds r4, 0xFC
|
||||
adds r2, 0xC0
|
||||
_0802EBA6:
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0802EBB6
|
||||
ldr r1, [r2]
|
||||
mov r7, r12
|
||||
ldr r0, [r7, 0x64]
|
||||
cmp r1, r0
|
||||
beq _0802EC0A
|
||||
_0802EBB6:
|
||||
adds r4, 0x2
|
||||
adds r2, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
blt _0802EBA6
|
||||
movs r3, 0
|
||||
cmp r3, r5
|
||||
bge _0802EC0A
|
||||
ldr r1, [r6]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xFC
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0802EBE8
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xC0
|
||||
ldr r0, [r0]
|
||||
str r0, [r1, 0x64]
|
||||
b _0802EC0A
|
||||
.align 2, 0
|
||||
_0802EBDC: .4byte gPelipperBoard
|
||||
_0802EBE0: .4byte gPelipperBoard_BulletinBoard
|
||||
_0802EBE4: .4byte gPelipperBoard_JobList
|
||||
_0802EBE8:
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
bge _0802EC0A
|
||||
ldr r2, [r6]
|
||||
lsls r0, r3, 1
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xFC
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _0802EBE8
|
||||
lsls r0, r3, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xC0
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x64]
|
||||
_0802EC0A:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CreatePelipperBoardMenu
|
||||
|
||||
thumb_func_start sub_802EC10
|
||||
sub_802EC10:
|
||||
push {r4-r7,lr}
|
||||
movs r6, 0
|
||||
ldr r4, _0802ECA8
|
||||
ldr r2, [r4]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xBC
|
||||
ldr r0, _0802ECAC
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
adds r1, 0x4
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
ldrb r0, [r2, 0x8]
|
||||
bl GetPelipperBoardSlotInfo
|
||||
bl IsMailinJobSlot
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802EC40
|
||||
bl GetNumAcceptedJobs
|
||||
cmp r0, 0x7
|
||||
ble _0802EC4A
|
||||
_0802EC40:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xC0
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r1, [r0]
|
||||
_0802EC4A:
|
||||
adds r6, 0x1
|
||||
ldr r4, _0802ECA8
|
||||
ldr r5, [r4]
|
||||
lsls r1, r6, 3
|
||||
adds r2, r5, 0
|
||||
adds r2, 0xBC
|
||||
adds r3, r2, r1
|
||||
ldr r0, _0802ECB0
|
||||
ldr r0, [r0]
|
||||
str r0, [r3]
|
||||
adds r3, r5, 0
|
||||
adds r3, 0xC0
|
||||
adds r1, r3, r1
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
adds r6, 0x1
|
||||
lsls r1, r6, 3
|
||||
adds r2, r1
|
||||
movs r0, 0
|
||||
str r0, [r2]
|
||||
adds r1, r3, r1
|
||||
movs r0, 0x1
|
||||
str r0, [r1]
|
||||
movs r2, 0
|
||||
adds r7, r4, 0
|
||||
cmp r2, r6
|
||||
bge _0802EC9C
|
||||
adds r4, r5, 0
|
||||
movs r5, 0x1
|
||||
negs r5, r5
|
||||
adds r1, r3, 0
|
||||
_0802EC88:
|
||||
ldr r3, [r1]
|
||||
cmp r3, r5
|
||||
beq _0802EC94
|
||||
ldr r0, [r4, 0x68]
|
||||
cmp r3, r0
|
||||
beq _0802ECA2
|
||||
_0802EC94:
|
||||
adds r1, 0x8
|
||||
adds r2, 0x1
|
||||
cmp r2, r6
|
||||
blt _0802EC88
|
||||
_0802EC9C:
|
||||
ldr r1, [r7]
|
||||
movs r0, 0x5
|
||||
str r0, [r1, 0x68]
|
||||
_0802ECA2:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802ECA8: .4byte gPelipperBoard
|
||||
_0802ECAC: .4byte gUnknown_80D4990
|
||||
_0802ECB0: .4byte gUnknown_80D4970
|
||||
thumb_func_end sub_802EC10
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -1,297 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_802D5A4
|
||||
sub_802D5A4:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _0802D630
|
||||
ldr r0, [r4]
|
||||
movs r5, 0xCC
|
||||
lsls r5, 1
|
||||
adds r0, r5
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r0, [r4]
|
||||
mov r12, r0
|
||||
movs r3, 0
|
||||
movs r1, 0x8C
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D634
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0x8E
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x2
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r1, 0x90
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D638
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0x92
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
movs r7, 0x2
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
movs r6, 0
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
add r3, r12
|
||||
mov r0, r12
|
||||
adds r2, r0, r5
|
||||
_0802D60A:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _0802D61A
|
||||
ldr r1, [r3]
|
||||
mov r5, r12
|
||||
ldr r0, [r5, 0x6C]
|
||||
cmp r1, r0
|
||||
beq _0802D62A
|
||||
_0802D61A:
|
||||
adds r3, 0x8
|
||||
adds r2, 0x2
|
||||
adds r6, 0x1
|
||||
cmp r6, r7
|
||||
blt _0802D60A
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x2
|
||||
str r0, [r1, 0x6C]
|
||||
_0802D62A:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802D630: .4byte gUnknown_203B2F8
|
||||
_0802D634: .4byte gUnknown_80D494C
|
||||
_0802D638: .4byte gUnknown_80D4970
|
||||
thumb_func_end sub_802D5A4
|
||||
|
||||
thumb_func_start sub_802D63C
|
||||
sub_802D63C:
|
||||
ldr r0, _0802D684
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
movs r3, 0
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D688
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r1, 0xB0
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D68C
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xB2
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
movs r0, 0xB4
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
movs r0, 0xB6
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0802D684: .4byte gUnknown_203B2F8
|
||||
_0802D688: .4byte gUnknown_80D4920
|
||||
_0802D68C: .4byte gUnknown_80D4928
|
||||
thumb_func_end sub_802D63C
|
||||
|
||||
thumb_func_start sub_802D690
|
||||
sub_802D690:
|
||||
push {r4,r5,lr}
|
||||
ldr r2, _0802D728
|
||||
ldr r0, [r2]
|
||||
mov r12, r0
|
||||
movs r4, 0
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D72C
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r3, 0x1
|
||||
movs r1, 0xB0
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D730
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xB2
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
movs r1, 0xB4
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D734
|
||||
str r0, [r1]
|
||||
movs r1, 0xB6
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x6
|
||||
str r0, [r1]
|
||||
movs r1, 0xB8
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D738
|
||||
str r0, [r1]
|
||||
movs r1, 0xBA
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x7
|
||||
str r0, [r1]
|
||||
movs r5, 0x4
|
||||
movs r0, 0xBC
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r4, [r0]
|
||||
movs r0, 0xBE
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
movs r3, 0
|
||||
mov r0, r12
|
||||
ldr r4, [r0, 0x74]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
_0802D70E:
|
||||
ldr r0, [r1]
|
||||
cmp r0, r4
|
||||
beq _0802D722
|
||||
adds r1, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r5
|
||||
blt _0802D70E
|
||||
ldr r1, [r2]
|
||||
movs r0, 0x4
|
||||
str r0, [r1, 0x74]
|
||||
_0802D722:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802D728: .4byte gUnknown_203B2F8
|
||||
_0802D72C: .4byte gUnknown_80D4920
|
||||
_0802D730: .4byte gUnknown_80D4928
|
||||
_0802D734: .4byte gUnknown_80E014C
|
||||
_0802D738: .4byte gUnknown_80E0158
|
||||
thumb_func_end sub_802D690
|
||||
|
||||
thumb_func_start sub_802D73C
|
||||
sub_802D73C:
|
||||
push {r4,r5,lr}
|
||||
ldr r3, _0802D7C0
|
||||
ldr r0, [r3]
|
||||
mov r12, r0
|
||||
movs r4, 0
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D7C4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r1, 0xB0
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D7C8
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xB2
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
movs r1, 0xB4
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802D7CC
|
||||
str r0, [r1]
|
||||
movs r1, 0xB6
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x6
|
||||
str r0, [r1]
|
||||
movs r5, 0x3
|
||||
movs r0, 0xB8
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r4, [r0]
|
||||
movs r0, 0xBA
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
movs r2, 0
|
||||
mov r0, r12
|
||||
ldr r4, [r0, 0x70]
|
||||
movs r1, 0xAE
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
_0802D7A6:
|
||||
ldr r0, [r1]
|
||||
cmp r0, r4
|
||||
beq _0802D7BA
|
||||
adds r1, 0x8
|
||||
adds r2, 0x1
|
||||
cmp r2, r5
|
||||
blt _0802D7A6
|
||||
ldr r1, [r3]
|
||||
movs r0, 0x4
|
||||
str r0, [r1, 0x70]
|
||||
_0802D7BA:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802D7C0: .4byte gUnknown_203B2F8
|
||||
_0802D7C4: .4byte gUnknown_80D4920
|
||||
_0802D7C8: .4byte gUnknown_80D4928
|
||||
_0802D7CC: .4byte gUnknown_80E014C
|
||||
thumb_func_end sub_802D73C
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -5,281 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_802F9C0
|
||||
sub_802F9C0:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _0802FA44
|
||||
ldr r0, [r4]
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r2, 0
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldr r3, _0802FA48
|
||||
adds r0, r3
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r3, 0x1
|
||||
adds r1, r0, r3
|
||||
movs r0, 0x8
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4]
|
||||
ldr r1, _0802FA4C
|
||||
adds r0, r1
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xD6
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
movs r1, 0xC
|
||||
bl sub_80095E4
|
||||
adds r0, 0x2
|
||||
lsls r0, 16
|
||||
ldr r3, [r4]
|
||||
adds r5, r3, 0
|
||||
adds r5, 0xF0
|
||||
ldr r2, [r5]
|
||||
lsls r1, r2, 1
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r1, r3, r1
|
||||
movs r2, 0x83
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
asrs r2, r0, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r1]
|
||||
ldr r1, [r5]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r3, r0
|
||||
adds r2, 0x2
|
||||
movs r0, 0x84
|
||||
lsls r0, 1
|
||||
adds r3, r0
|
||||
strh r2, [r3]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xF8
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802FA44: .4byte gUnknown_203B314
|
||||
_0802FA48: .4byte 0x00000159
|
||||
_0802FA4C: .4byte 0x0000015b
|
||||
thumb_func_end sub_802F9C0
|
||||
|
||||
thumb_func_start sub_802FA50
|
||||
sub_802FA50:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x8
|
||||
ldr r4, _0802FB1C
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xF0
|
||||
ldr r0, [r0]
|
||||
bl sub_8008C54
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xF0
|
||||
ldr r0, [r0]
|
||||
bl sub_80073B8
|
||||
ldr r2, _0802FB20
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xF0
|
||||
ldr r3, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0xA
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
ldr r3, [r4]
|
||||
movs r1, 0xAD
|
||||
lsls r1, 1
|
||||
adds r0, r3, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 3
|
||||
adds r0, 0x4
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xDA
|
||||
movs r5, 0
|
||||
ldrsh r2, [r1, r5]
|
||||
adds r2, 0x1
|
||||
movs r1, 0x7
|
||||
str r1, [sp]
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xF0
|
||||
ldr r1, [r1]
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0x2
|
||||
bl sub_8012BC4
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xB8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0802FB78
|
||||
movs r6, 0
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xD6
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r6, r0
|
||||
blt _0802FACA
|
||||
b _0802FBD6
|
||||
_0802FACA:
|
||||
mov r8, r4
|
||||
_0802FACC:
|
||||
mov r2, r8
|
||||
ldr r0, [r2]
|
||||
adds r0, 0xBC
|
||||
adds r1, r6, 0
|
||||
bl sub_8013800
|
||||
adds r5, r0, 0
|
||||
mov r3, r8
|
||||
ldr r2, [r3]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xDA
|
||||
movs r3, 0
|
||||
ldrsh r1, [r0, r3]
|
||||
subs r0, 0x2
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
muls r0, r1
|
||||
adds r1, r0, r6
|
||||
lsls r0, r1, 1
|
||||
adds r0, r2, r0
|
||||
movs r3, 0
|
||||
ldrsh r7, [r0, r3]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x5C
|
||||
adds r0, r1
|
||||
ldrb r4, [r0]
|
||||
cmp r4, 0
|
||||
beq _0802FB28
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xF0
|
||||
ldr r3, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0xA
|
||||
adds r1, r5, 0
|
||||
ldr r2, _0802FB24
|
||||
bl xxx_call_draw_string
|
||||
b _0802FB46
|
||||
.align 2, 0
|
||||
_0802FB1C: .4byte gUnknown_203B314
|
||||
_0802FB20: .4byte gUnknown_80E0744
|
||||
_0802FB24: .4byte gUnknown_80E0750
|
||||
_0802FB28:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x8A
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0802FB46
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xF0
|
||||
ldr r3, [r0]
|
||||
str r4, [sp]
|
||||
movs r0, 0xA
|
||||
adds r1, r5, 0
|
||||
ldr r2, _0802FB74
|
||||
bl xxx_call_draw_string
|
||||
_0802FB46:
|
||||
adds r0, r7, 0
|
||||
bl sub_80974A0
|
||||
adds r2, r0, 0
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF0
|
||||
ldr r3, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x18
|
||||
adds r1, r5, 0
|
||||
bl xxx_call_draw_string
|
||||
adds r6, 0x1
|
||||
mov r2, r8
|
||||
ldr r0, [r2]
|
||||
adds r0, 0xD6
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
cmp r6, r0
|
||||
blt _0802FACC
|
||||
b _0802FBD6
|
||||
.align 2, 0
|
||||
_0802FB74: .4byte gUnknown_80E0754
|
||||
_0802FB78:
|
||||
movs r6, 0
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xD6
|
||||
movs r5, 0
|
||||
ldrsh r0, [r0, r5]
|
||||
cmp r6, r0
|
||||
bge _0802FBD6
|
||||
adds r5, r4, 0
|
||||
_0802FB88:
|
||||
ldr r0, [r5]
|
||||
adds r0, 0xBC
|
||||
adds r1, r6, 0
|
||||
bl sub_8013800
|
||||
adds r4, r0, 0
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xDA
|
||||
movs r3, 0
|
||||
ldrsh r2, [r0, r3]
|
||||
subs r0, 0x2
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
muls r0, r2
|
||||
adds r0, r6
|
||||
lsls r0, 1
|
||||
adds r1, r0
|
||||
movs r2, 0
|
||||
ldrsh r0, [r1, r2]
|
||||
bl sub_80974A0
|
||||
adds r2, r0, 0
|
||||
ldr r0, [r5]
|
||||
adds r0, 0xF0
|
||||
ldr r3, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
adds r1, r4, 0
|
||||
bl xxx_call_draw_string
|
||||
adds r6, 0x1
|
||||
ldr r0, [r5]
|
||||
adds r0, 0xD6
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
cmp r6, r0
|
||||
blt _0802FB88
|
||||
_0802FBD6:
|
||||
ldr r0, _0802FBF0
|
||||
ldr r0, [r0]
|
||||
adds r0, 0xF0
|
||||
ldr r0, [r0]
|
||||
bl sub_80073E0
|
||||
add sp, 0x8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802FBF0: .4byte gUnknown_203B314
|
||||
thumb_func_end sub_802FA50
|
||||
|
||||
thumb_func_start sub_802FBF4
|
||||
sub_802FBF4:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -1,664 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_802CAA4
|
||||
sub_802CAA4:
|
||||
push {r4-r7,lr}
|
||||
movs r7, 0
|
||||
ldr r5, _0802CAC8
|
||||
ldr r0, [r5]
|
||||
ldrb r0, [r0, 0xC]
|
||||
bl GetJobSlotInfo
|
||||
adds r4, r0, 0
|
||||
ldr r2, [r5]
|
||||
ldr r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _0802CB26
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0x5
|
||||
beq _0802CACC
|
||||
cmp r0, 0x6
|
||||
beq _0802CB10
|
||||
b _0802CB26
|
||||
.align 2, 0
|
||||
_0802CAC8: .4byte gUnknown_203B2F0
|
||||
_0802CACC:
|
||||
movs r0, 0x86
|
||||
lsls r0, 1
|
||||
adds r1, r2, r0
|
||||
ldr r0, _0802CAFC
|
||||
str r0, [r1]
|
||||
adds r0, r4, 0
|
||||
bl sub_809693C
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CAEE
|
||||
ldrb r0, [r4, 0x4]
|
||||
bl sub_80A2824
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CB00
|
||||
_0802CAEE:
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x88
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
b _0802CB0A
|
||||
.align 2, 0
|
||||
_0802CAFC: .4byte gUnknown_80DFD70
|
||||
_0802CB00:
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x88
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0x2
|
||||
_0802CB0A:
|
||||
str r1, [r0]
|
||||
adds r7, 0x1
|
||||
b _0802CB26
|
||||
_0802CB10:
|
||||
movs r0, 0x86
|
||||
lsls r0, 1
|
||||
adds r1, r2, r0
|
||||
ldr r0, _0802CB9C
|
||||
str r0, [r1]
|
||||
movs r0, 0x88
|
||||
lsls r0, 1
|
||||
adds r1, r2, r0
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r7, 0x1
|
||||
_0802CB26:
|
||||
ldr r4, _0802CBA0
|
||||
ldr r6, [r4]
|
||||
lsls r1, r7, 3
|
||||
movs r0, 0x86
|
||||
lsls r0, 1
|
||||
adds r3, r6, r0
|
||||
adds r2, r3, r1
|
||||
ldr r0, _0802CBA4
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
movs r0, 0x88
|
||||
lsls r0, 1
|
||||
adds r5, r6, r0
|
||||
adds r1, r5, r1
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
adds r7, 0x1
|
||||
lsls r1, r7, 3
|
||||
adds r2, r3, r1
|
||||
ldr r0, _0802CBA8
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
adds r1, r5, r1
|
||||
movs r0, 0x7
|
||||
str r0, [r1]
|
||||
adds r7, 0x1
|
||||
lsls r1, r7, 3
|
||||
adds r3, r1
|
||||
movs r0, 0
|
||||
str r0, [r3]
|
||||
adds r1, r5, r1
|
||||
movs r0, 0x1
|
||||
str r0, [r1]
|
||||
movs r3, 0
|
||||
mov r12, r4
|
||||
cmp r3, r7
|
||||
bge _0802CB8C
|
||||
adds r4, r6, 0
|
||||
adds r1, r5, 0
|
||||
movs r5, 0x1
|
||||
negs r5, r5
|
||||
_0802CB78:
|
||||
ldr r2, [r1]
|
||||
cmp r2, r5
|
||||
beq _0802CB84
|
||||
ldr r0, [r4, 0x68]
|
||||
cmp r2, r0
|
||||
beq _0802CB94
|
||||
_0802CB84:
|
||||
adds r1, 0x8
|
||||
adds r3, 0x1
|
||||
cmp r3, r7
|
||||
blt _0802CB78
|
||||
_0802CB8C:
|
||||
mov r0, r12
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x7
|
||||
str r0, [r1, 0x68]
|
||||
_0802CB94:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802CB9C: .4byte gUnknown_80DFD7C
|
||||
_0802CBA0: .4byte gUnknown_203B2F0
|
||||
_0802CBA4: .4byte gUnknown_80D494C
|
||||
_0802CBA8: .4byte gUnknown_80D4970
|
||||
thumb_func_end sub_802CAA4
|
||||
|
||||
thumb_func_start sub_802CBAC
|
||||
sub_802CBAC:
|
||||
ldr r0, _0802CBF4
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
movs r3, 0
|
||||
movs r1, 0xA6
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802CBF8
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xA8
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r1, 0xAA
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
ldr r0, _0802CBFC
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
add r1, r12
|
||||
movs r0, 0x6
|
||||
str r0, [r1]
|
||||
movs r0, 0xAE
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
movs r0, 0xB0
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0802CBF4: .4byte gUnknown_203B2F0
|
||||
_0802CBF8: .4byte gUnknown_80D4920
|
||||
_0802CBFC: .4byte gUnknown_80D4928
|
||||
thumb_func_end sub_802CBAC
|
||||
|
||||
thumb_func_start sub_802CC00
|
||||
sub_802CC00:
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl sub_802C598
|
||||
cmp r0, 0x4
|
||||
bhi _0802CC6A
|
||||
lsls r0, 2
|
||||
ldr r1, _0802CC18
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0802CC18: .4byte _0802CC1C
|
||||
.align 2, 0
|
||||
_0802CC1C:
|
||||
.4byte _0802CC6A
|
||||
.4byte _0802CC6A
|
||||
.4byte _0802CC60
|
||||
.4byte _0802CC30
|
||||
.4byte _0802CC48
|
||||
_0802CC30:
|
||||
bl GetPelipperBoardSlotIndex
|
||||
ldr r1, _0802CC44
|
||||
ldr r1, [r1]
|
||||
strb r0, [r1, 0xC]
|
||||
movs r0, 0x2
|
||||
bl SetJobListState
|
||||
b _0802CC6A
|
||||
.align 2, 0
|
||||
_0802CC44: .4byte gUnknown_203B2F0
|
||||
_0802CC48:
|
||||
bl GetPelipperBoardSlotIndex
|
||||
ldr r1, _0802CC5C
|
||||
ldr r1, [r1]
|
||||
strb r0, [r1, 0xC]
|
||||
movs r0, 0x4
|
||||
bl SetJobListState
|
||||
b _0802CC6A
|
||||
.align 2, 0
|
||||
_0802CC5C: .4byte gUnknown_203B2F0
|
||||
_0802CC60:
|
||||
bl sub_802C688
|
||||
movs r0, 0x5
|
||||
bl SetJobListState
|
||||
_0802CC6A:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_802CC00
|
||||
|
||||
thumb_func_start sub_802CC70
|
||||
sub_802CC70:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_802C598
|
||||
ldr r4, _0802CCB4
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CCA0
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
ldr r1, [sp]
|
||||
cmp r1, 0x1
|
||||
beq _0802CCA0
|
||||
ldr r0, [r4]
|
||||
str r1, [r0, 0x68]
|
||||
_0802CCA0:
|
||||
ldr r0, [sp]
|
||||
subs r0, 0x1
|
||||
cmp r0, 0x6
|
||||
bhi _0802CD2E
|
||||
lsls r0, 2
|
||||
ldr r1, _0802CCB8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0802CCB4: .4byte gUnknown_203B2F0
|
||||
_0802CCB8: .4byte _0802CCBC
|
||||
.align 2, 0
|
||||
_0802CCBC:
|
||||
.4byte _0802CD28
|
||||
.4byte _0802CCD8
|
||||
.4byte _0802CCF4
|
||||
.4byte _0802CD18
|
||||
.4byte _0802CD2E
|
||||
.4byte _0802CD2E
|
||||
.4byte _0802CD20
|
||||
_0802CCD8:
|
||||
ldr r0, _0802CCEC
|
||||
bl PlaySound
|
||||
ldr r0, _0802CCF0
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xC]
|
||||
bl GetJobSlotInfo
|
||||
movs r1, 0x6
|
||||
b _0802CD06
|
||||
.align 2, 0
|
||||
_0802CCEC: .4byte 0x00000133
|
||||
_0802CCF0: .4byte gUnknown_203B2F0
|
||||
_0802CCF4:
|
||||
ldr r0, _0802CD10
|
||||
bl PlaySound
|
||||
ldr r0, _0802CD14
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xC]
|
||||
bl GetJobSlotInfo
|
||||
movs r1, 0x5
|
||||
_0802CD06:
|
||||
strb r1, [r0]
|
||||
movs r0, 0x1
|
||||
bl SetJobListState
|
||||
b _0802CD2E
|
||||
.align 2, 0
|
||||
_0802CD10: .4byte 0x00000133
|
||||
_0802CD14: .4byte gUnknown_203B2F0
|
||||
_0802CD18:
|
||||
movs r0, 0x3
|
||||
bl SetJobListState
|
||||
b _0802CD2E
|
||||
_0802CD20:
|
||||
movs r0, 0x4
|
||||
bl SetJobListState
|
||||
b _0802CD2E
|
||||
_0802CD28:
|
||||
movs r0, 0x1
|
||||
bl SetJobListState
|
||||
_0802CD2E:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_802CC70
|
||||
|
||||
thumb_func_start sub_802CD38
|
||||
sub_802CD38:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_802C598
|
||||
ldr r4, _0802CD78
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
bl sub_8012FD8
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xBC
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CD66
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xBC
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
_0802CD66:
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0x5
|
||||
beq _0802CD88
|
||||
cmp r0, 0x5
|
||||
bgt _0802CD7C
|
||||
cmp r0, 0x1
|
||||
beq _0802CD80
|
||||
b _0802CDB0
|
||||
.align 2, 0
|
||||
_0802CD78: .4byte gUnknown_203B2F0
|
||||
_0802CD7C:
|
||||
cmp r0, 0x6
|
||||
bne _0802CDB0
|
||||
_0802CD80:
|
||||
movs r0, 0x1
|
||||
bl SetJobListState
|
||||
b _0802CDB0
|
||||
_0802CD88:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0xC]
|
||||
bl ResetJobSlot
|
||||
bl sub_8096C80
|
||||
bl HasNoAcceptedJobs
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802CDAA
|
||||
bl sub_802C688
|
||||
movs r0, 0x5
|
||||
bl SetJobListState
|
||||
b _0802CDB0
|
||||
_0802CDAA:
|
||||
movs r0, 0x1
|
||||
bl SetJobListState
|
||||
_0802CDB0:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_802CD38
|
||||
|
||||
thumb_func_start sub_802CDB8
|
||||
sub_802CDB8:
|
||||
push {lr}
|
||||
bl sub_802DEE0
|
||||
cmp r0, 0x1
|
||||
bls _0802CDD0
|
||||
cmp r0, 0x3
|
||||
bhi _0802CDD0
|
||||
bl sub_802DF24
|
||||
movs r0, 0x1
|
||||
bl SetJobListState
|
||||
_0802CDD0:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_802CDB8
|
||||
|
||||
thumb_func_start sub_802CDD4
|
||||
sub_802CDD4:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r4, _0802CE54
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0802CDEA
|
||||
movs r0, 0xA0
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
_0802CDEA:
|
||||
ldr r0, [r4]
|
||||
str r5, [r0, 0x34]
|
||||
lsls r1, r5, 1
|
||||
adds r1, r5
|
||||
lsls r1, 3
|
||||
adds r1, 0x3C
|
||||
adds r1, r0, r1
|
||||
str r1, [r0, 0x38]
|
||||
adds r0, 0x3C
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r2, [r1, 0x34]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x3C
|
||||
ldr r0, _0802CE58
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x38]
|
||||
adds r1, 0x9C
|
||||
str r1, [r0, 0x14]
|
||||
movs r1, 0x4
|
||||
bl sub_8012D34
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x5
|
||||
movs r2, 0x4
|
||||
adds r3, r5, 0
|
||||
bl sub_8013848
|
||||
bl sub_802CF5C
|
||||
bl sub_802CFD0
|
||||
movs r0, 0x1
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0802CE54: .4byte gUnknown_203B2F4
|
||||
_0802CE58: .4byte gUnknown_80DFDA4
|
||||
thumb_func_end sub_802CDD4
|
||||
|
||||
thumb_func_start sub_802CE5C
|
||||
sub_802CE5C:
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CE74
|
||||
ldr r0, _0802CE70
|
||||
ldr r0, [r0]
|
||||
bl sub_8013660
|
||||
movs r0, 0
|
||||
b _0802CEB4
|
||||
.align 2, 0
|
||||
_0802CE70: .4byte gUnknown_203B2F4
|
||||
_0802CE74:
|
||||
ldr r4, _0802CE90
|
||||
ldr r0, [r4]
|
||||
bl GetKeyPress
|
||||
cmp r0, 0x1
|
||||
beq _0802CE94
|
||||
cmp r0, 0x2
|
||||
bne _0802CE98
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _0802CEB4
|
||||
.align 2, 0
|
||||
_0802CE90: .4byte gUnknown_203B2F4
|
||||
_0802CE94:
|
||||
movs r0, 0x3
|
||||
b _0802CEB4
|
||||
_0802CE98:
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1
|
||||
bl sub_80138B8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802CEAA
|
||||
movs r0, 0
|
||||
b _0802CEB4
|
||||
_0802CEAA:
|
||||
bl sub_802CF5C
|
||||
bl sub_802CFD0
|
||||
movs r0, 0x1
|
||||
_0802CEB4:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_802CE5C
|
||||
|
||||
thumb_func_start sub_802CEBC
|
||||
sub_802CEBC:
|
||||
ldr r0, _0802CED4
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x1E
|
||||
ldrsh r2, [r1, r0]
|
||||
movs r3, 0x1C
|
||||
ldrsh r0, [r1, r3]
|
||||
muls r0, r2
|
||||
ldrb r1, [r1, 0x18]
|
||||
adds r0, r1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0802CED4: .4byte gUnknown_203B2F4
|
||||
thumb_func_end sub_802CEBC
|
||||
|
||||
thumb_func_start sub_802CED8
|
||||
sub_802CED8:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r5, _0802CF10
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl sub_800641C
|
||||
ldr r0, [r5]
|
||||
bl sub_8013984
|
||||
bl sub_802CF5C
|
||||
bl sub_802CFD0
|
||||
cmp r4, 0
|
||||
beq _0802CF0A
|
||||
ldr r0, [r5]
|
||||
bl AddMenuCursorSprite
|
||||
_0802CF0A:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802CF10: .4byte gUnknown_203B2F4
|
||||
thumb_func_end sub_802CED8
|
||||
|
||||
thumb_func_start sub_802CF14
|
||||
sub_802CF14:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _0802CF54
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _0802CF4E
|
||||
ldr r0, [r2, 0x34]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x3C
|
||||
ldr r0, _0802CF58
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0802CF4E:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802CF54: .4byte gUnknown_203B2F4
|
||||
_0802CF58: .4byte gUnknown_80DFD8C
|
||||
thumb_func_end sub_802CF14
|
||||
|
||||
thumb_func_start sub_802CF5C
|
||||
sub_802CF5C:
|
||||
push {r4,lr}
|
||||
ldr r4, _0802CFCC
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x20]
|
||||
adds r0, 0x9C
|
||||
movs r2, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x1E]
|
||||
adds r0, 0x9D
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x9E
|
||||
movs r1, 0xC
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x9F
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1A
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, 0x18
|
||||
bl sub_8009614
|
||||
adds r0, 0x2
|
||||
lsls r0, 16
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2, 0x34]
|
||||
lsls r1, r3, 1
|
||||
adds r1, r3
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x4A
|
||||
asrs r3, r0, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r1]
|
||||
ldr r1, [r2, 0x34]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r2, r0
|
||||
adds r3, 0x2
|
||||
adds r2, 0x4C
|
||||
strh r3, [r2]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802CFCC: .4byte gUnknown_203B2F4
|
||||
thumb_func_end sub_802CF5C
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -4612,8 +4612,3 @@ gUnknown_80DCA2C: @ 80DCA2C
|
|||
.align 2,0
|
||||
.4byte gUnknown_80DCA2C
|
||||
|
||||
#include "text/luminous_cave.inc"
|
||||
|
||||
#include "friend_area.inc"
|
||||
|
||||
#include "text/party_menu.inc"
|
||||
|
|
|
|||
|
|
@ -1,522 +0,0 @@
|
|||
.section .rodata
|
||||
|
||||
.global gUnknown_80E653C
|
||||
gUnknown_80E653C: @ 80E653C
|
||||
.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_80E6554
|
||||
gUnknown_80E6554: @ 80E6554
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
|
||||
.global gUnknown_80E656C
|
||||
gUnknown_80E656C: @ 80E656C
|
||||
.4byte sUnknown_80E65C4, 0x5
|
||||
.4byte sUnknown_80E65AC, 0x5
|
||||
.4byte sUnknown_80E658C, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E658C:
|
||||
.string "#+Don~27t turn the power off!\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E65AC:
|
||||
.string "#+Item transmitting!\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E65C4:
|
||||
.string "#+#C2Caution!#R \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E65D8
|
||||
gUnknown_80E65D8: @ 80E65D8
|
||||
.4byte sUnknown_80E65C4, 0x5
|
||||
.4byte sUnknown_80E65F8, 0x5
|
||||
.4byte sUnknown_80E658C, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E65F8:
|
||||
.string "#+Thank-You Mail in transmission!\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E661C
|
||||
gUnknown_80E661C: @ 80E661C
|
||||
.4byte sUnknown_80E65C4, 0x5
|
||||
.4byte sUnknown_80E663C, 0x5
|
||||
.4byte sUnknown_80E658C, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E663C:
|
||||
.string "#+A-OK Mail in transmission!\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E665C
|
||||
gUnknown_80E665C: @ 80E665C
|
||||
.4byte sUnknown_80E65C4, 0x5
|
||||
.4byte sUnknown_80E65F8, 0x5
|
||||
.4byte sUnknown_80E658C, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
.global gUnknown_80E667C
|
||||
gUnknown_80E667C: @ 80E667C
|
||||
.4byte sUnknown_80E65C4, 0x5
|
||||
.4byte sUnknown_80E669C, 0x5
|
||||
.4byte sUnknown_80E658C, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E669C:
|
||||
.string "#+Wonder Mail in transmission!\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E66BC
|
||||
gUnknown_80E66BC: @ 80E66BC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E66D4
|
||||
gUnknown_80E66D4: @ 80E66D4
|
||||
.4byte sUnknown_80E6734, 0x5
|
||||
.4byte sUnknown_80E6710, 0x5
|
||||
.4byte sUnknown_80E66F4, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E66F4:
|
||||
.string "#+Please press any button.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6710:
|
||||
.string "#+Your adventure will be continued.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6734:
|
||||
.string "#+#CGSuccess!#R \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6748
|
||||
gUnknown_80E6748: @ 80E6748
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6760
|
||||
gUnknown_80E6760: @ 80E6760
|
||||
.4byte sUnknown_80E67B4, 0x5
|
||||
.4byte sUnknown_80E6794, 0x5
|
||||
.4byte sUnknown_80E6780, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6780:
|
||||
.string "#+please try again.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6794:
|
||||
.string "#+Check the Game Link cable and\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E67B4:
|
||||
.string "#+#C2Communication error!#R \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E67D4
|
||||
gUnknown_80E67D4: @ 80E67D4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E67EC
|
||||
gUnknown_80E67EC: @ 80E67EC
|
||||
.4byte sUnknown_80E67B4, 0x5
|
||||
.4byte sUnknown_80E680C, 0x5
|
||||
.4byte sUnknown_80E6780, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E680C:
|
||||
.string "#+Check your communication mode and\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6830
|
||||
gUnknown_80E6830: @ 80E6830
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6848
|
||||
gUnknown_80E6848: @ 80E6848
|
||||
.4byte sUnknown_80E67B4, 0x5
|
||||
.4byte sUnknown_80E6888, 0x5
|
||||
.4byte sUnknown_80E6868, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6868:
|
||||
.string "#+Please inform the programmer.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6888:
|
||||
.string "#+Check sum error.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E689C
|
||||
gUnknown_80E689C: @ 80E689C
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E68B4
|
||||
gUnknown_80E68B4: @ 80E68B4
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E68FC, 0x5
|
||||
.4byte sUnknown_80E68D4, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E68D4:
|
||||
.string "#+someone~27s storage space was full.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E68FC:
|
||||
.string "#+An item could not be transferred because\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6928:
|
||||
.string "#+#C2Error!#R \0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6938
|
||||
gUnknown_80E6938: @ 80E6938
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6950
|
||||
gUnknown_80E6950: @ 80E6950
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E6988, 0x5
|
||||
.4byte sUnknown_80E6970, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6970:
|
||||
.string "#+Please check again.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6988:
|
||||
.string "#+This #CGSOS Mail#R can~27t be used.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E69B0
|
||||
gUnknown_80E69B0: @ 80E69B0
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E69C8
|
||||
gUnknown_80E69C8: @ 80E69C8
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E69E8, 0x5
|
||||
.4byte sUnknown_80E6970, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E69E8:
|
||||
.string "#+This #CGA-OK Mail#R can~27t be used.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6A10
|
||||
gUnknown_80E6A10: @ 80E6A10
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6A28
|
||||
gUnknown_80E6A28: @ 80E6A28
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E6A48, 0x5
|
||||
.4byte sUnknown_80E6970, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6A48:
|
||||
.string "#+This #CGThank-You Mail#R can~27t be used.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6A74
|
||||
gUnknown_80E6A74: @ 80E6A74
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6A8C
|
||||
gUnknown_80E6A8C: @ 80E6A8C
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E6AC8, 0x5
|
||||
.4byte sUnknown_80E6AAC, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6AAC:
|
||||
.string "#+It can~27t be received.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6AC8:
|
||||
.string "#+There is no space for new mail.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6AEC
|
||||
gUnknown_80E6AEC: @ 80E6AEC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6B04
|
||||
gUnknown_80E6B04: @ 80E6B04
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E6B4C, 0x5
|
||||
.4byte sUnknown_80E6B24, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6B24:
|
||||
.string "#+You need to go further in the story.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6B4C:
|
||||
.string "#+You may not go to that #CGdungeon#R yet.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6B78
|
||||
gUnknown_80E6B78: @ 80E6B78
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6B90
|
||||
gUnknown_80E6B90: @ 80E6B90
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E6BC4, 0x5
|
||||
.4byte sUnknown_80E6BB0, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6BB0:
|
||||
.string "#+Please try again.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6BC4:
|
||||
.string "#+There was a problem on your friend~27s end.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6BF4
|
||||
gUnknown_80E6BF4: @ 80E6BF4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6C0C
|
||||
gUnknown_80E6C0C: @ 80E6C0C
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E6C2C, 0x5
|
||||
.4byte sUnknown_80E6BB0, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6C2C:
|
||||
.string "#+Your friend is not responding.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6C50
|
||||
gUnknown_80E6C50: @ 80E6C50
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6C68
|
||||
gUnknown_80E6C68: @ 80E6C68
|
||||
.4byte sUnknown_80E6734, 0x5
|
||||
.4byte sUnknown_80E6CA8, 0x5
|
||||
.4byte sUnknown_80E6C88, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6C88:
|
||||
.string "#+went through successfully.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6CA8:
|
||||
.string "#+The item exchange with your friend\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6CD0
|
||||
gUnknown_80E6CD0: @ 80E6CD0
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6CE8
|
||||
gUnknown_80E6CE8: @ 80E6CE8
|
||||
.4byte sUnknown_80E65C4, 0x5
|
||||
.4byte sUnknown_80E6D2C, 0x5
|
||||
.4byte sUnknown_80E6D08, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6D08:
|
||||
.string "#+you and your friend are ready.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6D2C:
|
||||
.string "#+Please communicate only after both\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6D54
|
||||
gUnknown_80E6D54: @ 80E6D54
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6D6C
|
||||
gUnknown_80E6D6C: @ 80E6D6C
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E6DB0, 0x5
|
||||
.4byte sUnknown_80E6D8C, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6D8C:
|
||||
.string "#+connected. Please check again.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6DB0:
|
||||
.string "#+An incorrect number of GBA systems are\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80E6DDC
|
||||
gUnknown_80E6DDC: @ 80E6DDC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x08, 0x00
|
||||
.byte 0x18, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6DF4
|
||||
gUnknown_80E6DF4: @ 80E6DF4
|
||||
.4byte sUnknown_80E6928, 0x5
|
||||
.4byte sUnknown_80E6E30, 0x5
|
||||
.4byte sUnknown_80E6E14, 0x5
|
||||
.4byte 0, 0x3
|
||||
|
||||
sUnknown_80E6E14:
|
||||
.string "#+Please check it again.\0"
|
||||
.align 2, 0
|
||||
|
||||
sUnknown_80E6E30:
|
||||
.string "#+Communication failed.\0"
|
||||
.align 2, 0
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
||||
.global gUnknown_80E6E50
|
||||
gUnknown_80E6E50:: @ 80E6E50
|
||||
.string "CHUNSOFT\0"
|
||||
.align 2,0
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
||||
|
||||
.global gUnknown_80E6E7C
|
||||
gUnknown_80E6E7C: @ 80E6E7C
|
||||
.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_80E6E94
|
||||
gUnknown_80E6E94: @ 80E6E94
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x05, 0x00, 0x09, 0x00
|
||||
.byte 0x13, 0x00, 0x05, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E6EAC
|
||||
gUnknown_80E6EAC: @ 80E6EAC
|
||||
.4byte Caution_80E6F04
|
||||
.4byte 3
|
||||
.4byte StorageEmpty_80E6EE4
|
||||
.4byte 3
|
||||
.4byte CheckAgain_80E6ECC
|
||||
.4byte 3
|
||||
.4byte 0
|
||||
.4byte 1
|
||||
|
||||
.global CheckAgain_80E6ECC
|
||||
CheckAgain_80E6ECC:
|
||||
.string "{CENTER_ALIGN}Please check again.\0"
|
||||
.align 2,0
|
||||
|
||||
.global StorageEmpty_80E6EE4
|
||||
StorageEmpty_80E6EE4:
|
||||
.string "{CENTER_ALIGN}The storage space is empty!\0"
|
||||
.align 2,0
|
||||
|
||||
.global Caution_80E6F04
|
||||
Caution_80E6F04:
|
||||
.string "{CENTER_ALIGN}{COLOR_1 RED}Caution!{END_COLOR_TEXT_1} \0"
|
||||
.align 2,0
|
||||
|
||||
.asciz "pksdir0"
|
||||
|
||||
|
|
@ -1,233 +0,0 @@
|
|||
.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}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}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}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"
|
||||
|
||||
|
|
@ -1,119 +1,5 @@
|
|||
.section .rodata
|
||||
|
||||
.global gUnknown_80E7E34
|
||||
gUnknown_80E7E34: @ 80E7E34
|
||||
@ replacing .incbin "baserom.gba", 0x000e7e34, 0x18
|
||||
.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_80E7E4C
|
||||
gUnknown_80E7E4C: @ 80E7E4C
|
||||
@ replacing .incbin "baserom.gba", 0x000e7e4c, 0x18
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x14, 0x00, 0x04, 0x00
|
||||
.byte 0x06, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7E64
|
||||
gUnknown_80E7E64: @ 80E7E64
|
||||
@ replacing .incbin "baserom.gba", 0x000e7e64, 0x18
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x14, 0x00, 0x0e, 0x00
|
||||
.byte 0x06, 0x00, 0x04, 0x00
|
||||
.byte 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gDebug_NumberText
|
||||
gDebug_NumberText: @ 80E7E7C
|
||||
.string "Number?\0"
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E7E8C
|
||||
gUnknown_80E7E8C: @ 80E7E8C
|
||||
@ replacing .incbin "baserom.gba", 0x000e7e8c, 0x18
|
||||
.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_80E7EA4
|
||||
gUnknown_80E7EA4: @ 80E7EA4
|
||||
@ replacing .incbin "baserom.gba", 0x000e7ea4, 0x18
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x15, 0x00, 0x04, 0x00
|
||||
.byte 0x06, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
|
||||
.global gDebug_CloseText
|
||||
gDebug_CloseText: @ 80E7EBC
|
||||
.string "CLOSE\0"
|
||||
.align 2,0
|
||||
|
||||
.global gDebug_OpenText
|
||||
gDebug_OpenText: @ 80E7EC4
|
||||
.string "OPEN\0"
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E7ED4
|
||||
gUnknown_80E7ED4: @ 80E7ED4
|
||||
.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_80E7EEC
|
||||
gUnknown_80E7EEC: @ 80E7EEC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x13, 0x00, 0x04, 0x00
|
||||
.byte 0x09, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E7F04
|
||||
gUnknown_80E7F04: @ 80E7F04
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x13, 0x00, 0x0e, 0x00
|
||||
.byte 0x06, 0x00, 0x04, 0x00
|
||||
.byte 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gDebug_NumberText2
|
||||
gDebug_NumberText2: @ 80E7F1C
|
||||
.string "Number?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gDebug_LevelText
|
||||
gDebug_LevelText: @ 80E7F24
|
||||
.string "LEVEL\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E7F2C
|
||||
gUnknown_80E7F2C: @ 80E7F2C
|
||||
.string "Name\0"
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E7F3C
|
||||
gUnknown_80E7F3C: @ 80E7F3C
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
|
|
|||
|
|
@ -441,15 +441,23 @@ gUnknown_80F6964: @ 80F6964
|
|||
|
||||
.global gUnknown_80F697C
|
||||
gUnknown_80F697C: @ 80F697C
|
||||
.incbin "baserom.gba", 0xF697C, 0x14
|
||||
.byte 0x58, 0x00, 0x00, 0x00
|
||||
.string "pksdir0"
|
||||
.align 2,0
|
||||
.string "pksdir0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80F6990
|
||||
gUnknown_80F6990: @ 80F6990
|
||||
.incbin "baserom.gba", 0xF6990, 0xC
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80F699C
|
||||
gUnknown_80F699C: @ 80F699C
|
||||
.incbin "baserom.gba", 0xF699C, 0xC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80F69A8
|
||||
gUnknown_80F69A8: @ 80F69A8
|
||||
|
|
|
|||
|
|
@ -1,176 +0,0 @@
|
|||
.global gUnknown_80DD148
|
||||
gUnknown_80DD148: @ 80DD148 (default friend area warp script)
|
||||
.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_80DD160
|
||||
gUnknown_80DD160: @ 80DD160 (Another friend area warp script)
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x13, 0x00, 0x04, 0x00
|
||||
.byte 0x08, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DD178
|
||||
gUnknown_80DD178: @ 80DD178 (Another friend area warp script)
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x14, 0x00, 0x04, 0x00
|
||||
.byte 0x06, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DD190
|
||||
gUnknown_80DD190: @ 80DD190 (seems to be Friend Area Warp Script)
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x11, 0x00
|
||||
.byte 0x1A, 0x00, 0x02, 0x00
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DD1A8
|
||||
gUnknown_80DD1A8: @ 80DD1A8
|
||||
.string "Whom would you like to visit?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD1C8
|
||||
gUnknown_80DD1C8: @ 80DD1C8
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}handed over. \0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD1EC
|
||||
gUnknown_80DD1EC: @ 80DD1EC
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}handed over.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}returned to the Toolbox.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD240
|
||||
gUnknown_80DD240: @ 80DD240
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}returned to the Toolbox.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD270
|
||||
gUnknown_80DD270: @ 80DD270
|
||||
.string "{CENTER_ALIGN}{ARG_POKEMON_1} left the team to remain\n"
|
||||
.string "{CENTER_ALIGN}on standby in the Friend Area.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2B0
|
||||
gUnknown_80DD2B0: @ 80DD2B0
|
||||
.string "Give\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2B8
|
||||
gUnknown_80DD2B8: @ 80DD2B8
|
||||
.string "Take\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2C0
|
||||
gUnknown_80DD2C0: @ 80DD2C0
|
||||
.string "Stand By\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2CC
|
||||
gUnknown_80DD2CC: @ 80DD2CC
|
||||
.string "Visit\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2D4
|
||||
gUnknown_80DD2D4: @ 80DD2D4
|
||||
.string "Name\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2DC
|
||||
gUnknown_80DD2DC: @ 80DD2DC
|
||||
.string "Summary\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2E4
|
||||
gUnknown_80DD2E4: @ 80DD2E4
|
||||
.string "Moves\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2EC
|
||||
gUnknown_80DD2EC: @ 80DD2EC
|
||||
.string "Check IQ\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD2F8
|
||||
gUnknown_80DD2F8: @ 80DD2F8
|
||||
.string "Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} \0"
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DD310
|
||||
gUnknown_80DD310: @ 80DD310 (default friend area script)
|
||||
.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_80DD328
|
||||
gUnknown_80DD328: @ 80DD328 (another friend area warp script)
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x13, 0x00, 0x03, 0x00
|
||||
.byte 0x08, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DD340
|
||||
gUnknown_80DD340: @ 80DD340
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x14, 0x00, 0x04, 0x00
|
||||
.byte 0x06, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DD358
|
||||
gUnknown_80DD358: @ 80DD358
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x11, 0x00
|
||||
.byte 0x1A, 0x00, 0x02, 0x00
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DD370
|
||||
gUnknown_80DD370: @ 80DD370
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x03, 0x00
|
||||
.byte 0x0F, 0x00, 0x02, 0x00
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
|
@ -1,128 +0,0 @@
|
|||
gLuminousCaveSeekAwakening:: @ 80DCA34
|
||||
.string "{CENTER_ALIGN}...{WAIT_PRESS}A voice emanates from somewhere...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}...Ye who seek awakening...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}This is Luminous Cave.{WAIT_PRESS}\n"
|
||||
.string "{CENTER_ALIGN}Do ye seek a new evolution?\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveAskEvolution:: @ 80DCAB8
|
||||
.string "{CENTER_ALIGN}Do ye seek evolution?\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveEvolutionInfo:: @ 80DCAD0
|
||||
.string "{CENTER_ALIGN}There are those among Pokémon\n"
|
||||
.string "{CENTER_ALIGN}that can evolve.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Such Pokémon can evolve at this very\n"
|
||||
.string "{CENTER_ALIGN}spot if they satisfy certain conditions.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Evolution brings about changes\n"
|
||||
.string "{CENTER_ALIGN}in appearance and abilities.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Not only that{COMMA} some Pokémon even change\n"
|
||||
.string "{CENTER_ALIGN}type and learn different moves.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}However...{WAIT_PRESS} The requirements for\n"
|
||||
.string "{CENTER_ALIGN}evolution differ among Pokémon.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Some become ready for evolution\n"
|
||||
.string "{CENTER_ALIGN}merely by leveling up.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Still others may need special items\n"
|
||||
.string "{CENTER_ALIGN}to attain evolution.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye must also be aware of this:{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Once it has evolved{COMMA} a Pokémon\n"
|
||||
.string "{CENTER_ALIGN}can never regain its previous form.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}That is why ye must think carefully\n"
|
||||
.string "{CENTER_ALIGN}before committing to evolution.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveYeShallReturn:: @ 80DCD5C
|
||||
.string "{CENTER_ALIGN}Ye shall return if evolution\n"
|
||||
.string "{CENTER_ALIGN}is what ye seek...\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveGiveItem:: @ 80DCD90
|
||||
.string "{CENTER_ALIGN}Will ye give an item for evolution?\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveGiveAnotherItem:: @ 80DCDB8
|
||||
.string "{CENTER_ALIGN}Will ye give yet another item?\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveLackWhatIsNeeded:: @ 80DCDDC
|
||||
.string "{CENTER_ALIGN}Alas{COMMA} ye seem to lack what is needed\n"
|
||||
.string "{CENTER_ALIGN}for evolution.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveOnlyOneItem:: @ 80DCE18
|
||||
.string "{CENTER_ALIGN}Ye seem to have but one item.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveLetUsBegin:: @ 80DCE38
|
||||
.string "{CENTER_ALIGN}...Ye who seek awakening...\n"
|
||||
.string "{CENTER_ALIGN}Let us begin.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveChangedAppearance:: @ 80DCE68
|
||||
.string "{CENTER_ALIGN}...{WAIT_PRESS}$n0 is undergoing changes...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}$n0{APOSTROPHE}s appearance changed...{EXTRA_MSG}\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveEvolved:: @ 80DCEB0
|
||||
.string "{CENTER_ALIGN}It evolved from {COLOR_1 GREEN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n"
|
||||
.string "{CENTER_ALIGN}to {COLOR_1 YELLOW}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveComeAlone:: @ 80DCEDC
|
||||
.string "{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}One cannot evolve if one\n"
|
||||
.string "{CENTER_ALIGN}is in the company of others.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Come alone if ye wish to evolve.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveLackLevel:: @ 80DCF44
|
||||
.string "{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye have not high enough a level.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveCantEvolveAnymore:: @ 80DCF88
|
||||
.string "{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye cannot evolve anymore.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveLackFriendArea:: @ 80DCFAC
|
||||
.string "{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye need your Friend Area to evolve.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveLackRoom:: @ 80DCFF4
|
||||
.string "{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}The Friend Area to which ye shall go\n"
|
||||
.string "{CENTER_ALIGN}has no room for ye.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveLackIQ:: @ 80DD054
|
||||
.string "{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye seem to lack the IQ to evolve.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveLackItem:: @ 80DD098
|
||||
.string "{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye seem to lack an item to evolve.\0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveCantEvolveYet:: @ 80DD0E0
|
||||
.string "{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}Ye cannot evolve yet. \0"
|
||||
.align 2, 0
|
||||
|
||||
gLuminousCaveGiveName:: @ 80DD104
|
||||
.string "{CENTER_ALIGN}Ye must give a name to\n"
|
||||
.string "{CENTER_ALIGN}the evolved Pokémon. \0"
|
||||
.align 2, 0
|
||||
|
||||
.string "pksdir0\0"
|
||||
.align 2, 0
|
||||
|
||||
.string "pksdir0\0"
|
||||
.align 2, 0
|
||||
|
|
@ -1,109 +0,0 @@
|
|||
gUnknown_80DD388:: @ 80DD388
|
||||
.string "You have chosen to say farewell\n"
|
||||
.string "to this Pokémon.{EXTRA_MSG}"
|
||||
.string "The Pokémon will leave its Friend Area.\n"
|
||||
.string "It will no longer be available for\n"
|
||||
.string "adventures. Is that OK?\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD420:: @ 80DD420
|
||||
.string "If you say farewell to this\n"
|
||||
.string "Pokémon{COMMA} it will be gone forever.{EXTRA_MSG}"
|
||||
.string "You will never be able to get another one\n"
|
||||
.string "like it to join your team.\n"
|
||||
.string "Will you release it anyway?\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD4C4:: @ 80DD4C4
|
||||
.string "{CENTER_ALIGN}{ARG_POKEMON_1} joined the\n"
|
||||
.string "{CENTER_ALIGN}rescue team for adventures!\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD4F4:: @ 80DD4F4
|
||||
.string "{CENTER_ALIGN}{ARG_POKEMON_1} left the team to remain\n"
|
||||
.string "{CENTER_ALIGN}on standby in the Friend Area.\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD534:: @ 80DD534
|
||||
.string "{CENTER_ALIGN}{ARG_POKEMON_1} became the leader\n"
|
||||
.string "{CENTER_ALIGN}of the rescue team.\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD564:: @ 80DD564
|
||||
.string "{CENTER_ALIGN}{ARG_POKEMON_1} left\n"
|
||||
.string "{CENTER_ALIGN}the Friend Area.\n"
|
||||
.string "{CENTER_ALIGN}Bye-bye{COMMA} {ARG_POKEMON_1}!\0"
|
||||
.align 2,0
|
||||
|
||||
gUnknown_80DD594:: @ 80DD594
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}handed over. \0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD5B8:: @ 80DD5B8
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}handed over.{EXTRA_MSG}"
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}returned to the Toolbox.\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD60C:: @ 80DD60C
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}returned to the Toolbox.\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD63C:: @ 80DD63C
|
||||
.string "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} was\n"
|
||||
.string "{CENTER_ALIGN}sent to storage.\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuStandBy:: @ 80DD664
|
||||
.string "Stand By\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuMakeLeader:: @ 80DD670
|
||||
.string "Make Leader\0"
|
||||
.align 2,0
|
||||
|
||||
gPartyMenuJoinTeam:: @ 80DD67C
|
||||
.string "Join Team\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuGiveGummi:: @ 80DD688
|
||||
.string "Give Gummi\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuGive:: @ 80DD694
|
||||
.string "Give\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuTake:: @ 80DD69C
|
||||
.string "Take\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuSayFarewell:: @ 80DD6A4
|
||||
.string "Say Farewell\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuSummary:: @ 80DD6B4
|
||||
.string "Summary\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuMoves:: @ 80DD6BC
|
||||
.string "Moves\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuCheckIQ:: @ 80DD6C4
|
||||
.string "Check IQ\0"
|
||||
.align 2, 0
|
||||
|
||||
gPartyMenuItemPlaceholder:: @ 80DD6D0
|
||||
.string "Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} \0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80DD6E0:: @ 80DD6E0
|
||||
.string "%s\0"
|
||||
.align 2, 0
|
||||
|
||||
.string "pksdir0\0"
|
||||
.align 2, 0
|
||||
|
|
@ -5,7 +5,7 @@ struct unkStruct_802C39C
|
|||
/* 0xC */ u8 *playerName;
|
||||
/* 0x10 */ s16 clientSpecies;
|
||||
/* 0x12 */ s16 targetSpecies;
|
||||
/* 0x14 */ u8 unk14;
|
||||
/* 0x14 */ u8 targetItem;
|
||||
/* 0x15 */ u8 fill15[0x2E - 0x15];
|
||||
u8 unk2E;
|
||||
u8 fill2F[0x34 - 0x2F];
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
struct unkStruct_203B480
|
||||
{
|
||||
// size: 0x30
|
||||
/* 0x0 */ u8 mailType;
|
||||
/* 0x1 */ u8 missionType;
|
||||
/* 0x4 */ struct DungeonLocation dungeon;
|
||||
|
|
@ -37,8 +38,21 @@ struct unkStruct_203B48C
|
|||
s32 unk4[0x20];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B480 *gUnknown_203B480;
|
||||
extern struct unkStruct_203B484 *gUnknown_203B484;
|
||||
extern u32 *gUnknown_203B488;
|
||||
extern struct unkStruct_203B48C *gUnknown_203B48C;
|
||||
|
||||
void sub_80950BC(void);
|
||||
struct unkStruct_203B480 *sub_80950F8(void);
|
||||
struct unkStruct_203B484 *sub_8095100(void);
|
||||
u32 *sub_8095108(void);
|
||||
struct unkStruct_203B48C *sub_8095110(void);
|
||||
void sub_8095118(void);
|
||||
s32 FindOpenMailSlot(void);
|
||||
bool8 sub_80951BC(struct unkStruct_203B480 *mail);
|
||||
bool8 sub_80951FC(struct unkStruct_203B480 *param_1);
|
||||
struct unkStruct_203B480 * sub_8095228(u8 index);
|
||||
struct unkStruct_203B480 * GetMailatIndex(u8 index);
|
||||
void DeleteMailAtIndex(u8 index);
|
||||
void sub_8095274(u32 param_1);
|
||||
bool8 sub_8095298(s32 param_1);
|
||||
|
|
@ -49,6 +63,8 @@ u32 CountAllMail(void);
|
|||
s32 sub_8095374(void);
|
||||
s32 GetMailIndex(u8 mailType, u32 param_2);
|
||||
s32 GetFirstIndexofMailType(u8 mailType);
|
||||
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
|
||||
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "wonder_mail.h"
|
||||
#include "constants/mailbox.h"
|
||||
|
||||
struct subStruct_203B490
|
||||
{
|
||||
|
|
@ -12,13 +13,13 @@ struct subStruct_203B490
|
|||
struct unkStruct_203B490
|
||||
{
|
||||
// size: 0x330?
|
||||
/* 0x0 */ struct WonderMail mailboxSlots[4];
|
||||
/* 0x50 */ struct WonderMail pelipperBoardJobs[8];
|
||||
/* 0xF0 */ struct WonderMail jobSlots[8];
|
||||
/* 0x0 */ struct WonderMail mailboxSlots[NUM_MAILBOX_SLOTS];
|
||||
/* 0x50 */ struct WonderMail pelipperBoardJobs[MAX_ACCEPTED_JOBS];
|
||||
/* 0xF0 */ struct WonderMail jobSlots[MAX_ACCEPTED_JOBS];
|
||||
u8 unk190[0x28];
|
||||
u8 unk1B8[0x78];
|
||||
struct subStruct_203B490 unk230[16];
|
||||
u8 PKMNNewsReceived[56];
|
||||
u8 PKMNNewsReceived[NUM_POKEMON_NEWS];
|
||||
bool8 unk328;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,11 @@ enum Action
|
|||
ACTION_CHANGE_TACTICS = 0x1A,
|
||||
ACTION_CHECK_SUMMARY = 0x1B,
|
||||
ACTION_TALK_MENU = 0x1C, // Talking to another Pokémon via the menu.
|
||||
ACTION_UNK1D = 0x1D,
|
||||
ACTION_SET_MOVE = 0x1E, // Registering a move.
|
||||
ACTION_UNK1F = 0x1F,
|
||||
ACTION_UNK20 = 0x20,
|
||||
ACTION_UNK21 = 0x21,
|
||||
ACTION_EAT_AI = 0x23,
|
||||
ACTION_THROW_ITEM_AI = 0x24,
|
||||
ACTION_THROW_STRAIGHT_PLAYER = 0x27,
|
||||
|
|
|
|||
|
|
@ -4,4 +4,18 @@
|
|||
#define MAX_ACCEPTED_JOBS 8
|
||||
#define NUM_MAILBOX_SLOTS 4
|
||||
|
||||
enum JOB_LIST_MAIL_TYPES
|
||||
{
|
||||
MAIL_TYPE_NONE = 0,
|
||||
MAIL_TYPE_UNK1,
|
||||
MAIL_TYPE_UNK2,
|
||||
MAIL_TYPE_UNK3,
|
||||
MAIL_TYPE_UNK4,
|
||||
MAIL_TYPE_SUSPENDED_JOB = 5,
|
||||
MAIL_TYPE_TAKEN_JOB,
|
||||
MAIL_TYPE_UNK7,
|
||||
MAIL_TYPE_UNK8,
|
||||
MAIL_TYPE_UNK9,
|
||||
};
|
||||
|
||||
#endif // GUARD_CONSTANTS_MAILBOX_H
|
||||
|
|
|
|||
|
|
@ -208,7 +208,8 @@ struct EntityInfo
|
|||
u8 unk153;
|
||||
u8 unk154;
|
||||
u8 unk155;
|
||||
u8 fill158[0x158 - 0x156];
|
||||
u8 unk156;
|
||||
bool8 unk157;
|
||||
u8 unk158;
|
||||
u8 unk159;
|
||||
u8 unk15A;
|
||||
|
|
@ -227,7 +228,7 @@ struct EntityInfo
|
|||
/* 0x16C */ struct Position targetPos;
|
||||
/* 0x170 */ struct Position pixelPos;
|
||||
u32 unk174;
|
||||
u8 fill178[0x17A - 0x178];
|
||||
u16 unk178;
|
||||
/* 0x17A */ u16 mimicMoveIDs[MAX_MON_MOVES]; // All moves that Mimic has copied (not sure on size...)
|
||||
// Previous value of targetPosition for movement, 1 and 2 moves ago.
|
||||
/* 0x184 */ struct Position previousTargetMovePosition1;
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ struct Dungeon
|
|||
s16 unk12;
|
||||
u8 fill14[0xB8 - 0x14];
|
||||
struct Entity *unkB8;
|
||||
u32 unkBC;
|
||||
struct Entity *unkBC;
|
||||
u8 fillC0[0x16D - 0xC0];
|
||||
u8 unk16D;
|
||||
u8 fill16E[0x179 - 0x16E];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,16 @@
|
|||
#ifndef GUARD_DUNGEON_MOVEMENT_H
|
||||
#define GUARD_DUNGEON_MOVEMENT_H
|
||||
#ifndef GUARD_DUNGEON_MOVEMENT
|
||||
#define GUARD_DUNGEON_MOVEMENT
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
u8 GetCrossableTerrain(s16 species);
|
||||
u8 sub_807034C(s16 id, struct Tile *tile);
|
||||
u8 sub_80703A0(struct Entity *pokemon, struct Position *pos);
|
||||
bool8 CanCrossWalls(struct Entity *pokemon);
|
||||
bool8 sub_807049C(struct Entity *pokemon, struct Position *pos);
|
||||
bool8 sub_8070564(struct Entity *pokemon, struct Position *pos);
|
||||
bool8 sub_80705F0(struct Entity *pokemon, struct Position *pos);
|
||||
bool8 sub_80706A4(struct Entity *pokemon, struct Position *pos);
|
||||
s32 CalcSpeedStage(struct Entity *pokemon);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
#ifndef GUARD_DUNGEON_MOVEMENT_1_H
|
||||
#define GUARD_DUNGEON_MOVEMENT_1_H
|
||||
|
||||
#include "dungeon_entity.h"
|
||||
|
||||
u8 sub_80703A0(struct Entity *pokemon, struct Position *pos);
|
||||
bool8 CanCrossWalls(struct Entity *pokemon);
|
||||
bool8 sub_807049C(struct Entity *pokemon, struct Position *pos);
|
||||
bool8 sub_8070564(struct Entity *pokemon, struct Position *pos);
|
||||
bool8 sub_80705F0(struct Entity *pokemon, struct Position *pos);
|
||||
bool8 sub_80706A4(struct Entity *pokemon, struct Position *pos);
|
||||
s32 CalcSpeedStage(struct Entity *pokemon);
|
||||
|
||||
#endif
|
||||
|
|
@ -27,11 +27,7 @@ struct unkStruct_203B2BC
|
|||
u8 fill101[0x11C - 0x104];
|
||||
struct MenuItem menuItems[4];
|
||||
u8 fill120[0x16C - 0x13C];
|
||||
|
||||
// Structure of some sort
|
||||
u16 unk16C;
|
||||
u8 fill170[0x180 - 0x170];
|
||||
|
||||
u16 unk16C[10];
|
||||
struct UnkTextStruct2 unk180[4];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "menu.h"
|
||||
#include "text.h"
|
||||
#include "constants/mailbox.h"
|
||||
#include "code_802C39C.h"
|
||||
|
||||
struct unkStruct_203B304
|
||||
{
|
||||
|
|
@ -12,14 +13,11 @@ struct unkStruct_203B304
|
|||
u32 fallbackState;
|
||||
u8 mailboxIndex;
|
||||
u8 mailIndex;
|
||||
u32 unkC;
|
||||
u8 fill10[0x50 - 0x10];
|
||||
u8 unk50;
|
||||
u8 fill51[0x64 - 0x51];
|
||||
struct unkStruct_802C39C unkC;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
struct MenuStruct unk6C;
|
||||
struct MenuItem unkBC[8];
|
||||
struct MenuItem menuItems[8];
|
||||
u16 unkFC[8];
|
||||
struct UnkTextStruct2 unk10C[4];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -31,6 +31,10 @@ bool8 FailsWhileMuzzled(u16 moveID);
|
|||
bool8 IsSoundMove(struct Move *move);
|
||||
bool8 DoesMoveCharge(u16 move);
|
||||
|
||||
int GetLinkedSequence(int index, struct Move* moves, u16* sequenceMoveIDs);
|
||||
void unk_CopyMoves4To8(struct Move* destMoves, struct Move* srcMoves);
|
||||
void sub_8094060(struct Move* srcMoves, struct Move* destMoves);
|
||||
|
||||
void unk_FixLinkedMovesSetEnabled8_v2(struct Move* move);
|
||||
|
||||
void sub_8092D54(u8 *buffer, struct Move *move);
|
||||
|
|
|
|||
|
|
@ -6,14 +6,11 @@ struct unkStruct_203B308
|
|||
u32 state;
|
||||
u32 unk4;
|
||||
u8 jobIndex;
|
||||
u32 unkC;
|
||||
u8 fill10[0x50 - 0x10];
|
||||
u8 unk50;
|
||||
u8 fill51[0x64 - 0x51];
|
||||
struct unkStruct_802C39C unkC;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
struct MenuStruct unk6C;
|
||||
struct MenuItem unkBC[8];
|
||||
struct MenuItem menuItems[8];
|
||||
u16 unkFC[8];
|
||||
struct UnkTextStruct2 unk10C[4];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ struct PokemonStruct
|
|||
{
|
||||
// size: 0x58
|
||||
/* 0x0 */ u16 unk0; // recruited??
|
||||
/* 0x1 */ bool8 isTeamLeader;
|
||||
/* 0x2 */ bool8 isTeamLeader;
|
||||
/* 0x3 */ u8 unkHasNextStage; // set to a random value?
|
||||
/* 0x4 */ struct DungeonLocation dungeonLocation;
|
||||
/* 0x8 */ s16 speciesNum; // species #
|
||||
|
|
@ -75,7 +75,7 @@ struct PokemonStruct2
|
|||
/* 0x3 */ u8 unkHasNextStage; // unk3
|
||||
/* 0x4 */ struct DungeonLocation dungeonLocation; // unk4
|
||||
/* 0x8 */ u16 IQ; // IQ (other offset)
|
||||
/* 0xA */ u16 unkA;
|
||||
/* 0xA */ s16 unkA;
|
||||
/* 0xC */ u16 unkC;
|
||||
/* 0xE */ s16 speciesNum; // speciesNum (other offset)
|
||||
/* 0x10 */ u16 unk10; // pokeHP
|
||||
|
|
@ -234,6 +234,7 @@ s32 GetEvolutionSequence(struct PokemonStruct* pokemon, struct EvolveStage* a2);
|
|||
void xxx_pokemonstruct_to_pokemon2_808DE50(struct PokemonStruct2* r0, struct PokemonStruct *r1, s32 r2);
|
||||
void SavePokemonStruct(struct unkStruct_8094924* a1, struct PokemonStruct* pokemon);
|
||||
void RestorePokemonStruct(struct unkStruct_8094924*, struct PokemonStruct*);
|
||||
s32 sub_808E218(struct unkStruct_808E218_arg* a1, struct PokemonStruct* pokemon);
|
||||
|
||||
|
||||
#endif // GUARD_POKEMON_H
|
||||
|
|
|
|||
|
|
@ -49,10 +49,10 @@ struct UnkStruct_sub_8011DAC {
|
|||
struct UnkStruct_203B184 {
|
||||
/* 0x0 */ struct TeamInventory *MoneyItems;
|
||||
/* 0x4 */ struct unkStruct_203B45C *recruitedPokemon;
|
||||
/* 0x8 */ u8 *unk8;
|
||||
/* 0xC */ u8 *unkC;
|
||||
/* 0x8 */ struct unkStruct_203B480 *unk8;
|
||||
/* 0xC */ struct unkStruct_203B484 *unkC;
|
||||
/* 0x10 */ u32 *unk10;
|
||||
/* 0x14 */ u32 *unk14;
|
||||
/* 0x14 */ struct unkStruct_203B48C *unk14;
|
||||
/* 0x18 */ struct unkStruct_203B490 *mailInfo;
|
||||
/* 0x1C */ struct RescueTeamData *RescueTeamInfo;
|
||||
/* 0x20 */ u32 unk20;
|
||||
|
|
|
|||
|
|
@ -35,5 +35,6 @@ void TauntStatusTarget(struct Entity * pokemon, struct Entity * target);
|
|||
void HandleStockpile(struct Entity * pokemon, struct Entity * target);
|
||||
void InvisibleStatusTarget(struct Entity * pokemon, struct Entity * target);
|
||||
void PerishSongTarget(struct Entity * pokemon, struct Entity * target);
|
||||
void EncoreStatusTarget(struct Entity * pokemon, struct Entity * target);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@
|
|||
|
||||
struct subStruct_203B240
|
||||
{
|
||||
char * unk0;
|
||||
char * pokeName;
|
||||
char * unk4;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
#ifndef GUARD_SUB_8095228_H
|
||||
#define GUARD_SUB_8095228_H
|
||||
|
||||
#include "dungeon_global_data.h"
|
||||
|
||||
struct unkStruct_8095228
|
||||
{
|
||||
/* 0x0 */ u8 mailType; // mail type
|
||||
/* 0x1 */ u8 missionType; // mission type
|
||||
/* 0x2 */ u8 unk2;
|
||||
/* 0x3 */ u8 unk3;
|
||||
/* 0x4 */ struct DungeonLocation dungeon; // dungeon
|
||||
/* 0x8 */ u32 unk8;
|
||||
/* 0xC */ s16 clientSpecies; // client pokemon
|
||||
/* 0xE */ s16 targetSpecies; // target
|
||||
u32 unk10; // TODO: verify that this is just a union of the 4 bytes in Wonder Mail
|
||||
u8 padding2[0x20 - 0x14];
|
||||
struct Item unk20;
|
||||
u8 padding3[0x28 - 0x24];
|
||||
u32 unk28;
|
||||
s8 unk2C;
|
||||
u8 padding4[0x30 - 0x2D];
|
||||
};
|
||||
|
||||
extern struct unkStruct_8095228 *sub_8095228(u8);
|
||||
|
||||
#endif // GUARD_SUB_8095228_H
|
||||
|
|
@ -12,15 +12,14 @@
|
|||
|
||||
struct unkStruct_802F204
|
||||
{
|
||||
/* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH]; // client name?
|
||||
/* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH];
|
||||
/* 0xA */ u8 name2[POKEMON_NAME_LENGTH]; // target name?
|
||||
/* 0x14 */ s16 unk14; // poke species (client??)
|
||||
/* 0x14 */ s16 clientSpecies;
|
||||
/* 0x16 */ u8 unk16;
|
||||
/* 0x18 */ s32 moneyReward;
|
||||
/* 0x1C */ u8 itemRewards[MAX_ITEM_REWARDS];
|
||||
/* 0x1F */ u8 quantity;
|
||||
/* 0x20 */ u8 friendAreaReward;
|
||||
u8 fill21[0x24 - 0x21];
|
||||
/* 0x24 */ u32 teamRankPtsReward;
|
||||
};
|
||||
|
||||
|
|
|
|||
36
include/wonder_mail_2_1.h
Normal file
36
include/wonder_mail_2_1.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
struct unkStruct_203B2E8
|
||||
{
|
||||
// size: 0xA8
|
||||
u8 pelipperBoardSlots[MAX_ACCEPTED_JOBS];
|
||||
u32 unk8;
|
||||
u8 fillC[0x20 - 0xC];
|
||||
s16 unk20;
|
||||
s16 unk22;
|
||||
s16 unk24;
|
||||
s16 unk26;
|
||||
u16 unk28;
|
||||
u16 acceptedJobs;
|
||||
u16 unk2C;
|
||||
u8 fill2E[0x3C - 0x2E];
|
||||
u32 unk3C;
|
||||
struct UnkTextStruct2 *unk40;
|
||||
struct UnkTextStruct2 unk44[4];
|
||||
u8 unkA4[4];
|
||||
};
|
||||
|
||||
struct unkStruct_203B2F0
|
||||
{
|
||||
// size: 0x1FC
|
||||
u32 unk0;
|
||||
u32 state;
|
||||
u8 unk8[0xC - 0x8];
|
||||
u8 unkC;
|
||||
struct unkStruct_802C39C unk10;
|
||||
u32 menuAction;
|
||||
struct MenuStruct unk6C;
|
||||
struct MenuStruct unkBC;
|
||||
struct MenuItem unk10C[8];
|
||||
struct MenuItem unk14C[8];
|
||||
u8 fill18C[0x19C - 0x18C];
|
||||
struct UnkTextStruct2 unk19C[4];
|
||||
};
|
||||
|
|
@ -1,13 +1,15 @@
|
|||
#include "menu.h"
|
||||
struct unkStruct_203B2F4
|
||||
{
|
||||
u8 fill0[0x1A];
|
||||
u8 fill0[0x18];
|
||||
u8 unk18;
|
||||
u8 unk19;
|
||||
s16 unk1A;
|
||||
s16 unk1C;
|
||||
s16 unk1E;
|
||||
u8 fill20[0x34 - 0x20];
|
||||
u32 unk34;
|
||||
u32 unk38;
|
||||
struct UnkTextStruct2 *unk38;
|
||||
struct UnkTextStruct2 unk3C[4];
|
||||
u8 unk9C[4];
|
||||
};
|
||||
|
|
@ -41,13 +43,7 @@ struct unkStruct_203B2F8
|
|||
u8 unkB;
|
||||
struct unkSubStruct_203B2F8 *mail;
|
||||
u8 jobSlotIndex;
|
||||
u8 fill11[0x14 - 0x11];
|
||||
u32 unk14;
|
||||
u8 fill18[0x58 - 0x18];
|
||||
u8 unk58;
|
||||
u8 fill59[0x64 - 0x59];
|
||||
u8 *unk64;
|
||||
u32 unk68;
|
||||
struct unkStruct_802C39C unk14;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
u32 menuAction3;
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ SECTIONS {
|
|||
src/flash.o(.text);
|
||||
src/code_800D090.o(.text);
|
||||
asm/code_800D090.o(.text);
|
||||
src/code_800D090_1.o(.text);
|
||||
src/code_800DAC0.o(.text);
|
||||
asm/code_800DAC0.o(.text);
|
||||
src/code_80118A4.o(.text);
|
||||
|
|
@ -101,10 +102,6 @@ SECTIONS {
|
|||
src/kangaskhan_storage.o(.text);
|
||||
asm/kangaskhan_storage.o(.text);
|
||||
src/kangaskhan_storage_1.o(.text);
|
||||
asm/kangaskhan_storage_1.o(.text);
|
||||
src/kangaskhan_storage_2.o(.text);
|
||||
asm/kangaskhan_storage_2.o(.text);
|
||||
src/kangaskhan_storage_3.o(.text);
|
||||
src/kecleon_items.o(.text);
|
||||
asm/kecleon_items.o(.text);
|
||||
src/kecleon_items_1.o(.text);
|
||||
|
|
@ -122,13 +119,14 @@ SECTIONS {
|
|||
src/gulpin_shop_1.o(.text);
|
||||
src/code_801EE10.o(.text);
|
||||
asm/code_801EE10.o(.text);
|
||||
src/code_801EE10_mid.o(.text);
|
||||
asm/code_801EE10_mid.o(.text);
|
||||
src/code_8023144.o(.text);
|
||||
asm/code_801EE10_1.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);
|
||||
src/friend_list_menu.o(.text);
|
||||
src/party_list_menu.o(.text);
|
||||
src/friend_area_action_menu.o(.text);
|
||||
asm/friend_area_action_menu.o(.text);
|
||||
src/friend_area_action_menu_1.o(.text);
|
||||
|
|
@ -138,16 +136,10 @@ SECTIONS {
|
|||
src/pokemon_news.o(.text);
|
||||
src/wonder_mail_2_mid.o(.text);
|
||||
src/wonder_mail_2_1.o(.text);
|
||||
asm/wonder_mail_802C860.o(.text);
|
||||
src/wonder_mail_3.o(.text);
|
||||
asm/wonder_mail_3.o(.text);
|
||||
src/wonder_mail_802DF88.o(.text);
|
||||
src/mailbox.o(.text);
|
||||
asm/mailbox.o(.text);
|
||||
src/mailbox_1.o(.text);
|
||||
src/pelipper_board.o(.text);
|
||||
asm/pelipper_board.o(.text);
|
||||
src/pelipper_board_1.o(.text);
|
||||
src/wonder_mail_3_mid.o(.text);
|
||||
asm/wonder_mail_3_mid.o(.text);
|
||||
src/wonder_mail_3_1.o(.text);
|
||||
|
|
@ -181,8 +173,6 @@ SECTIONS {
|
|||
src/debug_menu.o(.text);
|
||||
src/debug_menu_mid.o(.text);
|
||||
asm/debug_menu_1.o(.text);
|
||||
src/debug_menu_2.o(.text);
|
||||
asm/debug_menu_2.o(.text);
|
||||
src/debug_menu_1.o(.text);
|
||||
asm/code_803B050.o(.text);
|
||||
src/code_803B050.o(.text);
|
||||
|
|
@ -210,8 +200,6 @@ SECTIONS {
|
|||
src/dungeon_items.o(.text);
|
||||
asm/code_8046CE4.o(.text);
|
||||
src/code_8048480.o(.text);
|
||||
asm/code_8048480.o(.text);
|
||||
src/code_8048DB8.o(.text);
|
||||
src/dungeon_ai_item_weight.o(.text);
|
||||
src/dungeon_map_access.o(.text);
|
||||
asm/code_80495E4.o(.text);
|
||||
|
|
@ -238,8 +226,6 @@ SECTIONS {
|
|||
asm/code_806E8B0.o(.text);
|
||||
src/status_checks.o(.text);
|
||||
src/dungeon_movement.o(.text);
|
||||
asm/code_807034C.o(.text);
|
||||
src/dungeon_movement_1.o(.text);
|
||||
src/status_checks_1.o(.text);
|
||||
src/dungeon_capabilities.o(.text);
|
||||
asm/code_8070BC0.o(.text);
|
||||
|
|
@ -313,8 +299,6 @@ SECTIONS {
|
|||
asm/code_8094D28.o(.text);
|
||||
src/play_time.o(.text);
|
||||
src/code_8094F88.o(.text);
|
||||
asm/code_8095014.o(.text);
|
||||
src/code_8095824.o(.text);
|
||||
src/code_80958E8.o(.text);
|
||||
asm/code_80958E8.o(.text);
|
||||
src/code_80958E8_mid.o(.text);
|
||||
|
|
@ -429,6 +413,9 @@ SECTIONS {
|
|||
src/save.o(.rodata);
|
||||
src/menu_input.o(.rodata);
|
||||
data/data_80D47B8.o(.rodata);
|
||||
src/luminous_cave.o(.rodata);
|
||||
src/friend_list_menu.o(.rodata);
|
||||
src/party_list_menu.o(.rodata);
|
||||
src/friend_area_action_menu.o(.rodata);
|
||||
src/friend_area_action_menu_1.o(.rodata);
|
||||
src/wonder_mail.o(.rodata);
|
||||
|
|
@ -452,12 +439,15 @@ SECTIONS {
|
|||
data/data_80E2068.o(.rodata);
|
||||
src/main_menu.o(.rodata);
|
||||
src/trade_items_menu.o(.rodata);
|
||||
data/data_80E59A8.o(.rodata);
|
||||
src/other_menus.o(.rodata);
|
||||
src/unk_menu_203B360.o(.rodata);
|
||||
src/save_menu.o(.rodata);
|
||||
data/data_80E6F20.o(.rodata);
|
||||
src/rescue_password_menu.o(.rodata);
|
||||
src/load_screen.o(.rodata);
|
||||
src/wonder_mail_main_menu.o(.rodata);
|
||||
src/debug_menu.o(.rodata);
|
||||
src/debug_menu_mid.o(.rodata);
|
||||
src/debug_menu_1.o(.rodata);
|
||||
data/data_80E7D40.o(.rodata);
|
||||
src/pokemon_mail.o(.rodata);
|
||||
data/personality_test.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ struct AdventureLog
|
|||
u8 unk9C[4];
|
||||
};
|
||||
|
||||
extern struct AdventureLog *gAdventureLog;
|
||||
EWRAM_DATA_2 struct AdventureLog *gAdventureLog = {0};
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E1FF0 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ extern void sub_8097670(void);
|
|||
extern void LoadGameOptions(void);
|
||||
extern void SetWindowBGColor(void);
|
||||
extern void LoadItemParameters(void);
|
||||
extern void sub_80950BC(void);
|
||||
extern void LoadMailInfo(void);
|
||||
extern void sub_800CD64(u32, u32);
|
||||
extern void SetWindowTitle(char *);
|
||||
|
|
|
|||
63
src/code_800D090_1.c
Normal file
63
src/code_800D090_1.c
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
#include "global.h"
|
||||
|
||||
void nullsub_189(void)
|
||||
{}
|
||||
|
||||
void nullsub_190(void)
|
||||
{}
|
||||
|
||||
void nullsub_191(void)
|
||||
{}
|
||||
|
||||
void nullsub_192(void)
|
||||
{}
|
||||
|
||||
void nullsub_193(void)
|
||||
{}
|
||||
|
||||
void nullsub_194(void)
|
||||
{}
|
||||
|
||||
void nullsub_195(void)
|
||||
{}
|
||||
|
||||
u32 sub_800DA94(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_800DA98(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_800DA9C(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nullsub_196(void)
|
||||
{}
|
||||
|
||||
void nullsub_197(void)
|
||||
{}
|
||||
|
||||
void nullsub_198(void)
|
||||
{}
|
||||
|
||||
u32 sub_800DAAC(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_800DAB0(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_800DAB4(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_800DAB8(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_800DABC(void) {
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -8,12 +8,7 @@
|
|||
#include "pokemon.h"
|
||||
#include "team_inventory.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct subStruct_203B240
|
||||
{
|
||||
char * pokeName;
|
||||
char * unk4;
|
||||
};
|
||||
#include "subStruct_203B240.h"
|
||||
|
||||
// based off of 203B240..
|
||||
struct unkStruct_203B230
|
||||
|
|
@ -501,15 +496,15 @@ void sub_801B874(void)
|
|||
|
||||
void sub_801BB20(void)
|
||||
{
|
||||
struct unkStruct_203B234 *preload;
|
||||
u8 *nullText;
|
||||
s32 loopMax;
|
||||
|
||||
preload = gUnknown_203B234;
|
||||
nullText = NULL;
|
||||
preload->unkCC[0].text = gKangaskhanTrashToolboxItem;
|
||||
preload->unkCC[0].menuAction = 4;
|
||||
preload->unkCC[1].text = gKangaskhanTrashReceivedItem;
|
||||
preload->unkCC[1].menuAction = 5;
|
||||
preload->unkCC[2].text = nullText;
|
||||
preload->unkCC[2].menuAction = -1;
|
||||
loopMax = 0;
|
||||
gUnknown_203B234->unkCC[loopMax].text = gKangaskhanTrashToolboxItem;
|
||||
gUnknown_203B234->unkCC[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B234->unkCC[loopMax].text = gKangaskhanTrashReceivedItem;
|
||||
gUnknown_203B234->unkCC[loopMax].menuAction = 5;
|
||||
loopMax += 1;
|
||||
gUnknown_203B234->unkCC[loopMax].text = NULL;
|
||||
gUnknown_203B234->unkCC[loopMax].menuAction = -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,7 +121,6 @@ struct unk_203B250
|
|||
u8 unk7;
|
||||
u8 unk8;
|
||||
u8 unk9;
|
||||
u8 fillA[0xC - 0xA];
|
||||
struct PokemonStruct *unkC;
|
||||
u32 state;
|
||||
u32 menuAction;
|
||||
|
|
@ -914,7 +913,7 @@ void sub_801C6E4(void)
|
|||
sub_8008C54(gUnknown_203B240->unk24);
|
||||
sub_80073B8(gUnknown_203B240->unk24);
|
||||
preload = gUnknown_203B240->unk10[gUnknown_203B240->unk8];
|
||||
strcpy(gAvailablePokemonNames,preload->unk0);
|
||||
strcpy(gAvailablePokemonNames,preload->pokeName);
|
||||
xxx_format_and_draw(16,0,gUnknown_80DBE30,gUnknown_203B240->unk24,0); // {ARG_POKEMON_0}
|
||||
xxx_format_and_draw(4,16,gUnknown_203B240->unk10[gUnknown_203B240->unk8]->unk4, gUnknown_203B240->unk24,0);
|
||||
sub_80073E0(gUnknown_203B240->unk24);
|
||||
|
|
|
|||
214
src/code_801EE10_mid.c
Normal file
214
src/code_801EE10_mid.c
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "pokemon.h"
|
||||
#include "input.h"
|
||||
#include "code_800D090.h"
|
||||
#include "moves.h"
|
||||
|
||||
struct unkStruct_203B274
|
||||
{
|
||||
// size: 0x3e8
|
||||
struct PokemonStruct *pokeStruct;
|
||||
struct unkStruct_808E218_arg *unk4;
|
||||
struct unkStruct_808E218_arg unk8;
|
||||
u32 unk348;
|
||||
u8 fill34C[0x360 - 0x34C];
|
||||
s16 unk360;
|
||||
s16 unk362;
|
||||
s16 unk364;
|
||||
s16 unk366;
|
||||
s16 unk368;
|
||||
u8 fill36A[0x37C - 0x36A];
|
||||
s32 unk37C;
|
||||
struct UnkTextStruct2 *unk380;
|
||||
struct UnkTextStruct2 unk384[4];
|
||||
u8 unk3E4[4];
|
||||
};
|
||||
extern struct unkStruct_203B274 *gUnknown_203B274;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC2C4;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC2AC;
|
||||
|
||||
extern u8 gUnknown_80DC2DC[];
|
||||
|
||||
extern void sub_8013818(u32 *, u32, u32, u32);
|
||||
extern s32 GetKeyPress(void *);
|
||||
extern void sub_8013660(void *);
|
||||
extern void AddMenuCursorSprite(void *);
|
||||
extern u8 sub_80138B8(u32 *, u32);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern void sub_8013984(void *);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern s32 sub_8013800(u32 *, s32);
|
||||
extern void xxx_call_draw_string(s32, s32, u8 *, s32, s32);
|
||||
|
||||
u32 sub_801F7E4(void);
|
||||
void sub_801F690(void);
|
||||
void sub_801F700(void);
|
||||
|
||||
bool8 sub_801F428(s16 index, s32 param_2) {
|
||||
|
||||
s32 index_s32 = index;
|
||||
gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8);
|
||||
gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32];
|
||||
gUnknown_203B274->unk4 = &gUnknown_203B274->unk8;
|
||||
gUnknown_203B274->unk37C = param_2;
|
||||
gUnknown_203B274->unk380 = &gUnknown_203B274->unk384[gUnknown_203B274->unk37C];
|
||||
sub_8006518(gUnknown_203B274->unk384);
|
||||
gUnknown_203B274->unk384[gUnknown_203B274->unk37C] = gUnknown_80DC2C4;
|
||||
gUnknown_203B274->unk380->unk14 = gUnknown_203B274->unk3E4;
|
||||
gUnknown_203B274->unk3E4[0] = 1;
|
||||
gUnknown_203B274->unk3E4[1] = 0;
|
||||
gUnknown_203B274->unk3E4[2] = 0xC;
|
||||
gUnknown_203B274->unk3E4[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, 1, 1);
|
||||
sub_8013818(&gUnknown_203B274->unk348, sub_801F7E4(), 4, param_2);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_801F520(u8 param_1)
|
||||
{
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(&gUnknown_203B274->unk348);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
switch(GetKeyPress(&gUnknown_203B274->unk348))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 4:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (sub_80138B8(&gUnknown_203B274->unk348,1) != 0) {
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_801F5B4(void)
|
||||
{
|
||||
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->unk366 * gUnknown_203B274->unk364 + gUnknown_203B274->unk360];
|
||||
}
|
||||
|
||||
void sub_801F5F0(u8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, 0, 0);
|
||||
sub_8013984(&gUnknown_203B274->unk348);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
if(r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B274->unk348);
|
||||
}
|
||||
|
||||
void sub_801F63C(void)
|
||||
{
|
||||
if(gUnknown_203B274 != NULL)
|
||||
{
|
||||
gUnknown_203B274->unk384[gUnknown_203B274->unk37C] = gUnknown_80DC2AC;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, 1, 1);
|
||||
MemoryFree(gUnknown_203B274);
|
||||
gUnknown_203B274 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_801F690(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,r5,lr}\n"
|
||||
"\tldr r5, _0801F6F4\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r1, _0801F6F8\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tldrsh r0, [r0, r2]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r3, [r5]\n"
|
||||
"\tmovs r1, 0xDF\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r4, r3, r1\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tlsls r1, r2, 1\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r3, r1\n"
|
||||
"\tldr r2, _0801F6FC\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tasrs r2, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r4]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tadds r2, 0x2\n"
|
||||
"\tmovs r0, 0xE5\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tstrh r2, [r3]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r1, 0xE1\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801F6F4: .4byte gUnknown_203B274\n"
|
||||
"_0801F6F8: .4byte 0x00000362\n"
|
||||
"_0801F6FC: .4byte 0x00000392");
|
||||
}
|
||||
|
||||
void sub_801F700(void)
|
||||
{
|
||||
u32 y;
|
||||
int index;
|
||||
u8 buffer2 [48];
|
||||
u8 buffer1 [128];
|
||||
|
||||
sub_8008C54(gUnknown_203B274->unk37C);
|
||||
sub_80073B8(gUnknown_203B274->unk37C);
|
||||
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->unk366 + 1,gUnknown_203B274->unk368); // Moves Page: %d/%d
|
||||
xxx_call_draw_string(0x10,0,buffer1,gUnknown_203B274->unk37C,0);
|
||||
for(index = 0; index < gUnknown_203B274->unk362; index++)
|
||||
{
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->unk366 * gUnknown_203B274->unk364 + index]);
|
||||
y = sub_8013800(&gUnknown_203B274->unk348, index);
|
||||
xxx_call_draw_string(8,y,buffer2,gUnknown_203B274->unk37C,0);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B274->unk37C);
|
||||
}
|
||||
|
||||
u32 sub_801F7E4(void)
|
||||
{
|
||||
sub_808E218(gUnknown_203B274->unk4, gUnknown_203B274->pokeStruct);
|
||||
return gUnknown_203B274->unk4->count;
|
||||
}
|
||||
|
|
@ -71,20 +71,25 @@ struct unkStruct_203B294
|
|||
struct MenuStruct unk54;
|
||||
struct MenuStruct unkA4;
|
||||
u32 menuAction;
|
||||
u32 unkF8;
|
||||
u16 unkFC;
|
||||
struct MenuItem unkF8[0x8];
|
||||
u16 unk138[0x8];
|
||||
};
|
||||
|
||||
struct unkStruct_203B294 *gUnknown_203B294;
|
||||
|
||||
extern u8 gUnknown_80DC5EC[];
|
||||
extern u8 gUnknown_202DE58[];
|
||||
extern u8 gUnknown_80DC8F0[];
|
||||
extern u8 gUnknown_80DC8F8[];
|
||||
extern u8 *gUnknown_80D4940[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
extern void sub_8022924(s32);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern u32 sub_801B00C(void);
|
||||
extern void sub_801B048(void);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
|
||||
void GetGummiItemStatBoost(struct PokemonStruct* pokemon, u8 id, bool8 checkBoostFlags, struct Gummi* gummi);
|
||||
|
||||
extern u32 sub_801A6E8(u32);
|
||||
|
|
@ -93,6 +98,56 @@ extern void sub_801A928(void);
|
|||
s32 GetNumAvailableIQSkills(u8 *iqSkillBuffer, s32 pokeIQ);
|
||||
extern u32 sub_801A8AC(void);
|
||||
|
||||
void sub_8022D2C(void) {
|
||||
s32 index;
|
||||
s32 loopMax = 0;
|
||||
MemoryFill16(gUnknown_203B294->unk138, 0, sizeof(gUnknown_203B294->unk138));
|
||||
if(gUnknown_203B294->pokeStruct)
|
||||
{
|
||||
gUnknown_203B294->unkF8[loopMax].text = gUnknown_80DC8F0;
|
||||
gUnknown_203B294->unkF8[loopMax].menuAction = 5;
|
||||
if(!IsGummiItem(gUnknown_203B294->item.id))
|
||||
{
|
||||
gUnknown_203B294->unk138[loopMax] = 1;
|
||||
}
|
||||
loopMax += 1;
|
||||
}
|
||||
else {
|
||||
if(GetItemCategory(gUnknown_203B294->item.id) == CATEGORY_TMS_HMS)
|
||||
{
|
||||
gUnknown_203B294->unkF8[loopMax].text = gUnknown_80DC8F8;
|
||||
gUnknown_203B294->unkF8[loopMax].menuAction = 6;
|
||||
loopMax += 1;
|
||||
}
|
||||
gUnknown_203B294->unkF8[loopMax].text = *gUnknown_80D4940;
|
||||
gUnknown_203B294->unkF8[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
}
|
||||
gUnknown_203B294->unkF8[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B294->unkF8[loopMax].menuAction = 7;
|
||||
loopMax += 1;
|
||||
gUnknown_203B294->unkF8[loopMax].text = NULL;
|
||||
gUnknown_203B294->unkF8[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B294->unk138[index] == 0)
|
||||
{
|
||||
if(gUnknown_203B294->unkF8[index].menuAction == gUnknown_203B294->menuAction)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B294->unk138[index] == 0)
|
||||
{
|
||||
gUnknown_203B294->menuAction = gUnknown_203B294->unkF8[index].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8022E78(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
|
|
|
|||
|
|
@ -1,19 +1,32 @@
|
|||
#include "global.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "constants/dungeon_action.h"
|
||||
#include "constants/iq_skill.h"
|
||||
#include "constants/status.h"
|
||||
#include "constants/type.h"
|
||||
#include "dungeon_action.h"
|
||||
#include "dungeon_entity.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "move_effects_target.h"
|
||||
#include "dungeon_capabilities.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "number_util.h"
|
||||
#include "moves.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_80521D0.h"
|
||||
#include "pokemon.h"
|
||||
#include "position.h"
|
||||
#include "status.h"
|
||||
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
extern u8 gUnknown_202DE58[];
|
||||
|
||||
extern s16 gTypeGummiIQBoost[NUM_TYPES][NUMBER_OF_GUMMIS];
|
||||
extern s16 gUnknown_810A808[NUM_TYPES][NUMBER_OF_GUMMIS];
|
||||
|
||||
extern u8 *gUnknown_80F89F4[];
|
||||
extern u8 gAvailablePokemonNames[0x58];
|
||||
extern u8 *gUnknown_80FB580[];
|
||||
extern s16 gUnknown_80F4FB6;
|
||||
extern s16 gUnknown_80F4FB8;
|
||||
|
|
@ -25,7 +38,9 @@ extern s16 gUnknown_80F4FAA; // 0x1E
|
|||
extern s16 gUnknown_80F4FA8; // 0xF
|
||||
extern s16 gUnknown_80F4FA4; // 0x14
|
||||
extern s16 gUnknown_80F4FA6; // 0x2D
|
||||
|
||||
extern u32 gUnknown_8106A4C;
|
||||
extern u32 gUnknown_8106A50;
|
||||
extern s16 gUnknown_80F4FAC;
|
||||
|
||||
extern u8 *gUnknown_80FEAE8[];
|
||||
extern u8 *gUnknown_80FDBA0[];
|
||||
|
|
@ -35,11 +50,45 @@ extern u8 *gUnknown_80FE454[];
|
|||
extern u8 *gPtrSelfHealPreventedHungerMessage[];
|
||||
extern u8 *gUnknown_80F9740[];
|
||||
extern u8 *gUnknown_80F9760[];
|
||||
extern u8 *gUnknown_80FD644[];
|
||||
extern u8 *gUnknown_80FD648[];
|
||||
extern u8 *gUnknown_80FD6E8[];
|
||||
extern u8 *gPtrCantUseInDungeonMessage[];
|
||||
extern u8 *gUnknown_80FE3E8[];
|
||||
extern u8 *gPtrMusicBoxPlayedCrumbledMessage[];
|
||||
extern u8 *gPtrWishStoneCrumbledMessage[];
|
||||
extern u8 *gPtrIcePartCrumbledMessage[];
|
||||
extern u8 *gPtrRockPartCrumbledMessage[];
|
||||
extern u8 *gPtrSteelPartCrumbledMessage[];
|
||||
extern u8 *gUnknown_80FDCA4[];
|
||||
extern u8 *gUnknown_80FE3E8[];
|
||||
extern u8 *gUnknown_80FECA0[];
|
||||
extern u8 *gUnknown_80FE3E8[];
|
||||
extern u8 *gUnknown_80F9BD8[];
|
||||
|
||||
extern void sub_80421C0(struct Entity *r0, u16 r1);
|
||||
extern void sub_8078B5C(struct Entity *, struct Entity *, u32, u32, u32);
|
||||
extern u8 sub_806A538(s32);
|
||||
extern void sub_8051E7C(struct Entity *pokemon);
|
||||
extern void sub_8045BF8(u8 *, struct Item *);
|
||||
extern void sub_8063B54(struct ActionContainer *);
|
||||
extern void sub_80637E8(struct ActionContainer *);
|
||||
extern void sub_8063BB4(struct ActionContainer *);
|
||||
extern void sub_8063CF0(struct ActionContainer *, u32);
|
||||
extern void sub_8063A70(struct ActionContainer *, u32);
|
||||
extern u8 sub_8062F90(struct Entity *, u32, u32, u32, u32);
|
||||
extern void sub_8044DF0(struct Entity *, u32, u32);
|
||||
extern s32 sub_8052B8C(u32, u8 *, u32);
|
||||
extern void sub_803EAF0(u32, u32);
|
||||
extern void sub_8044C10(bool8);
|
||||
struct Entity *DrawFieldGiveItemMenu(u32, u32);
|
||||
extern void PrintFieldMessage(u32, u8 *, u32);
|
||||
extern void sub_8044E24(u32, u32, u32);
|
||||
extern void sub_804245C(u32, struct Item *);
|
||||
extern u8 sub_8072938(struct Entity *, u16);
|
||||
extern void sub_807D148(struct Entity *pokemon, struct Entity *r1, u32 r2, struct Position *r3);
|
||||
extern void sub_8072008(struct Entity *pokemon, struct Entity *r1, u32 r2, u8 r3, u32);
|
||||
extern void LevelDownTarget(struct Entity *pokemon, struct Entity *r1, u32 r2);
|
||||
extern void sub_8078B5C(struct Entity *, struct Entity *, u32, u32, u32);
|
||||
extern void SetMessageArgument(u8 *buffer, struct Entity *r1, u32);
|
||||
extern void sub_80522F4(struct Entity *pokemon, struct Entity *r1, const char[]);
|
||||
extern void sub_806F370(struct Entity *pokemon, struct Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
|
|
@ -48,6 +97,8 @@ extern s32 sub_8042520(struct Entity *);
|
|||
struct Entity *sub_80696FC(struct Entity *);
|
||||
extern void sub_80943A0(void*, s32);
|
||||
extern void sub_803E708(u32 r0, u32 r1);
|
||||
extern void sub_806A7E8(struct EntityInfo *, s32);
|
||||
|
||||
|
||||
void sub_8048340(struct Entity *pokemon, struct Entity *target, u32 r2)
|
||||
{
|
||||
|
|
@ -200,8 +251,13 @@ void sub_80485B0(struct Entity *pokemon, struct Entity * target)
|
|||
bool8 isMoveBoosted;
|
||||
s32 moveIndex;
|
||||
struct EntityInfo *entityInfo;
|
||||
#ifndef NONMATCHING
|
||||
register struct Move *movePtr1 asm("r4"); // r4
|
||||
register struct Move *movePtr2 asm("r5"); // r5
|
||||
#else
|
||||
struct Move *movePtr1; // r4
|
||||
struct Move *movePtr2; // r5
|
||||
#endif
|
||||
u8 moveBoost;
|
||||
s32 movePowerBoost;
|
||||
s32 maxPowerBoost;
|
||||
|
|
@ -294,3 +350,433 @@ void sub_80487CC(struct Entity *pokemon, struct Entity * target, u32 param_3, u3
|
|||
{
|
||||
sub_8078B5C(pokemon, target, param_3, param_4, 1);
|
||||
}
|
||||
|
||||
static inline bool8 JoinLocationCannotUseItems_1(struct EntityInfo *pokemonInfo)
|
||||
{
|
||||
if (pokemonInfo->joinedAt == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (pokemonInfo->joinedAt == DUNGEON_RESCUE_TEAM_BASE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80487E0(struct Entity *pokemon, struct Entity *target, u8 gummiIndex)
|
||||
{
|
||||
s32 iVar3;
|
||||
struct EntityInfo *targetInfo;
|
||||
s32 gummiBoost;
|
||||
s32 baseIQ;
|
||||
s32 iVar4;
|
||||
s32 iVar5;
|
||||
s32 currIQ;
|
||||
|
||||
targetInfo = target->info;
|
||||
gummiBoost = gTypeGummiIQBoost[targetInfo->types[0]][gummiIndex];
|
||||
gummiBoost += gTypeGummiIQBoost[targetInfo->types[1]][gummiIndex];
|
||||
sub_8078B5C(pokemon,target,
|
||||
gUnknown_810A808[targetInfo->types[0]][gummiIndex] +
|
||||
gUnknown_810A808[targetInfo->types[1]][gummiIndex],0,1);
|
||||
if (!targetInfo->isNotTeamMember) {
|
||||
if (!JoinLocationCannotUseItems_1(targetInfo)) {
|
||||
baseIQ = targetInfo->IQ;
|
||||
targetInfo->IQ += gummiBoost;
|
||||
currIQ = baseIQ + gummiBoost;
|
||||
if (targetInfo->IQ <= 0) {
|
||||
targetInfo->IQ = 1;
|
||||
}
|
||||
if (999 < targetInfo->IQ) {
|
||||
targetInfo->IQ = 999;
|
||||
}
|
||||
if (baseIQ == targetInfo->IQ) {
|
||||
sub_80522F4(pokemon,target,*gUnknown_80FD644);
|
||||
}
|
||||
else {
|
||||
iVar5 = currIQ - baseIQ;
|
||||
iVar4 = 0;
|
||||
if (((iVar5 < 9) && (iVar4 = 1, iVar5 < 5)) && (iVar4 = 3, 2 < iVar5)) {
|
||||
iVar4 = 2;
|
||||
}
|
||||
iVar5 = targetInfo->IQ - baseIQ;
|
||||
iVar3 = 0;
|
||||
if (((iVar5 < 9) && (iVar3 = 1, iVar5 < 5)) && (iVar3 = 3, 2 < iVar5)) {
|
||||
iVar3 = 2;
|
||||
}
|
||||
sub_80522F4(pokemon,target,gUnknown_80FD648[iVar4]);
|
||||
sub_80522F4(pokemon,target,gUnknown_80FD6E8[iVar3]);
|
||||
LoadIQSkills(target);
|
||||
sub_806A7E8(targetInfo,baseIQ);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804891C(struct Entity *pokemon, struct Entity *target)
|
||||
{
|
||||
RaiseAtkStatTarget(pokemon, target, 3);
|
||||
}
|
||||
|
||||
void sub_8048928(struct Entity *pokemon, struct Entity *target)
|
||||
{
|
||||
RaiseSpAtkStatTarget(pokemon, target, 3);
|
||||
}
|
||||
|
||||
void sub_8048934(struct Entity *pokemon, struct Entity *target)
|
||||
{
|
||||
RaiseDefStatTarget(pokemon, target, 3);
|
||||
}
|
||||
|
||||
void sub_8048940(struct Entity *pokemon, struct Entity *target)
|
||||
{
|
||||
RaiseSpDefStatTarget(pokemon, target, 3);
|
||||
}
|
||||
|
||||
void nullsub_94(void)
|
||||
{}
|
||||
|
||||
static inline bool8 JoinLocationCannotUseItems_2(struct EntityInfo *pokemonInfo)
|
||||
{
|
||||
if (pokemonInfo->joinedAt == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (pokemonInfo->joinedAt == DUNGEON_RESCUE_TEAM_BASE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8048950(u32 param_1,struct Item *item)
|
||||
{
|
||||
u8 flag;
|
||||
u16 moveID;
|
||||
struct Entity *entity2;
|
||||
struct Entity *entity;
|
||||
struct EntityInfo *entityInfo;
|
||||
int index;
|
||||
|
||||
moveID = GetItemMoveID(item->id);
|
||||
if ((item->flags & ITEM_FLAG_STICKY)) {
|
||||
PrintFieldMessage(0,*gUnknown_80FE3E8,1);
|
||||
return FALSE;
|
||||
}
|
||||
else if (IsHMItem(item->id)) {
|
||||
PrintFieldMessage(0,*gPtrCantUseInDungeonMessage,1);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(index = 0; index < MAX_TEAM_MEMBERS; index++)
|
||||
{
|
||||
entity = gDungeon->teamPokemon[index];
|
||||
if (EntityExists(entity)) {
|
||||
entityInfo = entity->info;
|
||||
flag = CanMonLearnMove(moveID, entityInfo->id);
|
||||
if (CannotMove(entity, FALSE)) {
|
||||
flag = FALSE;
|
||||
}
|
||||
if (entityInfo->clientType == CLIENT_TYPE_CLIENT) {
|
||||
flag = FALSE;
|
||||
}
|
||||
if (JoinLocationCannotUseItems_2(entityInfo)) {
|
||||
flag = FALSE;
|
||||
}
|
||||
entityInfo->unk157 = flag;
|
||||
}
|
||||
}
|
||||
entity2 = DrawFieldGiveItemMenu(0,1);
|
||||
if (!EntityExists(entity2)) {
|
||||
return FALSE;
|
||||
}
|
||||
sub_804245C(param_1,item);
|
||||
if (sub_8072938(entity2,moveID) == 0) {
|
||||
return FALSE;
|
||||
}
|
||||
sub_8044E24(param_1,0,0x141);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static inline bool8 JoinLocationCannotUseItems_3(struct EntityInfo *pokemonInfo)
|
||||
{
|
||||
if (pokemonInfo->joinedAt == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (pokemonInfo->joinedAt == DUNGEON_RESCUE_TEAM_BASE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8048A68(u32 param_1,struct Item *item)
|
||||
{
|
||||
u8 flag;
|
||||
struct Entity *entity2;
|
||||
struct Entity *entity;
|
||||
struct EntityInfo *pEVar6;
|
||||
s32 index;
|
||||
struct PokemonStruct2 *pokemon;
|
||||
|
||||
if ((item->flags & ITEM_FLAG_STICKY)) {
|
||||
PrintFieldMessage(0,*gUnknown_80FE3E8,1);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gDungeon->unk65C == 0) {
|
||||
PrintFieldMessage(0,*gUnknown_80F9BD8,1);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(index = 0; index < MAX_TEAM_MEMBERS; index++)
|
||||
{
|
||||
entity = gDungeon->teamPokemon[index];
|
||||
if (EntityExists(entity)) {
|
||||
pEVar6 = entity->info;
|
||||
flag = TRUE;
|
||||
if(((MAX_TEAM_MEMBERS - 1) < pEVar6->teamIndex))
|
||||
flag = FALSE;
|
||||
else
|
||||
{
|
||||
pokemon = &gRecruitedPokemonRef->pokemon2[pEVar6->teamIndex];
|
||||
if (sub_806A538(pokemon->unkA))
|
||||
flag = FALSE;
|
||||
}
|
||||
|
||||
if (CannotMove(entity, FALSE)) {
|
||||
flag = FALSE;
|
||||
}
|
||||
if (pEVar6->clientType == CLIENT_TYPE_CLIENT) {
|
||||
flag = FALSE;
|
||||
}
|
||||
if (JoinLocationCannotUseItems_3(pEVar6)) {
|
||||
flag = FALSE;
|
||||
}
|
||||
if (pEVar6->isTeamLeader) {
|
||||
flag = FALSE;
|
||||
}
|
||||
pEVar6->unk157 = flag;
|
||||
}
|
||||
}
|
||||
entity2 = DrawFieldGiveItemMenu(0,1);
|
||||
if (!EntityExists(entity2)) {
|
||||
return FALSE;
|
||||
}
|
||||
sub_804245C(param_1,item);
|
||||
gDungeon->unkBC = entity2;
|
||||
sub_8044E24(param_1,0,0x142);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static inline bool8 JoinLocationCannotUseItems_4(struct EntityInfo *pokemonInfo)
|
||||
{
|
||||
if (pokemonInfo->joinedAt == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (pokemonInfo->joinedAt == DUNGEON_RESCUE_TEAM_BASE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// TODO: should be bool8
|
||||
bool32 sub_8048B9C(struct Entity *entity,struct Item *param_2)
|
||||
{
|
||||
#ifndef NONMATCHING
|
||||
register bool32 bVar2 asm("r8");
|
||||
#else
|
||||
bool32 bVar2;
|
||||
#endif
|
||||
bool8 flag;
|
||||
struct EntityInfo *entityInfo;
|
||||
struct Entity * entity2;
|
||||
int index;
|
||||
struct Entity *entity1;
|
||||
struct EntityInfo *entity1Info;
|
||||
struct ActionContainer *actionPointer;
|
||||
struct ActionContainer actionContainer;
|
||||
u16 action;
|
||||
|
||||
bVar2 = FALSE;
|
||||
entityInfo = entity->info;
|
||||
actionPointer = &(entityInfo->action);
|
||||
if ((param_2->flags & ITEM_FLAG_STICKY)) {
|
||||
PrintFieldMessage(0,*gUnknown_80FE3E8,1);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(index = 0; index < MAX_TEAM_MEMBERS; index++)
|
||||
{
|
||||
entity1 = gDungeon->teamPokemon[index];
|
||||
if (EntityExists(entity1)) {
|
||||
entity1Info = entity1->info;
|
||||
flag = TRUE;
|
||||
if(CannotMove(entity1, FALSE))
|
||||
{
|
||||
flag = FALSE;
|
||||
}
|
||||
if(entity1Info->clientType == CLIENT_TYPE_CLIENT)
|
||||
{
|
||||
flag = FALSE;
|
||||
}
|
||||
if(JoinLocationCannotUseItems_4(entity1Info))
|
||||
{
|
||||
flag = FALSE;
|
||||
}
|
||||
entity1Info->unk157 = flag;
|
||||
}
|
||||
}
|
||||
entity2 = DrawFieldGiveItemMenu(0,1);
|
||||
if (!EntityExists(entity2)) {
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
while( TRUE ) {
|
||||
entityInfo = entity2->info;
|
||||
actionContainer = *actionPointer;
|
||||
goto _clear;
|
||||
_load:
|
||||
action = actionPointer->action;
|
||||
if (action == ACTION_UNK1D) {
|
||||
sub_80637E8(actionPointer);
|
||||
}
|
||||
else if (action == ACTION_UNK20) {
|
||||
sub_803EAF0(0,0);
|
||||
sub_8063BB4(actionPointer);
|
||||
sub_8044C10(TRUE);
|
||||
bVar2 = TRUE;
|
||||
}
|
||||
else if (action == ACTION_UNK21) {
|
||||
sub_803EAF0(0,0);
|
||||
sub_8063CF0(actionPointer,0);
|
||||
sub_8044C10(TRUE);
|
||||
}
|
||||
else if ((action == ACTION_SET_MOVE) || (action == ACTION_UNSET_MOVE)) {
|
||||
sub_803EAF0(0,0);
|
||||
sub_8063A70(actionPointer,0);
|
||||
}
|
||||
else if (action == ACTION_UNK1F) {
|
||||
sub_803EAF0(0,0);
|
||||
sub_8063B54(actionPointer);
|
||||
}
|
||||
_clear:
|
||||
ClearMonsterActionFields(actionPointer);
|
||||
if (sub_8062F90(entity2,1,0,0,1) != 0) {
|
||||
if (bVar2)
|
||||
{
|
||||
if (sub_8052B8C(0,*gUnknown_80FECA0,1) == 1) {
|
||||
*actionPointer = actionContainer;
|
||||
sub_8044DF0(entity,0,0x6e);
|
||||
SetMonsterActionFields(actionPointer,0x2c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8044C10(TRUE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
goto _load;
|
||||
}
|
||||
}
|
||||
}
|
||||
return bVar2;
|
||||
}
|
||||
|
||||
bool8 sub_8048D50(struct Entity * pokemon, struct Item *item)
|
||||
{
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
|
||||
if ((item->flags & ITEM_FLAG_STICKY) != 0) {
|
||||
sub_8045BF8(gUnknown_202DE58, item);
|
||||
SendMessage(pokemon,*gUnknown_80FE3E8);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((entityInfo->muzzled == TRUE) && (IsEdibleItem(item->id))) {
|
||||
SetMessageArgument(gAvailablePokemonNames,pokemon,0);
|
||||
SendMessage(pokemon,*gUnknown_80FDCA4);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8048DB8(struct Entity *pokemon, struct Entity *target, u8 r2)
|
||||
{
|
||||
u8 temp;
|
||||
if(r2 != 0)
|
||||
sub_806F370(pokemon, target, gUnknown_80F4FAC, 1, &temp, 0, 0x217, 0, 0, 0);
|
||||
else
|
||||
sub_8051E7C(pokemon);
|
||||
}
|
||||
|
||||
void sub_8048E04(struct Entity *pokemon, struct Entity * target)
|
||||
{
|
||||
sub_8078B5C(pokemon, target, 0x1E, 0, 1);
|
||||
switch(DungeonRandInt(5))
|
||||
{
|
||||
case 0:
|
||||
PoisonedStatusTarget(pokemon, target, TRUE);
|
||||
break;
|
||||
case 1:
|
||||
ImmobilizedStatusTarget(pokemon, target);
|
||||
break;
|
||||
case 2:
|
||||
BurnedStatusTarget(pokemon, target, 1, TRUE);
|
||||
break;
|
||||
case 3:
|
||||
ParalyzeStatusTarget(pokemon, target, TRUE);
|
||||
break;
|
||||
case 4:
|
||||
LowerAttackStageTarget(pokemon, target, gUnknown_8106A4C, 3, 1, TRUE);
|
||||
LowerAttackStageTarget(pokemon, target, gUnknown_8106A50, 3, 1, TRUE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8048EB0(struct Entity *pokemon)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrIcePartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048EC4(struct Entity *pokemon)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrRockPartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048ED8(struct Entity *pokemon)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrSteelPartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048EEC(struct Entity *pokemon)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrWishStoneCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048F00(struct Entity *pokemon)
|
||||
{
|
||||
sub_80421C0(pokemon, 0xD6);
|
||||
SendMessage(pokemon, *gPtrMusicBoxPlayedCrumbledMessage);
|
||||
sub_803E708(0x3C, 0x46);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,113 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "constants/status.h"
|
||||
#include "code_80521D0.h"
|
||||
#include "move_effects_target.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "item.h"
|
||||
#include "status.h"
|
||||
|
||||
extern void sub_803E708(u32, u32);
|
||||
extern void sub_80421C0(struct Entity *r0, u16 r1);
|
||||
extern void sub_8078B5C(struct Entity *, struct Entity *, u32, u32, u32);
|
||||
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
extern u8 gUnknown_202DE58[];
|
||||
|
||||
extern u8 *gPtrMusicBoxPlayedCrumbledMessage[];
|
||||
extern u8 *gPtrWishStoneCrumbledMessage[];
|
||||
extern u8 *gPtrIcePartCrumbledMessage[];
|
||||
extern u8 *gPtrRockPartCrumbledMessage[];
|
||||
extern u8 *gPtrSteelPartCrumbledMessage[];
|
||||
extern u32 gUnknown_8106A4C;
|
||||
extern u32 gUnknown_8106A50;
|
||||
extern s16 gUnknown_80F4FAC;
|
||||
extern void sub_806F370(struct Entity *r0, struct Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern void sub_8051E7C(struct Entity *pokemon);
|
||||
extern void sub_8045BF8(u8 *, struct Item *);
|
||||
extern void SetMessageArgument(char[], struct Entity*, u32);
|
||||
|
||||
extern u8 *gUnknown_80FDCA4[];
|
||||
extern u8 *gUnknown_80FE3E8[];
|
||||
|
||||
bool8 sub_8048D50(struct Entity * pokemon, struct Item *item)
|
||||
{
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
|
||||
if ((item->flags & ITEM_FLAG_STICKY) != 0) {
|
||||
sub_8045BF8(gUnknown_202DE58, item);
|
||||
SendMessage(pokemon,*gUnknown_80FE3E8);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((entityInfo->muzzled == TRUE) && (IsEdibleItem(item->id))) {
|
||||
SetMessageArgument(gAvailablePokemonNames,pokemon,0);
|
||||
SendMessage(pokemon,*gUnknown_80FDCA4);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8048DB8(struct Entity *pokemon, struct Entity *target, u8 r2)
|
||||
{
|
||||
u8 temp;
|
||||
if(r2 != 0)
|
||||
sub_806F370(pokemon, target, gUnknown_80F4FAC, 1, &temp, 0, 0x217, 0, 0, 0);
|
||||
else
|
||||
sub_8051E7C(pokemon);
|
||||
}
|
||||
|
||||
void sub_8048E04(struct Entity *pokemon, struct Entity * target)
|
||||
{
|
||||
sub_8078B5C(pokemon, target, 0x1E, 0, 1);
|
||||
switch(DungeonRandInt(5))
|
||||
{
|
||||
case 0:
|
||||
PoisonedStatusTarget(pokemon, target, TRUE);
|
||||
break;
|
||||
case 1:
|
||||
ImmobilizedStatusTarget(pokemon, target);
|
||||
break;
|
||||
case 2:
|
||||
BurnedStatusTarget(pokemon, target, 1, TRUE);
|
||||
break;
|
||||
case 3:
|
||||
ParalyzeStatusTarget(pokemon, target, TRUE);
|
||||
break;
|
||||
case 4:
|
||||
LowerAttackStageTarget(pokemon, target, gUnknown_8106A4C, 3, 1, TRUE);
|
||||
LowerAttackStageTarget(pokemon, target, gUnknown_8106A50, 3, 1, TRUE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8048EB0(struct Entity *pokemon)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrIcePartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048EC4(struct Entity *pokemon)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrRockPartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048ED8(struct Entity *pokemon)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrSteelPartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048EEC(struct Entity *pokemon)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrWishStoneCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048F00(struct Entity *pokemon)
|
||||
{
|
||||
sub_80421C0(pokemon, 0xD6);
|
||||
SendMessage(pokemon, *gPtrMusicBoxPlayedCrumbledMessage);
|
||||
sub_803E708(0x3C, 0x46);
|
||||
}
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ struct NaturePowerMove
|
|||
MoveCallback move;
|
||||
};
|
||||
|
||||
struct NaturePowerMove gNaturePowerMoveTable[10];
|
||||
extern struct NaturePowerMove gNaturePowerMoveTable[10];
|
||||
|
||||
|
||||
extern u8 gUnknown_202DE58[];
|
||||
|
|
@ -125,7 +125,6 @@ extern u8 sub_807EAA0(u32, u32);
|
|||
extern void sub_80522F4(struct Entity *r1, struct Entity *r2, const char[]);
|
||||
extern s32 sub_80556BC(struct Entity *, struct Entity *, u8, struct Move *, u32, u32);
|
||||
extern bool8 sub_805727C(struct Entity *, struct Entity *, s16);
|
||||
extern void sub_8078968(struct Entity *r0, struct Entity *r1);
|
||||
extern void sub_806F370(struct Entity *r0, struct Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern void SetMessageArgument(char[], struct Entity*, u32);
|
||||
extern u32 sub_8055640(struct Entity *, struct Entity *, struct Move *, u32, u32);
|
||||
|
|
@ -329,9 +328,9 @@ bool32 sub_80578FC(struct Entity *pokemon, struct Entity *target, struct Move *
|
|||
return flag;
|
||||
}
|
||||
|
||||
bool32 sub_8057948(struct Entity *pokemon, struct Entity *target)
|
||||
bool32 EncoreMoveAction(struct Entity *pokemon, struct Entity *target)
|
||||
{
|
||||
sub_8078968(pokemon, target);
|
||||
EncoreStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_items.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_movement_1.h"
|
||||
#include "dungeon_movement.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "item.h"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#include "constants/type.h"
|
||||
#include "dungeon_entity.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_movement_1.h"
|
||||
#include "dungeon_movement.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "dungeon_items.h"
|
||||
|
|
|
|||
|
|
@ -1,8 +1,192 @@
|
|||
#include "global.h"
|
||||
|
||||
extern void sub_8082FE0(u32, u32, u32);
|
||||
extern void sub_8082FE0(u32, void *, u32);
|
||||
extern void sub_8082FA8(void *, void *, u32);
|
||||
|
||||
void sub_8083288(u32 r0, u32 r1, u32 r2)
|
||||
|
||||
void nullsub_98()
|
||||
{}
|
||||
|
||||
void sub_808300C(u32 *param_1, u32 *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, param_2, 8);
|
||||
}
|
||||
|
||||
void sub_8083018(u32 param_1)
|
||||
{
|
||||
u8 auStack_10 [12];
|
||||
|
||||
sub_8082FE0(param_1,auStack_10,8);
|
||||
auStack_10[8] = 0;
|
||||
}
|
||||
|
||||
void sub_8083030(u32 *param_1, u32 param_2)
|
||||
{
|
||||
u16 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,2);
|
||||
}
|
||||
|
||||
void sub_8083048(u32 *param_1, u32 param_2)
|
||||
{
|
||||
u16 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,2);
|
||||
}
|
||||
|
||||
void sub_8083060(u32 *param_1, u32 param_2)
|
||||
{
|
||||
u8 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,1);
|
||||
}
|
||||
|
||||
void sub_8083078(u32 *param_1, u32 param_2)
|
||||
{
|
||||
u32 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,4);
|
||||
}
|
||||
|
||||
void sub_808308C(u32 *param_1, u32 param_2)
|
||||
{
|
||||
u32 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,4);
|
||||
}
|
||||
|
||||
void sub_80830A0(u32 *param_1, u32 param_2)
|
||||
{
|
||||
u32 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,4);
|
||||
}
|
||||
|
||||
void sub_80830B4(u32 *param_1, u8 param_2)
|
||||
{
|
||||
u8 local_8;
|
||||
|
||||
local_8 = (param_2 != 0) ? -1 : 0;
|
||||
sub_8082FA8(param_1,&local_8,1);
|
||||
}
|
||||
|
||||
void sub_80830D8(u32 *param_1, u16 *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2[0], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[1], 1);
|
||||
}
|
||||
|
||||
void sub_80830F8(u32 *param_1, u32 *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2[0], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[1], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[2], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[3], 1);
|
||||
}
|
||||
|
||||
void sub_808312C(u32 *param_1, u16 *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2[0], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[1], 1);
|
||||
}
|
||||
|
||||
void sub_808314C(u32 *param_1, u32 *param_2, u32 param_3)
|
||||
{
|
||||
sub_8082FA8(param_1, param_2, param_3);
|
||||
}
|
||||
|
||||
u16 sub_8083158(u32 param_1)
|
||||
{
|
||||
u16 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,2);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
s16 sub_8083170(u32 param_1)
|
||||
{
|
||||
s16 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,2);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
u8 sub_8083188(u32 param_1)
|
||||
{
|
||||
u8 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,1);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
u32 sub_80831A0(u32 param_1)
|
||||
{
|
||||
u32 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,4);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
u32 sub_80831B4(u32 param_1)
|
||||
{
|
||||
u32 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,4);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
u32 sub_80831C8(u32 param_1)
|
||||
{
|
||||
u32 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,4);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
bool8 sub_80831DC(u32 param_1)
|
||||
{
|
||||
u8 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,1);
|
||||
return local_8 != 0;
|
||||
}
|
||||
|
||||
void sub_80831F8(u32 param_1,u16 *param_2)
|
||||
{
|
||||
param_2[0] = 0;
|
||||
param_2[1] = 0;
|
||||
sub_8082FE0(param_1,¶m_2[0],1);
|
||||
sub_8082FE0(param_1,¶m_2[1],1);
|
||||
}
|
||||
|
||||
|
||||
void sub_8083220(u32 param_1,u32 *param_2)
|
||||
{
|
||||
param_2[0] = 0;
|
||||
param_2[1] = 0;
|
||||
param_2[2] = 0;
|
||||
param_2[3] = 0;
|
||||
sub_8082FE0(param_1,¶m_2[0],1);
|
||||
sub_8082FE0(param_1,¶m_2[1],1);
|
||||
sub_8082FE0(param_1,¶m_2[2],1);
|
||||
sub_8082FE0(param_1,¶m_2[3],1);
|
||||
}
|
||||
|
||||
void sub_8083260(u32 param_1,u16 *param_2)
|
||||
{
|
||||
param_2[0] = 0;
|
||||
param_2[1] = 0;
|
||||
sub_8082FE0(param_1,¶m_2[0],1);
|
||||
sub_8082FE0(param_1,¶m_2[1],1);
|
||||
}
|
||||
|
||||
void sub_8083288(u32 r0, u16 *r1, u32 r2)
|
||||
{
|
||||
sub_8082FE0(r0, r1, r2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,10 @@
|
|||
#include "pokemon.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "memory.h"
|
||||
#include "dungeon.h"
|
||||
#include "random.h"
|
||||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
|
||||
extern struct unkStruct_203B480 gUnknown_2038C88;
|
||||
extern struct unkStruct_203B480 *gUnknown_203B480;
|
||||
|
|
@ -14,7 +18,17 @@ extern u32 *gUnknown_203B488;
|
|||
extern u32 gUnknown_20392E8;
|
||||
|
||||
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924* a1, struct unkPokeSubStruct_C* unkC);
|
||||
extern void xxx_restore_poke_sub_c_808F410(struct unkStruct_8094924*, struct unkPokeSubStruct_C*);
|
||||
extern void SavePokemonMoves(struct unkStruct_8094924 *r0, struct Move *moveSet);
|
||||
extern void RestorePokemonMoves(struct unkStruct_8094924 *r0, struct Move *moveSet);
|
||||
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern s32 sub_8094E4C(void);
|
||||
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
|
||||
extern void sub_8094D28(s32);
|
||||
|
||||
void sub_80950BC(void)
|
||||
{
|
||||
|
|
@ -47,24 +61,24 @@ struct unkStruct_203B48C *sub_8095110(void)
|
|||
|
||||
void sub_8095118(void)
|
||||
{
|
||||
s32 iVar1;
|
||||
s32 index;
|
||||
struct unkStruct_203B480 *unused;
|
||||
|
||||
MemoryFill8((u8*)gUnknown_203B480,0,0x600);
|
||||
MemoryFill8((u8*)gUnknown_203B484,0,0x5c);
|
||||
for(iVar1 = 0; iVar1 < 0x20; iVar1++){
|
||||
MemoryFill8((u8*)gUnknown_203B480,0, 0x20 * sizeof(struct unkStruct_203B480));
|
||||
MemoryFill8((u8*)gUnknown_203B484,0, 0x5c);
|
||||
for(index = 0; index < 0x20; index++){
|
||||
|
||||
// NOTE: we use a temp variable here to force the match
|
||||
unused = &gUnknown_203B480[iVar1];
|
||||
gUnknown_203B480[iVar1].mailType = WONDER_MAIL_TYPE_NONE;
|
||||
unused = &gUnknown_203B480[iVar1];
|
||||
gUnknown_203B480[iVar1].unk20.id = ITEM_NOTHING;
|
||||
unused = &gUnknown_203B480[iVar1];
|
||||
gUnknown_203B480[iVar1].unk2D = 0;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = WONDER_MAIL_TYPE_NONE;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = ITEM_NOTHING;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk2D = 0;
|
||||
}
|
||||
gUnknown_203B48C->unk0 = 0;
|
||||
for(iVar1 = 0; iVar1 < 0x20; iVar1++){
|
||||
gUnknown_203B48C->unk4[iVar1] = -1;
|
||||
for(index = 0; index < 0x20; index++){
|
||||
gUnknown_203B48C->unk4[index] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -86,3 +100,370 @@ s32 FindOpenMailSlot(void)
|
|||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Fakematch
|
||||
bool8 sub_80951BC(struct unkStruct_203B480 *mail)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_203B480 *preload;
|
||||
struct unkStruct_203B480 *preload2;
|
||||
|
||||
index = FindOpenMailSlot();
|
||||
|
||||
if(index == -1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
preload = gUnknown_203B480;
|
||||
preload2 = &preload[index];
|
||||
*preload2 = *mail;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
struct unkStruct_809542C
|
||||
{
|
||||
struct DungeonLocation unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
bool8 sub_80951FC(struct unkStruct_203B480 *param_1)
|
||||
{
|
||||
bool8 bVar1 = gUnknown_203B480[1].mailType != 0;
|
||||
gUnknown_203B480[1] = *param_1;
|
||||
return bVar1;
|
||||
}
|
||||
|
||||
struct unkStruct_203B480 * GetMailatIndex(u8 index)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
|
||||
ptr = &gUnknown_203B480[index];
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void DeleteMailAtIndex(u8 index)
|
||||
{
|
||||
struct unkStruct_203B480 *unused;
|
||||
|
||||
MemoryFill8((u8*)&gUnknown_203B480[index],0,sizeof(struct unkStruct_203B480));
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = 0;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = 0;
|
||||
}
|
||||
|
||||
void sub_8095274(u32 param_1)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 iVar3;
|
||||
|
||||
gUnknown_203B48C->unk4[gUnknown_203B48C->unk0] = param_1;
|
||||
iVar2 = gUnknown_203B48C->unk0;
|
||||
iVar3 = 0;
|
||||
if (iVar2 < 0x1f) {
|
||||
iVar3 = iVar2 + 1;
|
||||
}
|
||||
gUnknown_203B48C->unk0 = iVar3;
|
||||
}
|
||||
|
||||
bool8 sub_8095298(s32 param_1)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
if(gUnknown_203B48C->unk4[index] == param_1) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80952C4(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
gUnknown_203B48C->unk0 = 0;
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
gUnknown_203B48C->unk4[index] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 HasMail(u8 mailType, u32 param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
s32 CountMailType(u8 mailType)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 total = 0;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == mailType) total++;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
u32 CountAllMail(void)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
u32 total = 0;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType != 0) total++;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
s32 sub_8095374(void)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 retvar = -1;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == 1) retvar = index;
|
||||
}
|
||||
return retvar;
|
||||
}
|
||||
|
||||
/* With mailType and (additonal data??), search mail and return exact index */
|
||||
s32 GetMailIndex(u8 mailType, u32 param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Return the index of the first mail of the requested type */
|
||||
s32 GetFirstIndexofMailType(u8 mailType)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == mailType) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
s32 sub_8095400(u32 param_1)
|
||||
{
|
||||
u32 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0].unk10.unk10; index < 0x20; ptr += 0xC, index++)
|
||||
{
|
||||
if (*ptr == param_1) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void sub_809542C(struct unkStruct_809542C *param_1)
|
||||
{
|
||||
u32 uVar4;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register struct unkStruct_203B480 *preload asm("r2");
|
||||
#else
|
||||
struct unkStruct_203B480 *preload;
|
||||
#endif
|
||||
|
||||
u8 buffer [20];
|
||||
|
||||
gUnknown_203B480->mailType = 1;
|
||||
preload = gUnknown_203B480;
|
||||
uVar4 = param_1->unk4;
|
||||
preload->dungeon = param_1->unk0;
|
||||
preload->unk8 = uVar4;
|
||||
sub_8094D28(Rand32Bit());
|
||||
gUnknown_203B480->unk10.unk10 = sub_8094E4C();
|
||||
gUnknown_203B480->clientSpecies = GetPlayerPokemonStruct()->speciesNum;
|
||||
PrintPokeNameToBuffer(buffer, GetPlayerPokemonStruct());
|
||||
CopyStringtoBuffer(gUnknown_203B480->playerName, buffer);
|
||||
gUnknown_203B480->unk24 = sub_8011C34();
|
||||
gUnknown_203B480->rescuesAllowed = GetRescuesAllowed(gUnknown_203B480->dungeon.id);
|
||||
}
|
||||
|
||||
void sub_8095494(struct unkStruct_809542C *param_1, u8 index)
|
||||
{
|
||||
u32 uVar1;
|
||||
struct DungeonLocation temp;
|
||||
struct unkStruct_203B480 *mail;
|
||||
|
||||
mail = gUnknown_203B480;
|
||||
mail += index;
|
||||
|
||||
temp = mail->dungeon;
|
||||
uVar1 = mail->unk8;
|
||||
param_1->unk0 = temp;
|
||||
param_1->unk4 = uVar1;
|
||||
}
|
||||
|
||||
u32 sub_80954B4(void)
|
||||
{
|
||||
if(CountMailType(3) != 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_80954CC(u8 *a, u32 b)
|
||||
{
|
||||
struct unkStruct_8094924 backup;
|
||||
struct PokemonStruct *temp;
|
||||
s32 index;
|
||||
|
||||
xxx_init_struct_8094924_restore_809485C(&backup, a, b);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_8095774(&backup, &gUnknown_203B480[index]);
|
||||
}
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
|
||||
temp = &gUnknown_203B484->unk4;
|
||||
memset(temp, 0, sizeof(struct PokemonStruct));
|
||||
RestoreIntegerBits(&backup, &temp->unk0, 2);
|
||||
RestoreIntegerBits(&backup, &temp->isTeamLeader, 1);
|
||||
RestoreIntegerBits(&backup, &temp->unkHasNextStage, 7);
|
||||
RestoreDungeonLocation(&backup, &temp->dungeonLocation);
|
||||
RestoreIntegerBits(&backup, &temp->speciesNum, 9);
|
||||
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[0]);
|
||||
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[1]);
|
||||
RestoreIntegerBits(&backup, &temp->IQ, 0xA);
|
||||
RestoreIntegerBits(&backup, &temp->pokeHP, 0xA);
|
||||
RestoreIntegerBits(&backup, &temp->offense.att[0], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.att[1], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.def[0], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.def[1], 8);
|
||||
RestoreIntegerBits(&backup, &temp->unk1C, 0x18);
|
||||
RestoreIntegerBits(&backup, &temp->IQSkills, 0x18);
|
||||
RestoreIntegerBits(&backup, &temp->unk24, 4);
|
||||
RestoreHeldItem(&backup, &temp->heldItem);
|
||||
RestorePokemonMoves(&backup, temp->moves);
|
||||
RestoreIntegerBits(&backup, temp->name, 0x50);
|
||||
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
|
||||
}
|
||||
nullsub_102(&backup);
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
u32 sub_8095624(u8 *a, u32 b)
|
||||
{
|
||||
struct unkStruct_8094924 backup;
|
||||
struct PokemonStruct *temp;
|
||||
s32 index;
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&backup, a, b);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_8095824(&backup, &gUnknown_203B480[index]);
|
||||
}
|
||||
SaveIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
|
||||
temp = &gUnknown_203B484->unk4;
|
||||
SaveIntegerBits(&backup, &temp->unk0, 2);
|
||||
SaveIntegerBits(&backup, &temp->isTeamLeader, 1);
|
||||
SaveIntegerBits(&backup, &temp->unkHasNextStage, 7);
|
||||
SaveDungeonLocation(&backup, &temp->dungeonLocation);
|
||||
SaveIntegerBits(&backup, &temp->speciesNum, 9);
|
||||
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[0]);
|
||||
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[1]);
|
||||
SaveIntegerBits(&backup, &temp->IQ, 0xA);
|
||||
SaveIntegerBits(&backup, &temp->pokeHP, 0xA);
|
||||
SaveIntegerBits(&backup, &temp->offense.att[0], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.att[1], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.def[0], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.def[1], 8);
|
||||
SaveIntegerBits(&backup, &temp->unk1C, 0x18);
|
||||
SaveIntegerBits(&backup, &temp->IQSkills, 0x18);
|
||||
SaveIntegerBits(&backup, &temp->unk24, 4);
|
||||
SaveHeldItem(&backup, &temp->heldItem);
|
||||
SavePokemonMoves(&backup, temp->moves);
|
||||
SaveIntegerBits(&backup, temp->name, 0x50);
|
||||
|
||||
SaveIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
SaveIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
|
||||
}
|
||||
nullsub_102(&backup);
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
{
|
||||
u8 temp;
|
||||
|
||||
RestoreIntegerBits(a, &b->mailType, 4);
|
||||
RestoreDungeonLocation(a, &b->dungeon);
|
||||
RestoreIntegerBits(a, &b->unk8, 0x18);
|
||||
RestoreIntegerBits(a, &b->clientSpecies, 0x9);
|
||||
RestoreIntegerBits(a, &b->unk10.unk10, 0x20);
|
||||
RestoreIntegerBits(a, &b->playerName, 0x50);
|
||||
RestoreIntegerBits(a, &b->unk20.flags, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk20.quantity, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk20.id, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk24, 0x20);
|
||||
RestoreIntegerBits(a, &b->unk28, 0x20);
|
||||
RestoreIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
RestoreIntegerBits(a, &temp, 1);
|
||||
b->unk2D = temp & 1;
|
||||
}
|
||||
|
||||
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
{
|
||||
u8 neg1;
|
||||
u8 zero;
|
||||
u8 *puVar2;
|
||||
neg1 = -1;
|
||||
zero = 0;
|
||||
|
||||
SaveIntegerBits(a, &b->mailType, 4);
|
||||
SaveDungeonLocation(a, &b->dungeon);
|
||||
SaveIntegerBits(a, &b->unk8, 0x18);
|
||||
SaveIntegerBits(a, &b->clientSpecies, 0x9);
|
||||
SaveIntegerBits(a, &b->unk10.unk10, 0x20);
|
||||
SaveIntegerBits(a, &b->playerName, 0x50);
|
||||
SaveIntegerBits(a, &b->unk20.flags, 0x8);
|
||||
SaveIntegerBits(a, &b->unk20.quantity, 0x8);
|
||||
SaveIntegerBits(a, &b->unk20.id, 0x8);
|
||||
SaveIntegerBits(a, &b->unk24, 0x20);
|
||||
SaveIntegerBits(a, &b->unk28, 0x20);
|
||||
SaveIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
if(b->unk2D != 0)
|
||||
puVar2 = &neg1;
|
||||
else
|
||||
puVar2 = &zero;
|
||||
SaveIntegerBits(a, puVar2, 1);
|
||||
}
|
||||
|
||||
void sub_80958E4(u32 *a, u32 b)
|
||||
{
|
||||
*a = b;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,368 +6,3 @@
|
|||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
#include "code_8094F88.h"
|
||||
|
||||
extern struct unkStruct_203B484 *gUnknown_203B484;
|
||||
extern struct unkStruct_203B480 *gUnknown_203B480;
|
||||
extern struct unkStruct_203B48C *gUnknown_203B48C;
|
||||
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924* a1, struct unkPokeSubStruct_C* unkC);
|
||||
extern void xxx_restore_poke_sub_c_808F410(struct unkStruct_8094924*, struct unkPokeSubStruct_C*);
|
||||
extern void SavePokemonMoves(struct unkStruct_8094924 *r0, struct Move *moveSet);
|
||||
extern void RestorePokemonMoves(struct unkStruct_8094924 *r0, struct Move *moveSet);
|
||||
|
||||
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
|
||||
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
|
||||
s32 CountMailType(u8);
|
||||
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern s32 sub_8094E4C(void);
|
||||
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
|
||||
extern void sub_8094D28(s32);
|
||||
|
||||
struct unkStruct_809542C
|
||||
{
|
||||
struct DungeonLocation unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
bool8 sub_80951FC(struct unkStruct_203B480 *param_1)
|
||||
{
|
||||
bool8 bVar1 = gUnknown_203B480[1].mailType != 0;
|
||||
gUnknown_203B480[1] = *param_1;
|
||||
return bVar1;
|
||||
}
|
||||
|
||||
struct unkStruct_203B480 * sub_8095228(u8 index)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
|
||||
ptr = &gUnknown_203B480[index];
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void DeleteMailAtIndex(u8 index)
|
||||
{
|
||||
struct unkStruct_203B480 *unused;
|
||||
|
||||
MemoryFill8((u8*)&gUnknown_203B480[index],0,sizeof(struct unkStruct_203B480));
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = 0;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = 0;
|
||||
}
|
||||
|
||||
void sub_8095274(u32 param_1)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 iVar3;
|
||||
|
||||
gUnknown_203B48C->unk4[gUnknown_203B48C->unk0] = param_1;
|
||||
iVar2 = gUnknown_203B48C->unk0;
|
||||
iVar3 = 0;
|
||||
if (iVar2 < 0x1f) {
|
||||
iVar3 = iVar2 + 1;
|
||||
}
|
||||
gUnknown_203B48C->unk0 = iVar3;
|
||||
}
|
||||
|
||||
bool8 sub_8095298(s32 param_1)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
if(gUnknown_203B48C->unk4[index] == param_1) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80952C4(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
gUnknown_203B48C->unk0 = 0;
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
gUnknown_203B48C->unk4[index] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 HasMail(u8 mailType, u32 param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
s32 CountMailType(u8 mailType)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 total = 0;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == mailType) total++;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
u32 CountAllMail(void)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
u32 total = 0;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType != 0) total++;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
s32 sub_8095374(void)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 retvar = -1;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == 1) retvar = index;
|
||||
}
|
||||
return retvar;
|
||||
}
|
||||
|
||||
/* With mailType and (additonal data??), search mail and return exact index */
|
||||
s32 GetMailIndex(u8 mailType, u32 param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Return the index of the first mail of the requested type */
|
||||
s32 GetFirstIndexofMailType(u8 mailType)
|
||||
{
|
||||
struct unkStruct_203B480 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++)
|
||||
{
|
||||
if (ptr->mailType == mailType) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
s32 sub_8095400(u32 param_1)
|
||||
{
|
||||
u32 *ptr;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, ptr = &gUnknown_203B480[0].unk10.unk10; index < 0x20; ptr += 0xC, index++)
|
||||
{
|
||||
if (*ptr == param_1) return index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void sub_809542C(struct unkStruct_809542C *param_1)
|
||||
{
|
||||
u32 uVar4;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register struct unkStruct_203B480 *preload asm("r2");
|
||||
#else
|
||||
struct unkStruct_203B480 *preload;
|
||||
#endif
|
||||
|
||||
u8 buffer [20];
|
||||
|
||||
gUnknown_203B480->mailType = 1;
|
||||
preload = gUnknown_203B480;
|
||||
uVar4 = param_1->unk4;
|
||||
preload->dungeon = param_1->unk0;
|
||||
preload->unk8 = uVar4;
|
||||
sub_8094D28(Rand32Bit());
|
||||
gUnknown_203B480->unk10.unk10 = sub_8094E4C();
|
||||
gUnknown_203B480->clientSpecies = GetPlayerPokemonStruct()->speciesNum;
|
||||
PrintPokeNameToBuffer(buffer, GetPlayerPokemonStruct());
|
||||
CopyStringtoBuffer(gUnknown_203B480->playerName, buffer);
|
||||
gUnknown_203B480->unk24 = sub_8011C34();
|
||||
gUnknown_203B480->rescuesAllowed = GetRescuesAllowed(gUnknown_203B480->dungeon.id);
|
||||
}
|
||||
|
||||
void sub_8095494(struct unkStruct_809542C *param_1, u8 index)
|
||||
{
|
||||
u32 uVar1;
|
||||
struct DungeonLocation temp;
|
||||
struct unkStruct_203B480 *mail;
|
||||
|
||||
mail = gUnknown_203B480;
|
||||
mail += index;
|
||||
|
||||
temp = mail->dungeon;
|
||||
uVar1 = mail->unk8;
|
||||
param_1->unk0 = temp;
|
||||
param_1->unk4 = uVar1;
|
||||
}
|
||||
|
||||
u32 sub_80954B4(void)
|
||||
{
|
||||
if(CountMailType(3) != 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_80954CC(u8 *a, u32 b)
|
||||
{
|
||||
struct unkStruct_8094924 backup;
|
||||
struct PokemonStruct *temp;
|
||||
s32 index;
|
||||
|
||||
xxx_init_struct_8094924_restore_809485C(&backup, a, b);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_8095774(&backup, &gUnknown_203B480[index]);
|
||||
}
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
|
||||
temp = &gUnknown_203B484->unk4;
|
||||
memset(temp, 0, sizeof(struct PokemonStruct));
|
||||
RestoreIntegerBits(&backup, &temp->unk0, 2);
|
||||
RestoreIntegerBits(&backup, &temp->isTeamLeader, 1);
|
||||
RestoreIntegerBits(&backup, &temp->unkHasNextStage, 7);
|
||||
RestoreDungeonLocation(&backup, &temp->dungeonLocation);
|
||||
RestoreIntegerBits(&backup, &temp->speciesNum, 9);
|
||||
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[0]);
|
||||
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[1]);
|
||||
RestoreIntegerBits(&backup, &temp->IQ, 0xA);
|
||||
RestoreIntegerBits(&backup, &temp->pokeHP, 0xA);
|
||||
RestoreIntegerBits(&backup, &temp->offense.att[0], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.att[1], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.def[0], 8);
|
||||
RestoreIntegerBits(&backup, &temp->offense.def[1], 8);
|
||||
RestoreIntegerBits(&backup, &temp->unk1C, 0x18);
|
||||
RestoreIntegerBits(&backup, &temp->IQSkills, 0x18);
|
||||
RestoreIntegerBits(&backup, &temp->unk24, 4);
|
||||
RestoreHeldItem(&backup, &temp->heldItem);
|
||||
RestorePokemonMoves(&backup, temp->moves);
|
||||
RestoreIntegerBits(&backup, temp->name, 0x50);
|
||||
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
|
||||
}
|
||||
nullsub_102(&backup);
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
u32 sub_8095624(u8 *a, u32 b)
|
||||
{
|
||||
struct unkStruct_8094924 backup;
|
||||
struct PokemonStruct *temp;
|
||||
s32 index;
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&backup, a, b);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_8095824(&backup, &gUnknown_203B480[index]);
|
||||
}
|
||||
SaveIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
|
||||
temp = &gUnknown_203B484->unk4;
|
||||
SaveIntegerBits(&backup, &temp->unk0, 2);
|
||||
SaveIntegerBits(&backup, &temp->isTeamLeader, 1);
|
||||
SaveIntegerBits(&backup, &temp->unkHasNextStage, 7);
|
||||
SaveDungeonLocation(&backup, &temp->dungeonLocation);
|
||||
SaveIntegerBits(&backup, &temp->speciesNum, 9);
|
||||
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[0]);
|
||||
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[1]);
|
||||
SaveIntegerBits(&backup, &temp->IQ, 0xA);
|
||||
SaveIntegerBits(&backup, &temp->pokeHP, 0xA);
|
||||
SaveIntegerBits(&backup, &temp->offense.att[0], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.att[1], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.def[0], 8);
|
||||
SaveIntegerBits(&backup, &temp->offense.def[1], 8);
|
||||
SaveIntegerBits(&backup, &temp->unk1C, 0x18);
|
||||
SaveIntegerBits(&backup, &temp->IQSkills, 0x18);
|
||||
SaveIntegerBits(&backup, &temp->unk24, 4);
|
||||
SaveHeldItem(&backup, &temp->heldItem);
|
||||
SavePokemonMoves(&backup, temp->moves);
|
||||
SaveIntegerBits(&backup, temp->name, 0x50);
|
||||
|
||||
SaveIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
SaveIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
|
||||
}
|
||||
nullsub_102(&backup);
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
{
|
||||
u8 temp;
|
||||
|
||||
RestoreIntegerBits(a, &b->mailType, 4);
|
||||
RestoreDungeonLocation(a, &b->dungeon);
|
||||
RestoreIntegerBits(a, &b->unk8, 0x18);
|
||||
RestoreIntegerBits(a, &b->clientSpecies, 0x9);
|
||||
RestoreIntegerBits(a, &b->unk10.unk10, 0x20);
|
||||
RestoreIntegerBits(a, &b->playerName, 0x50);
|
||||
RestoreIntegerBits(a, &b->unk20.flags, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk20.quantity, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk20.id, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk24, 0x20);
|
||||
RestoreIntegerBits(a, &b->unk28, 0x20);
|
||||
RestoreIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
RestoreIntegerBits(a, &temp, 1);
|
||||
b->unk2D = temp & 1;
|
||||
}
|
||||
|
||||
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
{
|
||||
u8 neg1;
|
||||
u8 zero;
|
||||
u8 *puVar2;
|
||||
neg1 = -1;
|
||||
zero = 0;
|
||||
|
||||
SaveIntegerBits(a, &b->mailType, 4);
|
||||
SaveDungeonLocation(a, &b->dungeon);
|
||||
SaveIntegerBits(a, &b->unk8, 0x18);
|
||||
SaveIntegerBits(a, &b->clientSpecies, 0x9);
|
||||
SaveIntegerBits(a, &b->unk10.unk10, 0x20);
|
||||
SaveIntegerBits(a, &b->playerName, 0x50);
|
||||
SaveIntegerBits(a, &b->unk20.flags, 0x8);
|
||||
SaveIntegerBits(a, &b->unk20.quantity, 0x8);
|
||||
SaveIntegerBits(a, &b->unk20.id, 0x8);
|
||||
SaveIntegerBits(a, &b->unk24, 0x20);
|
||||
SaveIntegerBits(a, &b->unk28, 0x20);
|
||||
SaveIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
if(b->unk2D != 0)
|
||||
puVar2 = &neg1;
|
||||
else
|
||||
puVar2 = &zero;
|
||||
SaveIntegerBits(a, puVar2, 1);
|
||||
}
|
||||
|
||||
void sub_80958E4(u32 *a, u32 b)
|
||||
{
|
||||
*a = b;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,19 +40,19 @@ struct unkStruct_203B490 *GetMailInfo(void)
|
|||
void InitializeMailJobsNews(void)
|
||||
{
|
||||
s32 index;
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
ResetMailboxSlot(index);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
ResetPelipperBoardSlot(index);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
ResetJobSlot(index);
|
||||
}
|
||||
for(index = 0; index < 56; index++)
|
||||
for(index = 0; index < NUM_POKEMON_NEWS; index++)
|
||||
{
|
||||
gUnknown_203B490->PKMNNewsReceived[index] = FALSE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "constants/mailbox.h"
|
||||
#include "global.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "constants/monster.h"
|
||||
|
|
@ -35,11 +36,11 @@ void SortPelipperJobs(void)
|
|||
|
||||
struct WonderMail mail;
|
||||
|
||||
for(index1 = 0; index1 < 7; index1++)
|
||||
for(index1 = 0; index1 < MAX_ACCEPTED_JOBS - 1; index1++)
|
||||
{
|
||||
for(index2 = index1 + 1; index2 < 8; index2++)
|
||||
for(index2 = index1 + 1; index2 < MAX_ACCEPTED_JOBS; index2++)
|
||||
{
|
||||
if(gUnknown_203B490->pelipperBoardJobs[index2].mailType != WONDER_MAIL_TYPE_NONE)
|
||||
if(gUnknown_203B490->pelipperBoardJobs[index2].mailType != MAIL_TYPE_NONE)
|
||||
{
|
||||
if((gUnknown_203B490->pelipperBoardJobs[index1].dungeon.id > gUnknown_203B490->pelipperBoardJobs[index2].dungeon.id) ||
|
||||
((gUnknown_203B490->pelipperBoardJobs[index1].dungeon.id == gUnknown_203B490->pelipperBoardJobs[index2].dungeon.id) && (gUnknown_203B490->pelipperBoardJobs[index1].dungeon.floor > gUnknown_203B490->pelipperBoardJobs[index2].dungeon.floor)))
|
||||
|
|
@ -60,15 +61,15 @@ void GeneratePelipperJobs(void)
|
|||
s32 index;
|
||||
|
||||
range = RandRange(4,8);
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
gUnknown_203B490->pelipperBoardJobs[index].mailType = WONDER_MAIL_TYPE_NONE;
|
||||
gUnknown_203B490->pelipperBoardJobs[index].mailType = MAIL_TYPE_NONE;
|
||||
}
|
||||
|
||||
index = 0;
|
||||
if (sub_8097318(0xe) != 0) {
|
||||
mail = GetPelipperBoardSlotInfo(0);
|
||||
mail->mailType = 2;
|
||||
mail->mailType = MAIL_TYPE_UNK2;
|
||||
mail->missionType = WONDER_MAIL_MISSION_TYPE_UNK6;
|
||||
mail->unk2 = 1;
|
||||
mail->dungeon.id = DUNGEON_UPROAR_FOREST;
|
||||
|
|
@ -86,7 +87,7 @@ void GeneratePelipperJobs(void)
|
|||
|
||||
if (sub_8097318(0xf) != 0) {
|
||||
mail = GetPelipperBoardSlotInfo(index);
|
||||
mail->mailType = 3;
|
||||
mail->mailType = MAIL_TYPE_UNK3;
|
||||
mail->missionType = WONDER_MAIL_MISSION_TYPE_UNK6;
|
||||
mail->unk2 = 2;
|
||||
mail->dungeon.id = DUNGEON_HOWLING_FOREST;
|
||||
|
|
@ -103,7 +104,7 @@ void GeneratePelipperJobs(void)
|
|||
|
||||
if (sub_8097318(0x1c) != 0) {
|
||||
mail = GetPelipperBoardSlotInfo(index);
|
||||
mail->mailType = 4;
|
||||
mail->mailType = MAIL_TYPE_UNK4;
|
||||
mail->missionType = WONDER_MAIL_MISSION_TYPE_UNK6;
|
||||
mail->unk2 = 3;
|
||||
mail->dungeon.id = DUNGEON_WISH_CAVE;
|
||||
|
|
@ -130,9 +131,9 @@ bool8 IsMailinJobSlot(struct WonderMail *mail)
|
|||
struct WonderMail *jobSlot;
|
||||
s32 index;
|
||||
|
||||
for(index = 0, jobSlot = &gUnknown_203B490->jobSlots[0]; index < 8; jobSlot++, index++)
|
||||
for(index = 0, jobSlot = &gUnknown_203B490->jobSlots[0]; index < MAX_ACCEPTED_JOBS; jobSlot++, index++)
|
||||
{
|
||||
if(jobSlot->mailType != WONDER_MAIL_TYPE_NONE)
|
||||
if(jobSlot->mailType != MAIL_TYPE_NONE)
|
||||
if(mail->missionType == jobSlot->missionType)
|
||||
if(mail->unk2 == jobSlot->unk2)
|
||||
if(mail->dungeon.id == jobSlot->dungeon.id)
|
||||
|
|
@ -166,9 +167,9 @@ bool8 sub_809693C(struct WonderMail *mail)
|
|||
{
|
||||
if(mail->missionType == WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT)
|
||||
escortMission = TRUE;
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
if ((gUnknown_203B490->jobSlots[index].mailType == 6) &&
|
||||
if ((gUnknown_203B490->jobSlots[index].mailType == MAIL_TYPE_TAKEN_JOB) &&
|
||||
(sub_8095E38(&gUnknown_203B490->jobSlots[index],dungeonIndex,floor,escortMission) != 0))
|
||||
{
|
||||
return TRUE;
|
||||
|
|
@ -184,7 +185,7 @@ s32 GetNumAcceptedJobs(void)
|
|||
s32 count;
|
||||
|
||||
count = 0;
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
if (!IsJobSlotEmpty(index)) {
|
||||
count++;
|
||||
|
|
@ -200,11 +201,11 @@ s32 CountJobsinDungeon(u8 dungeon)
|
|||
s32 count;
|
||||
|
||||
count = 0;
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
mail = GetJobSlotInfo(index);
|
||||
if ((mail->dungeon.id == dungeon) &&
|
||||
(((mail->mailType == 6 || (mail->mailType == 8)) || (mail->mailType == 9)))) {
|
||||
(((mail->mailType == MAIL_TYPE_TAKEN_JOB || (mail->mailType == MAIL_TYPE_UNK8)) || (mail->mailType == MAIL_TYPE_UNK9)))) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
|
@ -218,11 +219,11 @@ bool8 sub_8096A08(u8 dungeon, s32 param_2)
|
|||
u32 local_14;
|
||||
s32 temp;
|
||||
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
mail = GetJobSlotInfo(index);
|
||||
if(mail->dungeon.id == dungeon)
|
||||
if(mail->mailType == 6)
|
||||
if(mail->mailType == MAIL_TYPE_TAKEN_JOB)
|
||||
if(mail->missionType == WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT)
|
||||
{
|
||||
temp = 0xffffff00;
|
||||
|
|
@ -246,9 +247,9 @@ bool8 AcceptJob(struct WonderMail *mail)
|
|||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
if(gUnknown_203B490->jobSlots[index].mailType == WONDER_MAIL_TYPE_NONE)
|
||||
if(gUnknown_203B490->jobSlots[index].mailType == MAIL_TYPE_NONE)
|
||||
{
|
||||
gUnknown_203B490->jobSlots[index] = *mail;
|
||||
return FALSE;
|
||||
|
|
@ -264,7 +265,7 @@ struct WonderMail *GetJobSlotInfo(u8 index)
|
|||
|
||||
bool8 IsJobSlotEmpty(u8 index)
|
||||
{
|
||||
if(gUnknown_203B490->jobSlots[index].mailType == WONDER_MAIL_TYPE_NONE)
|
||||
if(gUnknown_203B490->jobSlots[index].mailType == MAIL_TYPE_NONE)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
|
|
@ -283,7 +284,7 @@ void sub_8096AF8(struct unkStruct_8096AF8 *param_1, u8 slotIndex,u8 dungeon)
|
|||
if (jobSlot->dungeon.id == dungeon) {
|
||||
switch(jobSlot->missionType) {
|
||||
case WONDER_MAIL_MISSION_TYPE_FIND_ITEM:
|
||||
if (jobSlot->mailType == 6) {
|
||||
if (jobSlot->mailType == MAIL_TYPE_TAKEN_JOB) {
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
item = &gTeamInventory_203B460->teamItems[index];
|
||||
|
|
@ -295,13 +296,13 @@ void sub_8096AF8(struct unkStruct_8096AF8 *param_1, u8 slotIndex,u8 dungeon)
|
|||
break;
|
||||
case WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT:
|
||||
case WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM:
|
||||
if (jobSlot->mailType == 9) {
|
||||
if (jobSlot->mailType == MAIL_TYPE_UNK9) {
|
||||
param_1->unk0 = TRUE;
|
||||
}
|
||||
break;
|
||||
case WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET:
|
||||
case WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT:
|
||||
if (jobSlot->mailType == 9) {
|
||||
if (jobSlot->mailType == MAIL_TYPE_UNK9) {
|
||||
param_1->unk0 = TRUE;
|
||||
param_1->targetSpecies = jobSlot->targetSpecies;
|
||||
}
|
||||
|
|
@ -316,10 +317,10 @@ s16 sub_8096B98(u8 dungeon)
|
|||
struct WonderMail *mail;
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
mail = GetJobSlotInfo(index);
|
||||
if(mail->mailType == 6)
|
||||
if(mail->mailType == MAIL_TYPE_TAKEN_JOB)
|
||||
if(mail->missionType == WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT)
|
||||
if(mail->dungeon.id == dungeon)
|
||||
return mail->targetSpecies;
|
||||
|
|
@ -332,13 +333,13 @@ void sub_8096BD0(void)
|
|||
s32 index;
|
||||
struct WonderMail *mail;
|
||||
|
||||
for(mail = &gUnknown_203B490->jobSlots[0], index = 0; index < 8; mail++, index++)
|
||||
for(mail = &gUnknown_203B490->jobSlots[0], index = 0; index < MAX_ACCEPTED_JOBS; mail++, index++)
|
||||
{
|
||||
switch(mail->mailType)
|
||||
{
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
case MAIL_TYPE_UNK7:
|
||||
case MAIL_TYPE_UNK8:
|
||||
case MAIL_TYPE_UNK9:
|
||||
ResetJobSlot(index);
|
||||
break;
|
||||
}
|
||||
|
|
@ -352,7 +353,7 @@ bool8 sub_8096C08(u8 *jobIndex)
|
|||
s32 index;
|
||||
struct WonderMail *mail;
|
||||
|
||||
for(mail = &gUnknown_203B490->jobSlots[0], index = 0; index < 8; mail++, index++)
|
||||
for(mail = &gUnknown_203B490->jobSlots[0], index = 0; index < MAX_ACCEPTED_JOBS; mail++, index++)
|
||||
{
|
||||
if(mail->mailType > 4 && mail->unk2 == 4)
|
||||
{
|
||||
|
|
@ -366,7 +367,7 @@ bool8 sub_8096C08(u8 *jobIndex)
|
|||
|
||||
void ResetJobSlot(u8 index)
|
||||
{
|
||||
gUnknown_203B490->jobSlots[index].mailType = WONDER_MAIL_TYPE_NONE;
|
||||
gUnknown_203B490->jobSlots[index].mailType = MAIL_TYPE_NONE;
|
||||
gUnknown_203B490->jobSlots[index].dungeon.id = 99;
|
||||
gUnknown_203B490->jobSlots[index].dungeon.floor = 0;
|
||||
gUnknown_203B490->jobSlots[index].rewardType = MONEY1;
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ bool8 GenerateMailJobDungeonInfo(struct WonderMail *mail)
|
|||
|
||||
bool8 sub_8095E38(struct WonderMail *mail, u8 dungeon, u32 floor, u8 param_4)
|
||||
{
|
||||
if (mail->mailType != 0) {
|
||||
if (mail->mailType != MAIL_TYPE_NONE) {
|
||||
if ((mail->missionType == WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT) && (param_4 == 1)) {
|
||||
if (mail->dungeon.id == dungeon) {
|
||||
return TRUE;
|
||||
|
|
@ -127,14 +127,14 @@ u8 sub_8095E78(void)
|
|||
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
if((gUnknown_203B490->mailboxSlots[index].mailType != 0) && (gUnknown_203B490->mailboxSlots[index].rewardType == FRIEND_AREA))
|
||||
if((gUnknown_203B490->mailboxSlots[index].mailType != MAIL_TYPE_NONE) && (gUnknown_203B490->mailboxSlots[index].rewardType == FRIEND_AREA))
|
||||
flag = TRUE;
|
||||
}
|
||||
|
||||
|
||||
for(index = 0; index < 8; index++)
|
||||
{
|
||||
if((gUnknown_203B490->jobSlots[index].mailType != 0) && (gUnknown_203B490->jobSlots[index].rewardType == FRIEND_AREA))
|
||||
if((gUnknown_203B490->jobSlots[index].mailType != MAIL_TYPE_NONE) && (gUnknown_203B490->jobSlots[index].rewardType == FRIEND_AREA))
|
||||
flag = TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,15 +41,15 @@ u32 RestoreMailInfo(u8 *r0, u32 size)
|
|||
u32 temp;
|
||||
|
||||
xxx_init_struct_8094924_restore_809485C(&backup, r0, size);
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
RestoreWonderMail(&backup, &gUnknown_203B490->mailboxSlots[index]);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
RestoreWonderMail(&backup, &gUnknown_203B490->pelipperBoardJobs[index]);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
RestoreWonderMail(&backup, &gUnknown_203B490->jobSlots[index]);
|
||||
}
|
||||
|
|
@ -86,15 +86,15 @@ u32 SaveMailInfo(u8 *r0, u32 size)
|
|||
u32 temp;
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&backup, r0, size);
|
||||
for(index = 0; index < 4; index++)
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
SaveWonderMail(&backup, &gUnknown_203B490->mailboxSlots[index]);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
SaveWonderMail(&backup, &gUnknown_203B490->pelipperBoardJobs[index]);
|
||||
}
|
||||
for(index = 0; index < 8; index++)
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
SaveWonderMail(&backup, &gUnknown_203B490->jobSlots[index]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,221 @@
|
|||
#include "global.h"
|
||||
#include "pokemon.h"
|
||||
#include "debug_menu.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B3F8 *gUnknown_203B3F8;
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E7ED4 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
NULL
|
||||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E7EEC = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x13, 0x00, 0x04, 0x00,
|
||||
0x09, 0x03,
|
||||
0x03, 0x00,
|
||||
NULL
|
||||
|
||||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E7F04 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x13, 0x00, 0x0e, 0x00,
|
||||
0x06, 0x04,
|
||||
0x04, 0x00,
|
||||
NULL
|
||||
|
||||
};
|
||||
ALIGNED(4) const u8 gDebug_NumberText2[] = "Number?";
|
||||
ALIGNED(4) const u8 gDebug_LevelText[] = "LEVEL";
|
||||
ALIGNED(4) const u8 gDebug_Name[] = "Name";
|
||||
static const u8 fill0[] = "pksdir0";
|
||||
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
extern void sub_803AE58(void);
|
||||
extern u32 sub_8016080(void);
|
||||
extern void sub_803ACD0(u32);
|
||||
extern void sub_80160D8(void);
|
||||
|
||||
extern u32 sub_8023A94(u32);
|
||||
extern s16 sub_8023B44(void);
|
||||
extern void sub_8023C60(void);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8023DA4(void);
|
||||
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
|
||||
extern void sub_803ACE8();
|
||||
extern void sub_803AD88();
|
||||
extern void sub_803AF38();
|
||||
extern void sub_803AF88();
|
||||
extern void sub_803AFE8();
|
||||
extern void sub_803B034();
|
||||
extern void sub_8023868(u32, u32, u32, u32);
|
||||
extern void sub_8023B7C(u32);
|
||||
extern void sub_8013AA0(u32 *);
|
||||
extern void sub_801602C(u32, u8 *);
|
||||
extern void sub_803AEB0();
|
||||
|
||||
u32 sub_803AC24(void)
|
||||
{
|
||||
gUnknown_203B3F8 = MemoryAlloc(sizeof(struct unkStruct_203B3F8), 8);
|
||||
sub_803ACD0(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_803AC48(void)
|
||||
{
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 0:
|
||||
sub_803ACD0(1);
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
sub_803AF38();
|
||||
break;
|
||||
case 3:
|
||||
sub_803AF88();
|
||||
break;
|
||||
case 5:
|
||||
sub_803AFE8();
|
||||
break;
|
||||
case 6:
|
||||
sub_803B034();
|
||||
break;
|
||||
case 4:
|
||||
case 7:
|
||||
default:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_803ACB4(void)
|
||||
{
|
||||
if(gUnknown_203B3F8 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B3F8);
|
||||
gUnknown_203B3F8 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803ACD0(u32 newState)
|
||||
{
|
||||
gUnknown_203B3F8->state = newState;
|
||||
sub_803ACE8();
|
||||
sub_803AD88();
|
||||
}
|
||||
|
||||
void sub_803ACE8(void)
|
||||
{
|
||||
s32 index;
|
||||
sub_8006518(gUnknown_203B3F8->unkE0);
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 3:
|
||||
sub_803AEB0();
|
||||
gUnknown_203B3F8->unkE0[2] = gUnknown_80E7EEC;
|
||||
sub_8012CAC(&gUnknown_203B3F8->unkE0[2], gUnknown_203B3F8->unk90);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B3F8->unkE0[3] = gUnknown_80E7F04;
|
||||
break;
|
||||
default:
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B3F8->unkE0[index] = gUnknown_80E7ED4;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B3F8->unkE0, 1, 1);
|
||||
}
|
||||
|
||||
void sub_803AD88(void)
|
||||
{
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 1:
|
||||
sub_8023868(1, 0, 0, 10);
|
||||
break;
|
||||
case 2:
|
||||
sub_8023B7C(1);
|
||||
break;
|
||||
case 3:
|
||||
sub_8023DA4();
|
||||
sub_8012D60(&gUnknown_203B3F8->unk10, gUnknown_203B3F8->unk90, 0, gUnknown_203B3F8->unkD0, gUnknown_203B3F8->menuAction, 2);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B3F8->unk70 = 3;
|
||||
gUnknown_203B3F8->unk68 = 1;
|
||||
gUnknown_203B3F8->unk6C = 0x64;
|
||||
gUnknown_203B3F8->unk64 = gUnknown_203B3F8->pokemon->unkHasNextStage;
|
||||
gUnknown_203B3F8->unk74 = 3;
|
||||
gUnknown_203B3F8->unk78 = &gUnknown_203B3F8->unkE0[3];
|
||||
gUnknown_203B3F8->unk7C = 0x2C;
|
||||
gUnknown_203B3F8->unk80 = 0x12;
|
||||
sub_8013AA0(&gUnknown_203B3F8->unk60);
|
||||
sub_803AE58();
|
||||
break;
|
||||
case 6:
|
||||
sub_801602C(2, gUnknown_203B3F8->pokemon->name);
|
||||
case 0:
|
||||
case 4:
|
||||
case 7:
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803AE58(void)
|
||||
{
|
||||
sub_8008C54(gUnknown_203B3F8->unk74);
|
||||
sub_80073B8(gUnknown_203B3F8->unk74);
|
||||
xxx_call_draw_string(4, 0, gDebug_NumberText2, gUnknown_203B3F8->unk74, 0);
|
||||
sub_8013C68(&gUnknown_203B3F8->unk60);
|
||||
sub_80073E0(gUnknown_203B3F8->unk74);
|
||||
sub_8023DA4();
|
||||
sub_8012EA4(&gUnknown_203B3F8->unk10, 0);
|
||||
}
|
||||
|
||||
void sub_803AEB0(void)
|
||||
{
|
||||
s32 index;
|
||||
s32 loopMax;
|
||||
|
||||
MemoryFill16(gUnknown_203B3F8->unkD0,0,sizeof(gUnknown_203B3F8->unkD0));
|
||||
loopMax = 0;
|
||||
|
||||
gUnknown_203B3F8->unk90[loopMax].text = gDebug_LevelText;
|
||||
gUnknown_203B3F8->unk90[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B3F8->unk90[loopMax].text = gDebug_Name;
|
||||
gUnknown_203B3F8->unk90[loopMax].menuAction = 5;
|
||||
loopMax += 1;
|
||||
gUnknown_203B3F8->unk90[loopMax].text = NULL;
|
||||
gUnknown_203B3F8->unk90[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if (gUnknown_203B3F8->unkD0[index] == 0)
|
||||
{
|
||||
gUnknown_203B3F8->menuAction = gUnknown_203B3F8->unk90[index].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803AF38(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,161 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
#include "text.h"
|
||||
#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;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7EEC;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7F04;
|
||||
extern u8 gDebug_NumberText2[];
|
||||
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8023DA4(void);
|
||||
extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32);
|
||||
|
||||
void sub_803ACD0(u32);
|
||||
extern void sub_803ACE8();
|
||||
extern void sub_803AD88();
|
||||
extern void sub_803AF38();
|
||||
extern void sub_803AF88();
|
||||
extern void sub_803AFE8();
|
||||
extern void sub_803B034();
|
||||
extern void sub_8023868(u32, u32, u32, u32);
|
||||
extern void sub_8023B7C(u32);
|
||||
extern void sub_8023DA4();
|
||||
extern void sub_8013AA0(u32 *);
|
||||
extern void sub_803AE58();
|
||||
extern void sub_801602C(u32, u8 *);
|
||||
|
||||
extern void sub_803AEB0();
|
||||
|
||||
u32 sub_803AC24(void)
|
||||
{
|
||||
gUnknown_203B3F8 = MemoryAlloc(sizeof(struct unkStruct_203B3F8), 8);
|
||||
sub_803ACD0(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_803AC48(void)
|
||||
{
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 0:
|
||||
sub_803ACD0(1);
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
sub_803AF38();
|
||||
break;
|
||||
case 3:
|
||||
sub_803AF88();
|
||||
break;
|
||||
case 5:
|
||||
sub_803AFE8();
|
||||
break;
|
||||
case 6:
|
||||
sub_803B034();
|
||||
break;
|
||||
case 4:
|
||||
case 7:
|
||||
default:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_803ACB4(void)
|
||||
{
|
||||
if(gUnknown_203B3F8 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B3F8);
|
||||
gUnknown_203B3F8 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803ACD0(u32 newState)
|
||||
{
|
||||
gUnknown_203B3F8->state = newState;
|
||||
sub_803ACE8();
|
||||
sub_803AD88();
|
||||
}
|
||||
|
||||
void sub_803ACE8(void)
|
||||
{
|
||||
s32 index;
|
||||
sub_8006518(gUnknown_203B3F8->unkE0);
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 3:
|
||||
sub_803AEB0();
|
||||
gUnknown_203B3F8->unkE0[2] = gUnknown_80E7EEC;
|
||||
sub_8012CAC(&gUnknown_203B3F8->unkE0[2], gUnknown_203B3F8->unk90);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B3F8->unkE0[3] = gUnknown_80E7F04;
|
||||
break;
|
||||
default:
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B3F8->unkE0[index] = gUnknown_80E7ED4;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B3F8->unkE0, 1, 1);
|
||||
}
|
||||
|
||||
void sub_803AD88(void)
|
||||
{
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 1:
|
||||
sub_8023868(1, 0, 0, 10);
|
||||
break;
|
||||
case 2:
|
||||
sub_8023B7C(1);
|
||||
break;
|
||||
case 3:
|
||||
sub_8023DA4();
|
||||
sub_8012D60(&gUnknown_203B3F8->unk10, gUnknown_203B3F8->unk90, 0, gUnknown_203B3F8->unkD0, gUnknown_203B3F8->menuAction, 2);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B3F8->unk70 = 3;
|
||||
gUnknown_203B3F8->unk68 = 1;
|
||||
gUnknown_203B3F8->unk6C = 0x64;
|
||||
gUnknown_203B3F8->unk64 = gUnknown_203B3F8->pokemon->unkHasNextStage;
|
||||
gUnknown_203B3F8->unk74 = 3;
|
||||
gUnknown_203B3F8->unk78 = &gUnknown_203B3F8->unkE0[3];
|
||||
gUnknown_203B3F8->unk7C = 0x2C;
|
||||
gUnknown_203B3F8->unk80 = 0x12;
|
||||
sub_8013AA0(&gUnknown_203B3F8->unk60);
|
||||
sub_803AE58();
|
||||
break;
|
||||
case 6:
|
||||
sub_801602C(2, gUnknown_203B3F8->pokemon->name);
|
||||
case 0:
|
||||
case 4:
|
||||
case 7:
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803AE58(void)
|
||||
{
|
||||
sub_8008C54(gUnknown_203B3F8->unk74);
|
||||
sub_80073B8(gUnknown_203B3F8->unk74);
|
||||
xxx_call_draw_string(4, 0, gDebug_NumberText2, gUnknown_203B3F8->unk74, 0);
|
||||
sub_8013C68(&gUnknown_203B3F8->unk60);
|
||||
sub_80073E0(gUnknown_203B3F8->unk74);
|
||||
sub_8023DA4();
|
||||
sub_8012EA4(&gUnknown_203B3F8->unk10, 0);
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
#include "menu.h"
|
||||
#include "text.h"
|
||||
#include "menu_input.h"
|
||||
#include "friend_area.h"
|
||||
|
||||
struct unkStruct_203B3F0
|
||||
{
|
||||
|
|
@ -45,19 +46,62 @@ struct unkStruct_203B3F4
|
|||
extern struct unkStruct_203B3F4 *gUnknown_203B3F4;
|
||||
|
||||
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
extern void sub_8013AA0(u32 *);
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80E7E34;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7E4C;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7E64;
|
||||
extern const char gDebug_NumberText;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7E8C;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7EA4;
|
||||
const struct UnkTextStruct2 gUnknown_80E7E34 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
NULL
|
||||
|
||||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E7E4C = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x14, 0x00, 0x04, 0x00,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
NULL
|
||||
|
||||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E7E64 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x14, 0x00, 0x0e, 0x00,
|
||||
0x06, 0x04,
|
||||
0x04, 0x00,
|
||||
NULL
|
||||
|
||||
};
|
||||
ALIGNED(4) const char gDebug_NumberText[] = "Number?";
|
||||
ALIGNED(4) static const u8 fill0[] = "pksdir0";
|
||||
const struct UnkTextStruct2 gUnknown_80E7E8C = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
NULL
|
||||
|
||||
};
|
||||
const struct UnkTextStruct2 gUnknown_80E7EA4 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x00, 0x04, 0x00,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
NULL
|
||||
|
||||
};
|
||||
ALIGNED(4) const u8 gDebug_CloseText[] = "CLOSE";
|
||||
ALIGNED(4) const u8 gDebug_OpenText[] = "OPEN";
|
||||
ALIGNED(4) static const u8 fill1[] = "pksdir0";
|
||||
extern bool8 *gFriendAreas;
|
||||
extern const char *gUnknown_80D4970[];
|
||||
|
||||
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
extern void sub_8013AA0(u32 *);
|
||||
extern void sub_801C8C4(u32, u32, u32, u32);
|
||||
extern void sub_801CB5C(u32);
|
||||
extern void sub_801CCD8();
|
||||
|
|
@ -77,9 +121,6 @@ extern void sub_8021354(u32);
|
|||
extern void sub_8021494();
|
||||
extern void sub_803AA34();
|
||||
extern void sub_8021774(u8,u32, u32);
|
||||
extern u8 gDebug_CloseText[];
|
||||
extern u8 gDebug_OpenText[];
|
||||
extern void UnlockFriendArea(u8);
|
||||
extern void sub_809249C(u8, u32);
|
||||
extern void sub_8021830(void);
|
||||
extern u32 sub_80217EC(void);
|
||||
|
|
@ -218,7 +259,7 @@ void sub_803A690(void)
|
|||
{
|
||||
sub_8008C54(gUnknown_203B3F0->unkB0);
|
||||
sub_80073B8(gUnknown_203B3F0->unkB0);
|
||||
xxx_call_draw_string(4, 0, &gDebug_NumberText, gUnknown_203B3F0->unkB0, 0);
|
||||
xxx_call_draw_string(4, 0, gDebug_NumberText, gUnknown_203B3F0->unkB0, 0);
|
||||
sub_8013C68(&gUnknown_203B3F0->unk9C);
|
||||
sub_80073E0(gUnknown_203B3F0->unkB0);
|
||||
sub_801CCD8();
|
||||
|
|
@ -227,23 +268,21 @@ void sub_803A690(void)
|
|||
|
||||
void sub_803A6F0(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
struct unkStruct_203B3F0 *preload;
|
||||
s32 loopMax = 0;
|
||||
|
||||
gUnknown_203B3F0->menuItems[0].text = &gDebug_NumberText;
|
||||
gUnknown_203B3F0->menuItems[0].menuAction = 2;
|
||||
gUnknown_203B3F0->menuItems[loopMax].text = gDebug_NumberText;
|
||||
gUnknown_203B3F0->menuItems[loopMax].menuAction = 2;
|
||||
gUnknown_203B3F0->menuAction = 2;
|
||||
if (!IsNotMoneyOrUsedTMItem(gUnknown_203B3F0->id)) {
|
||||
gUnknown_203B3F0->menuItems[0].menuAction = -1;
|
||||
gUnknown_203B3F0->menuItems[loopMax].menuAction = -1;
|
||||
gUnknown_203B3F0->menuAction = 3;
|
||||
}
|
||||
preload = gUnknown_203B3F0;
|
||||
// this var gets loaded in between the sets... very dumb
|
||||
menuAction = 1;
|
||||
preload->menuItems[1].text = *gUnknown_80D4970;
|
||||
preload->menuItems[1].menuAction = 3;
|
||||
preload->menuItems[2].text = NULL;
|
||||
preload->menuItems[2].menuAction = menuAction;
|
||||
loopMax += 1;
|
||||
gUnknown_203B3F0->menuItems[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B3F0->menuItems[loopMax].menuAction = 3;
|
||||
loopMax += 1;
|
||||
gUnknown_203B3F0->menuItems[loopMax].text = NULL;
|
||||
gUnknown_203B3F0->menuItems[loopMax].menuAction = 1;
|
||||
}
|
||||
|
||||
void sub_803A740(void)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
#include "dungeon_entity.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_leader.h"
|
||||
#include "dungeon_movement_1.h"
|
||||
#include "dungeon_movement.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "pokemon.h"
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
#include "dungeon_capabilities_1.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_movement_1.h"
|
||||
#include "dungeon_movement.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "dungeon_range.h"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_ai.h"
|
||||
#include "dungeon_leader.h"
|
||||
#include "dungeon_movement_1.h"
|
||||
#include "dungeon_movement.h"
|
||||
#include "dungeon_util.h"
|
||||
|
||||
extern s16 gSpeedTurns[2][25];
|
||||
|
|
|
|||
|
|
@ -1,7 +1,20 @@
|
|||
#include "global.h"
|
||||
#include "dungeon_movement.h"
|
||||
#include "map.h"
|
||||
#include "dungeon_movement.h"
|
||||
|
||||
#include "constants/item.h"
|
||||
#include "constants/iq_skill.h"
|
||||
#include "constants/status.h"
|
||||
#include "constants/type.h"
|
||||
#include "constants/weather.h"
|
||||
#include "dungeon_engine.h"
|
||||
#include "dungeon_items.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "pokemon.h"
|
||||
#include "weather.h"
|
||||
|
||||
extern u8 gWalkableTileToCrossableTerrain[8];
|
||||
|
||||
|
|
@ -24,3 +37,294 @@ u8 GetCrossableTerrain(s16 species)
|
|||
return walkableTiles;
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_807034C(s16 id, struct Tile *tile)
|
||||
{
|
||||
s32 crossableTerrain;
|
||||
u16 tileFlags;
|
||||
s32 id_s32;
|
||||
|
||||
id_s32 = id;
|
||||
|
||||
if ((tile->monster == NULL) && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) {
|
||||
crossableTerrain = GetCrossableTerrain(id_s32);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u8 sub_80703A0(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
u8 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x,pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y) && (tile->monster == NULL) && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) {
|
||||
if ((IsCurrentFixedRoomBossFight()) || ((entityInfo->transformStatus != STATUS_MOBILE && (!HasHeldItem(pokemon, ITEM_MOBILE_SCARF))))) {
|
||||
crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_CREVICE;
|
||||
}
|
||||
if (IQSkillIsEnabled(pokemon, IQ_SUPER_MOBILE)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_WALL;
|
||||
}
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
} else return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 CanCrossWalls(struct Entity *pokemon)
|
||||
{
|
||||
struct EntityInfo *pokemonInfo = pokemon->info;
|
||||
struct EntityInfo *pokemonInfo2 = pokemonInfo;
|
||||
if (pokemonInfo2->transformStatus == STATUS_MOBILE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (HasHeldItem(pokemon, ITEM_MOBILE_SCARF))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (GetCrossableTerrain(pokemonInfo2->id) == CROSSABLE_TERRAIN_WALL)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_807049C(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
s32 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x, pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) &&
|
||||
(tile->monster == NULL || (GetEntityType(tile->monster) == ENTITY_MONSTER))) {
|
||||
if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) {
|
||||
crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_CREVICE;
|
||||
}
|
||||
if (IQSkillIsEnabled(pokemon, IQ_SUPER_MOBILE)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_WALL;
|
||||
}
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8070564(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
u8 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
#ifndef NONMATCHING
|
||||
register s32 tileFlags_0 asm("r0");
|
||||
register s32 crossableTerrain2 asm("r3");
|
||||
#else
|
||||
s32 tileFlags_0;
|
||||
s32 crossableTerrain2;
|
||||
#endif
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x, pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) &&
|
||||
(tile->monster == NULL || (GetEntityType(tile->monster) == ENTITY_MONSTER))) {
|
||||
crossableTerrain2 = crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags_0 = tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_WALL: // 3
|
||||
case CROSSABLE_TERRAIN_CREVICE: // 2
|
||||
case 4 ... INT_MAX:
|
||||
if (crossableTerrain2 > CROSSABLE_TERRAIN_WALL) return FALSE;
|
||||
if(tileFlags != 0)
|
||||
return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_REGULAR: // 0
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL)
|
||||
default:
|
||||
return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_LIQUID: // 1
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
if (tileFlags_0 == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80705F0(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
s32 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x, pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) &&
|
||||
((tile->monster == NULL) || ((GetEntityType(tile->monster) == ENTITY_MONSTER)))) {
|
||||
if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) {
|
||||
crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_CREVICE;
|
||||
}
|
||||
if (IQSkillIsEnabled(pokemon, IQ_SUPER_MOBILE)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_WALL;
|
||||
}
|
||||
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80706A4(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
s32 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x, pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) &&
|
||||
((tile->monster == NULL) || ((GetEntityType(tile->monster) == ENTITY_MONSTER) && (tile->monster->info == entityInfo)))) {
|
||||
if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) {
|
||||
crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_CREVICE;
|
||||
}
|
||||
if (IQSkillIsEnabled(pokemon, IQ_SUPER_MOBILE)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_WALL;
|
||||
}
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s32 CalcSpeedStage(struct Entity *pokemon)
|
||||
{
|
||||
s32 index;
|
||||
s32 speed;
|
||||
struct EntityInfo * entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
speed = 0;
|
||||
|
||||
for(index = 0; index < NUM_SPEED_COUNTERS; index++)
|
||||
{
|
||||
if (entityInfo->speedUpCounters[index + NUM_SPEED_COUNTERS] != 0) {
|
||||
speed--;
|
||||
}
|
||||
if (entityInfo->speedUpCounters[index] != 0) {
|
||||
speed++;
|
||||
}
|
||||
}
|
||||
|
||||
if (entityInfo->nonVolatileStatus == STATUS_PARALYSIS) {
|
||||
speed--;
|
||||
}
|
||||
|
||||
speed += GetMovementSpeed(entityInfo->id);
|
||||
if ((MonsterIsType(pokemon, TYPE_ICE)) && (GetApparentWeather(pokemon) == WEATHER_SNOW)) {
|
||||
speed++;
|
||||
}
|
||||
if (entityInfo->apparentID == MONSTER_DEOXYS_SPEED) {
|
||||
speed++;
|
||||
}
|
||||
if ((entityInfo->id == MONSTER_KECLEON) && entityInfo->isNotTeamMember &&
|
||||
gDungeon->unk66E) {
|
||||
speed++;
|
||||
}
|
||||
if (speed < 0) {
|
||||
speed = 0;
|
||||
}
|
||||
if (MAX_SPEED_STAGE < speed) {
|
||||
speed = MAX_SPEED_STAGE;
|
||||
}
|
||||
entityInfo->speedStage = speed;
|
||||
return speed;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,282 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "dungeon_movement_1.h"
|
||||
|
||||
#include "constants/item.h"
|
||||
#include "constants/iq_skill.h"
|
||||
#include "constants/status.h"
|
||||
#include "constants/type.h"
|
||||
#include "constants/weather.h"
|
||||
#include "dungeon_engine.h"
|
||||
#include "dungeon_items.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_movement.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "map.h"
|
||||
#include "pokemon.h"
|
||||
#include "weather.h"
|
||||
|
||||
|
||||
u8 sub_80703A0(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
u8 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x,pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y) && (tile->monster == NULL) && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) {
|
||||
if ((IsCurrentFixedRoomBossFight()) || ((entityInfo->transformStatus != STATUS_MOBILE && (!HasHeldItem(pokemon, ITEM_MOBILE_SCARF))))) {
|
||||
crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_CREVICE;
|
||||
}
|
||||
if (IQSkillIsEnabled(pokemon, IQ_SUPER_MOBILE)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_WALL;
|
||||
}
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
} else return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 CanCrossWalls(struct Entity *pokemon)
|
||||
{
|
||||
struct EntityInfo *pokemonInfo = pokemon->info;
|
||||
struct EntityInfo *pokemonInfo2 = pokemonInfo;
|
||||
if (pokemonInfo2->transformStatus == STATUS_MOBILE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (HasHeldItem(pokemon, ITEM_MOBILE_SCARF))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
if (GetCrossableTerrain(pokemonInfo2->id) == CROSSABLE_TERRAIN_WALL)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_807049C(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
s32 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x, pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) &&
|
||||
(tile->monster == NULL || (GetEntityType(tile->monster) == ENTITY_MONSTER))) {
|
||||
if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) {
|
||||
crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_CREVICE;
|
||||
}
|
||||
if (IQSkillIsEnabled(pokemon, IQ_SUPER_MOBILE)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_WALL;
|
||||
}
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8070564(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
u8 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
#ifndef NONMATCHING
|
||||
register s32 tileFlags_0 asm("r0");
|
||||
register s32 crossableTerrain2 asm("r3");
|
||||
#else
|
||||
s32 tileFlags_0;
|
||||
s32 crossableTerrain2;
|
||||
#endif
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x, pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) &&
|
||||
(tile->monster == NULL || (GetEntityType(tile->monster) == ENTITY_MONSTER))) {
|
||||
crossableTerrain2 = crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags_0 = tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_WALL: // 3
|
||||
case CROSSABLE_TERRAIN_CREVICE: // 2
|
||||
case 4 ... INT_MAX:
|
||||
if (crossableTerrain2 > CROSSABLE_TERRAIN_WALL) return FALSE;
|
||||
if(tileFlags != 0)
|
||||
return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_REGULAR: // 0
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL)
|
||||
default:
|
||||
return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_LIQUID: // 1
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
if (tileFlags_0 == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80705F0(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
s32 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x, pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) &&
|
||||
((tile->monster == NULL) || ((GetEntityType(tile->monster) == ENTITY_MONSTER)))) {
|
||||
if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) {
|
||||
crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_CREVICE;
|
||||
}
|
||||
if (IQSkillIsEnabled(pokemon, IQ_SUPER_MOBILE)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_WALL;
|
||||
}
|
||||
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80706A4(struct Entity *pokemon, struct Position *pos)
|
||||
{
|
||||
s32 crossableTerrain;
|
||||
struct Tile *tile;
|
||||
u16 tileFlags;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
tile = GetTile(pos->x, pos->y);
|
||||
if ((pos->x >= 0) && (pos->y >= 0) && (DUNGEON_MAX_SIZE_X > pos->x) &&
|
||||
(DUNGEON_MAX_SIZE_Y > pos->y && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) &&
|
||||
((tile->monster == NULL) || ((GetEntityType(tile->monster) == ENTITY_MONSTER) && (tile->monster->info == entityInfo)))) {
|
||||
if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) {
|
||||
crossableTerrain = GetCrossableTerrain(entityInfo->id);
|
||||
tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_CREVICE;
|
||||
}
|
||||
if (IQSkillIsEnabled(pokemon, IQ_SUPER_MOBILE)) {
|
||||
crossableTerrain = CROSSABLE_TERRAIN_WALL;
|
||||
}
|
||||
switch(crossableTerrain)
|
||||
{
|
||||
case CROSSABLE_TERRAIN_LIQUID:
|
||||
if(tileFlags == TERRAIN_TYPE_SECONDARY) return FALSE;
|
||||
case CROSSABLE_TERRAIN_REGULAR:
|
||||
if(tileFlags == TERRAIN_TYPE_NORMAL) return FALSE;
|
||||
break;
|
||||
case CROSSABLE_TERRAIN_WALL:
|
||||
default:
|
||||
return FALSE;
|
||||
case CROSSABLE_TERRAIN_CREVICE:
|
||||
if(tileFlags != 0) return FALSE;
|
||||
}
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s32 CalcSpeedStage(struct Entity *pokemon)
|
||||
{
|
||||
s32 index;
|
||||
s32 speed;
|
||||
struct EntityInfo * entityInfo;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
speed = 0;
|
||||
|
||||
for(index = 0; index < NUM_SPEED_COUNTERS; index++)
|
||||
{
|
||||
if (entityInfo->speedUpCounters[index + NUM_SPEED_COUNTERS] != 0) {
|
||||
speed--;
|
||||
}
|
||||
if (entityInfo->speedUpCounters[index] != 0) {
|
||||
speed++;
|
||||
}
|
||||
}
|
||||
|
||||
if (entityInfo->nonVolatileStatus == STATUS_PARALYSIS) {
|
||||
speed--;
|
||||
}
|
||||
|
||||
speed += GetMovementSpeed(entityInfo->id);
|
||||
if ((MonsterIsType(pokemon, TYPE_ICE)) && (GetApparentWeather(pokemon) == WEATHER_SNOW)) {
|
||||
speed++;
|
||||
}
|
||||
if (entityInfo->apparentID == MONSTER_DEOXYS_SPEED) {
|
||||
speed++;
|
||||
}
|
||||
if ((entityInfo->id == MONSTER_KECLEON) && entityInfo->isNotTeamMember &&
|
||||
gDungeon->unk66E) {
|
||||
speed++;
|
||||
}
|
||||
if (speed < 0) {
|
||||
speed = 0;
|
||||
}
|
||||
if (MAX_SPEED_STAGE < speed) {
|
||||
speed = MAX_SPEED_STAGE;
|
||||
}
|
||||
entityInfo->speedStage = speed;
|
||||
return speed;
|
||||
}
|
||||
|
|
@ -62,7 +62,7 @@ bool8 sub_8071728(struct Entity * pokemon, struct Entity * target, bool8 display
|
|||
bool8 sub_80717A4(struct Entity *pokemon, u16 moveID)
|
||||
{
|
||||
struct EntityInfo * entityInfo;
|
||||
s32 iVar3;
|
||||
s32 index;
|
||||
|
||||
entityInfo = pokemon->info;
|
||||
if ((entityInfo->sleep != STATUS_SLEEP) && (entityInfo->sleep != STATUS_NAPPING) && (entityInfo->sleep != STATUS_NIGHTMARE)) {
|
||||
|
|
@ -71,11 +71,15 @@ bool8 sub_80717A4(struct Entity *pokemon, u16 moveID)
|
|||
else
|
||||
{
|
||||
// Pin this register to match
|
||||
#ifndef NONMATCHING
|
||||
register struct Move *pokeMove asm("r4");
|
||||
#else
|
||||
struct Move *pokeMove;
|
||||
#endif
|
||||
|
||||
struct Move *pokeMove2; // some reason uses another pointer to same struct
|
||||
|
||||
for(iVar3 = 0, pokeMove = entityInfo->moves, pokeMove2 = pokeMove; iVar3 < MAX_MON_MOVES; pokeMove++, pokeMove2++, iVar3++)
|
||||
for(index = 0, pokeMove = entityInfo->moves, pokeMove2 = pokeMove; index < MAX_MON_MOVES; pokeMove++, pokeMove2++, index++)
|
||||
{
|
||||
if (((pokeMove->moveFlags & MOVE_FLAG_EXISTS)) && (entityInfo->isTeamLeader || ((pokeMove->moveFlags & MOVE_FLAG_ENABLED_FOR_AI))))
|
||||
if((sub_805744C(pokemon, pokeMove2, TRUE) != 0) && (pokeMove->PP != 0))
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ const u8 filler_ex1[8] =
|
|||
'p', 'k', 's', 'd', 'i', 'r', '0', 0
|
||||
};
|
||||
|
||||
extern struct ExclusivePokemonData *gUnknown_203B498;
|
||||
EWRAM_DATA_2 struct ExclusivePokemonData *gUnknown_203B498 = {0};
|
||||
EWRAM_DATA struct ExclusivePokemonData gExclusivePokemonInfo = {0};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -15,36 +15,36 @@ u8 sub_80981A0(s32);
|
|||
|
||||
bool8 IsExclusivePokemonUnlocked(s16 pokeID)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 index;
|
||||
s32 pokeID_s32;
|
||||
|
||||
pokeID_s32 = pokeID;
|
||||
|
||||
for(iVar2 = 0; iVar2 < NUM_EXCLUSIVE_POKEMON; iVar2++)
|
||||
for(index = 0; index < NUM_EXCLUSIVE_POKEMON; index++)
|
||||
{
|
||||
if(gExclusivePokemon[iVar2].poke_id == pokeID_s32)
|
||||
return gUnknown_203B498->Exclusives[iVar2];
|
||||
if(gExclusivePokemon[index].poke_id == pokeID_s32)
|
||||
return gUnknown_203B498->Exclusives[index];
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void UnlockExclusivePokemon(s16 pokeID)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 index;
|
||||
s32 pokeID_s32;
|
||||
|
||||
pokeID_s32 = pokeID;
|
||||
|
||||
for(iVar2 = 0; iVar2 < NUM_EXCLUSIVE_POKEMON; iVar2++)
|
||||
for(index = 0; index < NUM_EXCLUSIVE_POKEMON; index++)
|
||||
{
|
||||
if(gExclusivePokemon[iVar2].poke_id == pokeID_s32)
|
||||
gUnknown_203B498->Exclusives[iVar2] = TRUE;
|
||||
if(gExclusivePokemon[index].poke_id == pokeID_s32)
|
||||
gUnknown_203B498->Exclusives[index] = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void WriteExclusivePokemon(struct unkStruct_8094924 *r0)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 index;
|
||||
u8 *puVar2;
|
||||
|
||||
u8 stack_0;
|
||||
|
|
@ -58,24 +58,24 @@ void WriteExclusivePokemon(struct unkStruct_8094924 *r0)
|
|||
|
||||
|
||||
SaveIntegerBits(r0, gUnknown_203B498, 1);
|
||||
for(iVar2 = 0; iVar2 < 424; iVar2++)
|
||||
for(index = 0; index < 424; index++)
|
||||
{
|
||||
stack_0 = sub_8098134(iVar2);
|
||||
stack_0 = sub_8098134(index);
|
||||
SaveIntegerBits(r0, &stack_0, 1);
|
||||
}
|
||||
for(iVar2 = 0; iVar2 < 64; iVar2++)
|
||||
for(index = 0; index < 64; index++)
|
||||
{
|
||||
stack_1 = sub_8098100(iVar2);
|
||||
stack_1 = sub_8098100(index);
|
||||
SaveIntegerBits(r0, &stack_1, 1);
|
||||
}
|
||||
for(iVar2 = 0; iVar2 < 31; iVar2++)
|
||||
for(index = 0; index < 31; index++)
|
||||
{
|
||||
stack_2 = sub_80981A0(iVar2);
|
||||
stack_2 = sub_80981A0(index);
|
||||
SaveIntegerBits(r0, &stack_2, 1);
|
||||
}
|
||||
for(iVar2 = 0; iVar2 < NUM_EXCLUSIVE_POKEMON; iVar2++)
|
||||
for(index = 0; index < NUM_EXCLUSIVE_POKEMON; index++)
|
||||
{
|
||||
if(gUnknown_203B498->Exclusives[iVar2])
|
||||
if(gUnknown_203B498->Exclusives[index])
|
||||
puVar2 = &neg_1;
|
||||
else
|
||||
puVar2 = &zero;
|
||||
|
|
@ -85,7 +85,7 @@ void WriteExclusivePokemon(struct unkStruct_8094924 *r0)
|
|||
|
||||
void ReadExclusivePokemon(struct unkStruct_8094924 *r0)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 index;
|
||||
u8 stack_0;
|
||||
u8 stack_1;
|
||||
u8 stack_2;
|
||||
|
|
@ -93,31 +93,31 @@ void ReadExclusivePokemon(struct unkStruct_8094924 *r0)
|
|||
|
||||
memset(gUnknown_203B498, 0, sizeof(struct ExclusivePokemonData));
|
||||
RestoreIntegerBits(r0, gUnknown_203B498, 1);
|
||||
for(iVar2 = 0; iVar2 < 424; iVar2++)
|
||||
for(index = 0; index < 424; index++)
|
||||
{
|
||||
RestoreIntegerBits(r0, &stack_0, 1);
|
||||
if(stack_0)
|
||||
sub_80980B4(iVar2);
|
||||
sub_80980B4(index);
|
||||
}
|
||||
for(iVar2 = 0; iVar2 < 64; iVar2++)
|
||||
for(index = 0; index < 64; index++)
|
||||
{
|
||||
RestoreIntegerBits(r0, &stack_1, 1);
|
||||
if(stack_1)
|
||||
sub_8097FA8(iVar2);
|
||||
sub_8097FA8(index);
|
||||
}
|
||||
for(iVar2 = 0; iVar2 < 31; iVar2++)
|
||||
for(index = 0; index < 31; index++)
|
||||
{
|
||||
RestoreIntegerBits(r0, &stack_2, 1);
|
||||
if(stack_2)
|
||||
sub_8098170(iVar2);
|
||||
sub_8098170(index);
|
||||
}
|
||||
for(iVar2 = 0; iVar2 < NUM_EXCLUSIVE_POKEMON; iVar2++)
|
||||
for(index = 0; index < NUM_EXCLUSIVE_POKEMON; index++)
|
||||
{
|
||||
RestoreIntegerBits(r0, &stack_3, 1);
|
||||
|
||||
do; while(0); // do/while needed for matching - jiang
|
||||
|
||||
gUnknown_203B498->Exclusives[iVar2] = 1 & stack_3;
|
||||
gUnknown_203B498->Exclusives[index] = 1 & stack_3;
|
||||
}
|
||||
sub_8097FF8();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include "flash.h"
|
||||
#include "memory.h"
|
||||
|
||||
u8 gFlashEnabled;
|
||||
EWRAM_DATA_2 bool8 gFlashEnabled = {0};
|
||||
|
||||
extern FlashIntrFunc *GetInterruptHandler(s32);
|
||||
|
||||
|
|
|
|||
|
|
@ -247,7 +247,7 @@ void sub_8027274(void)
|
|||
case 3:
|
||||
sub_8027D40(3,&gUnknown_203B2BC->item2);
|
||||
sub_8023DA4();
|
||||
sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,&gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction1,2);
|
||||
sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction1,2);
|
||||
break;
|
||||
case 4:
|
||||
sub_8024458(gUnknown_203B2BC->targetPoke,2);
|
||||
|
|
@ -263,7 +263,7 @@ void sub_8027274(void)
|
|||
break;
|
||||
case 0xc:
|
||||
sub_801A9E0();
|
||||
sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,&gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction2,2);
|
||||
sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction2,2);
|
||||
break;
|
||||
case 0xd:
|
||||
HeldItemToSlot(&slot, &gUnknown_203B2BC->itemToGive);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
|
|
@ -68,6 +69,64 @@ ALIGNED(4) const u8 gUnknown_80DD958[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_
|
|||
static const u8 filler[] = "pksdir0";
|
||||
|
||||
|
||||
extern u8 *gUnknown_80D4920[];
|
||||
extern u8 *gUnknown_80D4928[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
|
||||
void sub_80276A8(void)
|
||||
{
|
||||
int index;
|
||||
s32 loopMax;
|
||||
|
||||
loopMax = 0;
|
||||
MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C));
|
||||
gUnknown_203B2BC->menuItems[loopMax].text = gFriendActionGive;
|
||||
gUnknown_203B2BC->menuItems[loopMax].menuAction = 10;
|
||||
if (GetNumberOfFilledInventorySlots() == 0) {
|
||||
gUnknown_203B2BC->unk16C[loopMax] = 1;
|
||||
}
|
||||
loopMax += 1;
|
||||
gUnknown_203B2BC->menuItems[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B2BC->menuItems[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2BC->menuItems[loopMax].text = 0;
|
||||
gUnknown_203B2BC->menuItems[loopMax].menuAction = 1;
|
||||
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B2BC->unk16C[index] == 0)
|
||||
{
|
||||
if(gUnknown_203B2BC->menuItems[index].menuAction == gUnknown_203B2BC->menuAction2)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B2BC->unk16C[index] == 0)
|
||||
{
|
||||
gUnknown_203B2BC->menuAction2 = gUnknown_203B2BC->menuItems[index].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8027794(void)
|
||||
{
|
||||
s32 loopMax = 0;
|
||||
|
||||
MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C));
|
||||
gUnknown_203B2BC->menuItems[loopMax].text = *gUnknown_80D4920;
|
||||
gUnknown_203B2BC->menuItems[loopMax].menuAction = 0x2;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2BC->menuItems[loopMax].text = *gUnknown_80D4928;
|
||||
gUnknown_203B2BC->menuItems[loopMax].menuAction = 3;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2BC->menuItems[loopMax].text = NULL;
|
||||
gUnknown_203B2BC->menuItems[loopMax].menuAction = 1;
|
||||
}
|
||||
|
||||
void sub_80277FC(void)
|
||||
{
|
||||
struct PokemonStruct *pokeStruct;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,298 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "item.h"
|
||||
#include "pokemon.h"
|
||||
#include "moves.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
|
||||
// there might be more overlap with unkStruct_203B2BC
|
||||
// I was working on the moves and put the data that seemed to correspond to that
|
||||
// into a separate struct
|
||||
struct unkStruct_203B2B4
|
||||
{
|
||||
// size: 0x178
|
||||
s32 unk0;
|
||||
s32 state;
|
||||
u32 fallbackState;
|
||||
u8 unkC;
|
||||
u8 unkD;
|
||||
s16 species;
|
||||
u32 unk10;
|
||||
struct BulkItem item1;
|
||||
struct BulkItem item2;
|
||||
/* 0x1C */ struct PokemonStruct *pokeStruct;
|
||||
u32 moveIndex; // some sort of move index
|
||||
u16 moveID;
|
||||
struct Move moves[8];
|
||||
u16 moveIDs[4]; // some list of move IDs
|
||||
u32 menuAction1;
|
||||
s32 menuAction2;
|
||||
struct MenuStruct unk78;
|
||||
struct MenuItem unkC8[4];
|
||||
u8 fillE8[0x108 - 0xE8];
|
||||
s16 unk108[8];
|
||||
struct UnkTextStruct2 unk118[4];
|
||||
};
|
||||
extern struct unkStruct_203B2B4 *gUnknown_203B2B4;
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80DD190;
|
||||
extern struct UnkTextStruct2 gUnknown_80DD160;
|
||||
extern struct UnkTextStruct2 gUnknown_80DD148;
|
||||
extern struct UnkTextStruct2 gUnknown_80DD178;
|
||||
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
extern u8 gUnknown_80DD1A8[];
|
||||
extern u8 gUnknown_80DD270[];
|
||||
extern u8 gUnknown_80DD1C8[];
|
||||
extern u8 gUnknown_80DD1EC[];
|
||||
extern u8 gUnknown_80DD240[];
|
||||
|
||||
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
|
||||
extern s16 sub_80A5728(void);
|
||||
extern u8 sub_8002658(s16);
|
||||
extern bool8 sub_8024108(u32);
|
||||
extern void sub_8025434(s32);
|
||||
extern void sub_80259F0(void);
|
||||
extern void sub_8025A84(void);
|
||||
extern void sub_8025BCC(void);
|
||||
extern void sub_8025BE8(void);
|
||||
extern void sub_8025C04(void);
|
||||
extern void sub_8025CB4(void);
|
||||
extern void sub_8025D90(void);
|
||||
extern void sub_8025DAC(void);
|
||||
extern void sub_8025E08(void);
|
||||
extern void sub_8025E24(void);
|
||||
extern void sub_8025E44(void);
|
||||
extern void sub_802544C(void);
|
||||
extern void sub_8025518(void);
|
||||
extern void sub_8025728(void);
|
||||
extern void sub_802591C(void);
|
||||
extern u32 sub_801B3C0(struct Item *param_1);
|
||||
extern void sub_8023868(u32, u32, u32, u32);
|
||||
extern void sub_801F1B0(u32, u32);
|
||||
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_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 *);
|
||||
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 , struct BulkItem *);
|
||||
|
||||
bool8 sub_80252F0(s32 param_1)
|
||||
{
|
||||
|
||||
if ((param_1 == 2) && (sub_8024108(4) != '\0')) {
|
||||
return FALSE;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B2B4 = MemoryAlloc(sizeof(struct unkStruct_203B2B4),8);
|
||||
gUnknown_203B2B4->menuAction1 = 0;
|
||||
gUnknown_203B2B4->unk0 = param_1;
|
||||
gUnknown_203B2B4->unkC = sub_8002658(sub_80A5728());
|
||||
gUnknown_203B2B4->unkD = 0;
|
||||
if (gUnknown_203B2B4->unk0 == 2) {
|
||||
sub_8025434(0);
|
||||
}
|
||||
else {
|
||||
sub_8025434(1);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_8025354(void)
|
||||
{
|
||||
switch(gUnknown_203B2B4->state) {
|
||||
case 0x13:
|
||||
return 3;
|
||||
case 1:
|
||||
case 2:
|
||||
sub_80259F0();
|
||||
break;
|
||||
case 3:
|
||||
sub_8025A84();
|
||||
break;
|
||||
case 4:
|
||||
sub_8025BCC();
|
||||
break;
|
||||
case 5:
|
||||
sub_8025BE8();
|
||||
break;
|
||||
case 0xb:
|
||||
case 0xc:
|
||||
sub_8025C04();
|
||||
break;
|
||||
case 0xd:
|
||||
sub_8025CB4();
|
||||
break;
|
||||
case 0xe:
|
||||
sub_8025D90();
|
||||
break;
|
||||
case 0xf:
|
||||
case 0x10:
|
||||
sub_8025DAC();
|
||||
break;
|
||||
case 0x11:
|
||||
sub_8025E08();
|
||||
break;
|
||||
case 0x12:
|
||||
sub_8025E24();
|
||||
break;
|
||||
default:
|
||||
sub_8025E44();
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 sub_802540C(void)
|
||||
{
|
||||
return gUnknown_203B2B4->unkD;
|
||||
}
|
||||
|
||||
void sub_8025418(void)
|
||||
{
|
||||
if(gUnknown_203B2B4 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B2B4);
|
||||
gUnknown_203B2B4 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8025434(s32 newState)
|
||||
{
|
||||
gUnknown_203B2B4->state = newState;
|
||||
sub_802544C();
|
||||
sub_8025518();
|
||||
}
|
||||
|
||||
void sub_802544C(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
sub_8006518(gUnknown_203B2B4->unk118);
|
||||
|
||||
switch(gUnknown_203B2B4->state)
|
||||
{
|
||||
case 3:
|
||||
if (gUnknown_203B2B4->unk0 == 0) {
|
||||
gUnknown_203B2B4->unk118[3] = gUnknown_80DD190;
|
||||
}
|
||||
sub_8025728();
|
||||
gUnknown_203B2B4->unk118[2] = gUnknown_80DD160;
|
||||
sub_8012CAC(&gUnknown_203B2B4->unk118[2],gUnknown_203B2B4->unkC8);
|
||||
break;
|
||||
case 0xD:
|
||||
sub_802591C();
|
||||
gUnknown_203B2B4->unk118[2] = gUnknown_80DD178;
|
||||
sub_8012CAC(&gUnknown_203B2B4->unk118[2],gUnknown_203B2B4->unkC8);
|
||||
break;
|
||||
default:
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B2B4->unk118[index] = gUnknown_80DD148;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B2B4->unk118,1,1);
|
||||
}
|
||||
|
||||
void sub_8025518(void)
|
||||
{
|
||||
u32 uVar3;
|
||||
struct Item item;
|
||||
|
||||
switch(gUnknown_203B2B4->state)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_203B2B4->fallbackState = 1;
|
||||
sub_80141B4(gUnknown_80DD1A8,0,0,0x301);
|
||||
break;
|
||||
case 1:
|
||||
uVar3 = 4;
|
||||
if (gUnknown_203B2B4->unk0 == 0) {
|
||||
uVar3 = 2;
|
||||
}
|
||||
sub_8023868(uVar3,0,0,10);
|
||||
break;
|
||||
case 2:
|
||||
sub_8023B7C(1);
|
||||
break;
|
||||
case 3:
|
||||
if (gUnknown_203B2B4->unk0 == 0) {
|
||||
sub_8025E68(3,&gUnknown_203B2B4->item2);
|
||||
}
|
||||
sub_8023DA4();
|
||||
PrintColoredPokeNameToBuffer(gAvailablePokemonNames,gUnknown_203B2B4->pokeStruct,7);
|
||||
PrintColoredPokeNameToBuffer(gAvailablePokemonNames + 0x50,gUnknown_203B2B4->pokeStruct,6);
|
||||
sub_8012D60(&gUnknown_203B2B4->unk78,gUnknown_203B2B4->unkC8,0,gUnknown_203B2B4->unk108,gUnknown_203B2B4->menuAction1,2);
|
||||
break;
|
||||
case 4:
|
||||
sub_8024458(gUnknown_203B2B4->species,2);
|
||||
break;
|
||||
case 5:
|
||||
sub_801BEEC(gUnknown_203B2B4->species);
|
||||
break;
|
||||
case 0xb:
|
||||
sub_801A5D8(1,0,0,10);
|
||||
break;
|
||||
case 0xc:
|
||||
sub_801A8D0(1);
|
||||
break;
|
||||
case 0xd:
|
||||
sub_801A9E0();
|
||||
sub_8012D60(&gUnknown_203B2B4->unk78,gUnknown_203B2B4->unkC8,0,gUnknown_203B2B4->unk108,gUnknown_203B2B4->menuAction2,2);
|
||||
break;
|
||||
case 0xe:
|
||||
HeldItemToSlot(&item, &gUnknown_203B2B4->item1);
|
||||
sub_801B3C0(&item);
|
||||
break;
|
||||
case 8:
|
||||
gUnknown_203B2B4->fallbackState = 2;
|
||||
sub_80141B4(gUnknown_80DD1C8,0,0,0x101);
|
||||
break;
|
||||
case 9:
|
||||
gUnknown_203B2B4->fallbackState = 2;
|
||||
sub_80141B4(gUnknown_80DD1EC,0,0,0x101);
|
||||
break;
|
||||
case 10:
|
||||
gUnknown_203B2B4->fallbackState = 2;
|
||||
sub_80141B4(gUnknown_80DD240,0,0,0x101);
|
||||
break;
|
||||
case 7:
|
||||
gUnknown_203B2B4->fallbackState = 1;
|
||||
PlaySound(0xcf);
|
||||
sub_80141B4(gUnknown_80DD270,0,0,0x101);
|
||||
break;
|
||||
case 0xf:
|
||||
unk_CopyMoves4To8(gUnknown_203B2B4->moves,gUnknown_203B2B4->pokeStruct->moves);
|
||||
sub_801EE10(3,gUnknown_203B2B4->species,gUnknown_203B2B4->moves,0,0,0);
|
||||
break;
|
||||
case 0x10:
|
||||
sub_801F1B0(1,0);
|
||||
break;
|
||||
case 0x11:
|
||||
GetLinkedSequence(gUnknown_203B2B4->moveIndex,gUnknown_203B2B4->moves, gUnknown_203B2B4->moveIDs);
|
||||
sub_801F808(gUnknown_203B2B4->moveIDs);
|
||||
break;
|
||||
case 0x12:
|
||||
sub_801602C(2,gUnknown_203B2B4->pokeStruct->name);
|
||||
break;
|
||||
case 0x13:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ extern u32 sub_802F298();
|
|||
extern char gUnknown_202E5D8[0x50];
|
||||
extern char gAvailablePokemonNames[0x50];
|
||||
|
||||
extern struct WonderMailStruct_203B33C *gUnknown_203B33C;
|
||||
EWRAM_DATA_2 struct WonderMailStruct_203B33C *gUnknown_203B33C = {0};
|
||||
|
||||
extern u8 sub_8039880(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
|
||||
extern struct TeamInventory *gTeamInventory_203B460;
|
||||
extern u8 *gUnknown_203B484;
|
||||
|
||||
extern void SetFriendRescueMenuState(u32);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
|
|
@ -82,9 +81,7 @@ extern u16 sub_8023B44(void);
|
|||
|
||||
extern u32 sub_8039068(u32, u8 *r1, struct unkStruct_203B480 *r0);
|
||||
extern void sub_8095274(u32);
|
||||
extern void sub_80951BC(struct unkStruct_203B480 *r0);
|
||||
extern u8 sub_800D588(void);
|
||||
extern s32 FindOpenMailSlot(void);
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
|
||||
extern u8 gUnknown_80E44A4[];
|
||||
|
|
@ -724,7 +721,7 @@ void sub_8033DBC(void)
|
|||
case PASSWORD_ENTRY_AOK_MAIL_SUCCESS:
|
||||
mail.mailType = 5;
|
||||
sub_80951FC(&mail);
|
||||
mail2 = sub_8095228(GetMailIndex(1, mail.unk10.unk10));
|
||||
mail2 = GetMailatIndex(GetMailIndex(1, mail.unk10.unk10));
|
||||
mail2->mailType = 7;
|
||||
MemoryFill8((u8 *)gUnknown_203B484, 0, sizeof(struct unkStruct_203B484));
|
||||
SetFriendRescueMenuState(0x40);
|
||||
|
|
@ -1592,7 +1589,7 @@ void sub_8034D74(void)
|
|||
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_ERROR_2);
|
||||
break;
|
||||
case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS:
|
||||
mail2 = sub_8095228(GetMailIndex(4, mail.unk10.unk10));
|
||||
mail2 = GetMailatIndex(GetMailIndex(4, mail.unk10.unk10));
|
||||
*mail2 = mail;
|
||||
mail2->mailType = 6;
|
||||
gUnknown_203B33C->unk420 = mail.unk10.unk10;
|
||||
|
|
@ -1691,7 +1688,7 @@ void sub_8034F88(void)
|
|||
switch(menuAction)
|
||||
{
|
||||
case 6:
|
||||
mail = sub_8095228(gUnknown_203B33C->unk218);
|
||||
mail = GetMailatIndex(gUnknown_203B33C->unk218);
|
||||
if(gUnknown_203B33C->item.id != ITEM_NOTHING)
|
||||
mail->unk20 = gUnknown_203B33C->item;
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B33C->item.id]--;
|
||||
|
|
@ -1893,7 +1890,7 @@ void sub_8035210(void)
|
|||
case 0xD:
|
||||
if(gUnknown_203B33C->unk528 == 0x13)
|
||||
{
|
||||
mail = sub_8095228(GetFirstIndexofMailType(5));
|
||||
mail = GetMailatIndex(GetFirstIndexofMailType(5));
|
||||
if(mail->unk20.id != ITEM_NOTHING)
|
||||
SetFriendRescueMenuState(0x53);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -17,7 +17,8 @@ extern u32 sub_801F890(void);
|
|||
extern void sub_801F8D0(void);
|
||||
extern u8 IsNextMoveLinked(u32, struct Move *);
|
||||
extern void PlaySound(u32);
|
||||
extern void sub_801EF38(u32);
|
||||
extern u32 sub_801EF38(u32);
|
||||
extern u32 sub_801F194(void);
|
||||
|
||||
void sub_801ED28(void)
|
||||
{
|
||||
|
|
|
|||
12
src/items.c
12
src/items.c
|
|
@ -151,7 +151,7 @@ void xxx_init_helditem_8090B08(struct BulkItem *held, u8 id)
|
|||
held->quantity = 0;
|
||||
}
|
||||
else {
|
||||
held->id = 0;
|
||||
held->id = ITEM_NOTHING;
|
||||
held->quantity = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -494,7 +494,7 @@ void FillInventoryGaps()
|
|||
_slot += (size_t)gTeamInventory_203B460->teamItems;
|
||||
slot = (struct Item*)_slot; // &gTeamInventory_203B460->teamItems[end];
|
||||
#endif
|
||||
slot->id = 0;
|
||||
slot->id = ITEM_NOTHING;
|
||||
slot->quantity = 0;
|
||||
slot->flags = 0;
|
||||
}
|
||||
|
|
@ -567,7 +567,7 @@ void ShiftItemsDownFrom(s32 start)
|
|||
for (i = start, j = start + 1; i < INVENTORY_SIZE - 1; i++, j++) {
|
||||
gTeamInventory_203B460->teamItems[i] = gTeamInventory_203B460->teamItems[j];
|
||||
}
|
||||
gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].id = 0;
|
||||
gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].id = ITEM_NOTHING;
|
||||
gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].flags = 0;
|
||||
}
|
||||
|
||||
|
|
@ -621,7 +621,7 @@ void ConvertMoneyItemToMoney()
|
|||
|
||||
result = GetMoneyValue(current_slot);
|
||||
AddToTeamMoney(result);
|
||||
current_slot->id = 0;
|
||||
current_slot->id = ITEM_NOTHING;
|
||||
current_slot->quantity = 0;
|
||||
current_slot->flags = 0;
|
||||
}
|
||||
|
|
@ -1471,7 +1471,7 @@ void ClearAllItems_8091FB4() {
|
|||
slot->flags &= 0xf7;
|
||||
if (slot->id == ITEM_POKE) {
|
||||
AddToTeamMoney(GetMoneyValue(slot));
|
||||
slot->id = 0;
|
||||
slot->id = ITEM_NOTHING;
|
||||
slot->quantity = 0;
|
||||
slot->flags = 0;
|
||||
}
|
||||
|
|
@ -1493,7 +1493,7 @@ void ClearAllItems_8091FB4() {
|
|||
if (pokemon->heldItem.id) {
|
||||
if (pokemon->heldItem.id == ITEM_POKE) {
|
||||
AddToTeamMoney(GetMoneyValueHeld(&pokemon->heldItem));
|
||||
pokemon->heldItem.id = 0;
|
||||
pokemon->heldItem.id = ITEM_NOTHING;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,633 +0,0 @@
|
|||
#include "constants/item.h"
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "item.h"
|
||||
#include "team_inventory.h"
|
||||
#include "input.h"
|
||||
#include "kangaskhan_storage.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B208 *gUnknown_203B208;
|
||||
|
||||
extern struct unkStruct_203B20C *gUnknown_203B20C;
|
||||
|
||||
extern void sub_8017F10(u32);
|
||||
extern void sub_8018588(void);
|
||||
extern void sub_8018620(void);
|
||||
extern void sub_8018904(void);
|
||||
extern void sub_8018AC8(void);
|
||||
extern void sub_80186F8(void);
|
||||
extern void sub_8018854(void);
|
||||
extern void sub_80189C8(void);
|
||||
extern void sub_8018AE4(void);
|
||||
|
||||
|
||||
extern void sub_8017F28();
|
||||
extern void sub_8018100();
|
||||
extern void UpdateKangaskhanStorageState(u32);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern void sub_801B450();
|
||||
extern u32 sub_801B410(void);
|
||||
|
||||
extern void sub_801CBB8();
|
||||
|
||||
extern bool8 sub_801ADA0(u32);
|
||||
extern void sub_8099690(u32);
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
extern void sub_8017598(void);
|
||||
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern u32 sub_801CFB8(void);
|
||||
extern u8 sub_801CB24();
|
||||
extern void sub_801AD34(u32);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern u32 sub_801AEA8(void);
|
||||
extern u32 sub_801A8AC(void);
|
||||
extern void sub_801A928(void);
|
||||
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 xxx_call_draw_string(u32 x, u32 y, u8 *, u32, u32);
|
||||
|
||||
extern void sub_801A9E0();
|
||||
extern void sub_801841C();
|
||||
extern void sub_801CCD8();
|
||||
extern void sub_80184D4();
|
||||
extern void sub_8018280();
|
||||
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_801CB5C(u32);
|
||||
extern void sub_801A8D0(u32);
|
||||
extern u32 sub_801CFE0(u8);
|
||||
extern void sub_801CF94(void);
|
||||
extern void sub_801AE84(void);
|
||||
extern s32 sub_801AED0(s32);
|
||||
extern u8 sub_801CF14(u32);
|
||||
extern u8 sub_801CF50(u32);
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80DB7B8;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB7E8;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB7D0;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB800;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB818;
|
||||
extern u8 gUnknown_80DB830[];
|
||||
extern u8 *gUnknown_80D4920[];
|
||||
extern u8 *gUnknown_80D4928[];
|
||||
|
||||
void sub_80177F8(void)
|
||||
{
|
||||
struct unkStruct_203B208 *preload;
|
||||
u8 *nullText;
|
||||
u32 defaultAction;
|
||||
|
||||
preload = gUnknown_203B208;
|
||||
nullText = NULL;
|
||||
preload->unk24[0].text = *gUnknown_80D4920;
|
||||
preload->unk24[0].menuAction = 4;
|
||||
defaultAction = 1;
|
||||
preload->unk24[1].text = *gUnknown_80D4928;
|
||||
preload->unk24[1].menuAction = 5;
|
||||
preload->unk24[2].text = nullText;
|
||||
preload->unk24[2].menuAction = defaultAction;
|
||||
}
|
||||
|
||||
void sub_8017828(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
if (menuAction != 1) {
|
||||
gUnknown_203B208->menuAction1 = menuAction;
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 2:
|
||||
if (GetNumberOfFilledInventorySlots() == 0) {
|
||||
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_NO_INV_ITEMS);
|
||||
}
|
||||
else if (sub_801CF50(0) != 0) {
|
||||
UpdateKangaskhanStorageState(8);
|
||||
}
|
||||
else {
|
||||
UpdateKangaskhanStorageState(0xb);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (sub_801CF14(1) != 0) {
|
||||
UpdateKangaskhanStorageState(7);
|
||||
}
|
||||
else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) {
|
||||
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS);
|
||||
}
|
||||
else {
|
||||
UpdateKangaskhanStorageState(0x14);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
UpdateKangaskhanStorageState(2);
|
||||
break;
|
||||
case 1:
|
||||
UpdateKangaskhanStorageState(3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80178D0(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
switch(menuAction)
|
||||
{
|
||||
case 4:
|
||||
MoveToStorage(&gUnknown_203B208->storedItem);
|
||||
ShiftItemsDownFrom(gUnknown_203B208->itemIndex);
|
||||
FillInventoryGaps();
|
||||
UpdateKangaskhanStorageState(0x13);
|
||||
break;
|
||||
case 1:
|
||||
case 5:
|
||||
UpdateKangaskhanStorageState(0xe);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017928(void)
|
||||
{
|
||||
int menuAction;
|
||||
struct BulkItem item;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
switch(menuAction)
|
||||
{
|
||||
case 4:
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B208->storedItem.id] -= gUnknown_203B208->storedItem.quantity;
|
||||
item.id = gUnknown_203B208->storedItem.id;
|
||||
item.quantity = gUnknown_203B208->storedItem.quantity;
|
||||
AddHeldItemToInventory(&item);
|
||||
UpdateKangaskhanStorageState(0x1d);
|
||||
break;
|
||||
case 1:
|
||||
case 5:
|
||||
UpdateKangaskhanStorageState(0x17);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80179A8(void)
|
||||
{
|
||||
s32 index;
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
switch(menuAction)
|
||||
{
|
||||
case 4:
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
if (sub_801AED0(index) != 0) {
|
||||
MoveToStorage(&gTeamInventory_203B460->teamItems[index]);
|
||||
gTeamInventory_203B460->teamItems[index].id = 0;
|
||||
gTeamInventory_203B460->teamItems[index].flags = 0;
|
||||
}
|
||||
}
|
||||
FillInventoryGaps();
|
||||
sub_801AE84();
|
||||
UpdateKangaskhanStorageState(0x13);
|
||||
break;
|
||||
case 1:
|
||||
case 5:
|
||||
UpdateKangaskhanStorageState(0xe);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017A1C(void)
|
||||
{
|
||||
s32 itemID;
|
||||
int menuAction;
|
||||
struct BulkItem item;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
case 4:
|
||||
for(itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++)
|
||||
{
|
||||
if(sub_801CFE0(itemID) != 0)
|
||||
{
|
||||
item.id = itemID;
|
||||
if(IsThrowableItem(item.id))
|
||||
if(gTeamInventory_203B460->teamStorage[item.id] > 0x63)
|
||||
{
|
||||
item.quantity = 0x63;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.quantity = gTeamInventory_203B460->teamStorage[item.id];
|
||||
}
|
||||
else
|
||||
{
|
||||
item.quantity = 1;
|
||||
}
|
||||
gTeamInventory_203B460->teamStorage[item.id] -= item.quantity;
|
||||
AddHeldItemToInventory(&item);
|
||||
}
|
||||
}
|
||||
FillInventoryGaps();
|
||||
sub_801CF94();
|
||||
UpdateKangaskhanStorageState(0x1d);
|
||||
break;
|
||||
case 1:
|
||||
case 5:
|
||||
UpdateKangaskhanStorageState(0x17);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017AF8(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
{
|
||||
case 3:
|
||||
if(sub_801AEA8() != 0)
|
||||
{
|
||||
sub_8099690(0);
|
||||
UpdateKangaskhanStorageState(0x12);
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B208->itemIndex = sub_801A8AC();
|
||||
gUnknown_203B208->storedItem = gTeamInventory_203B460->teamItems[gUnknown_203B208->itemIndex];
|
||||
UpdateKangaskhanStorageState(0xF);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B208->itemIndex = sub_801A8AC();
|
||||
gUnknown_203B208->storedItem = gTeamInventory_203B460->teamItems[gUnknown_203B208->itemIndex];
|
||||
UpdateKangaskhanStorageState(0x10);
|
||||
break;
|
||||
case 2:
|
||||
sub_801A928();
|
||||
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_MAIN_MENU);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017B88(void)
|
||||
{
|
||||
switch(sub_801CA08(1))
|
||||
{
|
||||
case 3:
|
||||
if(sub_801CFB8() != 0){
|
||||
UpdateKangaskhanStorageState(0x1C);
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B208->id = sub_801CB24();
|
||||
xxx_init_itemslot_8090A8C(&gUnknown_203B208->storedItem, gUnknown_203B208->id, 0);
|
||||
gUnknown_203B208->storedItem.quantity = 1;
|
||||
UpdateKangaskhanStorageState(0x19);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B208->id = sub_801CB24();
|
||||
xxx_init_itemslot_8090A8C(&gUnknown_203B208->storedItem, gUnknown_203B208->id, 0);
|
||||
gUnknown_203B208->storedItem.quantity = 1;
|
||||
UpdateKangaskhanStorageState(0x1A);
|
||||
break;
|
||||
case 2:
|
||||
sub_801CBB8();
|
||||
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_MAIN_MENU);
|
||||
break;
|
||||
case 1:
|
||||
sub_801AD34(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017C28(void)
|
||||
{
|
||||
sub_801CA08(0);
|
||||
sub_8012FD8(&gUnknown_203B208->unk58);
|
||||
switch(sub_8013BBC(&gUnknown_203B208->unkA8))
|
||||
{
|
||||
case 1:
|
||||
sub_8017598();
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B208->storedItem.quantity = gUnknown_203B208->unkA8;
|
||||
UpdateKangaskhanStorageState(0x1B);
|
||||
break;
|
||||
case 2:
|
||||
UpdateKangaskhanStorageState(0x17);
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017C7C(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) {
|
||||
sub_8013114(&gUnknown_203B208->unk58, &menuAction);
|
||||
if(menuAction != 1) gUnknown_203B208->menuAction2 = menuAction;
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
case 2:
|
||||
sub_8099690(0);
|
||||
if(!IsNotMoneyOrUsedTMItem(gUnknown_203B208->storedItem.id))
|
||||
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_IS_MONEY_USED_TM);
|
||||
else if(!sub_801ADA0(gUnknown_203B208->itemIndex))
|
||||
UpdateKangaskhanStorageState(0xA);
|
||||
else
|
||||
UpdateKangaskhanStorageState(0x11);
|
||||
break;
|
||||
case 6:
|
||||
sub_8099690(0);
|
||||
UpdateKangaskhanStorageState(0x10);
|
||||
break;
|
||||
case 1:
|
||||
UpdateKangaskhanStorageState(0xE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017D24(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
menuAction = 0;
|
||||
sub_801CA08(0);
|
||||
if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) {
|
||||
sub_8013114(&gUnknown_203B208->unk58, &menuAction);
|
||||
if(menuAction != 1) gUnknown_203B208->menuAction3 = menuAction;
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
case 3:
|
||||
if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
||||
{
|
||||
sub_801CBB8();
|
||||
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS);
|
||||
}
|
||||
else if(IsThrowableItem(gUnknown_203B208->storedItem.id))
|
||||
UpdateKangaskhanStorageState(0x18);
|
||||
else
|
||||
UpdateKangaskhanStorageState(0x1B);
|
||||
break;
|
||||
case 6:
|
||||
UpdateKangaskhanStorageState(0x1A);
|
||||
break;
|
||||
case 1:
|
||||
UpdateKangaskhanStorageState(0x17);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017DC0(void)
|
||||
{
|
||||
switch(sub_801B410())
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
default:
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B450();
|
||||
UpdateKangaskhanStorageState(0xE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017DDC(void)
|
||||
{
|
||||
switch(sub_801B410())
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
default:
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B450();
|
||||
UpdateKangaskhanStorageState(0x17);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void AdvanceToKangaskhanStorageFallbackState(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
UpdateKangaskhanStorageState(gUnknown_203B208->fallbackState);
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_8017E1C(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, 1, 1);
|
||||
gUnknown_203B20C = MemoryAlloc(sizeof(struct unkStruct_203B20C), 8);
|
||||
gUnknown_203B20C->menuAction1 = 0;
|
||||
gUnknown_203B20C->menuAction2 = 0;
|
||||
gUnknown_203B20C->menuAction3 = 0;
|
||||
sub_8017F10(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_8017E54(void)
|
||||
{
|
||||
switch(gUnknown_203B20C->state)
|
||||
{
|
||||
case 0:
|
||||
sub_8017F10(1);
|
||||
break;
|
||||
case 1:
|
||||
sub_8018588();
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
sub_8018620();
|
||||
break;
|
||||
case 6:
|
||||
sub_8018904();
|
||||
break;
|
||||
case 7:
|
||||
sub_8018AC8();
|
||||
break;
|
||||
case 10:
|
||||
case 11:
|
||||
sub_80186F8();
|
||||
break;
|
||||
case 12:
|
||||
sub_8018854();
|
||||
break;
|
||||
case 13:
|
||||
sub_80189C8();
|
||||
break;
|
||||
case 14:
|
||||
sub_8018AE4();
|
||||
break;
|
||||
case 3:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_8017EF4(void)
|
||||
{
|
||||
if(gUnknown_203B20C != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B20C);
|
||||
gUnknown_203B20C = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8017F10(u32 newState)
|
||||
{
|
||||
gUnknown_203B20C->state = newState;
|
||||
sub_8017F28();
|
||||
sub_8018100();
|
||||
}
|
||||
|
||||
void sub_8017F28(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
sub_8006518(gUnknown_203B20C->unkF0);
|
||||
|
||||
switch(gUnknown_203B20C->state)
|
||||
{
|
||||
case 1:
|
||||
gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
|
||||
gUnknown_203B20C->unkF0[1] = gUnknown_80DB7B8;
|
||||
gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
|
||||
sub_80182E4();
|
||||
gUnknown_203B20C->unkF0[2] = gUnknown_80DB7D0;
|
||||
sub_8012CAC(&gUnknown_203B20C->unkF0[2], gUnknown_203B20C->unk20);
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
|
||||
gUnknown_203B20C->unkF0[1] = gUnknown_80DB7B8;
|
||||
gUnknown_203B20C->unkF0[2] = gUnknown_80DB7B8;
|
||||
gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
|
||||
break;
|
||||
case 10:
|
||||
case 11:
|
||||
gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
|
||||
gUnknown_203B20C->unkF0[1] = gUnknown_80DB7B8;
|
||||
gUnknown_203B20C->unkF0[2] = gUnknown_80DB7B8;
|
||||
gUnknown_203B20C->unkF0[0] = gUnknown_80DB800;
|
||||
break;
|
||||
case 12:
|
||||
gUnknown_203B20C->unkF0[1] = gUnknown_80DB818;
|
||||
break;
|
||||
case 6:
|
||||
case 13:
|
||||
gUnknown_203B20C->unkF0[2] = gUnknown_80DB7E8;
|
||||
break;
|
||||
default:
|
||||
case 0:
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B20C->unkF0[index] = gUnknown_80DB7B8;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B20C->unkF0, 1, 1);
|
||||
}
|
||||
|
||||
void sub_8018100(void)
|
||||
{
|
||||
|
||||
switch(gUnknown_203B20C->state)
|
||||
{
|
||||
case 1:
|
||||
sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->menuAction1, 2);
|
||||
break;
|
||||
case 4:
|
||||
sub_801A5D8(3, 3, 0, 0xA);
|
||||
break;
|
||||
case 5:
|
||||
sub_801A8D0(1);
|
||||
break;
|
||||
case 6:
|
||||
sub_801A9E0();
|
||||
sub_801841C();
|
||||
sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->menuAction2, 2);
|
||||
break;
|
||||
case 7:
|
||||
sub_801B3C0(&gUnknown_203B20C->item);
|
||||
break;
|
||||
case 10:
|
||||
sub_801C8C4(1, 3, 0, 0xA);
|
||||
sub_801AD34(0);
|
||||
break;
|
||||
case 11:
|
||||
sub_801CB5C(1);
|
||||
sub_801AD34(0);
|
||||
break;
|
||||
case 12:
|
||||
gUnknown_203B20C->unkD0 = 2;
|
||||
gUnknown_203B20C->unkC8 = 1;
|
||||
if(gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] > 99)
|
||||
gUnknown_203B20C->unkCC = 99;
|
||||
else
|
||||
gUnknown_203B20C->unkCC = gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id];
|
||||
gUnknown_203B20C->unkC4 = gUnknown_203B20C->unkCC;
|
||||
gUnknown_203B20C->unkD4 = 1;
|
||||
gUnknown_203B20C->unkD8 = &gUnknown_203B20C->unkF0[1];
|
||||
gUnknown_203B20C->unkDC = 0x28;
|
||||
gUnknown_203B20C->unkE0 = 0x12;
|
||||
sub_8013AA0(&gUnknown_203B20C->unkC0);
|
||||
sub_8018280();
|
||||
break;
|
||||
case 13:
|
||||
sub_801CCD8();
|
||||
sub_801AD34(0);
|
||||
sub_80184D4();
|
||||
sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->menuAction3, 2);
|
||||
break;
|
||||
case 14:
|
||||
sub_801B3C0(&gUnknown_203B20C->item);
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018280(void)
|
||||
{
|
||||
sub_8008C54(gUnknown_203B20C->unkD4);
|
||||
sub_80073B8(gUnknown_203B20C->unkD4);
|
||||
xxx_call_draw_string(4, 0, gUnknown_80DB830, gUnknown_203B20C->unkD4, 0); // Number?
|
||||
sub_8013C68(&gUnknown_203B20C->unkC0);
|
||||
sub_80073E0(gUnknown_203B20C->unkD4);
|
||||
sub_801CCD8();
|
||||
sub_801AD34(0);
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70,0);
|
||||
}
|
||||
|
|
@ -1,348 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "item.h"
|
||||
#include "kangaskhan_storage.h"
|
||||
#include "team_inventory.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B20C *gUnknown_203B20C;
|
||||
|
||||
extern u32 sub_801B410();
|
||||
extern void sub_801B450();
|
||||
extern void sub_8017F10(u32);
|
||||
|
||||
extern u8 sub_801CF14(u32);
|
||||
|
||||
extern void sub_801CBB8(void);
|
||||
extern void sub_8017F10(u32);
|
||||
|
||||
extern u8 sub_801ADA0(s32);
|
||||
extern void sub_801A928(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern void sub_8018280(void);
|
||||
|
||||
extern void sub_801CF94(void);
|
||||
extern u8 sub_801CB24();
|
||||
extern u32 sub_801CFB8(void);
|
||||
extern void sub_801AD34(u32);
|
||||
extern u32 sub_801CFE0(u8);
|
||||
|
||||
extern u32 sub_801A8AC(void);
|
||||
extern u32 sub_801AEA8(void);
|
||||
extern u32 sub_801AED0(u32);
|
||||
extern void sub_801AE84(void);
|
||||
extern u8 sub_801CF50(u32);
|
||||
|
||||
|
||||
void sub_8018588(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
menuAction = 0;
|
||||
|
||||
if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0)
|
||||
{
|
||||
sub_8013114(&gUnknown_203B20C->unk70, &menuAction);
|
||||
if(menuAction != 1) gUnknown_203B20C->menuAction1 = menuAction;
|
||||
}
|
||||
|
||||
switch(menuAction)
|
||||
{
|
||||
case 2:
|
||||
if((GetNumberOfFilledInventorySlots() != 0) && sub_801CF50(0) == 0)
|
||||
sub_8017F10(4);
|
||||
else
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70, 1);;
|
||||
break;
|
||||
case 3:
|
||||
if(sub_801CF14(1) != 0)
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70, 1);
|
||||
else
|
||||
sub_8017F10(0xA);
|
||||
break;
|
||||
case 1:
|
||||
sub_8017F10(3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018620(void)
|
||||
{
|
||||
s32 index;
|
||||
switch(sub_801A6E8(1))
|
||||
{
|
||||
case 3:
|
||||
if(sub_801AEA8() != 0)
|
||||
{
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
if(sub_801AED0(index) != 0)
|
||||
{
|
||||
MoveToStorage(&gTeamInventory_203B460->teamItems[index]);
|
||||
gTeamInventory_203B460->teamItems[index].id = 0;
|
||||
gTeamInventory_203B460->teamItems[index].flags = 0;
|
||||
}
|
||||
}
|
||||
FillInventoryGaps();
|
||||
sub_801AE84();
|
||||
if(GetNumberOfFilledInventorySlots() == 0)
|
||||
{
|
||||
sub_801A928();
|
||||
sub_8017F10(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8017F10(5);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B20C->itemIndex = sub_801A8AC();
|
||||
gUnknown_203B20C->item = gTeamInventory_203B460->teamItems[gUnknown_203B20C->itemIndex];
|
||||
sub_8017F10(6);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B20C->itemIndex = sub_801A8AC();
|
||||
gUnknown_203B20C->item = gTeamInventory_203B460->teamItems[gUnknown_203B20C->itemIndex];
|
||||
sub_8017F10(7);
|
||||
break;
|
||||
case 2:
|
||||
sub_801A928();
|
||||
sub_8017F10(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80186F8(void)
|
||||
{
|
||||
struct BulkItem item;
|
||||
s32 itemID;
|
||||
|
||||
switch(sub_801CA08(1))
|
||||
{
|
||||
case 3:
|
||||
if(sub_801CFB8() != 0)
|
||||
{
|
||||
for(itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++)
|
||||
{
|
||||
if(sub_801CFE0(itemID) != 0)
|
||||
{
|
||||
item.id = itemID;
|
||||
if(IsThrowableItem(item.id))
|
||||
if(gTeamInventory_203B460->teamStorage[item.id] > 0x63)
|
||||
{
|
||||
item.quantity = 0x63;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.quantity = gTeamInventory_203B460->teamStorage[item.id];
|
||||
}
|
||||
else
|
||||
{
|
||||
item.quantity = 1;
|
||||
}
|
||||
gTeamInventory_203B460->teamStorage[item.id] -= item.quantity;
|
||||
AddHeldItemToInventory(&item);
|
||||
}
|
||||
}
|
||||
FillInventoryGaps();
|
||||
sub_801CF94();
|
||||
if((sub_801CF14(1) == 0) && (GetNumberOfFilledInventorySlots() < INVENTORY_SIZE))
|
||||
sub_8017F10(0xB);
|
||||
else
|
||||
{
|
||||
sub_801CBB8();
|
||||
sub_8017F10(1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B20C->id = sub_801CB24();
|
||||
xxx_init_itemslot_8090A8C(&gUnknown_203B20C->item, gUnknown_203B20C->id, 0);
|
||||
gUnknown_203B20C->item.quantity = 1;
|
||||
sub_8017F10(0xD);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B20C->id = sub_801CB24();
|
||||
xxx_init_itemslot_8090A8C(&gUnknown_203B20C->item, gUnknown_203B20C->id, 0);
|
||||
gUnknown_203B20C->item.quantity = 1;
|
||||
sub_8017F10(0xE);
|
||||
break;
|
||||
case 2:
|
||||
sub_801CBB8();
|
||||
sub_8017F10(1);
|
||||
break;
|
||||
case 1:
|
||||
sub_801AD34(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018854(void)
|
||||
{
|
||||
struct BulkItem item;
|
||||
|
||||
sub_801CA08(0);
|
||||
sub_8012FD8(&gUnknown_203B20C->unk70);
|
||||
|
||||
switch(sub_8013BBC(&gUnknown_203B20C->unkC0))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B20C->item.quantity = gUnknown_203B20C->unkC0;
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity;
|
||||
item.id = gUnknown_203B20C->item.id;
|
||||
item.quantity = gUnknown_203B20C->item.quantity;
|
||||
AddHeldItemToInventory(&item);
|
||||
if(sub_801CF14(1) == 0)
|
||||
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
||||
{
|
||||
error:
|
||||
sub_801CBB8();
|
||||
sub_8017F10(0x1);
|
||||
}
|
||||
else
|
||||
sub_8017F10(0xB);
|
||||
else
|
||||
goto error;
|
||||
break;
|
||||
case 2:
|
||||
sub_8017F10(0xB);
|
||||
break;
|
||||
case 1:
|
||||
sub_8018280();
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018904(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
|
||||
sub_801A6E8(0);
|
||||
if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0)
|
||||
{
|
||||
sub_8013114(&gUnknown_203B20C->unk70, &menuAction);
|
||||
if(menuAction != 1) gUnknown_203B20C->menuAction2 = menuAction;
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 2:
|
||||
if(IsNotMoneyOrUsedTMItem(gUnknown_203B20C->item.id))
|
||||
if(sub_801ADA0(gUnknown_203B20C->itemIndex) == 0)
|
||||
error:
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70, 1);
|
||||
else
|
||||
{
|
||||
MoveToStorage(&gUnknown_203B20C->item);
|
||||
ShiftItemsDownFrom(gUnknown_203B20C->itemIndex);
|
||||
FillInventoryGaps();
|
||||
if(GetNumberOfFilledInventorySlots() == 0)
|
||||
{
|
||||
sub_801A928();
|
||||
sub_8017F10(1);
|
||||
}
|
||||
else
|
||||
sub_8017F10(5);
|
||||
}
|
||||
else
|
||||
goto error;
|
||||
break;
|
||||
case 4:
|
||||
sub_8099690(0);
|
||||
sub_8017F10(7);
|
||||
break;
|
||||
case 1:
|
||||
sub_8017F10(5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80189C8(void)
|
||||
{
|
||||
struct BulkItem item;
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
|
||||
sub_801CA08(0);
|
||||
if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0)
|
||||
{
|
||||
sub_8013114(&gUnknown_203B20C->unk70, &menuAction);
|
||||
if(menuAction != 1) gUnknown_203B20C->menuAction3 = menuAction;
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 3:
|
||||
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70, 1);
|
||||
else if(IsThrowableItem(gUnknown_203B20C->item.id))
|
||||
sub_8017F10(0xC);
|
||||
else
|
||||
{
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B20C->item.id] -= gUnknown_203B20C->item.quantity;
|
||||
item.id = gUnknown_203B20C->item.id;
|
||||
item.quantity = gUnknown_203B20C->item.quantity;
|
||||
AddHeldItemToInventory(&item);
|
||||
if(sub_801CF14(1) == 0)
|
||||
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
||||
{
|
||||
error:
|
||||
sub_801CBB8();
|
||||
sub_8017F10(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8017F10(0xB);
|
||||
}
|
||||
else
|
||||
goto error;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_8017F10(0xE);
|
||||
break;
|
||||
case 1:
|
||||
sub_8017F10(0xB);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018AC8(void)
|
||||
{
|
||||
switch(sub_801B410())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B450();
|
||||
sub_8017F10(0x5);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018AE4(void)
|
||||
{
|
||||
switch(sub_801B410())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B450();
|
||||
sub_8017F10(0xB);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -111,21 +111,135 @@ extern void PlaySound(u16 songIndex);
|
|||
|
||||
u32 CountKecleonItems(void);
|
||||
|
||||
extern u8 *gUnknown_80D4984[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
extern u8 * gUnknown_80D4978[];
|
||||
extern u8 gUnknown_80DB8A0[];
|
||||
extern u8 *gUnknown_80D4934[];
|
||||
|
||||
void sub_80194F8(void)
|
||||
{
|
||||
int index;
|
||||
|
||||
s32 loopMax;
|
||||
MemoryFill16(gUnknown_203B210->unk74,0,sizeof(gUnknown_203B210->unk74));
|
||||
loopMax = 0;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 2;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 3;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = gUnknown_80DB8A0;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 7;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4934;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 1;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = NULL;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B210->unk74[index] == 0)
|
||||
{
|
||||
if(gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction1)
|
||||
return;
|
||||
}
|
||||
}
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if (gUnknown_203B210->unk74[index] == 0)
|
||||
{
|
||||
gUnknown_203B210->menuAction1 = gUnknown_203B210->menuItems[index].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80195C0(void)
|
||||
{
|
||||
int index;
|
||||
|
||||
s32 loopMax;
|
||||
MemoryFill16(gUnknown_203B210->unk74,0,sizeof(gUnknown_203B210->unk74));
|
||||
loopMax = 0;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4978;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 2;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 7;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = NULL;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B210->unk74[index] == 0)
|
||||
{
|
||||
if(gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction3)
|
||||
return;
|
||||
}
|
||||
}
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if (gUnknown_203B210->unk74[index] == 0)
|
||||
{
|
||||
gUnknown_203B210->menuAction3 = gUnknown_203B210->menuItems[index].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void sub_8019660(void)
|
||||
{
|
||||
int index;
|
||||
|
||||
s32 loopMax;
|
||||
MemoryFill16(gUnknown_203B210->unk74,0, sizeof(gUnknown_203B210->unk74));
|
||||
loopMax = 0;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4984;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 3;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 7;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = NULL;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if(gUnknown_203B210->unk74[index] == 0)
|
||||
{
|
||||
if(gUnknown_203B210->menuItems[index].menuAction == gUnknown_203B210->menuAction2)
|
||||
return;
|
||||
}
|
||||
}
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if (gUnknown_203B210->unk74[index] == 0)
|
||||
{
|
||||
gUnknown_203B210->menuAction2 = gUnknown_203B210->menuItems[index].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8019700(void)
|
||||
{
|
||||
u32 menuAction;
|
||||
struct unkStruct_203B210 *preload;
|
||||
u8 *nullText;
|
||||
|
||||
preload = gUnknown_203B210;
|
||||
nullText = NULL;
|
||||
preload->menuItems[0].text = *gUnknown_80D4920;
|
||||
preload->menuItems[0].menuAction = 5;
|
||||
menuAction = 1;
|
||||
preload->menuItems[1].text = *gUnknown_80D4928;
|
||||
preload->menuItems[1].menuAction = 6;
|
||||
preload->menuItems[2].text = nullText;
|
||||
preload->menuItems[2].menuAction = menuAction;
|
||||
s32 loopMax = 0;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4920;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 5;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = *gUnknown_80D4928;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 6;
|
||||
loopMax += 1;
|
||||
gUnknown_203B210->menuItems[loopMax].text = NULL;
|
||||
gUnknown_203B210->menuItems[loopMax].menuAction = 1;
|
||||
}
|
||||
|
||||
void sub_8019730(void)
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@ struct LoadScreen
|
|||
/* 0x258 */ u8 formattedHelperInfo[0x24];
|
||||
};
|
||||
|
||||
EWRAM_DATA struct LoadScreen *gLoadScreen;
|
||||
EWRAM_DATA struct MenuItem gUnknown_203B378[2];
|
||||
EWRAM_DATA u32 gUnknown_203B388[12];
|
||||
EWRAM_DATA u32 gUnknown_203B3B8[12];
|
||||
EWRAM_DATA_2 struct LoadScreen *gLoadScreen = {0};
|
||||
EWRAM_DATA_2 struct MenuItem gUnknown_203B378[2] = {0};
|
||||
EWRAM_DATA_2 u32 gUnknown_203B388[12] = {0};
|
||||
EWRAM_DATA_2 u32 gUnknown_203B3B8[12] = {0};
|
||||
|
||||
extern struct unkStruct_203B484 *gUnknown_203B484;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "gba/defines.h"
|
||||
#include "global.h"
|
||||
#include "constants/bg_music.h"
|
||||
#include "constants/colors.h"
|
||||
|
|
@ -45,38 +46,126 @@ struct unkStruct_203B2B0
|
|||
struct UnkTextStruct2 unk114[4];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B2B0 *gUnknown_203B2B0;
|
||||
EWRAM_DATA_2 struct unkStruct_203B2B0 *gUnknown_203B2B0 = {0};
|
||||
extern struct UnkTextStruct2 gUnknown_80DCA00;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC9E8;
|
||||
extern u8 gPlayerName[];
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
extern u8 gUnknown_202DFE8[];
|
||||
extern u8 gLuminousCaveSeekAwakening[];
|
||||
extern u8 gLuminousCaveEvolutionInfo[];
|
||||
extern u8 gLuminousCaveAskEvolution[];
|
||||
extern u8 gLuminousCaveYeShallReturn[];
|
||||
extern u8 gLuminousCaveGiveItem[];
|
||||
extern u8 gLuminousCaveGiveAnotherItem[];
|
||||
extern u8 gLuminousCaveLackWhatIsNeeded[];
|
||||
extern u8 gLuminousCaveOnlyOneItem[];
|
||||
extern u8 gLuminousCaveLetUsBegin[];
|
||||
extern u8 gLuminousCaveChangedAppearance[];
|
||||
extern u8 gLuminousCaveEvolved[];
|
||||
extern u8 gLuminousCaveGiveName[];
|
||||
extern u8 gLuminousCaveComeAlone[];
|
||||
extern u8 gLuminousCaveLackLevel[];
|
||||
extern u8 gLuminousCaveCantEvolveAnymore[];
|
||||
extern u8 gLuminousCaveLackFriendArea[];
|
||||
extern u8 gLuminousCaveLackRoom[];
|
||||
extern u8 gLuminousCaveLackIQ[];
|
||||
extern u8 gLuminousCaveLackItem[];
|
||||
extern u8 gLuminousCaveCantEvolveYet[];
|
||||
extern u8 gUnknown_80DCA18[];
|
||||
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
extern u8 *gUnknown_80D4934[];
|
||||
|
||||
extern u8 gUnknown_80DCA18[];
|
||||
extern u8 gUnknown_80DCA24[];
|
||||
extern u8 gUnknown_80DCA2C[];
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveSeekAwakening[] = _(
|
||||
"{CENTER_ALIGN}...{WAIT_PRESS}A voice emanates from somewhere...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}...Ye who seek awakening...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}This is Luminous Cave.{WAIT_PRESS}\n"
|
||||
"{CENTER_ALIGN}Do ye seek a new evolution?");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveAskEvolution[] = _(
|
||||
"{CENTER_ALIGN}Do ye seek evolution?");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveEvolutionInfo[] = _(
|
||||
"{CENTER_ALIGN}There are those among Pokémon\n"
|
||||
"{CENTER_ALIGN}that can evolve.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Such Pokémon can evolve at this very\n"
|
||||
"{CENTER_ALIGN}spot if they satisfy certain conditions.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Evolution brings about changes\n"
|
||||
"{CENTER_ALIGN}in appearance and abilities.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Not only that{COMMA} some Pokémon even change\n"
|
||||
"{CENTER_ALIGN}type and learn different moves.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}However...{WAIT_PRESS} The requirements for\n"
|
||||
"{CENTER_ALIGN}evolution differ among Pokémon.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Some become ready for evolution\n"
|
||||
"{CENTER_ALIGN}merely by leveling up.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Still others may need special items\n"
|
||||
"{CENTER_ALIGN}to attain evolution.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye must also be aware of this:{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Once it has evolved{COMMA} a Pokémon\n"
|
||||
"{CENTER_ALIGN}can never regain its previous form.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}That is why ye must think carefully\n"
|
||||
"{CENTER_ALIGN}before committing to evolution.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveYeShallReturn[] = _(
|
||||
"{CENTER_ALIGN}Ye shall return if evolution\n"
|
||||
"{CENTER_ALIGN}is what ye seek...");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveGiveItem[] = _(
|
||||
"{CENTER_ALIGN}Will ye give an item for evolution?");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveGiveAnotherItem[] = _(
|
||||
"{CENTER_ALIGN}Will ye give yet another item?");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveLackWhatIsNeeded[] = _(
|
||||
"{CENTER_ALIGN}Alas{COMMA} ye seem to lack what is needed\n"
|
||||
"{CENTER_ALIGN}for evolution.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveOnlyOneItem[] = _(
|
||||
"{CENTER_ALIGN}Ye seem to have but one item.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveLetUsBegin[] = _(
|
||||
"{CENTER_ALIGN}...Ye who seek awakening...\n"
|
||||
"{CENTER_ALIGN}Let us begin.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveChangedAppearance[] = _(
|
||||
"{CENTER_ALIGN}...{WAIT_PRESS}$n0 is undergoing changes...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}$n0{APOSTROPHE}s appearance changed...{EXTRA_MSG}");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveEvolved[] = _(
|
||||
"{CENTER_ALIGN}It evolved from {COLOR_1 GREEN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n"
|
||||
"{CENTER_ALIGN}to {COLOR_1 YELLOW}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveComeAlone[] = _(
|
||||
"{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}One cannot evolve if one\n"
|
||||
"{CENTER_ALIGN}is in the company of others.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Come alone if ye wish to evolve.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveLackLevel[] = _(
|
||||
"{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye have not high enough a level.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveCantEvolveAnymore[] = _(
|
||||
"{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye cannot evolve anymore.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveLackFriendArea[] = _(
|
||||
"{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye need your Friend Area to evolve.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveLackRoom[] = _(
|
||||
"{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}The Friend Area to which ye shall go\n"
|
||||
"{CENTER_ALIGN}has no room for ye.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveLackIQ[] = _(
|
||||
"{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye seem to lack the IQ to evolve.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveLackItem[] = _(
|
||||
"{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye seem to lack an item to evolve.");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveCantEvolveYet[] = _(
|
||||
"{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}"
|
||||
"{CENTER_ALIGN}Ye cannot evolve yet. ");
|
||||
|
||||
ALIGNED(4) const u8 gLuminousCaveGiveName[] = _(
|
||||
"{CENTER_ALIGN}Ye must give a name to\n"
|
||||
"{CENTER_ALIGN}the evolved Pokémon. ");
|
||||
|
||||
ALIGNED(4) static const u8 fill0[] = "pksdir0";
|
||||
ALIGNED(4) static const u8 fill1[] = "pksdir0";
|
||||
|
||||
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
|
||||
extern void UpdateLuminousCaveState(u32);
|
||||
|
||||
|
|
@ -464,47 +553,40 @@ void UpdateLuminousCaveDialogue(void)
|
|||
|
||||
void sub_8024CFC(void)
|
||||
{
|
||||
u8 *nullString;
|
||||
struct unkStruct_203B2B0 *preload;
|
||||
u32 defaultAction;
|
||||
s32 loopMax = 0;
|
||||
|
||||
MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74));
|
||||
preload = gUnknown_203B2B0;
|
||||
nullString = NULL;
|
||||
preload->unk34[0].text = gUnknown_80DCA18;
|
||||
preload->unk34[0].menuAction = 3;
|
||||
defaultAction = 1;
|
||||
preload->unk34[1].text = *gUnknown_80D4970;
|
||||
preload->unk34[1].menuAction = 2;
|
||||
preload->unk34[2].text = *gUnknown_80D4934;
|
||||
preload->unk34[2].menuAction = defaultAction;
|
||||
preload->unk34[3].text = nullString;
|
||||
preload->unk34[3].menuAction = defaultAction;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA18;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 3;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 2;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4934;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 1;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = NULL;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 1;
|
||||
}
|
||||
|
||||
void sub_8024D48(void)
|
||||
{
|
||||
u8 *nullString;
|
||||
struct unkStruct_203B2B0 *preload;
|
||||
u32 defaultAction;
|
||||
s32 index;
|
||||
s32 loopMax;
|
||||
|
||||
loopMax = 0;
|
||||
MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74));
|
||||
preload = gUnknown_203B2B0;
|
||||
nullString = NULL;
|
||||
preload->unk34[0].text = gUnknown_80DCA24;
|
||||
preload->unk34[0].menuAction = 4;
|
||||
defaultAction = 1;
|
||||
preload->unk34[1].text = gUnknown_80DCA2C;
|
||||
preload->unk34[1].menuAction = 5;
|
||||
preload->unk34[2].text = *gUnknown_80D4934;
|
||||
preload->unk34[2].menuAction = defaultAction;
|
||||
|
||||
loopMax = 3;
|
||||
|
||||
preload->unk34[3].text = nullString;
|
||||
preload->unk34[3].menuAction = defaultAction;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 5;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4934;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 1;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = NULL;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
|
|
@ -520,27 +602,22 @@ void sub_8024D48(void)
|
|||
|
||||
void sub_8024DBC(void)
|
||||
{
|
||||
u8 *nullString;
|
||||
struct unkStruct_203B2B0 *preload;
|
||||
u32 defaultAction;
|
||||
s32 index;
|
||||
s32 loopMax;
|
||||
|
||||
loopMax = 0;
|
||||
MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74));
|
||||
preload = gUnknown_203B2B0;
|
||||
nullString = NULL;
|
||||
preload->unk34[0].text = gUnknown_80DCA24;
|
||||
preload->unk34[0].menuAction = 4;
|
||||
defaultAction = 1;
|
||||
preload->unk34[1].text = gUnknown_80DCA2C;
|
||||
preload->unk34[1].menuAction = 5;
|
||||
preload->unk34[2].text = *gUnknown_80D4934;
|
||||
preload->unk34[2].menuAction = defaultAction;
|
||||
|
||||
loopMax = 3;
|
||||
|
||||
preload->unk34[3].text = nullString;
|
||||
preload->unk34[3].menuAction = defaultAction;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 4;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 5;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4934;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 1;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = NULL;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
|
|
@ -556,25 +633,19 @@ void sub_8024DBC(void)
|
|||
|
||||
void sub_8024E30(void)
|
||||
{
|
||||
u8 *nullString;
|
||||
struct unkStruct_203B2B0 *preload;
|
||||
u32 defaultAction;
|
||||
s32 index;
|
||||
s32 loopMax;
|
||||
|
||||
loopMax = 0;
|
||||
MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74));
|
||||
preload = gUnknown_203B2B0;
|
||||
nullString = NULL;
|
||||
preload->unk34[0].text = gUnknown_80DCA2C;
|
||||
preload->unk34[0].menuAction = 5;
|
||||
defaultAction = 1;
|
||||
preload->unk34[1].text = *gUnknown_80D4970;
|
||||
preload->unk34[1].menuAction = 2;
|
||||
|
||||
loopMax = 2;
|
||||
|
||||
preload->unk34[2].text = nullString;
|
||||
preload->unk34[2].menuAction = defaultAction;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 5;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = *gUnknown_80D4970;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 2;
|
||||
loopMax += 1;
|
||||
gUnknown_203B2B0->unk34[loopMax].text = NULL;
|
||||
gUnknown_203B2B0->unk34[loopMax].menuAction = 1;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user