actually commit sub_8038014 and a few more

This commit is contained in:
Seth Barberee
2023-07-17 17:42:17 -07:00
parent 6d2738cf48
commit c468247aaa
9 changed files with 2343 additions and 573 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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)
{

View File

@@ -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;
}