summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-09-03 22:55:55 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2018-09-03 22:55:55 +0200
commit24b9cd721ff1f5c7f2fdd674299d0d2d9f396be2 (patch)
treeac407e0409c850f86770be93e4e5400fc50fa261 /src
parent0238b1c8ec6a7793917dcc9f358b964a3090715f (diff)
More Battle Factory
Diffstat (limited to 'src')
-rw-r--r--src/battle_factory.c569
-rw-r--r--src/berry_fix_program.c10
-rw-r--r--src/hall_of_fame.c26
-rw-r--r--src/link.c10
-rw-r--r--src/mail.c4
-rw-r--r--src/main_menu.c44
-rw-r--r--src/menu.c6
-rw-r--r--src/naming_screen.c6
-rw-r--r--src/pokemon_storage_system.c4
-rw-r--r--src/starter_choose.c4
10 files changed, 593 insertions, 90 deletions
diff --git a/src/battle_factory.c b/src/battle_factory.c
index e1c955122..9cb773ea3 100644
--- a/src/battle_factory.c
+++ b/src/battle_factory.c
@@ -11,10 +11,15 @@
#include "malloc.h"
#include "bg.h"
#include "gpu_regs.h"
+#include "string_util.h"
+#include "international_string_util.h"
#include "window.h"
+#include "data2.h"
#include "decompress.h"
#include "pokemon_summary_screen.h"
#include "sound.h"
+#include "pokedex.h"
+#include "trainer_pokemon_sprites.h"
#include "constants/battle_frontier.h"
#include "constants/songs.h"
@@ -30,12 +35,18 @@
struct FactorySelecteableMon
{
- u16 unk0;
+ u16 monSetId;
u16 spriteId;
- u8 selectetedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon
+ u8 selectedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon
struct Pokemon monData;
};
+struct UnkFactoryStruct
+{
+ u8 field0;
+ u8 field1;
+};
+
struct FactorySelectMonsStruct
{
u8 menuCursorPos;
@@ -50,7 +61,7 @@ struct FactorySelectMonsStruct
u8 unk9;
struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT];
u32 unk294;
- u32 unk298;
+ struct UnkFactoryStruct unk298;
u32 unk29C;
u8 unk2A0;
u8 unk2A1;
@@ -63,31 +74,49 @@ struct FactorySelectMonsStruct
};
extern struct FactorySelectMonsStruct *gUnknown_0300127C;
+extern u8 (*gUnknown_030062E8)(void);
extern u8 gUnknown_0203CF20;
+extern const u16 gBattleFrontierHeldItems[];
+extern const struct FacilityMon gBattleFrontierMons[];
+extern const struct FacilityMon gSlateportBattleTentMons[];
+extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
+
+extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot);
+
// This file's functions.
void sub_819A514(void);
void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V);
void sub_819A9AC(void);
void sub_819AA18(void);
void sub_819BE34(void);
-void sub_819BA64(void);
-void sub_819BCF8(void);
+void PrintSelectMonString(void);
+void PrintMonSpecies(void);
+void PrintMonCategory(void);
void sub_819B9E8(void);
-void sub_819B9B4(void);
-void sub_819B764(void);
+void PrintRentalPkmnString(void);
+void CopySelectedMonsToPlayerParty(void);
void sub_819C4B4(void);
void sub_819B8D4(void);
void sub_819C568(void);
-void sub_819BC9C(void);
+void sub_819B844(void);
+void PrintSelectableMenuOptions(void);
+void PrintSelectableYesNo(void);
void sub_819C69C(u8 taskId);
-void sub_819B378(u8 taskId);
-void sub_819B124(u8 taskId);
-void sub_819B484(u8 arg0);
-void sub_819B63C(u8 arg0);
+void Task_HandleSelectionScreenChooseMons(u8 taskId);
+void Task_HandleSelectionScreenMenu(u8 taskId);
+void CreateFrontierFactorySelectableMons(u8 firstMonId);
+void CreateTentFactorySelectableMons(u8 firstMonId);
void SetBallSpritePaletteNum(u8 id);
-void sub_819F444(u32 spriteId, u8 *arg1);
-void sub_819B958(u8 arg0);
+void sub_819F444(struct UnkFactoryStruct arg0, u8 *arg1);
+void sub_819B958(u8 windowId);
+void sub_819F2B4(u8 *arg0, u8 *arg1, u8 arg2);
+void sub_819F3F8(struct UnkFactoryStruct arg0, u8 *arg1, u8 arg2);
+u8 sub_819BC04(void);
+u8 sub_819BC9C(void);
+u8 sub_81A6F70(u8 battleMode, u8 lvlMode);
+u8 sub_81A6CA8(u8 arg0, u8 arg1);
+bool32 sub_819C634(u16 monSetId);
// Ewram variables
EWRAM_DATA u8 *gUnknown_0203CE2C = NULL;
@@ -113,6 +142,20 @@ extern const u8 gFrontierFactorySelectMenu_Gfx[];
extern const u8 gFrontierFactorySelectMenu_Tilemap[];
extern const u16 gFrontierFactorySelectMenu_Pal[];
+// text
+extern const u8 gText_RentalPkmn2[];
+extern const u8 gText_SelectFirstPkmn[];
+extern const u8 gText_SelectSecondPkmn[];
+extern const u8 gText_SelectThirdPkmn[];
+extern const u8 gText_TheseThreePkmnOkay[];
+extern const u8 gText_CantSelectSamePkmn[];
+extern const u8 gText_Summary[];
+extern const u8 gText_Deselect[];
+extern const u8 gText_Rent[];
+extern const u8 gText_Others2[];
+extern const u8 gText_Yes2[];
+extern const u8 gText_No2[];
+
// code
void sub_819A44C(struct Sprite *sprite)
{
@@ -267,22 +310,22 @@ void sub_819A514(void)
gMain.state++;
break;
case 6:
- sub_819BA64();
+ PrintSelectMonString();
PutWindowTilemap(2);
gMain.state++;
break;
case 7:
- sub_819BCF8();
+ PrintMonCategory();
PutWindowTilemap(5);
gMain.state++;
break;
case 8:
- sub_819B9E8();
+ PrintMonSpecies();
PutWindowTilemap(1);
gMain.state++;
break;
case 9:
- sub_819B9B4();
+ PrintRentalPkmnString();
PutWindowTilemap(0);
gMain.state++;
break;
@@ -291,14 +334,14 @@ void sub_819A514(void)
if (!gUnknown_0300127C->fromSummaryScreen)
{
gTasks[gUnknown_0300127C->unk2A1].data[0] = 0;
- taskId = CreateTask(sub_819B378, 0);
+ taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0);
gTasks[taskId].data[0] = 0;
}
else
{
gTasks[gUnknown_0300127C->unk2A1].data[0] = 1;
gUnknown_0300127C->unk2A2 = 0;
- taskId = CreateTask(sub_819B124, 0);
+ taskId = CreateTask(Task_HandleSelectionScreenMenu, 0);
gTasks[taskId].data[0] = 13;
}
SetMainCallback2(sub_819A4C8);
@@ -318,12 +361,12 @@ void sub_819A9AC(void)
gUnknown_0300127C->selectingMonsState = 1;
gUnknown_0300127C->fromSummaryScreen = FALSE;
for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
- gUnknown_0300127C->mons[i].selectetedId = 0;
+ gUnknown_0300127C->mons[i].selectedId = 0;
if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT)
- sub_819B484(0);
+ CreateFrontierFactorySelectableMons(0);
else
- sub_819B63C(0);
+ CreateTentFactorySelectableMons(0);
}
extern const struct SpriteTemplate gUnknown_086105F0;
@@ -436,28 +479,28 @@ void HandleMonSelectionChange(void)
{
u8 i, paletteNum;
u8 cursorPos = gUnknown_0300127C->cursorPos;
- if (gUnknown_0300127C->mons[cursorPos].selectetedId) // Deselect a mon.
+ if (gUnknown_0300127C->mons[cursorPos].selectedId) // Deselect a mon.
{
paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY);
- if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectetedId == 1)
+ if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectedId == 1)
{
for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
{
- if (gUnknown_0300127C->mons[i].selectetedId == 2)
+ if (gUnknown_0300127C->mons[i].selectedId == 2)
break;
}
if (i == SELECTABLE_MONS_COUNT)
return;
else
- gUnknown_0300127C->mons[i].selectetedId = 1;
+ gUnknown_0300127C->mons[i].selectedId = 1;
}
- gUnknown_0300127C->mons[cursorPos].selectetedId = 0;
+ gUnknown_0300127C->mons[cursorPos].selectedId = 0;
gUnknown_0300127C->selectingMonsState--;
}
else // Select a mon.
{
paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED);
- gUnknown_0300127C->mons[cursorPos].selectetedId = gUnknown_0300127C->selectingMonsState;
+ gUnknown_0300127C->mons[cursorPos].selectedId = gUnknown_0300127C->selectingMonsState;
gUnknown_0300127C->selectingMonsState++;
}
@@ -468,7 +511,7 @@ void SetBallSpritePaletteNum(u8 id)
{
u8 palNum;
- if (gUnknown_0300127C->mons[id].selectetedId)
+ if (gUnknown_0300127C->mons[id].selectedId)
palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED);
else
palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY);
@@ -528,7 +571,7 @@ void Task_CloseSelectionScreen(u8 taskId)
case 1:
if (!UpdatePaletteFade())
{
- sub_819B764();
+ CopySelectedMonsToPlayerParty();
DestroyTask(gUnknown_0300127C->unk2A1);
sub_819AB40();
FREE_AND_SET_NULL(gUnknown_0203CE2C);
@@ -574,7 +617,7 @@ void Task_HandleSelectionScreenYesNo(u8 taskId)
sub_819BC9C();
gUnknown_0300127C->unk2A2 = 1;
gTasks[taskId].data[0] = 1;
- gTasks[taskId].func = sub_819B378;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
}
}
else if (gMain.newKeys & B_BUTTON)
@@ -584,7 +627,7 @@ void Task_HandleSelectionScreenYesNo(u8 taskId)
sub_819BC9C();
gUnknown_0300127C->unk2A2 = 1;
gTasks[taskId].data[0] = 1;
- gTasks[taskId].func = sub_819B378;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
}
else if (gMain.newAndRepeatedKeys & DPAD_UP)
{
@@ -600,3 +643,463 @@ void Task_HandleSelectionScreenYesNo(u8 taskId)
}
}
}
+
+void Task_HandleSelectionScreenMenu(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 2:
+ if (!gUnknown_0300127C->fromSummaryScreen)
+ sub_819F2B4(&gUnknown_0300127C->unk298.field1, &gUnknown_0300127C->unk2A0, 0);
+ gTasks[taskId].data[0] = 9;
+ break;
+ case 9:
+ if (gUnknown_0300127C->unk2A0 != 1)
+ {
+ sub_819B844();
+ gUnknown_0300127C->fromSummaryScreen = FALSE;
+ gTasks[taskId].data[0] = 3;
+ }
+ break;
+ case 3:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ u8 retVal;
+ PlaySE(SE_SELECT);
+ retVal = sub_819BC04();
+ if (retVal == 1)
+ {
+ gUnknown_0300127C->unk2A2 = 1;
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
+ }
+ else if (retVal == 2)
+ {
+ gTasks[taskId].data[0] = 10;
+ gTasks[taskId].func = Task_HandleSelectionScreenYesNo;
+ }
+ else if (retVal == 3)
+ {
+ gTasks[taskId].data[0] = 11;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 6;
+ gTasks[taskId].func = Task_FromSelectScreenToSummaryScreen;
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0);
+ sub_819B958(3);
+ gUnknown_0300127C->unk2A2 = 1;
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ UpdateMenuCursorPosition(-1);
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ UpdateMenuCursorPosition(1);
+ }
+ break;
+ case 12:
+ if (!gPaletteFade.active)
+ {
+ if (gUnknown_0300127C->fromSummaryScreen == TRUE)
+ {
+ gPlttBufferFaded[228] = gUnknown_0300127C->unk2A4;
+ gPlttBufferUnfaded[228] = gPlttBufferUnfaded[244];
+ }
+ gUnknown_0300127C->fromSummaryScreen = FALSE;
+ gTasks[taskId].data[0] = 3;
+ }
+ break;
+ case 13:
+ sub_819B844();
+ gTasks[taskId].data[0] = 12;
+ break;
+ }
+}
+
+void Task_HandleSelectionScreenChooseMons(u8 taskId)
+{
+ if (gUnknown_0300127C->unk2A0 != 1)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].data[0] = 1;
+ gUnknown_0300127C->unk2A2 = 1;
+ }
+ break;
+ case 1:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_0300127C->unk2A2 = 0;
+ gTasks[taskId].data[0] = 2;
+ gTasks[taskId].func = Task_HandleSelectionScreenMenu;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ PlaySE(SE_SELECT);
+ UpdateBallCursorPosition(-1);
+ PrintMonCategory();
+ PrintMonSpecies();
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ PlaySE(SE_SELECT);
+ UpdateBallCursorPosition(1);
+ PrintMonCategory();
+ PrintMonSpecies();
+ }
+ break;
+ case 11:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0);
+ PrintSelectMonString();
+ gUnknown_0300127C->unk2A2 = 1;
+ gTasks[taskId].data[0] = 1;
+ }
+ break;
+ }
+ }
+}
+
+void CreateFrontierFactorySelectableMons(u8 firstMonId)
+{
+ u8 i, j = 0;
+ u8 ivs = 0;
+ u8 level = 0;
+ u8 happiness = 0;
+ u32 otId = 0;
+ u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u8 var_2C = gSaveBlock2Ptr->frontier.field_DE2[battleMode][lvlMode] / 7;
+ u8 var_28 = 0;
+
+ gFacilityTrainerMons = gBattleFrontierMons;
+ if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
+ level = 100;
+ else
+ level = 50;
+
+ var_28 = sub_81A6F70(battleMode, lvlMode);
+ otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
+
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ {
+ u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId;
+ gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId;
+ if (i < var_28)
+ ivs = sub_81A6CA8(var_2C + 1, 0);
+ else
+ ivs = sub_81A6CA8(var_2C, 0);
+ CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData,
+ gFacilityTrainerMons[monSetId].species,
+ level,
+ gFacilityTrainerMons[monSetId].nature,
+ ivs,
+ gFacilityTrainerMons[monSetId].evSpread,
+ otId);
+ happiness = 0;
+ for (j = 0; j < 4; j++)
+ SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j);
+ SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness);
+ SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
+ }
+}
+
+void CreateTentFactorySelectableMons(u8 firstMonId)
+{
+ u8 i, j;
+ u8 ivs = 0;
+ u8 level = 30;
+ u8 happiness = 0;
+ u32 otId = 0;
+
+ gFacilityTrainerMons = gSlateportBattleTentMons;
+ otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
+
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ {
+ u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId;
+ gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId;
+ CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData,
+ gFacilityTrainerMons[monSetId].species,
+ level,
+ gFacilityTrainerMons[monSetId].nature,
+ ivs,
+ gFacilityTrainerMons[monSetId].evSpread,
+ otId);
+ happiness = 0;
+ for (j = 0; j < 4; j++)
+ SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j);
+ SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness);
+ SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
+ }
+}
+
+void CopySelectedMonsToPlayerParty(void)
+{
+ u8 i, j;
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < SELECTABLE_MONS_COUNT; j++)
+ {
+ if (gUnknown_0300127C->mons[j].selectedId == i + 1)
+ {
+ gPlayerParty[i] = gUnknown_0300127C->mons[j].monData;
+ gSaveBlock2Ptr->frontier.field_E70[i].monId = gUnknown_0300127C->mons[j].monSetId;
+ gSaveBlock2Ptr->frontier.field_E70[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL);
+ gSaveBlock2Ptr->frontier.field_E70[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL);
+ gSaveBlock2Ptr->frontier.field_E70[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL);
+ break;
+ }
+ }
+ }
+ CalculatePlayerPartyCount();
+}
+
+void sub_819B844(void)
+{
+ if (!gUnknown_0300127C->fromSummaryScreen)
+ gUnknown_0300127C->menuCursorPos = 0;
+
+ gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176;
+ gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112;
+ gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208;
+ gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112;
+
+ gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0;
+ gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0;
+
+ PrintSelectableMenuOptions();
+}
+
+void sub_819B8D4(void)
+{
+ gUnknown_0300127C->yesNoCursorPos = 0;
+
+ gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176;
+ gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = 112;
+ gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208;
+ gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = 112;
+
+ gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0;
+ gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0;
+
+ PrintSelectableYesNo();
+}
+
+void sub_819B958(u8 windowId)
+{
+ gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1;
+ gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1;
+ FillWindowPixelBuffer(windowId, 0);
+ CopyWindowToVram(windowId, 2);
+ ClearWindowTilemap(windowId);
+}
+
+void PrintRentalPkmnString(void)
+{
+ FillWindowPixelBuffer(0, 0);
+ PrintTextOnWindow(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL);
+ CopyWindowToVram(0, 3);
+}
+
+extern const u8 gUnknown_08610479[];
+extern const u8 gUnknown_08610476[];
+
+void PrintMonSpecies(void)
+{
+ u16 species;
+ u8 x;
+ u8 monId = gUnknown_0300127C->cursorPos;
+
+ FillWindowPixelBuffer(1, 0);
+ species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL);
+ StringCopy(gStringVar4, gSpeciesNames[species]);
+ x = GetStringRightAlignXOffset(1, gStringVar4, 86);
+ AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610479, 0, gStringVar4);
+ CopyWindowToVram(1, 2);
+}
+
+void PrintSelectMonString(void)
+{
+ const u8 *str = NULL;
+
+ FillWindowPixelBuffer(2, 0);
+ if (gUnknown_0300127C->selectingMonsState == 1)
+ str = gText_SelectFirstPkmn;
+ else if (gUnknown_0300127C->selectingMonsState == 2)
+ str = gText_SelectSecondPkmn;
+ else if (gUnknown_0300127C->selectingMonsState == 3)
+ str = gText_SelectThirdPkmn;
+ else
+ str = gText_TheseThreePkmnOkay;
+
+ PrintTextOnWindow(2, 1, str, 2, 5, 0, NULL);
+ CopyWindowToVram(2, 2);
+}
+
+void PrintCantSelectSameMon(void)
+{
+ FillWindowPixelBuffer(2, 0);
+ PrintTextOnWindow(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL);
+ CopyWindowToVram(2, 2);
+}
+
+void PrintSelectableMenuOptions(void)
+{
+ u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId;
+
+ PutWindowTilemap(3);
+ FillWindowPixelBuffer(3, 0);
+ AddTextPrinterParameterized3(3, 1, 7, 1, gUnknown_08610476, 0, gText_Summary);
+ if (selectedId != 0)
+ AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Deselect);
+ else
+ AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Rent);
+
+ AddTextPrinterParameterized3(3, 1, 7, 33, gUnknown_08610476, 0, gText_Others2);
+ CopyWindowToVram(3, 3);
+}
+
+void PrintSelectableYesNo(void)
+{
+ PutWindowTilemap(4);
+ FillWindowPixelBuffer(4, 0);
+ AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610476, 0, gText_Yes2);
+ AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610476, 0, gText_No2);
+ CopyWindowToVram(4, 3);
+}
+
+extern u8 (* const gUnknown_0861041C[])(void);
+
+u8 sub_819BC04(void)
+{
+ gUnknown_030062E8 = gUnknown_0861041C[gUnknown_0300127C->menuCursorPos];
+ return gUnknown_030062E8();
+}
+
+u8 sub_819BC30(void)
+{
+ u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId;
+ u16 monSetId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monSetId;
+ if (selectedId == 0 && !sub_819C634(monSetId))
+ {
+ PrintCantSelectSameMon();
+ sub_819B958(3);
+ return 3;
+ }
+ else
+ {
+ sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0);
+ HandleMonSelectionChange();
+ PrintSelectMonString();
+ sub_819B958(3);
+ if (gUnknown_0300127C->selectingMonsState > 3)
+ return 2;
+ else
+ return 1;
+ }
+}
+
+u8 sub_819BC9C(void)
+{
+ sub_819C568();
+ HandleMonSelectionChange();
+ PrintSelectMonString();
+ sub_819B958(3);
+ if (gUnknown_0300127C->selectingMonsState > 3)
+ return 2;
+ else
+ return 1;
+}
+
+u8 sub_819BCCC(void)
+{
+ return 0;
+}
+
+u8 sub_819BCD0(void)
+{
+ sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0);
+ sub_819B958(3);
+ return 1;
+}
+
+void PrintMonCategory(void)
+{
+ u16 species;
+ u8 text[30];
+ u8 x;
+ u8 monId = gUnknown_0300127C->cursorPos;
+ if (monId < SELECTABLE_MONS_COUNT)
+ {
+ PutWindowTilemap(5);
+ FillWindowPixelBuffer(5, 0);
+ species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL);
+ CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text);
+ x = GetStringRightAlignXOffset(1, text, 0x76);
+ PrintTextOnWindow(5, 1, text, x, 1, 0, NULL);
+ CopyWindowToVram(5, 2);
+ }
+}
+
+void sub_819BD70(void)
+{
+ u8 monId = gUnknown_0300127C->cursorPos;
+ struct Pokemon *mon = &gUnknown_0300127C->mons[monId].monData;
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
+ u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
+
+ gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF);
+ gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0;
+ gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0;
+
+ gUnknown_0300127C->unk2A0 = 0;
+}
+
+extern const struct SpriteTemplate gUnknown_08610638;
+
+void sub_819BE20(u8 arg0)
+{
+ gUnknown_0300127C->unk2A0 = arg0;
+}
+
+void sub_819BE34(void)
+{
+ struct Pokemon *mon;
+ u16 species;
+ u32 personality, otId;
+
+ gUnknown_0300127C->unk298.field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1);
+ StartSpriteAffineAnim(&gSprites[gUnknown_0300127C->unk298.field1], 2);
+
+ mon = &gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monData;
+ species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
+ otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
+
+ gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF);
+ gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0;
+ gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0;
+
+ gSprites[gUnknown_0300127C->unk298.field1].invisible = 1;
+}
diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c
index f6a5895a9..2ae15a806 100644
--- a/src/berry_fix_program.c
+++ b/src/berry_fix_program.c
@@ -250,19 +250,19 @@ static void berry_fix_gpu_set(void)
width = GetStringWidth(0, sUnknown_08617E9B, 0);
left = (0x78 - width) / 2;
- box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B);
+ AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B);
width = GetStringWidth(0, sUnknown_08617E8D, 0);
left = (0x78 - width) / 2 + 0x78;
- box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
+ AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
width = GetStringWidth(0, sUnknown_08617E8D, 0);
left = (0x70 - width) / 2;
- box_print(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
+ AddTextPrinterParameterized3(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
width = GetStringWidth(1, sUnknown_08617E78, 0);
left = (0xD0 - width) / 2;
- box_print(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78);
+ AddTextPrinterParameterized3(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78);
CopyWindowToVram(2, 2);
CopyWindowToVram(3, 2);
@@ -292,7 +292,7 @@ static void berry_fix_text_print(int scene)
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
FillWindowPixelBuffer(1, 0xAA);
- box_print(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]);
+ AddTextPrinterParameterized3(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]);
PutWindowTilemap(1);
CopyWindowToVram(1, 2);
switch (scene)
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 33c85d448..081c963ee 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -1128,7 +1128,7 @@ static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2)
{
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
- box_print(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF);
+ AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF);
CopyWindowToVram(0, 3);
}
@@ -1164,7 +1164,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
*(stringPtr)++ = CHAR_QUESTION_MARK;
}
stringPtr[0] = EOS;
- box_print(0, 1, 0x10, 1, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, 0x10, 1, sUnknown_085E5388, -1, text);
}
// nick, species names, gender and level
@@ -1173,13 +1173,13 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
if (currMon->species == SPECIES_EGG)
{
width = GetStringCenterAlignXOffset(1, text, 0xD0);
- box_print(0, 1, width, 1, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text);
CopyWindowToVram(0, 3);
}
else
{
width = GetStringRightAlignXOffset(1, text, 0x80);
- box_print(0, 1, width, 1, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text);
text[0] = CHAR_SLASH;
stringPtr = StringCopy(text + 1, gSpeciesNames[currMon->species]);
@@ -1200,15 +1200,15 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
}
stringPtr[0] = EOS;
- box_print(0, 1, 0x80, 1, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, 0x80, 1, sUnknown_085E5388, -1, text);
stringPtr = StringCopy(text, gText_Level);
ConvertIntToDecimalStringN(stringPtr, currMon->lvl, STR_CONV_MODE_LEFT_ALIGN, 3);
- box_print(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text);
stringPtr = StringCopy(text, gText_IDNumber);
ConvertIntToDecimalStringN(stringPtr, (u16)(currMon->tid), STR_CONV_MODE_LEADING_ZEROS, 5);
- box_print(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text);
CopyWindowToVram(0, 3);
}
@@ -1223,13 +1223,13 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
FillWindowPixelBuffer(1, 0x11);
PutWindowTilemap(1);
SetWindowBorderStyle(1, FALSE, 0x21D, 0xD);
- box_print(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name);
+ AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name);
width = GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 0x70);
- box_print(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName);
+ AddTextPrinterParameterized3(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName);
trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8);
- box_print(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber);
+ AddTextPrinterParameterized3(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber);
text[0] = (trainerId % 100000) / 10000 + CHAR_0;
text[1] = (trainerId % 10000) / 1000 + CHAR_0;
text[2] = (trainerId % 1000) / 100 + CHAR_0;
@@ -1237,9 +1237,9 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
text[4] = (trainerId % 10) / 1 + CHAR_0;
text[5] = EOS;
width = GetStringRightAlignXOffset(1, text, 0x70);
- box_print(1, 1, width, 0x11, sUnknown_085E538C, -1, text);
+ AddTextPrinterParameterized3(1, 1, width, 0x11, sUnknown_085E538C, -1, text);
- box_print(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime);
+ AddTextPrinterParameterized3(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime);
text[0] = (gSaveBlock2Ptr->playTimeHours / 100) + CHAR_0;
text[1] = (gSaveBlock2Ptr->playTimeHours % 100) / 10 + CHAR_0;
text[2] = (gSaveBlock2Ptr->playTimeHours % 10) + CHAR_0;
@@ -1255,7 +1255,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
text[6] = EOS;
width = GetStringRightAlignXOffset(1, text, 0x70);
- box_print(1, 1, width, 0x21, sUnknown_085E538C, -1, text);
+ AddTextPrinterParameterized3(1, 1, width, 0x21, sUnknown_085E538C, -1, text);
CopyWindowToVram(1, 3);
}
diff --git a/src/link.c b/src/link.c
index 457e44a01..627327181 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1685,8 +1685,8 @@ static void sub_800B080(void)
LoadPalette(gWirelessLinkDisplayPal, 0, 0x20);
FillWindowPixelBuffer(0, 0x00);
FillWindowPixelBuffer(2, 0x00);
- box_print(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis);
- box_print(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner);
+ AddTextPrinterParameterized3(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis);
+ AddTextPrinterParameterized3(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner);
PutWindowTilemap(0);
PutWindowTilemap(2);
CopyWindowToVram(0, 0);
@@ -1698,7 +1698,7 @@ static void sub_800B138(void)
LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0);
FillWindowPixelBuffer(1, 0x00);
FillWindowPixelBuffer(2, 0x00);
- box_print(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections);
+ AddTextPrinterParameterized3(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections);
PutWindowTilemap(1);
PutWindowTilemap(2);
CopyWindowToVram(1, 0);
@@ -1738,11 +1738,11 @@ static void CB2_PrintErrorMessage(void)
case 130:
if (gWirelessCommType == 2)
{
- box_print(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen);
+ AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen);
}
else if (gWirelessCommType == 1)
{
- box_print(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter);
+ AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter);
}
break;
}
diff --git a/src/mail.c b/src/mail.c
index 625b52de3..3c12bed3f 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -485,14 +485,14 @@ static void sub_8121B1C(void)
{
continue;
}
- box_print(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]);
+ AddTextPrinterParameterized3(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]);
y += sMailRead->layout->var8[i].lineHeight;
}
bufptr = StringCopy(strbuf, gText_FromSpace);
StringCopy(bufptr, sMailRead->playerName);
box_x = GetStringCenterAlignXOffset(1, strbuf, sMailRead->signatureWidth) + 0x68;
box_y = sMailRead->layout->signatureYPos + 0x58;
- box_print(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf);
+ AddTextPrinterParameterized3(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf);
CopyWindowToVram(0, 3);
CopyWindowToVram(1, 3);
}
diff --git a/src/main_menu.c b/src/main_menu.c
index e28faf986..b4b343fc6 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -527,8 +527,8 @@ void Task_DisplayMainMenu(u8 taskId)
default:
FillWindowPixelBuffer(0, 0xAA);
FillWindowPixelBuffer(1, 0xAA);
- box_print(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
- box_print(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
PutWindowTilemap(0);
PutWindowTilemap(1);
CopyWindowToVram(0, 2);
@@ -540,9 +540,9 @@ void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(2, 0xAA);
FillWindowPixelBuffer(3, 0xAA);
FillWindowPixelBuffer(4, 0xAA);
- box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
- box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
- box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame();
PutWindowTilemap(2);
PutWindowTilemap(3);
@@ -559,10 +559,10 @@ void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(3, 0xAA);
FillWindowPixelBuffer(4, 0xAA);
FillWindowPixelBuffer(5, 0xAA);
- box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
- box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
- box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift);
- box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift);
+ AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame();
PutWindowTilemap(2);
PutWindowTilemap(3);
@@ -583,11 +583,11 @@ void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(4, 0xAA);
FillWindowPixelBuffer(5, 0xAA);
FillWindowPixelBuffer(6, 0xAA);
- box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
- box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
- box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2);
- box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents);
- box_print(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2);
+ AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents);
+ AddTextPrinterParameterized3(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame();
PutWindowTilemap(2);
PutWindowTilemap(3);
@@ -1839,8 +1839,8 @@ void fmt_savegame(void)
void fmt_time(void)
{
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPlayer);
- box_print(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4);
- box_print(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName);
+ AddTextPrinterParameterized3(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName);
}
void fmt_player(void)
@@ -1849,11 +1849,11 @@ void fmt_player(void)
u8* ptr;
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuTime);
- box_print(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4);
ptr = ConvertIntToDecimalStringN(str, gSaveBlock2Ptr->playTimeHours, 0, 3);
*ptr = 0xF0;
ConvertIntToDecimalStringN(ptr + 1, gSaveBlock2Ptr->playTimeMinutes, 2, 2);
- box_print(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str);
+ AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str);
}
void fmt_pokedex(void)
@@ -1868,9 +1868,9 @@ void fmt_pokedex(void)
else
dexCount = GetHoennPokedexCount(1);
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex);
- box_print(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4);
ConvertIntToDecimalStringN(str, dexCount, 0, 3);
- box_print(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str);
+ AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str);
}
}
@@ -1886,9 +1886,9 @@ void fmt_badges(void)
badgeCount++;
}
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuBadges);
- box_print(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4);
ConvertIntToDecimalStringN(str, badgeCount, 2, 1);
- box_print(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str);
+ AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str);
}
void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset)
diff --git a/src/menu.c b/src/menu.c
index 8a4b4fce5..7c9c2f8a8 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -799,7 +799,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
PutWindowTilemap(gUnknown_0203CDA0);
FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
width = GetStringWidth(0, string, 0);
- box_print(gUnknown_0203CDA0,
+ AddTextPrinterParameterized3(gUnknown_0203CDA0,
0,
0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
1,
@@ -835,7 +835,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
if (string2 != NULL)
{
width = GetStringWidth(0, string2, 0);
- box_print(gUnknown_0203CDA0,
+ AddTextPrinterParameterized3(gUnknown_0203CDA0,
0,
0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
1,
@@ -1925,7 +1925,7 @@ void sub_8199DF0(u32 bg, u8 a1, int a2, int a3)
RequestDma3Fill(a1 << 24 | a1 << 16 | a1 << 8 | a1, addr + VRAM, a3 * temp, 1);
}
-void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str)
+void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str)
{
struct TextSubPrinter printer;
diff --git a/src/naming_screen.c b/src/naming_screen.c
index f99d23bc3..35a05499b 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -1515,7 +1515,7 @@ static void sub_80E49BC(void)
StringCopy(genderSymbol, gText_FemaleSymbol);
isFemale = TRUE;
}
- box_print(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol);
+ AddTextPrinterParameterized3(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol);
}
}
@@ -1694,7 +1694,7 @@ static void sub_80E4DE4(u8 window, u8 a1)
for (i = 0; i < 4; i++)
{
- box_print(window, 1, 0, i * 16 + 1, sUnkColors[a1], 0, gUnknown_0858C198[a1][i]);
+ AddTextPrinterParameterized3(window, 1, 0, i * 16 + 1, sUnkColors[a1], 0, gUnknown_0858C198[a1][i]);
}
PutWindowTilemap(window);
@@ -1739,7 +1739,7 @@ static void sub_80E4EF0(void)
const u8 color[3] = { 15, 1, 2 };
FillWindowPixelBuffer(gNamingScreenData->windows[4], 0xFF);
- box_print(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack);
+ AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack);
PutWindowTilemap(gNamingScreenData->windows[4]);
CopyWindowToVram(gNamingScreenData->windows[4], 3);
}
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index 7c622c223..eae868134 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -627,12 +627,12 @@ void sub_80C7BE4(void)
FillWindowPixelBuffer(windowId, 0x44);
center = GetStringCenterAlignXOffset(1, boxName, 0x40);
- box_print(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName);
+ AddTextPrinterParameterized3(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName);
ConvertIntToDecimalStringN(text, nPokemonInBox, 1, 2);
StringAppend(text, gUnknown_08571737);
center = GetStringCenterAlignXOffset(1, text, 0x40);
- box_print(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text);
+ AddTextPrinterParameterized3(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text);
winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA);
CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(gUnknown_02039D04->unk_0240) * 32), 0x400);
diff --git a/src/starter_choose.c b/src/starter_choose.c
index c1e7eea40..5625b6184 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -301,10 +301,10 @@ static void CreateStarterPokemonLabel(u8 selection)
FillWindowPixelBuffer(sStarterChooseWindowId, 0);
width = GetStringCenterAlignXOffset(7, text, 0x68);
- box_print(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text);
+ AddTextPrinterParameterized3(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text);
width = GetStringCenterAlignXOffset(1, speciesName, 0x68);
- box_print(sStarterChooseWindowId, 1, width, 0x11, gUnknown_085B1E0C, 0, speciesName);
+ AddTextPrinterParameterized3(sStarterChooseWindowId, 1, width, 0x11, gUnknown_085B1E0C, 0, speciesName);
PutWindowTilemap(sStarterChooseWindowId);
schedule_bg_copy_tilemap_to_vram(0);