diff --git a/generated/text_banks.txt b/generated/text_banks.txt
index 64eb6fa872..4140d77938 100644
--- a/generated/text_banks.txt
+++ b/generated/text_banks.txt
@@ -17,7 +17,7 @@ TEXT_BANK_UNK_0015
TEXT_BANK_UNK_0016
TEXT_BANK_UNK_0017
TEXT_BANK_POKEMON_STORAGE_SYSTEM
-TEXT_BANK_UNK_0019
+TEXT_BANK_BOX_MESSAGES
TEXT_BANK_UNK_0020
TEXT_BANK_FRONTIER_TRAINER_NAMES
TEXT_BANK_UNK_0022
diff --git a/include/overlay019/ov19_021D0D80.h b/include/overlay019/ov19_021D0D80.h
index eeff6d7ed3..2238b43fd5 100644
--- a/include/overlay019/ov19_021D0D80.h
+++ b/include/overlay019/ov19_021D0D80.h
@@ -3,9 +3,9 @@
#include "struct_decls/pc_boxes_decl.h"
+#include "overlay019/pc_mon_preview.h"
#include "overlay019/struct_ov19_021D4DF0.h"
#include "overlay019/struct_ov19_021D4F5C.h"
-#include "overlay019/struct_ov19_021D5BAC.h"
#include "overlay019/struct_ov19_021D5DF8_decl.h"
#include "overlay019/struct_ov19_021D5FAC.h"
@@ -42,7 +42,7 @@ int ov19_021D0DEC(OverlayManager *param0, int *param1);
int ov19_021D0E58(OverlayManager *param0, int *param1);
BOOL ov19_021D3B18(const UnkStruct_ov19_021D5DF8 *param0);
BOOL ov19_021D3B20(const UnkStruct_ov19_021D5DF8 *param0);
-MessageLoader *ov19_021D5DE8(const UnkStruct_ov19_021D5DF8 *param0);
+MessageLoader *ov19_GetBoxMessagesLoader(const UnkStruct_ov19_021D5DF8 *param0);
const StringTemplate *ov19_021D5DF0(const UnkStruct_ov19_021D5DF8 *param0);
int ov19_021D5DF8(const UnkStruct_ov19_021D5DF8 *param0);
u32 ov19_021D5E08(const UnkStruct_ov19_021D4DF0 *param0);
@@ -56,13 +56,13 @@ u32 ov19_021D5E38(const UnkStruct_ov19_021D4DF0 *param0);
BOOL ov19_021D5E3C(const UnkStruct_ov19_021D4DF0 *param0);
BOOL ov19_021D5E4C(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5E68(const UnkStruct_ov19_021D4DF0 *param0);
-const UnkStruct_ov19_021D5BAC *ov19_021D5E70(const UnkStruct_ov19_021D4DF0 *param0);
-u32 ov19_021D5E74(const UnkStruct_ov19_021D4DF0 *param0);
+const PCMonPreview *ov19_GetPCMonPreview(const UnkStruct_ov19_021D4DF0 *param0);
+u32 ov19_GetPreviewedMonHeldItem(const UnkStruct_ov19_021D4DF0 *param0);
const UnkStruct_ov19_021D4F5C *ov19_021D5E8C(const UnkStruct_ov19_021D4DF0 *param0);
const PCBoxes *ov19_021D5E90(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5E94(const UnkStruct_ov19_021D4DF0 *param0);
-BoxPokemon *ov19_021D5E9C(const UnkStruct_ov19_021D4DF0 *param0);
-u32 ov19_021D5EA0(const UnkStruct_ov19_021D4DF0 *param0);
+BoxPokemon *ov19_GetPreviewedBoxMon(const UnkStruct_ov19_021D4DF0 *param0);
+u32 ov19_GetPreviewedMonMarkings(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5EA8(const UnkStruct_ov19_021D4DF0 *param0);
s32 ov19_021D5EB0(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5EB8(const UnkStruct_ov19_021D4DF0 *param0);
@@ -80,6 +80,6 @@ u32 ov19_021D5FA4(const UnkStruct_ov19_021D4DF0 *param0);
const UnkStruct_ov19_021D5FAC *ov19_021D5FAC(const UnkStruct_ov19_021D4DF0 *param0, int param1);
BOOL ov19_021D5FB8(const UnkStruct_ov19_021D4DF0 *param0, int param1);
BOOL ov19_021D5FC0(const UnkStruct_ov19_021D4DF0 *param0);
-BOOL ov19_021D5FC8(const UnkStruct_ov19_021D4DF0 *param0);
+BOOL ov19_IsPreviewedMonEgg(const UnkStruct_ov19_021D4DF0 *param0);
#endif // POKEPLATINUM_OV19_021D0D80_H
diff --git a/include/overlay019/pc_mon_preview.h b/include/overlay019/pc_mon_preview.h
new file mode 100644
index 0000000000..1aad8387bf
--- /dev/null
+++ b/include/overlay019/pc_mon_preview.h
@@ -0,0 +1,25 @@
+#ifndef POKEPLATINUM_STRUCT_PC_MON_PREVIEW_H
+#define POKEPLATINUM_STRUCT_PC_MON_PREVIEW_H
+
+#include "strbuf.h"
+
+typedef struct {
+ void *mon;
+ u16 species;
+ u16 heldItem;
+ u16 dexNum;
+ u8 level;
+ u8 markings;
+ u8 type1;
+ u8 type2;
+ u8 gender;
+ u8 isEgg;
+ u8 padding_10[4];
+ Strbuf *nickname;
+ Strbuf *speciesName;
+ Strbuf *heldItemName;
+ Strbuf *nature;
+ Strbuf *ability;
+} PCMonPreview;
+
+#endif // POKEPLATINUM_STRUCT_PC_MON_PREVIEW_H
diff --git a/include/overlay019/struct_ov19_021D4DF0.h b/include/overlay019/struct_ov19_021D4DF0.h
index 81d8186b4e..d8f7c8613c 100644
--- a/include/overlay019/struct_ov19_021D4DF0.h
+++ b/include/overlay019/struct_ov19_021D4DF0.h
@@ -3,13 +3,13 @@
#include "struct_decls/pc_boxes_decl.h"
+#include "overlay019/pc_mon_preview.h"
#include "overlay019/struct_ov19_021D3CFC.h"
#include "overlay019/struct_ov19_021D4DE4.h"
#include "overlay019/struct_ov19_021D4EE4.h"
#include "overlay019/struct_ov19_021D4F34.h"
#include "overlay019/struct_ov19_021D4F5C.h"
#include "overlay019/struct_ov19_021D5594.h"
-#include "overlay019/struct_ov19_021D5BAC.h"
#include "overlay019/struct_ov19_021D5D20.h"
#include "overlay019/struct_ov19_021DF964.h"
@@ -22,7 +22,7 @@ typedef struct {
UnkStruct_ov19_021D5594 unk_14;
UnkStruct_ov19_021D4F5C unk_40;
UnkStruct_ov19_021D4DE4 unk_48;
- UnkStruct_ov19_021D5BAC unk_4C;
+ PCMonPreview pcMonPreview;
UnkStruct_ov19_021DF964 unk_74;
UnkStruct_ov19_021D5D20 unk_98;
UnkStruct_ov19_021D4F34 unk_9C;
diff --git a/include/overlay019/struct_ov19_021D5BAC.h b/include/overlay019/struct_ov19_021D5BAC.h
deleted file mode 100644
index b15fcb4fd2..0000000000
--- a/include/overlay019/struct_ov19_021D5BAC.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef POKEPLATINUM_STRUCT_OV19_021D5BAC_H
-#define POKEPLATINUM_STRUCT_OV19_021D5BAC_H
-
-#include "strbuf.h"
-
-typedef struct {
- void *unk_00;
- u16 species;
- u16 unk_06;
- u16 unk_08;
- u8 unk_0A;
- u8 unk_0B;
- u8 unk_0C;
- u8 unk_0D;
- u8 unk_0E;
- u8 unk_0F;
- u8 padding_10[4];
- Strbuf *unk_14;
- Strbuf *unk_18;
- Strbuf *unk_1C;
- Strbuf *unk_20;
- Strbuf *unk_24;
-} UnkStruct_ov19_021D5BAC;
-
-#endif // POKEPLATINUM_STRUCT_OV19_021D5BAC_H
diff --git a/res/text/unk_0019.gmm b/res/text/box_messages.gmm
similarity index 99%
rename from res/text/unk_0019.gmm
rename to res/text/box_messages.gmm
index 7afaaf6efd..8d9677786e 100644
--- a/res/text/unk_0019.gmm
+++ b/res/text/box_messages.gmm
@@ -81,7 +81,7 @@
used
Deposit in which Box?
-
+
used
No item
diff --git a/src/overlay019/ov19_021D0D80.c b/src/overlay019/ov19_021D0D80.c
index 8303ce2291..bf8876b3b5 100644
--- a/src/overlay019/ov19_021D0D80.c
+++ b/src/overlay019/ov19_021D0D80.c
@@ -5,6 +5,7 @@
#include "constants/items.h"
#include "constants/species.h"
+#include "generated/text_banks.h"
#include "struct_decls/pc_boxes_decl.h"
#include "struct_decls/struct_02023FCC_decl.h"
@@ -17,6 +18,7 @@
#include "overlay019/ov19_021D603C.h"
#include "overlay019/ov19_021D61B0.h"
#include "overlay019/ov19_021DF964.h"
+#include "overlay019/pc_mon_preview.h"
#include "overlay019/struct_ov19_021D3CFC.h"
#include "overlay019/struct_ov19_021D4DE4.h"
#include "overlay019/struct_ov19_021D4DF0.h"
@@ -24,7 +26,6 @@
#include "overlay019/struct_ov19_021D4F34.h"
#include "overlay019/struct_ov19_021D4F5C.h"
#include "overlay019/struct_ov19_021D5594.h"
-#include "overlay019/struct_ov19_021D5BAC.h"
#include "overlay019/struct_ov19_021D5D20.h"
#include "overlay019/struct_ov19_021D5FAC.h"
#include "overlay019/struct_ov19_021D6104.h"
@@ -62,6 +63,7 @@
#include "constdata/const_020F2DAC.h"
#include "constdata/const_020F410C.h"
+#include "res/text/bank/box_messages.h"
FS_EXTERN_OVERLAY(overlay84);
@@ -128,10 +130,10 @@ typedef struct UnkStruct_ov19_021D5DF8_t {
UnkStruct_02023FCC *unk_180;
u32 unk_184;
u32 unk_188;
- MessageLoader *unk_18C;
- MessageLoader *unk_190;
- MessageLoader *unk_194;
- MessageLoader *unk_198;
+ MessageLoader *boxMessagesLoader;
+ MessageLoader *speciesNameLoader;
+ MessageLoader *natureNameLoader;
+ MessageLoader *abilityNameLoader;
StringTemplate *unk_19C;
Pokemon *unk_1A0;
Options *unk_1A4;
@@ -216,8 +218,8 @@ static void ov19_021D4E30(UnkStruct_ov19_021D5594 *param0);
static void ov19_021D4E50(UnkStruct_ov19_021D5594 *param0);
static void ov19_021D4E5C(PCBoxes *param0, UnkStruct_ov19_021D4F5C *param1);
static void ov19_021D4E7C(UnkStruct_ov19_021D4F5C *param0);
-static void ov19_021D4E88(UnkStruct_ov19_021D5BAC *param0);
-static void ov19_021D4EC0(UnkStruct_ov19_021D5BAC *param0);
+static void PCMonPreviewInit(PCMonPreview *param0);
+static void PCMonPreviewFree(PCMonPreview *param0);
static void ov19_021D4EE4(UnkStruct_ov19_021D4EE4 *param0);
static void ov19_021D4F18(UnkStruct_ov19_021D4EE4 *param0);
static void ov19_021D4F34(UnkStruct_ov19_021D4F34 *param0);
@@ -246,12 +248,12 @@ static BOOL ov19_021D5800(UnkStruct_ov19_021D5DF8 *param0, u32 param1);
static void ov19_021D5834(UnkStruct_ov19_021D5DF8 *param0);
static void ov19_021D584C(UnkStruct_ov19_021D5DF8 *param0);
static void ov19_021D5888(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, UnkStruct_ov19_021D5DF8 *param2);
-static void ov19_021D58AC(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, UnkStruct_ov19_021D5DF8 *param2);
+static void ov19_LoadBoxMonIntoPreview(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, UnkStruct_ov19_021D5DF8 *param2);
static void ov19_021D59F4(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, UnkStruct_ov19_021D5DF8 *param2);
static void ov19_021D5B70(UnkStruct_ov19_021D4DF0 *param0);
static void ov19_021D5B80(UnkStruct_ov19_021D4DF0 *param0);
static void ov19_021D5BA0(UnkStruct_ov19_021D4DF0 *param0, BOOL param1);
-static void ov19_021D5BA8(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon);
+static void ov19_SetPreviewedBoxMon(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon);
static void ov19_021D5BAC(UnkStruct_ov19_021D4DF0 *param0);
static void ov19_021D5BE8(UnkStruct_ov19_021D4DF0 *param0, u16 param1, UnkStruct_ov19_021D5DF8 *param2);
static void ov19_021D5CBC(UnkStruct_ov19_021D4DF0 *param0);
@@ -268,8 +270,8 @@ static void ov19_021D5DA4(UnkStruct_ov19_021D4DF0 *param0, u32 param1);
static void ov19_021D5DAC(UnkStruct_ov19_021D4DF0 *param0, int param1);
static void ov19_021D5DB4(UnkStruct_ov19_021D4DF0 *param0, u32 param1);
static void ov19_021D5DD8(UnkStruct_ov19_021D4DF0 *param0);
-static u32 ov19_021D5FD0(UnkStruct_ov19_021D4DF0 *param0, int param1, void *param2);
-static u32 ov19_021D6014(UnkStruct_ov19_021D4DF0 *param0, int param1, void *param2);
+static u32 ov19_021D5FD0(UnkStruct_ov19_021D4DF0 *param0, enum PokemonDataParam value, void *dest);
+static u32 ov19_021D6014(UnkStruct_ov19_021D4DF0 *param0, enum PokemonDataParam value, void *dest);
int ov19_021D0D80(OverlayManager *param0, int *param1)
{
@@ -538,7 +540,7 @@ static int ov19_021D0FF0(UnkStruct_ov19_021D5DF8 *param0)
static BOOL ov19_021D1238(UnkStruct_ov19_021D5DF8 *param0, int *param1)
{
- if (Item_IsMail(ov19_021D5E74(¶m0->unk_00))) {
+ if (Item_IsMail(ov19_GetPreviewedMonHeldItem(¶m0->unk_00))) {
*param1 = 30;
return 1;
}
@@ -1027,7 +1029,7 @@ static void ov19_021D20A4(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
{
switch (*param1) {
case 0:
- StringTemplate_SetNickname(param0->unk_19C, 0, ov19_021D5E9C(¶m0->unk_00));
+ StringTemplate_SetNickname(param0->unk_19C, 0, ov19_GetPreviewedBoxMon(¶m0->unk_00));
ov19_021D5408(¶m0->unk_00, 0);
ov19_021DF990(¶m0->unk_00);
@@ -1099,7 +1101,7 @@ static void ov19_021D20A4(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
ov19_021D0EB0(param0, ov19_021D3C28);
break;
case UnkEnum_021DFB94_40: {
- if (ov19_021D5E74(¶m0->unk_00) == 0) {
+ if (ov19_GetPreviewedMonHeldItem(¶m0->unk_00) == 0) {
ov19_021D0EB0(param0, ov19_021D3D44);
} else {
ov19_021D0EB0(param0, ov19_021D3FB0);
@@ -1140,7 +1142,7 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
StringTemplate_SetItemName(param0->unk_19C, 0, v0);
ov19_021D5408(¶m0->unk_00, 25);
} else {
- v0 = ov19_021D5E74(¶m0->unk_00);
+ v0 = ov19_GetPreviewedMonHeldItem(¶m0->unk_00);
if (v0 != 0) {
StringTemplate_SetItemName(param0->unk_19C, 0, v0);
@@ -1153,7 +1155,7 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
ov19_021DFAD0(¶m0->unk_00);
}
- if (ov19_021D5FC8(¶m0->unk_00)) {
+ if (ov19_IsPreviewedMonEgg(¶m0->unk_00)) {
Sound_PlayEffect(1523);
ov19_021D5408(¶m0->unk_00, 34);
ov19_021D6594(param0->unk_114, 24);
@@ -1196,7 +1198,7 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
case 3:
switch (param0->unk_1B8) {
case UnkEnum_021DFB94_46:
- if ((ov19_021D5F7C(¶m0->unk_00) == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
+ if ((ov19_021D5F7C(¶m0->unk_00) == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.pcMonPreview.mon, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
StringTemplate_SetItemName(param0->unk_19C, 0, ITEM_GRISEOUS_ORB);
ov19_021D5408(¶m0->unk_00, 45);
ov19_021D6594(param0->unk_114, 24);
@@ -1213,7 +1215,7 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
break;
case UnkEnum_021DFB94_47:
- if (Item_IsMail(ov19_021D5E74(¶m0->unk_00))) {
+ if (Item_IsMail(ov19_GetPreviewedMonHeldItem(¶m0->unk_00))) {
Sound_PlayEffect(1523);
ov19_021D5408(¶m0->unk_00, 24);
ov19_021D6594(param0->unk_114, 24);
@@ -1231,12 +1233,12 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
ov19_021D0EB0(param0, ov19_021D4390);
break;
case UnkEnum_021DFB94_49:
- if (Item_IsMail(ov19_021D5E74(¶m0->unk_00))) {
+ if (Item_IsMail(ov19_GetPreviewedMonHeldItem(¶m0->unk_00))) {
Sound_PlayEffect(1523);
ov19_021D5408(¶m0->unk_00, 24);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 7;
- } else if ((param0->unk_00.unk_112 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
+ } else if ((param0->unk_00.unk_112 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.pcMonPreview.mon, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
StringTemplate_SetItemName(param0->unk_19C, 0, ITEM_GRISEOUS_ORB);
ov19_021D5408(¶m0->unk_00, 45);
ov19_021D6594(param0->unk_114, 24);
@@ -2029,9 +2031,9 @@ static BOOL ov19_021D357C(UnkStruct_ov19_021D5DF8 *param0, int *param1)
}
{
- u16 v0 = ov19_021D5E74(¶m0->unk_00);
+ u16 v0 = ov19_GetPreviewedMonHeldItem(¶m0->unk_00);
- if (Item_IsMail(ov19_021D5E74(¶m0->unk_00))) {
+ if (Item_IsMail(ov19_GetPreviewedMonHeldItem(¶m0->unk_00))) {
*param1 = 30;
return 0;
}
@@ -2096,7 +2098,7 @@ static void ov19_021D35F8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
break;
case 2:
if (ov19_021D6600(param0->unk_114, 26)) {
- StringTemplate_SetNickname(param0->unk_19C, 0, ov19_021D5E9C(¶m0->unk_00));
+ StringTemplate_SetNickname(param0->unk_19C, 0, ov19_GetPreviewedBoxMon(¶m0->unk_00));
ov19_021D38E0(param0);
if (ov19_021D5E38(¶m0->unk_00) == 2) {
@@ -2202,7 +2204,7 @@ static void ov19_021D38E0(UnkStruct_ov19_021D5DF8 *param0)
UnkStruct_ov19_021D38E0 *v0 = &(param0->unk_15C);
int v1, v2;
- v0->unk_10 = param0->unk_00.unk_4C.unk_00;
+ v0->unk_10 = param0->unk_00.pcMonPreview.mon;
for (v1 = 0, v2 = 0; v1 < (NELEMS(Unk_ov19_021DFDF0)); v1++) {
v0->unk_04[v1] = BoxPokemon_HasMove(v0->unk_10, Unk_ov19_021DFDF0[v1]);
@@ -2457,7 +2459,7 @@ static void ov19_021D3D44(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
Heap_FreeToHeap(param0->unk_214);
Overlay_UnloadByID(FS_OVERLAY_ID(overlay84));
- if ((v1 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
+ if ((v1 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.pcMonPreview.mon, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
(void)0;
} else if (v1 != 0) {
Bag_TryRemoveItem(SaveData_GetBag(param0->unk_11C), v1, 1, 9);
@@ -2481,7 +2483,7 @@ static void ov19_021D3D44(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
if (ov19_021D6600(param0->unk_114, 2)) {
if (v1 == 0) {
ov19_021D0EC0(param0);
- } else if ((v1 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
+ } else if ((v1 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.pcMonPreview.mon, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
StringTemplate_SetItemName(param0->unk_19C, 0, v1);
ov19_021D5408(¶m0->unk_00, 45);
ov19_021D6594(param0->unk_114, 24);
@@ -2517,7 +2519,7 @@ static void ov19_021D3FB0(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
switch (*param1) {
case 0:
- v0 = ov19_021D5E74(¶m0->unk_00);
+ v0 = ov19_GetPreviewedMonHeldItem(¶m0->unk_00);
if (Item_IsMail(v0)) {
Sound_PlayEffect(1523);
@@ -3123,10 +3125,10 @@ static void ov19_021D4BE0(UnkStruct_ov19_021D5DF8 *param0, UnkStruct_02042434 *p
param0->unk_1A4 = SaveData_Options(param1->unk_00);
param0->unk_118 = param1;
param1->unk_08 = 0;
- param0->unk_18C = MessageLoader_Init(0, 26, 19, HEAP_ID_9);
- param0->unk_190 = MessageLoader_Init(1, 26, 412, HEAP_ID_9);
- param0->unk_194 = MessageLoader_Init(0, 26, 202, HEAP_ID_9);
- param0->unk_198 = MessageLoader_Init(0, 26, 610, HEAP_ID_9);
+ param0->boxMessagesLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_BOX_MESSAGES, HEAP_ID_9);
+ param0->speciesNameLoader = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_SPECIES_NAME, HEAP_ID_9);
+ param0->natureNameLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_NATURE_NAMES, HEAP_ID_9);
+ param0->abilityNameLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_ABILITY_NAMES, HEAP_ID_9);
param0->unk_19C = StringTemplate_Default(HEAP_ID_9);
param0->unk_1A0 = Heap_AllocFromHeap(HEAP_ID_9, Pokemon_StructSize());
@@ -3146,7 +3148,7 @@ static void ov19_021D4BE0(UnkStruct_ov19_021D5DF8 *param0, UnkStruct_02042434 *p
param0->unk_00.unk_112 = 0;
ov19_021D4DE4(&(param0->unk_00.unk_48), param1->unk_04);
- ov19_021D4E88(&(param0->unk_00.unk_4C));
+ PCMonPreviewInit(&(param0->unk_00.pcMonPreview));
ov19_021D4E5C(param0->unk_120, &(param0->unk_00.unk_40));
ov19_021D4EE4(&(param0->unk_00.unk_A4));
ov19_021D4DF0(param0);
@@ -3164,13 +3166,13 @@ static void ov19_021D4D58(UnkStruct_ov19_021D5DF8 *param0)
}
StringTemplate_Free(param0->unk_19C);
- MessageLoader_Free(param0->unk_18C);
- MessageLoader_Free(param0->unk_190);
- MessageLoader_Free(param0->unk_194);
- MessageLoader_Free(param0->unk_198);
+ MessageLoader_Free(param0->boxMessagesLoader);
+ MessageLoader_Free(param0->speciesNameLoader);
+ MessageLoader_Free(param0->natureNameLoader);
+ MessageLoader_Free(param0->abilityNameLoader);
sub_0208716C(param0->unk_128);
- ov19_021D4EC0(&(param0->unk_00.unk_4C));
+ PCMonPreviewFree(&(param0->unk_00.pcMonPreview));
ov19_021D4E50(&(param0->unk_00.unk_14));
ov19_021D4E7C(&(param0->unk_00.unk_40));
ov19_021D4F18(&(param0->unk_00.unk_A4));
@@ -3235,22 +3237,22 @@ static void ov19_021D4E7C(UnkStruct_ov19_021D4F5C *param0)
Strbuf_Free(param0->unk_04);
}
-static void ov19_021D4E88(UnkStruct_ov19_021D5BAC *param0)
+static void PCMonPreviewInit(PCMonPreview *param0)
{
- param0->unk_14 = Strbuf_Init(12, HEAP_ID_9);
- param0->unk_18 = Strbuf_Init(12, HEAP_ID_9);
- param0->unk_1C = Strbuf_Init(18, HEAP_ID_9);
- param0->unk_20 = Strbuf_Init(12, HEAP_ID_9);
- param0->unk_24 = Strbuf_Init(16, HEAP_ID_9);
+ param0->nickname = Strbuf_Init(12, HEAP_ID_9);
+ param0->speciesName = Strbuf_Init(12, HEAP_ID_9);
+ param0->heldItemName = Strbuf_Init(18, HEAP_ID_9);
+ param0->nature = Strbuf_Init(12, HEAP_ID_9);
+ param0->ability = Strbuf_Init(16, HEAP_ID_9);
}
-static void ov19_021D4EC0(UnkStruct_ov19_021D5BAC *param0)
+static void PCMonPreviewFree(PCMonPreview *param0)
{
- Strbuf_Free(param0->unk_14);
- Strbuf_Free(param0->unk_18);
- Strbuf_Free(param0->unk_1C);
- Strbuf_Free(param0->unk_20);
- Strbuf_Free(param0->unk_24);
+ Strbuf_Free(param0->nickname);
+ Strbuf_Free(param0->speciesName);
+ Strbuf_Free(param0->heldItemName);
+ Strbuf_Free(param0->nature);
+ Strbuf_Free(param0->ability);
}
static void ov19_021D4EE4(UnkStruct_ov19_021D4EE4 *param0)
@@ -3603,7 +3605,7 @@ static void ov19_021D52D0(UnkStruct_ov19_021D5DF8 *param0)
static BOOL ov19_021D52F4(UnkStruct_ov19_021D5DF8 *param0)
{
UnkStruct_ov19_021D4DF0 *v0 = ¶m0->unk_00;
- UnkStruct_ov19_021D5BAC *v1 = &v0->unk_4C;
+ PCMonPreview *preview = &v0->pcMonPreview;
UnkStruct_ov19_021D3CFC *v2 = &v0->unk_08;
u32 v3;
@@ -3703,7 +3705,7 @@ static void ov19_021D5420(UnkStruct_ov19_021D5DF8 *param0, UnkStruct_ov19_021D4D
v0->unk_0B = 1;
}
- ov19_021D5BA8(param1, v0->unk_00);
+ ov19_SetPreviewedBoxMon(param1, v0->unk_00);
v0->unk_04 = v0->unk_06 = v1->unk_05;
v0->unk_05 = v0->unk_07 = v1->unk_06;
@@ -3802,11 +3804,11 @@ static void ov19_021D55C4(UnkStruct_ov19_021D5DF8 *param0, UnkStruct_ov19_021D4D
v2 = (BoxPokemon *)Party_GetPokemonBySlotIndex(param0->unk_124, Party_GetCurrentCount(param0->unk_124) - 1);
}
- ov19_021D5BA8(param1, v2);
+ ov19_SetPreviewedBoxMon(param1, v2);
v5 = ov19_021D52F4(param0);
if ((v5 == 0) && (v3 == 1)) {
- ov19_021D58AC(param1, v2, param0);
+ ov19_LoadBoxMonIntoPreview(param1, v2, param0);
ov19_021D6594(param0->unk_114, 6);
}
@@ -3832,7 +3834,7 @@ static void ov19_021D56AC(UnkStruct_ov19_021D5DF8 *param0, UnkStruct_ov19_021D4D
(u8 *)v0 += v5;
}
- ov19_021D5BA8(param1, PCBoxes_GetBoxMonAt(param0->unk_120, USE_CURRENT_BOX, ov19_021D5E24(param1)));
+ ov19_SetPreviewedBoxMon(param1, PCBoxes_GetBoxMonAt(param0->unk_120, USE_CURRENT_BOX, ov19_021D5E24(param1)));
ov19_021D52F4(param0);
v7->unk_08 = 0;
@@ -3938,57 +3940,57 @@ static void ov19_021D584C(UnkStruct_ov19_021D5DF8 *param0)
static void ov19_021D5888(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, UnkStruct_ov19_021D5DF8 *param2)
{
- ov19_021D58AC(param0, boxMon, param2);
+ ov19_LoadBoxMonIntoPreview(param0, boxMon, param2);
if (ov19_021D5E08(param0) == 4) {
ov19_021D59F4(param0, boxMon, param2);
}
}
-static void ov19_021D58AC(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, UnkStruct_ov19_021D5DF8 *param2)
+static void ov19_LoadBoxMonIntoPreview(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, UnkStruct_ov19_021D5DF8 *param2)
{
- UnkStruct_ov19_021D5BAC *v0 = &(param0->unk_4C);
+ PCMonPreview *preview = &(param0->pcMonPreview);
BOOL reencrypt = BoxPokemon_EnterDecryptionContext(boxMon);
SpeciesData *speciesData;
- v0->unk_00 = boxMon;
- v0->species = BoxPokemon_GetValue(boxMon, MON_DATA_SPECIES, NULL);
- v0->unk_06 = BoxPokemon_GetValue(boxMon, MON_DATA_HELD_ITEM, NULL);
- v0->unk_08 = GetDexNumber(SaveData_GetDexMode(param2->unk_11C), v0->species);
- v0->unk_0F = BoxPokemon_GetValue(boxMon, MON_DATA_EGG_EXISTS, NULL);
- speciesData = SpeciesData_FromMonSpecies(v0->species, 9);
- v0->unk_0A = SpeciesData_GetLevelAt(speciesData, v0->species, BoxPokemon_GetValue(boxMon, MON_DATA_EXP, NULL));
- v0->unk_0B = BoxPokemon_GetValue(boxMon, MON_DATA_MARKS, NULL);
- v0->unk_0C = BoxPokemon_GetValue(boxMon, MON_DATA_TYPE_1, NULL);
- v0->unk_0D = BoxPokemon_GetValue(boxMon, MON_DATA_TYPE_2, NULL);
+ preview->mon = boxMon;
+ preview->species = BoxPokemon_GetValue(boxMon, MON_DATA_SPECIES, NULL);
+ preview->heldItem = BoxPokemon_GetValue(boxMon, MON_DATA_HELD_ITEM, NULL);
+ preview->dexNum = GetDexNumber(SaveData_GetDexMode(param2->unk_11C), preview->species);
+ preview->isEgg = BoxPokemon_GetValue(boxMon, MON_DATA_EGG_EXISTS, NULL);
+ speciesData = SpeciesData_FromMonSpecies(preview->species, 9);
+ preview->level = SpeciesData_GetLevelAt(speciesData, preview->species, BoxPokemon_GetValue(boxMon, MON_DATA_EXP, NULL));
+ preview->markings = BoxPokemon_GetValue(boxMon, MON_DATA_MARKS, NULL);
+ preview->type1 = BoxPokemon_GetValue(boxMon, MON_DATA_TYPE_1, NULL);
+ preview->type2 = BoxPokemon_GetValue(boxMon, MON_DATA_TYPE_2, NULL);
- if ((v0->unk_0F == 0) && BoxPokemon_GetValue(boxMon, MON_DATA_NIDORAN_HAS_NICKNAME, NULL)) {
- v0->unk_0E = SpeciesData_GetGenderOf(speciesData, v0->species, BoxPokemon_GetValue(boxMon, MON_DATA_PERSONALITY, NULL));
+ if ((preview->isEgg == 0) && BoxPokemon_GetValue(boxMon, MON_DATA_NIDORAN_HAS_NICKNAME, NULL)) {
+ preview->gender = SpeciesData_GetGenderOf(speciesData, preview->species, BoxPokemon_GetValue(boxMon, MON_DATA_PERSONALITY, NULL));
} else {
- v0->unk_0E = 255;
+ preview->gender = 255;
}
- BoxPokemon_GetValue(boxMon, MON_DATA_NICKNAME_STRBUF, v0->unk_14);
+ BoxPokemon_GetValue(boxMon, MON_DATA_NICKNAME_STRBUF, preview->nickname);
- if (v0->unk_0F == 0) {
- MessageLoader_GetStrbuf(param2->unk_190, v0->species, v0->unk_18);
+ if (preview->isEgg == 0) {
+ MessageLoader_GetStrbuf(param2->speciesNameLoader, preview->species, preview->speciesName);
} else {
- Strbuf_Copy(v0->unk_18, v0->unk_14);
- Strbuf_Clear(v0->unk_14);
+ Strbuf_Copy(preview->speciesName, preview->nickname);
+ Strbuf_Clear(preview->nickname);
}
- if (v0->unk_06 != 0) {
- Item_LoadName(v0->unk_1C, v0->unk_06, 9);
+ if (preview->heldItem != 0) {
+ Item_LoadName(preview->heldItemName, preview->heldItem, 9);
} else {
- MessageLoader_GetStrbuf(param2->unk_18C, 20, v0->unk_1C);
+ MessageLoader_GetStrbuf(param2->boxMessagesLoader, no_item, preview->heldItemName);
}
{
- u32 v3 = BoxPokemon_GetNature(boxMon);
+ u32 value = BoxPokemon_GetNature(boxMon);
+ MessageLoader_GetStrbuf(param2->natureNameLoader, value, preview->nature);
- MessageLoader_GetStrbuf(param2->unk_194, v3, v0->unk_20);
- v3 = BoxPokemon_GetValue(boxMon, MON_DATA_ABILITY, NULL);
- MessageLoader_GetStrbuf(param2->unk_198, v3, v0->unk_24);
+ value = BoxPokemon_GetValue(boxMon, MON_DATA_ABILITY, NULL);
+ MessageLoader_GetStrbuf(param2->abilityNameLoader, value, preview->ability);
}
SpeciesData_Free(speciesData);
@@ -3997,22 +3999,22 @@ static void ov19_021D58AC(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, U
static void ov19_021D59F4(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon, UnkStruct_ov19_021D5DF8 *param2)
{
- UnkStruct_ov19_021D5BAC *v0 = &(param0->unk_4C);
+ PCMonPreview *preview = &(param0->pcMonPreview);
UnkStruct_ov19_021D5FAC *v1 = &(param0->unk_A4.unk_08[param0->unk_A4.unk_00]);
BOOL v2;
v1->unk_00 = boxMon;
- v1->species = v0->species;
- v1->unk_06 = v0->unk_0F;
- v1->unk_08 = v0->unk_0A;
+ v1->species = preview->species;
+ v1->unk_06 = preview->isEgg;
+ v1->unk_08 = preview->level;
if (v1->unk_06) {
- Strbuf_Copy(v1->unk_28, v0->unk_18);
+ Strbuf_Copy(v1->unk_28, preview->speciesName);
} else {
- Strbuf_Copy(v1->unk_28, v0->unk_14);
+ Strbuf_Copy(v1->unk_28, preview->nickname);
}
- Strbuf_Copy(v1->unk_2C, v0->unk_20);
+ Strbuf_Copy(v1->unk_2C, preview->nature);
Pokemon_FromBoxPokemon(boxMon, param2->unk_1A0);
v2 = Pokemon_EnterDecryptionContext(param2->unk_1A0);
@@ -4056,21 +4058,21 @@ static void ov19_021D5BA0(UnkStruct_ov19_021D4DF0 *param0, BOOL param1)
param0->unk_A4.unk_04 = param1;
}
-static void ov19_021D5BA8(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon)
+static void ov19_SetPreviewedBoxMon(UnkStruct_ov19_021D4DF0 *param0, BoxPokemon *boxMon)
{
- param0->unk_4C.unk_00 = boxMon;
+ param0->pcMonPreview.mon = boxMon;
}
static void ov19_021D5BAC(UnkStruct_ov19_021D4DF0 *param0)
{
- UnkStruct_ov19_021D5BAC *v0;
+ PCMonPreview *preview;
u8 v1;
- v0 = &(param0->unk_4C);
+ preview = &(param0->pcMonPreview);
v1 = param0->unk_74.unk_22;
- v0->unk_0B = v1;
+ preview->markings = v1;
- BoxPokemon_SetValue(v0->unk_00, MON_DATA_MARKS, &(v1));
+ BoxPokemon_SetValue(preview->mon, MON_DATA_MARKS, &(v1));
if ((ov19_021D5E10(param0) == 0) && (ov19_021D5E38(param0) == 1)) {
SaveData_SetFullSaveRequired();
@@ -4079,13 +4081,13 @@ static void ov19_021D5BAC(UnkStruct_ov19_021D4DF0 *param0)
static void ov19_021D5BE8(UnkStruct_ov19_021D4DF0 *param0, u16 param1, UnkStruct_ov19_021D5DF8 *param2)
{
- UnkStruct_ov19_021D5BAC *v0 = &(param0->unk_4C);
- v0->unk_06 = param1;
+ PCMonPreview *preview = &(param0->pcMonPreview);
+ preview->heldItem = param1;
- if (v0->unk_06 != 0) {
- Item_LoadName(v0->unk_1C, v0->unk_06, 9);
+ if (preview->heldItem != 0) {
+ Item_LoadName(preview->heldItemName, preview->heldItem, 9);
} else {
- MessageLoader_GetStrbuf(param2->unk_18C, 20, v0->unk_1C);
+ MessageLoader_GetStrbuf(param2->boxMessagesLoader, no_item, preview->heldItemName);
}
if ((ov19_021D5E10(param0) == 0) && (ov19_021D5E38(param0) == 1)) {
@@ -4093,21 +4095,21 @@ static void ov19_021D5BE8(UnkStruct_ov19_021D4DF0 *param0, u16 param1, UnkStruct
PCBoxes_SetBoxMonData(param2->unk_120, USE_CURRENT_BOX, v1, MON_DATA_HELD_ITEM, ¶m1);
}
- BoxPokemon_SetValue(v0->unk_00, MON_DATA_HELD_ITEM, ¶m1);
+ BoxPokemon_SetValue(preview->mon, MON_DATA_HELD_ITEM, ¶m1);
{
- int v2 = BoxPokemon_GetValue(v0->unk_00, MON_DATA_SPECIES, NULL);
+ int v2 = BoxPokemon_GetValue(preview->mon, MON_DATA_SPECIES, NULL);
if (v2 == SPECIES_ARCEUS) {
- BoxPokemon_SetArceusForm(v0->unk_00);
- v0->unk_0C = BoxPokemon_GetValue(v0->unk_00, MON_DATA_TYPE_1, NULL);
- v0->unk_0D = BoxPokemon_GetValue(v0->unk_00, MON_DATA_TYPE_2, NULL);
+ BoxPokemon_SetArceusForm(preview->mon);
+ preview->type1 = BoxPokemon_GetValue(preview->mon, MON_DATA_TYPE_1, NULL);
+ preview->type2 = BoxPokemon_GetValue(preview->mon, MON_DATA_TYPE_2, NULL);
} else if (v2 == SPECIES_GIRATINA) {
int v3;
- BoxPokemon_SetGiratinaForm(v0->unk_00);
- v3 = BoxPokemon_GetValue(v0->unk_00, MON_DATA_ABILITY, NULL);
- MessageLoader_GetStrbuf(param2->unk_198, v3, v0->unk_24);
+ BoxPokemon_SetGiratinaForm(preview->mon);
+ v3 = BoxPokemon_GetValue(preview->mon, MON_DATA_ABILITY, NULL);
+ MessageLoader_GetStrbuf(param2->abilityNameLoader, v3, preview->ability);
}
}
}
@@ -4152,12 +4154,12 @@ static void ov19_021D5D20(UnkStruct_ov19_021D4DF0 *param0, u32 param1)
static void ov19_021D5D28(UnkStruct_ov19_021D4DF0 *param0, UnkStruct_ov19_021D5DF8 *param1)
{
- UnkStruct_ov19_021D5BAC *v0 = &(param0->unk_4C);
+ PCMonPreview *preview = &(param0->pcMonPreview);
u16 v1 = 0;
- param0->unk_112 = v0->unk_06;
+ param0->unk_112 = preview->heldItem;
- MessageLoader_GetStrbuf(param1->unk_18C, 20, v0->unk_1C);
+ MessageLoader_GetStrbuf(param1->boxMessagesLoader, no_item, preview->heldItemName);
ov19_021D5BE8(param0, v1, param1);
}
@@ -4168,7 +4170,7 @@ static void ov19_021D5D54(UnkStruct_ov19_021D4DF0 *param0)
static void ov19_021D5D60(UnkStruct_ov19_021D4DF0 *param0, UnkStruct_ov19_021D5DF8 *param1)
{
- UnkStruct_ov19_021D5BAC *v0 = &(param0->unk_4C);
+ PCMonPreview *preview = &(param0->pcMonPreview);
u16 v1 = param0->unk_112;
param0->unk_112 = 0;
@@ -4177,9 +4179,9 @@ static void ov19_021D5D60(UnkStruct_ov19_021D4DF0 *param0, UnkStruct_ov19_021D5D
static void ov19_021D5D78(UnkStruct_ov19_021D4DF0 *param0, UnkStruct_ov19_021D5DF8 *param1)
{
- UnkStruct_ov19_021D5BAC *v0 = &(param0->unk_4C);
+ PCMonPreview *preview = &(param0->pcMonPreview);
u16 v1 = param0->unk_112;
- param0->unk_112 = v0->unk_06;
+ param0->unk_112 = preview->heldItem;
ov19_021D5BE8(param0, v1, param1);
}
@@ -4218,9 +4220,9 @@ static void ov19_021D5DD8(UnkStruct_ov19_021D4DF0 *param0)
param0->unk_48.unk_01 ^= 1;
}
-MessageLoader *ov19_021D5DE8(const UnkStruct_ov19_021D5DF8 *param0)
+MessageLoader *ov19_GetBoxMessagesLoader(const UnkStruct_ov19_021D5DF8 *param0)
{
- return param0->unk_18C;
+ return param0->boxMessagesLoader;
}
const StringTemplate *ov19_021D5DF0(const UnkStruct_ov19_021D5DF8 *param0)
@@ -4306,18 +4308,18 @@ u32 ov19_021D5E68(const UnkStruct_ov19_021D4DF0 *param0)
return param0->unk_40.unk_00;
}
-const UnkStruct_ov19_021D5BAC *ov19_021D5E70(const UnkStruct_ov19_021D4DF0 *param0)
+const PCMonPreview *ov19_GetPCMonPreview(const UnkStruct_ov19_021D4DF0 *param0)
{
- return &(param0->unk_4C);
+ return &(param0->pcMonPreview);
}
-u32 ov19_021D5E74(const UnkStruct_ov19_021D4DF0 *param0)
+u32 ov19_GetPreviewedMonHeldItem(const UnkStruct_ov19_021D4DF0 *param0)
{
if (ov19_021D5E4C(param0)) {
- return param0->unk_4C.unk_06;
+ return param0->pcMonPreview.heldItem;
}
- return 0;
+ return ITEM_NONE;
}
const UnkStruct_ov19_021D4F5C *ov19_021D5E8C(const UnkStruct_ov19_021D4DF0 *param0)
@@ -4335,14 +4337,14 @@ u32 ov19_021D5E94(const UnkStruct_ov19_021D4DF0 *param0)
return param0->unk_10C;
}
-BoxPokemon *ov19_021D5E9C(const UnkStruct_ov19_021D4DF0 *param0)
+BoxPokemon *ov19_GetPreviewedBoxMon(const UnkStruct_ov19_021D4DF0 *param0)
{
- return param0->unk_4C.unk_00;
+ return param0->pcMonPreview.mon;
}
-u32 ov19_021D5EA0(const UnkStruct_ov19_021D4DF0 *param0)
+u32 ov19_GetPreviewedMonMarkings(const UnkStruct_ov19_021D4DF0 *param0)
{
- return param0->unk_4C.unk_0B;
+ return param0->pcMonPreview.markings;
}
u32 ov19_021D5EA8(const UnkStruct_ov19_021D4DF0 *param0)
@@ -4450,7 +4452,7 @@ u32 ov19_021D5F88(const UnkStruct_ov19_021D4DF0 *param0)
return v0;
}
- return ov19_021D5E74(param0);
+ return ov19_GetPreviewedMonHeldItem(param0);
}
u32 ov19_021D5F9C(const UnkStruct_ov19_021D4DF0 *param0)
@@ -4478,33 +4480,33 @@ BOOL ov19_021D5FC0(const UnkStruct_ov19_021D4DF0 *param0)
return param0->unk_A4.unk_04;
}
-BOOL ov19_021D5FC8(const UnkStruct_ov19_021D4DF0 *param0)
+BOOL ov19_IsPreviewedMonEgg(const UnkStruct_ov19_021D4DF0 *param0)
{
- return param0->unk_4C.unk_0F;
+ return param0->pcMonPreview.isEgg;
}
-static u32 ov19_021D5FD0(UnkStruct_ov19_021D4DF0 *param0, int param1, void *param2)
+static u32 ov19_021D5FD0(UnkStruct_ov19_021D4DF0 *param0, enum PokemonDataParam value, void *dest)
{
if (ov19_021D5E38(param0) == 1) {
if (ov19_021D5E10(param0) == 0) {
- return BoxPokemon_GetValue(param0->unk_4C.unk_00, param1, param2);
+ return BoxPokemon_GetValue(param0->pcMonPreview.mon, value, dest);
}
} else {
UnkStruct_ov19_021D5594 *v0 = ¶m0->unk_14;
if (v0->unk_0B == 0) {
- return BoxPokemon_GetValue(param0->unk_4C.unk_00, param1, param2);
+ return BoxPokemon_GetValue(param0->pcMonPreview.mon, value, dest);
}
}
- return Pokemon_GetValue(param0->unk_4C.unk_00, param1, param2);
+ return Pokemon_GetValue(param0->pcMonPreview.mon, value, dest);
}
-static u32 ov19_021D6014(UnkStruct_ov19_021D4DF0 *param0, int param1, void *param2)
+static u32 ov19_021D6014(UnkStruct_ov19_021D4DF0 *param0, enum PokemonDataParam value, void *dest)
{
if (ov19_021D5E10(param0) == 0) {
- return BoxPokemon_GetValue(param0->unk_4C.unk_00, param1, param2);
+ return BoxPokemon_GetValue(param0->pcMonPreview.mon, value, dest);
} else {
- return Pokemon_GetValue(param0->unk_08.unk_00, param1, param2);
+ return Pokemon_GetValue(param0->unk_08.unk_00, value, dest);
}
}
diff --git a/src/overlay019/ov19_021D61B0.c b/src/overlay019/ov19_021D61B0.c
index 3c4560809e..a0cf8b7644 100644
--- a/src/overlay019/ov19_021D61B0.c
+++ b/src/overlay019/ov19_021D61B0.c
@@ -196,13 +196,13 @@ BOOL ov19_021D61B0(UnkStruct_ov19_021D61B0 **param0, const UnkStruct_ov19_021D4D
v2 &= ov19_021D79F8(&(v0->unk_494), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18);
v2 &= ov19_021D8B54(&(v0->unk_5E24), v0, v0->unk_1C4, v0->unk_18, v3);
v2 &= ov19_021DA814(&(v0->unk_65BC), v0, v0->unk_1C4, v0->unk_18, v3);
- v2 &= ov19_021DA92C(&(v0->unk_6604), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18, ov19_021D5DE8(param2), v3);
- v2 &= ov19_021DB2FC(&(v0->unk_6658), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18, ov19_021D5DE8(param2), ov19_021D5DF0(param2), ov19_021D5DF8(param2), v3);
+ v2 &= ov19_021DA92C(&(v0->unk_6604), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18, ov19_GetBoxMessagesLoader(param2), v3);
+ v2 &= ov19_021DB2FC(&(v0->unk_6658), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18, ov19_GetBoxMessagesLoader(param2), ov19_021D5DF0(param2), ov19_021D5DF8(param2), v3);
v2 &= ov19_021DB8E4(&(v0->unk_6690), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18, v3);
v2 &= ov19_021DC5F0(&(v0->unk_B290), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18, v3);
v2 &= ov19_021DCF88(&(v0->unk_B408), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18);
v2 &= ov19_021DE3E8(&(v0->unk_B40C), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18);
- v2 &= ov19_021DEC04(&(v0->unk_B410), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18, ov19_021D5DE8(param2), v3);
+ v2 &= ov19_021DEC04(&(v0->unk_B410), v0, v0->unk_1C4, v0->unk_1C0, v0->unk_18, ov19_GetBoxMessagesLoader(param2), v3);
v0->unk_B414 = param2;
v0->unk_00 = SysTask_Start(ov19_021D6474, v0, 2);
@@ -929,7 +929,7 @@ static void ov19_021D6D88(SysTask *param0, void *param1)
v2 = (UnkStruct_ov19_021D6640 *)param1;
v0 = v2->unk_0C;
v1 = v0->unk_1C4;
- v3 = ov19_021D5E74(v1);
+ v3 = ov19_GetPreviewedMonHeldItem(v1);
if (ov19_021D5E38(v1) == 2) {
ov19_021D9AB0(&v0->unk_5E24, v3);
diff --git a/src/overlay019/ov19_021D79F8.c b/src/overlay019/ov19_021D79F8.c
index eccdade5eb..72fd2e0ca4 100644
--- a/src/overlay019/ov19_021D79F8.c
+++ b/src/overlay019/ov19_021D79F8.c
@@ -855,7 +855,7 @@ void ov19_021D89F4(UnkStruct_ov19_021D8318 *param0, u32 param1)
void ov19_021D8A24(UnkStruct_ov19_021D8318 *param0)
{
u32 v0 = ov19_021D5E24(param0->unk_58F8);
- u32 v1 = ov19_021D5EA0(param0->unk_58F8);
+ u32 v1 = ov19_GetPreviewedMonMarkings(param0->unk_58F8);
if (param0->unk_A8[param0->unk_02][v0].unk_00 != NULL) {
ov19_021DA68C(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][v0]), v1);
diff --git a/src/overlay019/ov19_021D8B54.c b/src/overlay019/ov19_021D8B54.c
index 6c3c2c69dd..5c18b1c8d5 100644
--- a/src/overlay019/ov19_021D8B54.c
+++ b/src/overlay019/ov19_021D8B54.c
@@ -180,7 +180,7 @@ static void ov19_021D8E00(UnkStruct_ov19_021D8E00 *param0)
v2 = (v0.y >> FX32_SHIFT) - -4;
ov19_021DA3CC(param0->unk_48, param0->unk_4C, 1);
- ov19_021DA428(param0->unk_48, ov19_021D5E9C(param0->unk_790), v1, v2, Sprite_GetExplicitPriority(param0->unk_04), 2, 1240, param0->unk_4C);
+ ov19_021DA428(param0->unk_48, ov19_GetPreviewedBoxMon(param0->unk_790), v1, v2, Sprite_GetExplicitPriority(param0->unk_04), 2, 1240, param0->unk_4C);
param0->unk_664[0].unk_00 = (0 * FX32_ONE);
param0->unk_664[0].unk_04 = (-4 * FX32_ONE);
@@ -799,7 +799,7 @@ void ov19_021D9A2C(UnkStruct_ov19_021D8E00 *param0)
void ov19_021D9A64(UnkStruct_ov19_021D8E00 *param0)
{
if (param0->unk_78C) {
- u32 v0 = ov19_021D5EA0(param0->unk_790);
+ u32 v0 = ov19_GetPreviewedMonMarkings(param0->unk_790);
ov19_021DA68C(param0->unk_48, param0->unk_4C, v0);
}
}
diff --git a/src/overlay019/ov19_021DA92C.c b/src/overlay019/ov19_021DA92C.c
index 3b7919634f..629cc811a7 100644
--- a/src/overlay019/ov19_021DA92C.c
+++ b/src/overlay019/ov19_021DA92C.c
@@ -7,8 +7,8 @@
#include "overlay019/ov19_021D0D80.h"
#include "overlay019/ov19_021D61B0.h"
+#include "overlay019/pc_mon_preview.h"
#include "overlay019/struct_ov19_021D4DF0.h"
-#include "overlay019/struct_ov19_021D5BAC.h"
#include "overlay019/struct_ov19_021D61B0_decl.h"
#include "overlay019/struct_ov19_021DA9E0.h"
@@ -245,9 +245,9 @@ static void ov19_021DAC4C(UnkStruct_ov19_021DA9E0 *param0)
UnkStruct_ov19_021DAE2C *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DAE2C));
if (v0) {
- const UnkStruct_ov19_021D5BAC *v1 = ov19_021D5E70(param0->unk_10);
+ const PCMonPreview *preview = ov19_GetPCMonPreview(param0->unk_10);
- v0->unk_00 = (v1->unk_0F) ? 4 : 0;
+ v0->unk_00 = (preview->isEgg) ? 4 : 0;
v0->unk_08 = param0;
param0->unk_4C = SysTask_Start(ov19_021DACF8, v0, 1);
} else {
@@ -270,9 +270,9 @@ static void ov19_021DACB0(UnkStruct_ov19_021DA9E0 *param0)
UnkStruct_ov19_021DAE2C *v0 = SysTask_GetParam(param0->unk_4C);
if (v0) {
- const UnkStruct_ov19_021D5BAC *v1 = ov19_021D5E70(param0->unk_10);
+ const PCMonPreview *preview = ov19_GetPCMonPreview(param0->unk_10);
- v0->unk_00 = (v1->unk_0F) ? 4 : 0;
+ v0->unk_00 = (preview->isEgg) ? 4 : 0;
ov19_021DAE10(param0);
}
}
@@ -291,7 +291,7 @@ static void ov19_021DACF8(SysTask *param0, void *param1)
{
UnkStruct_ov19_021DAE2C *v0 = (UnkStruct_ov19_021DAE2C *)param1;
UnkStruct_ov19_021DA9E0 *v1 = v0->unk_08;
- const UnkStruct_ov19_021D5BAC *v2;
+ const PCMonPreview *preview;
switch (v0->unk_00) {
case 0:
@@ -308,9 +308,9 @@ static void ov19_021DACF8(SysTask *param0, void *param1)
v0->unk_00 = 2;
break;
case 2:
- v2 = ov19_021D5E70(v1->unk_10);
+ preview = ov19_GetPCMonPreview(v1->unk_10);
- if (!v2->unk_0F && (++(v0->unk_04) > 80)) {
+ if (!preview->isEgg && (++(v0->unk_04) > 80)) {
ov19_021DAE2C(v0);
v0->unk_04 = 0;
v0->unk_06 = 0;
@@ -396,13 +396,13 @@ static void ov19_021DAE60(Window *param0, UnkStruct_ov19_021DA9E0 *param1, u32 p
switch (param2) {
case 0:
- v0 = param1->unk_10->unk_4C.unk_1C;
+ v0 = param1->unk_10->pcMonPreview.heldItemName;
break;
case 2:
- v0 = param1->unk_10->unk_4C.unk_20;
+ v0 = param1->unk_10->pcMonPreview.nature;
break;
case 3:
- v0 = param1->unk_10->unk_4C.unk_24;
+ v0 = param1->unk_10->pcMonPreview.ability;
break;
case 1: {
@@ -410,24 +410,24 @@ static void ov19_021DAE60(Window *param0, UnkStruct_ov19_021DA9E0 *param1, u32 p
u32 v3, v4;
v3 = sub_0207C944();
- v4 = sub_0207C908(param1->unk_10->unk_4C.unk_0C);
+ v4 = sub_0207C908(param1->unk_10->pcMonPreview.type1);
- Graphics_LoadObjectTiles(sub_0207C944(), sub_0207C908(param1->unk_10->unk_4C.unk_0C), 0, 1504 * 0x20, 0, 1, HEAP_ID_10);
+ Graphics_LoadObjectTiles(sub_0207C944(), sub_0207C908(param1->unk_10->pcMonPreview.type1), 0, 1504 * 0x20, 0, 1, HEAP_ID_10);
v2 = *Sprite_GetPosition(param1->unk_3C[0]);
v2.y = (176 + (16 * param3)) << FX32_SHIFT;
Sprite_SetPosition(param1->unk_3C[0], &v2);
- Sprite_SetExplicitPalette(param1->unk_3C[0], 10 + sub_0207C92C(param1->unk_10->unk_4C.unk_0C));
+ Sprite_SetExplicitPalette(param1->unk_3C[0], 10 + sub_0207C92C(param1->unk_10->pcMonPreview.type1));
Sprite_SetDrawFlag(param1->unk_3C[0], 1);
- if (param1->unk_10->unk_4C.unk_0C != param1->unk_10->unk_4C.unk_0D) {
- Graphics_LoadObjectTiles(sub_0207C944(), sub_0207C908(param1->unk_10->unk_4C.unk_0D), 0, (1504 + 8) * 0x20, 0, 1, HEAP_ID_10);
+ if (param1->unk_10->pcMonPreview.type1 != param1->unk_10->pcMonPreview.type2) {
+ Graphics_LoadObjectTiles(sub_0207C944(), sub_0207C908(param1->unk_10->pcMonPreview.type2), 0, (1504 + 8) * 0x20, 0, 1, HEAP_ID_10);
v2.x += (36 << FX32_SHIFT);
Sprite_SetPosition(param1->unk_3C[1], &v2);
- Sprite_SetExplicitPalette(param1->unk_3C[1], 10 + sub_0207C92C(param1->unk_10->unk_4C.unk_0D));
+ Sprite_SetExplicitPalette(param1->unk_3C[1], 10 + sub_0207C92C(param1->unk_10->pcMonPreview.type2));
Sprite_SetDrawFlag(param1->unk_3C[1], 1);
} else {
Sprite_SetDrawFlag(param1->unk_3C[1], 0);
@@ -521,13 +521,13 @@ void ov19_021DB078(UnkStruct_ov19_021DA9E0 *param0)
static void ov19_021DB0E4(UnkStruct_ov19_021DA9E0 *param0)
{
ArchivedSprite v0;
- const UnkStruct_ov19_021D5BAC *v1 = ov19_021D5E70(param0->unk_10);
+ const PCMonPreview *preview = ov19_GetPCMonPreview(param0->unk_10);
- Text_AddPrinterWithParamsAndColor(¶m0->unk_04[0], FONT_SYSTEM, v1->unk_18, 2, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(9, 6, 15), NULL);
- Text_AddPrinterWithParamsAndColor(¶m0->unk_04[2], FONT_SYSTEM, v1->unk_14, 2, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL);
- Text_AddPrinterWithParamsAndColor(¶m0->unk_04[2], FONT_SYSTEM, v1->unk_14, 2, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL);
+ Text_AddPrinterWithParamsAndColor(¶m0->unk_04[0], FONT_SYSTEM, preview->speciesName, 2, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(9, 6, 15), NULL);
+ Text_AddPrinterWithParamsAndColor(¶m0->unk_04[2], FONT_SYSTEM, preview->nickname, 2, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL);
+ Text_AddPrinterWithParamsAndColor(¶m0->unk_04[2], FONT_SYSTEM, preview->nickname, 2, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL);
- switch (v1->unk_0E) {
+ switch (preview->gender) {
case 0:
Text_AddPrinterWithParamsAndColor(¶m0->unk_04[2], FONT_SYSTEM, param0->unk_44, 70, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(7, 8, 15), NULL);
break;
@@ -536,19 +536,19 @@ static void ov19_021DB0E4(UnkStruct_ov19_021DA9E0 *param0)
break;
}
- if (v1->unk_0F == 0) {
- Text_AddPrinterWithParamsAndColor(¶m0->unk_04[3], FONT_SYSTEM, v1->unk_1C, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(9, 6, 0), NULL);
+ if (preview->isEgg == 0) {
+ Text_AddPrinterWithParamsAndColor(¶m0->unk_04[3], FONT_SYSTEM, preview->heldItemName, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(9, 6, 0), NULL);
- if (v1->unk_08) {
- sub_0200C648(param0->unk_18, 2, v1->unk_08, 3, 2, &(param0->unk_04[1]), 0, 0);
+ if (preview->dexNum) {
+ sub_0200C648(param0->unk_18, 2, preview->dexNum, 3, 2, &(param0->unk_04[1]), 0, 0);
}
- sub_0200C648(param0->unk_1C, 1, v1->unk_0A, 3, 1, &(param0->unk_04[2]), 0, 16);
+ sub_0200C648(param0->unk_1C, 1, preview->level, 3, 1, &(param0->unk_04[2]), 0, 16);
}
- BoxPokemon_BuildArchivedSprite(&v0, v1->unk_00, 2, 0);
+ BoxPokemon_BuildArchivedSprite(&v0, preview->mon, 2, 0);
param0->unk_24 = sub_02007C34(param0->unk_20, &v0, 44, 84, 0, 0, NULL, NULL);
- ov19_021DB24C(param0, v1->unk_0B);
+ ov19_021DB24C(param0, preview->markings);
}
BOOL ov19_021DB220(UnkStruct_ov19_021DA9E0 *param0)
@@ -567,10 +567,10 @@ void ov19_021DB224(UnkStruct_ov19_021DA9E0 *param0)
}
if (ov19_021D5E4C(param0->unk_10)) {
- const UnkStruct_ov19_021D5BAC *v0;
+ const PCMonPreview *preview;
- v0 = ov19_021D5E70(param0->unk_10);
- ov19_021DB24C(param0, v0->unk_0B);
+ preview = ov19_GetPCMonPreview(param0->unk_10);
+ ov19_021DB24C(param0, preview->markings);
}
}
@@ -597,17 +597,17 @@ static void ov19_021DB24C(UnkStruct_ov19_021DA9E0 *param0, u8 param1)
void ov19_021DB2B0(UnkStruct_ov19_021DA9E0 *param0)
{
- const UnkStruct_ov19_021D5BAC *v0;
+ const PCMonPreview *preview;
if (param0->unk_00 == 0) {
return;
}
- v0 = ov19_021D5E70(param0->unk_10);
+ preview = ov19_GetPCMonPreview(param0->unk_10);
Window_FillTilemap(¶m0->unk_04[3], 0);
- if (v0->unk_0F == 0) {
- Text_AddPrinterWithParamsAndColor(¶m0->unk_04[3], FONT_SYSTEM, v0->unk_1C, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(9, 6, 0), NULL);
+ if (preview->isEgg == 0) {
+ Text_AddPrinterWithParamsAndColor(¶m0->unk_04[3], FONT_SYSTEM, preview->heldItemName, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(9, 6, 0), NULL);
}
ov19_021DACB0(param0);
diff --git a/src/overlay019/ov19_021DC5F0.c b/src/overlay019/ov19_021DC5F0.c
index 20d5e491a9..3942e07fe7 100644
--- a/src/overlay019/ov19_021DC5F0.c
+++ b/src/overlay019/ov19_021DC5F0.c
@@ -368,7 +368,7 @@ void ov19_021DCBDC(UnkStruct_ov19_021DC680 *param0, u32 param1, u32 param2)
void ov19_021DCC14(UnkStruct_ov19_021DC680 *param0)
{
u32 v0 = ov19_021D5E2C(param0->unk_0C);
- u32 v1 = ov19_021D5EA0(param0->unk_0C);
+ u32 v1 = ov19_GetPreviewedMonMarkings(param0->unk_0C);
if (param0->unk_3C[v0].unk_00 != NULL) {
ov19_021DA68C(param0->unk_38, &(param0->unk_3C[v0]), v1);
diff --git a/src/overlay019/ov19_021DE3E8.c b/src/overlay019/ov19_021DE3E8.c
index 8d6e63825c..53f2cd5eea 100644
--- a/src/overlay019/ov19_021DE3E8.c
+++ b/src/overlay019/ov19_021DE3E8.c
@@ -194,7 +194,7 @@ void ov19_021DE584(UnkStruct_ov19_021DE3E8 *param0)
static void ov19_021DE59C(UnkStruct_ov19_021DE3E8 *param0)
{
- u32 v0 = ov19_021D5E74(param0->unk_08);
+ u32 v0 = ov19_GetPreviewedMonHeldItem(param0->unk_08);
if (v0 != 0) {
int v1 = ov19_021DE538(param0, 1);
@@ -287,7 +287,7 @@ void ov19_021DE7A0(UnkStruct_ov19_021DE3E8 *param0)
Sprite_SetAnim(param0->unk_1C[v0], 2);
}
- v1 = ov19_021D5E74(param0->unk_08);
+ v1 = ov19_GetPreviewedMonHeldItem(param0->unk_08);
if (v1 != 0) {
v0 = ov19_021DE538(param0, 1);
diff --git a/src/overlay019/ov19_021DF964.c b/src/overlay019/ov19_021DF964.c
index f7adcc5749..4cc7418a21 100644
--- a/src/overlay019/ov19_021DF964.c
+++ b/src/overlay019/ov19_021DF964.c
@@ -6,8 +6,8 @@
#include "struct_decls/pc_boxes_decl.h"
#include "overlay019/ov19_021D0D80.h"
+#include "overlay019/pc_mon_preview.h"
#include "overlay019/struct_ov19_021D4DF0.h"
-#include "overlay019/struct_ov19_021D5BAC.h"
#include "overlay019/struct_ov19_021DF964.h"
#include "enums.h"
@@ -49,9 +49,9 @@ void ov19_021DF990(UnkStruct_ov19_021D4DF0 *param0)
ov19_021DFD08(v0, UnkEnum_021DFB94_37);
{
- const UnkStruct_ov19_021D5BAC *v1 = ov19_021D5E70(param0);
+ const PCMonPreview *preview = ov19_GetPCMonPreview(param0);
- if (v1->unk_0F == 0) {
+ if (preview->isEgg == 0) {
ov19_021DFD08(v0, UnkEnum_021DFB94_40);
}
}
@@ -90,7 +90,7 @@ void ov19_021DFAD0(UnkStruct_ov19_021D4DF0 *param0)
v0 = &(param0->unk_74);
v1 = ov19_021D5F7C(param0);
- v2 = ov19_021D5E74(param0);
+ v2 = ov19_GetPreviewedMonHeldItem(param0);
ov19_021DFCF8(v0);
v0->unk_23 = 1;
@@ -219,7 +219,7 @@ void ov19_021DFC80(UnkStruct_ov19_021D4DF0 *param0)
ov19_021DFCF8(v0);
v0->unk_23 = 4;
- v0->unk_22 = param0->unk_4C.unk_0B;
+ v0->unk_22 = param0->pcMonPreview.markings;
ov19_021DFD08(v0, UnkEnum_021DFB94_56);
ov19_021DFD08(v0, UnkEnum_021DFB94_57);