Documented part of PartyManagementData struct (#517)

* Begin documenting party screen healthbar

* really minor rename of unnamed parameter

* Big rename that will probably cause issues bc VSCode's rename is not ideal

* should match

* document part of PartyManagementData struct

* apparently I missed these
idk how it build without them

* swap include order

* begin documenting unk_02084B70.c

* clean up parameter names a bit

* some more instances of windowLayout

* continue documenting fields of PartyManagementData

* more progress on PartyManagementData

* Revert PartyMenu_MakeSelection to sub_02083370 and remove enum

* name all unnamed PartyManagementData variables partyMan
This commit is contained in:
Yako 2025-05-26 20:07:32 +02:00 committed by GitHub
parent 6f0b6bcf30
commit 5e58dfdca4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
31 changed files with 1585 additions and 1571 deletions

View File

@ -1,6 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV13_02221ED0_H
#define POKEPLATINUM_STRUCT_OV13_02221ED0_H
#include "applications/pokemon_summary_screen/main.h"
#include "overlay013/struct_ov13_022236B8.h"
#include "pokemon.h"
@ -13,14 +14,14 @@ typedef struct {
u16 unk_0A;
u16 unk_0C;
u16 unk_0E;
u16 unk_10;
u16 curHP;
u16 unk_12;
u8 unk_14;
u8 unk_15;
u8 unk_16_0 : 7;
u8 unk_16_7 : 1;
u8 unk_17_0 : 3;
u8 unk_17_3 : 4;
u8 summaryStatus : 4;
u8 unk_17_7 : 1;
u16 unk_18;
u16 unk_1A;

View File

@ -30,14 +30,14 @@ typedef struct {
u16 unk_324[96];
u16 unk_3E4[96];
u16 unk_4A4[128];
PartyManagementData *unk_5A4;
PartyManagementData *partyManagementData;
SpriteSystem *unk_5A8;
SpriteManager *unk_5AC;
Sprite *unk_5B0[29];
ManagedSprite *unk_624[29];
UnkStruct_0200C440 *unk_698;
MessageLoader *unk_69C;
StringTemplate *unk_6A0;
MessageLoader *messageLoader;
StringTemplate *template;
Strbuf *unk_6A4;
Strbuf *unk_6A8;
Strbuf *unk_6AC[20];
@ -54,11 +54,11 @@ typedef struct {
u8 unk_B0F_0 : 6;
u8 unk_B0F_6 : 1;
u8 unk_B0F_7 : 1;
u8 unk_B10;
u8 unk_B11;
u8 textPrinterID;
u8 partySlot;
u8 unk_B12;
u8 unk_B13;
u16 unk_B14[6];
u16 monStats[6];
HeightWeightData *unk_B20;
OverlayMetadata *unk_B24;
GenericPointerData *unk_B28;

View File

@ -7,9 +7,9 @@
typedef struct {
Strbuf *unk_00;
u16 unk_04;
u16 unk_06;
u16 unk_08;
u16 unk_0A;
u16 curHP;
u16 maxHP;
u16 level;
u16 unk_0C;
u16 unk_0E_0 : 12;
u16 unk_0E_12 : 1;

View File

@ -1,36 +1,44 @@
#ifndef POKEPLATINUM_STRUCT_02098C44_H
#define POKEPLATINUM_STRUCT_02098C44_H
#include "struct_defs/struct_0202440C.h"
#include "struct_defs/struct_0202610C.h"
#include "struct_defs/struct_02028430.h"
#include "field/field_system_decl.h"
#include "bag.h"
#include "field_move_tasks.h"
#include "game_options.h"
#include "party.h"
typedef struct {
Party *unk_00;
void *unk_04;
void *unk_08;
Options *unk_0C;
void *unk_10;
void *unk_14;
void *unk_18;
void *unk_1C;
Party *party;
Bag *bag;
MailBox *mailBox;
Options *options;
TVBroadcast *broadcast;
BattleRegulation *battleRegulation;
FieldMoveContext *fieldMoveContext;
FieldSystem *fieldSystem;
u8 unk_20;
u8 unk_21;
u8 selectedMonSlot;
u8 unk_23;
u16 unk_24;
u16 unk_26;
u8 unk_28;
u8 unk_29;
u8 unk_2A;
u8 menuSelectionResult;
u16 usedItemID;
u16 learnedMove;
u8 selectedMoveSlot;
u8 unk_29; // These three fields (unk_29, unk_2A, unk_2B) are used exactly once in the code (sub_0203D578) which is itself only used once.
u8 unk_2A; // sub_0203D578 is used by ScrCmd_194 which is contest related so these fields are likely contest related too.
u8 unk_2B;
u8 unk_2C[6];
u8 unk_32_0 : 4;
u8 unk_32_4 : 4;
u8 unk_33;
int unk_34;
u16 unk_38;
u16 evoTargetSpecies;
u8 padding_3A[2];
int unk_3C;
int evoType;
} PartyManagementData;
#endif // POKEPLATINUM_STRUCT_02098C44_H

View File

@ -3,15 +3,15 @@
#include "struct_defs/struct_0207F248.h"
void sub_0207EA74(GameWindowLayout *param0, int param1);
u8 sub_0207EF04(GameWindowLayout *param0, u8 param1);
u8 sub_0207EF14(GameWindowLayout *param0, u8 param1);
const u16 *sub_0207F248(GameWindowLayout *param0);
void sub_0207F8F8(GameWindowLayout *param0, u8 param1);
void sub_0207FD68(GameWindowLayout *param0, u8 param1);
u8 sub_02080354(GameWindowLayout *param0, u8 param1);
u8 sub_02080404(GameWindowLayout *param0, u8 param1);
u8 sub_02080488(GameWindowLayout *param0, u8 param1);
void sub_0207EA74(GameWindowLayout *windowLayout, int param1);
u8 sub_0207EF04(GameWindowLayout *windowLayout, u8 param1);
u8 sub_0207EF14(GameWindowLayout *windowLayout, u8 partySlot);
const u16 *sub_0207F248(GameWindowLayout *windowLayout);
void sub_0207F8F8(GameWindowLayout *windowLayout, u8 partySlot);
void sub_0207FD68(GameWindowLayout *windowLayout, u8 partySlot);
u8 sub_02080354(GameWindowLayout *windowLayout, u8 partySlot);
u8 sub_02080404(GameWindowLayout *windowLayout, u8 partySlot);
u8 sub_02080488(GameWindowLayout *windowLayout, u8 partySlot);
u8 sub_020805D0(u8 param0, u8 param1);
u8 GetElementIndex(u16 param0);
u32 sub_02081930(void);
@ -19,7 +19,7 @@ u32 sub_02081934(void);
u32 sub_02081938(void);
u32 sub_0208193C(void);
void LoadScreenDataFromNARC(u32 param0, u16 *param1, u16 *param2, u16 *param3);
void LoadOverlay118(GameWindowLayout *param0);
void UnloadOverlay118(GameWindowLayout *param0);
void LoadOverlay118(GameWindowLayout *windowLayout);
void UnloadOverlay118(GameWindowLayout *windowLayout);
#endif // POKEPLATINUM_UNK_0207E0B8_H

View File

@ -7,7 +7,7 @@
void sub_020852B8(GameWindowLayout *param0);
int sub_02085348(void *param0);
BOOL sub_020857A8(u16 param0);
BOOL CheckItemSacredAsh(u16 param0);
int sub_02085804(GameWindowLayout *param0);
int sub_02085EF4(GameWindowLayout *param0);
u8 sub_02086104(GameWindowLayout *param0, Pokemon *param1);

View File

@ -267,6 +267,7 @@ static void ov13_0221FCAC(SysTask *param0, void *param1)
v0->unk_2074 = ov13_0222088C(v0);
break;
case 23:
// this one returns 23 as well
v0->unk_2074 = ov13_022208A4(v0);
break;
case 24:
@ -389,7 +390,7 @@ static u8 ov13_0221FFDC(UnkStruct_ov13_022213F0 *param0)
ov13_02221A54(v0->unk_08, v0->unk_22, v0->unk_33, v0->heapID);
param0->unk_04[v0->unk_11].unk_00 = BattleSystem_PartyPokemon(v0->unk_08, v0->unk_28, v0->unk_2C[v0->unk_11]);
v0->unk_20 = Pokemon_GetValue(param0->unk_04[v0->unk_11].unk_00, MON_DATA_CURRENT_HP, NULL);
v0->unk_20 -= param0->unk_04[v0->unk_11].unk_10;
v0->unk_20 -= param0->unk_04[v0->unk_11].curHP;
param0->unk_2075 = 25;
} else {
param0->unk_2075 = 23;
@ -874,16 +875,17 @@ static u8 ov13_022208A4(UnkStruct_ov13_022213F0 *param0)
switch (param0->unk_2078) {
case 0:
param0->unk_04[v0->unk_11].unk_00 = BattleSystem_PartyPokemon(v0->unk_08, v0->unk_28, v0->unk_2C[v0->unk_11]);
// StrBuf stuff
ov13_02224144(param0);
if (param0->unk_2076 == 5) {
param0->unk_207C[0] = (u16)Pokemon_GetValue(param0->unk_04[v0->unk_11].unk_00, MON_DATA_MOVE1_CUR_PP + v0->unk_34, NULL);
param0->unk_2078 = 2;
} else {
param0->unk_04[v0->unk_11].unk_17_3 = PokemonSummaryScreen_StatusIconAnimIdx(param0->unk_04[v0->unk_11].unk_00);
param0->unk_04[v0->unk_11].summaryStatus = PokemonSummaryScreen_StatusIconAnimIdx(param0->unk_04[v0->unk_11].unk_00);
if (param0->unk_04[v0->unk_11].unk_17_3 == 7) {
ManagedSprite_SetDrawFlag(param0->unk_1FB4[13 + v0->unk_11], 0);
if (param0->unk_04[v0->unk_11].summaryStatus == SUMMARY_CONDITION_NONE) {
ManagedSprite_SetDrawFlag(param0->unk_1FB4[13 + v0->unk_11], FALSE);
ov13_022234A8(param0, v0->unk_11);
}
@ -894,8 +896,8 @@ static u8 ov13_022208A4(UnkStruct_ov13_022213F0 *param0)
Sound_PlayEffect(SEQ_SE_DP_KAIFUKU);
break;
case 1:
if (param0->unk_04[v0->unk_11].unk_10 != param0->unk_207A) {
param0->unk_04[v0->unk_11].unk_10++;
if (param0->unk_04[v0->unk_11].curHP != param0->unk_207A) {
param0->unk_04[v0->unk_11].curHP++;
ov13_02223448(param0, v0->unk_11);
break;
}
@ -917,8 +919,8 @@ static u8 ov13_022208A4(UnkStruct_ov13_022213F0 *param0)
param0->unk_2075 = 25;
return 17;
case 4:
if (param0->unk_04[v0->unk_11].unk_10 != param0->unk_207A) {
param0->unk_04[v0->unk_11].unk_10++;
if (param0->unk_04[v0->unk_11].curHP != param0->unk_207A) {
param0->unk_04[v0->unk_11].curHP++;
ov13_02223448(param0, v0->unk_11);
ov13_022264C4(param0);
}
@ -1205,7 +1207,7 @@ static void ov13_02220F98(UnkStruct_ov13_022213F0 *param0)
param0->unk_04[v0].unk_0A = Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_SPEED, NULL);
param0->unk_04[v0].unk_0C = Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_SP_ATK, NULL);
param0->unk_04[v0].unk_0E = Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_SP_DEF, NULL);
param0->unk_04[v0].unk_10 = Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_CURRENT_HP, NULL);
param0->unk_04[v0].curHP = Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_CURRENT_HP, NULL);
param0->unk_04[v0].unk_12 = Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_MAX_HP, NULL);
param0->unk_04[v0].unk_14 = (u8)Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_TYPE_1, NULL);
param0->unk_04[v0].unk_15 = (u8)Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_TYPE_2, NULL);
@ -1218,7 +1220,7 @@ static void ov13_02220F98(UnkStruct_ov13_022213F0 *param0)
}
param0->unk_04[v0].unk_17_0 = Pokemon_GetGender(param0->unk_04[v0].unk_00);
param0->unk_04[v0].unk_17_3 = PokemonSummaryScreen_StatusIconAnimIdx(param0->unk_04[v0].unk_00);
param0->unk_04[v0].summaryStatus = PokemonSummaryScreen_StatusIconAnimIdx(param0->unk_04[v0].unk_00);
param0->unk_04[v0].unk_17_7 = (u8)Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_IS_EGG, NULL);
param0->unk_04[v0].unk_18 = (u16)Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_ABILITY, NULL);
param0->unk_04[v0].unk_1A = (u16)Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_HELD_ITEM, NULL);
@ -1606,7 +1608,7 @@ static u8 ov13_022217A4(UnkStruct_ov13_022213F0 *param0)
return 0;
}
if (v0->unk_10 == 0) {
if (v0->curHP == 0) {
v1 = MessageLoader_GetNewStrbuf(param0->unk_1FA4, 77);
StringTemplate_SetNickname(param0->unk_1FA8, 0, Pokemon_GetBoxPokemon(v0->unk_00));
StringTemplate_Format(param0->unk_1FA8, param0->unk_1FAC, v1);

View File

@ -369,7 +369,7 @@ static void ov13_02221E50(UnkStruct_ov13_022213F0 *param0, u32 param1, u16 param
{
UnkStruct_ov13_02221ED0 *v0 = &param0->unk_04[param2];
sub_0200C5BC(param0->unk_1FA0, v0->unk_10, 3, 1, &param0->unk_206C[param1], param3, param4);
sub_0200C5BC(param0->unk_1FA0, v0->curHP, 3, 1, &param0->unk_206C[param1], param3, param4);
sub_0200C578(param0->unk_1FA0, 0, &param0->unk_206C[param1], param3 + 8 * 3, param4);
sub_0200C5BC(param0->unk_1FA0, v0->unk_12, 3, 0, &param0->unk_206C[param1], param3 + 8 * 3 + 8, param4);
Window_ScheduleCopyToVRAM(&param0->unk_206C[param1]);
@ -383,9 +383,9 @@ static void ov13_02221ED0(UnkStruct_ov13_022213F0 *param0, u32 param1, u16 param
v0 = &param0->unk_04[param2];
v1 = 1;
v2 = App_PixelCount(v0->unk_10, v0->unk_12, 48);
v2 = App_PixelCount(v0->curHP, v0->unk_12, 48);
switch (HealthBar_Color(v0->unk_10, v0->unk_12, 48)) {
switch (HealthBar_Color(v0->curHP, v0->unk_12, 48)) {
case 0:
Window_ScheduleCopyToVRAM(&param0->unk_206C[param1]);
return;
@ -753,7 +753,7 @@ static void ov13_0222295C(UnkStruct_ov13_022213F0 *param0, u32 param1)
v1 = MessageLoader_GetNewStrbuf(param0->unk_1FA4, 29);
v2 = Strbuf_Init((3 + 1) * 2, param0->unk_00->heapID);
StringTemplate_SetNumber(param0->unk_1FA8, 0, v0->unk_10, 3, 0, 1);
StringTemplate_SetNumber(param0->unk_1FA8, 0, v0->curHP, 3, 0, 1);
StringTemplate_Format(param0->unk_1FA8, v2, v1);
v4 = Font_CalcStrbufWidth(FONT_SYSTEM, v2, 0);
@ -1587,15 +1587,15 @@ void ov13_02224144(UnkStruct_ov13_022213F0 *param0)
v5 |= 0x40;
}
if ((param0->unk_04[v1->unk_11].unk_10 == 0) && (v4 != 0)) {
if ((param0->unk_04[v1->unk_11].curHP == 0) && (v4 != 0)) {
v3 = MessageLoader_GetNewStrbuf(param0->unk_1FA4, 88);
StringTemplate_SetNickname(param0->unk_1FA8, 0, Pokemon_GetBoxPokemon(v0));
StringTemplate_Format(param0->unk_1FA8, param0->unk_1FAC, v3);
Strbuf_Free(v3);
} else if (param0->unk_04[v1->unk_11].unk_10 != v4) {
} else if (param0->unk_04[v1->unk_11].curHP != v4) {
v3 = MessageLoader_GetNewStrbuf(param0->unk_1FA4, 82);
StringTemplate_SetNickname(param0->unk_1FA8, 0, Pokemon_GetBoxPokemon(v0));
StringTemplate_SetNumber(param0->unk_1FA8, 1, v4 - param0->unk_04[v1->unk_11].unk_10, 3, 0, 1);
StringTemplate_SetNumber(param0->unk_1FA8, 1, v4 - param0->unk_04[v1->unk_11].curHP, 3, 0, 1);
StringTemplate_Format(param0->unk_1FA8, param0->unk_1FAC, v3);
Strbuf_Free(v3);
} else if ((Item_Get(v2, 36) != 0) || (Item_Get(v2, 37) != 0)) {

View File

@ -498,7 +498,7 @@ static void ov13_02224C14(UnkStruct_ov13_022213F0 *param0)
}
ov13_022249AC(param0->unk_1FB4[7 + v0], Unk_ov13_02229404[v0][0], Unk_ov13_02229404[v0][1]);
ov13_02224AB0(param0->unk_04[v0].unk_17_3, param0->unk_1FB4[13 + v0], Unk_ov13_02229434[v0][0], Unk_ov13_02229434[v0][1]);
ov13_02224AB0(param0->unk_04[v0].summaryStatus, param0->unk_1FB4[13 + v0], Unk_ov13_02229434[v0][0], Unk_ov13_02229434[v0][1]);
ov13_02224B28(param0->unk_04[v0].unk_1A, param0->unk_1FB4[0 + v0], Unk_ov13_02229404[v0][0] + 8, Unk_ov13_02229404[v0][1] + 8);
ov13_02224B5C(param0->unk_04[v0].unk_2D, param0->unk_1FB4[32 + v0], Unk_ov13_02229404[v0][0] + 16, Unk_ov13_02229404[v0][1] + 8);
}
@ -524,7 +524,7 @@ static void ov13_02224D08(UnkStruct_ov13_022213F0 *param0)
v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_0222923C[0], Unk_ov13_0222923C[1]);
ov13_02224AB0(v0->unk_17_3, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_0222924C[0], Unk_ov13_0222924C[1]);
ov13_02224AB0(v0->summaryStatus, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_0222924C[0], Unk_ov13_0222924C[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_022292C4[0][0]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_0222923C[0] + 8, Unk_ov13_0222923C[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_0222923C[0] + 16, Unk_ov13_0222923C[1] + 8);
@ -539,7 +539,7 @@ static void ov13_02224DA0(UnkStruct_ov13_022213F0 *param0)
v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_02229244[0], Unk_ov13_02229244[1]);
ov13_02224AB0(v0->unk_17_3, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_02229254[0], Unk_ov13_02229254[1]);
ov13_02224AB0(v0->summaryStatus, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_02229254[0], Unk_ov13_02229254[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_022292A4[0][0]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_02229244[0] + 8, Unk_ov13_02229244[1] + 8);
ov13_02224B5C(v0->unk_2D, param0->unk_1FB4[32 + param0->unk_00->unk_11], Unk_ov13_02229244[0] + 16, Unk_ov13_02229244[1] + 8);
@ -559,7 +559,7 @@ static void ov13_02224E78(UnkStruct_ov13_022213F0 *param0)
UnkStruct_ov13_02221ED0 *v0 = &param0->unk_04[param0->unk_00->unk_11];
ov13_022249AC(param0->unk_1FB4[7 + param0->unk_00->unk_11], Unk_ov13_02229264[0], Unk_ov13_02229264[1]);
ov13_02224AB0(v0->unk_17_3, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_02229224[0], Unk_ov13_02229224[1]);
ov13_02224AB0(v0->summaryStatus, param0->unk_1FB4[13 + param0->unk_00->unk_11], Unk_ov13_02229224[0], Unk_ov13_02229224[1]);
ov13_02224AD4(param0, v0, &Unk_ov13_022292B4[0][0]);
ov13_022249AC(param0->unk_1FB4[21 + param0->unk_00->unk_34], Unk_ov13_0222922C[0], Unk_ov13_0222922C[1]);
ov13_02224B28(v0->unk_1A, param0->unk_1FB4[0 + param0->unk_00->unk_11], Unk_ov13_02229264[0] + 8, Unk_ov13_02229264[1] + 8);
@ -700,28 +700,28 @@ static void ov13_02225304(ManagedSprite *param0, u8 param1)
ManagedSprite_SetAnim(param0, param1);
}
static u8 ov13_02225324(UnkStruct_ov13_02221ED0 *param0)
static u8 PartyScreen_GetHealthBarColor(UnkStruct_ov13_02221ED0 *param0)
{
if (param0->unk_10 == 0) {
return 0;
if (param0->curHP == 0) {
return BARCOLOR_EMPTY;
}
if ((param0->unk_17_3 != 7) && (param0->unk_17_3 != 6)) {
if ((param0->summaryStatus != SUMMARY_CONDITION_NONE) && (param0->summaryStatus != SUMMARY_CONDITION_FAINTED)) {
return 5;
}
switch (HealthBar_Color(param0->unk_10, param0->unk_12, 48)) {
switch (HealthBar_Color(param0->curHP, param0->unk_12, 48)) {
case 4:
return 1;
return BARCOLOR_RED;
case 3:
return 2;
return BARCOLOR_YELLOW;
case 2:
return 3;
return BARCOLOR_GREEN;
case 1:
return 4;
return BARCOLOR_MAX;
}
return 0;
return BARCOLOR_EMPTY;
}
void ov13_0222537C(UnkStruct_ov13_022213F0 *param0)
@ -734,7 +734,7 @@ void ov13_0222537C(UnkStruct_ov13_022213F0 *param0)
continue;
}
v1 = ov13_02225324(&param0->unk_04[v0]);
v1 = PartyScreen_GetHealthBarColor(&param0->unk_04[v0]);
ov13_02225304(param0->unk_1FB4[7 + v0], v1);
ManagedSprite_TickNFrames(param0->unk_1FB4[7 + v0], FX32_ONE);

View File

@ -413,7 +413,7 @@ static void ov13_02225C4C(UnkStruct_ov13_022213F0 *param0, u16 *param1, u8 param
}
}
} else {
if (param0->unk_04[param2 - 0].unk_10 == 0) {
if (param0->unk_04[param2 - 0].curHP == 0) {
for (v3 = 0; v3 < v1 * v2; v3++) {
param1[v3] = (param1[v3] & 0xfff) | (2 << 12);
}

View File

@ -111,10 +111,10 @@ static void ov104_02239D1C(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param
param1->unk_A8 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
MI_CpuClearFast(param1->unk_A8, sizeof(PartyManagementData));
param1->unk_A8->unk_00 = SaveData_GetParty(param1->saveData);
param1->unk_A8->unk_04 = SaveData_GetBag(param1->saveData);
param1->unk_A8->unk_08 = SaveData_GetMailBox(param1->saveData);
param1->unk_A8->unk_0C = SaveData_GetOptions(param1->saveData);
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->unk_21 = 0;
if (param1->unk_A0 == 1) {
@ -129,7 +129,7 @@ static void ov104_02239D1C(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param
GF_ASSERT(0);
}
param1->unk_A8->unk_1C = fieldSystem;
param1->unk_A8->fieldSystem = fieldSystem;
param1->unk_A8->selectedMonSlot = param1->unk_9F;
for (v0 = 0; v0 < 2; v0++) {

View File

@ -63,13 +63,13 @@ void ov118_021D0D80(GameWindowLayout *param0)
param0->unk_B24 = Heap_AllocFromHeap(HEAP_ID_12, sizeof(OverlayMetadata));
MI_CpuClear8(param0->unk_B24, sizeof(OverlayMetadata));
param0->unk_B24->unk_14 = param0->unk_B11;
param0->unk_B24->unk_14 = param0->partySlot;
}
int ov118_021D0DBC(GameWindowLayout *param0)
{
OverlayMetadata *v0 = param0->unk_B24;
Pokemon *v1 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11);
Pokemon *v1 = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param0->partySlot);
switch (v0->unk_00) {
case 0: {
@ -92,7 +92,7 @@ int ov118_021D0DBC(GameWindowLayout *param0)
break;
}
Pokedex_Capture(SaveData_GetPokedex(FieldSystem_GetSaveData(param0->unk_5A4->unk_1C)), v1);
Pokedex_Capture(SaveData_GetPokedex(FieldSystem_GetSaveData(param0->partyManagementData->fieldSystem)), v1);
}
v0->unk_00++;
break;
@ -113,7 +113,7 @@ int ov118_021D0DBC(GameWindowLayout *param0)
v0->unk_04++;
if (v0->unk_04 == v0->unk_08) {
sub_02082DA8(param0, param0->unk_B11);
sub_02082DA8(param0, param0->partySlot);
}
ov118_021D10E8();
@ -138,19 +138,19 @@ int ov118_021D0DBC(GameWindowLayout *param0)
case 9: {
Strbuf *v2;
v2 = MessageLoader_GetNewStrbuf(param0->unk_69C, 202);
v2 = MessageLoader_GetNewStrbuf(param0->messageLoader, 202);
StringTemplate_SetNickname(param0->unk_6A0, 0, Pokemon_GetBoxPokemon(v1));
StringTemplate_Format(param0->unk_6A0, param0->unk_6A4, v2);
StringTemplate_SetNickname(param0->template, 0, Pokemon_GetBoxPokemon(v1));
StringTemplate_Format(param0->template, param0->unk_6A4, v2);
Strbuf_Free(v2);
sub_02082708(param0, 0xffffffff, 1);
}
v0->unk_00++;
break;
case 10:
if (Text_IsPrinterActive(param0->unk_B10) == 0) {
if (Text_IsPrinterActive(param0->textPrinterID) == 0) {
ov118_021D0F70(param0);
param0->unk_5A4->unk_23 = 0;
param0->partyManagementData->menuSelectionResult = 0;
return 1;
}

View File

@ -3477,7 +3477,7 @@ static BOOL ScrCmd_2D0(ScriptContext *ctx)
u16 *v3 = ScriptContext_GetVarPointer(ctx);
u16 *v4 = ScriptContext_GetVarPointer(ctx);
void **v2 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_PARTY_MANAGEMENT_DATA);
PartyManagementData *v5 = *v2;
PartyManagementData *partyMan = *v2;
GF_ASSERT(*v2 != 0);
@ -3486,10 +3486,10 @@ static BOOL ScrCmd_2D0(ScriptContext *ctx)
if (v1 == MAX_PARTY_SIZE + 1) {
*v3 = 0xff;
} else if (v1 == MAX_PARTY_SIZE) {
u16 v0 = v5->unk_2C[0];
u16 v0 = partyMan->unk_2C[0];
*v3 = v0;
*v3 -= 1;
v0 = v5->unk_2C[1];
v0 = partyMan->unk_2C[1];
*v4 = v0;
if (*v4 > 0) {
@ -3509,7 +3509,7 @@ static BOOL ScrCmd_2D4(ScriptContext *ctx)
u16 *v4 = ScriptContext_GetVarPointer(ctx);
u16 *v5 = ScriptContext_GetVarPointer(ctx);
void **v2 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_PARTY_MANAGEMENT_DATA);
PartyManagementData *v6 = *v2;
PartyManagementData *partyMan = *v2;
GF_ASSERT(*v2 != 0);
@ -3518,13 +3518,13 @@ static BOOL ScrCmd_2D4(ScriptContext *ctx)
if (v1 == MAX_PARTY_SIZE + 1) {
*v3 = 0xff;
} else if (v1 == MAX_PARTY_SIZE) {
*v3 = v6->unk_2C[0];
*v3 = partyMan->unk_2C[0];
*v3 -= 1;
*v4 = v6->unk_2C[1];
*v4 = partyMan->unk_2C[1];
*v4 -= 1;
*v5 = v6->unk_2C[2];
*v5 = partyMan->unk_2C[2];
if (*v5 > 0) {
*v5 -= 1;
@ -3543,7 +3543,7 @@ static BOOL ScrCmd_2DB(ScriptContext *ctx)
u16 *v4 = ScriptContext_GetVarPointer(ctx);
u16 *v5 = ScriptContext_GetVarPointer(ctx);
void **v2 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_PARTY_MANAGEMENT_DATA);
PartyManagementData *v6 = *v2;
PartyManagementData *partyMan = *v2;
GF_ASSERT(*v2 != 0);
@ -3552,13 +3552,13 @@ static BOOL ScrCmd_2DB(ScriptContext *ctx)
if (v1 == MAX_PARTY_SIZE + 1) {
*v3 = 0xff;
} else if (v1 == MAX_PARTY_SIZE) {
*v3 = v6->unk_2C[0];
*v3 = partyMan->unk_2C[0];
*v3 -= 1;
*v4 = v6->unk_2C[1];
*v4 = partyMan->unk_2C[1];
*v4 -= 1;
*v5 = v6->unk_2C[2];
*v5 = partyMan->unk_2C[2];
if (*v5 > 0) {
*v5 -= 1;
@ -5147,8 +5147,8 @@ static BOOL ScrCmd_2BA(ScriptContext *ctx)
if (*v2 != 0) {
void **v1 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_PARTY_MANAGEMENT_DATA);
PartyManagementData *v0 = *v1;
Heap_FreeToHeap(v0);
PartyManagementData *partyMan = *v1;
Heap_FreeToHeap(partyMan);
}
return FALSE;

View File

@ -1012,7 +1012,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
memcpy(partyMan, menu->taskData, sizeof(PartyManagementData));
Heap_FreeToHeap(menu->taskData);
switch (partyMan->unk_23) {
switch (partyMan->menuSelectionResult) {
case 1: {
PokemonSummary *summary = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PokemonSummary));
@ -1043,7 +1043,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
summary->dataType = SUMMARY_DATA_PARTY_MON;
summary->monIndex = partyMan->selectedMonSlot;
summary->monMax = 1;
summary->move = partyMan->unk_26;
summary->move = partyMan->learnedMove;
summary->mode = SUMMARY_MODE_SELECT_MOVE;
summary->dexMode = SaveData_GetDexMode(fieldSystem->saveData);
summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData);
@ -1055,7 +1055,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
UnkStruct_0203C1C8 *v5 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(UnkStruct_0203C1C8));
v5->unk_00 = partyMan->unk_24;
v5->unk_00 = partyMan->usedItemID;
v5->unk_02 = 0;
menu->unk_260 = v5;
@ -1070,7 +1070,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
summary->dataType = SUMMARY_DATA_PARTY_MON;
summary->monIndex = partyMan->selectedMonSlot;
summary->monMax = 1;
summary->move = partyMan->unk_26;
summary->move = partyMan->learnedMove;
summary->mode = SUMMARY_MODE_SELECT_MOVE;
summary->dexMode = SaveData_GetDexMode(fieldSystem->saveData);
summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData);
@ -1092,15 +1092,15 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
case 6: {
UnkStruct_02097728 *v8;
v8 = sub_0203D920(fieldSystem, 2, partyMan->selectedMonSlot, Item_MailNumber(partyMan->unk_24), 11);
v8 = sub_0203D920(fieldSystem, 2, partyMan->selectedMonSlot, Item_MailNumber(partyMan->usedItemID), 11);
menu->taskData = v8;
if (partyMan->unk_20 == 10) {
menu->unk_260 = sub_0203C540(
partyMan->unk_24, 0, partyMan->selectedMonSlot);
partyMan->usedItemID, 0, partyMan->selectedMonSlot);
} else {
menu->unk_260 = sub_0203C540(
partyMan->unk_24, 1, partyMan->selectedMonSlot);
partyMan->usedItemID, 1, partyMan->selectedMonSlot);
}
sub_0203B674(menu, sub_0203C558);
@ -1113,7 +1113,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
v9 = sub_0203D984(fieldSystem, v10, HEAP_ID_FIELDMAP);
menu->taskData = v9;
menu->unk_260 = sub_0203C540(partyMan->unk_24, 2, partyMan->selectedMonSlot);
menu->unk_260 = sub_0203C540(partyMan->usedItemID, 2, partyMan->selectedMonSlot);
sub_0203B674(menu, sub_0203C558);
} break;
@ -1134,11 +1134,11 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
case 8: {
UnkStruct_0203C7B8 *v14 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(UnkStruct_0203C7B8));
v14->unk_02 = partyMan->unk_24;
v14->unk_02 = partyMan->usedItemID;
v14->unk_01 = 3;
v14->unk_00 = partyMan->selectedMonSlot;
v14->unk_04 = partyMan->unk_38;
v14->unk_08 = partyMan->unk_3C;
v14->unk_04 = partyMan->evoTargetSpecies;
v14->unk_08 = partyMan->evoType;
menu->taskData = v14;
menu->state = START_MENU_STATE_EVOLVE_INIT;
@ -1149,8 +1149,8 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
v15->unk_02 = MapHeader_GetMapEvolutionMethod(fieldSystem->location->mapId);
v15->unk_01 = 0;
v15->unk_00 = partyMan->selectedMonSlot;
v15->unk_04 = partyMan->unk_38;
v15->unk_08 = partyMan->unk_3C;
v15->unk_04 = partyMan->evoTargetSpecies;
v15->unk_08 = partyMan->evoType;
menu->taskData = v15;
menu->state = START_MENU_STATE_EVOLVE_INIT;
} break;
@ -1170,7 +1170,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
FieldMoveTaskContext v16;
FieldMovePokemon fieldMoveMon;
fieldMoveMon.fieldMove = partyMan->unk_23 - 11;
fieldMoveMon.fieldMove = partyMan->menuSelectionResult - 11;
fieldMoveMon.fieldMonId = partyMan->selectedMonSlot;
fieldMoveMon.fieldTask = taskMan;
@ -1262,23 +1262,23 @@ static BOOL sub_0203BC5C(FieldTask *taskMan)
sub_0203C2D8(taskMan, sub_0207CB94(v2));
break;
case 2: {
PartyManagementData *v6;
PartyManagementData *partyMan;
v6 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
memset(v6, 0, sizeof(PartyManagementData));
partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
memset(partyMan, 0, sizeof(PartyManagementData));
v6->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v6->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v6->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v6->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v6->unk_18 = &menu->fieldMoveContext;
v6->unk_21 = 0;
v6->unk_20 = 9;
v6->unk_24 = sub_0207CB94(v2);
v6->unk_1C = fieldSystem;
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->fieldMoveContext = &menu->fieldMoveContext;
partyMan->unk_21 = 0;
partyMan->unk_20 = 9;
partyMan->usedItemID = sub_0207CB94(v2);
partyMan->fieldSystem = fieldSystem;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v6);
menu->taskData = v6;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
menu->taskData = partyMan;
sub_0203B674(menu, sub_0203B7C0);
} break;
case 4: {
@ -1303,29 +1303,29 @@ static BOOL sub_0203BC5C(FieldTask *taskMan)
menu->unk_260 = sub_0203C540(v10, 0, (u8)v9);
sub_0203B674(menu, sub_0203C558);
} else {
PartyManagementData *v13;
PartyManagementData *partyMan;
v13 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
memset(v13, 0, sizeof(PartyManagementData));
partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
memset(partyMan, 0, sizeof(PartyManagementData));
v13->unk_00 = v7;
v13->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v13->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v13->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v13->unk_18 = &menu->fieldMoveContext;
v13->unk_21 = 0;
v13->unk_24 = sub_0207CB94(v2);
v13->selectedMonSlot = (u8)v9;
v13->unk_1C = fieldSystem;
partyMan->party = v7;
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->fieldMoveContext = &menu->fieldMoveContext;
partyMan->unk_21 = 0;
partyMan->usedItemID = sub_0207CB94(v2);
partyMan->selectedMonSlot = (u8)v9;
partyMan->fieldSystem = fieldSystem;
if (v13->unk_24 == 0) {
v13->unk_20 = 0;
if (partyMan->usedItemID == 0) {
partyMan->unk_20 = 0;
} else {
v13->unk_20 = 10;
partyMan->unk_20 = 10;
}
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v13);
menu->taskData = v13;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
menu->taskData = partyMan;
sub_0203B674(menu, sub_0203B7C0);
}
} break;
@ -1581,38 +1581,38 @@ static BOOL sub_0203C1C8(FieldTask *taskMan)
switch (v2->mode) {
case SUMMARY_MODE_SELECT_MOVE: {
PartyManagementData *v3;
PartyManagementData *partyMan;
UnkStruct_0203C1C8 *v4;
v3 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
v4 = (UnkStruct_0203C1C8 *)menu->unk_260;
memset(v3, 0, sizeof(PartyManagementData));
memset(partyMan, 0, sizeof(PartyManagementData));
v3->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v3->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v3->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v3->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v3->unk_18 = &menu->fieldMoveContext;
v3->unk_21 = 0;
v3->unk_1C = fieldSystem;
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->fieldMoveContext = &menu->fieldMoveContext;
partyMan->unk_21 = 0;
partyMan->fieldSystem = fieldSystem;
if (v4->unk_00 != 0) {
v3->unk_20 = 7;
v3->unk_34 = 0;
partyMan->unk_20 = 7;
partyMan->unk_34 = 0;
} else {
v3->unk_20 = 8;
v3->unk_34 = v4->unk_02;
partyMan->unk_20 = 8;
partyMan->unk_34 = v4->unk_02;
}
v3->unk_24 = v4->unk_00;
v3->selectedMonSlot = v2->monIndex;
v3->unk_26 = v2->move;
v3->unk_28 = v2->selectedMoveSlot;
partyMan->usedItemID = v4->unk_00;
partyMan->selectedMonSlot = v2->monIndex;
partyMan->learnedMove = v2->move;
partyMan->selectedMoveSlot = v2->selectedMoveSlot;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v3);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
Heap_FreeToHeap(menu->unk_260);
menu->taskData = v3;
menu->taskData = partyMan;
sub_0203B674(menu, sub_0203B7C0);
} break;
default:
@ -1809,18 +1809,18 @@ static void sub_0203C668(FieldSystem *fieldSystem, StartMenu *menu, u8 param2)
partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
memset(partyMan, 0, sizeof(PartyManagementData));
partyMan->unk_00 = SaveData_GetParty(fieldSystem->saveData);
partyMan->unk_04 = SaveData_GetBag(fieldSystem->saveData);
partyMan->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
partyMan->unk_18 = &menu->fieldMoveContext;
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->fieldMoveContext = &menu->fieldMoveContext;
partyMan->unk_21 = 0;
partyMan->unk_24 = v0->unk_00;
partyMan->usedItemID = v0->unk_00;
partyMan->selectedMonSlot = v0->unk_02;
partyMan->unk_20 = param2;
partyMan->unk_1C = fieldSystem;
partyMan->fieldSystem = fieldSystem;
sub_02097750(menu->taskData, Party_GetPokemonBySlotIndex(partyMan->unk_00, v0->unk_02));
sub_02097750(menu->taskData, Party_GetPokemonBySlotIndex(partyMan->party, v0->unk_02));
sub_02097770(menu->taskData);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);

View File

@ -377,47 +377,47 @@ void FieldSystem_OpenSummaryScreen(FieldSystem *fieldSystem, void *overlayArgs)
static PartyManagementData *sub_0203D344(int heapID, FieldSystem *fieldSystem, int param2, int param3)
{
PartyManagementData *v0 = Heap_AllocFromHeap(heapID, sizeof(PartyManagementData));
PartyManagementData *partyMan = Heap_AllocFromHeap(heapID, sizeof(PartyManagementData));
MI_CpuClearFast(v0, sizeof(PartyManagementData));
MI_CpuClearFast(partyMan, sizeof(PartyManagementData));
v0->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v0->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v0->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v0->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v0->unk_21 = param2;
v0->unk_20 = param3;
v0->unk_1C = fieldSystem;
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->unk_21 = param2;
partyMan->unk_20 = param3;
partyMan->fieldSystem = fieldSystem;
return v0;
return partyMan;
}
void *sub_0203D390(FieldSystem *fieldSystem, FieldMoveContext *param1, u8 param2)
{
PartyManagementData *v0 = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 0);
PartyManagementData *partyMan = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 0);
v0->unk_18 = param1;
v0->selectedMonSlot = param2;
partyMan->fieldMoveContext = param1;
partyMan->selectedMonSlot = param2;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v0);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
return v0;
return partyMan;
}
void *sub_0203D3C0(int param0, FieldSystem *fieldSystem)
{
PartyManagementData *v0 = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 3);
PartyManagementData *partyMan = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 3);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v0);
return v0;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
return partyMan;
}
void *sub_0203D3E4(int param0, FieldSystem *fieldSystem)
{
PartyManagementData *v0 = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 19);
PartyManagementData *partyMan = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 19);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v0);
return v0;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
return partyMan;
}
int PartyManagementData_GetSelectedSlot(PartyManagementData *partyMan)
@ -437,8 +437,8 @@ void *sub_0203D410(int param0, FieldSystem *fieldSystem, int param2)
int sub_0203D438(void *param0)
{
PartyManagementData *v0 = param0;
return v0->unk_23;
PartyManagementData *partyMan = param0;
return partyMan->menuSelectionResult;
}
int sub_0203D440(void *param0)
@ -501,40 +501,40 @@ static BOOL sub_0203D444(FieldTask *param0)
void *sub_0203D50C(FieldTask *taskMan, int heapID)
{
UnkStruct_0203D444 *v0;
PartyManagementData *v1;
PartyManagementData *partyMan;
FieldSystem *fieldSystem = FieldTask_GetFieldSystem(taskMan);
v0 = Heap_AllocFromHeap(heapID, sizeof(UnkStruct_0203D444));
v0->heapID = heapID;
v1 = sub_0203D344(heapID, fieldSystem, 0, 2);
v1->unk_32_0 = 2;
v1->unk_32_4 = 2;
v1->unk_33 = 30;
v1->unk_14 = NULL;
v0->unk_04 = v1;
partyMan = sub_0203D344(heapID, fieldSystem, 0, 2);
partyMan->unk_32_0 = 2;
partyMan->unk_32_4 = 2;
partyMan->unk_33 = 30;
partyMan->battleRegulation = NULL;
v0->unk_04 = partyMan;
FieldTask_InitCall(taskMan, sub_0203D444, v0);
return v1;
return partyMan;
}
void *sub_0203D578(int param0, FieldSystem *fieldSystem, int param2, int param3, int param4, int param5)
{
PartyManagementData *v0 = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 13);
PartyManagementData *partyMan = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 13);
v0->selectedMonSlot = param5;
v0->unk_29 = 2;
v0->unk_2A = param2;
partyMan->selectedMonSlot = param5;
partyMan->unk_29 = 2;
partyMan->unk_2A = param2;
if (param4 == 0) {
v0->unk_2B = param3;
partyMan->unk_2B = param3;
} else {
v0->unk_2B = 0;
partyMan->unk_2B = 0;
}
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v0);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
return v0;
return partyMan;
}
void *sub_0203D5C8(int param0, FieldSystem *fieldSystem, int param2)
@ -562,12 +562,12 @@ void *sub_0203D5C8(int param0, FieldSystem *fieldSystem, int param2)
void *sub_0203D644(FieldSystem *fieldSystem, int param1)
{
PartyManagementData *v0 = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 21);
PartyManagementData *partyMan = sub_0203D344(HEAP_ID_FIELDMAP, fieldSystem, 0, 21);
v0->selectedMonSlot = param1;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v0);
partyMan->selectedMonSlot = param1;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
return v0;
return partyMan;
}
PokemonSummary *sub_0203D670(FieldSystem *fieldSystem, int heapID, int mode)
@ -1712,24 +1712,24 @@ void *sub_0203E564(FieldSystem *fieldSystem, u8 param1, u8 param2, u16 param3, i
PartyManagementData *sub_0203E598(FieldSystem *fieldSystem, int heapID, int param2)
{
PartyManagementData *v0 = Heap_AllocFromHeap(heapID, sizeof(PartyManagementData));
memset(v0, 0, sizeof(PartyManagementData));
PartyManagementData *partyMan = Heap_AllocFromHeap(heapID, sizeof(PartyManagementData));
memset(partyMan, 0, sizeof(PartyManagementData));
v0->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v0->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v0->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v0->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v0->unk_10 = SaveData_GetTVBroadcast(fieldSystem->saveData);
v0->unk_18 = NULL;
v0->unk_21 = 0;
v0->unk_20 = 5;
v0->unk_24 = param2;
v0->selectedMonSlot = 0;
v0->unk_1C = fieldSystem;
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData);
partyMan->fieldMoveContext = NULL;
partyMan->unk_21 = 0;
partyMan->unk_20 = 5;
partyMan->usedItemID = param2;
partyMan->selectedMonSlot = 0;
partyMan->fieldSystem = fieldSystem;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v0);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
return v0;
return partyMan;
}
void *sub_0203E608(FieldSystem *fieldSystem, int heapID)

View File

@ -428,11 +428,11 @@ void sub_0204A358(UnkStruct_0204AFC4 *param0, FieldTask *param1, void **param2)
BOOL sub_0204A378(UnkStruct_0204AFC4 *param0, void **param1, SaveData *saveData)
{
u16 v0 = 0;
PartyManagementData *v1 = *param1;
PartyManagementData *partyMan = *param1;
Party *v2;
Pokemon *v3;
if ((v1->unk_23 != 0) || (v1->selectedMonSlot == 7)) {
if ((partyMan->menuSelectionResult != 0) || (partyMan->selectedMonSlot == 7)) {
Heap_FreeToHeap(*param1);
*param1 = NULL;
return 0;
@ -441,7 +441,7 @@ BOOL sub_0204A378(UnkStruct_0204AFC4 *param0, void **param1, SaveData *saveData)
v2 = SaveData_GetParty(saveData);
for (v0 = 0; v0 < param0->unk_0E; v0++) {
param0->unk_2A[v0] = v1->unk_2C[v0] - 1;
param0->unk_2A[v0] = partyMan->unk_2C[v0] - 1;
v3 = Party_GetPokemonBySlotIndex(v2, param0->unk_2A[v0]);
param0->unk_2E[v0] = Pokemon_GetValue(v3, MON_DATA_SPECIES, NULL);
param0->unk_36[v0] = Pokemon_GetValue(v3, MON_DATA_HELD_ITEM, NULL);

View File

@ -329,38 +329,38 @@ static int sub_0204F50C(UnkStruct_0204F470 *param0, FieldSystem *fieldSystem, in
{
u8 v0;
PartyManagementData *v1 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
MI_CpuClearFast(v1, sizeof(PartyManagementData));
PartyManagementData *partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
MI_CpuClearFast(partyMan, sizeof(PartyManagementData));
v1->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v1->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v1->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v1->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
v1->unk_21 = 0;
partyMan->unk_21 = 0;
v1->unk_20 = 22;
v1->unk_1C = fieldSystem;
partyMan->unk_20 = 22;
partyMan->fieldSystem = fieldSystem;
v1->selectedMonSlot = param0->unk_05;
partyMan->selectedMonSlot = param0->unk_05;
for (v0 = 0; v0 < 2; v0++) {
v1->unk_2C[v0] = param0->unk_06[v0];
partyMan->unk_2C[v0] = param0->unk_06[v0];
}
v1->unk_33 = 30;
partyMan->unk_33 = 30;
v1->unk_32_0 = 1;
v1->unk_32_4 = 1;
partyMan->unk_32_0 = 1;
partyMan->unk_32_4 = 1;
if (param0->unk_04 == 1) {
v1->unk_32_0 = 2;
v1->unk_32_4 = 2;
partyMan->unk_32_0 = 2;
partyMan->unk_32_4 = 2;
}
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v1);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
*(param0->unk_08) = v1;
*(param0->unk_08) = partyMan;
return UnkEnum_0204F13C_2;
}
@ -368,15 +368,15 @@ static int sub_0204F50C(UnkStruct_0204F470 *param0, FieldSystem *fieldSystem, in
static int sub_0204F5D8(UnkStruct_0204F470 *param0, FieldSystem *fieldSystem)
{
int v0;
PartyManagementData *v1;
PartyManagementData *partyMan;
if (FieldSystem_IsRunningApplication(fieldSystem)) {
return UnkEnum_0204F13C_2;
}
v1 = *(param0->unk_08);
partyMan = *(param0->unk_08);
switch (v1->selectedMonSlot) {
switch (partyMan->selectedMonSlot) {
case 7:
return UnkEnum_0204F13C_5;
@ -387,11 +387,11 @@ static int sub_0204F5D8(UnkStruct_0204F470 *param0, FieldSystem *fieldSystem)
break;
}
MI_CpuCopy8(v1->unk_2C, param0->unk_06, 2);
MI_CpuCopy8(partyMan->unk_2C, param0->unk_06, 2);
param0->unk_05 = v1->selectedMonSlot;
param0->unk_05 = partyMan->selectedMonSlot;
Heap_FreeToHeap(v1);
Heap_FreeToHeap(partyMan);
*(param0->unk_08) = NULL;
return UnkEnum_0204F13C_3;
}

View File

@ -250,36 +250,36 @@ static BOOL sub_0204FDE8(FieldTask *param0)
static int sub_0204FE50(UnkStruct_0204FE50 *param0, FieldSystem *fieldSystem, int param2)
{
u8 v0;
PartyManagementData *v1 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
PartyManagementData *partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
MI_CpuClearFast(v1, sizeof(PartyManagementData));
MI_CpuClearFast(partyMan, sizeof(PartyManagementData));
v1->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v1->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v1->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v1->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
v1->unk_21 = 0;
v1->unk_20 = 23;
v1->unk_1C = fieldSystem;
v1->selectedMonSlot = param0->unk_05;
partyMan->unk_21 = 0;
partyMan->unk_20 = 23;
partyMan->fieldSystem = fieldSystem;
partyMan->selectedMonSlot = param0->unk_05;
for (v0 = 0; v0 < 3; v0++) {
v1->unk_2C[v0] = param0->unk_06[v0];
partyMan->unk_2C[v0] = param0->unk_06[v0];
}
v1->unk_33 = 100;
v1->unk_32_0 = 3;
v1->unk_32_4 = 3;
partyMan->unk_33 = 100;
partyMan->unk_32_0 = 3;
partyMan->unk_32_4 = 3;
if (param0->unk_04 == 2) {
v1->unk_32_0 = 2;
v1->unk_32_4 = 2;
partyMan->unk_32_0 = 2;
partyMan->unk_32_4 = 2;
}
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v1);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
*(param0->unk_0C) = v1;
*(param0->unk_0C) = partyMan;
return 1;
}
@ -287,15 +287,15 @@ static int sub_0204FE50(UnkStruct_0204FE50 *param0, FieldSystem *fieldSystem, in
static int sub_0204FF1C(UnkStruct_0204FE50 *param0, FieldSystem *fieldSystem)
{
int v0;
PartyManagementData *v1;
PartyManagementData *partyMan;
if (FieldSystem_IsRunningApplication(fieldSystem)) {
return 1;
}
v1 = *(param0->unk_0C);
partyMan = *(param0->unk_0C);
switch (v1->selectedMonSlot) {
switch (partyMan->selectedMonSlot) {
case 7:
return 4;
case 6:
@ -304,9 +304,9 @@ static int sub_0204FF1C(UnkStruct_0204FE50 *param0, FieldSystem *fieldSystem)
break;
}
MI_CpuCopy8(v1->unk_2C, param0->unk_06, 3);
param0->unk_05 = v1->selectedMonSlot;
Heap_FreeToHeap(v1);
MI_CpuCopy8(partyMan->unk_2C, param0->unk_06, 3);
param0->unk_05 = partyMan->selectedMonSlot;
Heap_FreeToHeap(partyMan);
*(param0->unk_0C) = NULL;
return 2;

View File

@ -240,34 +240,34 @@ static BOOL sub_02050314(FieldTask *param0)
static int sub_0205037C(UnkStruct_0205037C *param0, FieldSystem *fieldSystem, int param2)
{
u8 v0;
PartyManagementData *v1 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
PartyManagementData *partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
MI_CpuClearFast(v1, sizeof(PartyManagementData));
MI_CpuClearFast(partyMan, sizeof(PartyManagementData));
v1->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v1->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v1->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v1->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v1->unk_21 = 0;
v1->unk_20 = 23;
v1->unk_1C = fieldSystem;
v1->selectedMonSlot = param0->unk_05;
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->unk_21 = 0;
partyMan->unk_20 = 23;
partyMan->fieldSystem = fieldSystem;
partyMan->selectedMonSlot = param0->unk_05;
for (v0 = 0; v0 < 3; v0++) {
v1->unk_2C[v0] = param0->unk_06[v0];
partyMan->unk_2C[v0] = param0->unk_06[v0];
}
v1->unk_33 = 100;
v1->unk_32_0 = 3;
v1->unk_32_4 = 3;
partyMan->unk_33 = 100;
partyMan->unk_32_0 = 3;
partyMan->unk_32_4 = 3;
if (param0->unk_04 == 2) {
v1->unk_32_0 = 2;
v1->unk_32_4 = 2;
partyMan->unk_32_0 = 2;
partyMan->unk_32_4 = 2;
}
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v1);
*(param0->unk_0C) = v1;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
*(param0->unk_0C) = partyMan;
return 1;
}
@ -275,15 +275,15 @@ static int sub_0205037C(UnkStruct_0205037C *param0, FieldSystem *fieldSystem, in
static int sub_02050448(UnkStruct_0205037C *param0, FieldSystem *fieldSystem)
{
int v0;
PartyManagementData *v1;
PartyManagementData *partyMan;
if (FieldSystem_IsRunningApplication(fieldSystem)) {
return 1;
}
v1 = *(param0->unk_0C);
partyMan = *(param0->unk_0C);
switch (v1->selectedMonSlot) {
switch (partyMan->selectedMonSlot) {
case 7:
return 4;
case 6:
@ -292,9 +292,9 @@ static int sub_02050448(UnkStruct_0205037C *param0, FieldSystem *fieldSystem)
break;
}
MI_CpuCopy8(v1->unk_2C, param0->unk_06, 3);
param0->unk_05 = v1->selectedMonSlot;
Heap_FreeToHeap(v1);
MI_CpuCopy8(partyMan->unk_2C, param0->unk_06, 3);
param0->unk_05 = partyMan->selectedMonSlot;
Heap_FreeToHeap(partyMan);
*(param0->unk_0C) = NULL;
return 2;

View File

@ -149,34 +149,34 @@ static void sub_0205A0D8(UnkStruct_0205A0D8 *param0, FieldSystem *fieldSystem, P
static void sub_0205A164(UnkStruct_0205A0D8 *param0, int heapID)
{
int v0;
PartyManagementData *v1 = Heap_AllocFromHeap(heapID, sizeof(PartyManagementData));
PartyManagementData *partyMan = Heap_AllocFromHeap(heapID, sizeof(PartyManagementData));
MI_CpuClear8(v1, sizeof(PartyManagementData));
MI_CpuClear8(partyMan, sizeof(PartyManagementData));
v1->unk_0C = SaveData_GetOptions(param0->fieldSystem->saveData);
v1->unk_14 = (void *)param0->fieldSystem->unk_B0;
v1->unk_00 = SaveData_GetParty(param0->fieldSystem->saveData);
v1->unk_04 = SaveData_GetBag(param0->fieldSystem->saveData);
v1->unk_21 = 0;
v1->unk_20 = 2;
partyMan->options = SaveData_GetOptions(param0->fieldSystem->saveData);
partyMan->battleRegulation = (void *)param0->fieldSystem->unk_B0;
partyMan->party = SaveData_GetParty(param0->fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(param0->fieldSystem->saveData);
partyMan->unk_21 = 0;
partyMan->unk_20 = 2;
if (param0->fieldSystem->unk_B0) {
v1->unk_32_0 = sub_02026074(param0->fieldSystem->unk_B0, 1);
v1->unk_32_4 = v1->unk_32_0;
partyMan->unk_32_0 = sub_02026074(param0->fieldSystem->unk_B0, 1);
partyMan->unk_32_4 = partyMan->unk_32_0;
} else {
v1->unk_32_0 = 3;
v1->unk_32_4 = 3;
partyMan->unk_32_0 = 3;
partyMan->unk_32_4 = 3;
}
v1->unk_33 = 100;
v1->selectedMonSlot = param0->unk_3C;
partyMan->unk_33 = 100;
partyMan->selectedMonSlot = param0->unk_3C;
for (v0 = 0; v0 < 6; v0++) {
v1->unk_2C[v0] = param0->unk_3D[v0];
partyMan->unk_2C[v0] = param0->unk_3D[v0];
}
FieldSystem_StartChildProcess(param0->fieldSystem, &Unk_020F1E88, v1);
param0->unk_04 = v1;
FieldSystem_StartChildProcess(param0->fieldSystem, &Unk_020F1E88, partyMan);
param0->unk_04 = partyMan;
}
static BOOL sub_0205A258(UnkStruct_0205A0D8 *param0, FieldSystem *fieldSystem)

View File

@ -331,28 +331,28 @@ static void sub_02068630(UnkStruct_02068630 *param0, const UnkStruct_020684D0 *p
{
FieldSystem *fieldSystem;
StartMenu *menu;
PartyManagementData *v2;
PartyManagementData *partyMan;
fieldSystem = FieldTask_GetFieldSystem(param0->unk_00);
menu = FieldTask_GetEnv(param0->unk_00);
v2 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
memset(v2, 0, sizeof(PartyManagementData));
memset(partyMan, 0, sizeof(PartyManagementData));
v2->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v2->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v2->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v2->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v2->unk_10 = SaveData_GetTVBroadcast(fieldSystem->saveData);
v2->unk_18 = &menu->fieldMoveContext;
v2->unk_21 = 0;
v2->unk_20 = 5;
v2->unk_1C = fieldSystem;
v2->unk_24 = param0->unk_04;
v2->selectedMonSlot = param0->unk_06;
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData);
partyMan->fieldMoveContext = &menu->fieldMoveContext;
partyMan->unk_21 = 0;
partyMan->unk_20 = 5;
partyMan->fieldSystem = fieldSystem;
partyMan->usedItemID = param0->unk_04;
partyMan->selectedMonSlot = param0->unk_06;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v2);
menu->taskData = v2;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
menu->taskData = partyMan;
sub_0203B674(menu, sub_0203B7C0);
}
@ -580,28 +580,28 @@ static void sub_02068A34(UnkStruct_02068630 *param0, const UnkStruct_020684D0 *p
{
FieldSystem *fieldSystem;
StartMenu *menu;
PartyManagementData *v2;
PartyManagementData *partyMan;
fieldSystem = FieldTask_GetFieldSystem(param0->unk_00);
menu = FieldTask_GetEnv(param0->unk_00);
v2 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
memset(v2, 0, sizeof(PartyManagementData));
memset(partyMan, 0, sizeof(PartyManagementData));
v2->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v2->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v2->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v2->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v2->unk_18 = &menu->fieldMoveContext;
v2->unk_21 = 0;
v2->unk_20 = 6;
v2->unk_1C = fieldSystem;
v2->unk_24 = param0->unk_04;
v2->selectedMonSlot = param0->unk_06;
v2->unk_26 = Item_MoveForTMHM(param0->unk_04);
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->fieldMoveContext = &menu->fieldMoveContext;
partyMan->unk_21 = 0;
partyMan->unk_20 = 6;
partyMan->fieldSystem = fieldSystem;
partyMan->usedItemID = param0->unk_04;
partyMan->selectedMonSlot = param0->unk_06;
partyMan->learnedMove = Item_MoveForTMHM(param0->unk_04);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v2);
menu->taskData = v2;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
menu->taskData = partyMan;
sub_0203B674(menu, sub_0203B7C0);
}
@ -968,27 +968,27 @@ static void sub_02068FEC(UnkStruct_02068630 *param0, const UnkStruct_020684D0 *p
{
FieldSystem *fieldSystem;
StartMenu *menu;
PartyManagementData *v2;
PartyManagementData *partyMan;
fieldSystem = FieldTask_GetFieldSystem(param0->unk_00);
menu = FieldTask_GetEnv(param0->unk_00);
v2 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
partyMan = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PartyManagementData));
memset(v2, 0, sizeof(PartyManagementData));
memset(partyMan, 0, sizeof(PartyManagementData));
v2->unk_00 = SaveData_GetParty(fieldSystem->saveData);
v2->unk_04 = SaveData_GetBag(fieldSystem->saveData);
v2->unk_08 = SaveData_GetMailBox(fieldSystem->saveData);
v2->unk_0C = SaveData_GetOptions(fieldSystem->saveData);
v2->unk_10 = SaveData_GetTVBroadcast(fieldSystem->saveData);
v2->unk_18 = &menu->fieldMoveContext;
v2->unk_21 = 0;
v2->unk_20 = 16;
v2->unk_24 = param0->unk_04;
v2->selectedMonSlot = param0->unk_06;
partyMan->party = SaveData_GetParty(fieldSystem->saveData);
partyMan->bag = SaveData_GetBag(fieldSystem->saveData);
partyMan->mailBox = SaveData_GetMailBox(fieldSystem->saveData);
partyMan->options = SaveData_GetOptions(fieldSystem->saveData);
partyMan->broadcast = SaveData_GetTVBroadcast(fieldSystem->saveData);
partyMan->fieldMoveContext = &menu->fieldMoveContext;
partyMan->unk_21 = 0;
partyMan->unk_20 = 16;
partyMan->usedItemID = param0->unk_04;
partyMan->selectedMonSlot = param0->unk_06;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v2);
menu->taskData = v2;
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
menu->taskData = partyMan;
sub_0203B674(menu, sub_0203B7C0);
}
@ -1096,7 +1096,7 @@ static void sub_020691E0(UnkStruct_02068630 *param0, const UnkStruct_020684D0 *p
{
FieldSystem *fieldSystem;
StartMenu *menu;
PartyManagementData *v2;
PartyManagementData *partyMan; // unused
fieldSystem = FieldTask_GetFieldSystem(param0->unk_00);
menu = FieldTask_GetEnv(param0->unk_00);

View File

@ -70,43 +70,43 @@ static int sub_0206B9D8(UnkStruct_0206B9D8 *param0, FieldSystem *fieldSystem, in
{
u8 v0;
SaveData *saveData;
PartyManagementData *v2 = Heap_AllocFromHeapAtEnd(heapID, sizeof(PartyManagementData));
PartyManagementData *partyMan = Heap_AllocFromHeapAtEnd(heapID, sizeof(PartyManagementData));
saveData = fieldSystem->saveData;
MI_CpuClear8(v2, sizeof(PartyManagementData));
MI_CpuClear8(partyMan, sizeof(PartyManagementData));
v2->unk_0C = SaveData_GetOptions(saveData);
v2->unk_00 = SaveData_GetParty(saveData);
v2->unk_04 = SaveData_GetBag(saveData);
v2->unk_21 = 0;
v2->unk_20 = param0->unk_08;
v2->unk_32_0 = param0->unk_0A;
v2->unk_32_4 = param0->unk_0B;
v2->unk_33 = param0->unk_0C;
v2->selectedMonSlot = param0->unk_0D;
partyMan->options = SaveData_GetOptions(saveData);
partyMan->party = SaveData_GetParty(saveData);
partyMan->bag = SaveData_GetBag(saveData);
partyMan->unk_21 = 0;
partyMan->unk_20 = param0->unk_08;
partyMan->unk_32_0 = param0->unk_0A;
partyMan->unk_32_4 = param0->unk_0B;
partyMan->unk_33 = param0->unk_0C;
partyMan->selectedMonSlot = param0->unk_0D;
for (v0 = 0; v0 < 6; v0++) {
v2->unk_2C[v0] = param0->unk_0E[v0];
partyMan->unk_2C[v0] = param0->unk_0E[v0];
}
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v2);
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, partyMan);
*(param0->unk_14) = v2;
*(param0->unk_14) = partyMan;
return 1;
}
static int sub_0206BA84(UnkStruct_0206B9D8 *param0, FieldSystem *fieldSystem)
{
int v0;
PartyManagementData *v1;
PartyManagementData *partyMan;
if (FieldSystem_IsRunningApplication(fieldSystem)) {
return 1;
}
v1 = *(param0->unk_14);
partyMan = *(param0->unk_14);
switch (v1->selectedMonSlot) {
switch (partyMan->selectedMonSlot) {
case 7:
param0->unk_00 = 0;
return 4;
@ -117,9 +117,9 @@ static int sub_0206BA84(UnkStruct_0206B9D8 *param0, FieldSystem *fieldSystem)
break;
}
MI_CpuCopy8(v1->unk_2C, param0->unk_0E, 6);
param0->unk_0D = v1->selectedMonSlot;
Heap_FreeToHeap(v1);
MI_CpuCopy8(partyMan->unk_2C, param0->unk_0E, 6);
param0->unk_0D = partyMan->selectedMonSlot;
Heap_FreeToHeap(partyMan);
*(param0->unk_14) = NULL;
return 2;

View File

@ -501,7 +501,7 @@ static void sub_020726B4(SysTask *param0, void *param1)
static void sub_02072754(SysTask *param0, void *param1)
{
u8 v0;
PartyManagementData *v1;
PartyManagementData *partyMan;
UnkStruct_02072334 *v2 = (UnkStruct_02072334 *)param1;
switch (v2->unk_10) {
@ -581,7 +581,7 @@ static void sub_02072878(SysTask *param0, void *param1)
{
int v0;
u8 v1, v2;
PartyManagementData *v3;
PartyManagementData *partyMan;
UnkStruct_02072334 *v4 = (UnkStruct_02072334 *)param1;
switch (v4->unk_10) {
@ -605,7 +605,7 @@ static void sub_02072878(SysTask *param0, void *param1)
}
v1 = v4->unk_1B4->selectedMonSlot;
v2 = v4->unk_1B4->unk_23;
v2 = v4->unk_1B4->menuSelectionResult;
Heap_FreeToHeap(v4->unk_1B4);
@ -1195,27 +1195,27 @@ static int sub_020734F4(UnkStruct_02072334 *param0, u8 param1)
static int sub_02073524(UnkStruct_02072334 *param0, int param1)
{
PartyManagementData *v0;
PartyManagementData *partyMan;
switch (param0->unk_12) {
case 0:
v0 = Heap_AllocFromHeap(param0->heapID, sizeof(PartyManagementData));
MI_CpuClear8(v0, sizeof(PartyManagementData));
partyMan = Heap_AllocFromHeap(param0->heapID, sizeof(PartyManagementData));
MI_CpuClear8(partyMan, sizeof(PartyManagementData));
v0->unk_00 = SaveData_GetParty(FieldSystem_GetSaveData(param0->fieldSystem));
v0->unk_04 = SaveData_GetBag(FieldSystem_GetSaveData(param0->fieldSystem));
v0->unk_0C = SaveData_GetOptions(FieldSystem_GetSaveData(param0->fieldSystem));
v0->unk_08 = SaveData_GetMailBox(param0->fieldSystem->saveData);
v0->unk_21 = 0;
v0->unk_20 = param1;
v0->unk_24 = param0->unk_1C[param0->unk_18].item;
partyMan->party = SaveData_GetParty(FieldSystem_GetSaveData(param0->fieldSystem));
partyMan->bag = SaveData_GetBag(FieldSystem_GetSaveData(param0->fieldSystem));
partyMan->options = SaveData_GetOptions(FieldSystem_GetSaveData(param0->fieldSystem));
partyMan->mailBox = SaveData_GetMailBox(param0->fieldSystem->saveData);
partyMan->unk_21 = 0;
partyMan->unk_20 = param1;
partyMan->usedItemID = param0->unk_1C[param0->unk_18].item;
if (param1 == 11) {
v0->selectedMonSlot = param0->unk_17;
partyMan->selectedMonSlot = param0->unk_17;
}
FieldSystem_StartChildProcess(param0->fieldSystem, &Unk_020F1E88, v0);
param0->unk_1B4 = v0;
FieldSystem_StartChildProcess(param0->fieldSystem, &Unk_020F1E88, partyMan);
param0->unk_1B4 = partyMan;
param0->unk_12++;
break;
case 1:

File diff suppressed because it is too large Load Diff

View File

@ -117,7 +117,7 @@ void sub_02081A24(GameWindowLayout *param0)
sub_020819DC(param0->unk_00, &param0->unk_04[10], &v0[10]);
sub_020819DC(param0->unk_00, &param0->unk_04[20], &v0[20]);
if (param0->unk_5A4->unk_21 == 2) {
if (param0->partyManagementData->unk_21 == 2) {
sub_020819DC(param0->unk_00, &param0->unk_04[5], &v0[30]);
sub_020819DC(param0->unk_00, &param0->unk_04[15], &v0[35]);
sub_020819DC(param0->unk_00, &param0->unk_04[25], &v0[40]);
@ -127,7 +127,7 @@ void sub_02081A24(GameWindowLayout *param0)
sub_020819DC(param0->unk_00, &param0->unk_04[25], &v0[25]);
}
if ((param0->unk_5A4->unk_20 == 2) || (param0->unk_5A4->unk_20 == 17) || (param0->unk_5A4->unk_20 == 23) || (param0->unk_5A4->unk_20 == 22)) {
if ((param0->partyManagementData->unk_20 == 2) || (param0->partyManagementData->unk_20 == 17) || (param0->partyManagementData->unk_20 == 23) || (param0->partyManagementData->unk_20 == 22)) {
WindowTemplate v2;
v2 = Unk_020F1ED0[0];
@ -162,30 +162,30 @@ void sub_02081B90(GameWindowLayout *param0)
void sub_02081BC0(GameWindowLayout *param0)
{
MessageLoader_GetStrbuf(param0->unk_69C, 145, param0->unk_6AC[0]);
MessageLoader_GetStrbuf(param0->unk_69C, 146, param0->unk_6AC[1]);
MessageLoader_GetStrbuf(param0->unk_69C, 147, param0->unk_6AC[2]);
MessageLoader_GetStrbuf(param0->unk_69C, 160, param0->unk_6AC[3]);
MessageLoader_GetStrbuf(param0->unk_69C, 161, param0->unk_6AC[4]);
MessageLoader_GetStrbuf(param0->unk_69C, 148, param0->unk_6AC[5]);
MessageLoader_GetStrbuf(param0->unk_69C, 149, param0->unk_6AC[6]);
MessageLoader_GetStrbuf(param0->unk_69C, 150, param0->unk_6AC[7]);
MessageLoader_GetStrbuf(param0->unk_69C, 151, param0->unk_6AC[8]);
MessageLoader_GetStrbuf(param0->unk_69C, 152, param0->unk_6AC[9]);
MessageLoader_GetStrbuf(param0->unk_69C, 153, param0->unk_6AC[10]);
MessageLoader_GetStrbuf(param0->unk_69C, 154, param0->unk_6AC[11]);
MessageLoader_GetStrbuf(param0->unk_69C, 155, param0->unk_6AC[12]);
MessageLoader_GetStrbuf(param0->unk_69C, 154, param0->unk_6AC[13]);
MessageLoader_GetStrbuf(param0->unk_69C, 166, param0->unk_6AC[14]);
MessageLoader_GetStrbuf(param0->unk_69C, 200, param0->unk_6AC[15]);
MessageLoader_GetStrbuf(param0->messageLoader, 145, param0->unk_6AC[0]);
MessageLoader_GetStrbuf(param0->messageLoader, 146, param0->unk_6AC[1]);
MessageLoader_GetStrbuf(param0->messageLoader, 147, param0->unk_6AC[2]);
MessageLoader_GetStrbuf(param0->messageLoader, 160, param0->unk_6AC[3]);
MessageLoader_GetStrbuf(param0->messageLoader, 161, param0->unk_6AC[4]);
MessageLoader_GetStrbuf(param0->messageLoader, 148, param0->unk_6AC[5]);
MessageLoader_GetStrbuf(param0->messageLoader, 149, param0->unk_6AC[6]);
MessageLoader_GetStrbuf(param0->messageLoader, 150, param0->unk_6AC[7]);
MessageLoader_GetStrbuf(param0->messageLoader, 151, param0->unk_6AC[8]);
MessageLoader_GetStrbuf(param0->messageLoader, 152, param0->unk_6AC[9]);
MessageLoader_GetStrbuf(param0->messageLoader, 153, param0->unk_6AC[10]);
MessageLoader_GetStrbuf(param0->messageLoader, 154, param0->unk_6AC[11]);
MessageLoader_GetStrbuf(param0->messageLoader, 155, param0->unk_6AC[12]);
MessageLoader_GetStrbuf(param0->messageLoader, 154, param0->unk_6AC[13]);
MessageLoader_GetStrbuf(param0->messageLoader, 166, param0->unk_6AC[14]);
MessageLoader_GetStrbuf(param0->messageLoader, 200, param0->unk_6AC[15]);
}
void sub_02081CAC(GameWindowLayout *param0, u16 param1, u8 param2)
{
Strbuf *v0 = MessageLoader_GetNewStrbuf(param0->unk_69C, 156 + param2);
Strbuf *v0 = MessageLoader_GetNewStrbuf(param0->messageLoader, 156 + param2);
StringTemplate_SetMoveName(param0->unk_6A0, 0, param1);
StringTemplate_Format(param0->unk_6A0, param0->unk_6AC[16 + param2], v0);
StringTemplate_SetMoveName(param0->template, 0, param1);
StringTemplate_Format(param0->template, param0->unk_6AC[16 + param2], v0);
Strbuf_Free(v0);
}
@ -232,16 +232,16 @@ void sub_02081E08(GameWindowLayout *param0)
Pokemon *v0;
Strbuf *v1;
if (param0->unk_5A4->unk_20 == 15) {
MessageLoader_GetStrbuf(param0->unk_69C, 42, param0->unk_6A4);
} else if ((param0->unk_5A4->unk_20 == 21) && (param0->unk_704[param0->unk_B11].unk_10 == 1)) {
MessageLoader_GetStrbuf(param0->unk_69C, 198, param0->unk_6A4);
if (param0->partyManagementData->unk_20 == 15) {
MessageLoader_GetStrbuf(param0->messageLoader, 42, param0->unk_6A4);
} else if ((param0->partyManagementData->unk_20 == 21) && (param0->unk_704[param0->partySlot].unk_10 == 1)) {
MessageLoader_GetStrbuf(param0->messageLoader, 198, param0->unk_6A4);
} else {
v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11);
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 37);
v0 = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param0->partySlot);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 37);
StringTemplate_SetNickname(param0->unk_6A0, 0, Pokemon_GetBoxPokemon(v0));
StringTemplate_Format(param0->unk_6A0, param0->unk_6A4, v1);
StringTemplate_SetNickname(param0->template, 0, Pokemon_GetBoxPokemon(v0));
StringTemplate_Format(param0->template, param0->unk_6A4, v1);
Strbuf_Free(v1);
}
}
@ -262,10 +262,10 @@ static void sub_02081EAC(GameWindowLayout *param0, u8 param1)
void sub_02081ED8(GameWindowLayout *param0, Pokemon *param1, u32 param2)
{
Strbuf *v0 = MessageLoader_GetNewStrbuf(param0->unk_69C, Unk_020F1EA0[param2][0]);
Strbuf *v0 = MessageLoader_GetNewStrbuf(param0->messageLoader, Unk_020F1EA0[param2][0]);
StringTemplate_SetNickname(param0->unk_6A0, 0, Pokemon_GetBoxPokemon(param1));
StringTemplate_Format(param0->unk_6A0, param0->unk_704[param2].unk_00, v0);
StringTemplate_SetNickname(param0->template, 0, Pokemon_GetBoxPokemon(param1));
StringTemplate_Format(param0->template, param0->unk_704[param2].unk_00, v0);
Strbuf_Free(v0);
}
@ -285,11 +285,11 @@ void sub_02081F2C(GameWindowLayout *param0, u8 param1)
if (param0->unk_704[param1].unk_0E_12 == 0) {
if (param0->unk_704[param1].unk_0E_13 == 0) {
MessageLoader_GetStrbuf(param0->unk_69C, 27, param0->unk_6A8);
MessageLoader_GetStrbuf(param0->messageLoader, 27, param0->unk_6A8);
Text_AddPrinterWithParamsAndColor(
v0, FONT_SYSTEM, param0->unk_6A8, (9 * 8 - 8), 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(3, 4, 0), NULL);
} else if (param0->unk_704[param1].unk_0E_13 == 1) {
MessageLoader_GetStrbuf(param0->unk_69C, 28, param0->unk_6A8);
MessageLoader_GetStrbuf(param0->messageLoader, 28, param0->unk_6A8);
Text_AddPrinterWithParamsAndColor(
v0, FONT_SYSTEM, param0->unk_6A8, (9 * 8 - 8), 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(5, 6, 0), NULL);
}
@ -310,7 +310,7 @@ void sub_02081FFC(GameWindowLayout *param0, u8 param1)
return;
}
sub_0200C648(param0->unk_698, 1, param0->unk_704[param1].unk_0A, 3, 0, v0, 5, 2);
sub_0200C648(param0->unk_698, 1, param0->unk_704[param1].level, 3, 0, v0, 5, 2);
Window_ScheduleCopyToVRAM(v0);
}
@ -322,7 +322,7 @@ void sub_02082058(GameWindowLayout *param0, u8 param1)
v0 = &param0->unk_04[2 + param1 * 5];
sub_0200C5BC(param0->unk_698, param0->unk_704[param1].unk_06, 3, 1, v0, (28 - 24), 2);
sub_0200C5BC(param0->unk_698, param0->unk_704[param1].curHP, 3, 1, v0, (28 - 24), 2);
Window_ScheduleCopyToVRAM(v0);
}
@ -345,7 +345,7 @@ static void sub_020820C4(GameWindowLayout *param0, u8 param1)
v0 = &param0->unk_04[2 + param1 * 5];
sub_0200C5BC(param0->unk_698, param0->unk_704[param1].unk_08, 3, 0, v0, (28 + 8), 2);
sub_0200C5BC(param0->unk_698, param0->unk_704[param1].maxHP, 3, 0, v0, (28 + 8), 2);
Window_ScheduleCopyToVRAM(v0);
}
@ -356,7 +356,7 @@ void sub_02082104(GameWindowLayout *param0, u8 param1)
v0 = &param0->unk_04[3 + param1 * 5];
switch (HealthBar_Color(param0->unk_704[param1].unk_06, param0->unk_704[param1].unk_08, 48)) {
switch (HealthBar_Color(param0->unk_704[param1].curHP, param0->unk_704[param1].maxHP, 48)) {
case 0:
Window_ScheduleCopyToVRAM(v0);
return;
@ -372,7 +372,7 @@ void sub_02082104(GameWindowLayout *param0, u8 param1)
break;
}
v1 = App_PixelCount(param0->unk_704[param1].unk_06, param0->unk_704[param1].unk_08, 48);
v1 = App_PixelCount(param0->unk_704[param1].curHP, param0->unk_704[param1].maxHP, 48);
Window_FillRectWithColor(v0, 10, 0, 2, v1, 1);
Window_FillRectWithColor(v0, 9, 0, 3, v1, 2);
@ -434,9 +434,9 @@ void sub_0208232C(GameWindowLayout *param0, u8 param1)
sub_02081FFC(param0, param1);
v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param1);
v0 = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param1);
if (Pokemon_GetEvolutionTargetSpecies(NULL, v0, EVO_CLASS_BY_ITEM, param0->unk_5A4->unk_24, NULL) == 0) {
if (Pokemon_GetEvolutionTargetSpecies(NULL, v0, EVO_CLASS_BY_ITEM, param0->partyManagementData->usedItemID, NULL) == 0) {
sub_02082810(param0, param1, 1);
} else {
sub_02082810(param0, param1, 0);
@ -459,7 +459,7 @@ void sub_020823C4(GameWindowLayout *param0, u8 param1)
sub_02081FFC(param0, param1);
v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param1);
v0 = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param1);
v1 = sub_02086104(param0, v0);
if (v1 == 0xff) {
@ -505,19 +505,19 @@ void sub_02082508(GameWindowLayout *param0, u8 param1)
{
u8 v0;
for (v0 = 0; v0 < param0->unk_5A4->unk_32_4; v0++) {
if (param0->unk_5A4->unk_2C[v0] == param1 + 1) {
for (v0 = 0; v0 < param0->partyManagementData->unk_32_4; v0++) {
if (param0->partyManagementData->unk_2C[v0] == param1 + 1) {
sub_02082964(param0, param1, v0);
return;
}
}
if (param0->unk_5A4->unk_20 == 22) {
if (param0->partyManagementData->unk_20 == 22) {
if (sub_02080404(param0, param1) == 0) {
sub_02082964(param0, param1, 8);
return;
}
} else if (param0->unk_5A4->unk_20 == 23) {
} else if (param0->partyManagementData->unk_20 == 23) {
if (sub_02080488(param0, param1) == 0) {
sub_02082964(param0, param1, 8);
return;
@ -547,14 +547,14 @@ void sub_020825B4(GameWindowLayout *param0, u8 param1)
Window_FillTilemap(&param0->unk_04[31], 0);
if (param1 & 1) {
MessageLoader_GetStrbuf(param0->unk_69C, 0, param0->unk_6A8);
MessageLoader_GetStrbuf(param0->messageLoader, 0, param0->unk_6A8);
v0 = sub_020825A4(0, param0->unk_6A8, param0->unk_04[30].width * 8);
Text_AddPrinterWithParamsAndColor(&param0->unk_04[30], FONT_SYSTEM, param0->unk_6A8, v0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
Window_ScheduleCopyToVRAM(&param0->unk_04[30]);
}
if (param1 & 2) {
MessageLoader_GetStrbuf(param0->unk_69C, 1, param0->unk_6A8);
MessageLoader_GetStrbuf(param0->messageLoader, 1, param0->unk_6A8);
v0 = sub_020825A4(0, param0->unk_6A8, param0->unk_04[31].width * 8);
Text_AddPrinterWithParamsAndColor(&param0->unk_04[31], FONT_SYSTEM, param0->unk_6A8, v0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
Window_ScheduleCopyToVRAM(&param0->unk_04[31]);
@ -570,7 +570,7 @@ static void sub_02082680(GameWindowLayout *param0, Window *param1, u32 param2, u
Window_FillTilemap(param1, 15);
if (param2 != 0xffffffff) {
MessageLoader_GetStrbuf(param0->unk_69C, param2, param0->unk_6A4);
MessageLoader_GetStrbuf(param0->messageLoader, param2, param0->unk_6A4);
}
Text_AddPrinterWithParams(param1, FONT_MESSAGE, param0->unk_6A4, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
@ -598,7 +598,7 @@ void sub_02082708(GameWindowLayout *param0, u32 param1, u8 param2)
Window_FillTilemap(v0, 15);
if (param1 != 0xffffffff) {
MessageLoader_GetStrbuf(param0->unk_69C, param1, param0->unk_6A4);
MessageLoader_GetStrbuf(param0->messageLoader, param1, param0->unk_6A4);
}
sub_0208274C(param0);
@ -608,8 +608,8 @@ void sub_0208274C(GameWindowLayout *param0)
{
RenderControlFlags_SetCanABSpeedUpPrint(1);
RenderControlFlags_SetAutoScrollFlags(0);
param0->unk_B10 = Text_AddPrinterWithParams(
&param0->unk_04[34], FONT_MESSAGE, param0->unk_6A4, 0, 0, Options_TextFrameDelay(param0->unk_5A4->unk_0C), sub_0208279C);
param0->textPrinterID = Text_AddPrinterWithParams(
&param0->unk_04[34], FONT_MESSAGE, param0->unk_6A4, 0, 0, Options_TextFrameDelay(param0->partyManagementData->options), sub_0208279C);
}
static BOOL sub_0208279C(TextPrinterTemplate *param0, u16 param1)
@ -649,10 +649,10 @@ static void sub_02082810(GameWindowLayout *param0, u8 param1, u8 param2)
switch (param2) {
case 0:
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 178);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 178);
break;
case 1:
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 179);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 179);
break;
}
@ -672,13 +672,13 @@ static void sub_02082880(GameWindowLayout *param0, u8 param1, u8 param2)
switch (param2) {
case 0:
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 175);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 175);
break;
case 1:
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 176);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 176);
break;
case 2:
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 177);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 177);
break;
}
@ -697,9 +697,9 @@ static void sub_02082900(GameWindowLayout *param0, u8 param1, u8 param2)
Window_FillTilemap(v0, 0);
if (param2 == 0) {
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 181);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 181);
} else {
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 180);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 180);
}
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, v1, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
@ -717,11 +717,11 @@ static void sub_02082964(GameWindowLayout *param0, u8 param1, u8 param2)
Window_FillTilemap(v0, 0);
if (param2 < 6) {
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 169 + param2);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 169 + param2);
} else if (param2 == 7) {
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 167);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 167);
} else {
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 168);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 168);
}
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, v1, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
@ -736,7 +736,7 @@ void sub_020829DC(GameWindowLayout *param0)
u32 v2;
u16 v3[6];
v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11);
v0 = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param0->partySlot);
v3[0] = (u16)Pokemon_GetValue(v0, MON_DATA_MAX_HP, NULL);
v3[1] = (u16)Pokemon_GetValue(v0, MON_DATA_ATK, NULL);
@ -750,14 +750,14 @@ void sub_020829DC(GameWindowLayout *param0)
Window_FillTilemap(&param0->unk_254[0], 15);
for (v2 = 0; v2 < 6; v2++) {
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 185 + v2);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 185 + v2);
Text_AddPrinterWithParams(&param0->unk_254[0], FONT_SYSTEM, v1, 0, 16 * v2, TEXT_SPEED_NO_TRANSFER, NULL);
Strbuf_Free(v1);
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 191);
v1 = MessageLoader_GetNewStrbuf(param0->messageLoader, 191);
StringTemplate_SetNumber(param0->unk_6A0, 0, v3[v2] - param0->unk_B14[v2], 2, 0, 1);
StringTemplate_Format(param0->unk_6A0, param0->unk_6A4, v1);
StringTemplate_SetNumber(param0->template, 0, v3[v2] - param0->monStats[v2], 2, 0, 1);
StringTemplate_Format(param0->template, param0->unk_6A4, v1);
Strbuf_Free(v1);
{
@ -765,7 +765,7 @@ void sub_020829DC(GameWindowLayout *param0)
Text_AddPrinterWithParams(&param0->unk_254[0], FONT_SYSTEM, param0->unk_6A4, v4, 16 * v2, TEXT_SPEED_NO_TRANSFER, NULL);
}
param0->unk_B14[v2] = v3[v2];
param0->monStats[v2] = v3[v2];
}
Window_ScheduleCopyToVRAM(&param0->unk_254[0]);
@ -778,11 +778,11 @@ void sub_02082B58(GameWindowLayout *param0)
u32 v2;
Window_FillRectWithColor(&param0->unk_254[0], 15, 80, 0, 32, 14 * 8);
v0 = MessageLoader_GetNewStrbuf(param0->unk_69C, 192);
v0 = MessageLoader_GetNewStrbuf(param0->messageLoader, 192);
for (v2 = 0; v2 < 6; v2++) {
StringTemplate_SetNumber(param0->unk_6A0, 0, param0->unk_B14[v2], 3, 0, 1);
StringTemplate_Format(param0->unk_6A0, param0->unk_6A4, v0);
StringTemplate_SetNumber(param0->template, 0, param0->monStats[v2], 3, 0, 1);
StringTemplate_Format(param0->template, param0->unk_6A4, v0);
v1 = Font_CalcStrbufWidth(FONT_SYSTEM, param0->unk_6A4, 0);

View File

@ -76,7 +76,7 @@ void sub_02082CEC(GameWindowLayout *param0, u8 param1, u16 param2, u16 param3, N
SpriteTemplateFromResourceHeader v1;
u32 v2;
v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param1);
v0 = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param1);
param0->unk_704[param1].unk_16 = param2;
param0->unk_704[param1].unk_18 = param3;
@ -111,7 +111,7 @@ void sub_02082DA8(GameWindowLayout *param0, u8 param1)
NNSG2dCharacterData *v6;
BOOL v7;
v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param1);
v0 = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param1);
v2 = Pokemon_GetValue(v0, MON_DATA_SPECIES, NULL);
v3 = Pokemon_GetValue(v0, MON_DATA_FORM, NULL);
v1 = NARC_ctor(NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, HEAP_ID_12);
@ -282,7 +282,7 @@ static void sub_02083138(Sprite *param0, u8 param1)
static u8 sub_02083158(StrBufWrapper *param0)
{
if (param0->unk_06 == 0) {
if (param0->curHP == 0) {
return 0;
}
@ -290,7 +290,7 @@ static u8 sub_02083158(StrBufWrapper *param0)
return 5;
}
switch (HealthBar_Color(param0->unk_06, param0->unk_08, 48)) {
switch (HealthBar_Color(param0->curHP, param0->maxHP, 48)) {
case 4:
return 1;
case 3:
@ -326,7 +326,7 @@ void sub_020831B4(GameWindowLayout *param0)
sub_02083138(v0->unk_24, v2);
Sprite_UpdateAnim(v0->unk_24, FX32_ONE);
if ((param0->unk_B11 == v1) && (v2 != 0) && (v2 != 5)) {
if ((param0->partySlot == v1) && (v2 != 0) && (v2 != 5)) {
if (Sprite_GetAnimFrame(v0->unk_24) == 0) {
Sprite_SetPositionXY(v0->unk_24, v0->unk_16, v0->unk_18 - 3);
} else {
@ -345,7 +345,7 @@ void sub_0208327C(GameWindowLayout *param0, u8 param1, u8 param2)
u8 v0, v1;
GridMenuCursor_GetFirstCoords(&param0->unk_7F4[param1], &v0, &v1);
Sprite_SetAnim(param0->unk_5B0[6], sub_020805D0(param0->unk_5A4->unk_21, param1));
Sprite_SetAnim(param0->unk_5B0[6], sub_020805D0(param0->partyManagementData->unk_21, param1));
Sprite_SetDrawFlag(param0->unk_5B0[6], 1);
Sprite_SetPositionXY(param0->unk_5B0[6], v0, v1);
Sprite_SetExplicitPalette2(param0->unk_5B0[6], param2);

View File

@ -156,7 +156,7 @@ static void sub_0208347C(GameWindowLayout *param0, int *param1)
Menu_Free(param0->unk_700, NULL);
StringList_Free(param0->unk_6FC);
param0->unk_5A4->unk_23 = 3;
param0->partyManagementData->menuSelectionResult = 3;
*param1 = 32;
}
@ -171,17 +171,17 @@ static void sub_020834B0(GameWindowLayout *param0, int *param1)
Menu_Free(param0->unk_700, NULL);
StringList_Free(param0->unk_6FC);
fieldSystem = param0->unk_5A4->unk_1C;
fieldSystem = param0->partyManagementData->fieldSystem;
if (param0->unk_704[param0->unk_B11].unk_0C == 0) {
mon = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11);
MessageLoader_GetStrbuf(param0->unk_69C, 81, param0->unk_6A8);
StringTemplate_SetNickname(param0->unk_6A0, 0, Pokemon_GetBoxPokemon(mon));
StringTemplate_Format(param0->unk_6A0, param0->unk_6A4, param0->unk_6A8);
} else if (Bag_TryAddItem(param0->unk_5A4->unk_04, param0->unk_704[param0->unk_B11].unk_0C, 1, HEAP_ID_12) == TRUE) {
if (param0->unk_704[param0->partySlot].unk_0C == 0) {
mon = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param0->partySlot);
MessageLoader_GetStrbuf(param0->messageLoader, 81, param0->unk_6A8);
StringTemplate_SetNickname(param0->template, 0, Pokemon_GetBoxPokemon(mon));
StringTemplate_Format(param0->template, param0->unk_6A4, param0->unk_6A8);
} else if (Bag_TryAddItem(param0->partyManagementData->bag, param0->unk_704[param0->partySlot].unk_0C, 1, HEAP_ID_12) == TRUE) {
u32 v4;
mon = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11);
mon = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param0->partySlot);
v4 = 0;
Pokemon_SetValue(mon, MON_DATA_HELD_ITEM, &v4);
@ -190,21 +190,21 @@ static void sub_020834B0(GameWindowLayout *param0, int *param1)
if ((fieldSystem == NULL) || (fieldSystem->location->mapId < 573) || (fieldSystem->location->mapId > 583)) {
v1 = Pokemon_SetGiratinaFormByHeldItem(mon);
if ((param0->unk_704[param0->unk_B11].unk_0C == ITEM_GRISEOUS_ORB) && (v1 == 0)) {
if ((param0->unk_704[param0->partySlot].unk_0C == ITEM_GRISEOUS_ORB) && (v1 == 0)) {
v2 = 18;
}
}
MessageLoader_GetStrbuf(param0->unk_69C, 82, param0->unk_6A8);
StringTemplate_SetNickname(param0->unk_6A0, 0, Pokemon_GetBoxPokemon(mon));
StringTemplate_SetItemName(param0->unk_6A0, 1, param0->unk_704[param0->unk_B11].unk_0C);
StringTemplate_Format(param0->unk_6A0, param0->unk_6A4, param0->unk_6A8);
MessageLoader_GetStrbuf(param0->messageLoader, 82, param0->unk_6A8);
StringTemplate_SetNickname(param0->template, 0, Pokemon_GetBoxPokemon(mon));
StringTemplate_SetItemName(param0->template, 1, param0->unk_704[param0->partySlot].unk_0C);
StringTemplate_Format(param0->template, param0->unk_6A4, param0->unk_6A8);
param0->unk_704[param0->unk_B11].unk_0C = 0;
param0->unk_704[param0->partySlot].unk_0C = 0;
sub_02083040(param0, param0->unk_B11, param0->unk_704[param0->unk_B11].unk_0C);
sub_02083040(param0, param0->partySlot, param0->unk_704[param0->partySlot].unk_0C);
} else {
MessageLoader_GetStrbuf(param0->unk_69C, 83, param0->unk_6A4);
MessageLoader_GetStrbuf(param0->messageLoader, 83, param0->unk_6A4);
}
Window_DrawMessageBoxWithScrollCursor(&param0->unk_04[34], 1, (1 + 9), 15);
@ -216,7 +216,7 @@ static void sub_020834B0(GameWindowLayout *param0, int *param1)
int sub_02083658(GameWindowLayout *param0)
{
if (Text_IsPrinterActive(param0->unk_B10) == 0) {
if (Text_IsPrinterActive(param0->textPrinterID) == 0) {
if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
Window_EraseMessageBox(&param0->unk_04[34], 1);
sub_020826E0(param0, 29, 1);
@ -230,7 +230,7 @@ int sub_02083658(GameWindowLayout *param0)
int sub_020836A8(GameWindowLayout *param0)
{
if (Text_IsPrinterActive(param0->unk_B10) == 0) {
if (Text_IsPrinterActive(param0->textPrinterID) == 0) {
if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
Window_EraseMessageBox(&param0->unk_04[34], 1);
LoadOverlay118(param0);
@ -284,7 +284,7 @@ static void sub_020837C0(GameWindowLayout *param0, int *param1)
Menu_Free(param0->unk_700, NULL);
StringList_Free(param0->unk_6FC);
param0->unk_5A4->unk_23 = 7;
param0->partyManagementData->menuSelectionResult = 7;
*param1 = 32;
}
@ -307,11 +307,11 @@ static int sub_0208384C(void *param0)
Pokemon *v1;
v0 = param0;
v1 = Party_GetPokemonBySlotIndex(v0->unk_5A4->unk_00, v0->unk_B11);
v1 = Party_GetPokemonBySlotIndex(v0->partyManagementData->party, v0->partySlot);
if (sub_02097788(v0->unk_5A4->unk_08, v1, HEAP_ID_12) != 0xFFFFFFFF) {
v0->unk_704[v0->unk_B11].unk_0C = 0;
sub_02083040(v0, v0->unk_B11, v0->unk_704[v0->unk_B11].unk_0C);
if (sub_02097788(v0->partyManagementData->mailBox, v1, HEAP_ID_12) != 0xFFFFFFFF) {
v0->unk_704[v0->partySlot].unk_0C = 0;
sub_02083040(v0, v0->partySlot, v0->unk_704[v0->partySlot].unk_0C);
sub_02082708(v0, 46, 0);
} else {
sub_02082708(v0, 50, 0);
@ -339,20 +339,20 @@ static int sub_020838F4(void *param0)
{
GameWindowLayout *v0 = param0;
if (Bag_TryAddItem(v0->unk_5A4->unk_04, v0->unk_704[v0->unk_B11].unk_0C, 1, HEAP_ID_12) == TRUE) {
if (Bag_TryAddItem(v0->partyManagementData->bag, v0->unk_704[v0->partySlot].unk_0C, 1, HEAP_ID_12) == TRUE) {
Pokemon *mon;
u32 item;
mon = Party_GetPokemonBySlotIndex(v0->unk_5A4->unk_00, v0->unk_B11);
mon = Party_GetPokemonBySlotIndex(v0->partyManagementData->party, v0->partySlot);
item = 0;
Pokemon_SetValue(mon, MON_DATA_HELD_ITEM, &item);
Pokemon_SetArceusForm(mon);
Pokemon_SetGiratinaFormByHeldItem(mon);
v0->unk_704[v0->unk_B11].unk_0C = 0;
v0->unk_704[v0->partySlot].unk_0C = 0;
sub_02083040(v0, v0->unk_B11, v0->unk_704[v0->unk_B11].unk_0C);
sub_02083040(v0, v0->partySlot, v0->unk_704[v0->partySlot].unk_0C);
sub_02082708(v0, 51, 0);
} else {
sub_02082708(v0, 83, 0);
@ -388,10 +388,10 @@ int sub_020839BC(GameWindowLayout *param0)
static void sub_020839FC(GameWindowLayout *param0, int *param1)
{
if (param0->unk_704[param0->unk_B11].unk_12 == 0) {
if (param0->unk_704[param0->partySlot].unk_12 == 0) {
Menu_Free(param0->unk_700, NULL);
StringList_Free(param0->unk_6FC);
param0->unk_5A4->unk_23 = 0;
param0->partyManagementData->menuSelectionResult = 0;
*param1 = 32;
return;
}
@ -411,11 +411,11 @@ int sub_02083A78(void *param0)
Pokemon *v1;
v0 = param0;
v1 = Party_GetPokemonBySlotIndex(v0->unk_5A4->unk_00, v0->unk_B11);
v1 = Party_GetPokemonBySlotIndex(v0->partyManagementData->party, v0->partySlot);
sub_0207893C(v1);
v0->unk_5A4->unk_23 = 0;
v0->partyManagementData->menuSelectionResult = 0;
return 32;
}
@ -435,12 +435,12 @@ static void sub_02083AD0(GameWindowLayout *param0, int *param1)
s16 v0, v1;
param0->unk_B0F_6 = 1;
param0->unk_B0F_0 = param0->unk_B11;
param0->unk_B0F_0 = param0->partySlot;
Sprite_SetExplicitPalette2(param0->unk_5B0[6], 0);
Sprite_GetPositionXY(param0->unk_5B0[6], &v0, &v1);
Sprite_SetPositionXY(param0->unk_5B0[7], v0, v1);
Sprite_SetAnim(param0->unk_5B0[7], sub_020805D0(param0->unk_5A4->unk_21, param0->unk_B0F_0) + 2);
Sprite_SetAnim(param0->unk_5B0[7], sub_020805D0(param0->partyManagementData->unk_21, param0->unk_B0F_0) + 2);
Sprite_SetDrawFlag(param0->unk_5B0[7], 1);
sub_0207F8F8(param0, param0->unk_B0F_0);
Window_EraseMessageBox(&param0->unk_04[33], 1);
@ -455,8 +455,8 @@ void sub_02083B88(GameWindowLayout *param0)
param0->unk_B0F_6 = 0;
Sprite_SetDrawFlag(param0->unk_5B0[7], 0);
if (param0->unk_B11 < 6) {
sub_0207F8F8(param0, param0->unk_B11);
if (param0->partySlot < 6) {
sub_0207F8F8(param0, param0->partySlot);
}
sub_0207F8F8(param0, param0->unk_B0F_0);
@ -470,7 +470,7 @@ void sub_02083BD4(GameWindowLayout *param0)
s8 v2, v3, v4, v5;
u16 v6;
param0->unk_7F8.unk_300[0] = param0->unk_B11;
param0->unk_7F8.unk_300[0] = param0->partySlot;
param0->unk_7F8.unk_300[1] = param0->unk_B0F_0;
param0->unk_7F8.unk_304 = 1;
param0->unk_7F8.unk_306 = 0;
@ -552,13 +552,13 @@ BOOL sub_02083D1C(GameWindowLayout *param0)
break;
case 4:
Party_SwapSlots(param0->unk_5A4->unk_00, v0->unk_300[0], v0->unk_300[1]);
Party_SwapSlots(param0->partyManagementData->party, v0->unk_300[0], v0->unk_300[1]);
Sprite_SetDrawFlag(param0->unk_5B0[6], 1);
v0->unk_304 = 0;
param0->unk_B0F_6 = 0;
sub_0207F8F8(param0, param0->unk_B11);
sub_0207F8F8(param0, param0->partySlot);
sub_0207F8F8(param0, param0->unk_B0F_0);
sub_020826E0(param0, 29, 0);
@ -717,18 +717,18 @@ static void sub_020844B0(GameWindowLayout *param0, int *param1)
Window_EraseMessageBox(&param0->unk_04[33], 1);
sub_0208337C(param0);
for (v0 = 0; v0 < param0->unk_5A4->unk_32_4; v0++) {
if (param0->unk_5A4->unk_2C[v0] != 0) {
for (v0 = 0; v0 < param0->partyManagementData->unk_32_4; v0++) {
if (param0->partyManagementData->unk_2C[v0] != 0) {
continue;
}
param0->unk_5A4->unk_2C[v0] = param0->unk_B11 + 1;
param0->partyManagementData->unk_2C[v0] = param0->partySlot + 1;
sub_02082508(param0, param0->unk_B11);
sub_02082508(param0, param0->partySlot);
sub_020826E0(param0, 34, 1);
Sprite_SetExplicitPalette2(param0->unk_5B0[6], 0);
if (v0 == param0->unk_5A4->unk_32_4 - 1) {
if (v0 == param0->partyManagementData->unk_32_4 - 1) {
sub_0207FD68(param0, 6);
}
@ -736,7 +736,7 @@ static void sub_020844B0(GameWindowLayout *param0, int *param1)
return;
}
switch (param0->unk_5A4->unk_32_4) {
switch (param0->partyManagementData->unk_32_4) {
case 1:
sub_02082708(param0, 123, 1);
break;
@ -774,13 +774,13 @@ static void sub_020845E8(GameWindowLayout *param0, int *param1)
{
u8 v0;
for (v0 = 0; v0 < param0->unk_5A4->unk_32_4; v0++) {
if (param0->unk_5A4->unk_2C[v0] == param0->unk_B11 + 1) {
param0->unk_5A4->unk_2C[v0] = 0;
for (v0 = 0; v0 < param0->partyManagementData->unk_32_4; v0++) {
if (param0->partyManagementData->unk_2C[v0] == param0->partySlot + 1) {
param0->partyManagementData->unk_2C[v0] = 0;
for (v0 = v0; v0 < param0->unk_5A4->unk_32_4 - 1; v0++) {
param0->unk_5A4->unk_2C[v0] = param0->unk_5A4->unk_2C[v0 + 1];
param0->unk_5A4->unk_2C[v0 + 1] = 0;
for (v0 = v0; v0 < param0->partyManagementData->unk_32_4 - 1; v0++) {
param0->partyManagementData->unk_2C[v0] = param0->partyManagementData->unk_2C[v0 + 1];
param0->partyManagementData->unk_2C[v0 + 1] = 0;
}
break;
}
@ -804,7 +804,7 @@ static void sub_020845E8(GameWindowLayout *param0, int *param1)
static void sub_020846CC(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 0;
param0->partyManagementData->menuSelectionResult = 0;
Menu_Free(param0->unk_700, NULL);
StringList_Free(param0->unk_6FC);
@ -814,7 +814,7 @@ static void sub_020846CC(GameWindowLayout *param0, int *param1)
static void sub_020846FC(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 0;
param0->partyManagementData->menuSelectionResult = 0;
Menu_Free(param0->unk_700, NULL);
StringList_Free(param0->unk_6FC);
@ -824,7 +824,7 @@ static void sub_020846FC(GameWindowLayout *param0, int *param1)
static void sub_0208472C(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 1;
param0->partyManagementData->menuSelectionResult = 1;
Menu_Free(param0->unk_700, NULL);
StringList_Free(param0->unk_6FC);
@ -842,42 +842,42 @@ static void sub_02084760(GameWindowLayout *param0, int *param1)
int sub_02084780(GameWindowLayout *param0)
{
Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11);
Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->partyManagementData->party, param0->partySlot);
if (Pokemon_GetValue(v0, MON_DATA_BALL_CAPSULE_ID, NULL) == 0) {
MessageLoader_GetStrbuf(param0->unk_69C, 129, param0->unk_6A4);
Sprite_SetDrawFlag(param0->unk_5B0[22 + param0->unk_B11], 1);
MessageLoader_GetStrbuf(param0->messageLoader, 129, param0->unk_6A4);
Sprite_SetDrawFlag(param0->unk_5B0[22 + param0->partySlot], 1);
} else {
MessageLoader_GetStrbuf(param0->unk_69C, 130, param0->unk_6A4);
param0->unk_B11 = 7;
MessageLoader_GetStrbuf(param0->messageLoader, 130, param0->unk_6A4);
param0->partySlot = 7;
}
sub_02082708(param0, 0xffffffff, 1);
param0->unk_5A4->unk_23 = 0;
param0->partyManagementData->menuSelectionResult = 0;
param0->unk_B0E = 25;
return 24;
}
static void sub_02084808(GameWindowLayout *param0, int *param1)
static void sub_02084808(GameWindowLayout *windowLayout, int *param1)
{
FieldMoveErrContext v0;
FieldMoveErrContext fieldMoveErrorCtx;
u32 v1;
u32 v2;
v0 = (FieldMoveErrContext)FieldMove_GetTaskOrError(FIELD_MOVE_ERROR, param0->unk_5A4->unk_23 - 11);
fieldMoveErrorCtx = (FieldMoveErrContext)FieldMove_GetTaskOrError(FIELD_MOVE_ERROR, windowLayout->partyManagementData->menuSelectionResult - 11);
if (v0 != NULL) {
v1 = v0(param0->unk_5A4->unk_18);
if (fieldMoveErrorCtx != NULL) {
v1 = fieldMoveErrorCtx(windowLayout->partyManagementData->fieldMoveContext);
} else {
v1 = 1;
}
switch (v1) {
case 0:
Menu_Free(param0->unk_700, NULL);
StringList_Free(param0->unk_6FC);
Menu_Free(windowLayout->unk_700, NULL);
StringList_Free(windowLayout->unk_6FC);
*param1 = 32;
return;
case 1:
@ -894,89 +894,89 @@ static void sub_02084808(GameWindowLayout *param0, int *param1)
break;
}
Window_EraseMessageBox(&param0->unk_04[33], 1);
sub_0208337C(param0);
sub_02082708(param0, v2, 1);
Window_EraseMessageBox(&windowLayout->unk_04[33], 1);
sub_0208337C(windowLayout);
sub_02082708(windowLayout, v2, 1);
param0->unk_B0E = 3;
windowLayout->unk_B0E = 3;
*param1 = 24;
}
static void sub_020848A8(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 11;
param0->partyManagementData->menuSelectionResult = 11;
sub_02084808(param0, param1);
}
static void sub_020848C0(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 16;
param0->partyManagementData->menuSelectionResult = 16;
sub_02084808(param0, param1);
}
static void sub_020848D8(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 14;
param0->partyManagementData->menuSelectionResult = 14;
sub_02084808(param0, param1);
}
static void sub_020848F0(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 13;
param0->partyManagementData->menuSelectionResult = 13;
sub_02084808(param0, param1);
}
static void sub_02084908(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 15;
param0->partyManagementData->menuSelectionResult = 15;
sub_02084808(param0, param1);
}
static void sub_02084920(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 18;
param0->partyManagementData->menuSelectionResult = 18;
sub_02084808(param0, param1);
}
static void sub_02084938(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 12;
param0->partyManagementData->menuSelectionResult = 12;
sub_02084808(param0, param1);
}
static void sub_02084950(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 17;
param0->partyManagementData->menuSelectionResult = 17;
sub_02084808(param0, param1);
}
static void sub_02084968(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 19;
param0->partyManagementData->menuSelectionResult = 19;
sub_02084808(param0, param1);
}
static void sub_02084980(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 20;
param0->partyManagementData->menuSelectionResult = 20;
sub_02084808(param0, param1);
}
static void sub_02084998(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 21;
param0->partyManagementData->menuSelectionResult = 21;
sub_02084808(param0, param1);
}
static void sub_020849B0(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 22;
param0->partyManagementData->menuSelectionResult = 22;
sub_02084808(param0, param1);
}
static void sub_020849C8(GameWindowLayout *param0, int *param1)
{
param0->unk_5A4->unk_23 = 23;
param0->partyManagementData->menuSelectionResult = 23;
sub_02084808(param0, param1);
}
@ -985,7 +985,7 @@ static void sub_020849E0(GameWindowLayout *param0, int *param1)
*param1 = sub_02084A18(param0);
if (*param1 == 30) {
param0->unk_B14[3] = 24 - 11;
param0->monStats[3] = 24 - 11;
}
}
@ -994,7 +994,7 @@ static void sub_020849FC(GameWindowLayout *param0, int *param1)
*param1 = sub_02084A18(param0);
if (*param1 == 30) {
param0->unk_B14[3] = 25 - 11;
param0->monStats[3] = 25 - 11;
}
}
@ -1003,9 +1003,9 @@ static int sub_02084A18(GameWindowLayout *param0)
Window_EraseMessageBox(&param0->unk_04[33], 1);
sub_0208337C(param0);
param0->unk_B14[0] = param0->unk_704[param0->unk_B11].unk_08 / 5;
param0->monStats[0] = param0->unk_704[param0->partySlot].maxHP / 5;
if (param0->unk_704[param0->unk_B11].unk_06 <= param0->unk_B14[0]) {
if (param0->unk_704[param0->partySlot].curHP <= param0->monStats[0]) {
sub_02082708(param0, 138, 1);
param0->unk_B0E = 3;
return 24;
@ -1013,17 +1013,17 @@ static int sub_02084A18(GameWindowLayout *param0)
s16 v0, v1;
param0->unk_B0F_6 = 1;
param0->unk_B0F_0 = param0->unk_B11;
param0->unk_B0F_0 = param0->partySlot;
Sprite_SetExplicitPalette2(param0->unk_5B0[6], 0);
Sprite_GetPositionXY(param0->unk_5B0[6], &v0, &v1);
Sprite_SetPositionXY(param0->unk_5B0[7], v0, v1);
Sprite_SetAnim(param0->unk_5B0[7], sub_020805D0(param0->unk_5A4->unk_21, param0->unk_B0F_0) + 2);
Sprite_SetAnim(param0->unk_5B0[7], sub_020805D0(param0->partyManagementData->unk_21, param0->unk_B0F_0) + 2);
Sprite_SetDrawFlag(param0->unk_5B0[7], 1);
sub_0207F8F8(param0, param0->unk_B0F_0);
sub_020826E0(param0, 36, 1);
param0->unk_B14[1] = 0;
param0->monStats[1] = 0;
return 30;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -357,21 +357,21 @@ static BOOL sub_02097F38(FieldTask *param0)
}
} break;
case 3: {
PartyManagementData *v6 = v0->unk_0C;
PartyManagementData *partyMan = v0->unk_0C;
v6->unk_00 = v1->unk_1C;
v6->unk_04 = SaveData_GetBag(v0->saveData);
v6->unk_08 = SaveData_GetMailBox(v0->saveData);
v6->selectedMonSlot = 0;
v6->unk_21 = 0;
v6->unk_20 = 15;
v6->unk_0C = v1->unk_24;
partyMan->party = v1->unk_1C;
partyMan->bag = SaveData_GetBag(v0->saveData);
partyMan->mailBox = SaveData_GetMailBox(v0->saveData);
partyMan->selectedMonSlot = 0;
partyMan->unk_21 = 0;
partyMan->unk_20 = 15;
partyMan->options = v1->unk_24;
FieldTask_RunApplication(param0, &Unk_020F1E88, v6);
FieldTask_RunApplication(param0, &Unk_020F1E88, partyMan);
v0->unk_14 = 4;
} break;
case 4: {
PartyManagementData *v7 = v0->unk_0C;
PartyManagementData *partyMan = v0->unk_0C;
Pokemon *v8;
UnkStruct_0202CA28 *v9;
UnkStruct_0202CA64 *v10;
@ -381,8 +381,8 @@ static BOOL sub_02097F38(FieldTask *param0)
v13 = sub_02097F18(v0->unk_08) + 1;
if (v7->selectedMonSlot != 7) {
v8 = sub_02097F00(v0->unk_08, v7->selectedMonSlot);
if (partyMan->selectedMonSlot != 7) {
v8 = sub_02097F00(v0->unk_08, partyMan->selectedMonSlot);
Pokemon_SetValue(v8, MON_DATA_BALL_CAPSULE_ID, (u8 *)&v13);
Pokemon_SetValue(v8, MON_DATA_171, sub_0202CA28(v1->unk_20, v13 - 1));

View File

@ -271,7 +271,7 @@ static int sub_02098C2C(UnkStruct_02098BE4 *param0)
static int sub_02098C44(UnkStruct_02098BE4 *param0)
{
PartyManagementData *v0;
PartyManagementData *partyMan;
if (!sub_02098AF8(&param0->unk_14)) {
return 1;
@ -283,16 +283,16 @@ static int sub_02098C44(UnkStruct_02098BE4 *param0)
param0->unk_0C->unk_02 = 0;
v0 = Heap_AllocFromHeap(param0->heapID, sizeof(PartyManagementData));
MI_CpuClear8(v0, sizeof(PartyManagementData));
v0->unk_00 = param0->unk_0C->unk_10;
v0->unk_04 = param0->unk_0C->unk_14;
v0->unk_21 = 0;
v0->unk_20 = 20;
v0->unk_0C = param0->unk_0C->unk_18;
partyMan = Heap_AllocFromHeap(param0->heapID, sizeof(PartyManagementData));
MI_CpuClear8(partyMan, sizeof(PartyManagementData));
partyMan->party = param0->unk_0C->unk_10;
partyMan->bag = param0->unk_0C->unk_14;
partyMan->unk_21 = 0;
partyMan->unk_20 = 20;
partyMan->options = param0->unk_0C->unk_18;
param0->unk_14 = OverlayManager_New(&Unk_020F1E88, v0, param0->heapID);
param0->unk_10 = (void *)v0;
param0->unk_14 = OverlayManager_New(&Unk_020F1E88, partyMan, param0->heapID);
param0->unk_10 = (void *)partyMan;
return 2;
}
@ -300,7 +300,7 @@ static int sub_02098C44(UnkStruct_02098BE4 *param0)
static int sub_02098CB0(UnkStruct_02098BE4 *param0)
{
u8 v0;
PartyManagementData *v1;
PartyManagementData *partyMan;
PokemonSummary *v2;
static const u8 v3[] = {
4, 7, 8
@ -310,8 +310,8 @@ static int sub_02098CB0(UnkStruct_02098BE4 *param0)
return 2;
}
v1 = (PartyManagementData *)param0->unk_10;
v0 = v1->selectedMonSlot;
partyMan = (PartyManagementData *)param0->unk_10;
v0 = partyMan->selectedMonSlot;
param0->unk_08 = v0;
Heap_FreeToHeap(param0->unk_10);
@ -334,7 +334,7 @@ static int sub_02098CB0(UnkStruct_02098BE4 *param0)
PokemonSummaryScreen_FlagVisiblePages(v2, v3);
PokemonSummaryScreen_SetPlayerProfile(v2, param0->unk_0C->unk_0C);
param0->unk_14 = OverlayManager_New(&gPokemonSummaryScreenApp, v1, param0->heapID);
param0->unk_14 = OverlayManager_New(&gPokemonSummaryScreenApp, partyMan, param0->heapID);
param0->unk_10 = (void *)v2;
return 3;

View File

@ -122,7 +122,7 @@ static BOOL sub_0209C2C0(UnkStruct_0209C1EC *param0)
Heap_FreeToHeap(param0->unk_30);
if (param0->unk_30->unk_23 == 1) {
if (param0->unk_30->menuSelectionResult == 1) {
param0->unk_34 = sub_0203D670(param0->fieldSystem, HEAP_ID_APPLICATION, SUMMARY_MODE_NORMAL);
param0->unk_04 = v0;
param0->unk_34->monIndex = v0;