Decomp most of friend_rescue (#49)

* decomp most of friend_rescue

* dump corresponding data

* more data dumping and name some personality test funcs

* dump more text
This commit is contained in:
Seth Barberee
2021-08-20 20:10:15 -07:00
committed by GitHub
parent d988394595
commit 459171cf48
7 changed files with 1858 additions and 2825 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,12 +4,16 @@
struct WonderMailStruct_203B33C
{
// size: 0x568
u32 unk0;
u32 state;
u32 unk4;
u8 unk8[0x36];
u8 passwordBuffer[0x36];
u32 unk40;
u32 unk44;
u16 unk48[232];
u32 status;
u16 unk48[(0xE0 - 0x48) / 2];
s16 unkE0;
u8 unkE2[0x168 - 0xE2];
s16 unk168;
u8 unk16A[0x218 - 0x16A];
u8 unk218;
u8 padding7[3];
u32 unk21C;
@@ -31,7 +35,7 @@ struct WonderMailStruct_203B33C
u8 fill52E;
u32 unk530;
u32 unk534;
u16 unk538; // A7 << 3
s16 unk538; // A7 << 3
u32 unk53C;
u32 unk540; // A8 << 4
s16 unk544;

View File

@@ -71,15 +71,15 @@ void PrintPersonalityTypeDescription(void);
void SetPlayerGender(void);
void RevealPersonality(void);
void RevealStarter(void);
void sub_803CA8C(void);
void AdvanceToPickPartnerPrompt(void);
void PromptPickPartner(void);
void sub_803CAD4(void);
void AdvanceToPartnerSelection(void);
void CallCreatePartnerSelectionMenu(void);
void PromptForPartnerNickname(void);
void sub_803CB5C(void);
void sub_803CB7C(void);
void AdvanceToPartnerNickhameScreen(void);
void NicknamePartner(void);
void PrintEndIntroText(void);
void sub_803CBE4(void);
void AdvanceToTestEnd(void);
s32 GetValidPartners(void);
void UpdateNatureTotals(void);
void PromptNewQuestion(void);

View File

@@ -6,7 +6,7 @@
#include "pokemon.h"
#include "memory.h"
extern void sub_80338C4(u32);
extern void SetFriendRescueMenuState(u32);
extern s32 sub_80144A4(s32 *);
extern void sub_802F2C0();
extern u8 sub_809539C(u32, u32);
@@ -129,18 +129,18 @@ u32 CreateFriendRescueMenu(void)
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gAvailablePokemonNames,monName);
for(counter = 0; counter < 0x36; counter++){
gUnknown_203B33C->unk8[counter] = 0;
gUnknown_203B33C->passwordBuffer[counter] = 0;
}
gUnknown_203B33C->unk4 = 0x7E;
gUnknown_203B33C->unk52C = sub_8039880();
gUnknown_203B33C->unk52D = gUnknown_203B33C->unk52C;
sub_80338C4(0);
SetFriendRescueMenuState(0);
return 1;
}
u32 UpdateFriendRescueMenu(void)
{
switch(gUnknown_203B33C->unk0)
switch(gUnknown_203B33C->state)
{
case 0x78:
sub_8035300();

File diff suppressed because it is too large Load Diff

View File

@@ -227,13 +227,13 @@ u8 HandleTestTrackerState(void)
RevealStarter();
break;
case 6:
sub_803CA8C();
AdvanceToPickPartnerPrompt();
break;
case 7:
PromptPickPartner();
break;
case 8:
sub_803CAD4();
AdvanceToPartnerSelection();
break;
case 9:
CallCreatePartnerSelectionMenu();
@@ -242,16 +242,16 @@ u8 HandleTestTrackerState(void)
PromptForPartnerNickname();
break;
case 11:
sub_803CB5C();
AdvanceToPartnerNickhameScreen();
break;
case 12:
sub_803CB7C();
NicknamePartner();
break;
case 13:
PrintEndIntroText();
break;
case 14:
sub_803CBE4();
AdvanceToTestEnd();
break;
case 15:
iVar1 = Random() * gUnknown_203B400->FrameCounter;
@@ -471,7 +471,7 @@ void RevealStarter(void)
}
}
void sub_803CA8C(void)
void AdvanceToPickPartnerPrompt(void)
{
s32 temp;
@@ -486,7 +486,7 @@ void PromptPickPartner(void)
gUnknown_203B400->TestState = 8;
}
void sub_803CAD4(void)
void AdvanceToPartnerSelection(void)
{
s32 temp;
@@ -517,7 +517,7 @@ void PromptForPartnerNickname(void)
}
}
void sub_803CB5C(void)
void AdvanceToPartnerNickhameScreen(void)
{
s32 temp;
@@ -526,7 +526,7 @@ void sub_803CB5C(void)
}
}
void sub_803CB7C(void)
void NicknamePartner(void)
{
CopyStringtoBuffer(gUnknown_203B400->PartnerNick, GetMonSpecies(gUnknown_203B400->PartnerID));
sub_801602C(3, gUnknown_203B400->PartnerNick);
@@ -542,7 +542,7 @@ void PrintEndIntroText(void)
}
}
void sub_803CBE4(void)
void AdvanceToTestEnd(void)
{
s32 temp;
@@ -624,9 +624,9 @@ void CreatePartnerSelectionMenu(s16 starterID)
u16 HandlePartnerSelectionInput(void)
{
s32 sVar1;
s32 partnerID;
sVar1 = gUnknown_203B404->currPartnerSelection;
partnerID = gUnknown_203B404->currPartnerSelection;
gUnknown_203B404->unk16 = 0;
if (GetKeyPress(&gUnknown_203B404->unk18) == A_BUTTON) {
PlayMenuSoundEffect(0);
@@ -636,7 +636,7 @@ u16 HandlePartnerSelectionInput(void)
if (sub_80138B8(&gUnknown_203B404->unk18, 1) != '\0') {
RedrawPartnerSelectionMenu();
}
if (sVar1 != gUnknown_203B404->currPartnerSelection) {
if (partnerID != gUnknown_203B404->currPartnerSelection) {
PersonalityTest_DisplayPartnerSprite();
}
if (gUnknown_203B404->unk16 != '\0') {