Some party menu documentation (#971)

This commit is contained in:
Eduardo Quezada 2026-02-25 21:19:36 -03:00 committed by GitHub
parent fc0f91b1d6
commit ee361dece7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 103 additions and 95 deletions

View File

@ -22,7 +22,7 @@ void sub_0207FD68(PartyMenuApplication *application, u8 partySlot);
u8 PartyMenu_CheckEligibility(PartyMenuApplication *application, u8 slot);
u8 PartyMenu_CheckBattleHallEligibility(PartyMenuApplication *application, u8 slot);
u8 PartyMenu_CheckBattleCastleEligibility(PartyMenuApplication *application, u8 slot);
u8 PartyMenu_GetMemberPanelAnim(u8 param0, u8 param1);
u8 PartyMenu_GetMemberPanelAnim(u8 menuType, u8 slot);
u8 GetElementIndex(u16 param0);
u32 sub_02081930(void);
u32 sub_02081934(void);

View File

@ -32,7 +32,7 @@ typedef struct {
u8 unk_9F;
u8 unk_A0;
u8 unk_A1[4];
PartyMenu *unk_A8;
PartyMenu *partyMenu;
PokemonSummary *unk_AC;
u16 *unk_B0;
} UnkStruct_0209BBA4;

View File

@ -530,7 +530,7 @@ static int sub_0207E518(PartyMenuApplication *application)
application->partyMenu->menuSelectionResult = PARTY_MENU_EXIT_CODE_DONE;
return 32;
} else if (v0 == 2) {
if (application->partyMenu->mode != 15) {
if (application->partyMenu->mode != PARTY_MENU_MODE_BALL_SEAL) {
application->partyMenu->menuSelectionResult = PARTY_MENU_EXIT_CODE_SUMMARY;
return 32;
} else {
@ -1204,7 +1204,7 @@ const u16 *sub_0207F248(PartyMenuApplication *application)
static void DrawMemberPanel(PartyMenuApplication *application, u8 slot, u8 panelXPos, u8 panelYPos, u8 showHPBar)
{
const u16 *panel;
if (slot == 0 || (application->partyMenu->type != 0 && slot == 1)) {
if (slot == 0 || (application->partyMenu->type != PARTY_MENU_TYPE_BASIC && slot == 1)) {
panel = application->leadMemberPanel;
} else {
panel = application->backMemberPanel;
@ -1506,7 +1506,11 @@ static u8 sub_0207FA24(PartyMenuApplication *application)
v0 = sub_0207FBE0(application, &v2, &v3, v1);
}
} else if (v0 == 7) {
if ((application->partyMenu->mode != 2) && (application->partyMenu->mode != 17) && (application->partyMenu->mode != 23) && (application->partyMenu->mode != 22) && (v1 == 0)) {
if (application->partyMenu->mode != PARTY_MENU_MODE_SELECT_CONFIRM
&& application->partyMenu->mode != PARTY_MENU_MODE_BATTLE_TOWER
&& application->partyMenu->mode != PARTY_MENU_MODE_BATTLE_CASTLE
&& application->partyMenu->mode != PARTY_MENU_MODE_BATTLE_HALL
&& v1 == 0) {
v0 = sub_0207FC30(application, &v2, &v3, Unk_020F1BD4[2 + (application->prevPartySlot & 1)]);
} else if (v1 == 1) {
v0 = sub_0207FC30(application, &v2, &v3, Unk_020F1BD4[(application->prevPartySlot & 1)]);
@ -1693,10 +1697,10 @@ static u8 sub_0207FE98(PartyMenuApplication *application)
if (application->hideCancel == 0) {
return 3;
}
} else if ((application->partyMenu->mode == PARTY_MENU_MODE_SELECT_NO_PROMPT) || (application->partyMenu->mode == PARTY_MENU_MODE_NPC_TRADE)) {
} else if (application->partyMenu->mode == PARTY_MENU_MODE_SELECT_NO_PROMPT || application->partyMenu->mode == PARTY_MENU_MODE_NPC_TRADE) {
Sound_PlayEffect(SEQ_SE_CONFIRM);
return 0;
} else if ((application->partyMenu->mode == PARTY_MENU_MODE_FEED_POFFIN) || (application->partyMenu->mode == PARTY_MENU_MODE_MAILBOX)) {
} else if (application->partyMenu->mode == PARTY_MENU_MODE_FEED_POFFIN || application->partyMenu->mode == PARTY_MENU_MODE_MAILBOX) {
if (application->partyMembers[application->currPartySlot].isEgg == FALSE) {
Sound_PlayEffect(SEQ_SE_CONFIRM);
return 0;
@ -1735,7 +1739,9 @@ static u8 sub_0207FE98(PartyMenuApplication *application)
v0 = sub_0207FA00(application);
if (v0 == 2) {
if ((application->partyMenu->mode == PARTY_MENU_MODE_FEED_POFFIN) || (application->partyMenu->mode == PARTY_MENU_MODE_MAILBOX) || (application->partyMenu->mode == PARTY_MENU_MODE_BALL_SEAL)) {
if (application->partyMenu->mode == PARTY_MENU_MODE_FEED_POFFIN
|| application->partyMenu->mode == PARTY_MENU_MODE_MAILBOX
|| application->partyMenu->mode == PARTY_MENU_MODE_BALL_SEAL) {
if (application->partyMembers[application->currPartySlot].isEgg != FALSE) {
Sound_PlayEffect(SEQ_SE_DP_CUSTOM06);
return 5;
@ -1755,27 +1761,26 @@ static void sub_0207FFC8(PartyMenuApplication *application)
v0 = Heap_Alloc(HEAP_ID_PARTY_MENU, 8);
switch (application->partyMenu->mode) {
case 0:
case PARTY_MENU_MODE_FIELD:
v1 = GetContextMenuEntriesForPartyMon(application, v0);
break;
case 2:
case 17:
case PARTY_MENU_MODE_SELECT_CONFIRM:
case PARTY_MENU_MODE_BATTLE_TOWER:
v1 = sub_0208022C(application, v0);
break;
case 15:
case PARTY_MENU_MODE_BALL_SEAL:
v1 = sub_020801AC(application, v0);
break;
case 18:
case PARTY_MENU_MODE_DAYCARE:
v1 = sub_020801B8(application, v0);
break;
case 21:
case PARTY_MENU_MODE_SELECT_EGG:
v1 = sub_0208031C(application, v0);
break;
case 22:
case PARTY_MENU_MODE_BATTLE_HALL:
v1 = sub_0208027C(application, v0);
break;
case 23:
case PARTY_MENU_MODE_BATTLE_CASTLE:
v1 = sub_020802CC(application, v0);
break;
default:
@ -2384,7 +2389,10 @@ static u8 HandleWindowInputEvent(PartyMenuApplication *application, int *param1)
Window_EraseMessageBox(&application->windows[33], 1);
PartyMenu_ClearContextWindow(application);
if ((application->partyMenu->mode == PARTY_MENU_MODE_SELECT_CONFIRM) || (application->partyMenu->mode == PARTY_MENU_MODE_BATTLE_TOWER) || (application->partyMenu->mode == PARTY_MENU_MODE_BATTLE_CASTLE) || (application->partyMenu->mode == PARTY_MENU_MODE_BATTLE_HALL)) {
if (application->partyMenu->mode == PARTY_MENU_MODE_SELECT_CONFIRM
|| application->partyMenu->mode == PARTY_MENU_MODE_BATTLE_TOWER
|| application->partyMenu->mode == PARTY_MENU_MODE_BATTLE_CASTLE
|| application->partyMenu->mode == PARTY_MENU_MODE_BATTLE_HALL) {
PartyMenu_PrintShortMessage(application, pl_msg_00000453_00034, TRUE);
} else if (application->partyMenu->mode == PARTY_MENU_MODE_SELECT_EGG) {
PartyMenu_PrintShortMessage(application, pl_msg_00000453_00197, TRUE);

View File

@ -132,25 +132,25 @@ BOOL FrontierScrCmd_B0(FrontierScriptContext *param0)
v1 = sub_0209B978(param0->unk_00->unk_00);
if (v1->unk_A8->selectedMonSlot == 7) {
if (v1->partyMenu->selectedMonSlot == 7) {
*v3 = 0xff;
for (v0 = 0; v0 < 2; v0++) {
v1->unk_A1[v0] = 0;
}
} else if (v1->unk_A8->selectedMonSlot == 6) {
*v3 = v1->unk_A8->selectionOrder[0];
} else if (v1->partyMenu->selectedMonSlot == 6) {
*v3 = v1->partyMenu->selectionOrder[0];
*v3 -= 1;
*v4 = v1->unk_A8->selectionOrder[1];
*v4 = v1->partyMenu->selectionOrder[1];
if (*v4 > 0) {
*v4 -= 1;
}
}
Heap_Free(v1->unk_A8);
v1->unk_A8 = NULL;
Heap_Free(v1->partyMenu);
v1->partyMenu = NULL;
return 0;
}

View File

@ -108,55 +108,55 @@ static void ov104_02239D1C(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param
{
u8 v0;
param1->unk_A8 = Heap_Alloc(HEAP_ID_FIELD2, sizeof(PartyMenu));
MI_CpuClearFast(param1->unk_A8, sizeof(PartyMenu));
param1->partyMenu = Heap_Alloc(HEAP_ID_FIELD2, sizeof(PartyMenu));
MI_CpuClearFast(param1->partyMenu, sizeof(PartyMenu));
param1->unk_A8->party = SaveData_GetParty(param1->saveData);
param1->unk_A8->bag = SaveData_GetBag(param1->saveData);
param1->unk_A8->mailbox = SaveData_GetMailbox(param1->saveData);
param1->unk_A8->options = SaveData_GetOptions(param1->saveData);
param1->unk_A8->type = PARTY_MENU_TYPE_BASIC;
param1->partyMenu->party = SaveData_GetParty(param1->saveData);
param1->partyMenu->bag = SaveData_GetBag(param1->saveData);
param1->partyMenu->mailbox = SaveData_GetMailbox(param1->saveData);
param1->partyMenu->options = SaveData_GetOptions(param1->saveData);
param1->partyMenu->type = PARTY_MENU_TYPE_BASIC;
if (param1->unk_A0 == 1) {
param1->unk_A8->mode = 17;
param1->partyMenu->mode = PARTY_MENU_MODE_BATTLE_TOWER;
} else if (param1->unk_A0 == 5) {
param1->unk_A8->mode = 22;
param1->partyMenu->mode = PARTY_MENU_MODE_BATTLE_HALL;
} else if (param1->unk_A0 == 4) {
param1->unk_A8->mode = 23;
param1->partyMenu->mode = PARTY_MENU_MODE_BATTLE_CASTLE;
} else if (param1->unk_A0 == 6) {
param1->unk_A8->mode = 23;
param1->partyMenu->mode = PARTY_MENU_MODE_BATTLE_CASTLE;
} else {
GF_ASSERT(0);
}
param1->unk_A8->fieldSystem = fieldSystem;
param1->unk_A8->selectedMonSlot = param1->unk_9F;
param1->partyMenu->fieldSystem = fieldSystem;
param1->partyMenu->selectedMonSlot = param1->unk_9F;
for (v0 = 0; v0 < 2; v0++) {
param1->unk_A8->selectionOrder[v0] = param1->unk_A1[v0];
param1->partyMenu->selectionOrder[v0] = param1->unk_A1[v0];
}
if (param1->unk_A0 == 1) {
param1->unk_A8->minSelectionSlots = 2;
param1->unk_A8->maxSelectionSlots = 2;
param1->unk_A8->reqLevel = 100;
param1->partyMenu->minSelectionSlots = 2;
param1->partyMenu->maxSelectionSlots = 2;
param1->partyMenu->reqLevel = 100;
} else if (param1->unk_A0 == 5) {
param1->unk_A8->minSelectionSlots = 1;
param1->unk_A8->maxSelectionSlots = 1;
param1->unk_A8->reqLevel = 30;
param1->partyMenu->minSelectionSlots = 1;
param1->partyMenu->maxSelectionSlots = 1;
param1->partyMenu->reqLevel = 30;
} else if (param1->unk_A0 == 4) {
param1->unk_A8->minSelectionSlots = 2;
param1->unk_A8->maxSelectionSlots = 2;
param1->unk_A8->reqLevel = 100;
param1->partyMenu->minSelectionSlots = 2;
param1->partyMenu->maxSelectionSlots = 2;
param1->partyMenu->reqLevel = 100;
} else if (param1->unk_A0 == 6) {
param1->unk_A8->minSelectionSlots = 2;
param1->unk_A8->maxSelectionSlots = 2;
param1->unk_A8->reqLevel = 100;
param1->partyMenu->minSelectionSlots = 2;
param1->partyMenu->maxSelectionSlots = 2;
param1->partyMenu->reqLevel = 100;
} else {
GF_ASSERT(0);
}
sub_0209B988(param0, &gPokemonPartyAppTemplate, param1->unk_A8, 0, NULL);
sub_0209B988(param0, &gPokemonPartyAppTemplate, param1->partyMenu, 0, NULL);
return;
}
@ -164,7 +164,7 @@ static void ov104_02239F38(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param
{
int v0;
switch (param1->unk_A8->selectedMonSlot) {
switch (param1->partyMenu->selectedMonSlot) {
case 7:
*param1->unk_B0 = 4;
param1->unk_9D = 4;
@ -177,11 +177,11 @@ static void ov104_02239F38(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param
break;
}
MI_CpuCopy8(param1->unk_A8->selectionOrder, param1->unk_A1, 2);
param1->unk_9F = param1->unk_A8->selectedMonSlot;
Heap_Free(param1->unk_A8);
MI_CpuCopy8(param1->partyMenu->selectionOrder, param1->unk_A1, 2);
param1->unk_9F = param1->partyMenu->selectedMonSlot;
Heap_Free(param1->partyMenu);
param1->unk_A8 = NULL;
param1->partyMenu = NULL;
*param1->unk_B0 = 2;
param1->unk_9D = 2;

View File

@ -1701,7 +1701,7 @@ BOOL sub_0203C50C(FieldTask *taskMan)
return 0;
}
static void sub_0203C668(FieldSystem *fieldSystem, StartMenu *param1, u8 param2);
static void sub_0203C668(FieldSystem *fieldSystem, StartMenu *menu, u8 mode);
void *sub_0203C540(u16 fieldSystem, u8 param1, u8 param2)
{
@ -1733,7 +1733,7 @@ BOOL StartMenu_ExitMail(FieldTask *taskMan)
break;
case 0:
if (sub_02097728(menu->taskData) == 1) {
sub_0203C668(fieldSystem, menu, 12);
sub_0203C668(fieldSystem, menu, PARTY_MENU_MODE_GIVE_MAIL_DONE);
} else {
sub_02097770(menu->taskData);
menu->taskData = FieldSystem_OpenPartyMenu(fieldSystem, &menu->fieldMoveContext, v2->unk_02);
@ -1742,7 +1742,7 @@ BOOL StartMenu_ExitMail(FieldTask *taskMan)
break;
case 1:
if (sub_02097728(menu->taskData) == 1) {
sub_0203C668(fieldSystem, menu, 11);
sub_0203C668(fieldSystem, menu, PARTY_MENU_MODE_GIVE_MAIL);
} else {
sub_02097770(menu->taskData);
menu->taskData = sub_0203D20C(fieldSystem, &menu->unk_230);

View File

@ -172,7 +172,7 @@ FS_EXTERN_OVERLAY(dw_warp);
typedef struct {
enum HeapID heapID;
PartyMenu *unk_04;
PartyMenu *partyMenu;
PokemonSummary *unk_08;
} UnkStruct_0203D444;
@ -438,12 +438,12 @@ static BOOL sub_0203D444(FieldTask *param0)
switch (*v2) {
case 0:
FieldSystem_StartChildProcess(fieldSystem, &gPokemonPartyAppTemplate, v1->unk_04);
FieldSystem_StartChildProcess(fieldSystem, &gPokemonPartyAppTemplate, v1->partyMenu);
*v2 = 1;
break;
case 1:
if (!FieldSystem_IsRunningApplication(fieldSystem)) {
switch (v1->unk_04->selectedMonSlot) {
switch (v1->partyMenu->selectedMonSlot) {
case 7:
sub_0205BAAC(2);
*v2 = 4;
@ -459,7 +459,7 @@ static BOOL sub_0203D444(FieldTask *param0)
break;
case 2:
v1->unk_08 = sub_0203D670(fieldSystem, v1->heapID, SUMMARY_MODE_NORMAL);
v1->unk_08->monIndex = v1->unk_04->selectedMonSlot;
v1->unk_08->monIndex = v1->partyMenu->selectedMonSlot;
FieldSystem_OpenSummaryScreen(fieldSystem, v1->unk_08);
*v2 = 3;
break;
@ -489,7 +489,7 @@ PartyMenu *FieldSystem_OpenPartyMenu_SelectForUnionRoomBattle(FieldTask *taskMan
partyMenu->maxSelectionSlots = 2;
partyMenu->reqLevel = 30;
partyMenu->battleRegulation = NULL;
v0->unk_04 = partyMenu;
v0->partyMenu = partyMenu;
FieldTask_InitCall(taskMan, sub_0203D444, v0);

View File

@ -49,7 +49,7 @@
typedef struct {
PokemonSummary *unk_00;
PartyMenu *unk_04;
PartyMenu *partyMenu;
UnkFuncPtr_0205AB10 *unk_08;
String *unk_0C;
String *unk_10;
@ -175,7 +175,7 @@ static void sub_0205A164(UnkStruct_0205A0D8 *param0, enum HeapID heapID)
}
FieldSystem_StartChildProcess(param0->fieldSystem, &gPokemonPartyAppTemplate, partyMenu);
param0->unk_04 = partyMenu;
param0->partyMenu = partyMenu;
}
static BOOL sub_0205A258(UnkStruct_0205A0D8 *param0, FieldSystem *fieldSystem)
@ -186,9 +186,9 @@ static BOOL sub_0205A258(UnkStruct_0205A0D8 *param0, FieldSystem *fieldSystem)
return 0;
}
MI_CpuCopy8(param0->unk_04->selectionOrder, param0->unk_3D, 6);
MI_CpuCopy8(param0->partyMenu->selectionOrder, param0->unk_3D, 6);
switch (param0->unk_04->selectedMonSlot) {
switch (param0->partyMenu->selectedMonSlot) {
case 7:
param0->unk_38 = 0;
break;
@ -200,9 +200,9 @@ static BOOL sub_0205A258(UnkStruct_0205A0D8 *param0, FieldSystem *fieldSystem)
break;
}
param0->unk_3C = param0->unk_04->selectedMonSlot;
Heap_Free(param0->unk_04);
param0->unk_04 = NULL;
param0->unk_3C = param0->partyMenu->selectedMonSlot;
Heap_Free(param0->partyMenu);
param0->partyMenu = NULL;
return 1;
}

View File

@ -104,7 +104,7 @@ typedef struct {
UnkStruct_02097728 *unk_1A8;
Mailbox *mailbox;
Bag *bag;
PartyMenu *unk_1B4;
PartyMenu *partyMenu;
} UnkStruct_02072334;
typedef struct {
@ -155,7 +155,7 @@ static int sub_0207340C(UnkStruct_02072334 *param0);
static int sub_02073438(UnkStruct_02072334 *param0, int param1);
static int sub_02073480(UnkStruct_02072334 *param0);
static int sub_020734F4(UnkStruct_02072334 *param0, u8 param1);
static int sub_02073524(UnkStruct_02072334 *param0, int param1);
static int sub_02073524(UnkStruct_02072334 *param0, int mode);
static int sub_020735E8(UnkStruct_02072334 *param0);
static const ListMenuTemplate Unk_020F0504 = {
@ -510,7 +510,7 @@ static void sub_02072754(SysTask *param0, void *param1)
sub_020734F4(v2, 1);
break;
case 1:
if (!sub_02073524(v2, 14)) {
if (!sub_02073524(v2, PARTY_MENU_MODE_MAILBOX)) {
return;
}
break;
@ -524,8 +524,8 @@ static void sub_02072754(SysTask *param0, void *param1)
return;
}
v0 = v2->unk_1B4->selectedMonSlot;
Heap_Free(v2->unk_1B4);
v0 = v2->partyMenu->selectedMonSlot;
Heap_Free(v2->partyMenu);
if (v0 == 7) {
sub_02072EA4(v2, v2->unk_0C, NULL);
@ -597,14 +597,14 @@ static void sub_02072878(SysTask *param0, void *param1)
break;
case 1:
if (!sub_02073524(v4, 9)) {
if (!sub_02073524(v4, PARTY_MENU_MODE_GIVE_ITEM)) {
return;
}
v1 = v4->unk_1B4->selectedMonSlot;
v2 = v4->unk_1B4->menuSelectionResult;
v1 = v4->partyMenu->selectedMonSlot;
v2 = v4->partyMenu->menuSelectionResult;
Heap_Free(v4->unk_1B4);
Heap_Free(v4->partyMenu);
if ((v2 != 6) || (v1 == 7)) {
v4->unk_0C = sub_020726B4;
@ -630,11 +630,11 @@ static void sub_02072878(SysTask *param0, void *param1)
v4->unk_0C = sub_02072370;
break;
case 3:
if (!sub_02073524(v4, 11)) {
if (!sub_02073524(v4, PARTY_MENU_MODE_GIVE_MAIL)) {
return;
}
Heap_Free(v4->unk_1B4);
Heap_Free(v4->partyMenu);
sub_020730B8(v4, v4->unk_17, v4->unk_13B_6);
v4->unk_13B_6 = 0;
break;
@ -1212,7 +1212,7 @@ static int sub_02073524(UnkStruct_02072334 *param0, int mode)
}
FieldSystem_StartChildProcess(param0->fieldSystem, &gPokemonPartyAppTemplate, partyMenu);
param0->unk_1B4 = partyMenu;
param0->partyMenu = partyMenu;
param0->unk_12++;
break;
case 1:

View File

@ -58,7 +58,7 @@ typedef struct {
UnkStruct_ov76_0223DE00 *unk_00;
UnkStruct_02097F38_sub1 *unk_04;
UnkStruct_02097F18 *unk_08;
PartyMenu *unk_0C;
PartyMenu *partyMenu;
SaveData *saveData;
int unk_14;
} UnkStruct_02097F38;
@ -352,7 +352,7 @@ static BOOL sub_02097F38(FieldTask *param0)
}
} break;
case 3: {
PartyMenu *partyMenu = v0->unk_0C;
PartyMenu *partyMenu = v0->partyMenu;
partyMenu->party = v1->unk_1C;
partyMenu->bag = SaveData_GetBag(v0->saveData);
@ -366,7 +366,7 @@ static BOOL sub_02097F38(FieldTask *param0)
v0->unk_14 = 4;
} break;
case 4: {
PartyMenu *partyMenu = v0->unk_0C;
PartyMenu *partyMenu = v0->partyMenu;
Pokemon *v8;
BallCapsule *v9;
BallSeal *v10;
@ -398,7 +398,7 @@ static BOOL sub_02097F38(FieldTask *param0)
v0->unk_14 = 6;
break;
case 6:
Heap_Free(v0->unk_0C);
Heap_Free(v0->partyMenu);
Heap_Free(v0->unk_08);
Heap_Free(v0);
return 1;
@ -417,8 +417,8 @@ void sub_020980DC(FieldTask *param0, SaveData *saveData)
memset(v0->unk_08, 0, sizeof(UnkStruct_02097F18));
v0->unk_08->options = SaveData_GetOptions(saveData);
v0->unk_08->saveData = saveData;
v0->unk_0C = Heap_Alloc(HEAP_ID_FIELD2, sizeof(PartyMenu));
memset(v0->unk_0C, 0, sizeof(PartyMenu));
v0->partyMenu = Heap_Alloc(HEAP_ID_FIELD2, sizeof(PartyMenu));
memset(v0->partyMenu, 0, sizeof(PartyMenu));
FieldTask_InitCall(param0, sub_02097F38, v0);
}

View File

@ -31,7 +31,7 @@ typedef struct {
UnkStruct_0209C194_1 unk_08;
UnkStruct_0209C194 *unk_28;
FieldSystem *fieldSystem;
PartyMenu *unk_30;
PartyMenu *partyMenu;
PokemonSummary *unk_34;
} UnkStruct_0209C1EC;
@ -106,7 +106,7 @@ static BOOL sub_0209C280(UnkStruct_0209C1EC *param0)
} else {
CommMan_SetErrorHandling(1, 1);
param0->unk_30 = FieldSystem_OpenPartyMenu_SelectForSpinTrade(param0->fieldSystem, param0->unk_04);
param0->partyMenu = FieldSystem_OpenPartyMenu_SelectForSpinTrade(param0->fieldSystem, param0->unk_04);
param0->unk_28->unk_00 = 1;
param0->unk_00 = 2;
}
@ -118,11 +118,11 @@ static BOOL sub_0209C280(UnkStruct_0209C1EC *param0)
static BOOL sub_0209C2C0(UnkStruct_0209C1EC *param0)
{
if (FieldSystem_IsRunningApplication(param0->fieldSystem) == 0) {
int v0 = param0->unk_30->selectedMonSlot;
int v0 = param0->partyMenu->selectedMonSlot;
Heap_Free(param0->unk_30);
Heap_Free(param0->partyMenu);
if (param0->unk_30->menuSelectionResult == 1) {
if (param0->partyMenu->menuSelectionResult == 1) {
param0->unk_34 = sub_0203D670(param0->fieldSystem, HEAP_ID_APPLICATION, SUMMARY_MODE_NORMAL);
param0->unk_04 = v0;
param0->unk_34->monIndex = v0;
@ -143,7 +143,7 @@ static BOOL sub_0209C324(UnkStruct_0209C1EC *param0)
{
if (FieldSystem_IsRunningApplication(param0->fieldSystem) == 0) {
Heap_Free(param0->unk_34);
param0->unk_30 = FieldSystem_OpenPartyMenu_SelectForSpinTrade(param0->fieldSystem, param0->unk_04);
param0->partyMenu = FieldSystem_OpenPartyMenu_SelectForSpinTrade(param0->fieldSystem, param0->unk_04);
param0->unk_00 = 2;
}