From 680bc1108fa83a4c809ac05ab6245c631ce5f0f7 Mon Sep 17 00:00:00 2001 From: RavePossum Date: Tue, 12 Nov 2024 00:14:31 -0500 Subject: [PATCH] Summary screen documentation - sheen sprites and windows --- .../pokemon_summary_screen/main.h | 18 +++- .../pokemon_summary_screen/sprite.h | 2 +- .../pokemon_summary_screen/window.h | 2 +- .../pokemon_summary_screen/main.c | 12 +-- .../pokemon_summary_screen/sprite.c | 38 ++++--- .../pokemon_summary_screen/window.c | 101 +++++++++--------- src/unk_020916B4.c | 40 ++++--- 7 files changed, 111 insertions(+), 102 deletions(-) diff --git a/include/applications/pokemon_summary_screen/main.h b/include/applications/pokemon_summary_screen/main.h index dfb2551f0d..9f4de57b78 100644 --- a/include/applications/pokemon_summary_screen/main.h +++ b/include/applications/pokemon_summary_screen/main.h @@ -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 diff --git a/include/applications/pokemon_summary_screen/sprite.h b/include/applications/pokemon_summary_screen/sprite.h index c86503af1a..8e3a643b2b 100644 --- a/include/applications/pokemon_summary_screen/sprite.h +++ b/include/applications/pokemon_summary_screen/sprite.h @@ -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); diff --git a/include/applications/pokemon_summary_screen/window.h b/include/applications/pokemon_summary_screen/window.h index 3524059581..13c36c7219 100644 --- a/include/applications/pokemon_summary_screen/window.h +++ b/include/applications/pokemon_summary_screen/window.h @@ -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); diff --git a/src/applications/pokemon_summary_screen/main.c b/src/applications/pokemon_summary_screen/main.c index 267d3b86ac..2429f37067 100644 --- a/src/applications/pokemon_summary_screen/main.c +++ b/src/applications/pokemon_summary_screen/main.c @@ -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); } diff --git a/src/applications/pokemon_summary_screen/sprite.c b/src/applications/pokemon_summary_screen/sprite.c index c140404752..7b722058c7 100644 --- a/src/applications/pokemon_summary_screen/sprite.c +++ b/src/applications/pokemon_summary_screen/sprite.c @@ -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; } diff --git a/src/applications/pokemon_summary_screen/window.c b/src/applications/pokemon_summary_screen/window.c index 80269f6175..968b8a4b21 100644 --- a/src/applications/pokemon_summary_screen/window.c +++ b/src/applications/pokemon_summary_screen/window.c @@ -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; } } diff --git a/src/unk_020916B4.c b/src/unk_020916B4.c index 59e97debe8..f76e3e1fc7 100644 --- a/src/unk_020916B4.c +++ b/src/unk_020916B4.c @@ -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)