mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-08-22 17:35:26 -05:00
Summary screen documentation - sheen sprites and windows
This commit is contained in:
@@ -164,7 +164,20 @@ enum PSSSprite {
|
||||
PSS_SPRITE_MARKING_HEART,
|
||||
PSS_SPRITE_MARKING_STAR,
|
||||
PSS_SPRITE_MARKING_DIAMOND,
|
||||
|
||||
PSS_SHEEN_SPRITES_START,
|
||||
PSS_SPRITE_SHEEN_1 = PSS_SHEEN_SPRITES_START,
|
||||
PSS_SPRITE_SHEEN_2,
|
||||
PSS_SPRITE_SHEEN_3,
|
||||
PSS_SPRITE_SHEEN_4,
|
||||
PSS_SPRITE_SHEEN_5,
|
||||
PSS_SPRITE_SHEEN_6,
|
||||
PSS_SPRITE_SHEEN_7,
|
||||
PSS_SPRITE_SHEEN_8,
|
||||
PSS_SPRITE_SHEEN_9,
|
||||
PSS_SPRITE_SHEEN_10,
|
||||
PSS_SPRITE_SHEEN_11,
|
||||
PSS_SPRITE_SHEEN_12,
|
||||
PSS_SHEEN_SPRITES_END = PSS_SPRITE_SHEEN_12,
|
||||
PSS_SPRITE_A_BUTTON = 47,
|
||||
|
||||
PSS_SPRITE_SHINY_ICON = 53,
|
||||
@@ -203,7 +216,8 @@ enum PSSPoffinFeedMsg {
|
||||
#define PSS_MOVE_NONE -1
|
||||
#define PSS_SUBSCREEN_BUTTON_NONE 0xFF
|
||||
|
||||
#define MAX_MARKINGS 6
|
||||
#define MAX_MARKINGS 6
|
||||
#define MAX_SHEEN_SPRITES PSS_SHEEN_SPRITES_END - PSS_SHEEN_SPRITES_START + 1
|
||||
|
||||
#define POINTS_PER_APPEAL_HEART 10
|
||||
#define MAX_APPEAL_HEARTS 6
|
||||
|
||||
@@ -20,7 +20,7 @@ void sub_0208F22C(PokemonSummaryScreen *param0, u8 param1, u8 param2);
|
||||
void PokemonSummaryScreen_UpdateMoveCategoryIcon(PokemonSummaryScreen *summaryScreen, u32 move);
|
||||
void PokemonSummaryScreen_UpdateMoveSelectorPos(PokemonSummaryScreen *summaryScreen);
|
||||
void PokemonSummaryScreen_SetMoveSelector2Pos(PokemonSummaryScreen *summaryScreen);
|
||||
void sub_0208F34C(PokemonSummaryScreen *param0);
|
||||
void PokemonSummaryScreen_InitSheenSprites(PokemonSummaryScreen *summaryScreen);
|
||||
void PokemonSummaryScreen_DrawSheenSprites(PokemonSummaryScreen *summaryScreen);
|
||||
void PokemonSummaryScreen_UpdateMiscMonDataSprites(PokemonSummaryScreen *summaryScreen);
|
||||
void sub_0208F600(PokemonSummaryScreen *param0);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "applications/pokemon_summary_screen/main.h"
|
||||
|
||||
void sub_0208FCF8(PokemonSummaryScreen *param0);
|
||||
void sub_0208FD40(PokemonSummaryScreen *param0);
|
||||
void PokemonSummaryScreen_AddExtraWindows(PokemonSummaryScreen *summaryScreen);
|
||||
void PokemonSummaryScreen_RemoveExtraWindows(PokemonSummaryScreen *summaryScreen);
|
||||
void PokemonSummaryScreen_RemoveWindows(PokemonSummaryScreen *summaryScreen);
|
||||
void sub_0208FEA4(PokemonSummaryScreen *param0);
|
||||
|
||||
@@ -932,7 +932,7 @@ static int SetupPoffinFeedConditionPage(PokemonSummaryScreen *summaryScreen)
|
||||
return PSS_STATE_WAIT_FINISH_POFFIN_FEED;
|
||||
} else {
|
||||
sub_02091D50(summaryScreen);
|
||||
sub_0208F34C(summaryScreen);
|
||||
PokemonSummaryScreen_InitSheenSprites(summaryScreen);
|
||||
sub_0208F6A4(summaryScreen);
|
||||
return PSS_STATE_PRINT_CONTEST_STAT_MSGS;
|
||||
}
|
||||
@@ -1157,8 +1157,8 @@ static void SetupInitialPageGfx(PokemonSummaryScreen *summaryScreen)
|
||||
PokemonSummaryScreen_UpdateRibbonSprites(summaryScreen);
|
||||
PokemonSummaryScreen_SetPageArrowsPos(summaryScreen);
|
||||
PokemonSummaryScreen_UpdateMiscMonDataSprites(summaryScreen);
|
||||
sub_0208F34C(summaryScreen);
|
||||
sub_0208FD40(summaryScreen);
|
||||
PokemonSummaryScreen_InitSheenSprites(summaryScreen);
|
||||
PokemonSummaryScreen_AddExtraWindows(summaryScreen);
|
||||
sub_020904C4(summaryScreen);
|
||||
LoadCurrentPageTilemap(summaryScreen);
|
||||
sub_020919E8(summaryScreen);
|
||||
@@ -1243,8 +1243,8 @@ static void SetupPageFromSubscreenButton(PokemonSummaryScreen *summaryScreen, u8
|
||||
PokemonSummaryScreen_SetPageArrowsPos(summaryScreen);
|
||||
PokemonSummaryScreen_UpdateTypeIcons(summaryScreen);
|
||||
PokemonSummaryScreen_UpdateRibbonSprites(summaryScreen);
|
||||
sub_0208F34C(summaryScreen);
|
||||
sub_0208FD40(summaryScreen);
|
||||
PokemonSummaryScreen_InitSheenSprites(summaryScreen);
|
||||
PokemonSummaryScreen_AddExtraWindows(summaryScreen);
|
||||
sub_0208FB54(summaryScreen, 0);
|
||||
|
||||
Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_1, 0, 14, 4, 19, 20, 0);
|
||||
@@ -1446,7 +1446,7 @@ static void ChangeSummaryMon(PokemonSummaryScreen *summaryScreen, s8 delta)
|
||||
sub_0208F71C(summaryScreen);
|
||||
sub_0208EE3C(summaryScreen);
|
||||
sub_0208EE9C(summaryScreen);
|
||||
sub_0208F34C(summaryScreen);
|
||||
PokemonSummaryScreen_InitSheenSprites(summaryScreen);
|
||||
PokemonSummaryScreen_UpdateMiscMonDataSprites(summaryScreen);
|
||||
sub_020904C4(summaryScreen);
|
||||
}
|
||||
|
||||
@@ -494,25 +494,23 @@ void PokemonSummaryScreen_SetMoveSelector2Pos(PokemonSummaryScreen *summaryScree
|
||||
CellActor_SetDrawFlag(summaryScreen->sprites[PSS_SPRITE_MOVE_SELECTOR_2], TRUE);
|
||||
}
|
||||
|
||||
void sub_0208F34C(PokemonSummaryScreen *param0)
|
||||
void PokemonSummaryScreen_InitSheenSprites(PokemonSummaryScreen *summaryScreen)
|
||||
{
|
||||
u32 v0;
|
||||
summaryScreen->sheenState = 0;
|
||||
summaryScreen->sheenCount = 0;
|
||||
summaryScreen->sheenPos = 0;
|
||||
|
||||
param0->sheenState = 0;
|
||||
param0->sheenCount = 0;
|
||||
param0->sheenPos = 0;
|
||||
|
||||
if (param0->monData.sheen == 0) {
|
||||
param0->sheenMax = 0;
|
||||
} else if (param0->monData.sheen == 255) {
|
||||
param0->sheenMax = 12;
|
||||
if (summaryScreen->monData.sheen == 0) {
|
||||
summaryScreen->sheenMax = 0;
|
||||
} else if (summaryScreen->monData.sheen == MAX_POKEMON_SHEEN) {
|
||||
summaryScreen->sheenMax = MAX_SHEEN_SPRITES;
|
||||
} else {
|
||||
param0->sheenMax = (((12 << 8) / 255) * param0->monData.sheen) >> 8;
|
||||
summaryScreen->sheenMax = (((MAX_SHEEN_SPRITES << 8) / MAX_POKEMON_SHEEN) * summaryScreen->monData.sheen) >> 8;
|
||||
}
|
||||
|
||||
for (v0 = 29; v0 <= 40; v0++) {
|
||||
CellActor_SetDrawFlag(param0->sprites[v0], 0);
|
||||
SpriteActor_SetAnimFrame(param0->sprites[v0], 0);
|
||||
for (u32 spriteIndex = PSS_SHEEN_SPRITES_START; spriteIndex <= PSS_SHEEN_SPRITES_END; spriteIndex++) {
|
||||
CellActor_SetDrawFlag(summaryScreen->sprites[spriteIndex], FALSE);
|
||||
SpriteActor_SetAnimFrame(summaryScreen->sprites[spriteIndex], 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -540,9 +538,9 @@ void PokemonSummaryScreen_DrawSheenSprites(PokemonSummaryScreen *summaryScreen)
|
||||
break;
|
||||
case 1:
|
||||
if (summaryScreen->sheenCount == 0) {
|
||||
CellActor_SetDrawFlag(summaryScreen->sprites[29 + summaryScreen->sheenPos], TRUE);
|
||||
SpriteActor_SetAnimFrame(summaryScreen->sprites[29 + summaryScreen->sheenPos], FALSE);
|
||||
CellActor_SetAnim(summaryScreen->sprites[29 + summaryScreen->sheenPos], FALSE);
|
||||
CellActor_SetDrawFlag(summaryScreen->sprites[PSS_SHEEN_SPRITES_START + summaryScreen->sheenPos], TRUE);
|
||||
SpriteActor_SetAnimFrame(summaryScreen->sprites[PSS_SHEEN_SPRITES_START + summaryScreen->sheenPos], FALSE);
|
||||
CellActor_SetAnim(summaryScreen->sprites[PSS_SHEEN_SPRITES_START + summaryScreen->sheenPos], FALSE);
|
||||
|
||||
summaryScreen->sheenPos++;
|
||||
|
||||
@@ -555,7 +553,7 @@ void PokemonSummaryScreen_DrawSheenSprites(PokemonSummaryScreen *summaryScreen)
|
||||
summaryScreen->sheenCount = (summaryScreen->sheenCount + 1) % 10;
|
||||
break;
|
||||
case 2:
|
||||
if (CellActor_GetDrawFlag(summaryScreen->sprites[29 + summaryScreen->sheenMax - 1]) == FALSE) {
|
||||
if (CellActor_GetDrawFlag(summaryScreen->sprites[PSS_SHEEN_SPRITES_START + summaryScreen->sheenMax - 1]) == FALSE) {
|
||||
summaryScreen->sheenCount = 0;
|
||||
summaryScreen->sheenState = 3;
|
||||
break;
|
||||
@@ -565,7 +563,7 @@ void PokemonSummaryScreen_DrawSheenSprites(PokemonSummaryScreen *summaryScreen)
|
||||
summaryScreen->sheenCount++;
|
||||
|
||||
if (summaryScreen->sheenCount == 32) {
|
||||
for (i = 29; i < 29 + summaryScreen->sheenMax; i++) {
|
||||
for (i = PSS_SHEEN_SPRITES_START; i < PSS_SHEEN_SPRITES_START + summaryScreen->sheenMax; i++) {
|
||||
CellActor_SetDrawFlag(summaryScreen->sprites[i], TRUE);
|
||||
SpriteActor_SetAnimFrame(summaryScreen->sprites[i], FALSE);
|
||||
CellActor_SetAnim(summaryScreen->sprites[i], FALSE);
|
||||
@@ -586,7 +584,7 @@ void PokemonSummaryScreen_DrawSheenSprites(PokemonSummaryScreen *summaryScreen)
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = 29; i < 29 + summaryScreen->sheenMax; i++) {
|
||||
for (i = PSS_SHEEN_SPRITES_START; i < PSS_SHEEN_SPRITES_START + summaryScreen->sheenMax; i++) {
|
||||
if (CellActor_GetDrawFlag(summaryScreen->sprites[i]) == FALSE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -150,53 +150,52 @@ void sub_0208FCF8(PokemonSummaryScreen *param0)
|
||||
sub_0208FFE0(param0);
|
||||
}
|
||||
|
||||
void sub_0208FD40(PokemonSummaryScreen *param0)
|
||||
void PokemonSummaryScreen_AddExtraWindows(PokemonSummaryScreen *summaryScreen)
|
||||
{
|
||||
const WindowTemplate *v0;
|
||||
u32 v1;
|
||||
const WindowTemplate *extraWindows;
|
||||
|
||||
switch (param0->page) {
|
||||
case 0:
|
||||
v0 = Unk_020F4E20;
|
||||
param0->numExtraWindows = 6;
|
||||
switch (summaryScreen->page) {
|
||||
case PSS_PAGE_INFO:
|
||||
extraWindows = Unk_020F4E20;
|
||||
summaryScreen->numExtraWindows = 6;
|
||||
break;
|
||||
case 1:
|
||||
v0 = Unk_020F4DB0;
|
||||
param0->numExtraWindows = 1;
|
||||
case PSS_PAGE_MEMO:
|
||||
extraWindows = Unk_020F4DB0;
|
||||
summaryScreen->numExtraWindows = 1;
|
||||
break;
|
||||
case 2:
|
||||
v0 = Unk_020F4E50;
|
||||
param0->numExtraWindows = 8;
|
||||
case PSS_PAGE_SKILLS:
|
||||
extraWindows = Unk_020F4E50;
|
||||
summaryScreen->numExtraWindows = 8;
|
||||
break;
|
||||
case 3:
|
||||
v0 = Unk_020F4E90;
|
||||
param0->numExtraWindows = 8;
|
||||
case PSS_PAGE_BATTLE_MOVES:
|
||||
extraWindows = Unk_020F4E90;
|
||||
summaryScreen->numExtraWindows = 8;
|
||||
break;
|
||||
case 5:
|
||||
v0 = Unk_020F4DF0;
|
||||
param0->numExtraWindows = 6;
|
||||
case PSS_PAGE_CONTEST_MOVES:
|
||||
extraWindows = Unk_020F4DF0;
|
||||
summaryScreen->numExtraWindows = 6;
|
||||
break;
|
||||
case 6:
|
||||
v0 = Unk_020F4DD0;
|
||||
param0->numExtraWindows = 4;
|
||||
case PSS_PAGE_RIBBONS:
|
||||
extraWindows = Unk_020F4DD0;
|
||||
summaryScreen->numExtraWindows = 4;
|
||||
break;
|
||||
case 4:
|
||||
case 7:
|
||||
if ((param0->data->mode != 3) && (param0->data->mode != 4)) {
|
||||
case PSS_PAGE_CONDITION:
|
||||
case PSS_PAGE_EXIT:
|
||||
if (summaryScreen->data->mode != PSS_MODE_POFFIN && summaryScreen->data->mode != PSS_MODE_CONDITION) {
|
||||
return;
|
||||
}
|
||||
|
||||
v0 = Unk_020F4DB8;
|
||||
param0->numExtraWindows = 3;
|
||||
extraWindows = Unk_020F4DB8;
|
||||
summaryScreen->numExtraWindows = 3;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
param0->extraWindows = Window_New(19, param0->numExtraWindows);
|
||||
summaryScreen->extraWindows = Window_New(HEAP_ID_POKEMON_SUMMARY_SCREEN, summaryScreen->numExtraWindows);
|
||||
|
||||
for (v1 = 0; v1 < param0->numExtraWindows; v1++) {
|
||||
Window_AddFromTemplate(param0->bgConfig, ¶m0->extraWindows[v1], &v0[v1]);
|
||||
for (u32 i = 0; i < summaryScreen->numExtraWindows; i++) {
|
||||
Window_AddFromTemplate(summaryScreen->bgConfig, &summaryScreen->extraWindows[i], &extraWindows[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,36 +411,36 @@ static void sub_020902B0(PokemonSummaryScreen *param0)
|
||||
sub_02090158(param0, 30, 182, TEXT_COLOR(1, 2, 0), 0);
|
||||
sub_02090158(param0, 31, 179, TEXT_COLOR(15, 14, 0), 0);
|
||||
}
|
||||
|
||||
void sub_020904C4(PokemonSummaryScreen *param0)
|
||||
// ravetodo PokemonSummaryScreen_DrawPageWindows?
|
||||
void sub_020904C4(PokemonSummaryScreen *summaryScreen)
|
||||
{
|
||||
Bg_FillTilemapRect(param0->bgConfig, 1, 0, 0, 0, 32, 2, 16);
|
||||
Bg_FillTilemapRect(param0->bgConfig, 1, 0, 14, 2, 18, 22, 16);
|
||||
Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_1, 0, 0, 0, 32, 2, 16);
|
||||
Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_1, 0, 14, 2, 18, 22, 16);
|
||||
|
||||
switch (param0->page) {
|
||||
case 0:
|
||||
sub_02090578(param0);
|
||||
switch (summaryScreen->page) {
|
||||
case PSS_PAGE_INFO:
|
||||
sub_02090578(summaryScreen);
|
||||
break;
|
||||
case 1:
|
||||
sub_020908CC(param0);
|
||||
case PSS_PAGE_MEMO:
|
||||
sub_020908CC(summaryScreen);
|
||||
break;
|
||||
case 2:
|
||||
sub_0209093C(param0);
|
||||
case PSS_PAGE_SKILLS:
|
||||
sub_0209093C(summaryScreen);
|
||||
break;
|
||||
case 4:
|
||||
sub_02090BDC(param0);
|
||||
case PSS_PAGE_CONDITION:
|
||||
sub_02090BDC(summaryScreen);
|
||||
break;
|
||||
case 3:
|
||||
sub_02090CD4(param0);
|
||||
case PSS_PAGE_BATTLE_MOVES:
|
||||
sub_02090CD4(summaryScreen);
|
||||
break;
|
||||
case 5:
|
||||
sub_02090D90(param0);
|
||||
case PSS_PAGE_CONTEST_MOVES:
|
||||
sub_02090D90(summaryScreen);
|
||||
break;
|
||||
case 6:
|
||||
sub_02090E4C(param0);
|
||||
case PSS_PAGE_RIBBONS:
|
||||
sub_02090E4C(summaryScreen);
|
||||
break;
|
||||
case 7:
|
||||
sub_02090EC8(param0);
|
||||
case PSS_PAGE_EXIT:
|
||||
sub_02090EC8(summaryScreen);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -250,35 +250,33 @@ static void sub_020918EC(PokemonSummaryScreen *param0)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_020919E8(PokemonSummaryScreen *param0)
|
||||
void sub_020919E8(PokemonSummaryScreen *summaryScreen)
|
||||
{
|
||||
u32 v0;
|
||||
|
||||
if (param0->page != 4) {
|
||||
if (summaryScreen->page != PSS_PAGE_CONDITION) {
|
||||
return;
|
||||
}
|
||||
|
||||
param0->unk_2F0[0].unk_00 = Unk_020F4FFC[0][3].unk_06;
|
||||
param0->unk_2F0[0].unk_06 = Unk_020F4FFC[0][3].unk_06;
|
||||
param0->unk_2F0[0].unk_0C = Unk_020F4FFC[0][3].unk_06;
|
||||
param0->unk_2F0[0].unk_12 = Unk_020F4FFC[0][3].unk_06;
|
||||
summaryScreen->unk_2F0[0].unk_00 = Unk_020F4FFC[0][3].unk_06;
|
||||
summaryScreen->unk_2F0[0].unk_06 = Unk_020F4FFC[0][3].unk_06;
|
||||
summaryScreen->unk_2F0[0].unk_0C = Unk_020F4FFC[0][3].unk_06;
|
||||
summaryScreen->unk_2F0[0].unk_12 = Unk_020F4FFC[0][3].unk_06;
|
||||
|
||||
param0->unk_2F0[1].unk_00 = Unk_020F4FFC[1][2].unk_06;
|
||||
param0->unk_2F0[1].unk_06 = Unk_020F4FFC[1][2].unk_06;
|
||||
param0->unk_2F0[1].unk_0C = Unk_020F4FFC[1][2].unk_06;
|
||||
param0->unk_2F0[1].unk_12 = Unk_020F4FFC[1][2].unk_06;
|
||||
summaryScreen->unk_2F0[1].unk_00 = Unk_020F4FFC[1][2].unk_06;
|
||||
summaryScreen->unk_2F0[1].unk_06 = Unk_020F4FFC[1][2].unk_06;
|
||||
summaryScreen->unk_2F0[1].unk_0C = Unk_020F4FFC[1][2].unk_06;
|
||||
summaryScreen->unk_2F0[1].unk_12 = Unk_020F4FFC[1][2].unk_06;
|
||||
|
||||
param0->unk_2F0[2].unk_00 = Unk_020F4FFC[2][1].unk_06;
|
||||
param0->unk_2F0[2].unk_06 = Unk_020F4FFC[2][1].unk_06;
|
||||
param0->unk_2F0[2].unk_0C = Unk_020F4FFC[2][1].unk_06;
|
||||
param0->unk_2F0[2].unk_12 = Unk_020F4FFC[2][1].unk_06;
|
||||
summaryScreen->unk_2F0[2].unk_00 = Unk_020F4FFC[2][1].unk_06;
|
||||
summaryScreen->unk_2F0[2].unk_06 = Unk_020F4FFC[2][1].unk_06;
|
||||
summaryScreen->unk_2F0[2].unk_0C = Unk_020F4FFC[2][1].unk_06;
|
||||
summaryScreen->unk_2F0[2].unk_12 = Unk_020F4FFC[2][1].unk_06;
|
||||
|
||||
param0->unk_2F0[3].unk_00 = Unk_020F4FFC[3][0].unk_06;
|
||||
param0->unk_2F0[3].unk_06 = Unk_020F4FFC[3][0].unk_06;
|
||||
param0->unk_2F0[3].unk_0C = Unk_020F4FFC[3][0].unk_06;
|
||||
param0->unk_2F0[3].unk_12 = Unk_020F4FFC[3][0].unk_06;
|
||||
summaryScreen->unk_2F0[3].unk_00 = Unk_020F4FFC[3][0].unk_06;
|
||||
summaryScreen->unk_2F0[3].unk_06 = Unk_020F4FFC[3][0].unk_06;
|
||||
summaryScreen->unk_2F0[3].unk_0C = Unk_020F4FFC[3][0].unk_06;
|
||||
summaryScreen->unk_2F0[3].unk_12 = Unk_020F4FFC[3][0].unk_06;
|
||||
|
||||
sub_02091D50(param0);
|
||||
sub_02091D50(summaryScreen);
|
||||
}
|
||||
|
||||
static void sub_02091B78(const UnkStruct_02091B78 *param0, VecFx16 *param1, u8 param2)
|
||||
|
||||
Reference in New Issue
Block a user