continue documenting more things

This commit is contained in:
Seth Barberee 2022-12-23 15:13:26 -08:00
parent 12da1abf58
commit 5aa19fac49
15 changed files with 167 additions and 163 deletions

View File

@ -7,7 +7,7 @@ struct WonderMailStruct_203B33C
{
// size: 0x568
u32 state;
u32 unk4;
u32 fallbackState;
u8 passwordBuffer[0x36];
u32 unk40;
u32 status;
@ -37,7 +37,7 @@ struct WonderMailStruct_203B33C
u8 fill52E;
u32 unk530;
u32 unk534;
s16 unk538; // A7 << 3
s16 speciesNum; // A7 << 3
u32 unk53C;
u32 unk540; // A8 << 4
s16 unk544;

View File

@ -40,6 +40,12 @@ struct WonderMail
};
struct WonderMailStruct_203B2C0_sub
{
struct unkStruct_203B480 mail;
struct PokemonStruct pokemon;
};
struct WonderMailStruct_203B2C0
{
// size: 0x548
@ -51,13 +57,10 @@ struct WonderMailStruct_203B2C0
u32 linkError;
u8 unk48[0x30];
u8 unk78[0x30];
struct unkStruct_203B480 unkA8;
struct PokemonStruct unkD8;
u8 unk130;
u8 fill131[0x168 - 0x131];
u16 unk168;
u8 fill16A[0x218 - 0x16A];
u8 unk218;
struct WonderMailStruct_203B2C0_sub unkA8;
struct WonderMailStruct_203B2C0_sub unk130;
u8 fill16A[0x218 - 0x1B8];
u8 mailIndex;
u32 unk21C;
u8 padding[0x7C];
u32 unk29C;
@ -79,7 +82,7 @@ struct WonderMailStruct_203B2C0
s32 unk538; // A7 << 3
u32 unk53C;
u32 unk540; // A8 << 4
s16 unk544;
s16 speciesNum;
};
@ -95,7 +98,7 @@ struct WonderMailStruct_203B2C4
u8 filler48[0x1B8 - 0x48];
struct unkStruct_203B480 unk1B8;
struct unkStruct_203B480 unk1E8;
s8 unk218;
s8 mailIndex;
u32 unk21C;
u8 filler220[0x30C - 0x220];
u32 unk30C;

View File

@ -13,7 +13,7 @@ struct unkStruct_203B2AC
u8 unk22[0x34 - 0x22];
u32 unk34[3];
u8 unk40[0x48 - 0x40];
s16 unk48;
s16 speciesNum;
u32 unk4C;
u8 unk50[0xB0 - 0x50];
u32 unkB0;
@ -223,11 +223,11 @@ struct PokemonStruct *sub_80243E8(void)
return pokeStruct;
}
bool8 sub_8024458(s16 param_1, s32 param_2)
bool8 sub_8024458(s16 speciesNum, s32 param_2)
{
s32 param_1_s32 = param_1;
s32 speciesNum_s32 = speciesNum;
gUnknown_203B2AC = MemoryAlloc(sizeof(struct unkStruct_203B2AC), 8);
gUnknown_203B2AC->unk48 = param_1_s32;
gUnknown_203B2AC->speciesNum = speciesNum_s32;
gUnknown_203B2AC->unkE0 = param_2;
gUnknown_203B2AC->unkE4 = &gUnknown_203B2AC->unkE8[param_2];
sub_8006518(gUnknown_203B2AC->unkE8);
@ -306,6 +306,6 @@ void sub_8024604(void)
gUnknown_203B2AC->unk34[2] = 5;
sub_8013818(gUnknown_203B2AC,3,1,gUnknown_203B2AC->unkE0);
iVar3 = &gUnknown_203B2AC->unk4C;
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2AC->unk48];
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2AC->speciesNum];
sub_808FF20(iVar3,pokeStruct, sub_80023E4(7));
}

View File

@ -212,13 +212,13 @@ void sub_8095494(struct unkStruct_809542C *param_1, u8 index)
{
u32 uVar1;
struct DungeonLocation temp;
struct unkStruct_203B480 *iVar2;
struct unkStruct_203B480 *mail;
iVar2 = gUnknown_203B480;
iVar2 += index;
mail = gUnknown_203B480;
mail += index;
temp = iVar2->dungeon;
uVar1 = iVar2->unk8;
temp = mail->dungeon;
uVar1 = mail->unk8;
param_1->unk0 = temp;
param_1->unk4 = uVar1;
}

View File

@ -124,14 +124,14 @@ u32 CreateFriendRescueMenu(void)
MemoryFill8((u8 *) gUnknown_203B33C, 0, sizeof(struct WonderMailStruct_203B33C));
gUnknown_203B33C->unk530 = 0;
gUnknown_203B33C->unk218 = -1;
gUnknown_203B33C->unk538 = -1;
gUnknown_203B33C->speciesNum = -1;
CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gAvailablePokemonNames,monName);
for(counter = 0; counter < 0x36; counter++){
gUnknown_203B33C->passwordBuffer[counter] = 0;
}
gUnknown_203B33C->unk4 = 0x7E;
gUnknown_203B33C->fallbackState = 0x7E;
gUnknown_203B33C->unk52C = sub_8039880();
gUnknown_203B33C->unk52D = gUnknown_203B33C->unk52C;
SetFriendRescueMenuState(0);

View File

@ -171,7 +171,7 @@ void sub_80339C8(void)
s32 temp;
if(sub_80144A4(&temp) == 0)
{
gUnknown_203B33C->unk538 = -1;
gUnknown_203B33C->speciesNum = -1;
switch(temp)
{
case 0:
@ -565,7 +565,7 @@ void sub_8033FE4(void)
SetFriendRescueMenuState(0x1E);
break;
case 4:
gUnknown_203B33C->unk4 = 0x1D;
gUnknown_203B33C->fallbackState = 0x1D;
gUnknown_203B33C->unk218 = sub_80307EC();
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
@ -591,7 +591,7 @@ void sub_8034074(void)
SetFriendRescueMenuState(0x20);
break;
case 10:
gUnknown_203B33C->unk4 = 0x7E;
gUnknown_203B33C->fallbackState = 0x7E;
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
@ -617,13 +617,13 @@ void sub_8034130(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B33C->unk3BC, 1, 1);
sub_803092C();
if(gUnknown_203B33C->unk4 == 0x7E)
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x1E);
}
else
SetFriendRescueMenuState(gUnknown_203B33C->unk4);
SetFriendRescueMenuState(gUnknown_203B33C->fallbackState);
break;
default:
break;
@ -638,22 +638,22 @@ void sub_803418C(void)
sub_8023C60();
SetFriendRescueMenuState(1);
sub_8035D1C();
gUnknown_203B33C->unk538 = -1;
gUnknown_203B33C->speciesNum = -1;
break;
case 3:
gUnknown_203B33C->unk538 = sub_8023B44();
gUnknown_203B33C->speciesNum = sub_8023B44();
if(gUnknown_203B33C->unk524 == 0xE)
SetFriendRescueMenuState(9);
else
SetFriendRescueMenuState(0x27);
break;
case 4:
gUnknown_203B33C->unk4 = 0x26;
gUnknown_203B33C->unk538 = sub_8023B44();
gUnknown_203B33C->fallbackState = 0x26;
gUnknown_203B33C->speciesNum = sub_8023B44();
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8024458(gUnknown_203B33C->unk538, 0);
sub_8024458(gUnknown_203B33C->speciesNum, 0);
SetFriendRescueMenuState(0x28);
break;
}
@ -674,11 +674,11 @@ void sub_8034254(void)
SetFriendRescueMenuState(0x29);
break;
case 10:
gUnknown_203B33C->unk4 = 0x7E;
gUnknown_203B33C->fallbackState = 0x7E;
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8024458(gUnknown_203B33C->unk538, 0);
sub_8024458(gUnknown_203B33C->speciesNum, 0);
SetFriendRescueMenuState(0x28);
break;
case 5:
@ -703,13 +703,13 @@ void sub_8034310(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B33C->unk3BC, 1, 1);
sub_8023B7C(1);
if(gUnknown_203B33C->unk4 == 0x7E)
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x27);
}
else
SetFriendRescueMenuState(gUnknown_203B33C->unk4);
SetFriendRescueMenuState(gUnknown_203B33C->fallbackState);
break;
default:
break;
@ -843,7 +843,7 @@ void sub_8034500(void)
SetFriendRescueMenuState(0x33);
break;
case 4:
gUnknown_203B33C->unk4 = 0x32;
gUnknown_203B33C->fallbackState = 0x32;
gUnknown_203B33C->unk218 = sub_80307EC();
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
@ -869,7 +869,7 @@ void sub_8034590(void)
SetFriendRescueMenuState(0x35);
break;
case 10:
gUnknown_203B33C->unk4 = 0x7E;
gUnknown_203B33C->fallbackState = 0x7E;
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
@ -895,13 +895,13 @@ void sub_803464C(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B33C->unk3BC, 1, 1);
sub_803092C();
if(gUnknown_203B33C->unk4 == 0x7E)
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x33);
}
else
SetFriendRescueMenuState(gUnknown_203B33C->unk4);
SetFriendRescueMenuState(gUnknown_203B33C->fallbackState);
break;
default:
break;
@ -1168,7 +1168,7 @@ void sub_80349E0(void)
SetFriendRescueMenuState(0x5D);
break;
case 4:
gUnknown_203B33C->unk4 = 0x5C;
gUnknown_203B33C->fallbackState = 0x5C;
gUnknown_203B33C->unk218 = sub_80307EC();
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
@ -1194,7 +1194,7 @@ void sub_8034A70(void)
SetFriendRescueMenuState(0x5A);
break;
case 10:
gUnknown_203B33C->unk4 = 0x7E;
gUnknown_203B33C->fallbackState = 0x7E;
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
@ -1220,13 +1220,13 @@ void sub_8034B2C(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B33C->unk3BC, 1, 1);
sub_803092C();
if(gUnknown_203B33C->unk4 == 0x7E)
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x5D);
}
else
SetFriendRescueMenuState(gUnknown_203B33C->unk4);
SetFriendRescueMenuState(gUnknown_203B33C->fallbackState);
break;
default:
break;
@ -1249,7 +1249,7 @@ void sub_8034B88(void)
SetFriendRescueMenuState(0x60);
break;
case 4:
gUnknown_203B33C->unk4 = 0x5F;
gUnknown_203B33C->fallbackState = 0x5F;
gUnknown_203B33C->unk41C.itemIndex = sub_801CB24();
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
@ -1270,13 +1270,13 @@ void sub_8034C38(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B33C->unk3BC, 1, 1);
sub_801CB5C(1);
if(gUnknown_203B33C->unk4 == 0x7E)
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x60);
}
else
SetFriendRescueMenuState(gUnknown_203B33C->unk4);
SetFriendRescueMenuState(gUnknown_203B33C->fallbackState);
break;
default:
case 1:
@ -1299,7 +1299,7 @@ void sub_8034C98(void)
SetFriendRescueMenuState(0x58);
break;
case 10:
gUnknown_203B33C->unk4 = 0x7E;
gUnknown_203B33C->fallbackState = 0x7E;
sub_8006518(gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
@ -1639,7 +1639,7 @@ void sub_80351E0(void)
void sub_8035210(void)
{
s32 temp;
struct unkStruct_203B480 *temp2;
struct unkStruct_203B480 *mail;
if(sub_80144A4(&temp) == 0)
{
@ -1652,8 +1652,8 @@ void sub_8035210(void)
case 0xD:
if(gUnknown_203B33C->unk528 == 0x13)
{
temp2 = sub_8095228(sub_80953D4(5));
if(temp2->unk20.itemIndex != ITEM_ID_NOTHING)
mail = sub_8095228(sub_80953D4(5));
if(mail->unk20.itemIndex != ITEM_ID_NOTHING)
SetFriendRescueMenuState(0x53);
else
SetFriendRescueMenuState(0x55);

View File

@ -597,7 +597,7 @@ void DisplayMissionObjectives(void)
{
s32 yCoord;
s32 jobSlotIdx;
struct unkStruct_203B480 *iVar8;
struct unkStruct_203B480 *mail;
struct WonderMail *jobInfo;
u8 auStack248 [100];
volatile u8 local_94;
@ -613,13 +613,13 @@ void DisplayMissionObjectives(void)
{
case 1:
sub_8099394(&local_94);
iVar8 = sub_8095228(local_94);
mail = sub_8095228(local_94);
sub_803B6B0(10,16,3,gUnknown_203B330->unk10);
// %dF
sprintf_2(auStack248,gUnknown_80E1F3C,iVar8->dungeon.dungeonFloor);
sprintf_2(auStack248,gUnknown_80E1F3C,mail->dungeon.dungeonFloor);
xxx_call_draw_string(0x15,16,auStack248,gUnknown_203B330->unk10,0);
// Rescue #C6%s#R
sprintf_2(auStack248,gUnknown_80E1F40,GetMonSpecies(iVar8->clientSpecies));
sprintf_2(auStack248,gUnknown_80E1F40,GetMonSpecies(mail->clientSpecies));
xxx_call_draw_string(0x28,16,auStack248,gUnknown_203B330->unk10,0);
break;
case 2:

View File

@ -257,9 +257,9 @@ u32 CreateThankYouMailPelipper(void)
{
char *monName;
struct OpenedFile *faceFile;
s32 uVar2;
s32 index;
int counter;
struct unkStruct_203B480 *temp;
struct unkStruct_203B480 *mail;
ResetUnusedInputStruct();
sub_800641C(0,1,1);
@ -286,17 +286,17 @@ u32 CreateThankYouMailPelipper(void)
gUnknown_203B2C4->wonderMailMethod = WONDER_MAIL_GAME_LINK;
gUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND;
uVar2 = sub_80953D4(6);
if (uVar2 != -1) {
temp = sub_8095228(uVar2);
gUnknown_203B2C4->unk41C = temp->unk20;
gUnknown_203B2C4->unk218 = uVar2;
gUnknown_203B2C4->unk430 = temp->unk10;
index = sub_80953D4(6);
if (index != -1) {
mail = sub_8095228(index);
gUnknown_203B2C4->unk41C = mail->unk20;
gUnknown_203B2C4->mailIndex = index;
gUnknown_203B2C4->unk430 = mail->unk10;
SetThankYouMailMenuState(5);
}
else {
gUnknown_203B2C4->unk41C = gUnknown_80DED44;
gUnknown_203B2C4->unk218 = -1;
gUnknown_203B2C4->mailIndex = -1;
SetThankYouMailMenuState(THANK_YOU_MAIL_MAIN_MENU);
}
gUnknown_203B2C4->fallbackState = 0x2b;
@ -591,16 +591,16 @@ void sub_802A0C8(void)
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
case 3:
gUnknown_203B2C4->unk218 = sub_80307EC();
gUnknown_203B2C4->mailIndex = sub_80307EC();
SetThankYouMailMenuState(0x11);
break;
case 4:
gUnknown_203B2C4->fallbackState = 0x10;
gUnknown_203B2C4->unk218 = sub_80307EC();
gUnknown_203B2C4->mailIndex = sub_80307EC();
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0,1,1);
sub_8030D40(gUnknown_203B2C4->unk218,0);
sub_8030D40(gUnknown_203B2C4->mailIndex,0);
SetThankYouMailMenuState(0x12);
break;
}
@ -636,7 +636,7 @@ void sub_802A174(void)
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0,1,1);
sub_8030D40(gUnknown_203B2C4->unk218,0);
sub_8030D40(gUnknown_203B2C4->mailIndex,0);
SetThankYouMailMenuState(0x12);
break;
case 0:
@ -950,16 +950,16 @@ void sub_802A75C(void)
void HandleConfirmItemtoSendMenu(void)
{
s32 temp;
struct unkStruct_203B480 *return_var;
struct unkStruct_203B480 *mail;
if(sub_80144A4(&temp) == 0)
{
switch(temp)
{
case 7:
return_var = sub_8095228(gUnknown_203B2C4->unk218);
mail = sub_8095228(gUnknown_203B2C4->mailIndex);
if(gUnknown_203B2C4->unk41C.itemIndex != ITEM_ID_NOTHING)
{
return_var->unk20 = gUnknown_203B2C4->unk41C;
mail->unk20 = gUnknown_203B2C4->unk41C;
}
gTeamInventory_203B460->teamStorage[gUnknown_203B2C4->unk41C.itemIndex]--;
SetThankYouMailMenuState(0x29);
@ -1133,7 +1133,7 @@ void sub_802A9FC(void)
void HandleMailCommunicationMenu(void)
{
s32 temp;
struct unkStruct_203B480 *return_var;
struct unkStruct_203B480 *mail;
if(sub_80144A4(&temp) == 0)
{
switch(temp)
@ -1145,8 +1145,8 @@ void HandleMailCommunicationMenu(void)
switch(gUnknown_203B2C4->wonderMailMode)
{
case WONDER_MAIL_MODE_SEND:
return_var = sub_8095228(sub_80953D4(5));
if(return_var->unk20.itemIndex != ITEM_ID_NOTHING)
mail = sub_8095228(sub_80953D4(5));
if(mail->unk20.itemIndex != ITEM_ID_NOTHING)
{
SetThankYouMailMenuState(ITEM_EXISTS_ON_THANK_YOU_MAIL);
}
@ -1274,7 +1274,7 @@ void UpdateThankYouMailText(void)
struct PokemonStruct *pokeStruct;
struct PokemonStruct *pokeStruct2;
s32 linkStatus;
struct unkStruct_203B480 *puVar4;
struct unkStruct_203B480 *mail;
switch(gUnknown_203B2C4->state) {
case 5:
@ -1332,7 +1332,7 @@ void UpdateThankYouMailText(void)
{
case 6:
MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(struct unkStruct_203B480));
gUnknown_203B2C4->unk1B8 = *sub_8095228(gUnknown_203B2C4->unk218);
gUnknown_203B2C4->unk1B8 = *sub_8095228(gUnknown_203B2C4->mailIndex);
gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
break;
case 7:
@ -1372,7 +1372,7 @@ void UpdateThankYouMailText(void)
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0,1,1);
sub_8031D70(gUnknown_203B2C4->unk218,0);
sub_8031D70(gUnknown_203B2C4->mailIndex,0);
break;
case 0x1b:
// Please give this password to the friend that rescued your team. I also must save your adventure
@ -1410,14 +1410,14 @@ void UpdateThankYouMailText(void)
gUnknown_203B2C4->unk53C.unk16 = 2; // 0x552
gUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554
uVar2 = sub_809539C(6,gUnknown_203B2C4->unk430);
puVar4 = sub_8095228(uVar2);
itemIndex = puVar4->unk20.itemIndex;
mail = sub_8095228(uVar2);
itemIndex = mail->unk20.itemIndex;
if (itemIndex != ITEM_ID_NOTHING)
gUnknown_203B2C4->unk53C.itemRewards[0] = itemIndex; // unk558
else
gUnknown_203B2C4->unk53C.itemRewards[0] = ITEM_ID_NOTHING; // unk558
gUnknown_203B2C4->unk53C.numItems = 1; // unk55B
gUnknown_203B2C4->unk53C.teamRankPtsReward = GetDungeonTeamRankPts(&puVar4->dungeon, 0); // unk560
gUnknown_203B2C4->unk53C.teamRankPtsReward = GetDungeonTeamRankPts(&mail->dungeon, 0); // unk560
gUnknown_203B2C4->unk53C.itemRewards[1] = 0; // unk559
gUnknown_203B2C4->unk53C.itemRewards[2] = 0; // unk55A
gUnknown_203B2C4->unk53C.friendAreaReward = 0; // unk55C

View File

@ -260,8 +260,8 @@ u32 sub_8027F88(void)
gUnknown_203B2C0 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C0), 8);
MemoryFill8((u8 *)gUnknown_203B2C0, 0, sizeof(struct WonderMailStruct_203B2C0));
gUnknown_203B2C0->unk53C = 0;
gUnknown_203B2C0->unk218 = -1;
gUnknown_203B2C0->unk544 = -1;
gUnknown_203B2C0->mailIndex = -1;
gUnknown_203B2C0->speciesNum = -1;
CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gAvailablePokemonNames, monName);
@ -459,7 +459,7 @@ u32 sub_8028078(void)
s32 sub_80282DC(u8 *r0)
{
*r0 = gUnknown_203B2C0->unk218;
*r0 = gUnknown_203B2C0->mailIndex;
return gUnknown_203B2C0->unk53C;
}
@ -492,7 +492,7 @@ void sub_8028348(void)
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8031D70(gUnknown_203B2C0->unk218, 0);
sub_8031D70(gUnknown_203B2C0->mailIndex, 0);
break;
case 0x3C:
sub_80141B4(gUnknown_80DDBA8, 0, &gUnknown_203B2C0->faceFile,0x10d);
@ -598,14 +598,14 @@ void sub_8028348(void)
gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, gUnknown_203B2C0->unk48, gUnknown_203B2C0->unk78);
break;
case 4:
MemoryFill8((u8 *)&gUnknown_203B2C0->unkA8, 0, 0x88);
MemoryFill8(&gUnknown_203B2C0->unk130, 0, 0x88);
gUnknown_203B2C0->unkD8.speciesNum = linkError;
gUnknown_203B2C0->unk168 = linkError;
gUnknown_203B2C0->unkA8 = *sub_8095228(gUnknown_203B2C0->unk218);
if(gUnknown_203B2C0->unk544 != -1)
MemoryFill8((u8 *)&gUnknown_203B2C0->unkA8, 0, sizeof(struct WonderMailStruct_203B2C0_sub));
MemoryFill8((u8 *)&gUnknown_203B2C0->unk130, 0, sizeof(struct WonderMailStruct_203B2C0_sub));
gUnknown_203B2C0->unkA8.pokemon.speciesNum = 0;
gUnknown_203B2C0->unk130.pokemon.speciesNum = 0;
gUnknown_203B2C0->unkA8.mail = *sub_8095228(gUnknown_203B2C0->mailIndex);
if(gUnknown_203B2C0->speciesNum != -1)
{
gUnknown_203B2C0->unkD8 = gRecruitedPokemonRef->pokemon[gUnknown_203B2C0->unk544];
gUnknown_203B2C0->unkA8.pokemon = gRecruitedPokemonRef->pokemon[gUnknown_203B2C0->speciesNum];
}
gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130);
break;
@ -838,7 +838,7 @@ void sub_8028BF0(void)
return;
}
gUnknown_203B2C0->unk40 = 8;
gUnknown_203B2C0->unk544 = -1;
gUnknown_203B2C0->speciesNum = -1;
switch(temp)
{
case 0:
@ -1140,7 +1140,7 @@ void sub_8028F80()
{
return;
}
sub_809927C(gUnknown_203B2C0->unk218);
sub_809927C(gUnknown_203B2C0->mailIndex);
gUnknown_203B2C0->unk53C = 1;
sub_8028B04(3);
}
@ -1159,7 +1159,7 @@ void sub_8028FC0()
void sub_8028FDC(void)
{
s32 temp;
struct unkStruct_203B480 *return_var;
struct unkStruct_203B480 *mail;
if(sub_80144A4(&temp) != 0)
{
@ -1168,14 +1168,14 @@ void sub_8028FDC(void)
switch(temp)
{
case 8:
return_var = sub_8095228(gUnknown_203B2C0->unk218);
if(sub_80A2824(return_var->dungeon.dungeonIndex) == 0)
mail = sub_8095228(gUnknown_203B2C0->mailIndex);
if(sub_80A2824(mail->dungeon.dungeonIndex) == 0)
{
sub_8028B04(0x1C);
}
else
{
if(return_var->unk2C <= 0)
if(mail->unk2C <= 0)
{
sub_8028B04(0x1D);
}
@ -1203,16 +1203,16 @@ void sub_8029044(void)
sub_8028B04(1);
break;
case 3:
gUnknown_203B2C0->unk218 = sub_80307EC();
gUnknown_203B2C0->mailIndex = sub_80307EC();
sub_8028B04(32);
break;
case 4:
gUnknown_203B2C0->fallbackState = 0x1F;
gUnknown_203B2C0->unk218 = sub_80307EC();
gUnknown_203B2C0->mailIndex = sub_80307EC();
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8030D40(gUnknown_203B2C0->unk218, 0);
sub_8030D40(gUnknown_203B2C0->mailIndex, 0);
sub_8028B04(33);
break;
}
@ -1248,7 +1248,7 @@ void sub_80290F0(void)
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8030D40(gUnknown_203B2C0->unk218, 0);
sub_8030D40(gUnknown_203B2C0->mailIndex, 0);
sub_8028B04(33);
break;
case 4:
@ -1446,18 +1446,17 @@ void sub_80293D8(void)
sub_8028B04(0x27);
}
// TODO: pls look into this later - Sese
void sub_80293F4(void)
{
u32 return_var;
struct unkStruct_203B480 temp;
struct unkStruct_203B480 mail;
return_var = sub_80154F0();
MemoryFill8((u8 *)&temp, 0, sizeof(struct unkStruct_203B480));
MemoryFill8((u8 *)&mail, 0, sizeof(struct unkStruct_203B480));
switch(return_var)
{
case 3:
switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (gUnknown_203B2C0->passwordBuffer), &temp))
switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (gUnknown_203B2C0->passwordBuffer), &mail))
{
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile, 0xC);
@ -1472,9 +1471,9 @@ void sub_80293F4(void)
sub_8028B04(7);
break;
case PASSWORD_ENTRY_SOS_MAIL_SUCCESS:
sub_8095274(temp.unk10);
temp.mailType = 2;
sub_80951BC(&temp);
sub_8095274(mail.unk10);
mail.mailType = 2;
sub_80951BC(&mail);
sub_80141B4(gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->faceFile, 0x101);
sub_8028B04(35);
break;
@ -1553,16 +1552,16 @@ void sub_80295D8(void)
sub_8028B04(1);
break;
case 3:
gUnknown_203B2C0->unk218 = sub_80307EC();
gUnknown_203B2C0->mailIndex = sub_80307EC();
sub_8028B04(0x2B);
break;
case 4:
gUnknown_203B2C0->fallbackState = 0x2A;
gUnknown_203B2C0->unk218 = sub_80307EC();
gUnknown_203B2C0->mailIndex = sub_80307EC();
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8030D40(gUnknown_203B2C0->unk218, 0);
sub_8030D40(gUnknown_203B2C0->mailIndex, 0);
sub_8028B04(0x2C);
break;
}
@ -1598,7 +1597,7 @@ void sub_8029684(void)
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8030D40(gUnknown_203B2C0->unk218, 0);
sub_8030D40(gUnknown_203B2C0->mailIndex, 0);
sub_8028B04(0x2C);
break;
case 0x4:
@ -1660,19 +1659,19 @@ void sub_80297D4(void)
case 2:
sub_8023C60();
sub_8028B04(1);
gUnknown_203B2C0->unk544 = -1;
gUnknown_203B2C0->speciesNum = -1;
break;
case 3:
gUnknown_203B2C0->unk544 = sub_8023B44();
gUnknown_203B2C0->speciesNum = sub_8023B44();
sub_8028B04(0x34);
break;
case 4:
gUnknown_203B2C0->fallbackState = 0x33;
gUnknown_203B2C0->unk544 = sub_8023B44();
gUnknown_203B2C0->speciesNum = sub_8023B44();
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8024458(gUnknown_203B2C0->unk544, 0);
sub_8024458(gUnknown_203B2C0->speciesNum, 0);
sub_8028B04(0x35);
break;
}
@ -1698,7 +1697,7 @@ void sub_8029884(void)
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
sub_8024458(gUnknown_203B2C0->unk544, 0);
sub_8024458(gUnknown_203B2C0->speciesNum, 0);
sub_8028B04(0x35);
break;
case 0x4:

View File

@ -1,4 +1,5 @@
#include "global.h"
#include "constants/wonder_mail.h"
#include "file_system.h"
#include "input.h"
#include "pokemon.h"
@ -359,7 +360,7 @@ void nullsub_132(void)
void sub_802B3E0(void)
{
struct unkStruct_203B480 *iVar3;
struct unkStruct_203B480 *mail;
char *monName;
char teamNameBuffer[40];
@ -385,9 +386,9 @@ void sub_802B3E0(void)
gUnknown_203B2C8->unk114.unk16 = 2;
gUnknown_203B2C8->unk114.moneyReward = 0;
sub_8097790();
iVar3 = sub_8095228(gUnknown_203B2C8->unk1);
sub_803C37C(&iVar3->dungeon, 0, gUnknown_203B2C8->unk114.itemRewards);
gUnknown_203B2C8->unk114.teamRankPtsReward = GetDungeonTeamRankPts(&iVar3->dungeon, 0);
mail = sub_8095228(gUnknown_203B2C8->unk1);
sub_803C37C(&mail->dungeon, 0, gUnknown_203B2C8->unk114.itemRewards);
gUnknown_203B2C8->unk114.teamRankPtsReward = GetDungeonTeamRankPts(&mail->dungeon, 0);
gUnknown_203B2C8->unk114.itemRewards[1] = 0;
gUnknown_203B2C8->unk114.itemRewards[2] = 0;
gUnknown_203B2C8->unk114.numItems = 10;
@ -441,14 +442,14 @@ void sub_802B57C(void)
void sub_802B5B8(void)
{
u32 uVar2;
struct unkStruct_203B480 *puVar3;
struct unkStruct_203B480 *mail;
s32 temp;
if (sub_80144A4(&temp) == 0) {
uVar2 = sub_8011C34();
puVar3 = sub_8095228(gUnknown_203B2C8->unk1);
puVar3->mailType = 4;
puVar3->unk28 = uVar2;
mail = sub_8095228(gUnknown_203B2C8->unk1);
mail->mailType = WONDER_MAIL_TYPE_AOK;
mail->unk28 = uVar2;
sub_802B548(3);
sub_8011C28(1);
PrepareSavePakWrite(SPECIES_NONE);

View File

@ -154,7 +154,6 @@ extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern void CreateRescueTitle(void *);
extern s32 sub_8013800(void *, u32);
extern void sub_803B35C(void *, u32*);
extern u8 gUnknown_80DFDBC[];

View File

@ -238,7 +238,7 @@ void sub_80308A0(void)
void sub_803092C(void)
{
struct unkStruct_203B480 *pbVar2;
struct unkStruct_203B480 *mail;
s32 r4;
s32 r5;
s32 r6;
@ -257,24 +257,24 @@ void sub_803092C(void)
r6 = 0;
if (r6 < gUnknown_203B320->unk3E) {
do {
pbVar2 = sub_8095228(gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + r6]);
mail = sub_8095228(gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + r6]);
local.unk0[0] = gUnknown_203B320->unk58;
local.unk4C = sub_8013800(&gUnknown_203B320->unk24,r6);
local.unk3C[8] = 7;
local.unk3C[10] = 0;
local.unk3C[12] = 0;
local.unk8 = &pbVar2->dungeon;
local.unkC = pbVar2->playerName;
local.unk8 = &mail->dungeon;
local.unkC = mail->playerName;
local.unk10 = (pbVar2->clientSpecies);
local.unk12 = (pbVar2->clientSpecies);
local.unk10 = (mail->clientSpecies);
local.unk12 = (mail->clientSpecies);
local.unk14 = 0;
local.fill15[0x19] = 5;
switch(pbVar2->mailType)
switch(mail->mailType)
{
case 4:
case WONDER_MAIL_TYPE_AOK:
local.unk3C[11] = 3;
break;
case 5:
@ -310,11 +310,11 @@ s32 sub_8030A74(void)
}
}
break;
case 6:
case WONDER_MAIL_TYPE_COMPLETED:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 6) {
if (p->mailType == WONDER_MAIL_TYPE_COMPLETED) {
gUnknown_203B320->unk0[count] = index;
count++;
}
@ -340,11 +340,11 @@ s32 sub_8030A74(void)
}
}
break;
case 4:
case WONDER_MAIL_TYPE_AOK:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 4) {
if (p->mailType == WONDER_MAIL_TYPE_AOK) {
gUnknown_203B320->unk0[count] = index;
count++;
}
@ -371,11 +371,11 @@ s32 sub_8030A74(void)
}
break;
case 7:
case WONDER_MAIL_TYPE_OKD:
for (index = 0; index < 0x20; index++)
{
struct unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 7) {
if (p->mailType == WONDER_MAIL_TYPE_OKD) {
gUnknown_203B320->unk0[count] = index;
count++;
}
@ -398,10 +398,10 @@ bool8 HasNoWonderMailType(u32 wonderMailType)
}
}
break;
case 6:
case WONDER_MAIL_TYPE_COMPLETED:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 6) {
if (gUnknown_203B480[index].mailType == WONDER_MAIL_TYPE_COMPLETED) {
return FALSE;
}
}
@ -422,10 +422,10 @@ bool8 HasNoWonderMailType(u32 wonderMailType)
}
}
break;
case 4:
case WONDER_MAIL_TYPE_AOK:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 4) {
if (gUnknown_203B480[index].mailType == WONDER_MAIL_TYPE_AOK) {
return FALSE;
}
}
@ -448,10 +448,10 @@ bool8 HasNoWonderMailType(u32 wonderMailType)
}
break;
case 7:
case WONDER_MAIL_TYPE_OKD:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 7) {
if (gUnknown_203B480[index].mailType == WONDER_MAIL_TYPE_OKD) {
return FALSE;
}
}

View File

@ -299,7 +299,7 @@ void sub_803136C(void)
}
}
void sub_80313D8(u32 param_1)
void sub_80313D8(u32 state)
{
s32 iVar2;
s32 local_10;
@ -319,7 +319,7 @@ void sub_80313D8(u32 param_1)
sub_80310E4(0);
break;
case 2:
switch(param_1)
switch(state)
{
case 2:
sub_8095240(gUnknown_203B328->unk4);

View File

@ -1,4 +1,5 @@
#include "global.h"
#include "constants/wonder_mail.h"
#include "exclusive_pokemon.h"
#include "input.h"
#include "item.h"
@ -307,11 +308,11 @@ bool8 sub_802DAA8(void)
mail = GetJobSlotInfo(gUnknown_203B2F8->unk10);
if (gUnknown_203B2F8->unk9 == 0) {
return 1;
return TRUE;
}
else {
if ( (mail->mailType != WONDER_MAIL_TYPE_THANK_YOU) && (gUnknown_203B2F8->unkA == mail->dungeon.dungeonIndex)) return 0;
return 1;
if ( (mail->mailType != WONDER_MAIL_TYPE_THANK_YOU) && (gUnknown_203B2F8->unkA == mail->dungeon.dungeonIndex)) return FALSE;
return TRUE;
}
}
@ -323,7 +324,7 @@ bool8 sub_802DADC(void)
if (gUnknown_203B2F8->unk9 == 0) {
_0802DAE8:
return 1;
return TRUE;
}
else {
for( mail = &gUnknown_203B490->unkF0[0], counter = 0; counter < 8; mail++, counter++)
@ -332,7 +333,7 @@ _0802DAE8:
if (((mailType == 0) || (mailType == WONDER_MAIL_TYPE_THANK_YOU)) ||
((WONDER_MAIL_TYPE_THANK_YOU < mailType && (gUnknown_203B2F8->unkA != mail->dungeon.dungeonIndex)))) goto _0802DAE8;
}
return 0;
return FALSE;
}
}
@ -374,7 +375,7 @@ u32 sub_802DBD4(void)
switch(gUnknown_203B2FC->state)
{
case 7:
gUnknown_203B2FC->jobInfo->mailType = 7;
gUnknown_203B2FC->jobInfo->mailType = WONDER_MAIL_TYPE_OKD;
return 3;
case 6:
sub_802DE44();

View File

@ -1,5 +1,6 @@
#include "global.h"
#include "constants/wonder_mail.h"
#include "constants/communication_error_codes.h"
#include "save.h"
#include "memory.h"
#include "text.h"
@ -180,7 +181,7 @@ bool8 sub_8039880(void)
bool8 CreateWonderMailMenu(void)
{
int iVar2;
s32 index;
ResetUnusedInputStruct();
sub_800641C(0,1,1);
@ -188,8 +189,8 @@ bool8 CreateWonderMailMenu(void)
gUnknown_203B3E8 = MemoryAlloc(sizeof(struct unkStruct_203B3E8), 8);
MemoryFill8((u8 *)gUnknown_203B3E8, 0, sizeof(struct unkStruct_203B3E8));
for(iVar2 = 0; iVar2 < PASSWORD_BUFFER_SIZE; iVar2++){
gUnknown_203B3E8->PasswordEntryBuffer[iVar2] = 0;
for(index = 0; index < PASSWORD_BUFFER_SIZE; index++){
gUnknown_203B3E8->PasswordEntryBuffer[index] = 0;
}
gUnknown_203B3E8->wonderMailMethod = WONDER_MAIL_GAME_LINK;
@ -364,21 +365,21 @@ void PrintWonderMailMainMenuError(u32 status)
{
switch(status)
{
case 0:
case COMMS_GOOD:
break;
case 1:
// "Communication Error"
sub_80141B4(gUnknown_80E7914, 0, 0, 0x101);
break;
case 3:
case COMMS_INCORRECT_NUM_SYSTEMS:
// Incorrect number of GBA Systems
sub_80141B4(gUnknown_80E7938, 0, 0, 0x101);
break;
case 2:
case COMMS_NO_RESPONSE:
// No response from friend. Redo from start
sub_80141B4(gUnknown_80E7994, 0, 0, 0x101);
break;
case 4:
case COMMS_DIFFERENT_MODES:
// Sender and receiver in different modes
sub_80141B4(gUnknown_80E79E4, 0, 0, 0x101);
break;
@ -390,7 +391,7 @@ void PrintWonderMailMainMenuError(u32 status)
// "Communication Error"
sub_80141B4(gUnknown_80E7914, 0, 0, 0x101);
break;
case 15: // "No response from your friend. Make sure sender and receiver are ready"
case COMMS_NOT_READY: // "No response from your friend. Make sure sender and receiver are ready"
sub_80141B4(gUnknown_80E7A48, 0, 0, 0x101);
break;
case 6: