mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-24 09:44:17 -05:00
actually commit sub_8038014 and a few more
This commit is contained in:
@@ -502,518 +502,4 @@ _08037C08:
|
||||
bx r1
|
||||
thumb_func_end sub_8037B28
|
||||
|
||||
thumb_func_start sub_8037C10
|
||||
sub_8037C10:
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08037C24
|
||||
bl sub_800D588
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08037C38
|
||||
b _08037C2E
|
||||
_08037C24:
|
||||
bl sub_800D588
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08037C38
|
||||
_08037C2E:
|
||||
ldr r0, _08037C34
|
||||
ldr r0, [r0, 0x4]
|
||||
b _08037C3C
|
||||
.align 2, 0
|
||||
_08037C34: .4byte gUnknown_202EC40
|
||||
_08037C38:
|
||||
ldr r0, _08037C40
|
||||
ldr r0, [r0]
|
||||
_08037C3C:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08037C40: .4byte gUnknown_202EC40
|
||||
thumb_func_end sub_8037C10
|
||||
|
||||
thumb_func_start sub_8037C44
|
||||
sub_8037C44:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r5, r1, 0
|
||||
movs r4, 0
|
||||
_08037C4C:
|
||||
adds r0, r4, 0
|
||||
bl sub_800D68C
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x1
|
||||
ble _08037C4C
|
||||
cmp r6, 0xA
|
||||
bhi _08037CBE
|
||||
lsls r0, r6, 2
|
||||
ldr r1, _08037C68
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08037C68: .4byte _08037C6C
|
||||
.align 2, 0
|
||||
_08037C6C:
|
||||
.4byte _08037C98
|
||||
.4byte _08037C98
|
||||
.4byte _08037CA2
|
||||
.4byte _08037CA2
|
||||
.4byte _08037CAC
|
||||
.4byte _08037CAC
|
||||
.4byte _08037CA2
|
||||
.4byte _08037CA2
|
||||
.4byte _08037CBE
|
||||
.4byte _08037CB6
|
||||
.4byte _08037CB6
|
||||
_08037C98:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x8
|
||||
bl sub_800D59C
|
||||
b _08037CBE
|
||||
_08037CA2:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x30
|
||||
bl sub_800D59C
|
||||
b _08037CBE
|
||||
_08037CAC:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x88
|
||||
bl sub_800D59C
|
||||
b _08037CBE
|
||||
_08037CB6:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0xB4
|
||||
bl sub_800D59C
|
||||
_08037CBE:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8037C44
|
||||
|
||||
thumb_func_start sub_8037CC4
|
||||
sub_8037CC4:
|
||||
push {r4,lr}
|
||||
adds r3, r1, 0
|
||||
adds r4, r2, 0
|
||||
cmp r0, 0xA
|
||||
bhi _08037D5E
|
||||
lsls r0, 2
|
||||
ldr r1, _08037CD8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08037CD8: .4byte _08037CDC
|
||||
.align 2, 0
|
||||
_08037CDC:
|
||||
.4byte _08037D08
|
||||
.4byte _08037D08
|
||||
.4byte _08037D1E
|
||||
.4byte _08037D1E
|
||||
.4byte _08037D34
|
||||
.4byte _08037D34
|
||||
.4byte _08037D1E
|
||||
.4byte _08037D1E
|
||||
.4byte _08037D5E
|
||||
.4byte _08037D4A
|
||||
.4byte _08037D4A
|
||||
_08037D08:
|
||||
movs r0, 0
|
||||
adds r1, r3, 0
|
||||
movs r2, 0x8
|
||||
bl sub_800D670
|
||||
movs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x8
|
||||
bl sub_800D670
|
||||
b _08037D5E
|
||||
_08037D1E:
|
||||
movs r0, 0
|
||||
adds r1, r3, 0
|
||||
movs r2, 0x30
|
||||
bl sub_800D670
|
||||
movs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x30
|
||||
bl sub_800D670
|
||||
b _08037D5E
|
||||
_08037D34:
|
||||
movs r0, 0
|
||||
adds r1, r3, 0
|
||||
movs r2, 0x88
|
||||
bl sub_800D670
|
||||
movs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x88
|
||||
bl sub_800D670
|
||||
b _08037D5E
|
||||
_08037D4A:
|
||||
movs r0, 0
|
||||
adds r1, r3, 0
|
||||
movs r2, 0xB4
|
||||
bl sub_800D670
|
||||
movs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
movs r2, 0xB4
|
||||
bl sub_800D670
|
||||
_08037D5E:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8037CC4
|
||||
|
||||
thumb_func_start sub_8037D64
|
||||
sub_8037D64:
|
||||
push {r4-r7,lr}
|
||||
adds r5, r0, 0
|
||||
adds r6, r1, 0
|
||||
adds r7, r2, 0
|
||||
movs r4, 0
|
||||
ldr r0, _08037D80
|
||||
str r4, [r0]
|
||||
bl sub_800D494
|
||||
adds r0, r5, 0
|
||||
adds r1, r6, 0
|
||||
bl sub_8037C44
|
||||
b _08037D96
|
||||
.align 2, 0
|
||||
_08037D80: .4byte gUnknown_202EC48
|
||||
_08037D84:
|
||||
subs r0, r4, 0x3
|
||||
cmp r0, 0x2
|
||||
bls _08037DBC
|
||||
ldr r1, _08037DB8
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x63
|
||||
bgt _08037DC8
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
_08037D96:
|
||||
bl sub_80373C4
|
||||
bl sub_800D33C
|
||||
adds r4, r0, 0
|
||||
bl sub_800D570
|
||||
cmp r4, 0x2
|
||||
bne _08037D84
|
||||
bl sub_800D600
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08037DD4
|
||||
movs r4, 0
|
||||
b _08037DDE
|
||||
.align 2, 0
|
||||
_08037DB8: .4byte gUnknown_202EC48
|
||||
_08037DBC:
|
||||
bl sub_800D520
|
||||
bl sub_800D510
|
||||
movs r0, 0x1
|
||||
b _08037DEA
|
||||
_08037DC8:
|
||||
bl sub_800D520
|
||||
bl sub_800D510
|
||||
movs r0, 0xF
|
||||
b _08037DEA
|
||||
_08037DD4:
|
||||
bl sub_800D520
|
||||
bl sub_800D510
|
||||
movs r4, 0x5
|
||||
_08037DDE:
|
||||
adds r0, r5, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r7, 0
|
||||
bl sub_8037CC4
|
||||
adds r0, r4, 0
|
||||
_08037DEA:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8037D64
|
||||
|
||||
thumb_func_start sub_8037DF0
|
||||
sub_8037DF0:
|
||||
push {r4,lr}
|
||||
sub sp, 0x8
|
||||
movs r4, 0
|
||||
movs r0, 0
|
||||
mov r1, sp
|
||||
movs r2, 0x4
|
||||
bl sub_800D670
|
||||
add r1, sp, 0x4
|
||||
movs r0, 0x1
|
||||
movs r2, 0x4
|
||||
bl sub_800D670
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0
|
||||
bne _08037E16
|
||||
ldr r0, [sp, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08037E2C
|
||||
_08037E16:
|
||||
bl sub_800D588
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08037E24
|
||||
ldr r4, [sp, 0x4]
|
||||
b _08037E26
|
||||
_08037E24:
|
||||
ldr r4, [sp]
|
||||
_08037E26:
|
||||
cmp r4, 0
|
||||
bne _08037E2C
|
||||
movs r4, 0xE
|
||||
_08037E2C:
|
||||
adds r0, r4, 0
|
||||
add sp, 0x8
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8037DF0
|
||||
|
||||
thumb_func_start sub_8037E38
|
||||
sub_8037E38:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r5, r1, 0
|
||||
bl sub_800D588
|
||||
lsls r0, 24
|
||||
adds r4, r6, 0
|
||||
cmp r0, 0
|
||||
bne _08037E4C
|
||||
adds r4, r5, 0
|
||||
_08037E4C:
|
||||
bl sub_800D588
|
||||
lsls r0, 24
|
||||
adds r3, r5, 0
|
||||
cmp r0, 0
|
||||
bne _08037E5A
|
||||
adds r3, r6, 0
|
||||
_08037E5A:
|
||||
ldrb r0, [r4]
|
||||
ldrb r1, [r3]
|
||||
cmp r0, r1
|
||||
bne _08037E70
|
||||
ldr r0, _08037E6C
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r4]
|
||||
b _08037E76
|
||||
.align 2, 0
|
||||
_08037E6C: .4byte gTeamInventory_203B460
|
||||
_08037E70:
|
||||
ldr r0, _08037E8C
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r3]
|
||||
_08037E76:
|
||||
lsls r0, 1
|
||||
adds r1, 0x50
|
||||
adds r1, r0
|
||||
ldrh r2, [r1]
|
||||
ldr r0, [r3, 0x4]
|
||||
adds r2, r0
|
||||
strh r2, [r1]
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08037E8C: .4byte gTeamInventory_203B460
|
||||
thumb_func_end sub_8037E38
|
||||
|
||||
thumb_func_start sub_8037E90
|
||||
sub_8037E90:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
bl sub_800D588
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08037EA2
|
||||
adds r4, r5, 0
|
||||
_08037EA2:
|
||||
movs r0, 0x2
|
||||
strb r0, [r4]
|
||||
adds r0, r4, 0
|
||||
bl sub_80951BC
|
||||
ldr r0, [r4, 0x10]
|
||||
bl sub_8095274
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8037E90
|
||||
|
||||
thumb_func_start nullsub_53
|
||||
nullsub_53:
|
||||
bx lr
|
||||
thumb_func_end nullsub_53
|
||||
|
||||
thumb_func_start sub_8037EBC
|
||||
sub_8037EBC:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
bl sub_800D588
|
||||
lsls r0, 24
|
||||
adds r5, r4, 0
|
||||
cmp r0, 0
|
||||
bne _08037ED0
|
||||
adds r5, r6, 0
|
||||
_08037ED0:
|
||||
ldr r1, [r5, 0x10]
|
||||
movs r0, 0x1
|
||||
bl GetMailIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetMailatIndex
|
||||
adds r4, r0, 0
|
||||
adds r1, r4, 0
|
||||
adds r0, r5, 0
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
movs r0, 0x5
|
||||
strb r0, [r4]
|
||||
adds r0, r4, 0
|
||||
bl sub_80951FC
|
||||
movs r0, 0x7
|
||||
strb r0, [r4]
|
||||
movs r0, 0x38
|
||||
ldrsh r6, [r5, r0]
|
||||
cmp r6, 0
|
||||
beq _08037F30
|
||||
ldr r4, _08037F2C
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r5, 0x10]
|
||||
stm r0!, {r1}
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x30
|
||||
movs r2, 0x58
|
||||
bl memcpy
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x42
|
||||
strb r0, [r1, 0x8]
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
strb r0, [r1, 0x9]
|
||||
b _08037F40
|
||||
.align 2, 0
|
||||
_08037F2C: .4byte gUnknown_203B484
|
||||
_08037F30:
|
||||
ldr r4, _08037F48
|
||||
ldr r0, [r4]
|
||||
movs r1, 0
|
||||
movs r2, 0x5C
|
||||
bl MemoryFill8
|
||||
ldr r0, [r4]
|
||||
strh r6, [r0, 0xC]
|
||||
_08037F40:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08037F48: .4byte gUnknown_203B484
|
||||
thumb_func_end sub_8037EBC
|
||||
|
||||
thumb_func_start sub_8037F4C
|
||||
sub_8037F4C:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
bl sub_800D588
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08037F5E
|
||||
adds r4, r5, 0
|
||||
_08037F5E:
|
||||
ldr r1, [r4, 0x10]
|
||||
movs r0, 0x4
|
||||
bl GetMailIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetMailatIndex
|
||||
adds r2, r0, 0
|
||||
adds r1, r4, 0
|
||||
ldm r1!, {r3-r5}
|
||||
stm r2!, {r3-r5}
|
||||
ldm r1!, {r3-r5}
|
||||
stm r2!, {r3-r5}
|
||||
ldm r1!, {r3-r5}
|
||||
stm r2!, {r3-r5}
|
||||
ldm r1!, {r3-r5}
|
||||
stm r2!, {r3-r5}
|
||||
movs r1, 0x6
|
||||
strb r1, [r0]
|
||||
bl GetMainMenu
|
||||
cmp r0, 0
|
||||
beq _08037F96
|
||||
adds r1, r0, 0
|
||||
adds r1, 0x3A
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_08037F96:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8037F4C
|
||||
|
||||
thumb_func_start sub_8037F9C
|
||||
sub_8037F9C:
|
||||
push {lr}
|
||||
adds r3, r1, 0
|
||||
cmp r0, 0xA
|
||||
bhi _08038010
|
||||
lsls r0, 2
|
||||
ldr r1, _08037FB0
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08037FB0: .4byte _08037FB4
|
||||
.align 2, 0
|
||||
_08037FB4:
|
||||
.4byte _08037FE0
|
||||
.4byte _08037FE0
|
||||
.4byte _08038010
|
||||
.4byte _08037FF4
|
||||
.4byte _08038010
|
||||
.4byte _08037FFE
|
||||
.4byte _08038010
|
||||
.4byte _08037FEA
|
||||
.4byte _08038010
|
||||
.4byte _08038010
|
||||
.4byte _08038008
|
||||
_08037FE0:
|
||||
adds r0, r3, 0
|
||||
adds r1, r2, 0
|
||||
bl sub_8037E38
|
||||
b _08038010
|
||||
_08037FEA:
|
||||
adds r0, r3, 0
|
||||
adds r1, r2, 0
|
||||
bl sub_8037F4C
|
||||
b _08038010
|
||||
_08037FF4:
|
||||
adds r0, r3, 0
|
||||
adds r1, r2, 0
|
||||
bl sub_8037E90
|
||||
b _08038010
|
||||
_08037FFE:
|
||||
adds r0, r3, 0
|
||||
adds r1, r2, 0
|
||||
bl sub_8037EBC
|
||||
b _08038010
|
||||
_08038008:
|
||||
adds r0, r3, 0
|
||||
adds r1, r2, 0
|
||||
bl nullsub_53
|
||||
_08038010:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8037F9C
|
||||
|
||||
.align 2,0
|
||||
|
||||
@@ -17,13 +17,12 @@ struct unkStruct_203B480
|
||||
u32 unk10;
|
||||
u16 unk10_u16;
|
||||
} unk10;
|
||||
/* 0x14 */ u8 playerName[0x20 - 0x14];;
|
||||
struct Item unk20;
|
||||
/* 0x14 */ u8 playerName[0x20 - 0x14];
|
||||
struct Item item;
|
||||
u32 unk24;
|
||||
u32 unk28;
|
||||
/* 0x2C */ s8 rescuesAllowed;
|
||||
u8 unk2D;
|
||||
u8 padding4[0x30 - 0x2E];
|
||||
};
|
||||
|
||||
// size: 0x5C
|
||||
|
||||
@@ -72,7 +72,7 @@ void sub_8095118(void)
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = WONDER_MAIL_TYPE_NONE;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = ITEM_NOTHING;
|
||||
gUnknown_203B480[index].item.id = ITEM_NOTHING;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk2D = 0;
|
||||
}
|
||||
@@ -152,7 +152,7 @@ void DeleteMailAtIndex(u8 index)
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = 0;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = 0;
|
||||
gUnknown_203B480[index].item.id = 0;
|
||||
}
|
||||
|
||||
void sub_8095274(u32 param_1)
|
||||
@@ -424,9 +424,9 @@ void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
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->item.flags, 0x8);
|
||||
RestoreIntegerBits(a, &b->item.quantity, 0x8);
|
||||
RestoreIntegerBits(a, &b->item.id, 0x8);
|
||||
RestoreIntegerBits(a, &b->unk24, 0x20);
|
||||
RestoreIntegerBits(a, &b->unk28, 0x20);
|
||||
RestoreIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
@@ -449,9 +449,9 @@ void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
|
||||
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->item.flags, 0x8);
|
||||
SaveIntegerBits(a, &b->item.quantity, 0x8);
|
||||
SaveIntegerBits(a, &b->item.id, 0x8);
|
||||
SaveIntegerBits(a, &b->unk24, 0x20);
|
||||
SaveIntegerBits(a, &b->unk28, 0x20);
|
||||
SaveIntegerBits(a, &b->rescuesAllowed, 0x8);
|
||||
|
||||
2036
src/friend_rescue_1.c
Normal file
2036
src/friend_rescue_1.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,18 @@
|
||||
#include "global.h"
|
||||
#include "constants/communication_error_codes.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "pokemon.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "save.h"
|
||||
#include "team_inventory.h"
|
||||
#include "main_menu.h"
|
||||
#include "memory.h"
|
||||
|
||||
extern s32 gCommsTimeout; // Counts to 100 and then errors if other player hasn't connected
|
||||
extern s32 gUnknown_202EC48;
|
||||
extern u32 gUnknown_202EC40[2];
|
||||
|
||||
extern s32 sub_803815C(u32, void *, void*);
|
||||
extern void sub_800D494(void);
|
||||
extern s32 sub_800D33C(void);
|
||||
@@ -18,54 +23,298 @@ extern void sub_800D59C(s32 *, u32);
|
||||
extern void sub_800D570(void);
|
||||
extern void sub_800D510(void);
|
||||
extern s32 sub_8037DF0(void);
|
||||
extern void sub_8037F9C(u32, u8 *, u8 *);
|
||||
|
||||
extern u8 sub_800D588(void);
|
||||
extern struct UnkStruct_203B184 *gUnknown_203B184;
|
||||
extern void sub_800D670(u32, s32 *, u32);
|
||||
void sub_8037F9C(u32 mode, void *param_2, void *param_3);
|
||||
extern void sub_800D68C(u32);
|
||||
|
||||
|
||||
u32 sub_8037C10(u8 param_1)
|
||||
{
|
||||
if (param_1 != 0) {
|
||||
if (sub_800D588()) {
|
||||
goto _zero;
|
||||
}
|
||||
else
|
||||
{
|
||||
goto _one;
|
||||
}
|
||||
}
|
||||
else if (sub_800D588())
|
||||
{
|
||||
_one:
|
||||
return gUnknown_202EC40[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
_zero:
|
||||
return gUnknown_202EC40[0];
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8037C44(s32 mode, void *data)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 2; index++)
|
||||
{
|
||||
sub_800D68C(index);
|
||||
}
|
||||
switch(mode) {
|
||||
case 0:
|
||||
case 1:
|
||||
sub_800D59C(data, sizeof(struct unkStruct_8035D94));
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case 6:
|
||||
case 7:
|
||||
sub_800D59C(data, sizeof(struct unkStruct_203B480));
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
sub_800D59C(data, sizeof(struct WonderMailStruct_203B2C0_sub));
|
||||
break;
|
||||
case 9:
|
||||
case 10:
|
||||
sub_800D59C(data, 0xb4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8037CC4(s32 mode, void *param_2, void *param_3)
|
||||
{
|
||||
switch(mode)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
sub_800D670(0,param_2, sizeof(struct unkStruct_8035D94));
|
||||
sub_800D670(1,param_3, sizeof(struct unkStruct_8035D94));
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case 6:
|
||||
case 7:
|
||||
sub_800D670(0,param_2, sizeof(struct unkStruct_203B480));
|
||||
sub_800D670(1,param_3, sizeof(struct unkStruct_203B480));
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
sub_800D670(0,param_2, sizeof(struct WonderMailStruct_203B2C0_sub));
|
||||
sub_800D670(1,param_3, sizeof(struct WonderMailStruct_203B2C0_sub));
|
||||
break;
|
||||
case 9:
|
||||
case 10:
|
||||
sub_800D670(0,param_2, 0xb4);
|
||||
sub_800D670(1,param_3, 0xb4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: same as sub_80381F4
|
||||
s32 sub_8037D64(u32 mode, void * param_2, void * param_3)
|
||||
{
|
||||
u32 iVar2;
|
||||
s32 linkStatus;
|
||||
|
||||
iVar2 = 0;
|
||||
linkStatus = COMMS_GOOD;
|
||||
gUnknown_202EC48 = 0;
|
||||
sub_800D494();
|
||||
sub_8037C44(mode, param_2);
|
||||
goto _first;
|
||||
_start:
|
||||
while (iVar2 - 3 > 2) {
|
||||
if (99 < gUnknown_202EC48) {
|
||||
sub_800D520();
|
||||
sub_800D510();
|
||||
return COMMS_NOT_READY;
|
||||
}
|
||||
gUnknown_202EC48++;
|
||||
_first:
|
||||
sub_80373C4();
|
||||
iVar2 = sub_800D33C();
|
||||
sub_800D570();
|
||||
if (iVar2 == 2) {
|
||||
if (sub_800D600() == 0) {
|
||||
sub_800D520();
|
||||
sub_800D510();
|
||||
linkStatus = 5;
|
||||
}
|
||||
else {
|
||||
linkStatus = COMMS_GOOD;
|
||||
}
|
||||
goto _end;
|
||||
}
|
||||
else
|
||||
goto _start;
|
||||
}
|
||||
sub_800D520();
|
||||
sub_800D510();
|
||||
return 1;
|
||||
_end:
|
||||
sub_8037CC4(mode, param_2, param_3);
|
||||
return linkStatus;
|
||||
}
|
||||
|
||||
s32 sub_8037DF0(void)
|
||||
{
|
||||
s32 linkStatus;
|
||||
s32 iStack_10;
|
||||
s32 iStack_c;
|
||||
|
||||
linkStatus = COMMS_GOOD;
|
||||
sub_800D670(0,&iStack_10,4);
|
||||
sub_800D670(1,&iStack_c,4);
|
||||
if ((iStack_10 != 0) || (iStack_c != 0)) {
|
||||
linkStatus = (!sub_800D588()) ? iStack_c : iStack_10;
|
||||
if (linkStatus == COMMS_GOOD) {
|
||||
linkStatus = 0xe;
|
||||
}
|
||||
}
|
||||
return linkStatus;
|
||||
}
|
||||
|
||||
void sub_8037E38(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *param_2)
|
||||
{
|
||||
struct unkStruct_8035D94 *r3;
|
||||
struct unkStruct_8035D94 *r4;
|
||||
u32 load;
|
||||
|
||||
r4 = sub_800D588() == 0 ? param_2 : param_1;
|
||||
r3 = sub_800D588() == 0 ? param_1 : param_2;
|
||||
|
||||
if ((r4->itemIndex).itemIndex_u8 == (r3->itemIndex).itemIndex_u8) {
|
||||
load = gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8];
|
||||
load += r3->numItems;
|
||||
gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8] = load;
|
||||
}
|
||||
else {
|
||||
load = gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8];
|
||||
load += r3->numItems;
|
||||
gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8] = load;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8037E90(struct unkStruct_203B480 *param_1, struct unkStruct_203B480 *param_2)
|
||||
{
|
||||
if(sub_800D588() == 0)
|
||||
{
|
||||
param_2 = param_1;
|
||||
}
|
||||
param_2->mailType = 2;
|
||||
sub_80951BC(param_2);
|
||||
sub_8095274(param_2->unk10.unk10);
|
||||
}
|
||||
|
||||
void nullsub_53(void *param_1, void *param_2)
|
||||
{}
|
||||
|
||||
void sub_8037EBC(struct WonderMailStruct_203B2C0_sub *param_1, struct WonderMailStruct_203B2C0_sub *param_2) {
|
||||
struct unkStruct_203B480 *mail;
|
||||
struct WonderMailStruct_203B2C0_sub *puVar2;
|
||||
|
||||
if(sub_800D588() == 0)
|
||||
{
|
||||
puVar2 = param_1;
|
||||
}
|
||||
else
|
||||
{
|
||||
puVar2 = param_2;
|
||||
}
|
||||
mail = GetMailatIndex(GetMailIndex(1, (puVar2->mail).unk10.unk10));
|
||||
*mail = (*puVar2).mail;
|
||||
mail->mailType = 5;
|
||||
sub_80951FC(mail);
|
||||
mail->mailType = 7;
|
||||
|
||||
if(puVar2->pokemon.speciesNum != MONSTER_NONE)
|
||||
{
|
||||
gUnknown_203B484->unk0 = puVar2->mail.unk10.unk10;
|
||||
gUnknown_203B484->unk4 = puVar2->pokemon;
|
||||
gUnknown_203B484->unk4.dungeonLocation.id = DUNGEON_UNKNOWN_WORLD;
|
||||
gUnknown_203B484->unk4.dungeonLocation.floor = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
MemoryFill8((u8 *)gUnknown_203B484, 0, sizeof(struct unkStruct_203B484));
|
||||
gUnknown_203B484->unk4.speciesNum = MONSTER_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8037F4C(struct unkStruct_203B480 *param_1, struct unkStruct_203B480 *param_2)
|
||||
{
|
||||
struct unkStruct_203B480 *mail;
|
||||
struct MainMenu *mainMenu;
|
||||
|
||||
if(sub_800D588() == 0)
|
||||
{
|
||||
param_2 = param_1;
|
||||
}
|
||||
mail = GetMailatIndex(GetMailIndex(4, param_2->unk10.unk10));
|
||||
*mail = *param_2;
|
||||
mail->mailType = 6;
|
||||
mainMenu = GetMainMenu();
|
||||
if(mainMenu)
|
||||
{
|
||||
mainMenu->unk3A = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8037F9C(u32 mode, void *param_2, void *param_3)
|
||||
{
|
||||
switch(mode)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
sub_8037E38(param_2, param_3);
|
||||
break;
|
||||
case 7:
|
||||
sub_8037F4C(param_2, param_3);
|
||||
break;
|
||||
case 3:
|
||||
sub_8037E90(param_2, param_3);
|
||||
break;
|
||||
case 5:
|
||||
sub_8037EBC(param_2, param_3);
|
||||
break;
|
||||
case 10:
|
||||
nullsub_53(param_2, param_3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_8038014(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *param_2)
|
||||
{
|
||||
s32 linkStatus;
|
||||
s32 r2;
|
||||
struct unkStruct_8035D94 *r3;
|
||||
struct unkStruct_8035D94 *r4;
|
||||
s32 linkStatus;
|
||||
s32 r2;
|
||||
struct unkStruct_8035D94 *r3;
|
||||
struct unkStruct_8035D94 *r4;
|
||||
|
||||
if (sub_800D588() == 0) {
|
||||
r4 = param_2;
|
||||
}
|
||||
else
|
||||
{
|
||||
r4 = param_1;
|
||||
}
|
||||
r4 = sub_800D588() == 0 ? param_2 : param_1;
|
||||
r3 = sub_800D588() == 0 ? param_1 : param_2;
|
||||
|
||||
if (sub_800D588() == 0) {
|
||||
r3 = param_1;
|
||||
}
|
||||
else
|
||||
{
|
||||
r3 = param_2;
|
||||
}
|
||||
|
||||
if ((r4->itemIndex).itemIndex_u8 == (r3->itemIndex).itemIndex_u8) {
|
||||
r2 = gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8];
|
||||
r2 += r3->numItems;
|
||||
if (r2 > 999) {
|
||||
linkStatus = COMMS_NO_ROOM_STORAGE;
|
||||
if ((r4->itemIndex).itemIndex_u8 == (r3->itemIndex).itemIndex_u8) {
|
||||
r2 = gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8];
|
||||
r2 += r3->numItems;
|
||||
if (r2 > 999) {
|
||||
linkStatus = COMMS_NO_ROOM_STORAGE;
|
||||
}
|
||||
else
|
||||
linkStatus = COMMS_GOOD;
|
||||
}
|
||||
else
|
||||
linkStatus = COMMS_GOOD;
|
||||
}
|
||||
else {
|
||||
r2 = gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8];
|
||||
r2 += r3->numItems;
|
||||
if (r2 > 999) {
|
||||
linkStatus = COMMS_NO_ROOM_STORAGE;
|
||||
}
|
||||
else
|
||||
linkStatus = COMMS_GOOD;
|
||||
else {
|
||||
r2 = gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8];
|
||||
r2 += r3->numItems;
|
||||
if (r2 > 999) {
|
||||
linkStatus = COMMS_NO_ROOM_STORAGE;
|
||||
}
|
||||
else
|
||||
linkStatus = COMMS_GOOD;
|
||||
|
||||
}
|
||||
return linkStatus;
|
||||
}
|
||||
return linkStatus;
|
||||
}
|
||||
|
||||
s32 sub_8038078(struct unkStruct_203B480 *param_1,struct unkStruct_203B480 *param_2)
|
||||
|
||||
@@ -314,7 +314,7 @@ void CreateRescuePasswordMenu(u32 currMenu)
|
||||
temp = GetMailatIndex(0x1F);
|
||||
MemoryFill8((u8 *)temp, 0, sizeof(struct unkStruct_203B480));
|
||||
temp->mailType = 2;
|
||||
temp->unk20.id = ITEM_NOTHING;
|
||||
temp->item.id = ITEM_NOTHING;
|
||||
sub_8031D70(0x1F, 0);
|
||||
break;
|
||||
case MENU_RESCUE_PASSWORD_ENTRY:
|
||||
@@ -647,7 +647,7 @@ u32 sub_8039068(u32 mailMode, u8 *passwordBuffer, struct unkStruct_203B480 *para
|
||||
if ( (!sub_803D204(passwordBuffer, param_3)) || (WONDER_MAIL_TYPE_OKD < param_3->mailType) ||
|
||||
(param_3->dungeon.floor >= GetDungeonFloorCount(param_3->dungeon.id)) ||
|
||||
(param_3->clientSpecies == MONSTER_NONE) || (MONSTER_RAYQUAZA_CUTSCENE < param_3->clientSpecies) ||
|
||||
(IsInvalidItemReward(param_3->unk20.id))) {
|
||||
(IsInvalidItemReward(param_3->item.id))) {
|
||||
return PASSWORD_ENTRY_INCORRECT_PASSWORD;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -288,7 +288,7 @@ u32 CreateThankYouMailPelipper(void)
|
||||
index = GetFirstIndexofMailType(6);
|
||||
if (index != -1) {
|
||||
mail = GetMailatIndex(index);
|
||||
gUnknown_203B2C4->unk41C = mail->unk20;
|
||||
gUnknown_203B2C4->unk41C = mail->item;
|
||||
gUnknown_203B2C4->mailIndex = index;
|
||||
gUnknown_203B2C4->unk430 = mail->unk10.unk10;
|
||||
SetThankYouMailMenuState(5);
|
||||
@@ -957,7 +957,7 @@ void HandleConfirmItemtoSendMenu(void)
|
||||
mail = GetMailatIndex(gUnknown_203B2C4->mailIndex);
|
||||
if(gUnknown_203B2C4->unk41C.id != ITEM_NOTHING)
|
||||
{
|
||||
mail->unk20 = gUnknown_203B2C4->unk41C;
|
||||
mail->item = gUnknown_203B2C4->unk41C;
|
||||
}
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B2C4->unk41C.id]--;
|
||||
SetThankYouMailMenuState(0x29);
|
||||
@@ -1144,7 +1144,7 @@ void HandleMailCommunicationMenu(void)
|
||||
{
|
||||
case WONDER_MAIL_MODE_SEND:
|
||||
mail = GetMailatIndex(GetFirstIndexofMailType(WONDER_MAIL_TYPE_THANK_YOU));
|
||||
if(mail->unk20.id != ITEM_NOTHING)
|
||||
if(mail->item.id != ITEM_NOTHING)
|
||||
{
|
||||
SetThankYouMailMenuState(ITEM_EXISTS_ON_THANK_YOU_MAIL);
|
||||
}
|
||||
@@ -1409,7 +1409,7 @@ void UpdateThankYouMailText(void)
|
||||
gUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554
|
||||
mailIndex = GetMailIndex(6,gUnknown_203B2C4->unk430);
|
||||
mail = GetMailatIndex(mailIndex);
|
||||
itemIndex = mail->unk20.id;
|
||||
itemIndex = mail->item.id;
|
||||
if (itemIndex != ITEM_NOTHING)
|
||||
gUnknown_203B2C4->unk53C.itemRewards[0] = itemIndex; // unk558
|
||||
else
|
||||
|
||||
@@ -127,12 +127,12 @@ void sub_8030E48(void)
|
||||
stack.clientSpecies = mail->clientSpecies;
|
||||
stack.targetSpecies = mail->clientSpecies;
|
||||
stack.targetItem = ITEM_NOTHING;
|
||||
if (mail->unk20.id == ITEM_NOTHING) {
|
||||
if (mail->item.id == ITEM_NOTHING) {
|
||||
stack.unk2E = 5;
|
||||
}
|
||||
else {
|
||||
stack.unk2E = 2;
|
||||
stack.unk34 = mail->unk20.id;
|
||||
stack.unk34 = mail->item.id;
|
||||
}
|
||||
switch(mail->mailType)
|
||||
{
|
||||
|
||||
@@ -323,7 +323,7 @@ void sub_80313D8(u32 state)
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].mailType = 0;
|
||||
unused = &gUnknown_203B480[index];
|
||||
gUnknown_203B480[index].unk20.id = ITEM_NOTHING;
|
||||
gUnknown_203B480[index].item.id = ITEM_NOTHING;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user