summaryrefslogtreecommitdiff
path: root/src/hall_of_fame.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/hall_of_fame.c')
-rw-r--r--src/hall_of_fame.c148
1 files changed, 50 insertions, 98 deletions
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index f5c4ba491..2b0904672 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -5,6 +5,7 @@
#include "sprite.h"
#include "pokemon.h"
#include "text.h"
+#include "text_window.h"
#include "malloc.h"
#include "gpu_regs.h"
#include "main.h"
@@ -26,6 +27,9 @@
#include "event_data.h"
#include "overworld.h"
#include "menu.h"
+#include "trainer_pokemon_sprites.h"
+#include "data2.h"
+#include "rom_81520A8.h"
struct HallofFameMon
{
@@ -55,10 +59,6 @@ static EWRAM_DATA struct HofGfx *sHofGfxPtr = NULL;
extern bool8 gHasHallOfFameRecords;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
-extern MainCallback gGameContinueCallback;
-extern u32 gDamagedSaveSectors;
-extern u8 gReservedSpritePaletteCount;
-extern const u8 gSpeciesNames[][11];
#define HALL_OF_FAME_MAX_TEAMS 50
@@ -81,19 +81,7 @@ extern const u8 gText_MainMenuTime[];
extern const u8 gContestConfetti_Gfx[];
extern const u8 gContestConfetti_Pal[];
-extern void NewMenuHelpers_DrawDialogueFrame(u8, u8);
extern void sub_8175620(void);
-extern u8 TrySavingData(u8);
-extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16);
-extern void sub_8197434(u8, u8);
-extern u16 sub_818D97C(u8 playerGender, u8);
-extern u16 sub_818D8AC(u16, u8, s16, s16, u8, u16);
-extern const void* stdpal_get(u8);
-extern void LoadWindowGfx(u8, u8, u16, u8);
-extern u16 sub_818D820(u16);
-extern u16 sub_818D8F0(u16);
-extern u16 sub_818D7D8(u16 species, u32 trainerId, u32 personality, u8 arg3, s16 sp0, s16 sp1, u8 sp2, u16 sp3);
-extern void sub_8198204(u8 *dst, const u8 *src, u8, u8, u8);
extern bool8 sub_80F9C30(void);
extern void sub_8198314(void);
extern void ReturnFromHallOfFamePC(void);
@@ -102,17 +90,8 @@ extern void sub_80F9BF4(u16, u16, u8);
extern void sub_81980F0(u8, u8, u8, u8, u16);
extern void sub_80F9BCC(u16, u16, u8);
extern bool8 sub_80F9C1C(void);
-extern u16 SpeciesToPokedexNum(u16 species);
-extern void dp13_810BB8C(void);
extern void sub_81971D0(void);
extern void sub_8197200(void);
-extern void sub_8152254(void);
-extern void sub_81525D0(u8);
-extern void sub_8152438(u8, void*);
-extern void sub_8152474(u8, u8, u8);
-extern void sub_81522D4(void);
-extern bool32 sub_81521C0(u8);
-extern u8 sub_81524C4(const struct OamData *arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, u8 arg5, s16 arg6);
// this file's functions
static void ClearVramOamPltt_LoadHofPal(void);
@@ -190,20 +169,18 @@ static const u8 sUnknown_085E5388[] = {0, 1, 2, 0};
static const u8 sUnknown_085E538C[] = {0, 2, 3, 0, 4, 5, 0, 0};
-static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet =
+static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet[] =
{
- gContestConfetti_Gfx, 0x220, 1001
+ {gContestConfetti_Gfx, 0x220, 1001},
+ {},
};
-static const u8 sUnused0[8] = {};
-
-static const struct CompressedSpritePalette sHallOfFame_ConfettiSpritePalette =
+static const struct CompressedSpritePalette sHallOfFame_ConfettiSpritePalette[] =
{
- gContestConfetti_Pal, 1001
+ {gContestConfetti_Pal, 1001},
+ {},
};
-static const u8 sUnused1[8] = {};
-
static const s16 sHallOfFame_MonFullTeamPositions[6][4] =
{
{120, 210, 120, 40},
@@ -539,7 +516,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
*lastSavedTeam = *sHofMonPtr;
NewMenuHelpers_DrawDialogueFrame(0, 0);
- AddTextPrinterParameterized(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3);
gTasks[taskId].func = Task_Hof_TrySaveData;
}
@@ -611,14 +588,14 @@ static void Task_Hof_DisplayMon(u8 taskId)
if (currMon->species == SPECIES_EGG)
field6 += 10;
- spriteId = sub_818D3E4(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF);
+ spriteId = CreatePicSprite2(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF);
gSprites[spriteId].tDestinationX = field4;
gSprites[spriteId].tDestinationY = field6;
gSprites[spriteId].data[0] = 0;
gSprites[spriteId].tSpecies = currMon->species;
gSprites[spriteId].callback = SpriteCB_GetOnScreenAndAnimate;
gTasks[taskId].tMonSpriteId(currMonId) = spriteId;
- sub_8197434(0, 1);
+ sub_8197434(0, TRUE);
gTasks[taskId].func = Task_Hof_PrintMonInfoAfterAnimating;
}
@@ -723,7 +700,7 @@ static void sub_8173EE4(u8 taskId)
ShowBg(0);
ShowBg(1);
ShowBg(3);
- gTasks[taskId].tPlayerSpriteID = sub_818D8AC(sub_818D97C(gSaveBlock2Ptr->playerGender, 1), 1, 120, 72, 6, 0xFFFF);
+ gTasks[taskId].tPlayerSpriteID = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 120, 72, 6, 0xFFFF);
AddWindow(&sHof_WindowTemplate);
LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0);
LoadPalette(stdpal_get(1), 0xE0, 0x20);
@@ -746,7 +723,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId)
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20);
HallOfFame_PrintPlayerInfo(1, 2);
NewMenuHelpers_DrawDialogueFrame(0, 0);
- AddTextPrinterParameterized(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3);
gTasks[taskId].func = Task_Hof_ExitOnKeyPressed;
}
@@ -780,11 +757,11 @@ static void Task_Hof_HandleExit(u8 taskId)
if (spriteId != 0xFF)
{
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
- sub_818D820(spriteId);
+ FreeAndDestroyMonPicSprite(spriteId);
}
}
- sub_818D8F0(gTasks[taskId].tPlayerSpriteID);
+ FreeAndDestroyTrainerPicSprite(gTasks[taskId].tPlayerSpriteID);
HideBg(0);
HideBg(1);
HideBg(3);
@@ -956,7 +933,7 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
if (currMon->species == SPECIES_EGG)
posY += 10;
- spriteId = sub_818D7D8(currMon->species, currMon->tid, currMon->personality, 1, posX, posY, i, 0xFFFF);
+ spriteId = CreateMonPicSprite_HandleDeoxys(currMon->species, currMon->tid, currMon->personality, 1, posX, posY, i, 0xFFFF);
gSprites[spriteId].oam.priority = 1;
gTasks[taskId].tMonSpriteId(i) = spriteId;
}
@@ -972,9 +949,9 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
StringExpandPlaceholders(gStringVar4, gText_HOFNumber);
if (gTasks[taskId].tCurrTeamNo <= 0)
- sub_8198204(gStringVar4, gText_PickCancel, 0, 0, 1);
+ sub_8198204(gStringVar4, gText_PickCancel, 0, 0, TRUE);
else
- sub_8198204(gStringVar4, gText_PickNextCancel, 0, 0, 1);
+ sub_8198204(gStringVar4, gText_PickNextCancel, 0, 0, TRUE);
gTasks[taskId].func = Task_HofPC_PrintMonInfo;
}
@@ -1026,7 +1003,7 @@ static void Task_HofPC_HandleInput(u8 taskId)
u8 spriteId = gTasks[taskId].tMonSpriteId(i);
if (spriteId != 0xFF)
{
- sub_818D820(spriteId);
+ FreeAndDestroyMonPicSprite(spriteId);
gTasks[taskId].tMonSpriteId(i) = 0xFF;
}
}
@@ -1087,7 +1064,7 @@ static void Task_HofPC_HandleExit(u8 taskId)
u16 spriteId = gTasks[taskId].tMonSpriteId(i);
if (spriteId != 0xFF)
{
- sub_818D820(spriteId);
+ FreeAndDestroyMonPicSprite(spriteId);
gTasks[taskId].tMonSpriteId(i) = 0xFF;
}
}
@@ -1115,7 +1092,7 @@ static void Task_HofPC_PrintDataIsCorrupted(u8 taskId)
{
sub_8198180(gText_UnkCtrlF800Exit, 8, 1);
NewMenuHelpers_DrawDialogueFrame(0, 0);
- AddTextPrinterParameterized(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3);
gTasks[taskId].func = Task_HofPC_ExitOnButtonPress;
}
@@ -1136,7 +1113,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);
}
@@ -1172,7 +1149,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
@@ -1181,13 +1158,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]);
@@ -1208,15 +1185,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);
}
@@ -1231,13 +1208,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;
@@ -1245,9 +1222,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;
@@ -1263,7 +1240,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);
}
@@ -1305,11 +1282,11 @@ static void sub_8174F70(void)
ResetTasks();
ResetSpriteData();
reset_temp_tile_data_buffers();
- dp13_810BB8C();
+ ResetAllPicSprites();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
- LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet);
- LoadCompressedObjectPalette(&sHallOfFame_ConfettiSpritePalette);
+ LoadCompressedObjectPic(sHallOfFame_ConfettiSpriteSheet);
+ LoadCompressedObjectPalette(sHallOfFame_ConfettiSpritePalette);
}
static void sub_8174FAC(void)
@@ -1461,53 +1438,28 @@ static void sub_81752C0(void)
FreeSpritePaletteByTag(0x3E9);
}
-struct UnknownStruct912B4
-{
- s16 field_0;
- s16 field_2;
- s16 field_4;
- s16 field_6;
- s16 field_8;
- s16 field_A;
- s16 field_C;
- s16 field_E;
- s16 field_10;
- s16 field_12;
- s16 field_14;
- s16 field_16;
- s16 field_18;
- s16 field_1A;
- s16 field_1C;
- s16 field_1E;
- s16 field_20;
- s16 field_22;
- s16 field_24;
- s16 field_26;
- s16 field_28;
-};
-
-static void sub_81752F4(struct UnknownStruct912B4 *unkStruct)
+static void sub_81752F4(struct UnkStruct_81520A8 *structPtr)
{
- if (unkStruct->field_E > 110)
+ if (structPtr->yDelta > 110)
{
- gTasks[unkStruct->field_28].data[15]--;
- sub_81525D0(unkStruct->field_16);
+ gTasks[structPtr->data[7]].data[15]--;
+ sub_81525D0(structPtr->id);
}
else
{
u8 var;
s32 rand;
- unkStruct->field_E++;
- unkStruct->field_E += unkStruct->field_1C;
+ structPtr->yDelta++;
+ structPtr->yDelta += structPtr->data[1];
- var = unkStruct->field_1A;
+ var = structPtr->data[0];
rand = Random();
rand &= 3;
rand += 8;
- unkStruct->field_C = (rand) * ((gSineTable[var])) / 256;
+ structPtr->xDelta = (rand) * ((gSineTable[var])) / 256;
- unkStruct->field_1A += 4;
+ structPtr->data[0] += 4;
}
}
@@ -1525,8 +1477,8 @@ static void sub_8175364(u8 taskId)
gSpecialVar_0x8004 = var;
gSpecialVar_0x8005 = 0xFFFF;
}
- LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet);
- LoadCompressedObjectPalette(&sHallOfFame_ConfettiSpritePalette);
+ LoadCompressedObjectPic(sHallOfFame_ConfettiSpriteSheet);
+ LoadCompressedObjectPalette(sHallOfFame_ConfettiSpritePalette);
data[0]++;
break;
case 1: