I forgor 💀 to EWRAM_DATA_2 these

This commit is contained in:
Kermalis 2023-09-23 19:18:15 -04:00
parent 9e3106a634
commit 64e0409e08
12 changed files with 584 additions and 604 deletions

View File

@ -79,9 +79,6 @@ enum WonderMailRescueStates
// 16 is ??
};
extern unkStruct_203B2F4 *gUnknown_203B2F4;
extern unkStruct_203B2F8 *gUnknown_203B2F8;
u32 sub_802D098(unkSubStruct_203B2F8 *mail);
#endif // GUARD_WONDER_MAIL_3_H

View File

@ -21,7 +21,7 @@
#include "text1.h"
#include "text2.h"
extern struct unkStruct_203B2BC *gUnknown_203B2BC;
static EWRAM_DATA_2 struct unkStruct_203B2BC *sUnknown_203B2BC = {0};
void sub_8027D40(u32, BulkItem *heldItem);
void sub_8027794(void);
@ -62,17 +62,17 @@ void sub_8027EB8(void);
u32 sub_8027074(void)
{
ResetSprites(FALSE);
gUnknown_203B2BC = MemoryAlloc(sizeof(struct unkStruct_203B2BC), 8);
gUnknown_203B2BC->menuAction1 = 0;
gUnknown_203B2BC->menuAction2 = 0;
gUnknown_203B2BC->menuAction3 = 0;
sUnknown_203B2BC = MemoryAlloc(sizeof(struct unkStruct_203B2BC), 8);
sUnknown_203B2BC->menuAction1 = 0;
sUnknown_203B2BC->menuAction2 = 0;
sUnknown_203B2BC->menuAction3 = 0;
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_INIT);
return 1;
}
u32 sub_80270A4(void)
{
switch(gUnknown_203B2BC->state) {
switch(sUnknown_203B2BC->state) {
case FRIEND_AREA_ACTION_MENU_INIT:
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN);
break;
@ -123,16 +123,16 @@ u32 sub_80270A4(void)
void sub_8027168(void)
{
if(gUnknown_203B2BC != NULL)
if(sUnknown_203B2BC != NULL)
{
MemoryFree(gUnknown_203B2BC);
gUnknown_203B2BC = NULL;
MemoryFree(sUnknown_203B2BC);
sUnknown_203B2BC = NULL;
}
}
void SetFriendAreaActionMenuState(u32 newState)
{
gUnknown_203B2BC->state = newState;
sUnknown_203B2BC->state = newState;
sub_802719C();
sub_8027274();
}
@ -141,36 +141,36 @@ void sub_802719C(void)
{
s32 index;
sub_8006518(gUnknown_203B2BC->unk180);
switch(gUnknown_203B2BC->state)
sub_8006518(sUnknown_203B2BC->unk180);
switch(sUnknown_203B2BC->state)
{
case 3:
gUnknown_203B2BC->unk180[3] = sUnknown_80DD74C;
sUnknown_203B2BC->unk180[3] = sUnknown_80DD74C;
CreateFriendActionMenu();
gUnknown_203B2BC->unk180[2] = sUnknown_80DD704;
sub_8012CAC(&gUnknown_203B2BC->unk180[2], gUnknown_203B2BC->menuItems);
sUnknown_203B2BC->unk180[2] = sUnknown_80DD704;
sub_8012CAC(&sUnknown_203B2BC->unk180[2], sUnknown_203B2BC->menuItems);
break;
case 0xC:
sub_80276A8();
gUnknown_203B2BC->unk180[2] = sUnknown_80DD71C;
sub_8012CAC(&gUnknown_203B2BC->unk180[2], gUnknown_203B2BC->menuItems);
sUnknown_203B2BC->unk180[2] = sUnknown_80DD71C;
sub_8012CAC(&sUnknown_203B2BC->unk180[2], sUnknown_203B2BC->menuItems);
break;
default:
for(index = 0; index < 4; index++)
{
gUnknown_203B2BC->unk180[index] = sUnknown_80DD6EC;
sUnknown_203B2BC->unk180[index] = sUnknown_80DD6EC;
}
break;
}
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2BC->unk180, TRUE, TRUE);
sub_800641C(sUnknown_203B2BC->unk180, TRUE, TRUE);
}
void sub_8027274(void)
{
Item slot;
switch (gUnknown_203B2BC->state) {
switch (sUnknown_203B2BC->state) {
case FRIEND_AREA_ACTION_MENU_INIT:
case FRIEND_AREA_ACTION_MENU_EXIT:
break;
@ -181,15 +181,15 @@ void sub_8027274(void)
sub_8023B7C(1);
break;
case 3:
sub_8027D40(3, &gUnknown_203B2BC->item2);
sub_8027D40(3, &sUnknown_203B2BC->item2);
sub_8023DA4();
sub_8012D60(&gUnknown_203B2BC->unk7C, gUnknown_203B2BC->menuItems, 0, gUnknown_203B2BC->unk16C, gUnknown_203B2BC->menuAction1, 2);
sub_8012D60(&sUnknown_203B2BC->unk7C, sUnknown_203B2BC->menuItems, 0, sUnknown_203B2BC->unk16C, sUnknown_203B2BC->menuAction1, 2);
break;
case FRIEND_AREA_ACTION_MENU_SUMMARY:
sub_8024458(gUnknown_203B2BC->targetPoke, 2);
sub_8024458(sUnknown_203B2BC->targetPoke, 2);
break;
case FRIEND_AREA_ACTION_MENU_CHECK_IQ:
sub_801BEEC(gUnknown_203B2BC->targetPoke);
sub_801BEEC(sUnknown_203B2BC->targetPoke);
break;
case 10:
sub_801A5D8(1, 0, NULL, 10);
@ -199,37 +199,37 @@ 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(&sUnknown_203B2BC->unk7C,sUnknown_203B2BC->menuItems,0,sUnknown_203B2BC->unk16C,sUnknown_203B2BC->menuAction2,2);
break;
case 0xd:
HeldItemToSlot(&slot, &gUnknown_203B2BC->itemToGive);
HeldItemToSlot(&slot, &sUnknown_203B2BC->itemToGive);
sub_801B3C0(&slot);
break;
case 0xe:
unk_CopyMoves4To8(gUnknown_203B2BC->moves,gUnknown_203B2BC->pokeStruct->moves);
sub_801EE10(3,gUnknown_203B2BC->targetPoke,gUnknown_203B2BC->moves,0,NULL,0);
unk_CopyMoves4To8(sUnknown_203B2BC->moves,sUnknown_203B2BC->pokeStruct->moves);
sub_801EE10(3,sUnknown_203B2BC->targetPoke,sUnknown_203B2BC->moves,0,NULL,0);
break;
case 0xf:
sub_801F1B0(TRUE, FALSE);
break;
case FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_PROMPT:
sub_8027794();
sub_8014248(sSayFarewellPrompt,0,3,gUnknown_203B2BC->menuItems,0,4,0,0,0x101);
sub_8014248(sSayFarewellPrompt,0,3,sUnknown_203B2BC->menuItems,0,4,0,0,0x101);
break;
case FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_CONFIRM:
sub_8027794();
sub_8014248(sSayFarewellConfirm,0,3,gUnknown_203B2BC->menuItems,0,4,0,0,0x101);
sub_8014248(sSayFarewellConfirm,0,3,sUnknown_203B2BC->menuItems,0,4,0,0,0x101);
break;
case 0x10:
GetLinkedSequence(gUnknown_203B2BC->moveIndex,gUnknown_203B2BC->moves,gUnknown_203B2BC->moveIDs);
sub_801F808(gUnknown_203B2BC->moveIDs);
GetLinkedSequence(sUnknown_203B2BC->moveIndex,sUnknown_203B2BC->moves,sUnknown_203B2BC->moveIDs);
sub_801F808(sUnknown_203B2BC->moveIDs);
break;
case 6:
gUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2;
sUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2;
sub_80141B4(sReturnedToToolbox, 0, 0, 0x101);
break;
case 7:
gUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2;
sUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2;
sub_80141B4(sSentToStorage, 0, 0, 0x101);
break;
}
@ -242,85 +242,85 @@ void CreateFriendActionMenu(void)
PokemonStruct1 *pokeStruct;
loopMax = 0;
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C));
pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke];
MemoryFill16(sUnknown_203B2BC->unk16C,0,sizeof(sUnknown_203B2BC->unk16C));
if((pokeStruct->unk0 >> 1) % 2)
{
gUnknown_203B2BC->menuItems[loopMax].text = sStandBy;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_STANDBY;
sUnknown_203B2BC->menuItems[loopMax].text = sStandBy;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_STANDBY;
if(!sub_8027D9C(pokeStruct))
{
gUnknown_203B2BC->unk16C[loopMax] = 1;
sUnknown_203B2BC->unk16C[loopMax] = 1;
}
loopMax += 1;
if(sub_80023E4(8) && !pokeStruct->isTeamLeader)
{
gUnknown_203B2BC->menuItems[loopMax].text = sMakeLeader;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_MAKE_LEADER;
sUnknown_203B2BC->menuItems[loopMax].text = sMakeLeader;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_MAKE_LEADER;
loopMax += 1;
}
}
else
{
gUnknown_203B2BC->menuItems[loopMax].text = sJoinTeam;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_JOIN_TEAM;
if(!sub_808D750(gUnknown_203B2BC->targetPoke))
sUnknown_203B2BC->menuItems[loopMax].text = sJoinTeam;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_JOIN_TEAM;
if(!sub_808D750(sUnknown_203B2BC->targetPoke))
{
gUnknown_203B2BC->unk16C[loopMax] = 1;
sUnknown_203B2BC->unk16C[loopMax] = 1;
}
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = sSayFarewell;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_SAY_FAREWELL;
sUnknown_203B2BC->menuItems[loopMax].text = sSayFarewell;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_SAY_FAREWELL;
if(!sub_8027DCC(pokeStruct))
{
gUnknown_203B2BC->unk16C[loopMax] = 1;
sUnknown_203B2BC->unk16C[loopMax] = 1;
}
loopMax += 1;
}
gUnknown_203B2BC->menuItems[loopMax].text = sGive;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_GIVE;
sUnknown_203B2BC->menuItems[loopMax].text = sGive;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_GIVE;
if(GetNumberOfFilledInventorySlots() == 0)
{
gUnknown_203B2BC->unk16C[loopMax] = 1;
sUnknown_203B2BC->unk16C[loopMax] = 1;
}
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = sTake;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_TAKE;
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE || gUnknown_203B2BC->item2.id == ITEM_NOTHING)
sUnknown_203B2BC->menuItems[loopMax].text = sTake;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_TAKE;
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE || sUnknown_203B2BC->item2.id == ITEM_NOTHING)
{
gUnknown_203B2BC->unk16C[loopMax] = 1;
sUnknown_203B2BC->unk16C[loopMax] = 1;
}
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = sSummary;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_SUMMARY;
sUnknown_203B2BC->menuItems[loopMax].text = sSummary;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_SUMMARY;
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = sMoves;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_MOVES;
sUnknown_203B2BC->menuItems[loopMax].text = sMoves;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_MOVES;
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = sCheckIQ;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_CHECK_IQ;
sUnknown_203B2BC->menuItems[loopMax].text = sCheckIQ;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_CHECK_IQ;
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = NULL;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE;
sUnknown_203B2BC->menuItems[loopMax].text = NULL;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE;
for(index = 0; index < loopMax; index++)
{
if(gUnknown_203B2BC->unk16C[index] == 0)
if(sUnknown_203B2BC->unk16C[index] == 0)
{
if(gUnknown_203B2BC->menuItems[index].menuAction == gUnknown_203B2BC->menuAction1)
if(sUnknown_203B2BC->menuItems[index].menuAction == sUnknown_203B2BC->menuAction1)
return;
}
}
for(index = 0; index < loopMax; index++)
{
if(gUnknown_203B2BC->unk16C[index] == 0)
if(sUnknown_203B2BC->unk16C[index] == 0)
{
gUnknown_203B2BC->menuAction1 = gUnknown_203B2BC->menuItems[index].menuAction;
sUnknown_203B2BC->menuAction1 = sUnknown_203B2BC->menuItems[index].menuAction;
break;
}
}
@ -332,33 +332,33 @@ void sub_80276A8(void)
s32 loopMax;
loopMax = 0;
MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C));
gUnknown_203B2BC->menuItems[loopMax].text = sGive;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_GIVE;
MemoryFill16(sUnknown_203B2BC->unk16C,0,sizeof(sUnknown_203B2BC->unk16C));
sUnknown_203B2BC->menuItems[loopMax].text = sGive;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_GIVE;
if (GetNumberOfFilledInventorySlots() == 0) {
gUnknown_203B2BC->unk16C[loopMax] = 1;
sUnknown_203B2BC->unk16C[loopMax] = 1;
}
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = gCommonInfo[0];
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_INFO;
sUnknown_203B2BC->menuItems[loopMax].text = gCommonInfo[0];
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_INFO;
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = 0;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE;
sUnknown_203B2BC->menuItems[loopMax].text = 0;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE;
for(index = 0; index < loopMax; index++)
{
if(gUnknown_203B2BC->unk16C[index] == 0)
if(sUnknown_203B2BC->unk16C[index] == 0)
{
if(gUnknown_203B2BC->menuItems[index].menuAction == gUnknown_203B2BC->menuAction2)
if(sUnknown_203B2BC->menuItems[index].menuAction == sUnknown_203B2BC->menuAction2)
return;
}
}
for(index = 0; index < loopMax; index++)
{
if(gUnknown_203B2BC->unk16C[index] == 0)
if(sUnknown_203B2BC->unk16C[index] == 0)
{
gUnknown_203B2BC->menuAction2 = gUnknown_203B2BC->menuItems[index].menuAction;
sUnknown_203B2BC->menuAction2 = sUnknown_203B2BC->menuItems[index].menuAction;
break;
}
}
@ -368,15 +368,15 @@ void sub_8027794(void)
{
s32 loopMax = 0;
MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C));
gUnknown_203B2BC->menuItems[loopMax].text = gCommonYes[0];
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_YES;
MemoryFill16(sUnknown_203B2BC->unk16C,0,sizeof(sUnknown_203B2BC->unk16C));
sUnknown_203B2BC->menuItems[loopMax].text = gCommonYes[0];
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_YES;
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = gCommonNo[0];
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NO;
sUnknown_203B2BC->menuItems[loopMax].text = gCommonNo[0];
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NO;
loopMax += 1;
gUnknown_203B2BC->menuItems[loopMax].text = NULL;
gUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE;
sUnknown_203B2BC->menuItems[loopMax].text = NULL;
sUnknown_203B2BC->menuItems[loopMax].menuAction = FRIEND_AREA_ACTION_MENU_ACTION_NONE;
}
void sub_80277FC(void)
@ -388,19 +388,19 @@ void sub_80277FC(void)
case 1:
break;
case 3:
gUnknown_203B2BC->targetPoke = sub_8023B44();
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
gUnknown_203B2BC->pokeStruct = pokeStruct;
gUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader;
PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->item2);
sUnknown_203B2BC->targetPoke = sub_8023B44();
pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke];
sUnknown_203B2BC->pokeStruct = pokeStruct;
sUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader;
PeekPokemonItem(sUnknown_203B2BC->targetPoke,&sUnknown_203B2BC->item2);
SetFriendAreaActionMenuState(3);
break;
case 4:
gUnknown_203B2BC->targetPoke = sub_8023B44();
pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
gUnknown_203B2BC->pokeStruct = pokeStruct;
gUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader;
PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->item2);
sUnknown_203B2BC->targetPoke = sub_8023B44();
pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke];
sUnknown_203B2BC->pokeStruct = pokeStruct;
sUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader;
PeekPokemonItem(sUnknown_203B2BC->targetPoke,&sUnknown_203B2BC->item2);
SetFriendAreaActionMenuState(4);
break;
case 2:
@ -419,16 +419,16 @@ void sub_80278B4(void)
menuAction = 0;
sub_8023A94(FALSE);
if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) {
gUnknown_203B2BC->menuAction1 = menuAction;
if ((sub_8012FD8(&sUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&sUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) {
sUnknown_203B2BC->menuAction1 = menuAction;
}
switch(menuAction) {
case FRIEND_AREA_ACTION_MENU_ACTION_JOIN_TEAM:
if (sub_808D750(gUnknown_203B2BC->targetPoke)) {
if (sub_808D750(sUnknown_203B2BC->targetPoke)) {
#ifdef NONMATCHING
pokeStruct1 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
pokeStruct1 = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke];
#else
register size_t offset asm("r1") = offsetof(unkStruct_203B45C, pokemon[gUnknown_203B2BC->targetPoke]);
register size_t offset asm("r1") = offsetof(unkStruct_203B45C, pokemon[sUnknown_203B2BC->targetPoke]);
PokemonStruct1* p = gRecruitedPokemonRef->pokemon;
size_t addr = offset + (size_t)p;
pokeStruct1 = (PokemonStruct1*)addr;
@ -440,13 +440,13 @@ void sub_80278B4(void)
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN_2);
break;
case FRIEND_AREA_ACTION_MENU_ACTION_STANDBY:
gUnknown_203B2BC->pokeStruct->unk0 &= ~(FLAG_ON_TEAM);
sUnknown_203B2BC->pokeStruct->unk0 &= ~(FLAG_ON_TEAM);
nullsub_104();
sub_808ED00();
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN_2);
break;
case FRIEND_AREA_ACTION_MENU_ACTION_MAKE_LEADER:
pokeStruct2 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
pokeStruct2 = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke];
playerStruct = GetPlayerPokemonStruct();
if (!pokeStruct2->isTeamLeader) {
playerStruct->isTeamLeader = FALSE;
@ -467,13 +467,13 @@ void sub_80278B4(void)
break;
case FRIEND_AREA_ACTION_MENU_ACTION_TAKE:
PlaySound(0x14d);
if (gUnknown_203B2BC->item2.id != ITEM_NOTHING) {
AddHeldItemToInventory(&gUnknown_203B2BC->item2);
if (sUnknown_203B2BC->item2.id != ITEM_NOTHING) {
AddHeldItemToInventory(&sUnknown_203B2BC->item2);
}
FillInventoryGaps();
gUnknown_203B2BC->item2.id = ITEM_NOTHING;
gUnknown_203B2BC->item2.quantity = 0;
GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->item2);
sUnknown_203B2BC->item2.id = ITEM_NOTHING;
sUnknown_203B2BC->item2.quantity = 0;
GivePokemonItem(sUnknown_203B2BC->targetPoke,&sUnknown_203B2BC->item2);
nullsub_104();
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN_2);
break;
@ -520,7 +520,7 @@ void sub_8027A5C(void)
}
static inline bool8 sub_8027A78_sub(void) {
if (gUnknown_203B2BC->pokeStruct->dungeonLocation.id == DUNGEON_HOWLING_FOREST_2 || gUnknown_203B2BC->pokeStruct->dungeonLocation.id == DUNGEON_POKEMON_SQUARE)
if (sUnknown_203B2BC->pokeStruct->dungeonLocation.id == DUNGEON_HOWLING_FOREST_2 || sUnknown_203B2BC->pokeStruct->dungeonLocation.id == DUNGEON_POKEMON_SQUARE)
return TRUE;
else
return FALSE;
@ -543,7 +543,7 @@ void sub_8027A78(void)
else
{
sub_8027EB8();
sub_808D31C(gUnknown_203B2BC->pokeStruct);
sub_808D31C(sUnknown_203B2BC->pokeStruct);
}
break;
}
@ -563,7 +563,7 @@ void sub_8027AE4(void)
break;
case FRIEND_AREA_ACTION_MENU_ACTION_YES:
sub_8027EB8();
sub_808D31C(gUnknown_203B2BC->pokeStruct);
sub_808D31C(sUnknown_203B2BC->pokeStruct);
break;
}
}
@ -574,15 +574,15 @@ void sub_8027B28(void)
switch(sub_801A6E8(TRUE))
{
case 3:
gUnknown_203B2BC->id = sub_801A8AC();
gUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].id;
gUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].quantity;
sUnknown_203B2BC->id = sub_801A8AC();
sUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[sUnknown_203B2BC->id].id;
sUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[sUnknown_203B2BC->id].quantity;
SetFriendAreaActionMenuState(0xc);
break;
case 4:
gUnknown_203B2BC->id = sub_801A8AC();
gUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].id;
gUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].quantity;
sUnknown_203B2BC->id = sub_801A8AC();
sUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[sUnknown_203B2BC->id].id;
sUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[sUnknown_203B2BC->id].quantity;
sub_8099690(0);
SetFriendAreaActionMenuState(0xd);
break;
@ -602,19 +602,19 @@ void sub_8027BD8(void)
menuAction = 0;
sub_801A6E8(FALSE);
if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) {
gUnknown_203B2BC->menuAction2 = menuAction;
if ((sub_8012FD8(&sUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&sUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) {
sUnknown_203B2BC->menuAction2 = menuAction;
}
switch(menuAction)
{
case FRIEND_AREA_ACTION_MENU_ACTION_GIVE:
PlaySound(0x14d);
ShiftItemsDownFrom(gUnknown_203B2BC->id);
ShiftItemsDownFrom(sUnknown_203B2BC->id);
FillInventoryGaps();
if (gUnknown_203B2BC->item2.id != ITEM_NOTHING) {
AddHeldItemToInventory(&gUnknown_203B2BC->item2);
if (sUnknown_203B2BC->item2.id != ITEM_NOTHING) {
AddHeldItemToInventory(&sUnknown_203B2BC->item2);
}
GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->itemToGive);
GivePokemonItem(sUnknown_203B2BC->targetPoke,&sUnknown_203B2BC->itemToGive);
sub_801A928();
nullsub_104();
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_MAIN_2);
@ -649,8 +649,8 @@ void sub_8027CA0(void)
{
case 3:
case 4:
gUnknown_203B2BC->moveIndex = sub_801F194();
gUnknown_203B2BC->moveID = gUnknown_203B2BC->moves[gUnknown_203B2BC->moveIndex].id;
sUnknown_203B2BC->moveIndex = sub_801F194();
sUnknown_203B2BC->moveID = sUnknown_203B2BC->moves[sUnknown_203B2BC->moveIndex].id;
SetFriendAreaActionMenuState(0x10);
break;
case 2:
@ -683,7 +683,7 @@ void FriendAreaActionMenu_GotoFallbackState(void)
s32 temp;
if(sub_80144A4(&temp) == 0)
{
SetFriendAreaActionMenuState(gUnknown_203B2BC->fallbackState);
SetFriendAreaActionMenuState(sUnknown_203B2BC->fallbackState);
}
}
@ -782,26 +782,26 @@ bool8 sub_8027E4C(PokemonStruct1 *pokeStruct)
void sub_8027EB8(void)
{
switch(sub_8027E18(gUnknown_203B2BC->pokeStruct))
switch(sub_8027E18(sUnknown_203B2BC->pokeStruct))
{
case 1:
PlaySound(0x14d);
AddHeldItemToInventory(&gUnknown_203B2BC->item2);
AddHeldItemToInventory(&sUnknown_203B2BC->item2);
FillInventoryGaps();
gUnknown_203B2BC->item2.id = ITEM_NOTHING;
gUnknown_203B2BC->item2.quantity = 0;
GivePokemonItem(gUnknown_203B2BC->targetPoke, &gUnknown_203B2BC->item2);
sUnknown_203B2BC->item2.id = ITEM_NOTHING;
sUnknown_203B2BC->item2.quantity = 0;
GivePokemonItem(sUnknown_203B2BC->targetPoke, &sUnknown_203B2BC->item2);
SetFriendAreaActionMenuState(6);
break;
case 2:
PlaySound(0x14d);
if(IsThrowableItem(gUnknown_203B2BC->item2.id))
gTeamInventoryRef->teamStorage[gUnknown_203B2BC->item2.id] += gUnknown_203B2BC->item2.quantity;
if(IsThrowableItem(sUnknown_203B2BC->item2.id))
gTeamInventoryRef->teamStorage[sUnknown_203B2BC->item2.id] += sUnknown_203B2BC->item2.quantity;
else
gTeamInventoryRef->teamStorage[gUnknown_203B2BC->item2.id] += 1;
gUnknown_203B2BC->item2.id = ITEM_NOTHING;
gUnknown_203B2BC->item2.quantity = 0;
GivePokemonItem(gUnknown_203B2BC->targetPoke, &gUnknown_203B2BC->item2);
gTeamInventoryRef->teamStorage[sUnknown_203B2BC->item2.id] += 1;
sUnknown_203B2BC->item2.id = ITEM_NOTHING;
sUnknown_203B2BC->item2.quantity = 0;
GivePokemonItem(sUnknown_203B2BC->targetPoke, &sUnknown_203B2BC->item2);
SetFriendAreaActionMenuState(7);
break;
case 0:

View File

@ -22,7 +22,7 @@
#include "text2.h"
#include "wonder_mail.h"
extern WonderMailStruct_203B2C4 *gUnknown_203B2C4;
static EWRAM_DATA_2 WonderMailStruct_203B2C4 *sUnknown_203B2C4 = {0};
#define THANK_YOU_MAIL_MAIN_MENU 0
#define ANYTHING_ELSE_THANK_YOU_MAIN_MENU 1
@ -236,50 +236,50 @@ u32 CreateThankYouMailPelipper(void)
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
gUnknown_203B2C4 = MemoryAlloc(sizeof(WonderMailStruct_203B2C4), 8);
MemoryFill8((u8 *)gUnknown_203B2C4, 0, sizeof(WonderMailStruct_203B2C4));
sUnknown_203B2C4 = MemoryAlloc(sizeof(WonderMailStruct_203B2C4), 8);
MemoryFill8((u8 *)sUnknown_203B2C4, 0, sizeof(WonderMailStruct_203B2C4));
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER);
monName = GetMonSpecies(MONSTER_PELIPPER);
strcpy(gAvailablePokemonNames, monName);
faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER);
gUnknown_203B2C4->faceFile = faceFile;
gUnknown_203B2C4->faceData = faceFile->data;
gUnknown_203B2C4->unk42C = 0;
gUnknown_203B2C4->unk42D = 0;
gUnknown_203B2C4->unk42E = 0;
gUnknown_203B2C4->unk428 = 2;
gUnknown_203B2C4->unk42A = 8;
sUnknown_203B2C4->faceFile = faceFile;
sUnknown_203B2C4->faceData = faceFile->data;
sUnknown_203B2C4->unk42C = 0;
sUnknown_203B2C4->unk42D = 0;
sUnknown_203B2C4->unk42E = 0;
sUnknown_203B2C4->unk428 = 2;
sUnknown_203B2C4->unk42A = 8;
for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){
gUnknown_203B2C4->passwordBuffer[counter] = 0;
sUnknown_203B2C4->passwordBuffer[counter] = 0;
}
gUnknown_203B2C4->wonderMailMethod = WONDER_MAIL_GAME_LINK;
gUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND;
sUnknown_203B2C4->wonderMailMethod = WONDER_MAIL_GAME_LINK;
sUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND;
index = GetFirstIndexofMailType(6);
if (index != -1) {
mail = GetMailatIndex(index);
gUnknown_203B2C4->unk41C = mail->item;
gUnknown_203B2C4->mailIndex = index;
gUnknown_203B2C4->unk430 = mail->unk10.unk10;
sUnknown_203B2C4->unk41C = mail->item;
sUnknown_203B2C4->mailIndex = index;
sUnknown_203B2C4->unk430 = mail->unk10.unk10;
SetThankYouMailMenuState(5);
}
else {
gUnknown_203B2C4->unk41C = gUnknown_80DED44;
gUnknown_203B2C4->mailIndex = -1;
sUnknown_203B2C4->unk41C = gUnknown_80DED44;
sUnknown_203B2C4->mailIndex = -1;
SetThankYouMailMenuState(THANK_YOU_MAIL_MAIN_MENU);
}
gUnknown_203B2C4->fallbackState = 0x2b;
sUnknown_203B2C4->fallbackState = 0x2b;
return 1;
}
u32 ThankYouMailPelipperCallback(void)
{
switch(gUnknown_203B2C4->state) {
switch(sUnknown_203B2C4->state) {
case 5:
sub_802AB7C();
break;
@ -409,11 +409,11 @@ u32 ThankYouMailPelipperCallback(void)
void CleanThankYouMailPelipper(void)
{
if(gUnknown_203B2C4 != NULL)
if(sUnknown_203B2C4 != NULL)
{
CloseFile(gUnknown_203B2C4->faceFile);
MemoryFree(gUnknown_203B2C4);
gUnknown_203B2C4 = NULL;
CloseFile(sUnknown_203B2C4->faceFile);
MemoryFree(sUnknown_203B2C4);
sUnknown_203B2C4 = NULL;
sub_8030DE4();
sub_801B450();
sub_803084C();
@ -437,34 +437,34 @@ void PrintThankYouMailLinkError(u32 errorCode)
{
switch(errorCode) {
case COMMS_INCORRECT_NUM_SYSTEMS:
sub_80141B4(gUnknown_80DEF28, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DEF28, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case COMMS_DIFFERENT_MODES:
sub_80141B4(gUnknown_80DEF80, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DEF80, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case COMMS_NO_ROOM_STORAGE:
sub_80141B4(gUnknown_80DEFDC, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DEFDC, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case COMMS_DUPLICATE_MAIL:
sub_80141B4(gUnknown_80DF044, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF044, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case COMMS_NOT_ELIGIBLE_1:
sub_80141B4(gUnknown_80DF0A0, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case COMMS_NOT_ELIGIBLE_2:
sub_80141B4(gUnknown_80DF0A0, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case COMMS_NO_ROOM_MAIL:
sub_80141B4(gUnknown_80DF0E0, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF0E0, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case 1:
case COMMS_NO_RESPONSE:
case 5:
case 14:
sub_80141B4(gUnknown_80DEF04, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DEF04, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case COMMS_NOT_READY:
sub_80141B4(gUnknown_80DF138, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF138, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case COMMS_GOOD:
default:
@ -479,21 +479,21 @@ void DisplayThankYouMailCommsOutcome(void)
if (sub_80144A4(&auStack20) != 0) {
return;
}
MemoryFill8((u8 *)&gUnknown_203B2C4->unk41C, 0, sizeof(Item));
gUnknown_203B2C4->unk41C.id = ITEM_NOTHING;
gUnknown_203B2C4->unk41C.quantity = 1;
gUnknown_203B2C4->unk41C.flags = 0;
if (gUnknown_203B2C4->linkError == COMMS_GOOD) {
switch(gUnknown_203B2C4->unk40)
MemoryFill8((u8 *)&sUnknown_203B2C4->unk41C, 0, sizeof(Item));
sUnknown_203B2C4->unk41C.id = ITEM_NOTHING;
sUnknown_203B2C4->unk41C.quantity = 1;
sUnknown_203B2C4->unk41C.flags = 0;
if (sUnknown_203B2C4->linkError == COMMS_GOOD) {
switch(sUnknown_203B2C4->unk40)
{
case 6:
switch(gUnknown_203B2C4->wonderMailMethod)
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
case WONDER_MAIL_PASSWORD:
case 6:
// "Thank-You Mail has been sent"
sub_80141B4(gUnknown_80DF194, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF194, 0, &sUnknown_203B2C4->faceFile, 0x10d);
break;
case 4:
default:
@ -510,7 +510,7 @@ void DisplayThankYouMailCommsOutcome(void)
}
else
{
PrintThankYouMailLinkError(gUnknown_203B2C4->linkError);
PrintThankYouMailLinkError(sUnknown_203B2C4->linkError);
SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR);
}
}
@ -523,7 +523,7 @@ void sub_802A050(void)
case 2:
sub_8031E10();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C4->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE);
SetThankYouMailMenuState(0x1B);
break;
case 1:
@ -563,16 +563,16 @@ void sub_802A0C8(void)
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
case 3:
gUnknown_203B2C4->mailIndex = sub_80307EC();
sUnknown_203B2C4->mailIndex = sub_80307EC();
SetThankYouMailMenuState(0x11);
break;
case 4:
gUnknown_203B2C4->fallbackState = 0x10;
gUnknown_203B2C4->mailIndex = sub_80307EC();
sub_8006518(gUnknown_203B2C4->unk3BC);
sUnknown_203B2C4->fallbackState = 0x10;
sUnknown_203B2C4->mailIndex = sub_80307EC();
sub_8006518(sUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8030D40(gUnknown_203B2C4->mailIndex,0);
sub_8030D40(sUnknown_203B2C4->mailIndex,0);
SetThankYouMailMenuState(0x12);
break;
}
@ -593,8 +593,8 @@ void sub_802A174(void)
menuAction = -1;
sub_8030768(0);
if (sub_8012FD8(&gUnknown_203B2C4->unk21C[3]) == 0) {
sub_8013114(&gUnknown_203B2C4->unk21C[3], &menuAction);
if (sub_8012FD8(&sUnknown_203B2C4->unk21C[3]) == 0) {
sub_8013114(&sUnknown_203B2C4->unk21C[3], &menuAction);
}
switch(menuAction)
@ -604,16 +604,16 @@ void sub_802A174(void)
SetThankYouMailMenuState(0xe);
break;
case 0xC:
gUnknown_203B2C4->fallbackState = 0x2b;
sub_8006518(gUnknown_203B2C4->unk3BC);
sUnknown_203B2C4->fallbackState = 0x2b;
sub_8006518(sUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8030D40(gUnknown_203B2C4->mailIndex,0);
sub_8030D40(sUnknown_203B2C4->mailIndex,0);
SetThankYouMailMenuState(0x12);
break;
case 0:
case 0xD:
sub_8035CC0(gUnknown_203B2C4->unk35C,2);
sub_8035CC0(sUnknown_203B2C4->unk35C,2);
sub_8030810(1);
SetThankYouMailMenuState(0x10);
default:
@ -629,14 +629,14 @@ void sub_802A230(void)
case 3:
sub_8030DE4();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C4->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE);
sub_803092C();
if (gUnknown_203B2C4->fallbackState == 0x2b) {
sub_8035CF4(gUnknown_203B2C4->unk21C, 3, TRUE);
if (sUnknown_203B2C4->fallbackState == 0x2b) {
sub_8035CF4(sUnknown_203B2C4->unk21C, 3, TRUE);
SetThankYouMailMenuState(0x11);
}
else {
SetThankYouMailMenuState(gUnknown_203B2C4->fallbackState);
SetThankYouMailMenuState(sUnknown_203B2C4->fallbackState);
}
break;
default:
@ -647,9 +647,9 @@ void sub_802A230(void)
void sub_802A28C(void)
{
gUnknown_203B2C4->unk41C.id = ITEM_NOTHING;
gUnknown_203B2C4->unk41C.quantity = 1;
gUnknown_203B2C4->unk41C.flags = 0;
sUnknown_203B2C4->unk41C.id = ITEM_NOTHING;
sUnknown_203B2C4->unk41C.quantity = 1;
sUnknown_203B2C4->unk41C.flags = 0;
switch(sub_801CA08(TRUE))
{
@ -658,16 +658,16 @@ void sub_802A28C(void)
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
case 3:
gUnknown_203B2C4->unk41C.id = sub_801CB24();
sUnknown_203B2C4->unk41C.id = sub_801CB24();
SetThankYouMailMenuState(0x14);
break;
case 4:
gUnknown_203B2C4->fallbackState = 0x13;
gUnknown_203B2C4->unk41C.id = sub_801CB24();
sub_8006518(gUnknown_203B2C4->unk3BC);
sUnknown_203B2C4->fallbackState = 0x13;
sUnknown_203B2C4->unk41C.id = sub_801CB24();
sub_8006518(sUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_801B3C0(&gUnknown_203B2C4->unk41C);
sub_801B3C0(&sUnknown_203B2C4->unk41C);
SetThankYouMailMenuState(SHOW_ITEM_TO_SEND_INFO);
break;
}
@ -681,14 +681,14 @@ void sub_802A33C(void)
case 3:
sub_801B450();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C4->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE);
sub_801CB5C(TRUE);
if (gUnknown_203B2C4->fallbackState == 0x2b) {
sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE);
if (sUnknown_203B2C4->fallbackState == 0x2b) {
sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE);
SetThankYouMailMenuState(0x14);
}
else {
SetThankYouMailMenuState(gUnknown_203B2C4->fallbackState);
SetThankYouMailMenuState(sUnknown_203B2C4->fallbackState);
}
break;
case 1:
@ -703,8 +703,8 @@ void sub_802A39C(void)
menuAction = -1;
sub_801CA08(FALSE);
if (sub_8012FD8(&gUnknown_203B2C4->unk21C[3]) == 0) {
sub_8013114(&gUnknown_203B2C4->unk21C[3], &menuAction);
if (sub_8012FD8(&sUnknown_203B2C4->unk21C[3]) == 0) {
sub_8013114(&sUnknown_203B2C4->unk21C[3], &menuAction);
}
switch(menuAction)
@ -714,16 +714,16 @@ void sub_802A39C(void)
SetThankYouMailMenuState(CONFIRM_ITEM_TO_SEND);
break;
case 0xC:
gUnknown_203B2C4->fallbackState = 0x2b;
sub_8006518(gUnknown_203B2C4->unk3BC);
sUnknown_203B2C4->fallbackState = 0x2b;
sub_8006518(sUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_801B3C0(&gUnknown_203B2C4->unk41C);
sub_801B3C0(&sUnknown_203B2C4->unk41C);
SetThankYouMailMenuState(SHOW_ITEM_TO_SEND_INFO);
break;
case 0:
case 0xD:
sub_8035CC0(gUnknown_203B2C4->unk35C, 3);
sub_8035CC0(sUnknown_203B2C4->unk35C, 3);
sub_801CCD8();
SetThankYouMailMenuState(0x13);
default:
@ -799,18 +799,18 @@ void HandleThankYouMailPasswordMenu(void)
switch(return_var)
{
case 3:
switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE,gUnknown_203B2C4->passwordBuffer,&mail1))
switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE,sUnknown_203B2C4->passwordBuffer,&mail1))
{
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
sub_8014248(gUnknown_80DF1C0, 0, 7, gUnknown_80DEE44, 0, 4, 0, &gUnknown_203B2C4->faceFile, 0xc);
sub_8014248(gUnknown_80DF1C0, 0, 7, gUnknown_80DEE44, 0, 4, 0, &sUnknown_203B2C4->faceFile, 0xc);
SetThankYouMailMenuState(THANK_YOU_PASSWORD_WRONG);
break;
case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL:
sub_80141B4(gUnknown_80DF208, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF208, 0, &sUnknown_203B2C4->faceFile, 0x10d);
SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR);
break;
case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL:
sub_80141B4(gUnknown_80DF0A0, 0, &gUnknown_203B2C4->faceFile, 0x10d);
sub_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d);
SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR);
break;
case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS:
@ -818,7 +818,7 @@ void HandleThankYouMailPasswordMenu(void)
mail = GetMailatIndex(mailIndex);
*mail = mail1;
mail->mailType = 6;
gUnknown_203B2C4->unk430 = mail1.unk10.unk10;
sUnknown_203B2C4->unk430 = mail1.unk10.unk10;
SetThankYouMailMenuState(THANK_YOU_PASSWORD_SUCCESS);
break;
default:
@ -830,7 +830,7 @@ void HandleThankYouMailPasswordMenu(void)
case 2:
sub_80155F0();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C4->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE);
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
}
@ -907,7 +907,7 @@ void sub_802A75C(void)
{
case 7:
// NOTE: if statement is needed to match
if(gUnknown_203B2C4->wonderMailMode)
if(sUnknown_203B2C4->wonderMailMode)
SetThankYouMailMenuState(COMMUNICATING_THANK_YOU_MAIL);
else
SetThankYouMailMenuState(COMMUNICATING_THANK_YOU_MAIL);
@ -928,12 +928,12 @@ void HandleConfirmItemtoSendMenu(void)
switch(menuAction)
{
case 7:
mail = GetMailatIndex(gUnknown_203B2C4->mailIndex);
if(gUnknown_203B2C4->unk41C.id != ITEM_NOTHING)
mail = GetMailatIndex(sUnknown_203B2C4->mailIndex);
if(sUnknown_203B2C4->unk41C.id != ITEM_NOTHING)
{
mail->item = gUnknown_203B2C4->unk41C;
mail->item = sUnknown_203B2C4->unk41C;
}
gTeamInventoryRef->teamStorage[gUnknown_203B2C4->unk41C.id]--;
gTeamInventoryRef->teamStorage[sUnknown_203B2C4->unk41C.id]--;
SetThankYouMailMenuState(0x29);
break;
case 8:
@ -965,7 +965,7 @@ void sub_802A850(void)
if(!WriteSavePak())
{
FinishWriteSavePak();
switch(gUnknown_203B2C4->wonderMailMethod)
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
case 4:
@ -996,7 +996,7 @@ void sub_802A8BC(void)
switch(menuAction)
{
case 0xA:
switch(gUnknown_203B2C4->wonderMailMethod)
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
case 4:
@ -1032,7 +1032,7 @@ void sub_802A910(void)
}
break;
case 0xA:
switch(gUnknown_203B2C4->wonderMailMethod)
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
case 4:
@ -1067,7 +1067,7 @@ void sub_802A9A8(void)
switch(menuAction)
{
case 0x7:
switch(gUnknown_203B2C4->wonderMailMethod)
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
case 4:
@ -1113,8 +1113,8 @@ void HandleMailCommunicationMenu(void)
case WONDER_MAIL_GAME_LINK:
case 4:
case WONDER_MAIL_PASSWORD:
gUnknown_203B2C4->wonderMailMethod = menuAction;
switch(gUnknown_203B2C4->wonderMailMode)
sUnknown_203B2C4->wonderMailMethod = menuAction;
switch(sUnknown_203B2C4->wonderMailMode)
{
case WONDER_MAIL_MODE_SEND:
mail = GetMailatIndex(GetFirstIndexofMailType(WONDER_MAIL_TYPE_THANK_YOU));
@ -1128,7 +1128,7 @@ void HandleMailCommunicationMenu(void)
}
break;
default:
if(gUnknown_203B2C4->wonderMailMethod == WONDER_MAIL_PASSWORD)
if(sUnknown_203B2C4->wonderMailMethod == WONDER_MAIL_PASSWORD)
{
SetThankYouMailMenuState(PROMPT_THANK_YOU_PASSWORD);
}
@ -1172,8 +1172,8 @@ void HandleThankYouMailPelipperMainMenu(void)
switch(menuAction)
{
case 1:
gUnknown_203B2C4->unk40 = 6;
gUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND;
sUnknown_203B2C4->unk40 = 6;
sUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND;
if(CountMailType(5) == 0)
{
SetThankYouMailMenuState(NO_THANK_YOU_MAIL);
@ -1184,8 +1184,8 @@ void HandleThankYouMailPelipperMainMenu(void)
}
break;
case 2:
gUnknown_203B2C4->unk40 = 7;
gUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_RECEIVE;
sUnknown_203B2C4->unk40 = 7;
sUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_RECEIVE;
SetThankYouMailMenuState(SELECT_THANK_YOU_MAIL_COMMS);
break;
case 0:
@ -1224,7 +1224,7 @@ void sub_802AB98(void)
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER);
monName = GetMonSpecies(MONSTER_PELIPPER);
strcpy(gAvailablePokemonNames, monName);
DeleteMailAtIndex(GetMailIndex(6, gUnknown_203B2C4->unk430));
DeleteMailAtIndex(GetMailIndex(6, sUnknown_203B2C4->unk430));
SetThankYouMailMenuState(0x24);
break;
default:
@ -1248,20 +1248,20 @@ void UpdateThankYouMailText(void)
s32 linkStatus;
unkStruct_203B480 *mail;
switch(gUnknown_203B2C4->state) {
switch(sUnknown_203B2C4->state) {
case 5:
pokeStruct = GetPlayerPokemonStruct();
sub_80922B4(buffer1,pokeStruct->name, POKEMON_NAME_LENGTH);
sprintfStatic(gUnknown_203B2C4->formattedString,gUnknown_80DF250,buffer1);
sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d);
sprintfStatic(sUnknown_203B2C4->formattedString,gUnknown_80DF250,buffer1);
sub_80141B4(sUnknown_203B2C4->formattedString,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case 0xe:
// Is it OK to send this Thank-You Mail?
sub_8014248(gUnknown_80DF304,0,7,gUnknown_80DEE60,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF304,0,7,gUnknown_80DEE60,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case PROMPT_THANK_YOU_TO_SEND:
// Please choose the Thank-You Mail that you want to send to your friend
sub_80141B4(gUnknown_80DF330,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF330,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case 0x10:
if (sub_8030894() != 0)
@ -1271,10 +1271,10 @@ void UpdateThankYouMailText(void)
sub_80306A8(WONDER_MAIL_TYPE_THANK_YOU,0,0,6);
break;
case 0x11:
sub_8006518(gUnknown_203B2C4->unk35C);
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,FALSE);
sub_8006518(sUnknown_203B2C4->unk35C);
SetMenuItems(sUnknown_203B2C4->unk21C,sUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,FALSE);
sub_803092C();
sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE);
sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE);
break;
case 0x13:
if (sub_801D008() != NULL)
@ -1287,41 +1287,41 @@ void UpdateThankYouMailText(void)
}
break;
case 0x14:
sub_8006518(gUnknown_203B2C4->unk35C);
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,FALSE);
sub_8006518(sUnknown_203B2C4->unk35C);
SetMenuItems(sUnknown_203B2C4->unk21C,sUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,FALSE);
sub_801CCD8();
sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE);
sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE);
break;
case THANK_YOU_MAIL_COMMS_FINISHED:
gUnknown_203B2C4->linkError = COMMS_GOOD;
sUnknown_203B2C4->linkError = COMMS_GOOD;
sub_8011830();
linkStatus = sub_8037B28(gUnknown_203B2C4->unk40);
gUnknown_203B2C4->linkError = linkStatus;
linkStatus = sub_8037B28(sUnknown_203B2C4->unk40);
sUnknown_203B2C4->linkError = linkStatus;
if (linkStatus == COMMS_GOOD)
{
switch(gUnknown_203B2C4->unk40)
switch(sUnknown_203B2C4->unk40)
{
case 6:
MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(unkStruct_203B480));
gUnknown_203B2C4->unk1B8 = *GetMailatIndex(gUnknown_203B2C4->mailIndex);
gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
MemoryFill8((u8 *)&sUnknown_203B2C4->unk1B8,0, sizeof(unkStruct_203B480));
sUnknown_203B2C4->unk1B8 = *GetMailatIndex(sUnknown_203B2C4->mailIndex);
sUnknown_203B2C4->linkError = sub_8037D64(sUnknown_203B2C4->unk40,&sUnknown_203B2C4->unk1B8,&sUnknown_203B2C4->unk1E8);
break;
case 7:
MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(unkStruct_203B480));
MemoryFill8((u8 *)&gUnknown_203B2C4->unk1E8,0, sizeof(unkStruct_203B480));
gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
MemoryFill8((u8 *)&sUnknown_203B2C4->unk1B8,0, sizeof(unkStruct_203B480));
MemoryFill8((u8 *)&sUnknown_203B2C4->unk1E8,0, sizeof(unkStruct_203B480));
sUnknown_203B2C4->linkError = sub_8037D64(sUnknown_203B2C4->unk40,&sUnknown_203B2C4->unk1B8,&sUnknown_203B2C4->unk1E8);
break;
}
if (gUnknown_203B2C4->linkError == COMMS_GOOD){
switch(gUnknown_203B2C4->unk40){
if (sUnknown_203B2C4->linkError == COMMS_GOOD){
switch(sUnknown_203B2C4->unk40){
case 6:
case 7:
gUnknown_203B2C4->linkError = sub_80381F4(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
sUnknown_203B2C4->linkError = sub_80381F4(sUnknown_203B2C4->unk40,&sUnknown_203B2C4->unk1B8,&sUnknown_203B2C4->unk1E8);
if ( sub_800D588() != '\0') {
gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1E8.unk10.unk10;
sUnknown_203B2C4->unk430 = sUnknown_203B2C4->unk1E8.unk10.unk10;
}
else {
gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1B8.unk10.unk10;
sUnknown_203B2C4->unk430 = sUnknown_203B2C4->unk1B8.unk10.unk10;
}
break;
}
@ -1331,44 +1331,44 @@ void UpdateThankYouMailText(void)
break;
case PROMPT_THANK_YOU_PASSWORD:
// OK. Please enter the Thank-You Mail Password
sub_80141B4(gUnknown_80DF380,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF380,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case PROCESS_THANK_YOU_PASSWORD:
sub_8006518(gUnknown_203B2C4->unk3BC);
sub_8006518(sUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_80151C0(4,gUnknown_203B2C4->passwordBuffer);
sub_80151C0(4,sUnknown_203B2C4->passwordBuffer);
break;
case 0x1a:
sub_8006518(gUnknown_203B2C4->unk3BC);
sub_8006518(sUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8031D70(gUnknown_203B2C4->mailIndex,0);
sub_8031D70(sUnknown_203B2C4->mailIndex,0);
break;
case 0x1b:
// Please give this password to the friend that rescued your team. I also must save your adventure
sub_80141B4(gUnknown_80DF3B4,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF3B4,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case DISPLAY_THANK_YOU_PASSWORD:
// Ok. Here is your Thank You Mail Password
sub_80141B4(gUnknown_80DF418,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF418,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case 0x24:
// I need to save your adventure
sub_80141B4(gUnknown_80DF44C,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF44C,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case 0x20:
// There we go. I'm all done.
sub_80141B4(gUnknown_80DF46C,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF46C,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case THANK_YOU_PASSWORD_SUCCESS:
switch(gUnknown_203B2C4->wonderMailMethod)
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
case WONDER_MAIL_PASSWORD:
case 6:
// A Thank You Mail has arrived from your friend
sub_80141B4(gUnknown_80DF4F4,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF4F4,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case 4:
break;
@ -1376,23 +1376,23 @@ void UpdateThankYouMailText(void)
break;
case 0x22:
monName = GetMonSpecies(MONSTER_PELIPPER);
strcpy(gUnknown_203B2C4->unk53C.clientName,monName); // 0x53C
gUnknown_203B2C4->unk53C.clientSpecies = MONSTER_PELIPPER; // 0x550
gUnknown_203B2C4->unk53C.unk16 = 2; // 0x552
gUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554
mailIndex = GetMailIndex(6,gUnknown_203B2C4->unk430);
strcpy(sUnknown_203B2C4->unk53C.clientName,monName); // 0x53C
sUnknown_203B2C4->unk53C.clientSpecies = MONSTER_PELIPPER; // 0x550
sUnknown_203B2C4->unk53C.unk16 = 2; // 0x552
sUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554
mailIndex = GetMailIndex(6,sUnknown_203B2C4->unk430);
mail = GetMailatIndex(mailIndex);
itemIndex = mail->item.id;
if (itemIndex != ITEM_NOTHING)
gUnknown_203B2C4->unk53C.itemRewards[0] = itemIndex; // unk558
sUnknown_203B2C4->unk53C.itemRewards[0] = itemIndex; // unk558
else
gUnknown_203B2C4->unk53C.itemRewards[0] = ITEM_NOTHING; // unk558
gUnknown_203B2C4->unk53C.quantity = 1; // unk55B
gUnknown_203B2C4->unk53C.teamRankPtsReward = GetDungeonTeamRankPts(&mail->unk4.dungeon, 0); // unk560
gUnknown_203B2C4->unk53C.itemRewards[1] = 0; // unk559
gUnknown_203B2C4->unk53C.itemRewards[2] = 0; // unk55A
gUnknown_203B2C4->unk53C.friendAreaReward = 0; // unk55C
sub_802F204(&gUnknown_203B2C4->unk53C,0); // unk53C
sUnknown_203B2C4->unk53C.itemRewards[0] = ITEM_NOTHING; // unk558
sUnknown_203B2C4->unk53C.quantity = 1; // unk55B
sUnknown_203B2C4->unk53C.teamRankPtsReward = GetDungeonTeamRankPts(&mail->unk4.dungeon, 0); // unk560
sUnknown_203B2C4->unk53C.itemRewards[1] = 0; // unk559
sUnknown_203B2C4->unk53C.itemRewards[2] = 0; // unk55A
sUnknown_203B2C4->unk53C.friendAreaReward = 0; // unk55C
sub_802F204(&sUnknown_203B2C4->unk53C,0); // unk53C
break;
case COMMUNICATING_THANK_YOU_MAIL:
// Communicating..
@ -1401,75 +1401,75 @@ void UpdateThankYouMailText(void)
break;
case 0x17:
// There. I've sent your thank-you mail. I need to save your adventure.
sub_80141B4(gUnknown_80DF594,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF594,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case PROMPT_CONNECT_GAME_LINK:
// Please connect the GBA systems with a Game Link Cable
sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case THANK_YOU_MAIL_COMMS_CLEANUP:
pokeStruct2 = GetPlayerPokemonStruct();
sub_80922B4(buffer2, pokeStruct2->name, POKEMON_NAME_LENGTH);
sprintfStatic(gUnknown_203B2C4->formattedString,gUnknown_80DF63C,buffer2);
sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d);
sprintfStatic(sUnknown_203B2C4->formattedString,gUnknown_80DF63C,buffer2);
sub_80141B4(sUnknown_203B2C4->formattedString,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case CONFIRM_ITEM_TO_SEND:
// The item you've chosen can't be exchanged later. Is that OK?
sub_8014248(gUnknown_80DF694,0,7,gUnknown_80DEEE4,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF694,0,7,gUnknown_80DEEE4,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case 0x29:
// I need to save your adventure
sub_80141B4(gUnknown_80DF44C,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF44C,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case 0x2a:
// I've saved your adventure
sub_80141B4(gUnknown_80DF6F0,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF6F0,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case PROMPT_ITEM_TO_SEND:
// Ok, please choose the item to be sent
sub_80141B4(gUnknown_80DF710,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF710,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case THANK_YOU_MAIL_STORAGE_EMPTY:
// Oh? Your storage space is empty
sub_8014248(gUnknown_80DF73C,0,0,gUnknown_80DEEBC,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF73C,0,0,gUnknown_80DEEBC,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case PROMPT_REWARD_ITEM_TO_SEND:
// Would you like to choose a reward item from storage and send it with your mail?
sub_8014248(gUnknown_80DF77C,0,0,gUnknown_80DEE7C,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF77C,0,0,gUnknown_80DEE7C,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case ITEM_EXISTS_ON_THANK_YOU_MAIL:
// Oh? You've already attached a reward item on this mail.
sub_80141B4(gUnknown_80DF7D4,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF7D4,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case PROMPT_RESEND_WITH_ATTACHED_ITEM:
// Would you like to send it again with the item you chose before?
sub_8014248(gUnknown_80DF870,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF870,0,7,gUnknown_80DEE44,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case NO_THANK_YOU_MAIL:
// You don't seem to have a Thank-You Mail
sub_80141B4(gUnknown_80DF8B4,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF8B4,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case THANK_YOU_MAIL_MAIN_MENU:
// Hello. I handle Thank You Mail. How may I help You?
sub_8014248(gUnknown_80DF8EC,0,1,gThankYouMailMainMenuItems,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF8EC,0,1,gThankYouMailMainMenuItems,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case ANYTHING_ELSE_THANK_YOU_MAIN_MENU:
// May I help you with anything else?
sub_8014248(gUnknown_80DF928,0,1,gThankYouMailMainMenuItems,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF928,0,1,gThankYouMailMainMenuItems,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case EXIT_THANK_YOU_MAIL_PRE:
// Please come see me anytime
sub_80141B4(gUnknown_80DF94C,0,&gUnknown_203B2C4->faceFile,0x10d);
sub_80141B4(gUnknown_80DF94C,0,&sUnknown_203B2C4->faceFile,0x10d);
break;
case SELECT_THANK_YOU_MAIL_COMMS:
switch(gUnknown_203B2C4->wonderMailMode){
switch(sUnknown_203B2C4->wonderMailMode){
case WONDER_MAIL_MODE_SEND:
// How would you like to send your thank you mail?
sub_8014248(gUnknown_80DF96C,0,3,gUnknown_80DEE08,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF96C,0,3,gUnknown_80DEE08,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
case WONDER_MAIL_MODE_RECEIVE:
// How would you like to recieve your friend's thank you mail?
sub_8014248(gUnknown_80DF9A4,0,3,gUnknown_80DEE08,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
sub_8014248(gUnknown_80DF9A4,0,3,gUnknown_80DEE08,0,4,0,&sUnknown_203B2C4->faceFile,0xc);
break;
}
break;
@ -1478,7 +1478,7 @@ void UpdateThankYouMailText(void)
void SetThankYouMailMenuState(u32 newState)
{
gUnknown_203B2C4->state = newState;
sUnknown_203B2C4->state = newState;
nullsub_131();
UpdateThankYouMailText();
}

View File

@ -20,7 +20,7 @@
#include "text2.h"
#include "wonder_mail.h"
extern WonderMailStruct_203B2C0 *gUnknown_203B2C0;
static EWRAM_DATA_2 WonderMailStruct_203B2C0 *sUnknown_203B2C0 = {0};
extern void sub_8011C28(u32);
@ -261,26 +261,26 @@ u32 sub_8027F88(void)
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
gUnknown_203B2C0 = MemoryAlloc(sizeof(WonderMailStruct_203B2C0), 8);
MemoryFill8((u8 *)gUnknown_203B2C0, 0, sizeof(WonderMailStruct_203B2C0));
gUnknown_203B2C0->unk53C = 0;
gUnknown_203B2C0->mailIndex = -1;
gUnknown_203B2C0->speciesNum = -1;
sUnknown_203B2C0 = MemoryAlloc(sizeof(WonderMailStruct_203B2C0), 8);
MemoryFill8((u8 *)sUnknown_203B2C0, 0, sizeof(WonderMailStruct_203B2C0));
sUnknown_203B2C0->unk53C = 0;
sUnknown_203B2C0->mailIndex = -1;
sUnknown_203B2C0->speciesNum = -1;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER);
monName = GetMonSpecies(MONSTER_PELIPPER);
strcpy(gAvailablePokemonNames, monName);
faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER);
gUnknown_203B2C0->faceFile = faceFile;
gUnknown_203B2C0->faceData = faceFile->data;
gUnknown_203B2C0->unk42C = 0;
gUnknown_203B2C0->unk42D = 0;
gUnknown_203B2C0->unk42E = 0;
gUnknown_203B2C0->unk428 = 2;
gUnknown_203B2C0->unk42A = 8;
sUnknown_203B2C0->faceFile = faceFile;
sUnknown_203B2C0->faceData = faceFile->data;
sUnknown_203B2C0->unk42C = 0;
sUnknown_203B2C0->unk42D = 0;
sUnknown_203B2C0->unk42E = 0;
sUnknown_203B2C0->unk428 = 2;
sUnknown_203B2C0->unk42A = 8;
for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){
gUnknown_203B2C0->passwordBuffer[counter] = 0;
sUnknown_203B2C0->passwordBuffer[counter] = 0;
}
gUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE;
sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE;
SetFriendRescueCounterState(INITIALIZE_FRIEND_RESCUE);
return 1;
}
@ -288,7 +288,7 @@ u32 sub_8027F88(void)
u32 sub_8028078(void)
{
switch(gUnknown_203B2C0->state) {
switch(sUnknown_203B2C0->state) {
case 0x3c:
sub_8029B34();
break;
@ -463,16 +463,16 @@ u32 sub_8028078(void)
s32 sub_80282DC(u8 *r0)
{
*r0 = gUnknown_203B2C0->mailIndex;
return gUnknown_203B2C0->unk53C;
*r0 = sUnknown_203B2C0->mailIndex;
return sUnknown_203B2C0->unk53C;
}
void sub_80282FC(void)
{
if (gUnknown_203B2C0 != NULL) {
CloseFile(gUnknown_203B2C0->faceFile);
MemoryFree(gUnknown_203B2C0);
gUnknown_203B2C0 = NULL;
if (sUnknown_203B2C0 != NULL) {
CloseFile(sUnknown_203B2C0->faceFile);
MemoryFree(sUnknown_203B2C0);
sUnknown_203B2C0 = NULL;
sub_8031E10();
sub_8023C60();
sub_803084C();
@ -490,38 +490,38 @@ void nullsub_130(void)
void sub_8028348(void)
{
s32 linkError;
switch(gUnknown_203B2C0->state)
switch(sUnknown_203B2C0->state)
{
case 0x3B:
sub_8006518(gUnknown_203B2C0->unk3BC);
sub_8006518(sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8031D70(gUnknown_203B2C0->mailIndex, 0);
sub_8031D70(sUnknown_203B2C0->mailIndex, 0);
break;
case 0x3C:
sub_80141B4(gUnknown_80DDBA8, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDBA8, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case AOK_PASSWORD_DISPLAY:
sub_80141B4(gUnknown_80DDBFC, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDBFC, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x38:
sub_80141B4(gUnknown_80DDC30, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDC30, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case SENT_AOK_MAIL:
switch(gUnknown_203B2C0->unk534)
switch(sUnknown_203B2C0->unk534)
{
// 0x0 - 0x9 included here too...
case 0x10:
case 0xF:
case 0xD:
sub_80141B4(gUnknown_80DDC70, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDC70, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0xE:
break;
}
break;
case SENT_AOK_MAIL_SAVE_COMPLETE:
sub_80141B4(gUnknown_80DDC30, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDC30, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case PROMPT_SELECT_HELPER_POKEMON:
sub_80141B4(gUnknown_80DDCBC, 0, 0,0x101);
@ -535,22 +535,22 @@ void sub_8028348(void)
}
break;
case 0x34:
sub_8006518(gUnknown_203B2C0->unk35C);
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE);
sub_8006518(sUnknown_203B2C0->unk35C);
SetMenuItems(sUnknown_203B2C0->unk21C, sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE);
sub_8023DA4();
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE);
break;
case NO_POKEMON_IN_FRIEND_AREA:
sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case CONFIRM_SEND_HELPER_POKEMON:
sub_8014248(gUnknown_80DDD88, 0, 8, gUnknown_80DDA80, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DDD88, 0, 8, gUnknown_80DDA80, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case 0x2D:
sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case PROMPT_CHOOSE_AOK_MAIL:
sub_80141B4(gUnknown_80DDDD8, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDDD8, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x2A:
if(sub_8030894() == 0)
@ -561,60 +561,60 @@ void sub_8028348(void)
}
break;
case NO_AOK_MAIL_TO_SEND:
sub_80141B4(gUnknown_80DDE20, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDE20, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x30:
sub_80141B4(gUnknown_80DDE58, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDE58, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x2E:
sub_8014248(gUnknown_80DDEC0, 0, 0x11, gUnknown_80DDB60, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DDEC0, 0, 0x11, gUnknown_80DDB60, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case NO_MAIL_ROOM:
sub_80141B4(gUnknown_80DDF2C, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DDF2C, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 4:
sub_8014248(gUnknown_80DDFB8, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DDFB8, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case FRIEND_RESCUE_COMMUNICATING_PRE:
nullsub_23(FALSE);
sub_80141B4(gUnknown_80DE01C, 0 , 0, 0);
break;
case FRIEND_RESCUE_COMMUNICATING:
gUnknown_203B2C0->linkError = COMMS_GOOD;
sUnknown_203B2C0->linkError = COMMS_GOOD;
sub_8011830();
linkError = sub_8037B28(gUnknown_203B2C0->unk40);
gUnknown_203B2C0->linkError = linkError;
linkError = sub_8037B28(sUnknown_203B2C0->unk40);
sUnknown_203B2C0->linkError = linkError;
if(linkError == COMMS_GOOD)
{
switch(gUnknown_203B2C0->unk40)
switch(sUnknown_203B2C0->unk40)
{
case 3:
MemoryFill8((u8 *)&gUnknown_203B2C0->unk48, 0, sizeof(unkStruct_203B480));
MemoryFill8((u8 *)&gUnknown_203B2C0->unk78, 0, sizeof(unkStruct_203B480));
gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, &gUnknown_203B2C0->unk48, &gUnknown_203B2C0->unk78);
MemoryFill8((u8 *)&sUnknown_203B2C0->unk48, 0, sizeof(unkStruct_203B480));
MemoryFill8((u8 *)&sUnknown_203B2C0->unk78, 0, sizeof(unkStruct_203B480));
sUnknown_203B2C0->linkError = sub_8037D64(sUnknown_203B2C0->unk40, &sUnknown_203B2C0->unk48, &sUnknown_203B2C0->unk78);
break;
case 4:
MemoryFill8((u8 *)&gUnknown_203B2C0->unkA8, 0, sizeof(WonderMailStruct_203B2C0_sub));
MemoryFill8((u8 *)&gUnknown_203B2C0->unk130, 0, sizeof(WonderMailStruct_203B2C0_sub));
gUnknown_203B2C0->unkA8.pokemon.speciesNum = 0;
gUnknown_203B2C0->unk130.pokemon.speciesNum = 0;
gUnknown_203B2C0->unkA8.mail = *GetMailatIndex(gUnknown_203B2C0->mailIndex);
if(gUnknown_203B2C0->speciesNum != -1)
MemoryFill8((u8 *)&sUnknown_203B2C0->unkA8, 0, sizeof(WonderMailStruct_203B2C0_sub));
MemoryFill8((u8 *)&sUnknown_203B2C0->unk130, 0, sizeof(WonderMailStruct_203B2C0_sub));
sUnknown_203B2C0->unkA8.pokemon.speciesNum = 0;
sUnknown_203B2C0->unk130.pokemon.speciesNum = 0;
sUnknown_203B2C0->unkA8.mail = *GetMailatIndex(sUnknown_203B2C0->mailIndex);
if(sUnknown_203B2C0->speciesNum != -1)
{
gUnknown_203B2C0->unkA8.pokemon = gRecruitedPokemonRef->pokemon[gUnknown_203B2C0->speciesNum];
sUnknown_203B2C0->unkA8.pokemon = gRecruitedPokemonRef->pokemon[sUnknown_203B2C0->speciesNum];
}
gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130);
sUnknown_203B2C0->linkError = sub_8037D64(sUnknown_203B2C0->unk40, &sUnknown_203B2C0->unkA8, &sUnknown_203B2C0->unk130);
break;
}
if(gUnknown_203B2C0->linkError == COMMS_GOOD)
if(sUnknown_203B2C0->linkError == COMMS_GOOD)
{
switch(gUnknown_203B2C0->unk40)
switch(sUnknown_203B2C0->unk40)
{
case 3:
gUnknown_203B2C0->linkError = sub_80381F4(3, &gUnknown_203B2C0->unk48, &gUnknown_203B2C0->unk78);
sUnknown_203B2C0->linkError = sub_80381F4(3, &sUnknown_203B2C0->unk48, &sUnknown_203B2C0->unk78);
break;
case 4:
gUnknown_203B2C0->linkError = sub_80381F4(4, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130);
sUnknown_203B2C0->linkError = sub_80381F4(4, &sUnknown_203B2C0->unkA8, &sUnknown_203B2C0->unk130);
break;
}
}
@ -626,58 +626,58 @@ void sub_8028348(void)
}
break;
case RECEIVED_FRIEND_SOS_MAIL:
switch(gUnknown_203B2C0->unk534)
switch(sUnknown_203B2C0->unk534)
{
// 0x0 - 0x9 included here too...
case 0x10:
case 0xF:
case 0xD:
sub_80141B4(gUnknown_80DE06C, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE06C, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0xE:
break;
}
break;
case RECEIVED_FRIEND_SOS_MAIL_SAVE_COMPLETE:
sub_80141B4(gUnknown_80DE0C0, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE0C0, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case PROMPT_SOS_MAIL_PASSWORD:
sub_80141B4(gUnknown_80DE124, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE124, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x27:
sub_8006518(gUnknown_203B2C0->unk3BC);
sub_8006518(sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_80151C0(4, gUnknown_203B2C0->passwordBuffer);
sub_80151C0(4, sUnknown_203B2C0->passwordBuffer);
break;
case 8:
switch(gUnknown_203B2C0->unk538)
switch(sUnknown_203B2C0->unk538)
{
case 0:
sub_8014248(gUnknown_80DE178, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DE178, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case 2:
sub_8014248(gUnknown_80DE1B4, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DE1B4, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
}
break;
case NO_SOS_MAIL_TO_SEND:
sub_80141B4(gUnknown_80DE1E4, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE1E4, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x1B:
sub_80141B4(gUnknown_80DE280, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE280, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case CANT_GO_TO_DUNGEON:
sub_80141B4(gUnknown_80DE2B0, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE2B0, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case FRIEND_RESCUE_FAILED:
sub_80141B4(gUnknown_80DE368, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE368, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x22:
sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case PROMPT_CHOOSE_SOS_MAIL:
sub_80141B4(gUnknown_80DE430, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE430, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x1F:
if(sub_8030894() == 0)
@ -690,14 +690,14 @@ void sub_8028348(void)
break;
case 0x20:
case 0x2B:
sub_8006518(gUnknown_203B2C0->unk35C);
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, FALSE);
sub_8006518(sUnknown_203B2C0->unk35C);
SetMenuItems(sUnknown_203B2C0->unk21C, sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, FALSE);
sub_803092C();
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE);
break;
case 0xA:
gUnknown_203B2C0->mailCount = CountAllMail();
switch((u32)gUnknown_203B2C0->unk538)
sUnknown_203B2C0->mailCount = CountAllMail();
switch((u32)sUnknown_203B2C0->unk538)
{
case 5:
sub_8030F58(2);
@ -711,58 +711,58 @@ void sub_8028348(void)
}
break;
case 0xB:
sub_8014248(gUnknown_80DE48C, 0, 5, gUnknown_80DD9EC, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DE48C, 0, 5, gUnknown_80DD9EC, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case 0xD:
sub_80141B4(gUnknown_80DE4B8, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE4B8, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case NO_SOS_MAIL:
sub_80141B4(gUnknown_80DE4F0, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE4F0, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0xF:
sub_80141B4(gUnknown_80DE524, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE524, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case NO_AOK_MAIL:
sub_80141B4(gUnknown_80DE614, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE614, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x11:
sub_80141B4(gUnknown_80DE648, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE648, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case NO_MAIL:
sub_80141B4(gUnknown_80DE694, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE694, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case PROMPT_DELETE_ALL_MAIL:
sub_8014248(gUnknown_80DE6D4, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DE6D4, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case CONFIRM_DELETE_ALL_MAIL_1:
sub_8014248(gUnknown_80DE754, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DE754, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case 0x17:
sub_80141B4(gUnknown_80DE7B8, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE7B8, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x18:
sub_80141B4(gUnknown_80DE7E8, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE7E8, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x19:
sub_8014248(gUnknown_80DE808, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DE808, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case CONFIRM_DELETE_ALL_MAIL_2:
sub_80141B4(gUnknown_80DE830, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE830, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case DELETE_ALL_MAIL_SAVE_PRE:
sub_80141B4(gUnknown_80DE864, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE864, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case 0x16:
sub_80141B4(gUnknown_80DE7E8, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE7E8, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case INITIALIZE_FRIEND_RESCUE:
sub_8014248(gUnknown_80DE8B4, 0, 0, gUnknown_80DD970, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DE8B4, 0, 0, gUnknown_80DD970, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case FRIEND_RESCUE_MAIN:
sub_8014248(gUnknown_80DE918, 0, 0, gUnknown_80DD970, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
sub_8014248(gUnknown_80DE918, 0, 0, gUnknown_80DD970, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC);
break;
case 2:
sub_80141B4(gUnknown_80DE93C, 0, &gUnknown_203B2C0->faceFile,0x10d);
sub_80141B4(gUnknown_80DE93C, 0, &sUnknown_203B2C0->faceFile,0x10d);
break;
case FRIEND_RESCUE_COUNTER_EXIT:
break;
@ -772,7 +772,7 @@ void sub_8028348(void)
void SetFriendRescueCounterState(u32 state)
{
gUnknown_203B2C0->state = state;
sUnknown_203B2C0->state = state;
nullsub_130();
sub_8028348();
}
@ -786,37 +786,37 @@ void PrintFriendRescueCounterError(u32 errorCode)
break;
case 1:
case COMMS_NO_RESPONSE:
sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case COMMS_INCORRECT_NUM_SYSTEMS:
sub_80141B4(gWonderMailNumGBAsText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailNumGBAsText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case COMMS_DIFFERENT_MODES:
sub_80141B4(gWonderMailWrongModeText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailWrongModeText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case 5:
sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case COMMS_NO_ROOM_STORAGE:
sub_80141B4(gWonderMailStorageFullText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailStorageFullText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case COMMS_DUPLICATE_MAIL:
sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailDuplicateText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case COMMS_NOT_ELIGIBLE_1:
sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case COMMS_NOT_ELIGIBLE_2:
sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case COMMS_NO_ROOM_MAIL:
sub_80141B4(gWonderMailNoRoomText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailNoRoomText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case 14:
sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
case COMMS_NOT_READY:
sub_80141B4(gWonderMailFriendErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailFriendErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
break;
default:
break;
@ -830,13 +830,13 @@ void sub_8028BF0(void)
{
return;
}
gUnknown_203B2C0->unk40 = 8;
gUnknown_203B2C0->speciesNum = -1;
sUnknown_203B2C0->unk40 = 8;
sUnknown_203B2C0->speciesNum = -1;
switch(menuChoice)
{
case 0:
gUnknown_203B2C0->unk40 = 3;
gUnknown_203B2C0->unk538 = 0;
sUnknown_203B2C0->unk40 = 3;
sUnknown_203B2C0->unk538 = 0;
if(FindOpenMailSlot() != -1)
{
SetFriendRescueCounterState(8);
@ -857,8 +857,8 @@ void sub_8028BF0(void)
}
break;
case 2:
gUnknown_203B2C0->unk40 = 4;
gUnknown_203B2C0->unk538 = 2;
sUnknown_203B2C0->unk40 = 4;
sUnknown_203B2C0->unk538 = 2;
if(CountMailType(WONDER_MAIL_TYPE_AOK) != 0)
{
SetFriendRescueCounterState(PROMPT_CHOOSE_AOK_MAIL);
@ -906,7 +906,7 @@ void sub_8028CFC()
case 3:
newMailCount = CountAllMail();
sub_80310B4();
if(newMailCount != gUnknown_203B2C0->mailCount)
if(newMailCount != sUnknown_203B2C0->mailCount)
{
SetFriendRescueCounterState(0x17);
}
@ -928,8 +928,8 @@ void sub_8028D4C()
{
return;
}
gUnknown_203B2C0->unk538 = menuChoice;
switch(gUnknown_203B2C0->unk538)
sUnknown_203B2C0->unk538 = menuChoice;
switch(sUnknown_203B2C0->unk538)
{
case 5:
if(HasNoWonderMailType(2))
@ -1121,8 +1121,8 @@ void sub_8028F80()
{
return;
}
sub_809927C(gUnknown_203B2C0->mailIndex);
gUnknown_203B2C0->unk53C = 1;
sub_809927C(sUnknown_203B2C0->mailIndex);
sUnknown_203B2C0->unk53C = 1;
SetFriendRescueCounterState(FRIEND_RESCUE_COUNTER_EXIT);
}
@ -1149,7 +1149,7 @@ void sub_8028FDC(void)
switch(menuChoice)
{
case 8:
mail = GetMailatIndex(gUnknown_203B2C0->mailIndex);
mail = GetMailatIndex(sUnknown_203B2C0->mailIndex);
if(!sub_80A2824(mail->unk4.dungeon.id))
{
SetFriendRescueCounterState(CANT_GO_TO_DUNGEON);
@ -1181,16 +1181,16 @@ void sub_8029044(void)
SetFriendRescueCounterState(FRIEND_RESCUE_MAIN);
break;
case 3:
gUnknown_203B2C0->mailIndex = sub_80307EC();
sUnknown_203B2C0->mailIndex = sub_80307EC();
SetFriendRescueCounterState(0x20);
break;
case 4:
gUnknown_203B2C0->fallbackState = 0x1F;
gUnknown_203B2C0->mailIndex = sub_80307EC();
sub_8006518(gUnknown_203B2C0->unk3BC);
sUnknown_203B2C0->fallbackState = 0x1F;
sUnknown_203B2C0->mailIndex = sub_80307EC();
sub_8006518(sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8030D40(gUnknown_203B2C0->mailIndex, 0);
sub_8030D40(sUnknown_203B2C0->mailIndex, 0);
SetFriendRescueCounterState(0x21);
break;
}
@ -1211,9 +1211,9 @@ void sub_80290F0(void)
s32 menuAction;
menuAction = -1;
sub_8030768(0);
if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0)
if(sub_8012FD8(&(sUnknown_203B2C0->unk21C[3])) == 0)
{
sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction);
sub_8013114(&(sUnknown_203B2C0->unk21C[3]), &menuAction);
}
switch(menuAction)
{
@ -1222,16 +1222,16 @@ void sub_80290F0(void)
SetFriendRescueCounterState(0x22);
break;
case 12:
gUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE;
sub_8006518(gUnknown_203B2C0->unk3BC);
sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE;
sub_8006518(sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8030D40(gUnknown_203B2C0->mailIndex, 0);
sub_8030D40(sUnknown_203B2C0->mailIndex, 0);
SetFriendRescueCounterState(0x21);
break;
case 4:
case 10:
sub_8035CC0(gUnknown_203B2C0->unk35C, 2);
sub_8035CC0(sUnknown_203B2C0->unk35C, 2);
sub_8030810(1);
SetFriendRescueCounterState(0x1F);
break;
@ -1248,16 +1248,16 @@ void sub_80291AC(void)
case 3:
sub_8030DE4();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE);
sub_803092C();
if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
{
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE);
SetFriendRescueCounterState(0x20);
}
else
{
SetFriendRescueCounterState(gUnknown_203B2C0->fallbackState);
SetFriendRescueCounterState(sUnknown_203B2C0->fallbackState);
}
default:
break;
@ -1276,8 +1276,8 @@ void sub_8029208(void)
case 13:
case 14:
gUnknown_203B2C0->unk534 = 13;
switch(gUnknown_203B2C0->unk538)
sUnknown_203B2C0->unk534 = 13;
switch(sUnknown_203B2C0->unk538)
{
case 0:
SetFriendRescueCounterState(4);
@ -1290,8 +1290,8 @@ void sub_8029208(void)
}
break;
case 15:
gUnknown_203B2C0->unk534 = 15;
switch(gUnknown_203B2C0->unk538)
sUnknown_203B2C0->unk534 = 15;
switch(sUnknown_203B2C0->unk538)
{
case 0:
SetFriendRescueCounterState(PROMPT_SOS_MAIL_PASSWORD);
@ -1319,7 +1319,7 @@ void sub_80292A4(void)
switch(menuChoice)
{
case 8:
switch(gUnknown_203B2C0->unk538)
switch(sUnknown_203B2C0->unk538)
{
case 0:
case 2:
@ -1340,9 +1340,9 @@ void sub_80292EC(void)
{
return;
}
if(gUnknown_203B2C0->linkError == COMMS_GOOD)
if(sUnknown_203B2C0->linkError == COMMS_GOOD)
{
switch(gUnknown_203B2C0->unk538)
switch(sUnknown_203B2C0->unk538)
{
case 0:
SetFriendRescueCounterState(RECEIVED_FRIEND_SOS_MAIL);
@ -1354,7 +1354,7 @@ void sub_80292EC(void)
}
else
{
PrintFriendRescueCounterError(gUnknown_203B2C0->linkError);
PrintFriendRescueCounterError(sUnknown_203B2C0->linkError);
SetFriendRescueCounterState(FRIEND_RESCUE_ERROR);
}
}
@ -1434,25 +1434,25 @@ void sub_80293F4(void)
switch(return_var)
{
case 3:
switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (gUnknown_203B2C0->passwordBuffer), &mail))
switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (sUnknown_203B2C0->passwordBuffer), &mail))
{
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile, 0xC);
sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile, 0xC);
SetFriendRescueCounterState(0x28);
break;
case PASSWORD_ENTRY_NOT_SOS_MAIL:
sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
SetFriendRescueCounterState(FRIEND_RESCUE_ERROR);
break;
case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL:
sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_80141B4(gWonderMailDuplicateText, 0, &sUnknown_203B2C0->faceFile, 0x10d);
SetFriendRescueCounterState(FRIEND_RESCUE_ERROR);
break;
case PASSWORD_ENTRY_SOS_MAIL_SUCCESS:
sub_8095274(mail.unk10.unk10);
mail.mailType = 2;
sub_80951BC(&mail);
sub_80141B4(gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->faceFile, 0x101);
sub_80141B4(gWonderMailAOKMailReceivedText, 0, &sUnknown_203B2C0->faceFile, 0x101);
SetFriendRescueCounterState(0x23);
break;
case 23:
@ -1465,7 +1465,7 @@ void sub_80293F4(void)
case 2:
sub_80155F0();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE);
SetFriendRescueCounterState(FRIEND_RESCUE_MAIN);
break;
default:
@ -1530,16 +1530,16 @@ void sub_80295D8(void)
SetFriendRescueCounterState(FRIEND_RESCUE_MAIN);
break;
case 3:
gUnknown_203B2C0->mailIndex = sub_80307EC();
sUnknown_203B2C0->mailIndex = sub_80307EC();
SetFriendRescueCounterState(0x2B);
break;
case 4:
gUnknown_203B2C0->fallbackState = 0x2A;
gUnknown_203B2C0->mailIndex = sub_80307EC();
sub_8006518(gUnknown_203B2C0->unk3BC);
sUnknown_203B2C0->fallbackState = 0x2A;
sUnknown_203B2C0->mailIndex = sub_80307EC();
sub_8006518(sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8030D40(gUnknown_203B2C0->mailIndex, 0);
sub_8030D40(sUnknown_203B2C0->mailIndex, 0);
SetFriendRescueCounterState(0x2C);
break;
}
@ -1560,9 +1560,9 @@ void sub_8029684(void)
s32 menuAction;
menuAction = -1;
sub_8030768(0);
if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0)
if(sub_8012FD8(&(sUnknown_203B2C0->unk21C[3])) == 0)
{
sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction);
sub_8013114(&(sUnknown_203B2C0->unk21C[3]), &menuAction);
}
switch(menuAction)
{
@ -1571,16 +1571,16 @@ void sub_8029684(void)
SetFriendRescueCounterState(0x2D);
break;
case 0xC:
gUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE;
sub_8006518(gUnknown_203B2C0->unk3BC);
sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE;
sub_8006518(sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8030D40(gUnknown_203B2C0->mailIndex, 0);
sub_8030D40(sUnknown_203B2C0->mailIndex, 0);
SetFriendRescueCounterState(0x2C);
break;
case 0x4:
case 0xA:
sub_8035CC0(gUnknown_203B2C0->unk35C,2);
sub_8035CC0(sUnknown_203B2C0->unk35C,2);
sub_8030810(1);
SetFriendRescueCounterState(0x2A);
break;
@ -1595,16 +1595,16 @@ void sub_8029740(void)
case 3:
sub_8030DE4();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE);
sub_803092C();
if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
{
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE);
SetFriendRescueCounterState(0x2B);
}
else
{
SetFriendRescueCounterState(gUnknown_203B2C0->fallbackState);
SetFriendRescueCounterState(sUnknown_203B2C0->fallbackState);
}
break;
}
@ -1637,19 +1637,19 @@ void sub_80297D4(void)
case 2:
sub_8023C60();
SetFriendRescueCounterState(FRIEND_RESCUE_MAIN);
gUnknown_203B2C0->speciesNum = -1;
sUnknown_203B2C0->speciesNum = -1;
break;
case 3:
gUnknown_203B2C0->speciesNum = sub_8023B44();
sUnknown_203B2C0->speciesNum = sub_8023B44();
SetFriendRescueCounterState(0x34);
break;
case 4:
gUnknown_203B2C0->fallbackState = SELECT_HELPER_POKEMON;
gUnknown_203B2C0->speciesNum = sub_8023B44();
sub_8006518(gUnknown_203B2C0->unk3BC);
sUnknown_203B2C0->fallbackState = SELECT_HELPER_POKEMON;
sUnknown_203B2C0->speciesNum = sub_8023B44();
sub_8006518(sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8024458(gUnknown_203B2C0->speciesNum, 0);
sub_8024458(sUnknown_203B2C0->speciesNum, 0);
SetFriendRescueCounterState(0x35);
break;
}
@ -1660,9 +1660,9 @@ void sub_8029884(void)
s32 menuAction;
menuAction = -1;
sub_8023A94(FALSE);
if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0)
if(sub_8012FD8(&(sUnknown_203B2C0->unk21C[3])) == 0)
{
sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction);
sub_8013114(&(sUnknown_203B2C0->unk21C[3]), &menuAction);
}
switch(menuAction)
{
@ -1671,16 +1671,16 @@ void sub_8029884(void)
SetFriendRescueCounterState(4);
break;
case 0xC:
gUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE;
sub_8006518(gUnknown_203B2C0->unk3BC);
sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE;
sub_8006518(sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sub_8024458(gUnknown_203B2C0->speciesNum, 0);
sub_8024458(sUnknown_203B2C0->speciesNum, 0);
SetFriendRescueCounterState(0x35);
break;
case 0x4:
case 0xA:
sub_8035CC0(gUnknown_203B2C0->unk35C, 3);
sub_8035CC0(sUnknown_203B2C0->unk35C, 3);
sub_8023B7C(1);
SetFriendRescueCounterState(SELECT_HELPER_POKEMON);
break;
@ -1704,16 +1704,16 @@ void sub_8029944(void)
case 3:
sub_802453C();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE);
sub_8023B7C(1);
if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE)
{
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE);
SetFriendRescueCounterState(0x34);
}
else
{
SetFriendRescueCounterState(gUnknown_203B2C0->fallbackState);
SetFriendRescueCounterState(sUnknown_203B2C0->fallbackState);
}
}
@ -1844,7 +1844,7 @@ void sub_8029AF4(void)
case 3:
sub_8031E10();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C0->unk3BC, TRUE, TRUE);
sub_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE);
SetFriendRescueCounterState(0x3C);
break;
case 1:

View File

@ -36,7 +36,7 @@ struct unkStruct_203B2C8
u32 fill13C;
};
extern struct unkStruct_203B2C8 *gUnknown_203B2C8;
static EWRAM_DATA_2 struct unkStruct_203B2C8 *sUnknown_203B2C8 = {0};
extern void sub_80920D8(u8 *buffer);
extern char gUnknown_202E5D8[0x50];
@ -84,19 +84,19 @@ u32 sub_802B2D4(void)
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
gUnknown_203B2C8 = MemoryAlloc(sizeof(struct unkStruct_203B2C8),8);
MemoryFill8((u8 *)gUnknown_203B2C8,0,sizeof(struct unkStruct_203B2C8));
gUnknown_203B2C8->unk1 = -1;
sUnknown_203B2C8 = MemoryAlloc(sizeof(struct unkStruct_203B2C8),8);
MemoryFill8((u8 *)sUnknown_203B2C8,0,sizeof(struct unkStruct_203B2C8));
sUnknown_203B2C8->unk1 = -1;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER);
faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER);
gUnknown_203B2C8->faceFile = faceFile;
gUnknown_203B2C8->faceData = faceFile->data;
gUnknown_203B2C8->unk10 = 0;
gUnknown_203B2C8->unk11 = 0;
gUnknown_203B2C8->unk12 = 0;
gUnknown_203B2C8->unkC = 2;
gUnknown_203B2C8->unkE = 8;
if (sub_8099394(&gUnknown_203B2C8->unk1) == 1) {
sUnknown_203B2C8->faceFile = faceFile;
sUnknown_203B2C8->faceData = faceFile->data;
sUnknown_203B2C8->unk10 = 0;
sUnknown_203B2C8->unk11 = 0;
sUnknown_203B2C8->unk12 = 0;
sUnknown_203B2C8->unkC = 2;
sUnknown_203B2C8->unkE = 8;
if (sub_8099394(&sUnknown_203B2C8->unk1) == 1) {
sub_802B548(0);
iVar1 = 1;
}
@ -107,7 +107,7 @@ u32 sub_802B2D4(void)
u32 sub_802B358(void)
{
switch(gUnknown_203B2C8->currState) {
switch(sUnknown_203B2C8->currState) {
case 0:
sub_802B560();
break;
@ -131,11 +131,11 @@ u32 sub_802B358(void)
void sub_802B3B8(void)
{
if(gUnknown_203B2C8 != NULL)
if(sUnknown_203B2C8 != NULL)
{
CloseFile(gUnknown_203B2C8->faceFile);
MemoryFree(gUnknown_203B2C8);
gUnknown_203B2C8 = NULL;
CloseFile(sUnknown_203B2C8->faceFile);
MemoryFree(sUnknown_203B2C8);
sUnknown_203B2C8 = NULL;
}
}
@ -149,7 +149,7 @@ void sub_802B3E0(void)
char *monName;
char teamNameBuffer[40];
switch(gUnknown_203B2C8->currState) {
switch(sUnknown_203B2C8->currState) {
case 0:
if (sub_80023E4(0)) {
// Copy Team Name to buffer
@ -160,35 +160,35 @@ void sub_802B3E0(void)
strcpy(teamNameBuffer,gRescueTeamNamePlaceholder);
}
// Print and expand placeholders?
sprintfStatic(gUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer);
sprintfStatic(sUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer);
// Display to screen with Pelipper face
sub_80141B4(gUnknown_203B2C8->teamName, 0, &gUnknown_203B2C8->faceFile, 0x10d);
sub_80141B4(sUnknown_203B2C8->teamName, 0, &sUnknown_203B2C8->faceFile, 0x10d);
break;
case 1:
monName = GetMonSpecies(MONSTER_PELIPPER);
strcpy(gUnknown_203B2C8->unk114.clientName, monName);
gUnknown_203B2C8->unk114.clientSpecies = MONSTER_PELIPPER;
gUnknown_203B2C8->unk114.unk16 = 2;
gUnknown_203B2C8->unk114.moneyReward = 0;
strcpy(sUnknown_203B2C8->unk114.clientName, monName);
sUnknown_203B2C8->unk114.clientSpecies = MONSTER_PELIPPER;
sUnknown_203B2C8->unk114.unk16 = 2;
sUnknown_203B2C8->unk114.moneyReward = 0;
sub_8097790();
mail = GetMailatIndex(gUnknown_203B2C8->unk1);
sub_803C37C(&mail->unk4.dungeon, 0, gUnknown_203B2C8->unk114.itemRewards);
gUnknown_203B2C8->unk114.teamRankPtsReward = GetDungeonTeamRankPts(&mail->unk4.dungeon, 0);
gUnknown_203B2C8->unk114.itemRewards[1] = ITEM_NOTHING;
gUnknown_203B2C8->unk114.itemRewards[2] = ITEM_NOTHING;
gUnknown_203B2C8->unk114.quantity = 10;
gUnknown_203B2C8->unk114.friendAreaReward = 0;
sub_802F204(&gUnknown_203B2C8->unk114, 0);
mail = GetMailatIndex(sUnknown_203B2C8->unk1);
sub_803C37C(&mail->unk4.dungeon, 0, sUnknown_203B2C8->unk114.itemRewards);
sUnknown_203B2C8->unk114.teamRankPtsReward = GetDungeonTeamRankPts(&mail->unk4.dungeon, 0);
sUnknown_203B2C8->unk114.itemRewards[1] = ITEM_NOTHING;
sUnknown_203B2C8->unk114.itemRewards[2] = ITEM_NOTHING;
sUnknown_203B2C8->unk114.quantity = 10;
sUnknown_203B2C8->unk114.friendAreaReward = 0;
sub_802F204(&sUnknown_203B2C8->unk114, 0);
break;
case 2:
// I hope you will keep on rescuing your friends
// I must save your adventure
sub_80141B4(gUnknown_80DFAA8, 0, &gUnknown_203B2C8->faceFile, 0x10d);
sub_80141B4(gUnknown_80DFAA8, 0, &sUnknown_203B2C8->faceFile, 0x10d);
break;
case 4:
// Oh yes, that's right. Please don't forget to send an A-OK Mail
// to the friend you just rescued
sub_80141B4(gUnknown_80DFB14, 0, &gUnknown_203B2C8->faceFile, 0x10d);
sub_80141B4(gUnknown_80DFB14, 0, &sUnknown_203B2C8->faceFile, 0x10d);
case 3:
case 5:
break;
@ -197,7 +197,7 @@ void sub_802B3E0(void)
void sub_802B548(u32 newState)
{
gUnknown_203B2C8->currState = newState;
sUnknown_203B2C8->currState = newState;
nullsub_132();
sub_802B3E0();
}
@ -232,7 +232,7 @@ void sub_802B5B8(void)
if (sub_80144A4(&temp) == 0) {
uVar2 = sub_8011C34();
mail = GetMailatIndex(gUnknown_203B2C8->unk1);
mail = GetMailatIndex(sUnknown_203B2C8->unk1);
mail->mailType = WONDER_MAIL_TYPE_AOK;
mail->unk28 = uVar2;
sub_802B548(3);

View File

@ -14,9 +14,10 @@
#include "code_80958E8_1.h"
#include "code_803B050.h"
static EWRAM_DATA_2 struct unkStruct_203B2E8* gUnknown_203B2E8 = {0};
static EWRAM_DATA_2 u16 gUnknown_203B2EC = {0};
extern struct unkStruct_203B2F0 *gUnknown_203B2F0;
extern struct unkStruct_203B2E8* gUnknown_203B2E8;
extern u16 gUnknown_203B2EC;
ALIGNED(4) static const char wonder_mail_2_fill4[] = "pksdir0";

View File

@ -19,6 +19,10 @@
#include "code_80958E8_1.h"
#include "code_803B050.h"
static EWRAM_DATA_2 unkStruct_203B2F4 *sUnknown_203B2F4 = {0};
extern unkStruct_203B2F8 *gUnknown_203B2F8;
const UnkTextStruct2 gUnknown_80DFDD4 =
{
0x00, 0x00, 0x00, 0x00,
@ -348,19 +352,19 @@ void sub_802CDB8(void)
bool8 sub_802CDD4(u32 r0)
{
if(gUnknown_203B2F4 == NULL)
if(sUnknown_203B2F4 == NULL)
{
gUnknown_203B2F4 = MemoryAlloc(sizeof(unkStruct_203B2F4), 8);
sUnknown_203B2F4 = MemoryAlloc(sizeof(unkStruct_203B2F4), 8);
}
gUnknown_203B2F4->unk34 = r0;
gUnknown_203B2F4->unk38 = &gUnknown_203B2F4->unk3C[gUnknown_203B2F4->unk34];
sub_8006518(gUnknown_203B2F4->unk3C);
gUnknown_203B2F4->unk3C[gUnknown_203B2F4->unk34] = gUnknown_80DFDA4;
gUnknown_203B2F4->unk38->unk14 = gUnknown_203B2F4->unk9C;
sub_8012D34(gUnknown_203B2F4->unk38, 4);
sUnknown_203B2F4->unk34 = r0;
sUnknown_203B2F4->unk38 = &sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34];
sub_8006518(sUnknown_203B2F4->unk3C);
sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34] = gUnknown_80DFDA4;
sUnknown_203B2F4->unk38->unk14 = sUnknown_203B2F4->unk9C;
sub_8012D34(sUnknown_203B2F4->unk38, 4);
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2F4->unk3C, TRUE, TRUE);
sub_8013848(&gUnknown_203B2F4->input, 5, 4, r0);
sub_800641C(sUnknown_203B2F4->unk3C, TRUE, TRUE);
sub_8013848(&sUnknown_203B2F4->input, 5, 4, r0);
sub_802CF5C();
sub_802CFD0();
return TRUE;
@ -370,12 +374,12 @@ u32 sub_802CE5C(u8 r0)
{
if(r0 == 0)
{
sub_8013660(&gUnknown_203B2F4->input);
sub_8013660(&sUnknown_203B2F4->input);
return 0;
}
else
{
switch(GetKeyPress(&gUnknown_203B2F4->input))
switch(GetKeyPress(&sUnknown_203B2F4->input))
{
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
@ -383,7 +387,7 @@ u32 sub_802CE5C(u8 r0)
case INPUT_A_BUTTON:
return 3;
default:
if(sub_80138B8(&gUnknown_203B2F4->input, 1) != 0)
if(sub_80138B8(&sUnknown_203B2F4->input, 1) != 0)
{
sub_802CF5C();
sub_802CFD0();
@ -399,29 +403,29 @@ u32 sub_802CE5C(u8 r0)
u8 sub_802CEBC(void)
{
return (gUnknown_203B2F4->input.unk1E * gUnknown_203B2F4->input.unk1C) + gUnknown_203B2F4->input.menuIndex;
return (sUnknown_203B2F4->input.unk1E * sUnknown_203B2F4->input.unk1C) + sUnknown_203B2F4->input.menuIndex;
}
void sub_802CED8(u8 r0)
{
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2F4->unk3C, FALSE, FALSE);
sub_8013984(&gUnknown_203B2F4->input);
sub_800641C(sUnknown_203B2F4->unk3C, FALSE, FALSE);
sub_8013984(&sUnknown_203B2F4->input);
sub_802CF5C();
sub_802CFD0();
if(r0)
AddMenuCursorSprite(&gUnknown_203B2F4->input);
AddMenuCursorSprite(&sUnknown_203B2F4->input);
}
void sub_802CF14(void)
{
if(gUnknown_203B2F4)
if(sUnknown_203B2F4)
{
gUnknown_203B2F4->unk3C[gUnknown_203B2F4->unk34] = gUnknown_80DFD8C;
sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34] = gUnknown_80DFD8C;
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2F4->unk3C, TRUE, TRUE);
MemoryFree(gUnknown_203B2F4);
gUnknown_203B2F4 = NULL;
sub_800641C(sUnknown_203B2F4->unk3C, TRUE, TRUE);
MemoryFree(sUnknown_203B2F4);
sUnknown_203B2F4 = NULL;
}
}
@ -482,7 +486,7 @@ void sub_802CF5C(void)
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
"_0802CFCC: .4byte gUnknown_203B2F4");
"_0802CFCC: .4byte sUnknown_203B2F4");
}
@ -493,25 +497,25 @@ void sub_802CFD0(void)
s32 r5;
s32 r4;
sub_8008C54(gUnknown_203B2F4->unk34);
sub_80073B8(gUnknown_203B2F4->unk34);
r5 = r4 = gUnknown_203B2F4->input.unk1E * 8 + 10;
xxx_call_draw_string(r5,0,gUnknown_80DFDBC,gUnknown_203B2F4->unk34,0); // RESCUE EVENT
sub_8008C54(sUnknown_203B2F4->unk34);
sub_80073B8(sUnknown_203B2F4->unk34);
r5 = r4 = sUnknown_203B2F4->input.unk1E * 8 + 10;
xxx_call_draw_string(r5,0,gUnknown_80DFDBC,sUnknown_203B2F4->unk34,0); // RESCUE EVENT
r4 -= 6;
r5 = r4 + (gUnknown_203B2F4->unk9C[2] * 8);
sub_8012BC4(r5,0,gUnknown_203B2F4->input.unk1E + 1,2,7,gUnknown_203B2F4->unk34);
r5 = r4 + (sUnknown_203B2F4->unk9C[2] * 8);
sub_8012BC4(r5,0,sUnknown_203B2F4->input.unk1E + 1,2,7,sUnknown_203B2F4->unk34);
for(r5 = 0; r5 < gUnknown_203B2F4->input.unk1A; r5++)
for(r5 = 0; r5 < sUnknown_203B2F4->input.unk1A; r5++)
{
iVar1 = sub_803B344(gUnknown_203B2F4->input.unk1E * gUnknown_203B2F4->input.unk1C + r5);
local.unk0[0] = gUnknown_203B2F4->unk34;
local.y = sub_8013800(&gUnknown_203B2F4->input, r5);
iVar1 = sub_803B344(sUnknown_203B2F4->input.unk1E * sUnknown_203B2F4->input.unk1C + r5);
local.unk0[0] = sUnknown_203B2F4->unk34;
local.y = sub_8013800(&sUnknown_203B2F4->input, r5);
sub_803B35C(&iVar1->mail,&local);
local.unk43 = 1;
local.unk4C = iVar1->unk14;
CreateRescueTitle(&local);
}
sub_80073E0(gUnknown_203B2F4->unk34);
sub_80073E0(sUnknown_203B2F4->unk34);
}

View File

@ -32,7 +32,7 @@ struct unkStruct_203B30C
MenuItem unkB0[8];
UnkTextStruct2 unkF0[4];
};
extern struct unkStruct_203B30C *gUnknown_203B30C;
static EWRAM_DATA_2 struct unkStruct_203B30C *gUnknown_203B30C = {0};
struct unkStruct_203B310
{

View File

@ -24,7 +24,7 @@ struct unkStruct_203B320
UnkTextStruct2 unk60[4];
u8 unkC0[4];
};
extern struct unkStruct_203B320 *gUnknown_203B320;
static EWRAM_DATA_2 struct unkStruct_203B320 *gUnknown_203B320 = {0};
extern unkStruct_203B480 *gUnknown_203B480;

View File

@ -21,7 +21,8 @@ struct unkStruct_203B324
UnkTextStruct2 *unk14;
UnkTextStruct2 unk18[4];
};
extern struct unkStruct_203B324 *gUnknown_203B324;
static EWRAM_DATA_2 struct unkStruct_203B324 *gUnknown_203B324 = {0};
extern unkStruct_203B480 *gUnknown_203B480;

View File

@ -26,7 +26,8 @@ struct unkStruct_203B328
/* 0x116 */ u8 unk116;
u32 wonderMailType;
};
extern struct unkStruct_203B328 *gUnknown_203B328;
static EWRAM_DATA_2 struct unkStruct_203B328 *gUnknown_203B328 = {0};
extern unkStruct_203B480 *gUnknown_203B480;
const MenuItem gUnknown_80E0948[] =

View File

@ -178,36 +178,21 @@ gUnknown_203B2AA: /* 203B2AA (sub_8023868 - sub_8023C60) */
.include "src/luminous_cave.o"
.include "src/friend_list_menu.o"
.include "src/party_list_menu.o"
gUnknown_203B2BC: /* 203B2BC (sub_8027074 - sub_8027EB8) */
.space 0x4
gUnknown_203B2C0: /* 203B2C0 (sub_8027F88 - sub_8029AF4) */
.space 0x4
gUnknown_203B2C4: /* 203B2C4 (CreateThankYouMailPelipper - SetThankYouMailMenuState) */
.space 0x4
gUnknown_203B2C8: /* 203B2C8 (sub_802B2D4 - sub_802B5B8) */
.space 0x4
.include "src/friend_area_action_menu.o"
.include "src/wonder_mail.o"
.include "src/thank_you_wonder_mail.o"
.include "src/wonder_mail_2.o"
.include "src/pokemon_news1.o"
.include "src/pokemon_news2.o"
.include "src/pokemon_news3.o"
.include "src/wonder_mail_802C10C.o"
.include "src/wonder_mail_2_1.o"
.space 0x2
gUnknown_203B2E8: /* 203B2E8 (sub_802C4C8 - CountAcceptedJobs) */
.space 0x4
gUnknown_203B2EC: /* 203B2EC (sub_802C4C8 - sub_802C688) */
.space 0x4
gUnknown_203B2F0: /* 203B2F0 (InitializeJobListMenu - sub_802CD38) */
.space 0x4
gUnknown_203B2F4: /* 203B2F4 (sub_802CDD4 - sub_802CFD0) */
.space 0x4
.include "src/wonder_mail_3.o"
gUnknown_203B2F8: /* 203B2F8 (sub_802D098 - sub_802DADC) */
.space 0x4
@ -216,9 +201,7 @@ gUnknown_203B2F8: /* 203B2F8 (sub_802D098 - sub_802DADC) */
.include "src/code_802DE84.o"
.include "src/mailbox.o"
.include "src/pelipper_board.o"
gUnknown_203B30C: /* 203B30C (sub_802EF48 - sub_802F184) */
.space 0x4
.include "src/wonder_mail_3_mid.o"
gUnknown_203B310: /* 203B310 (sub_802F204 - ProceedToNextRewardSceneState) */
.space 0x4
@ -228,16 +211,9 @@ gUnknown_203B314: /* 203B314 (sub_802F73C - sub_802FA50) */
.include "src/makuhita_dojo1.o"
.include "src/makuhita_dojo2.o"
gUnknown_203B320: /* 203B320 (sub_80306A8 - sub_8030A74) */
.space 0x4
gUnknown_203B324: /* 203B324 (sub_8030D40 - sub_8030E48) */
.space 0x4
gUnknown_203B328: /* 203B328 (sub_8030F58 - sub_80313D8) */
.space 0x4
.include "src/wonder_mail_4.o"
.include "src/wonder_mail_5.o"
.include "src/wonder_mail_6.o"
.include "src/post_office_guide1.o"
.include "src/post_office_guide2.o"
.include "src/code_8031D70.o"