mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-03-19 12:08:34 +01:00
Merge pull request #542 from Slawter666/pss
Label some summary screen functions
This commit is contained in:
commit
646533cfa3
@ -43,10 +43,11 @@
|
|||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
#include "constants/moves.h"
|
#include "constants/moves.h"
|
||||||
#include "constants/region_map_sections.h"
|
#include "constants/region_map_sections.h"
|
||||||
|
#include "constants/rgb.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
|
|
||||||
static EWRAM_DATA struct UnkSummaryStruct
|
static EWRAM_DATA struct PssData
|
||||||
{
|
{
|
||||||
/*0x00*/ union {
|
/*0x00*/ union {
|
||||||
struct Pokemon *mons;
|
struct Pokemon *mons;
|
||||||
@ -135,21 +136,21 @@ static bool8 SummaryScreen_DecompressGraphics(void);
|
|||||||
static void CopyMonToSummaryStruct(struct Pokemon* a);
|
static void CopyMonToSummaryStruct(struct Pokemon* a);
|
||||||
static bool8 ExtractMonDataToSummaryStruct(struct Pokemon* a);
|
static bool8 ExtractMonDataToSummaryStruct(struct Pokemon* a);
|
||||||
static void sub_81C0348(void);
|
static void sub_81C0348(void);
|
||||||
static void sub_81C0484(u8 taskId);
|
static void CloseSummaryScreen(u8 taskId);
|
||||||
static void sub_81C0510(u8 taskId);
|
static void HandleInput(u8 taskId);
|
||||||
static void sub_81C0604(u8 taskId, s8 a);
|
static void ChangePokemon(u8 taskId, s8 a);
|
||||||
static void sub_81C0704(u8 taskId);
|
static void sub_81C0704(u8 taskId);
|
||||||
static s8 sub_81C08F8(s8 a);
|
static s8 sub_81C08F8(s8 a);
|
||||||
static s8 sub_81C09B4(s8 a);
|
static s8 sub_81C09B4(s8 a);
|
||||||
static bool8 sub_81C0A50(struct Pokemon* mon);
|
static bool8 sub_81C0A50(struct Pokemon* mon);
|
||||||
static void sub_81C0A8C(u8 taskId, s8 a);
|
static void ChangePage(u8 taskId, s8 a);
|
||||||
static void sub_81C0B8C(u8 taskId);
|
static void sub_81C0B8C(u8 taskId);
|
||||||
static void sub_81C0C68(u8 taskId);
|
static void sub_81C0C68(u8 taskId);
|
||||||
static void sub_81C0CC4(u8 taskId);
|
static void sub_81C0CC4(u8 taskId);
|
||||||
static void sub_81C0D44(u8 taskId);
|
static void sub_81C0D44(u8 taskId);
|
||||||
static void sub_81C0E24(void);
|
static void sub_81C0E24(void);
|
||||||
static void sub_81C0E48(u8 taskId);
|
static void sub_81C0E48(u8 taskId);
|
||||||
static void sub_81C0F44(u8 taskId);
|
static void HandleInput_MoveSelect(u8 taskId);
|
||||||
static bool8 sub_81C1040(void);
|
static bool8 sub_81C1040(void);
|
||||||
static void sub_81C1070(s16* a, s8 b, u8* c);
|
static void sub_81C1070(s16* a, s8 b, u8* c);
|
||||||
static void sub_81C11F4(u8 a);
|
static void sub_81C11F4(u8 a);
|
||||||
@ -173,21 +174,21 @@ static void sub_81C20F0(u8 taskId);
|
|||||||
static void sub_81C2194(u16 *a, u16 b, u8 c);
|
static void sub_81C2194(u16 *a, u16 b, u8 c);
|
||||||
static void sub_81C2228(struct Pokemon* mon);
|
static void sub_81C2228(struct Pokemon* mon);
|
||||||
static void DrawExperienceProgressBar(struct Pokemon* mon);
|
static void DrawExperienceProgressBar(struct Pokemon* mon);
|
||||||
static void sub_81C240C(u16 a);
|
static void DrawContestMoveHearts(u16 move);
|
||||||
static void sub_81C2524(void);
|
static void sub_81C2524(void);
|
||||||
static void sub_81C2554(void);
|
static void ResetWindows(void);
|
||||||
static void sub_81C25E8(void);
|
static void sub_81C25E8(void);
|
||||||
static void sub_81C2628(void);
|
static void sub_81C2628(void);
|
||||||
static void sub_81C2794(void);
|
static void sub_81C2794(void);
|
||||||
static void sub_81C27DC(struct Pokemon *mon, u16 a);
|
static void sub_81C27DC(struct Pokemon *mon, u16 a);
|
||||||
static void PrintPageNamesAndStatsPageToWindows(void);
|
static void PrintPageNamesAndStatsPageToWindows(void);
|
||||||
static void sub_81C2AFC(u8 a);
|
static void CreatePageWindowTilemaps(u8 a);
|
||||||
static void sub_81C2C38(u8 a);
|
static void ClearPageWindowTilemaps(u8 a);
|
||||||
static void SummaryScreen_RemoveWindowByIndex(u8 a);
|
static void SummaryScreen_RemoveWindowByIndex(u8 a);
|
||||||
static void sub_81C2D9C(u8 a);
|
static void PrintPageSpecificText(u8 a);
|
||||||
static void sub_81C2DE4(u8 a);
|
static void CreateTextPrinterTask(u8 a);
|
||||||
static void sub_81C2E00(void);
|
static void PrintInfoPageText(void);
|
||||||
static void sub_81C2E40(u8 taskId);
|
static void Task_PrintInfoPage(u8 taskId);
|
||||||
static void PrintMonOTName(void);
|
static void PrintMonOTName(void);
|
||||||
static void PrintMonOTID(void);
|
static void PrintMonOTID(void);
|
||||||
static void PrintMonAbilityName(void);
|
static void PrintMonAbilityName(void);
|
||||||
@ -203,39 +204,39 @@ static void PrintEggOTName(void);
|
|||||||
static void PrintEggOTID(void);
|
static void PrintEggOTID(void);
|
||||||
static void PrintEggState(void);
|
static void PrintEggState(void);
|
||||||
static void PrintEggMemo(void);
|
static void PrintEggMemo(void);
|
||||||
static void sub_81C3554(u8 taskId);
|
static void Task_PrintSkillsPage(u8 taskId);
|
||||||
static void PrintHeldItemName(void);
|
static void PrintHeldItemName(void);
|
||||||
static void sub_81C3530(void);
|
static void PrintSkillsPageText(void);
|
||||||
static void PrintRibbonCount(void);
|
static void PrintRibbonCount(void);
|
||||||
static void BufferLeftColumnStats(void);
|
static void BufferLeftColumnStats(void);
|
||||||
static void PrintLeftColumnStats(void);
|
static void PrintLeftColumnStats(void);
|
||||||
static void BufferRightColumnStats(void);
|
static void BufferRightColumnStats(void);
|
||||||
static void PrintRightColumnStats(void);
|
static void PrintRightColumnStats(void);
|
||||||
static void PrintExpPointsNextLevel(void);
|
static void PrintExpPointsNextLevel(void);
|
||||||
static void sub_81C3984(void);
|
static void PrintBattleMoves(void);
|
||||||
static void sub_81C39F0(u8 taskId);
|
static void Task_PrintBattleMoves(u8 taskId);
|
||||||
static void PrintMoveNameAndPP(u8 a);
|
static void PrintMoveNameAndPP(u8 a);
|
||||||
static void sub_81C3D08(void);
|
static void PrintContestMoves(void);
|
||||||
static void sub_81C3D54(u8 taskId);
|
static void Task_PrintContestMoves(u8 taskId);
|
||||||
static void PrintContestMoveDescription(u8 a);
|
static void PrintContestMoveDescription(u8 a);
|
||||||
static void PrintMoveDetails(u16 a);
|
static void PrintMoveDetails(u16 a);
|
||||||
static void PrintNewMoveDetailsOrCancelText(void);
|
static void PrintNewMoveDetailsOrCancelText(void);
|
||||||
static void sub_81C4064(void);
|
static void sub_81C4064(void);
|
||||||
static void sub_81C40A0(u8 a, u8 b);
|
static void sub_81C40A0(u8 a, u8 b);
|
||||||
static void PrintHMMovesCantBeForgotten(void);
|
static void PrintHMMovesCantBeForgotten(void);
|
||||||
static void sub_81C4190(void);
|
static void ResetSpriteIds(void);
|
||||||
static void sub_81C4204(u8 a, u8 b);
|
static void SetSpriteInvisibility(u8 spriteArrayId, bool8 invisible);
|
||||||
static void sub_81C424C(void);
|
static void HidePageSpecificSprites(void);
|
||||||
static void sub_81C4280(void);
|
static void SetTypeIcons(void);
|
||||||
static void sub_81C42C8(void);
|
static void CreateMoveTypeIcons(void);
|
||||||
static void sub_81C43A0(void);
|
static void SetMonTypeIcons(void);
|
||||||
static void sub_81C4420(void);
|
static void SetMoveTypeIcons(void);
|
||||||
static void sub_81C4484(void);
|
static void SetContestMoveTypeIcons(void);
|
||||||
static void sub_81C44F0(void);
|
static void SetNewMoveTypeIcon(void);
|
||||||
static void sub_81C4568(u8 a, u8 b);
|
static void sub_81C4568(u8 a, u8 b);
|
||||||
static u8 sub_81C45F4(struct Pokemon *a, s16 *b);
|
static u8 CreatePokemonSprite(struct Pokemon *a, s16 *b);
|
||||||
static u8 sub_81C47B4(struct Pokemon *unused);
|
static u8 sub_81C47B4(struct Pokemon *unused);
|
||||||
static void sub_81C4844(struct Sprite *);
|
static void SpriteCB_Pokemon(struct Sprite *);
|
||||||
static void sub_81C48F0(void);
|
static void sub_81C48F0(void);
|
||||||
static void CreateMonMarkingsSprite(struct Pokemon *mon);
|
static void CreateMonMarkingsSprite(struct Pokemon *mon);
|
||||||
static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon);
|
static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon);
|
||||||
@ -626,22 +627,26 @@ static const u8 sTextColors_861CD2C[][3] =
|
|||||||
{0, 5, 6},
|
{0, 5, 6},
|
||||||
{0, 7, 8}
|
{0, 7, 8}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8 gUnknown_0861CD53[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp");
|
static const u8 gUnknown_0861CD53[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp");
|
||||||
static const u8 gUnknown_0861CDD3[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp");
|
static const u8 gUnknown_0861CDD3[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp");
|
||||||
static void (*const gUnknown_0861CE54[])(void) =
|
|
||||||
|
static void (*const sTextPrinterFunctions[])(void) =
|
||||||
{
|
{
|
||||||
sub_81C2E00,
|
PrintInfoPageText,
|
||||||
sub_81C3530,
|
PrintSkillsPageText,
|
||||||
sub_81C3984,
|
PrintBattleMoves,
|
||||||
sub_81C3D08
|
PrintContestMoves
|
||||||
};
|
};
|
||||||
static void (*const gUnknown_0861CE64[])(u8 taskId) =
|
|
||||||
|
static void (*const sTextPrinterTasks[])(u8 taskId) =
|
||||||
{
|
{
|
||||||
sub_81C2E40,
|
Task_PrintInfoPage,
|
||||||
sub_81C3554,
|
Task_PrintSkillsPage,
|
||||||
sub_81C39F0,
|
Task_PrintBattleMoves,
|
||||||
sub_81C3D54
|
Task_PrintContestMoves
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8 gUnknown_0861CE74[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}");
|
static const u8 gUnknown_0861CE74[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}");
|
||||||
static const u8 gUnknown_0861CE7B[] = _("{COLOR WHITE}{SHADOW DARK_GREY}");
|
static const u8 gUnknown_0861CE7B[] = _("{COLOR WHITE}{SHADOW DARK_GREY}");
|
||||||
static const u8 gUnknown_0861CE82[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}");
|
static const u8 gUnknown_0861CE82[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}");
|
||||||
@ -968,13 +973,13 @@ static const union AnimCmd *const sSpriteAnimTable_StatusCondition[] = {
|
|||||||
sSpriteAnim_StatusPokerus,
|
sSpriteAnim_StatusPokerus,
|
||||||
sSpriteAnim_StatusFaint,
|
sSpriteAnim_StatusFaint,
|
||||||
};
|
};
|
||||||
static const struct CompressedSpriteSheet gUnknown_0861D0F8 =
|
static const struct CompressedSpriteSheet sStatusIconsSpriteSheet =
|
||||||
{
|
{
|
||||||
.data = gStatusGfx_Icons,
|
.data = gStatusGfx_Icons,
|
||||||
.size = 0x380,
|
.size = 0x380,
|
||||||
.tag = 30001
|
.tag = 30001
|
||||||
};
|
};
|
||||||
static const struct CompressedSpritePalette gUnknown_0861D100 =
|
static const struct CompressedSpritePalette sStatusIconsSpritePalette =
|
||||||
{
|
{
|
||||||
.data = gStatusPal_Icons,
|
.data = gStatusPal_Icons,
|
||||||
.tag = 30001
|
.tag = 30001
|
||||||
@ -1104,7 +1109,7 @@ static bool8 SummaryScreen_LoadGraphics(void)
|
|||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
sub_81C2554();
|
ResetWindows();
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
@ -1129,7 +1134,7 @@ static bool8 SummaryScreen_LoadGraphics(void)
|
|||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
sub_81C2D9C(pssData->currPageIndex);
|
PrintPageSpecificText(pssData->currPageIndex);
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
@ -1137,17 +1142,17 @@ static bool8 SummaryScreen_LoadGraphics(void)
|
|||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
sub_81C2AFC(pssData->currPageIndex);
|
CreatePageWindowTilemaps(pssData->currPageIndex);
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
sub_81C4190();
|
ResetSpriteIds();
|
||||||
sub_81C42C8();
|
CreateMoveTypeIcons();
|
||||||
pssData->unk40F0 = 0;
|
pssData->unk40F0 = 0;
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
pssData->spriteIds[0] = sub_81C45F4(&pssData->currentMon, &pssData->unk40F0);
|
pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &pssData->unk40F0);
|
||||||
if (pssData->spriteIds[0] != 0xFF)
|
if (pssData->spriteIds[0] != 0xFF)
|
||||||
{
|
{
|
||||||
pssData->unk40F0 = 0;
|
pssData->unk40F0 = 0;
|
||||||
@ -1167,12 +1172,12 @@ static bool8 SummaryScreen_LoadGraphics(void)
|
|||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 21:
|
case 21:
|
||||||
sub_81C4280();
|
SetTypeIcons();
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 22:
|
case 22:
|
||||||
if (pssData->mode != PSS_MODE_SELECT_MOVE)
|
if (pssData->mode != PSS_MODE_SELECT_MOVE)
|
||||||
CreateTask(sub_81C0510, 0);
|
CreateTask(HandleInput, 0);
|
||||||
else
|
else
|
||||||
CreateTask(sub_81C171C, 0);
|
CreateTask(sub_81C171C, 0);
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
@ -1182,7 +1187,7 @@ static bool8 SummaryScreen_LoadGraphics(void)
|
|||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 24:
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
|
||||||
gPaletteFade.bufferTransferDisabled = 0;
|
gPaletteFade.bufferTransferDisabled = 0;
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
@ -1259,11 +1264,11 @@ static bool8 SummaryScreen_DecompressGraphics(void)
|
|||||||
pssData->unk40F0++;
|
pssData->unk40F0++;
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
LoadCompressedSpriteSheet(&gUnknown_0861D0F8);
|
LoadCompressedSpriteSheet(&sStatusIconsSpriteSheet);
|
||||||
pssData->unk40F0++;
|
pssData->unk40F0++;
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
LoadCompressedSpritePalette(&gUnknown_0861D100);
|
LoadCompressedSpritePalette(&sStatusIconsSpritePalette);
|
||||||
pssData->unk40F0++;
|
pssData->unk40F0++;
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
@ -1374,7 +1379,7 @@ static void sub_81C0348(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_81C240C(pssData->summary.moves[pssData->firstMoveIndex]);
|
DrawContestMoveHearts(pssData->summary.moves[pssData->firstMoveIndex]);
|
||||||
sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0);
|
sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0);
|
||||||
sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0);
|
sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0);
|
||||||
SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]);
|
SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]);
|
||||||
@ -1402,13 +1407,13 @@ static void sub_81C0434(void)
|
|||||||
Free(pssData);
|
Free(pssData);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C044C(u8 taskId)
|
static void BeginCloseSummaryScreen(u8 taskId)
|
||||||
{
|
{
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||||
gTasks[taskId].func = sub_81C0484;
|
gTasks[taskId].func = CloseSummaryScreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C0484(u8 taskId)
|
static void CloseSummaryScreen(u8 taskId)
|
||||||
{
|
{
|
||||||
if (sub_81221EC() != TRUE && !gPaletteFade.active)
|
if (sub_81221EC() != TRUE && !gPaletteFade.active)
|
||||||
{
|
{
|
||||||
@ -1426,25 +1431,25 @@ static void sub_81C0484(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C0510(u8 taskId)
|
static void HandleInput(u8 taskId)
|
||||||
{
|
{
|
||||||
if (sub_81221EC() != TRUE && !gPaletteFade.active)
|
if (sub_81221EC() != TRUE && !gPaletteFade.active)
|
||||||
{
|
{
|
||||||
if (gMain.newKeys & DPAD_UP)
|
if (gMain.newKeys & DPAD_UP)
|
||||||
{
|
{
|
||||||
sub_81C0604(taskId, -1);
|
ChangePokemon(taskId, -1);
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_DOWN)
|
else if (gMain.newKeys & DPAD_DOWN)
|
||||||
{
|
{
|
||||||
sub_81C0604(taskId, 1);
|
ChangePokemon(taskId, 1);
|
||||||
}
|
}
|
||||||
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1)
|
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1)
|
||||||
{
|
{
|
||||||
sub_81C0A8C(taskId, -1);
|
ChangePage(taskId, -1);
|
||||||
}
|
}
|
||||||
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2)
|
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2)
|
||||||
{
|
{
|
||||||
sub_81C0A8C(taskId, 1);
|
ChangePage(taskId, 1);
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & A_BUTTON)
|
else if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1454,7 +1459,7 @@ static void sub_81C0510(u8 taskId)
|
|||||||
{
|
{
|
||||||
sub_81C48F0();
|
sub_81C48F0();
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_81C044C(taskId);
|
BeginCloseSummaryScreen(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1467,12 +1472,12 @@ static void sub_81C0510(u8 taskId)
|
|||||||
{
|
{
|
||||||
sub_81C48F0();
|
sub_81C48F0();
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_81C044C(taskId);
|
BeginCloseSummaryScreen(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C0604(u8 taskId, s8 a)
|
static void ChangePokemon(u8 taskId, s8 a)
|
||||||
{
|
{
|
||||||
s8 r4_2;
|
s8 r4_2;
|
||||||
|
|
||||||
@ -1510,7 +1515,7 @@ static void sub_81C0604(u8 taskId, s8 a)
|
|||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
if (pssData->summary.unk7 != 0)
|
if (pssData->summary.unk7 != 0)
|
||||||
{
|
{
|
||||||
sub_81C4204(2, 1);
|
SetSpriteInvisibility(2, 1);
|
||||||
ClearWindowTilemap(13);
|
ClearWindowTilemap(13);
|
||||||
schedule_bg_copy_tilemap_to_vram(0);
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
sub_81C2074(0, 2);
|
sub_81C2074(0, 2);
|
||||||
@ -1559,7 +1564,7 @@ static void sub_81C0704(u8 taskId)
|
|||||||
data[1] = 0;
|
data[1] = 0;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
pssData->spriteIds[0] = sub_81C45F4(&pssData->currentMon, &data[1]);
|
pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &data[1]);
|
||||||
if (pssData->spriteIds[0] == 0xFF)
|
if (pssData->spriteIds[0] == 0xFF)
|
||||||
return;
|
return;
|
||||||
gSprites[pssData->spriteIds[0]].data[2] = 1;
|
gSprites[pssData->spriteIds[0]].data[2] = 1;
|
||||||
@ -1567,13 +1572,13 @@ static void sub_81C0704(u8 taskId)
|
|||||||
data[1] = 0;
|
data[1] = 0;
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
sub_81C4280();
|
SetTypeIcons();
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
sub_81C25E8();
|
sub_81C25E8();
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
sub_81C2D9C(pssData->currPageIndex);
|
PrintPageSpecificText(pssData->currPageIndex);
|
||||||
sub_81C2524();
|
sub_81C2524();
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
@ -1583,7 +1588,7 @@ static void sub_81C0704(u8 taskId)
|
|||||||
if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0)
|
if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0)
|
||||||
{
|
{
|
||||||
data[0] = 0;
|
data[0] = 0;
|
||||||
gTasks[taskId].func = sub_81C0510;
|
gTasks[taskId].func = HandleInput;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1656,7 +1661,7 @@ static bool8 sub_81C0A50(struct Pokemon* mon)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C0A8C(u8 taskId, s8 b)
|
static void ChangePage(u8 taskId, s8 b)
|
||||||
{
|
{
|
||||||
struct PokeSummary *summary = &pssData->summary;
|
struct PokeSummary *summary = &pssData->summary;
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
@ -1669,15 +1674,15 @@ static void sub_81C0A8C(u8 taskId, s8 b)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_81C2C38(pssData->currPageIndex);
|
ClearPageWindowTilemaps(pssData->currPageIndex);
|
||||||
pssData->currPageIndex += b;
|
pssData->currPageIndex += b;
|
||||||
data[0] = 0;
|
data[0] = 0;
|
||||||
if (b == 1)
|
if (b == 1)
|
||||||
SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func);
|
SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func);
|
||||||
else
|
else
|
||||||
SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func);
|
SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func);
|
||||||
sub_81C2DE4(pssData->currPageIndex);
|
CreateTextPrinterTask(pssData->currPageIndex);
|
||||||
sub_81C424C();
|
HidePageSpecificSprites();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C0B8C(u8 taskId)
|
static void sub_81C0B8C(u8 taskId)
|
||||||
@ -1717,8 +1722,8 @@ static void sub_81C0C68(u8 taskId)
|
|||||||
data[1] = 0;
|
data[1] = 0;
|
||||||
data[0] = 0;
|
data[0] = 0;
|
||||||
sub_81C1BA0();
|
sub_81C1BA0();
|
||||||
sub_81C2AFC(pssData->currPageIndex);
|
CreatePageWindowTilemaps(pssData->currPageIndex);
|
||||||
sub_81C4280();
|
SetTypeIcons();
|
||||||
sub_81C0E24();
|
sub_81C0E24();
|
||||||
SwitchTaskToFollowupFunc(taskId);
|
SwitchTaskToFollowupFunc(taskId);
|
||||||
}
|
}
|
||||||
@ -1766,8 +1771,8 @@ static void sub_81C0D44(u8 taskId)
|
|||||||
data[1] = 0;
|
data[1] = 0;
|
||||||
data[0] = 0;
|
data[0] = 0;
|
||||||
sub_81C1BA0();
|
sub_81C1BA0();
|
||||||
sub_81C2AFC(pssData->currPageIndex);
|
CreatePageWindowTilemaps(pssData->currPageIndex);
|
||||||
sub_81C4280();
|
SetTypeIcons();
|
||||||
sub_81C0E24();
|
sub_81C0E24();
|
||||||
SwitchTaskToFollowupFunc(taskId);
|
SwitchTaskToFollowupFunc(taskId);
|
||||||
}
|
}
|
||||||
@ -1797,15 +1802,15 @@ static void sub_81C0E48(u8 taskId)
|
|||||||
sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0);
|
sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0);
|
||||||
PrintMoveDetails(move);
|
PrintMoveDetails(move);
|
||||||
PrintNewMoveDetailsOrCancelText();
|
PrintNewMoveDetailsOrCancelText();
|
||||||
sub_81C44F0();
|
SetNewMoveTypeIcon();
|
||||||
schedule_bg_copy_tilemap_to_vram(0);
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
schedule_bg_copy_tilemap_to_vram(1);
|
schedule_bg_copy_tilemap_to_vram(1);
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
sub_81C4AF8(8);
|
sub_81C4AF8(8);
|
||||||
gTasks[taskId].func = sub_81C0F44;
|
gTasks[taskId].func = HandleInput_MoveSelect;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C0F44(u8 taskId)
|
static void HandleInput_MoveSelect(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 id = taskId;
|
u8 id = taskId;
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
@ -1883,7 +1888,7 @@ static void sub_81C1070(s16 *a, s8 b, u8 *c)
|
|||||||
if (move != 0)
|
if (move != 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sub_81C240C(move);
|
DrawContestMoveHearts(move);
|
||||||
schedule_bg_copy_tilemap_to_vram(1);
|
schedule_bg_copy_tilemap_to_vram(1);
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
PrintMoveDetails(move);
|
PrintMoveDetails(move);
|
||||||
@ -1930,7 +1935,7 @@ static void sub_81C11F4(u8 taskId)
|
|||||||
schedule_bg_copy_tilemap_to_vram(0);
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
schedule_bg_copy_tilemap_to_vram(1);
|
schedule_bg_copy_tilemap_to_vram(1);
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
gTasks[taskId].func = sub_81C0510;
|
gTasks[taskId].func = HandleInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C129C(u8 taskId)
|
static void sub_81C129C(u8 taskId)
|
||||||
@ -2003,10 +2008,10 @@ static void sub_81C13B0(u8 taskId, bool8 b)
|
|||||||
|
|
||||||
move = pssData->summary.moves[pssData->firstMoveIndex];
|
move = pssData->summary.moves[pssData->firstMoveIndex];
|
||||||
PrintMoveDetails(move);
|
PrintMoveDetails(move);
|
||||||
sub_81C240C(move);
|
DrawContestMoveHearts(move);
|
||||||
schedule_bg_copy_tilemap_to_vram(1);
|
schedule_bg_copy_tilemap_to_vram(1);
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
gTasks[taskId].func = sub_81C0F44;
|
gTasks[taskId].func = HandleInput_MoveSelect;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2)
|
static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2)
|
||||||
@ -2081,7 +2086,7 @@ static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2
|
|||||||
|
|
||||||
static void sub_81C171C(u8 taskId)
|
static void sub_81C171C(u8 taskId)
|
||||||
{
|
{
|
||||||
sub_81C44F0();
|
SetNewMoveTypeIcon();
|
||||||
sub_81C4AF8(8);
|
sub_81C4AF8(8);
|
||||||
gTasks[taskId].func = sub_81C174C;
|
gTasks[taskId].func = sub_81C174C;
|
||||||
}
|
}
|
||||||
@ -2106,11 +2111,11 @@ static void sub_81C174C(u8 taskId)
|
|||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
|
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
|
||||||
{
|
{
|
||||||
sub_81C0A8C(taskId, -1);
|
ChangePage(taskId, -1);
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
|
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
|
||||||
{
|
{
|
||||||
sub_81C0A8C(taskId, 1);
|
ChangePage(taskId, 1);
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & A_BUTTON)
|
else if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
@ -2120,7 +2125,7 @@ static void sub_81C174C(u8 taskId)
|
|||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
gUnknown_0203CF21 = pssData->firstMoveIndex;
|
gUnknown_0203CF21 = pssData->firstMoveIndex;
|
||||||
gSpecialVar_0x8005 = gUnknown_0203CF21;
|
gSpecialVar_0x8005 = gUnknown_0203CF21;
|
||||||
sub_81C044C(taskId);
|
BeginCloseSummaryScreen(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2135,7 +2140,7 @@ static void sub_81C174C(u8 taskId)
|
|||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
gUnknown_0203CF21 = 4;
|
gUnknown_0203CF21 = 4;
|
||||||
gSpecialVar_0x8005 = 4;
|
gSpecialVar_0x8005 = 4;
|
||||||
sub_81C044C(taskId);
|
BeginCloseSummaryScreen(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2191,7 +2196,7 @@ static void sub_81C1940(u8 taskId)
|
|||||||
ClearWindowTilemap(13);
|
ClearWindowTilemap(13);
|
||||||
move = pssData->summary.moves[pssData->firstMoveIndex];
|
move = pssData->summary.moves[pssData->firstMoveIndex];
|
||||||
gTasks[taskId].func = sub_81C174C;
|
gTasks[taskId].func = sub_81C174C;
|
||||||
sub_81C0A8C(taskId, -1);
|
ChangePage(taskId, -1);
|
||||||
sub_81C1DA4(9, -2);
|
sub_81C1DA4(9, -2);
|
||||||
sub_81C1EFC(9, -2, move);
|
sub_81C1EFC(9, -2, move);
|
||||||
}
|
}
|
||||||
@ -2205,7 +2210,7 @@ static void sub_81C1940(u8 taskId)
|
|||||||
ClearWindowTilemap(13);
|
ClearWindowTilemap(13);
|
||||||
move = pssData->summary.moves[pssData->firstMoveIndex];
|
move = pssData->summary.moves[pssData->firstMoveIndex];
|
||||||
gTasks[taskId].func = sub_81C174C;
|
gTasks[taskId].func = sub_81C174C;
|
||||||
sub_81C0A8C(taskId, 1);
|
ChangePage(taskId, 1);
|
||||||
sub_81C1DA4(9, -2);
|
sub_81C1DA4(9, -2);
|
||||||
sub_81C1EFC(9, -2, move);
|
sub_81C1EFC(9, -2, move);
|
||||||
}
|
}
|
||||||
@ -2415,7 +2420,7 @@ static void sub_81C1F80(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (pssData->currPageIndex == 3 && FuncIsActiveTask(sub_81C0B8C) == 0)
|
if (pssData->currPageIndex == 3 && FuncIsActiveTask(sub_81C0B8C) == 0)
|
||||||
PutWindowTilemap(15);
|
PutWindowTilemap(15);
|
||||||
sub_81C240C(data[2]);
|
DrawContestMoveHearts(data[2]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2566,7 +2571,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused)
|
|||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C240C(u16 move)
|
static void DrawContestMoveHearts(u16 move)
|
||||||
{
|
{
|
||||||
u16 *tilemap = pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1];
|
u16 *tilemap = pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1];
|
||||||
u8 i;
|
u8 i;
|
||||||
@ -2618,7 +2623,7 @@ static void sub_81C2524(void)
|
|||||||
ChangeBgX(3, 0, 0);
|
ChangeBgX(3, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C2554(void)
|
static void ResetWindows(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
InitWindows(gUnknown_0861CC24);
|
InitWindows(gUnknown_0861CC24);
|
||||||
@ -2628,7 +2633,7 @@ static void sub_81C2554(void)
|
|||||||
{
|
{
|
||||||
FillWindowPixelBuffer(i, 0);
|
FillWindowPixelBuffer(i, 0);
|
||||||
}
|
}
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++)
|
||||||
{
|
{
|
||||||
pssData->windowIds[i] = 0xFF;
|
pssData->windowIds[i] = 0xFF;
|
||||||
}
|
}
|
||||||
@ -2782,7 +2787,7 @@ static void PrintPageNamesAndStatsPageToWindows(void)
|
|||||||
SummaryScreen_PrintTextOnWindow(15, gText_Jam, 0, 17, 0, 1);
|
SummaryScreen_PrintTextOnWindow(15, gText_Jam, 0, 17, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C2AFC(u8 a)
|
static void CreatePageWindowTilemaps(u8 page)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
@ -2791,22 +2796,22 @@ static void sub_81C2AFC(u8 a)
|
|||||||
ClearWindowTilemap(2);
|
ClearWindowTilemap(2);
|
||||||
ClearWindowTilemap(3);
|
ClearWindowTilemap(3);
|
||||||
|
|
||||||
switch (a)
|
switch (page)
|
||||||
{
|
{
|
||||||
case 0:
|
case PSS_PAGE_INFO:
|
||||||
PutWindowTilemap(0);
|
PutWindowTilemap(0);
|
||||||
PutWindowTilemap(4);
|
PutWindowTilemap(4);
|
||||||
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE)
|
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE)
|
||||||
PutWindowTilemap(8);
|
PutWindowTilemap(8);
|
||||||
PutWindowTilemap(9);
|
PutWindowTilemap(9);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case PSS_PAGE_SKILLS:
|
||||||
PutWindowTilemap(1);
|
PutWindowTilemap(1);
|
||||||
PutWindowTilemap(10);
|
PutWindowTilemap(10);
|
||||||
PutWindowTilemap(11);
|
PutWindowTilemap(11);
|
||||||
PutWindowTilemap(12);
|
PutWindowTilemap(12);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case PSS_PAGE_BATTLE_MOVES:
|
||||||
PutWindowTilemap(2);
|
PutWindowTilemap(2);
|
||||||
if (pssData->mode == PSS_MODE_SELECT_MOVE)
|
if (pssData->mode == PSS_MODE_SELECT_MOVE)
|
||||||
{
|
{
|
||||||
@ -2818,7 +2823,7 @@ static void sub_81C2AFC(u8 a)
|
|||||||
PutWindowTilemap(5);
|
PutWindowTilemap(5);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case PSS_PAGE_CONTEST_MOVES:
|
||||||
PutWindowTilemap(3);
|
PutWindowTilemap(3);
|
||||||
if (pssData->mode == PSS_MODE_SELECT_MOVE)
|
if (pssData->mode == PSS_MODE_SELECT_MOVE)
|
||||||
{
|
{
|
||||||
@ -2832,7 +2837,7 @@ static void sub_81C2AFC(u8 a)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++)
|
||||||
{
|
{
|
||||||
PutWindowTilemap(pssData->windowIds[i]);
|
PutWindowTilemap(pssData->windowIds[i]);
|
||||||
}
|
}
|
||||||
@ -2840,23 +2845,23 @@ static void sub_81C2AFC(u8 a)
|
|||||||
schedule_bg_copy_tilemap_to_vram(0);
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C2C38(u8 a)
|
static void ClearPageWindowTilemaps(u8 page)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
switch (a)
|
switch (page)
|
||||||
{
|
{
|
||||||
case 0:
|
case PSS_PAGE_INFO:
|
||||||
ClearWindowTilemap(4);
|
ClearWindowTilemap(4);
|
||||||
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE)
|
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE)
|
||||||
ClearWindowTilemap(8);
|
ClearWindowTilemap(8);
|
||||||
ClearWindowTilemap(9);
|
ClearWindowTilemap(9);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case PSS_PAGE_SKILLS:
|
||||||
ClearWindowTilemap(10);
|
ClearWindowTilemap(10);
|
||||||
ClearWindowTilemap(11);
|
ClearWindowTilemap(11);
|
||||||
ClearWindowTilemap(12);
|
ClearWindowTilemap(12);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case PSS_PAGE_BATTLE_MOVES:
|
||||||
if (pssData->mode == PSS_MODE_SELECT_MOVE)
|
if (pssData->mode == PSS_MODE_SELECT_MOVE)
|
||||||
{
|
{
|
||||||
if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES)
|
if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES)
|
||||||
@ -2867,7 +2872,7 @@ static void sub_81C2C38(u8 a)
|
|||||||
ClearWindowTilemap(5);
|
ClearWindowTilemap(5);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case PSS_PAGE_CONTEST_MOVES:
|
||||||
if (pssData->mode == PSS_MODE_SELECT_MOVE)
|
if (pssData->mode == PSS_MODE_SELECT_MOVE)
|
||||||
{
|
{
|
||||||
if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES)
|
if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES)
|
||||||
@ -2880,7 +2885,7 @@ static void sub_81C2C38(u8 a)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++)
|
||||||
{
|
{
|
||||||
SummaryScreen_RemoveWindowByIndex(i);
|
SummaryScreen_RemoveWindowByIndex(i);
|
||||||
}
|
}
|
||||||
@ -2910,23 +2915,23 @@ static void SummaryScreen_RemoveWindowByIndex(u8 windowIndex)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C2D9C(u8 pageIndex)
|
static void PrintPageSpecificText(u8 pageIndex)
|
||||||
{
|
{
|
||||||
u16 i;
|
u16 i;
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++)
|
||||||
{
|
{
|
||||||
if (pssData->windowIds[i] != 0xFF)
|
if (pssData->windowIds[i] != 0xFF)
|
||||||
FillWindowPixelBuffer(pssData->windowIds[i], 0);
|
FillWindowPixelBuffer(pssData->windowIds[i], 0);
|
||||||
}
|
}
|
||||||
gUnknown_0861CE54[pageIndex]();
|
sTextPrinterFunctions[pageIndex]();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C2DE4(u8 pageIndex)
|
static void CreateTextPrinterTask(u8 pageIndex)
|
||||||
{
|
{
|
||||||
CreateTask(gUnknown_0861CE64[pageIndex], 16);
|
CreateTask(sTextPrinterTasks[pageIndex], 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C2E00(void)
|
static void PrintInfoPageText(void)
|
||||||
{
|
{
|
||||||
if (pssData->summary.isEgg)
|
if (pssData->summary.isEgg)
|
||||||
{
|
{
|
||||||
@ -2946,7 +2951,7 @@ static void sub_81C2E00(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C2E40(u8 taskId)
|
static void Task_PrintInfoPage(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
switch (data[0])
|
switch (data[0])
|
||||||
@ -3074,7 +3079,7 @@ static void PrintMonTrainerMemo(void)
|
|||||||
|
|
||||||
static void BufferNatureString(void)
|
static void BufferNatureString(void)
|
||||||
{
|
{
|
||||||
struct UnkSummaryStruct *sumStruct = pssData;
|
struct PssData *sumStruct = pssData;
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gText_EmptyString5);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gText_EmptyString5);
|
||||||
}
|
}
|
||||||
@ -3200,7 +3205,7 @@ static void PrintEggMemo(void)
|
|||||||
SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0);
|
SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C3530(void)
|
static void PrintSkillsPageText(void)
|
||||||
{
|
{
|
||||||
PrintHeldItemName();
|
PrintHeldItemName();
|
||||||
PrintRibbonCount();
|
PrintRibbonCount();
|
||||||
@ -3211,7 +3216,7 @@ static void sub_81C3530(void)
|
|||||||
PrintExpPointsNextLevel();
|
PrintExpPointsNextLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C3554(u8 taskId)
|
static void Task_PrintSkillsPage(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
|
|
||||||
@ -3357,7 +3362,7 @@ static void PrintExpPointsNextLevel(void)
|
|||||||
SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 17, 0, 0);
|
SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 17, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C3984(void)
|
static void PrintBattleMoves(void)
|
||||||
{
|
{
|
||||||
PrintMoveNameAndPP(0);
|
PrintMoveNameAndPP(0);
|
||||||
PrintMoveNameAndPP(1);
|
PrintMoveNameAndPP(1);
|
||||||
@ -3379,7 +3384,7 @@ static void sub_81C3984(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C39F0(u8 taskId)
|
static void Task_PrintBattleMoves(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
|
|
||||||
@ -3430,7 +3435,7 @@ static void PrintMoveNameAndPP(u8 moveIndex)
|
|||||||
u32 ppState;
|
u32 ppState;
|
||||||
const u8 *text;
|
const u8 *text;
|
||||||
u32 offset;
|
u32 offset;
|
||||||
struct UnkSummaryStruct *summaryStruct = pssData;
|
struct PssData *summaryStruct = pssData;
|
||||||
u8 moveNameWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0);
|
u8 moveNameWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0);
|
||||||
u8 ppValueWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 1);
|
u8 ppValueWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 1);
|
||||||
u16 move = summaryStruct->summary.moves[moveIndex];
|
u16 move = summaryStruct->summary.moves[moveIndex];
|
||||||
@ -3493,7 +3498,7 @@ static void PrintMovePowerAndAccuracy(u16 moveIndex)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C3D08(void)
|
static void PrintContestMoves(void)
|
||||||
{
|
{
|
||||||
PrintMoveNameAndPP(0);
|
PrintMoveNameAndPP(0);
|
||||||
PrintMoveNameAndPP(1);
|
PrintMoveNameAndPP(1);
|
||||||
@ -3507,7 +3512,7 @@ static void sub_81C3D08(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C3D54(u8 taskId)
|
static void Task_PrintContestMoves(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
s16 dataa = data[0] - 1;
|
s16 dataa = data[0] - 1;
|
||||||
@ -3641,11 +3646,11 @@ static void PrintHMMovesCantBeForgotten(void)
|
|||||||
SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0);
|
SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C4190(void)
|
static void ResetSpriteIds(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
for (i = 0; i < 28; i++)
|
for (i = 0; i < ARRAY_COUNT(pssData->spriteIds); i++)
|
||||||
{
|
{
|
||||||
pssData->spriteIds[i] = 0xFF;
|
pssData->spriteIds[i] = 0xFF;
|
||||||
}
|
}
|
||||||
@ -3660,41 +3665,42 @@ static void DestroySpriteInArray(u8 spriteArrayId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C4204(u8 spriteArrayId, bool8 invisible)
|
static void SetSpriteInvisibility(u8 spriteArrayId, bool8 invisible)
|
||||||
{
|
{
|
||||||
gSprites[pssData->spriteIds[spriteArrayId]].invisible = invisible;
|
gSprites[pssData->spriteIds[spriteArrayId]].invisible = invisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C424C(void)
|
static void HidePageSpecificSprites(void)
|
||||||
{
|
{
|
||||||
|
// Keeps Pokémon, caught ball and status sprites visible.
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
for (i = 3; i < 28; i++)
|
for (i = 3; i < ARRAY_COUNT(pssData->spriteIds); i++)
|
||||||
{
|
{
|
||||||
if (pssData->spriteIds[i] != 0xFF)
|
if (pssData->spriteIds[i] != 0xFF)
|
||||||
sub_81C4204(i, TRUE);
|
SetSpriteInvisibility(i, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C4280(void)
|
static void SetTypeIcons(void)
|
||||||
{
|
{
|
||||||
switch (pssData->currPageIndex)
|
switch (pssData->currPageIndex)
|
||||||
{
|
{
|
||||||
case 0:
|
case PSS_PAGE_INFO:
|
||||||
sub_81C43A0();
|
SetMonTypeIcons();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case PSS_PAGE_BATTLE_MOVES:
|
||||||
sub_81C4420();
|
SetMoveTypeIcons();
|
||||||
sub_81C44F0();
|
SetNewMoveTypeIcon();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case PSS_PAGE_CONTEST_MOVES:
|
||||||
sub_81C4484();
|
SetContestMoveTypeIcons();
|
||||||
sub_81C44F0();
|
SetNewMoveTypeIcon();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C42C8(void)
|
static void CreateMoveTypeIcons(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
@ -3703,7 +3709,7 @@ static void sub_81C42C8(void)
|
|||||||
if (pssData->spriteIds[i] == 0xFF)
|
if (pssData->spriteIds[i] == 0xFF)
|
||||||
pssData->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2);
|
pssData->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2);
|
||||||
|
|
||||||
sub_81C4204(i, TRUE);
|
SetSpriteInvisibility(i, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3714,16 +3720,16 @@ static void SetMoveTypeSpritePosAndType(u8 typeId, u8 x, u8 y, u8 spriteArrayId)
|
|||||||
sprite->oam.paletteNum = sMoveTypeToOamPaletteNum[typeId];
|
sprite->oam.paletteNum = sMoveTypeToOamPaletteNum[typeId];
|
||||||
sprite->pos1.x = x + 16;
|
sprite->pos1.x = x + 16;
|
||||||
sprite->pos1.y = y + 8;
|
sprite->pos1.y = y + 8;
|
||||||
sub_81C4204(spriteArrayId, FALSE);
|
SetSpriteInvisibility(spriteArrayId, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C43A0(void)
|
static void SetMonTypeIcons(void)
|
||||||
{
|
{
|
||||||
struct PokeSummary *summary = &pssData->summary;
|
struct PokeSummary *summary = &pssData->summary;
|
||||||
if (summary->isEgg)
|
if (summary->isEgg)
|
||||||
{
|
{
|
||||||
SetMoveTypeSpritePosAndType(TYPE_MYSTERY, 120, 48, 3);
|
SetMoveTypeSpritePosAndType(TYPE_MYSTERY, 120, 48, 3);
|
||||||
sub_81C4204(4, TRUE);
|
SetSpriteInvisibility(4, TRUE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3731,16 +3737,16 @@ static void sub_81C43A0(void)
|
|||||||
if (gBaseStats[summary->species].type1 != gBaseStats[summary->species].type2)
|
if (gBaseStats[summary->species].type1 != gBaseStats[summary->species].type2)
|
||||||
{
|
{
|
||||||
SetMoveTypeSpritePosAndType(gBaseStats[summary->species].type2, 0xA0, 0x30, 4);
|
SetMoveTypeSpritePosAndType(gBaseStats[summary->species].type2, 0xA0, 0x30, 4);
|
||||||
sub_81C4204(4, FALSE);
|
SetSpriteInvisibility(4, FALSE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_81C4204(4, TRUE);
|
SetSpriteInvisibility(4, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C4420(void)
|
static void SetMoveTypeIcons(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
struct PokeSummary *summary = &pssData->summary;
|
struct PokeSummary *summary = &pssData->summary;
|
||||||
@ -3749,11 +3755,11 @@ static void sub_81C4420(void)
|
|||||||
if (summary->moves[i] != MOVE_NONE)
|
if (summary->moves[i] != MOVE_NONE)
|
||||||
SetMoveTypeSpritePosAndType(gBattleMoves[summary->moves[i]].type, 0x55, 0x20 + (i * 0x10), i + 3);
|
SetMoveTypeSpritePosAndType(gBattleMoves[summary->moves[i]].type, 0x55, 0x20 + (i * 0x10), i + 3);
|
||||||
else
|
else
|
||||||
sub_81C4204(i + 3, TRUE);
|
SetSpriteInvisibility(i + 3, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C4484(void)
|
static void SetContestMoveTypeIcons(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
struct PokeSummary *summary = &pssData->summary;
|
struct PokeSummary *summary = &pssData->summary;
|
||||||
@ -3762,15 +3768,15 @@ static void sub_81C4484(void)
|
|||||||
if (summary->moves[i] != MOVE_NONE)
|
if (summary->moves[i] != MOVE_NONE)
|
||||||
SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[summary->moves[i]].contestCategory, 0x55, 0x20 + (i * 0x10), i + 3);
|
SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[summary->moves[i]].contestCategory, 0x55, 0x20 + (i * 0x10), i + 3);
|
||||||
else
|
else
|
||||||
sub_81C4204(i + 3, TRUE);
|
SetSpriteInvisibility(i + 3, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C44F0(void)
|
static void SetNewMoveTypeIcon(void)
|
||||||
{
|
{
|
||||||
if (pssData->newMove == MOVE_NONE)
|
if (pssData->newMove == MOVE_NONE)
|
||||||
{
|
{
|
||||||
sub_81C4204(7, TRUE);
|
SetSpriteInvisibility(7, TRUE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3800,7 +3806,7 @@ static void sub_81C4568(u8 a0, u8 a1)
|
|||||||
sprite2->animEnded = FALSE;
|
sprite2->animEnded = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 sub_81C45F4(struct Pokemon *mon, s16 *a1)
|
static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1)
|
||||||
{
|
{
|
||||||
const struct CompressedSpritePalette *pal;
|
const struct CompressedSpritePalette *pal;
|
||||||
struct PokeSummary *summary = &pssData->summary;
|
struct PokeSummary *summary = &pssData->summary;
|
||||||
@ -3847,17 +3853,17 @@ static u8 sub_81C45F4(struct Pokemon *mon, s16 *a1)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
(*a1)++;
|
(*a1)++;
|
||||||
return -1;
|
return 0xFF;
|
||||||
case 1:
|
case 1:
|
||||||
pal = GetMonSpritePalStructFromOtIdPersonality(summary->species2, summary->OTID, summary->pid);
|
pal = GetMonSpritePalStructFromOtIdPersonality(summary->species2, summary->OTID, summary->pid);
|
||||||
LoadCompressedSpritePalette(pal);
|
LoadCompressedSpritePalette(pal);
|
||||||
SetMultiuseSpriteTemplateToPokemon(pal->tag, 1);
|
SetMultiuseSpriteTemplateToPokemon(pal->tag, 1);
|
||||||
(*a1)++;
|
(*a1)++;
|
||||||
return -1;
|
return 0xFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C4778(void)
|
static void PlayMonCry(void)
|
||||||
{
|
{
|
||||||
struct PokeSummary *summary = &pssData->summary;
|
struct PokeSummary *summary = &pssData->summary;
|
||||||
if (!summary->isEgg)
|
if (!summary->isEgg)
|
||||||
@ -3883,7 +3889,7 @@ static u8 sub_81C47B4(struct Pokemon *unused)
|
|||||||
|
|
||||||
sprite->data[0] = summary->species2;
|
sprite->data[0] = summary->species2;
|
||||||
sprite->data[2] = 0;
|
sprite->data[2] = 0;
|
||||||
gSprites[spriteId].callback = sub_81C4844;
|
gSprites[spriteId].callback = SpriteCB_Pokemon;
|
||||||
sprite->oam.priority = 0;
|
sprite->oam.priority = 0;
|
||||||
|
|
||||||
if (!IsMonSpriteNotFlipped(summary->species2))
|
if (!IsMonSpriteNotFlipped(summary->species2))
|
||||||
@ -3898,14 +3904,14 @@ static u8 sub_81C47B4(struct Pokemon *unused)
|
|||||||
return spriteId;
|
return spriteId;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C4844(struct Sprite *sprite)
|
static void SpriteCB_Pokemon(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
struct PokeSummary *summary = &pssData->summary;
|
struct PokeSummary *summary = &pssData->summary;
|
||||||
|
|
||||||
if (!gPaletteFade.active && sprite->data[2] != 1)
|
if (!gPaletteFade.active && sprite->data[2] != 1)
|
||||||
{
|
{
|
||||||
sprite->data[1] = IsMonSpriteNotFlipped(sprite->data[0]);
|
sprite->data[1] = IsMonSpriteNotFlipped(sprite->data[0]);
|
||||||
sub_81C4778();
|
PlayMonCry();
|
||||||
PokemonSummaryDoMonAnimation(sprite, sprite->data[0], summary->isEgg);
|
PokemonSummaryDoMonAnimation(sprite, sprite->data[0], summary->isEgg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4000,11 +4006,11 @@ static void CreateSetStatusSprite(void)
|
|||||||
if (anim != 0)
|
if (anim != 0)
|
||||||
{
|
{
|
||||||
StartSpriteAnim(&gSprites[*spriteId], anim - 1);
|
StartSpriteAnim(&gSprites[*spriteId], anim - 1);
|
||||||
sub_81C4204(2, FALSE);
|
SetSpriteInvisibility(2, FALSE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_81C4204(2, TRUE);
|
SetSpriteInvisibility(2, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user