Document box messages

This commit is contained in:
narf0708@gmail.com 2025-05-10 20:44:10 -04:00
parent 14d687540f
commit 0d5560285e
8 changed files with 205 additions and 203 deletions

View File

@ -70,7 +70,7 @@ const PCMonPreview *ov19_GetPCMonPreview(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetPreviewedMonHeldItem(const UnkStruct_ov19_021D4DF0 *param0);
const BoxCustomization *ov19_GetBoxCustomization(const UnkStruct_ov19_021D4DF0 *param0);
const PCBoxes *ov19_GetPCBoxes(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5E94(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetBoxMessageID(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);
@ -87,7 +87,7 @@ u32 ov19_GetCursorItem(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetCursorOrPreviewedItem(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5F9C(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5FA4(const UnkStruct_ov19_021D4DF0 *param0);
const PCCompareMon *GetCompareMonFrom(const UnkStruct_ov19_021D4DF0 *param0, int compareSlot);
const PCCompareMon *ov19_GetCompareMonFrom(const UnkStruct_ov19_021D4DF0 *param0, int compareSlot);
BOOL ov19_021D5FB8(const UnkStruct_ov19_021D4DF0 *param0, int param1);
BOOL ov19_IsCompareButtonPressed(const UnkStruct_ov19_021D4DF0 *param0);
BOOL ov19_IsPreviewedMonEgg(const UnkStruct_ov19_021D4DF0 *param0);

View File

@ -14,7 +14,7 @@
BOOL ov19_021DB2FC(UnkStruct_ov19_021DB6F0 *param0, UnkStruct_ov19_021D61B0 *param1, const UnkStruct_ov19_021D4DF0 *param2, BgConfig *param3, SpriteList *param4, MessageLoader *param5, const StringTemplate *param6, int param7, NARC *param8);
void ov19_021DB370(UnkStruct_ov19_021DB6F0 *param0);
void ov19_021DB3C4(UnkStruct_ov19_021DB6F0 *param0);
void ov19_021DB448(UnkStruct_ov19_021DB6F0 *param0, u32 param1);
void ov19_021DB448(UnkStruct_ov19_021DB6F0 *param0, u32 boxMessageID);
void ov19_021DB57C(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF964 *param1);
void ov19_021DB6F0(UnkStruct_ov19_021DB6F0 *param0);
void ov19_021DB724(UnkStruct_ov19_021DB6F0 *param0);

View File

@ -28,7 +28,7 @@ typedef struct {
UnkStruct_ov19_021D4F34 unk_9C;
u8 padding_A2[2];
UnkStruct_ov19_021D4EE4 unk_A4;
u32 unk_10C;
u32 boxMessageID;
u16 unk_110;
u16 cursorItem;
} UnkStruct_ov19_021D4DF0;

View File

@ -1,187 +1,187 @@
<?xml version="1.0"?>
<body language="English">
<key value="10503" />
<row id="pl_msg_00000019_00000" index="0">
<row id="BoxText_MonSelected" index="0">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 1, 0, 0} is selected.</language>
</row>
<row id="pl_msg_00000019_00001" index="1">
<row id="BoxText_MarkMon" index="1">
<attribute name="window_context_name">used</attribute>
<language name="English">Mark your Pokémon.</language>
</row>
<row id="pl_msg_00000019_00002" index="2">
<row id="BoxText_ReleaseMon" index="2">
<attribute name="window_context_name">used</attribute>
<language name="English">Release this Pokémon?</language>
</row>
<row id="pl_msg_00000019_00003" index="3">
<row id="BoxText_MonReleased" index="3">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 1, 0, 0} was released.</language>
</row>
<row id="pl_msg_00000019_00004" index="4">
<row id="BoxText_GoodbyeForever" index="4">
<attribute name="window_context_name">used</attribute>
<language name="English">Bye-bye, {STRVAR_1 1, 0, 0}!</language>
</row>
<row id="pl_msg_00000019_00005" index="5">
<row id="BoxText_PartyFull" index="5">
<attribute name="window_context_name">used</attribute>
<language name="English">Your partys full!</language>
</row>
<row id="pl_msg_00000019_00006" index="6">
<row id="BoxText_LastMon" index="6">
<attribute name="window_context_name">used</attribute>
<language name="English">Thats your last Pokémon!</language>
</row>
<row id="pl_msg_00000019_00007" index="7">
<row id="BoxText_WhatDo" index="7">
<attribute name="window_context_name">used</attribute>
<language name="English">What do you want to do?</language>
</row>
<row id="pl_msg_00000019_00008" index="8">
<row id="BoxText_JumpToBox" index="8">
<attribute name="window_context_name">used</attribute>
<language name="English">Jump to which Box?</language>
</row>
<row id="pl_msg_00000019_00009" index="9">
<row id="BoxText_PickTheme" index="9">
<attribute name="window_context_name">used</attribute>
<language name="English">Please pick a theme.</language>
</row>
<row id="pl_msg_00000019_00010" index="10">
<row id="BoxText_Wallpaper" index="10">
<attribute name="window_context_name">used</attribute>
<language name="English">Pick the wallpaper.</language>
</row>
<row id="pl_msg_00000019_00011" index="11">
<row id="BoxText_ConfirmExit" index="11">
<attribute name="window_context_name">used</attribute>
<language name="English">Exit from the Box?</language>
</row>
<row id="pl_msg_00000019_00012" index="12">
<row id="BoxText_ConfirmContinue" index="12">
<attribute name="window_context_name">used</attribute>
<language name="English">Continue Box operations?</language>
</row>
<row id="pl_msg_00000019_00013" index="13">
<row id="BoxText_BoxFull" index="13">
<attribute name="window_context_name">used</attribute>
<language name="English">The Box is full.</language>
</row>
<row id="pl_msg_00000019_00014" index="14">
<row id="BoxText_BagFull" index="14">
<attribute name="window_context_name">used</attribute>
<language name="English">The Bag is full.</language>
</row>
<row id="pl_msg_00000019_00015" index="15">
<row id="BoxText_TookItem" index="15">
<attribute name="window_context_name">used</attribute>
<language name="English">Took the {STRVAR_1 8, 0, 0}.</language>
</row>
<row id="pl_msg_00000019_00016" index="16">
<row id="BoxText_HoldingItem" index="16">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 8, 0, 0} is now being held.</language>
</row>
<row id="pl_msg_00000019_00017" index="17">
<row id="BoxText_HoldingMon" index="17">
<attribute name="window_context_name">used</attribute>
<language name="English">Youre holding a Pokémon!</language>
</row>
<row id="pl_msg_00000019_00018" index="18">
<row id="BoxText_PickOne" index="18">
<attribute name="window_context_name">used</attribute>
<language name="English">Which one will you take?</language>
</row>
<row id="pl_msg_00000019_00019" index="19">
<row id="BoxText_PickDepositBox" index="19">
<attribute name="window_context_name">used</attribute>
<language name="English">Deposit in which Box?</language>
</row>
<row id="BoxMessages_Text_NoItem" index="20">
<row id="BoxText_NoItem" index="20">
<attribute name="window_context_name">used</attribute>
<language name="English">No item</language>
</row>
<row id="pl_msg_00000019_00021" index="21">
<row id="BoxText_Male" index="21">
<attribute name="window_context_name">used</attribute>
<language name="English">♂</language>
</row>
<row id="pl_msg_00000019_00022" index="22">
<row id="BoxText_Female" index="22">
<attribute name="window_context_name">used</attribute>
<language name="English">♀</language>
</row>
<row id="pl_msg_00000019_00023" index="23">
<row id="BoxText_ConfirmTakeItem" index="23">
<attribute name="window_context_name">used</attribute>
<language name="English">Take this {STRVAR_1 8, 0, 0}?</language>
</row>
<row id="pl_msg_00000019_00024" index="24">
<row id="BoxText_CantTakeMail" index="24">
<attribute name="window_context_name">used</attribute>
<language name="English">Mail cant be taken away.</language>
</row>
<row id="pl_msg_00000019_00025" index="25">
<row id="BoxText_ItemSelected" index="25">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 8, 0, 0} is selected.</language>
</row>
<row id="pl_msg_00000019_00026" index="26">
<row id="BoxText_PutAwayItem" index="26">
<attribute name="window_context_name">used</attribute>
<language name="English">Put away {STRVAR_1 8, 0, 0}?</language>
</row>
<row id="pl_msg_00000019_00027" index="27">
<row id="BoxText_PlaceItemInBag" index="27">
<attribute name="window_context_name">used</attribute>
<language name="English">Placed {STRVAR_1 8, 0, 0} in the Bag.</language>
</row>
<row id="pl_msg_00000019_00028" index="28">
<row id="BoxText_GiveToMon" index="28">
<attribute name="window_context_name">used</attribute>
<language name="English">Give to a Pokémon?</language>
</row>
<row id="pl_msg_00000019_00029" index="29">
<row id="BoxText_DetachBallCapsule" index="29">
<attribute name="window_context_name">used</attribute>
<language name="English">Please detach the Ball Capsule.</language>
</row>
<row id="pl_msg_00000019_00030" index="30">
<row id="BoxText_RemoveMail" index="30">
<attribute name="window_context_name">used</attribute>
<language name="English">Please remove the Mail.</language>
</row>
<row id="pl_msg_00000019_00031" index="31">
<row id="BoxText_CantReleaseEgg" index="31">
<attribute name="window_context_name">used</attribute>
<language name="English">You cant release an Egg.</language>
</row>
<row id="pl_msg_00000019_00032" index="32">
<row id="BoxText_MonReturned" index="32">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 1, 0, 0} came back!</language>
</row>
<row id="pl_msg_00000019_00033" index="33">
<row id="BoxText_MonWasWorried" index="33">
<attribute name="window_context_name">used</attribute>
<language name="English">Was it worried about you?</language>
</row>
<row id="pl_msg_00000019_00034" index="34">
<row id="BoxText_EggsCantHoldItems" index="34">
<attribute name="window_context_name">used</attribute>
<language name="English">An Egg cant hold an item.</language>
</row>
<row id="pl_msg_00000019_00035" index="35">
<row id="BoxText_Nature" index="35">
<attribute name="window_context_name">used</attribute>
<language name="English">NATURE</language>
</row>
<row id="pl_msg_00000019_00036" index="36">
<row id="BoxText_Level" index="36">
<attribute name="window_context_name">used</attribute>
<language name="English">Lv.</language>
</row>
<row id="pl_msg_00000019_00037" index="37">
<row id="BoxText_HP" index="37">
<attribute name="window_context_name">used</attribute>
<language name="English">HP</language>
</row>
<row id="pl_msg_00000019_00038" index="38">
<row id="BoxText_Attack" index="38">
<attribute name="window_context_name">used</attribute>
<language name="English">ATTACK</language>
</row>
<row id="pl_msg_00000019_00039" index="39">
<row id="BoxText_Defense" index="39">
<attribute name="window_context_name">used</attribute>
<language name="English">DEFENSE</language>
</row>
<row id="pl_msg_00000019_00040" index="40">
<row id="BoxText_SpecialAttack" index="40">
<attribute name="window_context_name">used</attribute>
<language name="English">SP. ATK</language>
</row>
<row id="pl_msg_00000019_00041" index="41">
<row id="BoxText_SpecialDefense" index="41">
<attribute name="window_context_name">used</attribute>
<language name="English">SP. DEF</language>
</row>
<row id="pl_msg_00000019_00042" index="42">
<row id="BoxText_Speed" index="42">
<attribute name="window_context_name">used</attribute>
<language name="English">SPEED</language>
</row>
<row id="pl_msg_00000019_00043" index="43">
<row id="BoxText_Move" index="43">
<attribute name="window_context_name">used</attribute>
<language name="English">MOVE</language>
</row>
<row id="pl_msg_00000019_00044" index="44">
<row id="BoxText_QuestionMarks" index="44">
<attribute name="window_context_name">used</attribute>
<language name="English">???</language>
</row>
<row id="pl_msg_00000019_00045" index="45">
<row id="BoxText_MonCantHoldItem" index="45">
<attribute name="window_context_name">used</attribute>
<language name="English">It cant hold the {STRVAR_1 8, 0, 0}.</language>
</row>

View File

@ -98,7 +98,7 @@ typedef struct {
u32 unk_00;
u8 unk_04;
s8 unk_05;
u16 unk_06;
u16 boxMessageID;
} UnkStruct_ov19_021D4468;
typedef struct {
@ -165,7 +165,7 @@ static void ov19_021D0F20(UnkStruct_ov19_021D5DF8 *param0, u32 *param1);
static void ov19_021D0F88(UnkStruct_ov19_021D5DF8 *param0, u32 *param1);
static inline int inline_ov19_021D0FF0(UnkStruct_ov19_021D5DF8 *param0);
static int ov19_021D0FF0(UnkStruct_ov19_021D5DF8 *param0);
static BOOL ov19_IsPreviewedMonHoldingMail(UnkStruct_ov19_021D5DF8 *param0, int *param1);
static BOOL ov19_IsPreviewedMonHoldingMailOrHasBallCapsule(UnkStruct_ov19_021D5DF8 *param0, int *destMessageID);
static int ov19_021D1270(UnkStruct_ov19_021D5DF8 *param0);
static int ov19_021D15C0(UnkStruct_ov19_021D5DF8 *param0);
static int ov19_021D17AC(UnkStruct_ov19_021D5DF8 *param0);
@ -188,7 +188,7 @@ static void ov19_021D3010(UnkStruct_ov19_021D5DF8 *param0, u32 *param1);
static void ov19_021D30D0(UnkStruct_ov19_021D5DF8 *param0, u32 *param1);
static void ov19_021D3294(UnkStruct_ov19_021D5DF8 *param0, u32 *param1);
static BOOL ov19_OnLastAliveMon(UnkStruct_ov19_021D5DF8 *param0);
static BOOL ov19_021D357C(UnkStruct_ov19_021D5DF8 *param0, int *param1);
static BOOL ov19_CheckReleaseMonValid(UnkStruct_ov19_021D5DF8 *param0, int *destBoxMessageID);
static void ov19_021D35F8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1);
static void ov19_021D38E0(UnkStruct_ov19_021D5DF8 *param0);
static void ov19_021D3978(SysTask *param0, void *param1);
@ -232,7 +232,7 @@ static void ov19_ReturnCursorToBox(UnkStruct_ov19_021D5DF8 *param0);
static BOOL ov19_TryPreviewCursorMon(UnkStruct_ov19_021D5DF8 *param0);
static BOOL ov19_TryPressTouchScreenButton(UnkStruct_ov19_021D5DF8 *param0);
static void ov19_BoxTouchScreenButtonHandler(u32 buttonIndex, enum TouchScreenButtonState buttonTouchState, void *context);
static void ov19_021D5408(UnkStruct_ov19_021D4DF0 *param0, u32 param1);
static void ov19_SetBoxMessage(UnkStruct_ov19_021D4DF0 *param0, u32 boxMessageID);
static void ov19_SetCursorBoxLocation(UnkStruct_ov19_021D4DF0 *param0, u32 col, u32 row);
static void ov19_PickUpMon(UnkStruct_ov19_021D5DF8 *param0, UnkStruct_ov19_021D4DF0 *param1);
static void ov19_PickUpMultiSelectedMons(UnkStruct_ov19_021D5DF8 *param0, UnkStruct_ov19_021D4DF0 *param1);
@ -536,15 +536,15 @@ static int ov19_021D0FF0(UnkStruct_ov19_021D5DF8 *param0)
return 0;
}
static BOOL ov19_IsPreviewedMonHoldingMail(UnkStruct_ov19_021D5DF8 *param0, int *param1)
static BOOL ov19_IsPreviewedMonHoldingMailOrHasBallCapsule(UnkStruct_ov19_021D5DF8 *param0, int *destMessageID)
{
if (Item_IsMail(ov19_GetPreviewedMonHeldItem(&param0->unk_00))) {
*param1 = 30;
*destMessageID = BoxText_RemoveMail;
return TRUE;
}
if (ov19_GetPreviewedMonValue(&param0->unk_00, MON_DATA_BALL_CAPSULE_ID, NULL)) {
*param1 = 29;
*destMessageID = BoxText_DetachBallCapsule;
return TRUE;
}
@ -603,11 +603,11 @@ static int ov19_021D1270(UnkStruct_ov19_021D5DF8 *param0)
ov19_021D0EB0(param0, ov19_021D1F5C);
param0->unk_1B0 = 0;
} else {
int v0;
int messageID;
if (ov19_GetPreviewMonSource(&param0->unk_00) != PREVIEW_MON_UNDER_CURSOR && ov19_IsPreviewedMonHoldingMail(param0, &v0)) {
if (ov19_GetPreviewMonSource(&param0->unk_00) != PREVIEW_MON_UNDER_CURSOR && ov19_IsPreviewedMonHoldingMailOrHasBallCapsule(param0, &messageID)) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, v0);
ov19_SetBoxMessage(&param0->unk_00, messageID);
ov19_021D6594(param0->unk_114, 24);
param0->unk_1B0 = 5;
} else {
@ -766,7 +766,7 @@ static int ov19_021D19B8(UnkStruct_ov19_021D5DF8 *param0)
param0->unk_1B0 = 1;
} else {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 18);
ov19_SetBoxMessage(&param0->unk_00, BoxText_PickOne);
ov19_021D6594(param0->unk_114, 24);
param0->unk_1B0 = 5;
}
@ -911,7 +911,7 @@ static void ov19_021D1DEC(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
if (ov19_GetPreviewMonSource(&(param0->unk_00)) != PREVIEW_MON_UNDER_CURSOR) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 17);
ov19_SetBoxMessage(&param0->unk_00, BoxText_HoldingMon);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 4;
break;
@ -925,7 +925,7 @@ static void ov19_021D1DEC(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
case 1:
if (ov19_021D6600(param0->unk_114, 34)) {
Sound_PlayEffect(SEQ_SE_DP_DECIDE);
ov19_021D5408(&param0->unk_00, 11);
ov19_SetBoxMessage(&param0->unk_00, BoxText_ConfirmExit);
ov19_021DF964(&(param0->unk_00), 1);
ov19_021D6594(param0->unk_114, 25);
(*param1) = 2;
@ -973,7 +973,7 @@ static void ov19_021D1F5C(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
case 0:
if (ov19_GetPreviewMonSource(&(param0->unk_00)) != PREVIEW_MON_UNDER_CURSOR) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 17);
ov19_SetBoxMessage(&param0->unk_00, BoxText_HoldingMon);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 2;
break;
@ -982,7 +982,7 @@ static void ov19_021D1F5C(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
break;
} else {
Sound_PlayEffect(SEQ_SE_DP_DECIDE);
ov19_021D5408(&param0->unk_00, 12);
ov19_SetBoxMessage(&param0->unk_00, BoxText_ConfirmContinue);
ov19_021DF964(&(param0->unk_00), 0);
ov19_021D6594(param0->unk_114, 25);
(*param1) = 5;
@ -1028,7 +1028,7 @@ static void ov19_021D20A4(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
switch (*param1) {
case 0:
StringTemplate_SetNickname(param0->unk_19C, 0, ov19_GetPreviewedBoxMon(&param0->unk_00));
ov19_021D5408(&param0->unk_00, 0);
ov19_SetBoxMessage(&param0->unk_00, BoxText_MonSelected);
ov19_021DF990(&param0->unk_00);
if (ov19_IsCursorFastMode(&param0->unk_00)) {
@ -1137,16 +1137,16 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
u32 item = ov19_GetCursorItem(&param0->unk_00);
if (item != ITEM_NONE) {
StringTemplate_SetItemName(param0->unk_19C, 0, item);
ov19_021D5408(&param0->unk_00, 25);
StringTemplate_SetItemName(param0->unk_19C, ITEM_NONE, item);
ov19_SetBoxMessage(&param0->unk_00, BoxText_ItemSelected);
} else {
item = ov19_GetPreviewedMonHeldItem(&param0->unk_00);
if (item != ITEM_NONE) {
StringTemplate_SetItemName(param0->unk_19C, 0, item);
ov19_021D5408(&param0->unk_00, 25);
ov19_SetBoxMessage(&param0->unk_00, BoxText_ItemSelected);
} else {
ov19_021D5408(&param0->unk_00, 28);
ov19_SetBoxMessage(&param0->unk_00, BoxText_GiveToMon);
}
}
@ -1155,7 +1155,7 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
if (ov19_IsPreviewedMonEgg(&param0->unk_00)) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 34);
ov19_SetBoxMessage(&param0->unk_00, BoxText_EggsCantHoldItems);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 7;
} else if (ov19_IsCursorFastMode(&param0->unk_00)) {
@ -1198,7 +1198,7 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
case UnkEnum_021DFB94_46:
if (ov19_GetCursorItem(&param0->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(&param0->unk_00, 45);
ov19_SetBoxMessage(&param0->unk_00, BoxText_MonCantHoldItem);
ov19_021D6594(param0->unk_114, 24);
*param1 = 7;
} else if (ov19_GetCursorItem(&param0->unk_00) != ITEM_NONE) {
@ -1215,7 +1215,7 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
case UnkEnum_021DFB94_47:
if (Item_IsMail(ov19_GetPreviewedMonHeldItem(&param0->unk_00))) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 24);
ov19_SetBoxMessage(&param0->unk_00, BoxText_CantTakeMail);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 7;
} else {
@ -1233,12 +1233,12 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
case UnkEnum_021DFB94_49:
if (Item_IsMail(ov19_GetPreviewedMonHeldItem(&param0->unk_00))) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 24);
ov19_SetBoxMessage(&param0->unk_00, BoxText_CantTakeMail);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 7;
} else if (param0->unk_00.cursorItem == 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(&param0->unk_00, 45);
StringTemplate_SetItemName(param0->unk_19C, ITEM_NONE, ITEM_GRISEOUS_ORB);
ov19_SetBoxMessage(&param0->unk_00, BoxText_MonCantHoldItem);
ov19_021D6594(param0->unk_114, 24);
*param1 = 7;
} else {
@ -1284,7 +1284,7 @@ static void ov19_021D2694(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
{
switch (*param1) {
case 0:
ov19_021D5408(&param0->unk_00, 7);
ov19_SetBoxMessage(&param0->unk_00, BoxText_WhatDo);
ov19_021DFB50(&param0->unk_00);
if (ov19_IsCursorFastMode(&param0->unk_00)) {
@ -1353,7 +1353,7 @@ static void ov19_021D27E8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
{
switch (*param1) {
case 0:
ov19_021D443C(param0, ov19_GetCurrentBox(&param0->unk_00), 8);
ov19_021D443C(param0, ov19_GetCurrentBox(&param0->unk_00), BoxText_JumpToBox);
(*param1) = 1;
break;
case 1:
@ -1388,7 +1388,7 @@ static void ov19_021D2890(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
param0->unk_1B8 = UnkEnum_021DFB94_04;
(*param1) = 1;
case 1:
ov19_021D5408(&param0->unk_00, 9);
ov19_SetBoxMessage(&param0->unk_00, BoxText_PickTheme);
ov19_021DFB94(&param0->unk_00, param0->unk_1B8);
ov19_021D6594(param0->unk_114, 25);
(*param1) = 2;
@ -1418,7 +1418,7 @@ static void ov19_021D2890(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
case UnkEnum_021DFB94_08:
case UnkEnum_021DFB94_09:
param0->unk_1B8 = ov19_021DFDDC(&param0->unk_00);
ov19_021D5408(&param0->unk_00, 10);
ov19_SetBoxMessage(&param0->unk_00, BoxText_Wallpaper);
ov19_021DFC04(&param0->unk_00, param0->unk_1B8);
ov19_021D6594(param0->unk_114, 25);
(*param1) = 4;
@ -1477,7 +1477,7 @@ static void ov19_021D2A5C(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
switch (*param1) {
case 0:
ov19_021DFC80(&param0->unk_00);
ov19_021D5408(&param0->unk_00, 1);
ov19_SetBoxMessage(&param0->unk_00, BoxText_MarkMon);
ov19_021D6594(param0->unk_114, 25);
(*param1) = 1;
break;
@ -1677,7 +1677,7 @@ static void ov19_021D2E1C(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
(*param1) = 1;
} else {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 6);
ov19_SetBoxMessage(&param0->unk_00, BoxText_LastMon);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 2;
}
@ -1746,17 +1746,17 @@ static void ov19_021D2F14(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
}
}
static BOOL ov19_021D2FC8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
static BOOL ov19_CheckLastAliveMonReason(UnkStruct_ov19_021D5DF8 *param0, u32 *destMessageID)
{
if (ov19_OnLastAliveMon(param0)) {
if (ov19_GetPreviewedMonValue(&param0->unk_00, MON_DATA_EGG_EXISTS, NULL)) {
*param1 = 6;
*destMessageID = BoxText_LastMon;
return TRUE;
}
if (ov19_GetCursorMonIsPartyMon(&param0->unk_00)) {
if (ov19_GetPreviewedMonValue(&param0->unk_00, MON_DATA_CURRENT_HP, NULL) == 0) {
*param1 = 6;
*destMessageID = BoxText_LastMon;
return TRUE;
}
}
@ -1769,11 +1769,11 @@ static void ov19_021D3010(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
{
switch (*param1) {
case 0: {
u32 v0;
u32 messageID;
if (ov19_021D2FC8(param0, &v0)) {
if (ov19_CheckLastAliveMonReason(param0, &messageID)) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, v0);
ov19_SetBoxMessage(&param0->unk_00, messageID);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 1;
} else {
@ -1821,7 +1821,7 @@ static void ov19_021D30D0(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
}
} else {
ov19_021D6594(param0->unk_114, 27);
ov19_021D5408(&param0->unk_00, 5);
ov19_SetBoxMessage(&param0->unk_00, BoxText_PartyFull);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 7;
}
@ -1886,21 +1886,21 @@ static void ov19_021D3294(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
case 0:
if (ov19_GetPreviewMonSource(&param0->unk_00) == PREVIEW_MON_UNDER_CURSOR && ov19_OnLastAliveMon(param0) == TRUE) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 6);
ov19_SetBoxMessage(&param0->unk_00, BoxText_LastMon);
ov19_021D6594(param0->unk_114, 27);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 3;
} else {
int v0;
int boxMessageID;
if (ov19_IsPreviewedMonHoldingMail(param0, &v0)) {
if (ov19_IsPreviewedMonHoldingMailOrHasBallCapsule(param0, &boxMessageID)) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, v0);
ov19_SetBoxMessage(&param0->unk_00, boxMessageID);
ov19_021D6594(param0->unk_114, 27);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 3;
} else {
ov19_021D443C(param0, param0->unk_00.unk_110, 19);
ov19_021D443C(param0, param0->unk_00.unk_110, BoxText_PickDepositBox);
ov19_021D6594(param0->unk_114, 26);
(*param1) = 1;
}
@ -1939,7 +1939,7 @@ static void ov19_021D3294(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
}
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 13);
ov19_SetBoxMessage(&param0->unk_00, BoxText_BoxFull);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 2;
break;
@ -2018,10 +2018,10 @@ static BOOL ov19_OnLastAliveMon(UnkStruct_ov19_021D5DF8 *param0)
return TRUE;
}
static BOOL ov19_021D357C(UnkStruct_ov19_021D5DF8 *param0, int *param1)
static BOOL ov19_CheckReleaseMonValid(UnkStruct_ov19_021D5DF8 *param0, int *destBoxMessageID)
{
if (ov19_GetPreviewedMonValue(&param0->unk_00, MON_DATA_EGG_EXISTS, NULL)) {
*param1 = 31;
*destBoxMessageID = BoxText_CantReleaseEgg;
return FALSE;
}
@ -2029,20 +2029,20 @@ static BOOL ov19_021D357C(UnkStruct_ov19_021D5DF8 *param0, int *param1)
u16 unused = ov19_GetPreviewedMonHeldItem(&param0->unk_00);
if (Item_IsMail(ov19_GetPreviewedMonHeldItem(&param0->unk_00))) {
*param1 = 30;
*destBoxMessageID = BoxText_RemoveMail;
return FALSE;
}
}
if (ov19_GetPreviewedMonValue(&param0->unk_00, MON_DATA_BALL_CAPSULE_ID, NULL)) {
*param1 = 29;
*destBoxMessageID = BoxText_DetachBallCapsule;
return FALSE;
}
if (ov19_GetPreviewMonSource(&param0->unk_00) == PREVIEW_MON_UNDER_CURSOR) {
if (ov19_GetCursorLocation(&param0->unk_00) == CURSOR_IN_PARTY) {
if (ov19_OnLastAliveMon(param0)) {
*param1 = 6;
*destBoxMessageID = BoxText_LastMon;
return FALSE;
}
}
@ -2055,16 +2055,16 @@ static void ov19_021D35F8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
{
switch (*param1) {
case 0: {
int v0;
int boxMessageID;
if (ov19_021D357C(param0, &v0)) {
ov19_021D5408(&param0->unk_00, 2);
if (ov19_CheckReleaseMonValid(param0, &boxMessageID)) {
ov19_SetBoxMessage(&param0->unk_00, BoxText_ReleaseMon);
ov19_021DF964(&(param0->unk_00), 1);
ov19_021D6594(param0->unk_114, 25);
(*param1) = 1;
} else {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, v0);
ov19_SetBoxMessage(&param0->unk_00, boxMessageID);
ov19_021D6594(param0->unk_114, 27);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 8;
@ -2120,10 +2120,10 @@ static void ov19_021D35F8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
ov19_RemoveMonUnderCursor(param0);
}
ov19_021D5408(&param0->unk_00, 3);
ov19_SetBoxMessage(&param0->unk_00, BoxText_MonReleased);
(*param1) = 5;
} else {
ov19_021D5408(&param0->unk_00, 32);
ov19_SetBoxMessage(&param0->unk_00, BoxText_MonReturned);
(*param1) = 4;
}
@ -2135,8 +2135,8 @@ static void ov19_021D35F8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
break;
}
if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
ov19_021D5408(&param0->unk_00, 4);
if (JOY_NEW(PAD_BUTTON_A | PAD_BUTTON_B)) {
ov19_SetBoxMessage(&param0->unk_00, BoxText_GoodbyeForever);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 6;
}
@ -2146,8 +2146,8 @@ static void ov19_021D35F8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
break;
}
if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
ov19_021D5408(&param0->unk_00, 33);
if (JOY_NEW(PAD_BUTTON_A | PAD_BUTTON_B)) {
ov19_SetBoxMessage(&param0->unk_00, BoxText_MonWasWorried);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 6;
}
@ -2157,7 +2157,7 @@ static void ov19_021D35F8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
break;
}
if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
if (JOY_NEW(PAD_BUTTON_A | PAD_BUTTON_B)) {
ov19_021D6594(param0->unk_114, 26);
(*param1) = 7;
}
@ -2181,7 +2181,7 @@ static void ov19_021D35F8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
break;
}
if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
if (JOY_NEW(PAD_BUTTON_A | PAD_BUTTON_B)) {
ov19_021D6594(param0->unk_114, 26);
(*param1) = 9;
}
@ -2485,12 +2485,12 @@ static void ov19_021D3D44(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
ov19_021D0EC0(param0);
} else if ((item == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.pcMonPreview.mon, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) {
StringTemplate_SetItemName(param0->unk_19C, 0, item);
ov19_021D5408(&param0->unk_00, 45);
ov19_SetBoxMessage(&param0->unk_00, BoxText_MonCantHoldItem);
ov19_021D6594(param0->unk_114, 24);
(*param1)++;
} else {
StringTemplate_SetItemName(param0->unk_19C, 0, item);
ov19_021D5408(&param0->unk_00, 16);
ov19_SetBoxMessage(&param0->unk_00, BoxText_HoldingItem);
ov19_021D6594(param0->unk_114, 24);
(*param1)++;
}
@ -2523,13 +2523,13 @@ static void ov19_021D3FB0(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
if (Item_IsMail(item)) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 24);
ov19_SetBoxMessage(&param0->unk_00, BoxText_CantTakeMail);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 4;
} else {
StringTemplate_SetItemName(param0->unk_19C, 0, item);
ov19_021DF964(&(param0->unk_00), 0);
ov19_021D5408(&param0->unk_00, 23);
ov19_SetBoxMessage(&param0->unk_00, BoxText_ConfirmTakeItem);
ov19_021D6594(param0->unk_114, 25);
(*param1) = 1;
}
@ -2561,14 +2561,14 @@ static void ov19_021D3FB0(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
ov19_021D6594(param0->unk_114, 6);
*param1 = 3;
} else {
ov19_021D5408(&param0->unk_00, 14);
ov19_SetBoxMessage(&param0->unk_00, BoxText_BagFull);
ov19_021D6594(param0->unk_114, 24);
*param1 = 4;
}
break;
case 3:
if (ov19_021D6628(param0->unk_114)) {
ov19_021D5408(&param0->unk_00, 15);
ov19_SetBoxMessage(&param0->unk_00, BoxText_TookItem);
ov19_021D6594(param0->unk_114, 24);
*param1 = 4;
}
@ -2600,12 +2600,12 @@ static void ov19_021D4184(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
if (Item_IsMail(item)) {
Sound_PlayEffect(SEQ_SE_DP_BOX03);
ov19_021D5408(&param0->unk_00, 24);
ov19_SetBoxMessage(&param0->unk_00, BoxText_CantTakeMail);
ov19_021D6594(param0->unk_114, 24);
(*param1) = 5;
} else {
StringTemplate_SetItemName(param0->unk_19C, 0, item);
ov19_021D5408(&param0->unk_00, 26);
ov19_SetBoxMessage(&param0->unk_00, BoxText_PutAwayItem);
ov19_021DF964(&(param0->unk_00), 0);
ov19_021D6594(param0->unk_114, 25);
(*param1) = 1;
@ -2643,7 +2643,7 @@ static void ov19_021D4184(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
ov19_021D6594(param0->unk_114, 23);
} else {
ov19_021D5408(&param0->unk_00, 14);
ov19_SetBoxMessage(&param0->unk_00, BoxText_BagFull);
ov19_021D6594(param0->unk_114, 24);
*param1 = 5;
}
@ -2657,7 +2657,7 @@ static void ov19_021D4184(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
break;
case 4:
if (ov19_021D6628(param0->unk_114)) {
ov19_021D5408(&param0->unk_00, 27);
ov19_SetBoxMessage(&param0->unk_00, BoxText_PlaceItemInBag);
ov19_021D6594(param0->unk_114, 24);
*param1 = 5;
}
@ -2711,11 +2711,11 @@ static void ov19_021D4390(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
}
}
static void ov19_021D443C(UnkStruct_ov19_021D5DF8 *param0, u32 param1, u32 param2)
static void ov19_021D443C(UnkStruct_ov19_021D5DF8 *param0, u32 boxID, u32 boxMessageID)
{
param0->unk_1BC.unk_00 = 0;
param0->unk_1BC.unk_05 = param1;
param0->unk_1BC.unk_06 = param2;
param0->unk_1BC.unk_05 = boxID;
param0->unk_1BC.boxMessageID = boxMessageID;
param0->unk_1BC.unk_04 = 0;
}
@ -2746,7 +2746,7 @@ static BOOL ov19_021D4468(UnkStruct_ov19_021D5DF8 *param0)
break;
case 1:
if (ov19_021D6600(param0->unk_114, 30)) {
ov19_021D5408(&param0->unk_00, v0->unk_06);
ov19_SetBoxMessage(&param0->unk_00, v0->boxMessageID);
ov19_021D6594(param0->unk_114, 24);
v0->unk_00 = 2;
}
@ -2762,7 +2762,7 @@ static BOOL ov19_021D4468(UnkStruct_ov19_021D5DF8 *param0)
break;
}
if (gSystem.pressedKeys & (PAD_KEY_LEFT | PAD_BUTTON_L)) {
if (JOY_NEW(PAD_KEY_LEFT | PAD_BUTTON_L)) {
v0->unk_05--;
if (v0->unk_05 < 0) {
@ -2774,8 +2774,8 @@ static BOOL ov19_021D4468(UnkStruct_ov19_021D5DF8 *param0)
break;
}
if (gSystem.pressedKeys & (PAD_KEY_RIGHT | PAD_BUTTON_R)) {
if (++(v0->unk_05) >= 18) {
if (JOY_NEW(PAD_KEY_RIGHT | PAD_BUTTON_R)) {
if (++(v0->unk_05) >= MAX_PC_BOXES) {
v0->unk_05 = 0;
}
@ -2784,20 +2784,20 @@ static BOOL ov19_021D4468(UnkStruct_ov19_021D5DF8 *param0)
break;
}
if (gSystem.pressedKeys & PAD_BUTTON_A) {
if (JOY_NEW(PAD_BUTTON_A)) {
Sound_PlayEffect(SEQ_SE_DP_DECIDE);
return 1;
return TRUE;
}
if (gSystem.pressedKeys & PAD_BUTTON_B) {
if (JOY_NEW(PAD_BUTTON_B)) {
Sound_PlayEffect(SEQ_SE_DP_DECIDE);
v0->unk_05 = -1;
return 1;
return TRUE;
}
break;
}
return 0;
return FALSE;
}
static void ov19_021D45A8(UnkStruct_ov19_021D5DF8 *param0, u32 *param1)
@ -3666,9 +3666,9 @@ static void ov19_BoxTouchScreenButtonHandler(u32 buttonIndex, enum TouchScreenBu
}
}
static void ov19_021D5408(UnkStruct_ov19_021D4DF0 *param0, u32 param1)
static void ov19_SetBoxMessage(UnkStruct_ov19_021D4DF0 *param0, u32 boxMessageID)
{
param0->unk_10C = param1;
param0->boxMessageID = boxMessageID;
}
static void ov19_SetCursorBoxLocation(UnkStruct_ov19_021D4DF0 *param0, u32 col, u32 row)
@ -3953,7 +3953,7 @@ static void ov19_LoadBoxMonIntoPreview(UnkStruct_ov19_021D4DF0 *param0, BoxPokem
if (preview->heldItem != ITEM_NONE) {
Item_LoadName(preview->heldItemName, preview->heldItem, HEAP_ID_9);
} else {
MessageLoader_GetStrbuf(param2->boxMessagesLoader, BoxMessages_Text_NoItem, preview->heldItemName);
MessageLoader_GetStrbuf(param2->boxMessagesLoader, BoxText_NoItem, preview->heldItemName);
}
{
@ -4054,7 +4054,7 @@ static void ov19_GiveItemToSelectedMon(UnkStruct_ov19_021D4DF0 *param0, u16 item
if (preview->heldItem != 0) {
Item_LoadName(preview->heldItemName, preview->heldItem, HEAP_ID_9);
} else {
MessageLoader_GetStrbuf(param2->boxMessagesLoader, BoxMessages_Text_NoItem, preview->heldItemName);
MessageLoader_GetStrbuf(param2->boxMessagesLoader, BoxText_NoItem, preview->heldItemName);
}
if (ov19_GetCursorLocation(param0) == CURSOR_IN_BOX && ov19_GetPreviewMonSource(param0) == PREVIEW_MON_UNDER_CURSOR) {
@ -4122,7 +4122,7 @@ static void ov19_PickUpHeldItem(UnkStruct_ov19_021D4DF0 *param0, UnkStruct_ov19_
param0->cursorItem = preview->heldItem;
MessageLoader_GetStrbuf(param1->boxMessagesLoader, BoxMessages_Text_NoItem, preview->heldItemName);
MessageLoader_GetStrbuf(param1->boxMessagesLoader, BoxText_NoItem, preview->heldItemName);
ov19_GiveItemToSelectedMon(param0, itemNone, param1);
}
@ -4292,9 +4292,9 @@ const PCBoxes *ov19_GetPCBoxes(const UnkStruct_ov19_021D4DF0 *param0)
return param0->pcBoxes;
}
u32 ov19_021D5E94(const UnkStruct_ov19_021D4DF0 *param0)
u32 ov19_GetBoxMessageID(const UnkStruct_ov19_021D4DF0 *param0)
{
return param0->unk_10C;
return param0->boxMessageID;
}
BoxPokemon *ov19_GetPreviewedBoxMon(const UnkStruct_ov19_021D4DF0 *param0)
@ -4422,7 +4422,7 @@ u32 ov19_021D5FA4(const UnkStruct_ov19_021D4DF0 *param0)
return param0->unk_A4.unk_01;
}
const PCCompareMon *GetCompareMonFrom(const UnkStruct_ov19_021D4DF0 *param0, int compareSlot)
const PCCompareMon *ov19_GetCompareMonFrom(const UnkStruct_ov19_021D4DF0 *param0, int compareSlot)
{
return &param0->unk_A4.compareMons[compareSlot];
}

View File

@ -982,7 +982,7 @@ static void ov19_021D6E48(SysTask *param0, void *param1)
v0 = v1->unk_0C;
v2 = v0->unk_1C4;
ov19_021DB448(&(v0->unk_6658), ov19_021D5E94(v2));
ov19_021DB448(&(v0->unk_6658), ov19_GetBoxMessageID(v2));
ov19_021D6640(v1);
}
@ -996,7 +996,7 @@ static void ov19_021D6E70(SysTask *param0, void *param1)
v0 = v1->unk_0C;
v2 = v0->unk_1C4;
ov19_021DB448(&(v0->unk_6658), ov19_021D5E94(v2));
ov19_021DB448(&(v0->unk_6658), ov19_GetBoxMessageID(v2));
ov19_021DB57C(&(v0->unk_6658), &(v2->unk_74));
ov19_021D6640(v1);
}

View File

@ -103,12 +103,12 @@ void ov19_021DB3C4(UnkStruct_ov19_021DB6F0 *param0)
LoadMessageBoxGraphics(param0->unk_00, 1, 521, 8, param0->unk_20, HEAP_ID_10);
}
void ov19_021DB448(UnkStruct_ov19_021DB6F0 *param0, u32 param1)
void ov19_021DB448(UnkStruct_ov19_021DB6F0 *param0, u32 boxMessageID)
{
Window_PutToTilemap(&param0->unk_18[0]);
ov19_021DB4B4(param0->unk_00, param0->unk_18[0].bgLayer, param0->unk_18[0].tilemapLeft, param0->unk_18[0].tilemapTop, param0->unk_18[0].width, param0->unk_18[0].height);
Window_FillTilemap(&param0->unk_18[0], 15);
MessageLoader_GetStrbuf(param0->unk_10, param1, param0->unk_30);
MessageLoader_GetStrbuf(param0->unk_10, boxMessageID, param0->unk_30);
StringTemplate_Format(param0->unk_2C, param0->unk_34, param0->unk_30);
Text_AddPrinterWithParams(&(param0->unk_18[0]), FONT_MESSAGE, param0->unk_34, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
Window_LoadTiles(&(param0->unk_18[0]));

View File

@ -29,6 +29,8 @@
#include "sys_task_manager.h"
#include "text.h"
#include "res/text/bank/box_messages.h"
struct UnkStruct_ov19_021DEC04_t {
BOOL unk_00;
UnkStruct_ov19_021D61B0 *unk_04;
@ -47,7 +49,7 @@ struct UnkStruct_ov19_021DEC04_t {
NNSG2dAnimBankData *unk_68;
MessageLoader *unk_6C;
MessageLoader *unk_70;
Strbuf *unk_74;
Strbuf *boxDisplayText;
Window unk_78[7];
u8 unk_E8[640];
NNSG2dScreenData *unk_368;
@ -101,7 +103,7 @@ BOOL ov19_021DEC04(UnkStruct_ov19_021DEC04 **param0, UnkStruct_ov19_021D61B0 *pa
v0->unk_374 = Graphics_GetScrnDataFromOpenNARC(param6, 8, 1, &(v0->unk_36C), HEAP_ID_10);
v0->unk_6C = param5;
v0->unk_70 = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVE_NAMES, HEAP_ID_10);
v0->unk_74 = Strbuf_Init(32, HEAP_ID_10);
v0->boxDisplayText = Strbuf_Init(32, HEAP_ID_10);
v0->unk_380 = NULL;
*param0 = v0;
return 1;
@ -119,7 +121,7 @@ void ov19_021DECAC(UnkStruct_ov19_021DEC04 *param0)
MessageLoader_Free(param0->unk_70);
ov19_021DF7D0(param0);
ov19_021DF03C(param0);
Strbuf_Free(param0->unk_74);
Strbuf_Free(param0->boxDisplayText);
Heap_FreeToHeap(param0);
}
}
@ -386,7 +388,7 @@ static void ov19_021DF178(UnkStruct_ov19_021DEC04 *param0, int param1)
const PCCompareMon *compareMon;
BOOL isMonUnderCursor, v3, v4;
compareMon = GetCompareMonFrom(param0->unk_08, param1);
compareMon = ov19_GetCompareMonFrom(param0->unk_08, param1);
isMonUnderCursor = ov19_IsMonUnderCursor(param0->unk_08);
v3 = (ov19_021D5F9C(param0->unk_08) == param1);
v4 = ov19_021D5FB8(param0->unk_08, param1);
@ -459,15 +461,15 @@ static inline u32 inline_ov19_021DF3AC(Window *param0, u32 param1, const Strbuf
static void ov19_021DF2E0(UnkStruct_ov19_021DEC04 *param0)
{
static const u16 v0[] = {
35,
36,
37,
38,
39,
40,
41,
42,
static const u16 compareMessages[] = {
BoxText_Nature,
BoxText_Level,
BoxText_HP,
BoxText_Attack,
BoxText_Defense,
BoxText_SpecialAttack,
BoxText_SpecialDefense,
BoxText_Speed,
};
Window *v1 = &param0->unk_78[2];
int v2;
@ -476,14 +478,14 @@ static void ov19_021DF2E0(UnkStruct_ov19_021DEC04 *param0)
switch (ov19_021D5FA4(param0->unk_08)) {
case 0:
for (v2 = 0; v2 < NELEMS(v0); v2++) {
MessageLoader_GetStrbuf(param0->unk_6C, v0[v2], param0->unk_74);
Text_AddPrinterWithParamsAndColor(v1, FONT_SYSTEM, param0->unk_74, inline_ov19_021DF3AC(v1, 0, param0->unk_74), 0 + 16 * v2, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
for (v2 = 0; v2 < NELEMS(compareMessages); v2++) {
MessageLoader_GetStrbuf(param0->unk_6C, compareMessages[v2], param0->boxDisplayText);
Text_AddPrinterWithParamsAndColor(v1, FONT_SYSTEM, param0->boxDisplayText, inline_ov19_021DF3AC(v1, 0, param0->boxDisplayText), 0 + 16 * v2, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
}
break;
case 2:
MessageLoader_GetStrbuf(param0->unk_6C, 43, param0->unk_74);
Text_AddPrinterWithParamsAndColor(v1, FONT_SYSTEM, param0->unk_74, inline_ov19_021DF3AC(v1, 0, param0->unk_74), 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
MessageLoader_GetStrbuf(param0->unk_6C, BoxText_Move, param0->boxDisplayText);
Text_AddPrinterWithParamsAndColor(v1, FONT_SYSTEM, param0->boxDisplayText, inline_ov19_021DF3AC(v1, 0, param0->boxDisplayText), 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
break;
}
@ -498,73 +500,73 @@ static void ov19_021DF394(UnkStruct_ov19_021DEC04 *param0)
Window_LoadTiles(v0);
}
static void ov19_021DF3AC(UnkStruct_ov19_021DEC04 *param0, int param1)
static void ov19_021DF3AC(UnkStruct_ov19_021DEC04 *param0, int compareMonSlot)
{
Window *v0;
Window *window;
const PCCompareMon *compareMon;
BOOL isMonUnderCursor, v3, v4;
BOOL isMonUnderCursor, compareSlot, v4;
v0 = &(param0->unk_78[3 + param1]);
compareMon = GetCompareMonFrom(param0->unk_08, param1);
window = &(param0->unk_78[3 + compareMonSlot]);
compareMon = ov19_GetCompareMonFrom(param0->unk_08, compareMonSlot);
isMonUnderCursor = ov19_IsMonUnderCursor(param0->unk_08);
v3 = ov19_021D5F9C(param0->unk_08) == param1;
v4 = ov19_021D5FB8(param0->unk_08, param1);
compareSlot = ov19_021D5F9C(param0->unk_08) == compareMonSlot;
v4 = ov19_021D5FB8(param0->unk_08, compareMonSlot);
Window_FillTilemap(v0, 0);
Window_FillTilemap(window, 0);
if (((isMonUnderCursor == 1) && (v3 == 1)) || ((v3 == 0) && (v4 == 1))) {
if (((isMonUnderCursor == TRUE) && (compareSlot == 1)) || ((compareSlot == 0) && (v4 == 1))) {
int v5;
if (compareMon->isEgg == FALSE) {
const u16 *v6 = &compareMon->level;
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, compareMon->nature, inline_ov19_021DF3AC(v0, 0, compareMon->nature), 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, compareMon->nature, inline_ov19_021DF3AC(window, 0, compareMon->nature), 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
for (v5 = 0; v5 < 7; v5++) {
Strbuf_FormatInt(param0->unk_74, v6[v5], 3, 0, 1);
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->unk_74, inline_ov19_021DF3AC(v0, 0, param0->unk_74), (1 + v5) * 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
Strbuf_FormatInt(param0->boxDisplayText, v6[v5], 3, 0, 1);
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, param0->boxDisplayText, inline_ov19_021DF3AC(window, 0, param0->boxDisplayText), (1 + v5) * 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
}
} else {
MessageLoader_GetStrbuf(param0->unk_6C, 44, param0->unk_74);
MessageLoader_GetStrbuf(param0->unk_6C, 44, param0->boxDisplayText);
for (v5 = 0; v5 < 8; v5++) {
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->unk_74, inline_ov19_021DF3AC(v0, 0, param0->unk_74), v5 * 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, param0->boxDisplayText, inline_ov19_021DF3AC(window, 0, param0->boxDisplayText), v5 * 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
}
}
}
Window_LoadTiles(v0);
Window_LoadTiles(window);
}
static void ov19_021DF4D0(UnkStruct_ov19_021DEC04 *param0, int param1)
static void ov19_021DF4D0(UnkStruct_ov19_021DEC04 *param0, int compareMonSlot)
{
Window *v0;
const PCCompareMon *compareMon;
BOOL isMonUnderCursor, v3, v4;
v0 = &(param0->unk_78[5 + param1]);
compareMon = GetCompareMonFrom(param0->unk_08, param1);
v0 = &(param0->unk_78[5 + compareMonSlot]);
compareMon = ov19_GetCompareMonFrom(param0->unk_08, compareMonSlot);
isMonUnderCursor = ov19_IsMonUnderCursor(param0->unk_08);
v3 = (ov19_021D5F9C(param0->unk_08) == param1);
v4 = ov19_021D5FB8(param0->unk_08, param1);
v3 = (ov19_021D5F9C(param0->unk_08) == compareMonSlot);
v4 = ov19_021D5FB8(param0->unk_08, compareMonSlot);
Window_FillTilemap(v0, 0);
if (((isMonUnderCursor == 1) && (v3 == 1)) || ((v3 == 0) && (v4 == 1))) {
if (((isMonUnderCursor == TRUE) && (v3 == 1)) || ((v3 == 0) && (v4 == 1))) {
int i;
if (compareMon->isEgg == FALSE) {
for (i = 0; i < LEARNED_MOVES_MAX; i++) {
if (compareMon->moves[i]) {
MessageLoader_GetStrbuf(param0->unk_70, compareMon->moves[i], param0->unk_74);
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->unk_74, inline_ov19_021DF3AC(v0, 0, param0->unk_74), 4 + 24 * i, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
MessageLoader_GetStrbuf(param0->unk_70, compareMon->moves[i], param0->boxDisplayText);
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->boxDisplayText, inline_ov19_021DF3AC(v0, 0, param0->boxDisplayText), 4 + 24 * i, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
}
}
} else {
MessageLoader_GetStrbuf(param0->unk_6C, 44, param0->unk_74);
MessageLoader_GetStrbuf(param0->unk_6C, 44, param0->boxDisplayText);
for (i = 0; i < 4; i++) {
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->unk_74, inline_ov19_021DF3AC(v0, 0, param0->unk_74), 4 + 24 * i, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->boxDisplayText, inline_ov19_021DF3AC(v0, 0, param0->boxDisplayText), 4 + 24 * i, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
}
}
}
@ -665,20 +667,20 @@ static void ov19_021DF7D0(UnkStruct_ov19_021DEC04 *param0)
static void ov19_021DF834(UnkStruct_ov19_021DEC04 *param0)
{
int v0 = ov19_021D5F9C(param0->unk_08);
const PCCompareMon *compareMon = GetCompareMonFrom(param0->unk_08, v0);
Sprite *v2 = param0->unk_20[v0];
BoxPokemon *v3 = compareMon->mon;
int compareMonSlot = ov19_021D5F9C(param0->unk_08);
const PCCompareMon *compareMon = ov19_GetCompareMonFrom(param0->unk_08, compareMonSlot);
Sprite *v2 = param0->unk_20[compareMonSlot];
BoxPokemon *boxMon = compareMon->mon;
NNSG2dCharacterData *v4;
if (ov19_IsMonUnderCursor(param0->unk_08)) {
u32 v5 = 4 + PokeIconPaletteIndex(compareMon->species, compareMon->form, compareMon->isEgg);
ov19_021DA744(param0->unk_14, param0->unk_E8, BoxPokemon_IconSpriteIndex(v3), sizeof(param0->unk_E8));
ov19_021DA744(param0->unk_14, param0->unk_E8, BoxPokemon_IconSpriteIndex(boxMon), sizeof(param0->unk_E8));
NNS_G2dGetUnpackedCharacterData(param0->unk_E8, &v4);
DC_FlushRange(v4->pRawData, (4 * 4) * 0x20);
GXS_LoadOBJ(v4->pRawData, param0->unk_18[v0], (4 * 4) * 0x20);
GXS_LoadOBJ(v4->pRawData, param0->unk_18[compareMonSlot], (4 * 4) * 0x20);
Sprite_SetExplicitPalette(v2, v5);
Sprite_SetDrawFlag(v2, 1);
@ -687,21 +689,21 @@ static void ov19_021DF834(UnkStruct_ov19_021DEC04 *param0)
}
}
static void ov19_021DF8C8(UnkStruct_ov19_021DEC04 *param0, int param1)
static void ov19_021DF8C8(UnkStruct_ov19_021DEC04 *param0, int compareMonSlot)
{
Window *v0;
Window *window;
param1 = ov19_021D5F9C(param0->unk_08);
v0 = &(param0->unk_78[0 + param1]);
compareMonSlot = ov19_021D5F9C(param0->unk_08);
window = &(param0->unk_78[0 + compareMonSlot]);
Window_FillTilemap(v0, 0);
Window_FillTilemap(window, 0);
if (ov19_IsMonUnderCursor(param0->unk_08)) {
const PCCompareMon *compareMon = GetCompareMonFrom(param0->unk_08, param1);
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, compareMon->monName, inline_ov19_021DF3AC(v0, 0, compareMon->monName), 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
const PCCompareMon *compareMon = ov19_GetCompareMonFrom(param0->unk_08, compareMonSlot);
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, compareMon->monName, inline_ov19_021DF3AC(window, 0, compareMon->monName), 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
}
Window_LoadTiles(v0);
Window_LoadTiles(window);
}
static void ov19_021DF930(SysTask *param0, void *param1)