diff --git a/asm/macros/scrcmd.inc b/asm/macros/scrcmd.inc index 047ee9118c..8a18629eb7 100644 --- a/asm/macros/scrcmd.inc +++ b/asm/macros/scrcmd.inc @@ -2436,14 +2436,14 @@ .short 453 .endm - .macro ScrCmd_1C6 arg0 + .macro SelectPartyMonMove partySlot .short 454 - .short \arg0 + .short \partySlot .endm - .macro ScrCmd_1C7 arg0 + .macro GetSelectedPartyMonMove destVarID .short 455 - .short \arg0 + .short \destVarID .endm .macro ScrCmd_1C8 arg0, arg1 @@ -2935,7 +2935,7 @@ .endif .endm - .macro ScrCmd_21E + .macro ScrCmd_Dummy21E .short 542 .endm diff --git a/include/applications/pokemon_summary_screen/main.h b/include/applications/pokemon_summary_screen/main.h index 5573a86c4a..52ebd6ed3f 100644 --- a/include/applications/pokemon_summary_screen/main.h +++ b/include/applications/pokemon_summary_screen/main.h @@ -30,8 +30,8 @@ enum SummaryMode { SUMMARY_MODE_NORMAL = 0, SUMMARY_MODE_LOCK_MOVES, SUMMARY_MODE_SELECT_MOVE, - SUMMARY_MODE_POFFIN, - SUMMARY_MODE_CONDITION, + SUMMARY_MODE_FEED_POFFIN, + SUMMARY_MODE_SHOW_CONDITION_CHANGE, }; enum SummaryPage { @@ -285,6 +285,17 @@ enum SummarySprite { SUMMARY_SPRITE_MAX = 77, }; +enum SummaryStatus { + SUMMARY_CONDITION_POKERUS = 0, + SUMMARY_CONDITION_PARALYSIS, + SUMMARY_CONDITION_FREEZE, + SUMMARY_CONDITION_SLEEP, + SUMMARY_CONDITION_POISON, + SUMMARY_CONDITION_BURN, + SUMMARY_CONDITION_FAINTED, + SUMMARY_CONDITION_NONE, +}; + enum SummaryPokerusState { SUMMARY_POKERUS_NONE = 0, SUMMARY_POKERUS_INFECTED, @@ -326,10 +337,10 @@ typedef struct PokemonSummary { u8 OTGender; u8 dataType; u8 mode; - u8 max; - u8 pos; + u8 monMax; + u8 monIndex; u8 pageFlags; - u8 selectedSlot; + u8 selectedMoveSlot; u8 returnMode; u16 move; @@ -447,7 +458,7 @@ typedef struct PokemonSummaryScreen { u8 sheenPos; u8 sheenCount; - u8 buttonCount; + u8 buttonAnimFrame; u8 buttonState; u8 buttonCurrent; diff --git a/include/applications/pokemon_summary_screen/sprites.h b/include/applications/pokemon_summary_screen/sprites.h index 182642dfcc..abaf1f1602 100644 --- a/include/applications/pokemon_summary_screen/sprites.h +++ b/include/applications/pokemon_summary_screen/sprites.h @@ -23,7 +23,7 @@ void PokemonSummaryScreen_SetMoveSelector2Pos(PokemonSummaryScreen *summaryScree void PokemonSummaryScreen_InitSheenSprites(PokemonSummaryScreen *summaryScreen); void PokemonSummaryScreen_DrawSheenSprites(PokemonSummaryScreen *summaryScreen); void PokemonSummaryScreen_UpdateMiscMonDataSprites(PokemonSummaryScreen *summaryScreen); -void PokemonSummaryScreen_ButtonTapAnim(PokemonSummaryScreen *summaryScreen); +void PokemonSummaryScreen_InitButtonTapAnim(PokemonSummaryScreen *summaryScreen); void PokemonSummaryScreen_HideButtonTapCircle(PokemonSummaryScreen *summaryScreen); void PokemonSummaryScreen_UpdateConditionArrowSprites(PokemonSummaryScreen *summaryScreen); void PokemonSummaryScreen_UpdateAButtonSprite(PokemonSummaryScreen *summaryScreen, Window *window); diff --git a/include/applications/pokemon_summary_screen/subscreen.h b/include/applications/pokemon_summary_screen/subscreen.h index 6a36fa5e4e..5b49ed0d9e 100644 --- a/include/applications/pokemon_summary_screen/subscreen.h +++ b/include/applications/pokemon_summary_screen/subscreen.h @@ -3,6 +3,12 @@ #include "applications/pokemon_summary_screen/main.h" +enum SummaryButtonState { + SUMMARY_BUTTON_STATE_INIT_ANIM = 0, + SUMMARY_BUTTON_STATE_SETUP_PAGE, + SUMMARY_BUTTON_STATE_RUN_ANIM, +}; + void PokemonSummaryScreen_SetSubscreenType(PokemonSummaryScreen *summaryScreen); void PokemonSummaryScreen_UpdateSubscreenButtonGfx(PokemonSummaryScreen *summaryScreen); u8 PokemonSummaryScreen_CheckSubscreenButtonPress(PokemonSummaryScreen *summaryScreen); diff --git a/include/constants/moves.h b/include/constants/moves.h index 4614721a72..154af2d988 100644 --- a/include/constants/moves.h +++ b/include/constants/moves.h @@ -6,6 +6,7 @@ #include "generated/moves.h" #define LEARNED_MOVES_MAX 4 +#define MOVE_NOT_SELECTED 0xFF #define NUM_MOVES MOVE_SHADOW_FORCE diff --git a/include/touch_screen.h b/include/touch_screen.h index b40e5db83f..62f7dc05bb 100644 --- a/include/touch_screen.h +++ b/include/touch_screen.h @@ -26,8 +26,8 @@ typedef union { } circle; } TouchScreenRect, TouchScreenHitTable; -int sub_02022644(const TouchScreenRect *rect); -int sub_02022664(const TouchScreenRect *rect); +int TouchScreen_CheckRectangleHeld(const TouchScreenRect *rect); +int TouchScreen_CheckRectanglePressed(const TouchScreenRect *rect); int sub_02022684(const TouchScreenHitTable *hitTable); int sub_020226DC(const TouchScreenHitTable *hitTable); BOOL TouchScreen_LocationHeld(const TouchScreenHitTable *hitTable); diff --git a/include/unk_0203D1B8.h b/include/unk_0203D1B8.h index 7666e67887..6ab49c5798 100644 --- a/include/unk_0203D1B8.h +++ b/include/unk_0203D1B8.h @@ -32,7 +32,7 @@ void *sub_0203D264(FieldSystem *fieldSystem, int param1); u16 sub_0203D2C4(void *param0); void sub_0203D2E4(FieldSystem *fieldSystem, void *param1); void sub_0203D30C(FieldSystem *fieldSystem, void *param1); -void sub_0203D334(FieldSystem *fieldSystem, void *param1); +void FieldSystem_OpenSummaryScreen(FieldSystem *fieldSystem, void *overlayArgs); void *sub_0203D390(FieldSystem *fieldSystem, UnkStruct_02070950 *param1, u8 param2); void *sub_0203D3C0(int param0, FieldSystem *fieldSystem); void *sub_0203D3E4(int param0, FieldSystem *fieldSystem); @@ -45,8 +45,8 @@ void *sub_0203D578(int param0, FieldSystem *fieldSystem, int param2, int param3, void *sub_0203D5C8(int param0, FieldSystem *fieldSystem, int param2); void *sub_0203D644(FieldSystem *fieldSystem, int param1); PokemonSummary *sub_0203D670(FieldSystem *fieldSystem, int param1, int param2); -void *sub_0203D6E4(int param0, FieldSystem *fieldSystem, u8 param2); -int sub_0203D750(void *param0); +void *FieldSystem_OpenSummaryScreenSelectMove(enum HeapId heapID, FieldSystem *fieldSystem, u8 partyIndex); +int PokemonSummary_GetSelectedMoveSlot(void *summary); void sub_0203D754(FieldSystem *fieldSystem, UnkStruct_02042434 *param1); void sub_0203D80C(FieldTask *param0, u16 *param1, u16 *param2, u16 *param3); void sub_0203D874(FieldSystem *fieldSystem, UnkStruct_0209747C *param1); diff --git a/include/unk_0204EDA4.h b/include/unk_0204EDA4.h index 737ff5c38a..d1f36cef58 100644 --- a/include/unk_0204EDA4.h +++ b/include/unk_0204EDA4.h @@ -3,9 +3,9 @@ #include "field_script_context.h" -BOOL ScrCmd_1C6(ScriptContext *param0); -BOOL ScrCmd_1C7(ScriptContext *param0); -BOOL ScrCmd_21E(ScriptContext *param0); +BOOL ScrCmd_SelectPartyMonMove(ScriptContext *ctx); +BOOL ScrCmd_GetSelectedPartyMonMove(ScriptContext *ctx); +BOOL ScrCmd_Dummy21E(ScriptContext *ctx); BOOL ScrCmd_21F(ScriptContext *param0); BOOL ScrCmd_220(ScriptContext *param0); BOOL ScrCmd_221(ScriptContext *param0); diff --git a/include/unk_020797C8.h b/include/unk_020797C8.h index 387c793866..0dff7d880a 100644 --- a/include/unk_020797C8.h +++ b/include/unk_020797C8.h @@ -6,7 +6,10 @@ #include "pokemon.h" #include "strbuf.h" -#define MAX_PC_BOXES 18 +#define MAX_PC_BOXES 18 +#define MAX_PC_ROWS 5 +#define MAX_PC_COLS 6 +#define MAX_MONS_PER_BOX (MAX_PC_ROWS * MAX_PC_COLS) void PCBoxes_Init(PCBoxes *param0); u32 PCBoxes_SaveSize(void); diff --git a/res/field/scripts/scripts_canalave_city_east_house.s b/res/field/scripts/scripts_canalave_city_east_house.s index 48f358be14..8f9dde2bc7 100644 --- a/res/field/scripts/scripts_canalave_city_east_house.s +++ b/res/field/scripts/scripts_canalave_city_east_house.s @@ -1,3 +1,4 @@ +#include "constants/moves.h" #include "macros/scrcmd.inc" #include "res/text/bank/canalave_city_east_house.h" @@ -44,12 +45,12 @@ _0054: CloseMessage FadeScreen 6, 1, 0, 0 WaitFadeScreen - ScrCmd_1C6 0x8002 - ScrCmd_1C7 0x8001 + SelectPartyMonMove 0x8002 + GetSelectedPartyMonMove 0x8001 ReturnToField FadeScreen 6, 1, 1, 0 WaitFadeScreen - GoToIfEq 0x8001, 0xFF, _0049 + GoToIfEq 0x8001, MOVE_NOT_SELECTED, _0049 ScrCmd_1CB 0, 0x8002, 0x8001 Message 7 ShowYesNoMenu 0x800C diff --git a/res/text/pokemon_summary_screen.gmm b/res/text/pokemon_summary_screen.gmm index 437fb6a2aa..2a17d3f74b 100644 --- a/res/text/pokemon_summary_screen.gmm +++ b/res/text/pokemon_summary_screen.gmm @@ -542,47 +542,47 @@ used {STRVAR_1 6, 0, 0} - + used PP - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} - + used {STRVAR_1 51, 0, 0} @@ -610,11 +610,11 @@ used {STRVAR_1 52, 0, 0} - + used SWITCH - + used -- @@ -626,7 +626,7 @@ used OK - + used HM moves can’t be\nforgotten now. @@ -667,27 +667,27 @@ used FAVORITE FOOD - + used Likes it {COLOR 2}spicy{COLOR 0}. - + used Likes it {COLOR 2}dry{COLOR 0}. - + used Likes it {COLOR 2}sweet{COLOR 0}. - + used Likes it {COLOR 2}bitter{COLOR 0}. - + used Likes it {COLOR 2}sour{COLOR 0}. - + used Eats anything. @@ -727,7 +727,7 @@ used INFO - + used CANCEL diff --git a/src/applications/pokemon_summary_screen/3d_anim.c b/src/applications/pokemon_summary_screen/3d_anim.c index 7555b50117..baf2d3ed18 100644 --- a/src/applications/pokemon_summary_screen/3d_anim.c +++ b/src/applications/pokemon_summary_screen/3d_anim.c @@ -358,7 +358,7 @@ void PokemonSummaryScreen_LoadMonSprite(PokemonSummaryScreen *summaryScreen) PokeSprite_LoadAnimationFrames(summaryScreen->narcPlPokeData, summaryScreen->monSprite.frames, summaryScreen->monData.species, 1); - summaryScreen->monSprite.flip = SpeciesData_GetFormValue(summaryScreen->monData.species, summaryScreen->monData.form, 28) ^ 1; + summaryScreen->monSprite.flip = SpeciesData_GetFormValue(summaryScreen->monData.species, summaryScreen->monData.form, SPECIES_DATA_FLIP_SPRITE) ^ 1; summaryScreen->monSprite.sprite = sub_02007C34(summaryScreen->monSprite.spriteManager, &sprite, 52, 104, 0, 0, summaryScreen->monSprite.frames, NULL); sub_02007DEC(summaryScreen->monSprite.sprite, 35, summaryScreen->monSprite.flip); diff --git a/src/applications/pokemon_summary_screen/main.c b/src/applications/pokemon_summary_screen/main.c index 0f6879d0fd..f2cc10860a 100644 --- a/src/applications/pokemon_summary_screen/main.c +++ b/src/applications/pokemon_summary_screen/main.c @@ -3,6 +3,7 @@ #include #include +#include "constants/battle/condition.h" #include "constants/flavor.h" #include "constants/moves.h" #include "constants/pokemon.h" @@ -70,9 +71,9 @@ enum SummaryState { SUMMARY_STATE_HIDE_BATTLE_MOVE_INFO, SUMMARY_STATE_SETUP_CONTEST_MOVE_INFO, SUMMARY_STATE_HIDE_CONTEST_MOVE_INFO, - SUMMARY_STATE_MOVE_SELECT, + SUMMARY_STATE_MOVE_DETAILS, SUMMARY_STATE_MOVE_SWAP, - SUMMARY_STATE_LEARN_MOVE, + SUMMARY_STATE_SELECT_MOVE, SUMMARY_STATE_WAIT_HM_MSG_INPUT, SUMMARY_STATE_SETUP_RIBBON_INFO, SUMMARY_STATE_HIDE_RIBBON_INFO, @@ -91,6 +92,8 @@ enum SummaryPageState { PAGE_STATE_SCROLL_FINISHED, }; +#define SUMMARY_STRBUF_LEN 128 + // also used by pageState, specifically for the condition page #define STAT_INCREASE_NONE 0 #define COOL_INCREASED (1 << 0) @@ -107,6 +110,7 @@ enum SummaryPageState { #define MAX_APPEAL_HEARTS 6 #define EMPTY_HEART_BASE_TILE 0x12E #define FILLED_HEART_BASE_TILE 0x12C +#define APPEAL_HEARTS_Y 47 #define HEALTHBAR_BASE_X 24 #define HEALTHBAR_Y 6 @@ -121,6 +125,10 @@ enum SummaryPageState { #define EXPBAR_BASE_TILE 0xAC #define EXPBAR_TILES_MAX 7 +#define MOVE_INFO_SCROLL_INCREMENT 64 + +#define RIBBON_INFO_SCROLL_INCREMENT 16 + static int PokemonSummaryScreen_Init(OverlayManager *ovyManager, int *state); static int PokemonSummaryScreen_Main(OverlayManager *ovyManager, int *state); static int PokemonSummaryScreen_Exit(OverlayManager *ovyManager, int *state); @@ -130,9 +138,9 @@ static int WaitSetupBattleMoveInfo(PokemonSummaryScreen *summaryScreen); static int WaitHideBattleMoveInfo(PokemonSummaryScreen *summaryScreen); static int WaitSetupContestMoveInfo(PokemonSummaryScreen *summaryScreen); static int WaitHideContestMoveInfo(PokemonSummaryScreen *summaryScreen); -static int HandleInput_MoveSelect(PokemonSummaryScreen *summaryScreen); +static int HandleInput_MoveDetails(PokemonSummaryScreen *summaryScreen); static int HandleInput_MoveSwap(PokemonSummaryScreen *summaryScreen); -static int HandleInput_LearnMove(PokemonSummaryScreen *summaryScreen); +static int HandleInput_SelectMove(PokemonSummaryScreen *summaryScreen); static int WaitForHMMsgInput(PokemonSummaryScreen *summaryScreen); static int WaitSetupRibbonInfo(PokemonSummaryScreen *summaryScreen); static int WaitHideRibbonInfo(PokemonSummaryScreen *summaryScreen); @@ -282,14 +290,14 @@ static int PokemonSummaryScreen_Main(OverlayManager *ovyManager, int *state) case SUMMARY_STATE_HIDE_CONTEST_MOVE_INFO: *state = WaitHideContestMoveInfo(summaryScreen); break; - case SUMMARY_STATE_MOVE_SELECT: - *state = HandleInput_MoveSelect(summaryScreen); + case SUMMARY_STATE_MOVE_DETAILS: + *state = HandleInput_MoveDetails(summaryScreen); break; case SUMMARY_STATE_MOVE_SWAP: *state = HandleInput_MoveSwap(summaryScreen); break; - case SUMMARY_STATE_LEARN_MOVE: - *state = HandleInput_LearnMove(summaryScreen); + case SUMMARY_STATE_SELECT_MOVE: + *state = HandleInput_SelectMove(summaryScreen); break; case SUMMARY_STATE_WAIT_HM_MSG_INPUT: *state = WaitForHMMsgInput(summaryScreen); @@ -390,10 +398,10 @@ static void SetVRAMBanks(void) static void SetupBgs(BgConfig *bgConfig) { GraphicsModes graphicsModes = { - GX_DISPMODE_GRAPHICS, - GX_BGMODE_0, - GX_BGMODE_0, - GX_BG0_AS_3D, + .displayMode = GX_DISPMODE_GRAPHICS, + .mainBgMode = GX_BGMODE_0, + .subBgMode = GX_BGMODE_0, + .bg0As2DOr3D = GX_BG0_AS_3D, }; SetAllGraphicsModes(&graphicsModes); @@ -535,10 +543,10 @@ static void InitializeStringsAndCopyOTName(PokemonSummaryScreen *summaryScreen) summaryScreen->ribbonLoader = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_RIBBON_NAMES, HEAP_ID_POKEMON_SUMMARY_SCREEN); summaryScreen->unk_684 = sub_0200C440(1, 2, 0, HEAP_ID_POKEMON_SUMMARY_SCREEN); summaryScreen->strFormatter = StringTemplate_Default(HEAP_ID_POKEMON_SUMMARY_SCREEN); - summaryScreen->monData.speciesName = Strbuf_Init(12, HEAP_ID_POKEMON_SUMMARY_SCREEN); - summaryScreen->monData.nickname = Strbuf_Init(12, HEAP_ID_POKEMON_SUMMARY_SCREEN); + summaryScreen->monData.speciesName = Strbuf_Init(MON_NAME_LEN + 2, HEAP_ID_POKEMON_SUMMARY_SCREEN); + summaryScreen->monData.nickname = Strbuf_Init(MON_NAME_LEN + 2, HEAP_ID_POKEMON_SUMMARY_SCREEN); summaryScreen->monData.OTName = Strbuf_Init(TRAINER_NAME_LEN + 1, HEAP_ID_POKEMON_SUMMARY_SCREEN); - summaryScreen->strbuf = Strbuf_Init(128, HEAP_ID_POKEMON_SUMMARY_SCREEN); + summaryScreen->strbuf = Strbuf_Init(SUMMARY_STRBUF_LEN, HEAP_ID_POKEMON_SUMMARY_SCREEN); summaryScreen->moveNameLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVE_NAMES, HEAP_ID_POKEMON_SUMMARY_SCREEN); summaryScreen->playerName = Strbuf_Init(TRAINER_NAME_LEN + 1, HEAP_ID_POKEMON_SUMMARY_SCREEN); @@ -568,8 +576,8 @@ static int WaitSummaryScreenTransition(PokemonSummaryScreen *summaryScreen) PlayMonCry(summaryScreen); if (summaryScreen->data->mode == SUMMARY_MODE_SELECT_MOVE) { - return SUMMARY_STATE_LEARN_MOVE; - } else if (summaryScreen->data->mode == SUMMARY_MODE_CONDITION) { + return SUMMARY_STATE_SELECT_MOVE; + } else if (summaryScreen->data->mode == SUMMARY_MODE_SHOW_CONDITION_CHANGE) { return SUMMARY_STATE_SETUP_POFFIN_FEED; } else { return SUMMARY_STATE_HANDLE_INPUT; @@ -613,7 +621,7 @@ static int HandleInput_Main(PokemonSummaryScreen *summaryScreen) } if (JOY_NEW(PAD_BUTTON_A)) { - if (summaryScreen->data->mode == SUMMARY_MODE_POFFIN && summaryScreen->page == SUMMARY_MODE_CONDITION) { + if (summaryScreen->data->mode == SUMMARY_MODE_FEED_POFFIN && summaryScreen->page == SUMMARY_MODE_SHOW_CONDITION_CHANGE) { Sound_PlayEffect(SEQ_SE_DP_DECIDE); return TryFeedPoffin(summaryScreen); } @@ -650,7 +658,7 @@ static int HandleInput_Main(PokemonSummaryScreen *summaryScreen) static int WaitSetupBattleMoveInfo(PokemonSummaryScreen *summaryScreen) { if (SetupBattleMoveInfo(summaryScreen) == TRUE) { - return SUMMARY_STATE_MOVE_SELECT; + return SUMMARY_STATE_MOVE_DETAILS; } return SUMMARY_STATE_SETUP_BATTLE_MOVE_INFO; @@ -668,7 +676,7 @@ static int WaitHideBattleMoveInfo(PokemonSummaryScreen *summaryScreen) static int WaitSetupContestMoveInfo(PokemonSummaryScreen *summaryScreen) { if (SetupContestMoveInfo(summaryScreen) == TRUE) { - return SUMMARY_STATE_MOVE_SELECT; + return SUMMARY_STATE_MOVE_DETAILS; } return SUMMARY_STATE_SETUP_CONTEST_MOVE_INFO; @@ -683,7 +691,7 @@ static int WaitHideContestMoveInfo(PokemonSummaryScreen *summaryScreen) return SUMMARY_STATE_HIDE_CONTEST_MOVE_INFO; } -static int HandleInput_MoveSelect(PokemonSummaryScreen *summaryScreen) +static int HandleInput_MoveDetails(PokemonSummaryScreen *summaryScreen) { if (JOY_NEW(PAD_KEY_UP)) { if (TryChangeSelectedMove(summaryScreen, -1) == TRUE) { @@ -691,7 +699,7 @@ static int HandleInput_MoveSelect(PokemonSummaryScreen *summaryScreen) UpdateMoveAttributes(summaryScreen); } - return SUMMARY_STATE_MOVE_SELECT; + return SUMMARY_STATE_MOVE_DETAILS; } if (JOY_NEW(PAD_KEY_DOWN)) { @@ -700,7 +708,7 @@ static int HandleInput_MoveSelect(PokemonSummaryScreen *summaryScreen) UpdateMoveAttributes(summaryScreen); } - return SUMMARY_STATE_MOVE_SELECT; + return SUMMARY_STATE_MOVE_DETAILS; } if (JOY_NEW(PAD_BUTTON_A)) { @@ -732,7 +740,7 @@ static int HandleInput_MoveSelect(PokemonSummaryScreen *summaryScreen) } } - return SUMMARY_STATE_MOVE_SELECT; + return SUMMARY_STATE_MOVE_DETAILS; } static int HandleInput_MoveSwap(PokemonSummaryScreen *summaryScreen) @@ -768,28 +776,28 @@ static int HandleInput_MoveSwap(PokemonSummaryScreen *summaryScreen) Sound_PlayEffect(SEQ_SE_DP_DECIDE); } - return SUMMARY_STATE_MOVE_SELECT; + return SUMMARY_STATE_MOVE_DETAILS; } if (JOY_NEW(PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_DP_DECIDE); Sprite_SetDrawFlag(summaryScreen->sprites[SUMMARY_SPRITE_MOVE_SELECTOR_2], FALSE); - return SUMMARY_STATE_MOVE_SELECT; + return SUMMARY_STATE_MOVE_DETAILS; } return SUMMARY_STATE_MOVE_SWAP; } -static int HandleInput_LearnMove(PokemonSummaryScreen *summaryScreen) +static int HandleInput_SelectMove(PokemonSummaryScreen *summaryScreen) { if (JOY_NEW(PAD_KEY_LEFT)) { ChangePage(summaryScreen, -1); - return SUMMARY_STATE_LEARN_MOVE; + return SUMMARY_STATE_SELECT_MOVE; } if (JOY_NEW(PAD_KEY_RIGHT)) { ChangePage(summaryScreen, 1); - return SUMMARY_STATE_LEARN_MOVE; + return SUMMARY_STATE_SELECT_MOVE; } if (JOY_NEW(PAD_KEY_UP)) { @@ -798,7 +806,7 @@ static int HandleInput_LearnMove(PokemonSummaryScreen *summaryScreen) UpdateMoveAttributes(summaryScreen); } - return SUMMARY_STATE_LEARN_MOVE; + return SUMMARY_STATE_SELECT_MOVE; } if (JOY_NEW(PAD_KEY_DOWN)) { @@ -807,7 +815,7 @@ static int HandleInput_LearnMove(PokemonSummaryScreen *summaryScreen) UpdateMoveAttributes(summaryScreen); } - return SUMMARY_STATE_LEARN_MOVE; + return SUMMARY_STATE_SELECT_MOVE; } if (JOY_NEW(PAD_BUTTON_A)) { @@ -822,26 +830,26 @@ static int HandleInput_LearnMove(PokemonSummaryScreen *summaryScreen) } } - summaryScreen->data->selectedSlot = summaryScreen->cursor; + summaryScreen->data->selectedMoveSlot = summaryScreen->cursor; summaryScreen->data->returnMode = SUMMARY_RETURN_SELECT; return SUMMARY_STATE_TRANSITION_OUT; } if (JOY_NEW(PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_DP_DECIDE); - summaryScreen->data->selectedSlot = 4; + summaryScreen->data->selectedMoveSlot = LEARNED_MOVES_MAX; summaryScreen->data->returnMode = SUMMARY_RETURN_CANCEL; return SUMMARY_STATE_TRANSITION_OUT; } - return SUMMARY_STATE_LEARN_MOVE; + return SUMMARY_STATE_SELECT_MOVE; } static int WaitForHMMsgInput(PokemonSummaryScreen *summaryScreen) { if (JOY_NEW(PAD_BUTTON_A | PAD_BUTTON_B)) { UpdateMoveAttributes(summaryScreen); - return SUMMARY_STATE_LEARN_MOVE; + return SUMMARY_STATE_SELECT_MOVE; } return SUMMARY_STATE_WAIT_HM_MSG_INPUT; @@ -902,7 +910,7 @@ static int HandleInput_Subscreen(PokemonSummaryScreen *summaryScreen) return summaryScreen->pageState; } - if (summaryScreen->buttonState == 1) { + if (summaryScreen->buttonState == SUMMARY_BUTTON_STATE_SETUP_PAGE) { u8 page = PokemonSummaryScreen_GetSubscreenButtonPage(summaryScreen, summaryScreen->buttonCurrent); if (page == SUMMARY_PAGE_EXIT) { @@ -1142,8 +1150,8 @@ static void SetMonDataFromMon(PokemonSummaryScreen *summaryScreen, Pokemon *mon, } else if (Pokemon_InfectedWithPokerus(mon) == TRUE) { monData->pokerus = SUMMARY_POKERUS_INFECTED; - if (monData->status == 7) { - monData->status = 0; + if (monData->status == SUMMARY_CONDITION_NONE) { + monData->status = SUMMARY_CONDITION_POKERUS; } } else { monData->pokerus = SUMMARY_POKERUS_NONE; @@ -1201,8 +1209,8 @@ static void SetupInitialPageGfx(PokemonSummaryScreen *summaryScreen) case SUMMARY_MODE_SELECT_MOVE: summaryScreen->page = SUMMARY_PAGE_BATTLE_MOVES; break; - case SUMMARY_MODE_POFFIN: - case SUMMARY_MODE_CONDITION: + case SUMMARY_MODE_FEED_POFFIN: + case SUMMARY_MODE_SHOW_CONDITION_CHANGE: summaryScreen->page = SUMMARY_PAGE_CONDITION; break; } @@ -1358,9 +1366,9 @@ static u8 CheckSubscreenPressAndSetButton(PokemonSummaryScreen *summaryScreen) return FALSE; } - summaryScreen->buttonCount = 0; + summaryScreen->buttonAnimFrame = 0; summaryScreen->buttonCurrent = button; - summaryScreen->buttonState = 0; + summaryScreen->buttonState = SUMMARY_BUTTON_STATE_INIT_ANIM; return TRUE; } @@ -1476,7 +1484,7 @@ static void ChangeSummaryMon(PokemonSummaryScreen *summaryScreen, s8 delta) return; } - summaryScreen->data->pos = monIndex; + summaryScreen->data->monIndex = monIndex; SetMonData(summaryScreen); PlayMonCry(summaryScreen); @@ -1523,7 +1531,7 @@ static s8 TryAdvanceSummaryMonIndex(PokemonSummaryScreen *summaryScreen, s8 delt static BOOL CanAdvanceToEgg(PokemonSummaryScreen *summaryScreen) { - if (summaryScreen->data->mode == SUMMARY_MODE_POFFIN) { + if (summaryScreen->data->mode == SUMMARY_MODE_FEED_POFFIN) { return FALSE; } @@ -1536,13 +1544,13 @@ static BOOL CanAdvanceToEgg(PokemonSummaryScreen *summaryScreen) static s8 TryAdvanceMonIndex(PokemonSummaryScreen *summaryScreen, s8 delta) { - s8 monIndex = (s8)summaryScreen->data->pos; + s8 monIndex = (s8)summaryScreen->data->monIndex; Pokemon *mon = (Pokemon *)summaryScreen->data->monData; while (TRUE) { monIndex += delta; - if (monIndex < 0 || monIndex >= summaryScreen->data->max) { + if (monIndex < 0 || monIndex >= summaryScreen->data->monMax) { return -1; } @@ -1564,12 +1572,12 @@ static s8 TryAdvanceMonIndex(PokemonSummaryScreen *summaryScreen, s8 delta) static s8 TryAdvancePartyMonIndex(PokemonSummaryScreen *summaryScreen, s8 delta) { - s8 monIndex = summaryScreen->data->pos; + s8 monIndex = summaryScreen->data->monIndex; while (TRUE) { monIndex += delta; - if (monIndex < 0 || monIndex >= summaryScreen->data->max) { + if (monIndex < 0 || monIndex >= summaryScreen->data->monMax) { return -1; } @@ -1591,26 +1599,21 @@ static s8 TryAdvancePartyMonIndex(PokemonSummaryScreen *summaryScreen, s8 delta) static s8 TryAdvanceBoxMonIndex(PokemonSummaryScreen *summaryScreen, s8 delta) { - s8 monIndex = summaryScreen->data->pos; + s8 monIndex = summaryScreen->data->monIndex; BoxPokemon *boxMon = (BoxPokemon *)summaryScreen->data->monData; while (TRUE) { monIndex += delta; - if (monIndex < 0 || monIndex >= summaryScreen->data->max) { + if (monIndex < 0 || monIndex >= summaryScreen->data->monMax) { return -1; } boxMon = (BoxPokemon *)(summaryScreen->data->monData + BoxPokemon_GetStructSize() * monIndex); - if (BoxPokemon_GetValue(boxMon, MON_DATA_SPECIES, NULL) != SPECIES_NONE) { - if (BoxPokemon_GetValue(boxMon, MON_DATA_IS_EGG, NULL) != FALSE) { - if (CanAdvanceToEgg(summaryScreen) == TRUE) { - break; - } - } else { - break; - } + if (BoxPokemon_GetValue(boxMon, MON_DATA_SPECIES, NULL) != SPECIES_NONE + && (BoxPokemon_GetValue(boxMon, MON_DATA_IS_EGG, NULL) == FALSE || CanAdvanceToEgg(summaryScreen) == TRUE)) { + break; } } @@ -1621,11 +1624,11 @@ void *PokemonSummaryScreen_MonData(PokemonSummaryScreen *summaryScreen) { switch (summaryScreen->data->dataType) { case SUMMARY_DATA_MON: - return summaryScreen->data->monData + (Pokemon_GetStructSize() * summaryScreen->data->pos); + return summaryScreen->data->monData + (Pokemon_GetStructSize() * summaryScreen->data->monIndex); case SUMMARY_DATA_PARTY_MON: - return Party_GetPokemonBySlotIndex(summaryScreen->data->monData, summaryScreen->data->pos); + return Party_GetPokemonBySlotIndex(summaryScreen->data->monData, summaryScreen->data->monIndex); case SUMMARY_DATA_BOX_MON: - return summaryScreen->data->monData + (BoxPokemon_GetStructSize() * summaryScreen->data->pos); + return summaryScreen->data->monData + (BoxPokemon_GetStructSize() * summaryScreen->data->monIndex); } return NULL; @@ -1650,18 +1653,18 @@ static u8 SetupBattleMoveInfo(PokemonSummaryScreen *summaryScreen) case PAGE_STATE_SCROLLING: { int xOffset = Bg_GetXOffset(summaryScreen->bgConfig, BG_LAYER_MAIN_2); - if (xOffset <= 64) { + if (xOffset <= MOVE_INFO_SCROLL_INCREMENT) { Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SET_X, 0); summaryScreen->pageState = PAGE_STATE_SCROLL_FINISHED; } else { - Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SUB_X, 64); + Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SUB_X, MOVE_INFO_SCROLL_INCREMENT); } } break; case PAGE_STATE_SCROLL_FINISHED: PokemonSummaryScreen_ShowMove5OrCancel(summaryScreen); if (summaryScreen->data->mode != SUMMARY_MODE_LOCK_MOVES) { - PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, 152); + PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, summary_move_switch); PokemonSummaryScreen_UpdateAButtonSprite(summaryScreen, &summaryScreen->staticWindows[SUMMARY_WINDOW_BUTTON_PROMPT]); } @@ -1698,18 +1701,18 @@ static u8 HideBattleMoveInfo(PokemonSummaryScreen *summaryScreen) case PAGE_STATE_SCROLLING: { int xOffset = Bg_GetXOffset(summaryScreen->bgConfig, BG_LAYER_MAIN_2); - if (xOffset >= 128) { + if (xOffset >= MOVE_INFO_SCROLL_INCREMENT * 2) { Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SET_X, 136); summaryScreen->pageState = PAGE_STATE_SCROLL_FINISHED; } else { - Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_ADD_X, 64); + Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_ADD_X, MOVE_INFO_SCROLL_INCREMENT); } } break; case PAGE_STATE_SCROLL_FINISHED: Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_MON_LEVEL]); Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_LABEL_ITEM]); Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_ITEM_NAME]); - PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, 129); + PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, summary_select_battle_move_info); PokemonSummaryScreen_UpdatePageArrows(summaryScreen, TRUE); PokemonSummaryScreen_UpdateAButtonSprite(summaryScreen, &summaryScreen->staticWindows[SUMMARY_WINDOW_BUTTON_PROMPT]); return TRUE; @@ -1857,18 +1860,18 @@ static u8 SetupContestMoveInfo(PokemonSummaryScreen *summaryScreen) case PAGE_STATE_SCROLLING: { int xOffset = Bg_GetXOffset(summaryScreen->bgConfig, BG_LAYER_MAIN_2); - if (xOffset <= 64) { + if (xOffset <= MOVE_INFO_SCROLL_INCREMENT) { Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SET_X, 0); summaryScreen->pageState = PAGE_STATE_SCROLL_FINISHED; } else { - Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SUB_X, 64); + Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SUB_X, MOVE_INFO_SCROLL_INCREMENT); } } break; case PAGE_STATE_SCROLL_FINISHED: PokemonSummaryScreen_ShowMove5OrCancel(summaryScreen); if (summaryScreen->data->mode != SUMMARY_MODE_LOCK_MOVES) { - PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, 152); + PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, summary_move_switch); PokemonSummaryScreen_UpdateAButtonSprite(summaryScreen, &summaryScreen->staticWindows[SUMMARY_WINDOW_BUTTON_PROMPT]); } @@ -1900,18 +1903,18 @@ static u8 HideContestMoveInfo(PokemonSummaryScreen *summaryScreen) case PAGE_STATE_SCROLLING: { int xOffset = Bg_GetXOffset(summaryScreen->bgConfig, BG_LAYER_MAIN_2); - if (xOffset >= 128) { + if (xOffset >= MOVE_INFO_SCROLL_INCREMENT * 2) { Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SET_X, 136); summaryScreen->pageState = PAGE_STATE_SCROLL_FINISHED; } else { - Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_ADD_X, 64); + Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_ADD_X, MOVE_INFO_SCROLL_INCREMENT); } } break; case PAGE_STATE_SCROLL_FINISHED: Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_MON_LEVEL]); Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_LABEL_ITEM]); Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_ITEM_NAME]); - PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, 158); + PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, summary_select_contest_move_info); PokemonSummaryScreen_UpdatePageArrows(summaryScreen, TRUE); PokemonSummaryScreen_UpdateAButtonSprite(summaryScreen, &summaryScreen->staticWindows[SUMMARY_WINDOW_BUTTON_PROMPT]); return TRUE; @@ -1922,10 +1925,10 @@ static u8 HideContestMoveInfo(PokemonSummaryScreen *summaryScreen) static void DrawAppealHeart(PokemonSummaryScreen *summaryScreen, u16 baseTile, u8 heartIndex) { - Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_2, baseTile, 2 + heartIndex * 2, (32 + 15), 1, 1, 16); - Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_2, baseTile + 1, 2 + heartIndex * 2 + 1, (32 + 15), 1, 1, 16); - Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_2, baseTile + 32, 2 + heartIndex * 2, (32 + 15) + 1, 1, 1, 16); - Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_2, baseTile + 33, 2 + heartIndex * 2 + 1, (32 + 15) + 1, 1, 1, 16); + Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_2, baseTile, 2 + heartIndex * 2, APPEAL_HEARTS_Y, 1, 1, 16); + Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_2, baseTile + 1, 2 + heartIndex * 2 + 1, APPEAL_HEARTS_Y, 1, 1, 16); + Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_2, baseTile + 32, 2 + heartIndex * 2, APPEAL_HEARTS_Y + 1, 1, 1, 16); + Bg_FillTilemapRect(summaryScreen->bgConfig, BG_LAYER_MAIN_2, baseTile + 33, 2 + heartIndex * 2 + 1, APPEAL_HEARTS_Y + 1, 1, 1, 16); } static void DrawEmptyHearts(PokemonSummaryScreen *summaryScreen) @@ -2011,15 +2014,15 @@ static u8 SetupRibbonInfo(PokemonSummaryScreen *summaryScreen) case PAGE_STATE_SCROLLING: { int yOffset = Bg_GetYOffset(summaryScreen->bgConfig, BG_LAYER_MAIN_2); - if (yOffset >= 48) { + if (yOffset >= RIBBON_INFO_SCROLL_INCREMENT * 3) { Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SET_Y, 56); summaryScreen->pageState = PAGE_STATE_SCROLL_FINISHED; } else { - Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_ADD_Y, 16); + Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_ADD_Y, RIBBON_INFO_SCROLL_INCREMENT); } } break; case PAGE_STATE_SCROLL_FINISHED: - PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, 181); + PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, summary_ribbon_select_cancel); PokemonSummaryScreen_UpdateAButtonSprite(summaryScreen, &summaryScreen->staticWindows[SUMMARY_WINDOW_BUTTON_PROMPT]); Sprite_SetDrawFlag(summaryScreen->sprites[SUMMARY_SPRITE_RIBBON_CURSOR], TRUE); Sprite_SetDrawFlag(summaryScreen->sprites[SUMMARY_SPRITE_RIBBON_FLASH], TRUE); @@ -2052,11 +2055,11 @@ static u8 HideRibbonInfo(PokemonSummaryScreen *summaryScreen) case PAGE_STATE_SCROLLING: { int yOffset = Bg_GetYOffset(summaryScreen->bgConfig, BG_LAYER_MAIN_2); - if (yOffset <= 8) { + if (yOffset <= RIBBON_INFO_SCROLL_INCREMENT / 2) { Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SET_Y, 0); summaryScreen->pageState = PAGE_STATE_SCROLL_FINISHED; } else { - Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SUB_Y, 16); + Bg_ScheduleScroll(summaryScreen->bgConfig, BG_LAYER_MAIN_2, BG_OFFSET_UPDATE_SUB_Y, RIBBON_INFO_SCROLL_INCREMENT); } } break; case PAGE_STATE_SCROLL_FINISHED: @@ -2065,7 +2068,7 @@ static u8 HideRibbonInfo(PokemonSummaryScreen *summaryScreen) Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_LABEL_RIBBON_COUNT]); Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_BUTTON_PROMPT]); Window_ScheduleCopyToVRAM(&summaryScreen->extraWindows[SUMMARY_WINDOW_RIBBON_COUNT]); - PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, 180); + PokemonSummaryScreen_ClearAndPrintButtonPrompt(summaryScreen, summary_ribbon_select_info); PokemonSummaryScreen_UpdatePageArrows(summaryScreen, TRUE); PokemonSummaryScreen_UpdateAButtonSprite(summaryScreen, &summaryScreen->staticWindows[SUMMARY_WINDOW_BUTTON_PROMPT]); @@ -2214,18 +2217,18 @@ u32 PokemonSummaryScreen_StatusIconAnimIdx(Pokemon *mon) u32 statusCondition = Pokemon_GetValue(mon, MON_DATA_STATUS_CONDITION, NULL); if (Pokemon_GetValue(mon, MON_DATA_CURRENT_HP, NULL) == 0) { - return 6; - } else if ((statusCondition & (0x8 | 0x80)) != 0) { - return 4; - } else if ((statusCondition & 0x7) != 0) { - return 3; - } else if ((statusCondition & 0x10) != 0) { - return 5; - } else if ((statusCondition & 0x20) != 0) { - return 2; - } else if ((statusCondition & 0x40) != 0) { - return 1; + return SUMMARY_CONDITION_FAINTED; + } else if ((statusCondition & (MON_CONDITION_POISON | MON_CONDITION_TOXIC)) != MON_CONDITION_NONE) { + return SUMMARY_CONDITION_POISON; + } else if ((statusCondition & MON_CONDITION_SLEEP) != MON_CONDITION_NONE) { + return SUMMARY_CONDITION_SLEEP; + } else if ((statusCondition & MON_CONDITION_BURN) != MON_CONDITION_NONE) { + return SUMMARY_CONDITION_BURN; + } else if ((statusCondition & MON_CONDITION_FREEZE) != MON_CONDITION_NONE) { + return SUMMARY_CONDITION_FREEZE; + } else if ((statusCondition & MON_CONDITION_PARALYSIS) != MON_CONDITION_NONE) { + return SUMMARY_CONDITION_PARALYSIS; } - return 7; + return SUMMARY_CONDITION_NONE; } diff --git a/src/applications/pokemon_summary_screen/sprites.c b/src/applications/pokemon_summary_screen/sprites.c index 2aa47d1f2a..3fdbcc0da3 100644 --- a/src/applications/pokemon_summary_screen/sprites.c +++ b/src/applications/pokemon_summary_screen/sprites.c @@ -83,6 +83,12 @@ enum ConditionFlashBounds { #define MOVE_CATEGORY_ICON_X 108 #define MOVE_CATEGORY_ICON_Y 72 +#define BATTLE_MOVE_MON_ICON_X 24 +#define BATTLE_MOVE_MON_ICON_Y 48 + +#define CONTEST_MOVE_MON_ICON_X 32 +#define CONTEST_MOVE_MON_ICON_Y 68 + // contest stat dot position info for the contest move info #define COOL_MAX_X 88 #define COOL_MIN_X 88 @@ -112,84 +118,779 @@ enum ConditionFlashBounds { #define DOT_MAX_POS 300 #define DOT_MIN_POS 44 -static const SpriteTemplateFromResourceHeader Unk_020F41A8[] = { - [SUMMARY_SPRITE_TAB_INFO] = { 0x1, 0x80, 0x18, 0x0, 0x0, 0x1, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_TAB_MEMO] = { 0x1, 0x90, 0x18, 0x0, 0x1, 0x1, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_TAB_SKILLS] = { 0x1, 0xA0, 0x18, 0x0, 0x2, 0x1, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_TAB_BATTLE_MOVES] = { 0x1, 0xB0, 0x18, 0x0, 0x3, 0x1, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_TAB_CONDITION] = { 0x1, 0xC0, 0x18, 0x0, 0x4, 0x1, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_TAB_CONTEST_MOVES] = { 0x1, 0xD0, 0x18, 0x0, 0x5, 0x1, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_TAB_RIBBONS] = { 0x1, 0xE0, 0x18, 0x0, 0x6, 0x1, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_TAB_EXIT] = { 0x1, 0xF0, 0x18, 0x0, 0x7, 0x1, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CAUGHT_BALL] = { 0x0, 0x10, 0x20, 0x0, 0x0, 0x0, 0xC, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MOVE_SELECTOR_1] = { 0x2, 0xC2, 0x30, 0x0, 0x0, 0x1, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MOVE_SELECTOR_2] = { 0x2, 0xC2, 0x30, 0x0, 0x1, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MON_TYPE_ICON_1] = { 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MON_TYPE_ICON_2] = { 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MOVE_TYPE_ICON_1] = { 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MOVE_TYPE_ICON_2] = { 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MOVE_TYPE_ICON_3] = { 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MOVE_TYPE_ICON_4] = { 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MOVE_TYPE_ICON_5] = { 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MOVE_CATEGORY_ICON] = { 0xA, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MON_ICON] = { 0xB, 0x18, 0x30, 0x0, 0x0, 0x0, 0x4, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_STATUS_ICON] = { 0xC, 0x50, 0x34, 0x0, 0x0, 0x0, 0x6, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_PAGE_ARROW_LEFT] = { 0xE, 0x0, 0x18, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_PAGE_ARROW_RIGHT] = { 0xE, 0x0, 0x18, 0x0, 0x1, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MARKING_CIRCLE] = { 0x12, 0x30, 0x96, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MARKING_TRIANGLE] = { 0x13, 0x38, 0x96, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MARKING_SQUARE] = { 0x14, 0x40, 0x96, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MARKING_HEART] = { 0x15, 0x48, 0x96, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MARKING_STAR] = { 0x16, 0x50, 0x96, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_MARKING_DIAMOND] = { 0x17, 0x58, 0x96, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_1] = { 0xD, 0x98, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_2] = { 0xD, 0xA0, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_3] = { 0xD, 0xA8, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_4] = { 0xD, 0xB0, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_5] = { 0xD, 0xB8, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_6] = { 0xD, 0xC0, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_7] = { 0xD, 0xC8, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_8] = { 0xD, 0xD0, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_9] = { 0xD, 0xD8, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_10] = { 0xD, 0xE0, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_11] = { 0xD, 0xE8, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHEEN_12] = { 0xD, 0xF0, 0xA8, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_BUTTON_TAP_CIRCLE] = { 0xF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_ARROW_COOL] = { 0x10, 0xD0, 0x30, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_ARROW_BEAUTY] = { 0x10, 0xE0, 0x58, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_ARROW_CUTE] = { 0x10, 0xD8, 0x78, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_ARROW_SMART] = { 0x10, 0x90, 0x78, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_ARROW_TOUGH] = { 0x10, 0x88, 0x58, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_A_BUTTON] = { 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONTEST_STAT_DOT_COOL] = { 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONTEST_STAT_DOT_BEAUTY] = { 0x19, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONTEST_STAT_DOT_CUTE] = { 0x19, 0x0, 0x0, 0x0, 0x3, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONTEST_STAT_DOT_SMART] = { 0x19, 0x0, 0x0, 0x0, 0x2, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONTEST_STAT_DOT_TOUGH] = { 0x19, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_SHINY_ICON] = { 0x18, 0x62, 0x48, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_POKERUS_CURED_ICON] = { 0x18, 0x62, 0x84, 0x0, 0x1, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_1] = { 0x1A, 0x84, 0x38, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_2] = { 0x1B, 0xA4, 0x38, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_3] = { 0x1C, 0xC4, 0x38, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_4] = { 0x1D, 0xE4, 0x38, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_5] = { 0x1E, 0x84, 0x60, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_6] = { 0x1F, 0xA4, 0x60, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_7] = { 0x20, 0xC4, 0x60, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_8] = { 0x21, 0xE4, 0x60, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_9] = { 0x22, 0x84, 0x88, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_10] = { 0x23, 0xA4, 0x88, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_11] = { 0x24, 0xC4, 0x88, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_12] = { 0x25, 0xE4, 0x88, 0x0, 0x0, 0x0, 0x0, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_CURSOR] = { 0x26, 0x84, 0x38, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_ARROW_UP] = { 0x27, 0xB4, 0x20, 0x0, 0x1, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_ARROW_DOWN] = { 0x27, 0xB4, 0x78, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_RIBBON_FLASH] = { 0x28, 0x8, 0x84, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_FLASH_COOL] = { 0x29, 0x84, 0x38, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_FLASH_BEAUTY] = { 0x29, 0x84, 0x38, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_FLASH_CUTE] = { 0x29, 0x84, 0x38, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_FLASH_SMART] = { 0x29, 0x84, 0x38, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_CONDITION_FLASH_TOUGH] = { 0x29, 0x84, 0x38, 0x0, 0x0, 0x0, 0x2, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 }, - [SUMMARY_SPRITE_POKERUS_ICON] = { 0x2A, 0x4C, 0x30, 0x0, 0x0, 0x0, 0x1, NNS_G2D_VRAM_TYPE_2DMAIN, 0x0, 0x0, 0x0, 0x0 } +#define TAP_CIRCLE_BASE_Y 192 + +static const SpriteTemplateFromResourceHeader sSummaryScreenSpriteTemplates[] = { + [SUMMARY_SPRITE_TAB_INFO] = { + .resourceHeaderID = 1, + .x = 128, + .y = 24, + .z = 0, + .animIdx = 0, + .priority = 1, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_TAB_MEMO] = { + .resourceHeaderID = 1, + .x = 144, + .y = 24, + .z = 0, + .animIdx = 1, + .priority = 1, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_TAB_SKILLS] = { + .resourceHeaderID = 1, + .x = 160, + .y = 24, + .z = 0, + .animIdx = 2, + .priority = 1, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_TAB_BATTLE_MOVES] = { + .resourceHeaderID = 1, + .x = 176, + .y = 24, + .z = 0, + .animIdx = 3, + .priority = 1, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_TAB_CONDITION] = { + .resourceHeaderID = 1, + .x = 192, + .y = 24, + .z = 0, + .animIdx = 4, + .priority = 1, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_TAB_CONTEST_MOVES] = { + .resourceHeaderID = 1, + .x = 208, + .y = 24, + .z = 0, + .animIdx = 5, + .priority = 1, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_TAB_RIBBONS] = { + .resourceHeaderID = 1, + .x = 224, + .y = 24, + .z = 0, + .animIdx = 6, + .priority = 1, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_TAB_EXIT] = { + .resourceHeaderID = 1, + .x = 240, + .y = 24, + .z = 0, + .animIdx = 7, + .priority = 1, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CAUGHT_BALL] = { + .resourceHeaderID = 0, + .x = 16, + .y = 32, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 12, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MOVE_SELECTOR_1] = { + .resourceHeaderID = 2, + .x = 194, + .y = 48, + .z = 0, + .animIdx = 0, + .priority = 1, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MOVE_SELECTOR_2] = { + .resourceHeaderID = 2, + .x = 194, + .y = 48, + .z = 0, + .animIdx = 1, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MON_TYPE_ICON_1] = { + .resourceHeaderID = 3, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MON_TYPE_ICON_2] = { + .resourceHeaderID = 4, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MOVE_TYPE_ICON_1] = { + .resourceHeaderID = 5, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MOVE_TYPE_ICON_2] = { + .resourceHeaderID = 6, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MOVE_TYPE_ICON_3] = { + .resourceHeaderID = 7, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MOVE_TYPE_ICON_4] = { + .resourceHeaderID = 8, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MOVE_TYPE_ICON_5] = { + .resourceHeaderID = 9, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MOVE_CATEGORY_ICON] = { + .resourceHeaderID = 10, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MON_ICON] = { + .resourceHeaderID = 11, + .x = 24, + .y = 48, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 4, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_STATUS_ICON] = { + .resourceHeaderID = 12, + .x = 80, + .y = 52, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 6, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_PAGE_ARROW_LEFT] = { + .resourceHeaderID = 14, + .x = 0, + .y = 24, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_PAGE_ARROW_RIGHT] = { + .resourceHeaderID = 14, + .x = 0, + .y = 24, + .z = 0, + .animIdx = 1, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MARKING_CIRCLE] = { + .resourceHeaderID = 18, + .x = 48, + .y = 150, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MARKING_TRIANGLE] = { + .resourceHeaderID = 19, + .x = 56, + .y = 150, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MARKING_SQUARE] = { + .resourceHeaderID = 20, + .x = 64, + .y = 150, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MARKING_HEART] = { + .resourceHeaderID = 21, + .x = 72, + .y = 150, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MARKING_STAR] = { + .resourceHeaderID = 22, + .x = 80, + .y = 150, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_MARKING_DIAMOND] = { + .resourceHeaderID = 23, + .x = 88, + .y = 150, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_1] = { + .resourceHeaderID = 13, + .x = 152, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_2] = { + .resourceHeaderID = 13, + .x = 160, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_3] = { + .resourceHeaderID = 13, + .x = 168, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_4] = { + .resourceHeaderID = 13, + .x = 176, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_5] = { + .resourceHeaderID = 13, + .x = 184, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_6] = { + .resourceHeaderID = 13, + .x = 192, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_7] = { + .resourceHeaderID = 13, + .x = 200, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_8] = { + .resourceHeaderID = 13, + .x = 208, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_9] = { + .resourceHeaderID = 13, + .x = 216, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_10] = { + .resourceHeaderID = 13, + .x = 224, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_11] = { + .resourceHeaderID = 13, + .x = 232, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHEEN_12] = { + .resourceHeaderID = 13, + .x = 240, + .y = 168, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_BUTTON_TAP_CIRCLE] = { + .resourceHeaderID = 15, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_ARROW_COOL] = { + .resourceHeaderID = 16, + .x = 208, + .y = 48, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_ARROW_BEAUTY] = { + .resourceHeaderID = 16, + .x = 224, + .y = 88, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_ARROW_CUTE] = { + .resourceHeaderID = 16, + .x = 216, + .y = 120, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_ARROW_SMART] = { + .resourceHeaderID = 16, + .x = 144, + .y = 120, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_ARROW_TOUGH] = { + .resourceHeaderID = 16, + .x = 136, + .y = 88, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_A_BUTTON] = { + .resourceHeaderID = 17, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONTEST_STAT_DOT_COOL] = { + .resourceHeaderID = 25, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONTEST_STAT_DOT_BEAUTY] = { + .resourceHeaderID = 25, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 1, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONTEST_STAT_DOT_CUTE] = { + .resourceHeaderID = 25, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 3, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONTEST_STAT_DOT_SMART] = { + .resourceHeaderID = 25, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 2, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONTEST_STAT_DOT_TOUGH] = { + .resourceHeaderID = 25, + .x = 0, + .y = 0, + .z = 0, + .animIdx = 4, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_SHINY_ICON] = { + .resourceHeaderID = 24, + .x = 98, + .y = 72, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_POKERUS_CURED_ICON] = { + .resourceHeaderID = 24, + .x = 98, + .y = 132, + .z = 0, + .animIdx = 1, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_1] = { + .resourceHeaderID = 26, + .x = 132, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_2] = { + .resourceHeaderID = 27, + .x = 164, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_3] = { + .resourceHeaderID = 28, + .x = 196, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_4] = { + .resourceHeaderID = 29, + .x = 228, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_5] = { + .resourceHeaderID = 30, + .x = 132, + .y = 96, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_6] = { + .resourceHeaderID = 31, + .x = 164, + .y = 96, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_7] = { + .resourceHeaderID = 32, + .x = 196, + .y = 96, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_8] = { + .resourceHeaderID = 33, + .x = 228, + .y = 96, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_9] = { + .resourceHeaderID = 34, + .x = 132, + .y = 136, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_10] = { + .resourceHeaderID = 35, + .x = 164, + .y = 136, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_11] = { + .resourceHeaderID = 36, + .x = 196, + .y = 136, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_12] = { + .resourceHeaderID = 37, + .x = 228, + .y = 136, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_CURSOR] = { + .resourceHeaderID = 38, + .x = 132, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_ARROW_UP] = { + .resourceHeaderID = 39, + .x = 180, + .y = 32, + .z = 0, + .animIdx = 1, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_ARROW_DOWN] = { + .resourceHeaderID = 39, + .x = 180, + .y = 120, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_RIBBON_FLASH] = { + .resourceHeaderID = 40, + .x = 8, + .y = 132, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_FLASH_COOL] = { + .resourceHeaderID = 41, + .x = 132, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_FLASH_BEAUTY] = { + .resourceHeaderID = 41, + .x = 132, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_FLASH_CUTE] = { + .resourceHeaderID = 41, + .x = 132, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_FLASH_SMART] = { + .resourceHeaderID = 41, + .x = 132, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_CONDITION_FLASH_TOUGH] = { + .resourceHeaderID = 41, + .x = 132, + .y = 56, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 2, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, + [SUMMARY_SPRITE_POKERUS_ICON] = { + .resourceHeaderID = 42, + .x = 76, + .y = 48, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 1, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + }, }; static const u8 sBallIDToPaletteNum[] = { @@ -221,29 +922,29 @@ void PokemonSummaryScreen_InitSpriteResources(PokemonSummaryScreen *summaryScree summaryScreen->spriteSys = SpriteSystem_Alloc(HEAP_ID_POKEMON_SUMMARY_SCREEN); summaryScreen->spriteMan = SpriteManager_New(summaryScreen->spriteSys); - RenderOamTemplate v0 = { - 0, - 128, - 0, - 32, - 0, - 128, - 0, - 32, + RenderOamTemplate renderOamTemplate = { + .mainOamStart = 0, + .mainOamCount = 128, + .mainAffineOamStart = 0, + .mainAffineOamCount = 32, + .subOamStart = 0, + .subOamCount = 128, + .subAffineOamStart = 0, + .subAffineOamCount = 32, }; - CharTransferTemplateWithModes v1 = { - 77, - 1024, - 1024, - GX_OBJVRAMMODE_CHAR_1D_32K, - GX_OBJVRAMMODE_CHAR_1D_32K + CharTransferTemplateWithModes charTransferTemplate = { + .maxTasks = 77, + .sizeMain = 1024, + .sizeSub = 1024, + .modeMain = GX_OBJVRAMMODE_CHAR_1D_32K, + .modeSub = GX_OBJVRAMMODE_CHAR_1D_32K }; - SpriteSystem_Init(summaryScreen->spriteSys, &v0, &v1, 32); + SpriteSystem_Init(summaryScreen->spriteSys, &renderOamTemplate, &charTransferTemplate, 32); SpriteSystem_InitSprites(summaryScreen->spriteSys, summaryScreen->spriteMan, SUMMARY_SPRITE_MAX); - SpriteResourceDataPaths v2 = { + SpriteResourceDataPaths resourcePaths = { "data/pst_chr.resdat", "data/pst_pal.resdat", "data/pst_cell.resdat", @@ -253,7 +954,7 @@ void PokemonSummaryScreen_InitSpriteResources(PokemonSummaryScreen *summaryScree "data/pst_h.cldat" }; - SpriteSystem_LoadResourceDataFromFilepaths(summaryScreen->spriteSys, summaryScreen->spriteMan, &v2); + SpriteSystem_LoadResourceDataFromFilepaths(summaryScreen->spriteSys, summaryScreen->spriteMan, &resourcePaths); } void PokemonSummaryScreen_FreeSpriteResources(PokemonSummaryScreen *summaryScreen) @@ -274,7 +975,7 @@ void PokemonSummaryScreen_UpdateArrowAndTapAnims(PokemonSummaryScreen *summarySc void PokemonSummaryScreen_SetDefaultSpriteStates(PokemonSummaryScreen *summaryScreen) { for (u16 i = 0; i < SUMMARY_SPRITE_MAX; i++) { - summaryScreen->sprites[i] = SpriteSystem_NewSpriteFromResourceHeader(summaryScreen->spriteSys, summaryScreen->spriteMan, &Unk_020F41A8[i]); + summaryScreen->sprites[i] = SpriteSystem_NewSpriteFromResourceHeader(summaryScreen->spriteSys, summaryScreen->spriteMan, &sSummaryScreenSpriteTemplates[i]); } SetMonAndTypeIcons(summaryScreen); @@ -395,10 +1096,10 @@ void PokemonSummaryScreen_SetCaughtBallGfx(PokemonSummaryScreen *summaryScreen) void PokemonSummaryScreen_UpdateStatusIcon(PokemonSummaryScreen *summaryScreen) { - if (summaryScreen->monData.status == 7) { + if (summaryScreen->monData.status == SUMMARY_CONDITION_NONE) { Sprite_SetDrawFlag(summaryScreen->sprites[SUMMARY_SPRITE_STATUS_ICON], FALSE); Sprite_SetDrawFlag(summaryScreen->sprites[SUMMARY_SPRITE_POKERUS_ICON], FALSE); - } else if (summaryScreen->monData.status != 0) { + } else if (summaryScreen->monData.status != SUMMARY_CONDITION_POKERUS) { Sprite_SetDrawFlag(summaryScreen->sprites[SUMMARY_SPRITE_POKERUS_ICON], FALSE); Sprite_SetDrawFlag(summaryScreen->sprites[SUMMARY_SPRITE_STATUS_ICON], TRUE); Sprite_SetAnim(summaryScreen->sprites[SUMMARY_SPRITE_STATUS_ICON], summaryScreen->monData.status); @@ -671,7 +1372,7 @@ void PokemonSummaryScreen_UpdateMiscMonDataSprites(PokemonSummaryScreen *summary } } -void PokemonSummaryScreen_ButtonTapAnim(PokemonSummaryScreen *summaryScreen) +void PokemonSummaryScreen_InitButtonTapAnim(PokemonSummaryScreen *summaryScreen) { Sprite_SetDrawFlag(summaryScreen->sprites[SUMMARY_SPRITE_BUTTON_TAP_CIRCLE], TRUE); Sprite_SetAnimFrame(summaryScreen->sprites[SUMMARY_SPRITE_BUTTON_TAP_CIRCLE], 0); @@ -681,9 +1382,9 @@ void PokemonSummaryScreen_ButtonTapAnim(PokemonSummaryScreen *summaryScreen) PokemonSummaryScreen_CalcSubscreenButtonTapAnimPos(summaryScreen, &x, &y); if (summaryScreen->subscreenType == SUMMARY_SUBSCREEN_TYPE_NORMAL) { - Sprite_SetPositionXY(summaryScreen->sprites[SUMMARY_SPRITE_BUTTON_TAP_CIRCLE], x, y + 192); + Sprite_SetPositionXY(summaryScreen->sprites[SUMMARY_SPRITE_BUTTON_TAP_CIRCLE], x, y + TAP_CIRCLE_BASE_Y); } else { - Sprite_SetPositionXY(summaryScreen->sprites[SUMMARY_SPRITE_BUTTON_TAP_CIRCLE], x - 4, y + 192); + Sprite_SetPositionXY(summaryScreen->sprites[SUMMARY_SPRITE_BUTTON_TAP_CIRCLE], x - 4, y + TAP_CIRCLE_BASE_Y); } } @@ -727,7 +1428,7 @@ void PokemonSummaryScreen_SetMonIcon(PokemonSummaryScreen *summaryScreen) SpriteSystem_ReplaceCharResObj(summaryScreen->spriteSys, summaryScreen->spriteMan, NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, iconIndex, 0, 11); Sprite_SetExplicitPalette2(summaryScreen->sprites[SUMMARY_SPRITE_MON_ICON], PokeIconPaletteIndex(summaryScreen->monData.species, summaryScreen->monData.form, summaryScreen->monData.isEgg) + 7); - Sprite_SetFlipMode(summaryScreen->sprites[SUMMARY_SPRITE_MON_ICON], (SpeciesData_GetFormValue(summaryScreen->monData.species, summaryScreen->monData.form, 28) ^ 1)); + Sprite_SetFlipMode(summaryScreen->sprites[SUMMARY_SPRITE_MON_ICON], (SpeciesData_GetFormValue(summaryScreen->monData.species, summaryScreen->monData.form, SPECIES_DATA_FLIP_SPRITE) ^ 1)); } void PokemonSummaryScreen_ShowMonIcon(PokemonSummaryScreen *summaryScreen) @@ -735,9 +1436,9 @@ void PokemonSummaryScreen_ShowMonIcon(PokemonSummaryScreen *summaryScreen) SpriteSystem_ReplacePlttResObj(summaryScreen->spriteSys, summaryScreen->spriteMan, NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, PokeIconPalettesFileIndex(), FALSE, 5); if (summaryScreen->page == SUMMARY_PAGE_BATTLE_MOVES) { - Sprite_SetPositionXY(summaryScreen->sprites[SUMMARY_SPRITE_MON_ICON], 24, 48); + Sprite_SetPositionXY(summaryScreen->sprites[SUMMARY_SPRITE_MON_ICON], BATTLE_MOVE_MON_ICON_X, BATTLE_MOVE_MON_ICON_Y); } else { - Sprite_SetPositionXY(summaryScreen->sprites[SUMMARY_SPRITE_MON_ICON], 32, 68); + Sprite_SetPositionXY(summaryScreen->sprites[SUMMARY_SPRITE_MON_ICON], CONTEST_MOVE_MON_ICON_X, CONTEST_MOVE_MON_ICON_Y); } Sprite_SetDrawFlag2(summaryScreen->sprites[SUMMARY_SPRITE_MON_ICON], TRUE); diff --git a/src/applications/pokemon_summary_screen/subscreen.c b/src/applications/pokemon_summary_screen/subscreen.c index b7ec21d1ea..e1dde8c168 100644 --- a/src/applications/pokemon_summary_screen/subscreen.c +++ b/src/applications/pokemon_summary_screen/subscreen.c @@ -13,6 +13,9 @@ #include "touch_screen.h" #include "unk_02005474.h" +#define MAX_BUTTON_ANIM_FRAMES 3 +#define BUTTON_TILE_COUNT 5 + typedef struct SummarySubscreenButton { u8 page; u8 paletteNum; @@ -20,7 +23,6 @@ typedef struct SummarySubscreenButton { u8 y; } SummarySubscreenButton; -static void sub_0223D0BC(PokemonSummaryScreen *summaryScreen); static int CheckSubscreenRectanglePress(PokemonSummaryScreen *summaryScreen); static const SummarySubscreenButton sSubscreenButtons_Normal[] = { @@ -102,7 +104,7 @@ void PokemonSummaryScreen_SetSubscreenType(PokemonSummaryScreen *summaryScreen) } break; case SUMMARY_MODE_SELECT_MOVE: - case SUMMARY_MODE_POFFIN: + case SUMMARY_MODE_FEED_POFFIN: default: summaryScreen->subscreenType = SUMMARY_SUBSCREEN_TYPE_NO_BUTTONS; } @@ -116,8 +118,8 @@ static void UpdateSubscreenButtonTilemap(PokemonSummaryScreen *summaryScreen, co u16 baseTile = (button->page & 1) * 15 + (button->page / 2) * (30 * 5) + animID * 5 + 30; u8 y, x; - for (y = 0; y < 5; y++) { - for (x = 0; x < 5; x++) { + for (y = 0; y < BUTTON_TILE_COUNT; y++) { + for (x = 0; x < BUTTON_TILE_COUNT; x++) { bgSub0Tilemap[(y + button->y) * 32 + x + button->x] = baseTile + y * 30 + x + (button->paletteNum << 12); } } @@ -161,28 +163,26 @@ static int CheckSubscreenRectanglePress(PokemonSummaryScreen *summaryScreen) return TOUCHSCREEN_INPUT_NONE; } - return sub_02022664(sSubscreenRectangles[summaryScreen->subscreenType]); + return TouchScreen_CheckRectanglePressed(sSubscreenRectangles[summaryScreen->subscreenType]); } -static int sub_02092224(PokemonSummaryScreen *summaryScreen) +static int CheckSubscreenRectangleHeld(PokemonSummaryScreen *summaryScreen) { - int v0; - if (summaryScreen->subscreenType == SUMMARY_SUBSCREEN_TYPE_NO_BUTTONS) { return TOUCHSCREEN_INPUT_NONE; } - v0 = sub_02022644(sSubscreenRectangles[summaryScreen->subscreenType]); + int rectHeld = TouchScreen_CheckRectangleHeld(sSubscreenRectangles[summaryScreen->subscreenType]); - if (v0 != TOUCHSCREEN_INPUT_NONE) { + if (rectHeld != TOUCHSCREEN_INPUT_NONE) { u16 v1 = 0xFFFE; - if (Bg_DoesPixelAtXYMatchVal(summaryScreen->bgConfig, BG_LAYER_SUB_0, gSystem.touchX, gSystem.touchY, &v1) == 0) { + if (Bg_DoesPixelAtXYMatchVal(summaryScreen->bgConfig, BG_LAYER_SUB_0, gSystem.touchX, gSystem.touchY, &v1) == FALSE) { return TOUCHSCREEN_INPUT_NONE; } } - return v0; + return rectHeld; } u8 PokemonSummaryScreen_DrawSubscreenButtonAnim(PokemonSummaryScreen *summaryScreen) @@ -190,29 +190,27 @@ u8 PokemonSummaryScreen_DrawSubscreenButtonAnim(PokemonSummaryScreen *summaryScr const SummarySubscreenButton *buttonList = sSubscreenButtonTypes[summaryScreen->subscreenType]; switch (summaryScreen->buttonState) { - case 0: + case SUMMARY_BUTTON_STATE_INIT_ANIM: Sound_PlayEffect(SEQ_SE_DP_BUTTON9); PokemonSummaryScreen_UpdateSubscreenButtonGfx(summaryScreen); UpdateSubscreenButtonTilemap(summaryScreen, &buttonList[summaryScreen->buttonCurrent], 2); Bg_ScheduleTilemapTransfer(summaryScreen->bgConfig, BG_LAYER_SUB_0); - PokemonSummaryScreen_ButtonTapAnim(summaryScreen); - summaryScreen->buttonCount = 0; - summaryScreen->buttonState = 1; + PokemonSummaryScreen_InitButtonTapAnim(summaryScreen); + summaryScreen->buttonAnimFrame = 0; + summaryScreen->buttonState = SUMMARY_BUTTON_STATE_SETUP_PAGE; break; - - case 1: - summaryScreen->buttonState = 2; + case SUMMARY_BUTTON_STATE_SETUP_PAGE: + summaryScreen->buttonState = SUMMARY_BUTTON_STATE_RUN_ANIM; break; - - case 2: - if (summaryScreen->buttonCount != 3) { - summaryScreen->buttonCount++; + case SUMMARY_BUTTON_STATE_RUN_ANIM: + if (summaryScreen->buttonAnimFrame != MAX_BUTTON_ANIM_FRAMES) { + summaryScreen->buttonAnimFrame++; break; } PokemonSummaryScreen_HideButtonTapCircle(summaryScreen); - if (sub_02092224(summaryScreen) != summaryScreen->buttonCurrent) { + if (CheckSubscreenRectangleHeld(summaryScreen) != summaryScreen->buttonCurrent) { if (summaryScreen->monData.isEgg != FALSE && buttonList[summaryScreen->buttonCurrent].page != SUMMARY_PAGE_MEMO && buttonList[summaryScreen->buttonCurrent].page != SUMMARY_PAGE_EXIT) { @@ -233,8 +231,8 @@ void PokemonSummaryScreen_CalcSubscreenButtonTapAnimPos(PokemonSummaryScreen *su { const SummarySubscreenButton *buttonList = sSubscreenButtonTypes[summaryScreen->subscreenType]; - *outX = buttonList[summaryScreen->buttonCurrent].x * 8 + (5 * 8) / 2; - *outY = buttonList[summaryScreen->buttonCurrent].y * 8 + (5 * 8) / 2; + *outX = buttonList[summaryScreen->buttonCurrent].x * 8 + (BUTTON_TILE_COUNT * 8) / 2; + *outY = buttonList[summaryScreen->buttonCurrent].y * 8 + (BUTTON_TILE_COUNT * 8) / 2; } u8 PokemonSummaryScreen_GetSubscreenButtonPage(PokemonSummaryScreen *summaryScreen, u8 button) diff --git a/src/applications/pokemon_summary_screen/window.c b/src/applications/pokemon_summary_screen/window.c index 8790a46632..550ec587c0 100644 --- a/src/applications/pokemon_summary_screen/window.c +++ b/src/applications/pokemon_summary_screen/window.c @@ -37,6 +37,11 @@ enum SummaryTextAlignment { ALIGN_CENTER, }; +#define RIBBON_INDEX_TEXT_X 56 + +#define PP_TEXT_X 60 +#define PP_TEXT_Y 16 + static void PrintStrbufToWindow(PokemonSummaryScreen *summaryScreen, Window *window, TextColor color, enum SummaryTextAlignment alignment); static void PrintTextToStaticWindow(PokemonSummaryScreen *summaryScreen, enum SummaryStaticWindow windowIndex, u32 entryID, TextColor color, enum SummaryTextAlignment alignment); static void PrintStaticWindows(PokemonSummaryScreen *summaryScreen); @@ -767,7 +772,7 @@ void PokemonSummaryScreen_AddExtraWindows(PokemonSummaryScreen *summaryScreen) case SUMMARY_PAGE_CONDITION: case SUMMARY_PAGE_EXIT: // the exit page shows the "favorite food" condition extra window when feeding poffins - if (summaryScreen->data->mode != SUMMARY_MODE_POFFIN && summaryScreen->data->mode != SUMMARY_MODE_CONDITION) { + if (summaryScreen->data->mode != SUMMARY_MODE_FEED_POFFIN && summaryScreen->data->mode != SUMMARY_MODE_SHOW_CONDITION_CHANGE) { return; } @@ -798,7 +803,7 @@ void PokemonSummaryScreen_RemoveExtraWindows(PokemonSummaryScreen *summaryScreen case SUMMARY_PAGE_CONDITION: case SUMMARY_PAGE_EXIT: // the exit page shows the "favorite food" condition extra window when feeding poffins - if (summaryScreen->data->mode != SUMMARY_MODE_POFFIN && summaryScreen->data->mode != SUMMARY_MODE_CONDITION) { + if (summaryScreen->data->mode != SUMMARY_MODE_FEED_POFFIN && summaryScreen->data->mode != SUMMARY_MODE_SHOW_CONDITION_CHANGE) { return; } break; @@ -1069,7 +1074,7 @@ static void DrawInfoPageWindows(PokemonSummaryScreen *summaryScreen) Text_AddPrinterWithParamsAndColor(&summaryScreen->extraWindows[SUMMARY_WINDOW_OT_NAME], FONT_SYSTEM, summaryScreen->monData.OTName, OTNameX, 0, TEXT_SPEED_NO_TRANSFER, SUMMARY_TEXT_RED, NULL); } - SetAndFormatNumberBuf(summaryScreen, summary_template_ot_id, (summaryScreen->monData.OTID & 0xFFFF), 5, PADDING_MODE_ZEROES); + SetAndFormatNumberBuf(summaryScreen, summary_template_ot_id, summaryScreen->monData.OTID & 0xFFFF, 5, PADDING_MODE_ZEROES); PrintStrbufToWindow(summaryScreen, &summaryScreen->extraWindows[SUMMARY_WINDOW_OT_ID], SUMMARY_TEXT_BLACK, ALIGN_CENTER); SetAndFormatNumberBuf(summaryScreen, summary_template_exp, summaryScreen->monData.curExp, 7, PADDING_MODE_SPACES); @@ -1198,18 +1203,18 @@ static void DrawConditionPageWindows(PokemonSummaryScreen *summaryScreen) Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_LABEL_CONDITION]); Window_ScheduleCopyToVRAM(&summaryScreen->staticWindows[SUMMARY_WINDOW_LABEL_SHEEN]); - if (summaryScreen->data->mode != SUMMARY_MODE_POFFIN && summaryScreen->data->mode != SUMMARY_MODE_CONDITION) { + if (summaryScreen->data->mode != SUMMARY_MODE_FEED_POFFIN && summaryScreen->data->mode != SUMMARY_MODE_SHOW_CONDITION_CHANGE) { return; } Window_FillTilemap(&summaryScreen->extraWindows[SUMMARY_WINDOW_FAVORITE_FOOD], 0); MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_favorite_food, summaryScreen->strbuf); PrintStrbufToWindow(summaryScreen, &summaryScreen->extraWindows[SUMMARY_WINDOW_FAVORITE_FOOD], SUMMARY_TEXT_WHITE, ALIGN_LEFT); - MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_template_likes_spicy + summaryScreen->monData.preferredFlavor, summaryScreen->strbuf); + MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_likes_it_spicy + summaryScreen->monData.preferredFlavor, summaryScreen->strbuf); Text_AddPrinterWithParamsAndColor(&summaryScreen->extraWindows[SUMMARY_WINDOW_FAVORITE_FOOD], FONT_SYSTEM, summaryScreen->strbuf, 0, 16, TEXT_SPEED_NO_TRANSFER, SUMMARY_TEXT_BLACK, NULL); Window_ScheduleCopyToVRAM(&summaryScreen->extraWindows[SUMMARY_WINDOW_FAVORITE_FOOD]); - if (summaryScreen->data->mode == SUMMARY_MODE_POFFIN) { + if (summaryScreen->data->mode == SUMMARY_MODE_FEED_POFFIN) { Window_FillTilemap(&summaryScreen->extraWindows[SUMMARY_WINDOW_POFFIN_BUTTON_PROMPT], 0); MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_poffin_feed_ok, summaryScreen->strbuf); PrintStrbufToWindow(summaryScreen, &summaryScreen->extraWindows[SUMMARY_WINDOW_POFFIN_BUTTON_PROMPT], SUMMARY_TEXT_WHITE, ALIGN_LEFT); @@ -1297,7 +1302,7 @@ static void DrawExitPageWindows(PokemonSummaryScreen *summaryScreen) PokemonSummaryScreen_UpdateAButtonSprite(summaryScreen, &summaryScreen->staticWindows[SUMMARY_WINDOW_BUTTON_PROMPT]); // the exit page shows the "favorite food" condition extra window when feeding poffins - if (summaryScreen->data->mode != SUMMARY_MODE_POFFIN && summaryScreen->data->mode != SUMMARY_MODE_CONDITION) { + if (summaryScreen->data->mode != SUMMARY_MODE_FEED_POFFIN && summaryScreen->data->mode != SUMMARY_MODE_SHOW_CONDITION_CHANGE) { return; } @@ -1306,7 +1311,7 @@ static void DrawExitPageWindows(PokemonSummaryScreen *summaryScreen) MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_favorite_food, summaryScreen->strbuf); PrintStrbufToWindow(summaryScreen, &summaryScreen->extraWindows[SUMMARY_WINDOW_FAVORITE_FOOD], SUMMARY_TEXT_WHITE, ALIGN_LEFT); - MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_template_likes_spicy + summaryScreen->monData.preferredFlavor, summaryScreen->strbuf); + MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_likes_it_spicy + summaryScreen->monData.preferredFlavor, summaryScreen->strbuf); Text_AddPrinterWithParamsAndColor(&summaryScreen->extraWindows[SUMMARY_WINDOW_FAVORITE_FOOD], FONT_SYSTEM, summaryScreen->strbuf, 0, 16, TEXT_SPEED_NO_TRANSFER, SUMMARY_TEXT_BLACK, NULL); Window_ScheduleCopyToVRAM(&summaryScreen->extraWindows[SUMMARY_WINDOW_FAVORITE_FOOD]); @@ -1323,7 +1328,7 @@ void PokemonSummaryScreen_PrintRibbonIndexAndMax(PokemonSummaryScreen *summarySc Strbuf_Free(buf); u8 strWidth = Font_CalcStrbufWidth(FONT_SYSTEM, summaryScreen->strbuf, 0); - u8 xOffset = 7 * 8 - strWidth; + u8 xOffset = RIBBON_INDEX_TEXT_X - strWidth; Text_AddPrinterWithParamsAndColor(&summaryScreen->extraWindows[SUMMARY_WINDOW_RIBBON_INDEX], FONT_SYSTEM, summaryScreen->strbuf, xOffset, 0, TEXT_SPEED_NO_TRANSFER, SUMMARY_TEXT_BLACK, NULL); @@ -1383,13 +1388,13 @@ static void PrintMoveNameAndPP(PokemonSummaryScreen *summaryScreen, u32 moveInde Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, summaryScreen->strbuf, 1, 2, TEXT_SPEED_NO_TRANSFER, SUMMARY_TEXT_WHITE, NULL); if (moveName != MOVE_NONE) { - MessageLoader_GetStrbuf(summaryScreen->msgLoader, 135, summaryScreen->strbuf); + MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_label_pp, summaryScreen->strbuf); Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, summaryScreen->strbuf, 16, 16, TEXT_SPEED_NO_TRANSFER, SUMMARY_TEXT_BLACK, NULL); - PrintCurrentAndMaxInfo(summaryScreen, moveIndex, 117, 136 + moveIndex, 141 + moveIndex, curPP, maxPP, 2, (40 + 20), 16); + PrintCurrentAndMaxInfo(summaryScreen, moveIndex, summary_slash, summary_template_current_pp_0 + moveIndex, summary_template_max_pp_0 + moveIndex, curPP, maxPP, 2, PP_TEXT_X, PP_TEXT_Y); } else { - MessageLoader_GetStrbuf(summaryScreen->msgLoader, 153, summaryScreen->strbuf); + MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_two_dashes, summaryScreen->strbuf); u32 strWidth = Font_CalcStrbufWidth(FONT_SYSTEM, summaryScreen->strbuf, 0); - Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, summaryScreen->strbuf, (40 + 20) - strWidth / 2, 16, TEXT_SPEED_NO_TRANSFER, SUMMARY_TEXT_BLACK, NULL); + Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, summaryScreen->strbuf, PP_TEXT_X - strWidth / 2, PP_TEXT_Y, TEXT_SPEED_NO_TRANSFER, SUMMARY_TEXT_BLACK, NULL); } } @@ -1487,7 +1492,7 @@ void PokemonSummaryScreen_PrintHMMovesCantBeForgotten(PokemonSummaryScreen *summ } Window_FillTilemap(window, 0); - MessageLoader_GetStrbuf(summaryScreen->msgLoader, 156, summaryScreen->strbuf); + MessageLoader_GetStrbuf(summaryScreen->msgLoader, summary_hm_moves_cant_be_forgotten, summaryScreen->strbuf); PrintStrbufToWindow(summaryScreen, window, SUMMARY_TEXT_BLACK, ALIGN_LEFT); Window_ScheduleCopyToVRAM(window); } diff --git a/src/battle/ov16_0226871C.c b/src/battle/ov16_0226871C.c index 6cb88ff012..5019c899f4 100644 --- a/src/battle/ov16_0226871C.c +++ b/src/battle/ov16_0226871C.c @@ -1557,7 +1557,7 @@ int ov16_0226925C(UnkStruct_ov16_02268A14 *param0) if (BattleSystem_BattleType(param0->unk_00) & 0x400) { v1 = ov16_0226CD18(param0); } else { - v1 = sub_02022664(v4->unk_14); + v1 = TouchScreen_CheckRectanglePressed(v4->unk_14); if (v1 == 0xffffffff) { v1 = ov16_0226BE48(param0); diff --git a/src/field_menu.c b/src/field_menu.c index 6a5d06535d..a833841d81 100644 --- a/src/field_menu.c +++ b/src/field_menu.c @@ -1029,15 +1029,15 @@ BOOL sub_0203B7C0(FieldTask *taskMan) switch (partyMan->unk_23) { case 1: { - PokemonSummary *summary = Heap_AllocFromHeap(11, sizeof(PokemonSummary)); + PokemonSummary *summary = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PokemonSummary)); summary->monData = Party_GetFromSavedata(fieldSystem->saveData); summary->options = SaveData_Options(fieldSystem->saveData); - summary->dataType = 1; - summary->pos = partyMan->unk_22; - summary->max = (u8)Party_GetCurrentCount(summary->monData); + summary->dataType = SUMMARY_DATA_PARTY_MON; + summary->monIndex = partyMan->unk_22; + summary->monMax = Party_GetCurrentCount(summary->monData); summary->move = 0; - summary->mode = 0; + summary->mode = SUMMARY_MODE_NORMAL; summary->specialRibbons = sub_0202D79C(fieldSystem->saveData); summary->dexMode = sub_0207A274(fieldSystem->saveData); summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData); @@ -1045,67 +1045,63 @@ BOOL sub_0203B7C0(FieldTask *taskMan) PokemonSummaryScreen_FlagVisiblePages(summary, Unk_020EA02C); PokemonSummaryScreen_SetPlayerProfile(summary, SaveData_GetTrainerInfo(fieldSystem->saveData)); - sub_0203D334(fieldSystem, summary); + FieldSystem_OpenSummaryScreen(fieldSystem, summary); menu->unk_25C = summary; sub_0203B674(menu, sub_0203C1C8); } break; case 4: { - PokemonSummary *v4 = Heap_AllocFromHeap(11, sizeof(PokemonSummary)); + PokemonSummary *summary = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PokemonSummary)); - v4->monData = Party_GetFromSavedata(fieldSystem->saveData); - v4->options = SaveData_Options(fieldSystem->saveData); - v4->dataType = 1; - v4->pos = partyMan->unk_22; - v4->max = 1; - v4->move = partyMan->unk_26; - v4->mode = 2; - v4->dexMode = sub_0207A274(fieldSystem->saveData); - v4->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData); - v4->chatotCry = NULL; + summary->monData = Party_GetFromSavedata(fieldSystem->saveData); + summary->options = SaveData_Options(fieldSystem->saveData); + summary->dataType = SUMMARY_DATA_PARTY_MON; + summary->monIndex = partyMan->unk_22; + summary->monMax = 1; + summary->move = partyMan->unk_26; + summary->mode = SUMMARY_MODE_SELECT_MOVE; + summary->dexMode = sub_0207A274(fieldSystem->saveData); + summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData); + summary->chatotCry = NULL; - PokemonSummaryScreen_FlagVisiblePages(v4, Unk_020EA01C); - PokemonSummaryScreen_SetPlayerProfile(v4, SaveData_GetTrainerInfo(fieldSystem->saveData)); - sub_0203D334(fieldSystem, v4); + PokemonSummaryScreen_FlagVisiblePages(summary, Unk_020EA01C); + PokemonSummaryScreen_SetPlayerProfile(summary, SaveData_GetTrainerInfo(fieldSystem->saveData)); + FieldSystem_OpenSummaryScreen(fieldSystem, summary); - { - UnkStruct_0203C1C8 *v5 = Heap_AllocFromHeap(11, sizeof(UnkStruct_0203C1C8)); + UnkStruct_0203C1C8 *v5 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(UnkStruct_0203C1C8)); - v5->unk_00 = partyMan->unk_24; - v5->unk_02 = 0; - menu->unk_260 = v5; - } + v5->unk_00 = partyMan->unk_24; + v5->unk_02 = 0; + menu->unk_260 = v5; - menu->unk_25C = v4; + menu->unk_25C = summary; sub_0203B674(menu, sub_0203C1C8); } break; case 5: { - PokemonSummary *v6 = Heap_AllocFromHeap(11, sizeof(PokemonSummary)); + PokemonSummary *summary = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PokemonSummary)); - v6->monData = Party_GetFromSavedata(fieldSystem->saveData); - v6->options = SaveData_Options(fieldSystem->saveData); - v6->dataType = 1; - v6->pos = partyMan->unk_22; - v6->max = 1; - v6->move = partyMan->unk_26; - v6->mode = 2; - v6->dexMode = sub_0207A274(fieldSystem->saveData); - v6->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData); - v6->chatotCry = NULL; + summary->monData = Party_GetFromSavedata(fieldSystem->saveData); + summary->options = SaveData_Options(fieldSystem->saveData); + summary->dataType = SUMMARY_DATA_PARTY_MON; + summary->monIndex = partyMan->unk_22; + summary->monMax = 1; + summary->move = partyMan->unk_26; + summary->mode = SUMMARY_MODE_SELECT_MOVE; + summary->dexMode = sub_0207A274(fieldSystem->saveData); + summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData); + summary->chatotCry = NULL; - PokemonSummaryScreen_FlagVisiblePages(v6, Unk_020EA01C); - PokemonSummaryScreen_SetPlayerProfile(v6, SaveData_GetTrainerInfo(fieldSystem->saveData)); - sub_0203D334(fieldSystem, v6); + PokemonSummaryScreen_FlagVisiblePages(summary, Unk_020EA01C); + PokemonSummaryScreen_SetPlayerProfile(summary, SaveData_GetTrainerInfo(fieldSystem->saveData)); + FieldSystem_OpenSummaryScreen(fieldSystem, summary); - { - UnkStruct_0203C1C8 *v7 = Heap_AllocFromHeap(11, sizeof(UnkStruct_0203C1C8)); + UnkStruct_0203C1C8 *v7 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(UnkStruct_0203C1C8)); - v7->unk_00 = 0; - v7->unk_02 = (u16)partyMan->unk_34; - menu->unk_260 = v7; - } + v7->unk_00 = 0; + v7->unk_02 = (u16)partyMan->unk_34; + menu->unk_260 = v7; - menu->unk_25C = v6; + menu->unk_25C = summary; sub_0203B674(menu, sub_0203C1C8); } break; case 6: { @@ -1150,11 +1146,10 @@ BOOL sub_0203B7C0(FieldTask *taskMan) menu->unk_25C = sub_0207D824(v11, Unk_020EA020, 11); sub_0207CB2C(menu->unk_25C, fieldSystem->saveData, 1, fieldSystem->unk_98); - } sub_0203D1E4(fieldSystem, menu->unk_25C); sub_0203B674(menu, sub_0203BC5C); - break; + } break; case 8: { UnkStruct_0203C7B8 *v14 = Heap_AllocFromHeap(11, sizeof(UnkStruct_0203C7B8)); @@ -1190,7 +1185,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan) case 20: case 21: case 22: - case 23: { + case 23: UnkFuncPtr_0203B7C0 v16; UnkStruct_020709CC v17; @@ -1200,7 +1195,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan) v16 = (UnkFuncPtr_0203B7C0)sub_0207070C(0, v17.unk_06); v16(&v17, &menu->unk_24C); - } break; + break; case 10: menu->unk_25C = sub_0203D20C(fieldSystem, &menu->unk_230); sub_0203B674(menu, sub_0203BC5C); @@ -1612,7 +1607,7 @@ static BOOL sub_0203C1C8(FieldTask *taskMan) Heap_FreeToHeap(menu->unk_25C); switch (v2->mode) { - case 2: { + case SUMMARY_MODE_SELECT_MOVE: { PartyManagementData *v3; UnkStruct_0203C1C8 *v4; @@ -1638,9 +1633,9 @@ static BOOL sub_0203C1C8(FieldTask *taskMan) } v3->unk_24 = v4->unk_00; - v3->unk_22 = v2->pos; + v3->unk_22 = v2->monIndex; v3->unk_26 = v2->move; - v3->unk_28 = v2->selectedSlot; + v3->unk_28 = v2->selectedMoveSlot; FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v3); Heap_FreeToHeap(menu->unk_260); @@ -1648,7 +1643,7 @@ static BOOL sub_0203C1C8(FieldTask *taskMan) sub_0203B674(menu, sub_0203B7C0); } break; default: - menu->unk_25C = sub_0203D390(fieldSystem, &menu->unk_24C, v2->pos); + menu->unk_25C = sub_0203D390(fieldSystem, &menu->unk_24C, v2->monIndex); sub_0203B674(menu, sub_0203B7C0); } diff --git a/src/overlay013/ov13_0221FC20.c b/src/overlay013/ov13_0221FC20.c index 9f4c4cba7f..21a73efe00 100644 --- a/src/overlay013/ov13_0221FC20.c +++ b/src/overlay013/ov13_0221FC20.c @@ -1368,7 +1368,7 @@ static u8 ov13_0222139C(UnkStruct_ov13_022213F0 *param0) static int ov13_022213E4(UnkStruct_ov13_022213F0 *param0, const TouchScreenRect *rect) { - int v0 = sub_02022664(rect); + int v0 = TouchScreen_CheckRectanglePressed(rect); return v0; } diff --git a/src/overlay013/ov13_022264F4.c b/src/overlay013/ov13_022264F4.c index 588f0e3c68..b28cfdbf65 100644 --- a/src/overlay013/ov13_022264F4.c +++ b/src/overlay013/ov13_022264F4.c @@ -818,7 +818,7 @@ static void ov13_022271D0(UnkStruct_ov13_02227244 *param0, u8 param1) static int ov13_02227238(UnkStruct_ov13_02227244 *param0, const TouchScreenRect *rect) { - int v0 = sub_02022664(rect); + int v0 = TouchScreen_CheckRectanglePressed(rect); return v0; } diff --git a/src/overlay017/ov17_0223F7E4.c b/src/overlay017/ov17_0223F7E4.c index 27e8ef3587..98a707fef3 100644 --- a/src/overlay017/ov17_0223F7E4.c +++ b/src/overlay017/ov17_0223F7E4.c @@ -695,7 +695,7 @@ int ov17_0223FAF8(UnkStruct_ov17_0223F7E4 *param0) GF_ASSERT(v4->unk_18 != NULL); - v1 = sub_02022664(v4->unk_14); + v1 = TouchScreen_CheckRectanglePressed(v4->unk_14); if (v1 == 0xffffffff) { v1 = ov17_02240C90(param0); diff --git a/src/overlay017/ov17_022492DC.c b/src/overlay017/ov17_022492DC.c index f1740f7b56..da073b5ed1 100644 --- a/src/overlay017/ov17_022492DC.c +++ b/src/overlay017/ov17_022492DC.c @@ -470,7 +470,7 @@ int ov17_02249760(UnkStruct_ov17_022492DC *param0) } GF_ASSERT(v3->unk_18 != NULL); - v1 = sub_02022664(v3->unk_14); + v1 = TouchScreen_CheckRectanglePressed(v3->unk_14); if (v1 == 0xffffffff) { if (v3->unk_18 == Unk_ov17_02254554) { diff --git a/src/overlay019/ov19_021D0D80.c b/src/overlay019/ov19_021D0D80.c index 9a1256ef5e..31df0aaafe 100644 --- a/src/overlay019/ov19_021D0D80.c +++ b/src/overlay019/ov19_021D0D80.c @@ -853,25 +853,25 @@ static void ov19_021D1C84(UnkStruct_ov19_021D5DF8 *param0) UnkStruct_ov19_021D5594 *v1 = ¶m0->unk_00.unk_14; param0->unk_12C.monData = param0->unk_00.unk_14.unk_00; - param0->unk_12C.dataType = (v1->unk_0B) ? 0 : 2; - param0->unk_12C.max = 1; - param0->unk_12C.pos = 0; - param0->unk_12C.mode = 0; + param0->unk_12C.dataType = (v1->unk_0B) ? SUMMARY_DATA_MON : SUMMARY_DATA_BOX_MON; + param0->unk_12C.monMax = 1; + param0->unk_12C.monIndex = 0; + param0->unk_12C.mode = SUMMARY_MODE_NORMAL; param0->unk_12C.move = 0; param0->unk_12C.options = param0->unk_1A4; } else if (ov19_021D5E10(¶m0->unk_00) == 0) { param0->unk_12C.monData = sub_02079C9C(param0->unk_120, sub_0207999C(param0->unk_120), 0); - param0->unk_12C.dataType = 2; - param0->unk_12C.max = (5 * 6); - param0->unk_12C.pos = ov19_021D5E24(¶m0->unk_00); - param0->unk_12C.mode = 0; + param0->unk_12C.dataType = SUMMARY_DATA_BOX_MON; + param0->unk_12C.monMax = MAX_MONS_PER_BOX; + param0->unk_12C.monIndex = ov19_021D5E24(¶m0->unk_00); + param0->unk_12C.mode = SUMMARY_MODE_NORMAL; param0->unk_12C.move = 0; } else { param0->unk_12C.monData = param0->unk_124; - param0->unk_12C.dataType = 1; - param0->unk_12C.max = Party_GetCurrentCount(param0->unk_124); - param0->unk_12C.pos = ov19_021D5E2C(¶m0->unk_00); - param0->unk_12C.mode = 0; + param0->unk_12C.dataType = SUMMARY_DATA_PARTY_MON; + param0->unk_12C.monMax = Party_GetCurrentCount(param0->unk_124); + param0->unk_12C.monIndex = ov19_021D5E2C(¶m0->unk_00); + param0->unk_12C.mode = SUMMARY_MODE_NORMAL; param0->unk_12C.move = 0; } @@ -2410,12 +2410,12 @@ static void ov19_021D3CFC(UnkStruct_ov19_021D4DF0 *param0, UnkStruct_ov19_021D5D switch (v0->unk_04) { case 0: - v0->unk_07 = param1->unk_12C.pos; + v0->unk_07 = param1->unk_12C.monIndex; v0->unk_05 = v0->unk_07 % 6; v0->unk_06 = v0->unk_07 / 6; break; case 1: - v0->unk_08 = param1->unk_12C.pos; + v0->unk_08 = param1->unk_12C.monIndex; break; default: return; diff --git a/src/overlay056/ov56_022561C0.c b/src/overlay056/ov56_022561C0.c index 569503fa4c..25316d8225 100644 --- a/src/overlay056/ov56_022561C0.c +++ b/src/overlay056/ov56_022561C0.c @@ -557,7 +557,7 @@ static int ov56_02256A68(UnkStruct_ov56_02256468 *param0) WMBssDesc *v4; UnkStruct_0203330C *v5; - v0 = sub_02022644(Unk_ov56_02257264); + v0 = TouchScreen_CheckRectangleHeld(Unk_ov56_02257264); v3 = ov56_02257174(param0); if (v0 != 0xffffffff) { @@ -633,7 +633,7 @@ static int ov56_02256BC0(UnkStruct_ov56_02256468 *param0) { int v0; - v0 = sub_02022644(Unk_ov56_02257250); + v0 = TouchScreen_CheckRectangleHeld(Unk_ov56_02257250); if (v0 != 0xffffffff) { u32 v1, v2; diff --git a/src/overlay058/ov58_021D0D80.c b/src/overlay058/ov58_021D0D80.c index 00748db1ac..a5e127f894 100644 --- a/src/overlay058/ov58_021D0D80.c +++ b/src/overlay058/ov58_021D0D80.c @@ -804,7 +804,7 @@ static void ov58_021D1A80(UnkStruct_02095EAC *param0) int v0 = -1, v1; int v2 = 0; - v0 = sub_02022664(Unk_ov58_021D2EB8); + v0 = TouchScreen_CheckRectanglePressed(Unk_ov58_021D2EB8); if (v0 != 0xffffffff) { switch (v0) { @@ -871,7 +871,7 @@ static void ov58_021D1A80(UnkStruct_02095EAC *param0) } } - v1 = sub_02022644(Unk_ov58_021D2DDC); + v1 = TouchScreen_CheckRectangleHeld(Unk_ov58_021D2DDC); Sprite_SetDrawFlag(param0->unk_23C[CommSys_CurNetId()], 0); if (v1 != 0xffffffff) { @@ -1869,7 +1869,7 @@ static void ov58_021D2D10(UnkStruct_02095EAC *param0) static int ov58_021D2D30(UnkStruct_02095EAC *param0) { - int v0 = sub_02022664(Unk_ov58_021D2DD4); + int v0 = TouchScreen_CheckRectanglePressed(Unk_ov58_021D2DD4); if (v0 != 0xffffffff) { return 1; diff --git a/src/overlay071/ov71_0223B140.c b/src/overlay071/ov71_0223B140.c index 14010a9928..88bbc841ef 100644 --- a/src/overlay071/ov71_0223B140.c +++ b/src/overlay071/ov71_0223B140.c @@ -1317,7 +1317,7 @@ static void ov71_0223C5A4(UnkStruct_ov71_0223B620 *param0, const u8 param1) static int ov71_0223C60C(BgConfig *param0, const TouchScreenRect *rect) { - int v0 = sub_02022664(rect); + int v0 = TouchScreen_CheckRectanglePressed(rect); if (v0 != 0xffffffff) { if (v0 != 0) { @@ -1336,7 +1336,7 @@ static int ov71_0223C60C(BgConfig *param0, const TouchScreenRect *rect) static int ov71_0223C654(BgConfig *param0, const TouchScreenRect *rect) { - int v0 = sub_02022644(rect); + int v0 = TouchScreen_CheckRectangleHeld(rect); if (v0 != 0xffffffff) { if (v0 != 0) { diff --git a/src/overlay072/ov72_0223D7A0.c b/src/overlay072/ov72_0223D7A0.c index 0a0f950f5d..40b9897853 100644 --- a/src/overlay072/ov72_0223D7A0.c +++ b/src/overlay072/ov72_0223D7A0.c @@ -648,7 +648,7 @@ static void ov72_0223E2A8(UnkStruct_ov72_0223DB98 *param0) { int v0 = -1, v1; - v0 = sub_02022664(Unk_ov72_0223EB4A); + v0 = TouchScreen_CheckRectanglePressed(Unk_ov72_0223EB4A); if (v0 != 0xffffffff) { if (v0 == 0) { @@ -664,7 +664,7 @@ static void ov72_0223E2A8(UnkStruct_ov72_0223DB98 *param0) } } - v1 = sub_02022644(Unk_ov72_0223EB42); + v1 = TouchScreen_CheckRectangleHeld(Unk_ov72_0223EB42); if (v1 != 0xffffffff) { ov72_0223EA18(param0); diff --git a/src/overlay079/ov79_021D0D80.c b/src/overlay079/ov79_021D0D80.c index 27db185817..71c7226a2d 100644 --- a/src/overlay079/ov79_021D0D80.c +++ b/src/overlay079/ov79_021D0D80.c @@ -219,13 +219,13 @@ static int ov79_021D0FB0(UnkStruct_ov79_021D0E1C *param0) { 0xFF, 0x0, 0x0, 0x0 } }; - v0 = sub_02022664(v2); + v0 = TouchScreen_CheckRectanglePressed(v2); if (v0 != 0xffffffff) { return v0; } - v0 = sub_02022644(v2); + v0 = TouchScreen_CheckRectangleHeld(v2); if (v0 == 0xffffffff) { if (param0->unk_14 == 1) { diff --git a/src/overlay080/ov80_021D1458.c b/src/overlay080/ov80_021D1458.c index aa9c403299..72799be581 100644 --- a/src/overlay080/ov80_021D1458.c +++ b/src/overlay080/ov80_021D1458.c @@ -378,7 +378,7 @@ static int ov80_021D1848(UnkStruct_ov80_021D2A08 *param0, int param1) { 0xff, 0, 0, 0 } }; - v0 = sub_02022664(&(v2[1 - param1])); + v0 = TouchScreen_CheckRectanglePressed(&(v2[1 - param1])); if ((v0 == 0xffffffff) || (param1 == 1)) { return v0; diff --git a/src/overlay084/ov84_0223B5A0.c b/src/overlay084/ov84_0223B5A0.c index 2c6cee121d..a8f2870b54 100644 --- a/src/overlay084/ov84_0223B5A0.c +++ b/src/overlay084/ov84_0223B5A0.c @@ -1592,7 +1592,7 @@ static u8 ov84_0223CD40(UnkStruct_ov84_0223B5A0 *param0) static int ov84_0223CDB0(UnkStruct_ov84_0223B5A0 *param0) { - int v0 = sub_02022664(Unk_ov84_022410C8[param0->unk_424].unk_04); + int v0 = TouchScreen_CheckRectanglePressed(Unk_ov84_022410C8[param0->unk_424].unk_04); if (v0 != 0xffffffff) { u16 v1 = 0xfffe; @@ -1607,7 +1607,7 @@ static int ov84_0223CDB0(UnkStruct_ov84_0223B5A0 *param0) static int ov84_0223CE08(UnkStruct_ov84_0223B5A0 *param0) { - int v0 = sub_02022644(Unk_ov84_022410C8[param0->unk_424].unk_04); + int v0 = TouchScreen_CheckRectangleHeld(Unk_ov84_022410C8[param0->unk_424].unk_04); if (v0 != 0xffffffff) { u16 v1 = 0xfffe; @@ -1789,7 +1789,7 @@ static void ov84_0223D0FC(UnkStruct_ov84_0223B5A0 *param0) static BOOL ov84_0223D1F4(UnkStruct_ov84_0223B5A0 *param0) { - int v0 = sub_02022664(Unk_ov84_02240E98); + int v0 = TouchScreen_CheckRectanglePressed(Unk_ov84_02240E98); if (v0 != 0xffffffff) { u16 v1 = 0xfffe; diff --git a/src/overlay088/ov88_0223B140.c b/src/overlay088/ov88_0223B140.c index bd46386d4a..82a8866c28 100644 --- a/src/overlay088/ov88_0223B140.c +++ b/src/overlay088/ov88_0223B140.c @@ -457,7 +457,7 @@ int ov88_0223B57C(OverlayManager *param0, int *param1) ov88_0223B3C0(v0); v0->unk_44 = 0; - v0->unk_88[0] = v0->unk_0C.pos + v0->unk_3C * 6; + v0->unk_88[0] = v0->unk_0C.monIndex + v0->unk_3C * 6; ov88_0223BE28(v0); ov88_0223CF68(v0->unk_88[0], v0->unk_39C[0], 0); @@ -1509,7 +1509,7 @@ static void ov88_0223CE74(UnkStruct_02095E80 *param0) return; } - v2 = sub_02022664(Unk_ov88_0223EE28); + v2 = TouchScreen_CheckRectanglePressed(Unk_ov88_0223EE28); if (v2 != 0xffffffff) { if (param0->unk_6F4[param0->unk_88[0]].unk_05) { @@ -1726,20 +1726,20 @@ static void ov88_0223D1EC(UnkStruct_02095E80 *param0, int param1) { if (param1 == 0) { param0->unk_0C.monData = param0->unk_2270; - param0->unk_0C.max = Party_GetCurrentCount(param0->unk_08->unk_08); + param0->unk_0C.monMax = Party_GetCurrentCount(param0->unk_08->unk_08); param0->unk_0C.chatotCry = NULL; PokemonSummaryScreen_SetPlayerProfile(¶m0->unk_0C, CommInfo_TrainerInfo(CommSys_CurNetId())); } else { param0->unk_0C.monData = param0->unk_2274; - param0->unk_0C.max = Party_GetCurrentCount(param0->unk_2274); + param0->unk_0C.monMax = Party_GetCurrentCount(param0->unk_2274); param0->unk_0C.chatotCry = (ChatotCry *)param0->unk_2E6C[CommSys_CurNetId() ^ 1]; PokemonSummaryScreen_SetPlayerProfile(¶m0->unk_0C, CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1)); } - param0->unk_0C.dataType = 1; - param0->unk_0C.pos = param0->unk_88[0] % 6; - param0->unk_0C.mode = 1; + param0->unk_0C.dataType = SUMMARY_DATA_PARTY_MON; + param0->unk_0C.monIndex = param0->unk_88[0] % 6; + param0->unk_0C.mode = SUMMARY_MODE_LOCK_MOVES; param0->unk_0C.move = 0; param0->unk_0C.showContest = PokemonSummaryScreen_ShowContestData(param0->unk_08->unk_10); param0->unk_0C.dexMode = param0->unk_08->unk_30; diff --git a/src/overlay091/ov91_021D0D80.c b/src/overlay091/ov91_021D0D80.c index 545a7edb82..9d979415ca 100644 --- a/src/overlay091/ov91_021D0D80.c +++ b/src/overlay091/ov91_021D0D80.c @@ -1501,12 +1501,12 @@ static int ov91_021D261C(UnkStruct_ov91_021D0ED8 *param0) param0->unk_14C.monData = param0->unk_00->unk_00; param0->unk_14C.options = param0->unk_00->unk_08; - param0->unk_14C.dataType = 0; - param0->unk_14C.pos = 0; - param0->unk_14C.max = 1; + param0->unk_14C.dataType = SUMMARY_DATA_MON; + param0->unk_14C.monIndex = 0; + param0->unk_14C.monMax = 1; param0->unk_14C.move = ov91_021D1DD0(param0); - param0->unk_14C.mode = 2; - param0->unk_14C.showContest = 1; + param0->unk_14C.mode = SUMMARY_MODE_SELECT_MOVE; + param0->unk_14C.showContest = TRUE; param0->unk_14C.chatotCry = NULL; PokemonSummaryScreen_FlagVisiblePages(¶m0->unk_14C, v0); @@ -1523,7 +1523,7 @@ static int ov91_021D26AC(UnkStruct_ov91_021D0ED8 *param0) ov91_021D2548(param0, param0->unk_00->unk_10, 1); ov91_021D2574(param0, 0); ov91_021D25E4(param0); - param0->unk_00->unk_17 = param0->unk_14C.selectedSlot; + param0->unk_00->unk_17 = param0->unk_14C.selectedMoveSlot; param0->unk_180 = 7; return 0; } diff --git a/src/overlay094/ov94_02243EF8.c b/src/overlay094/ov94_02243EF8.c index fb06aaaaba..70e030aa15 100644 --- a/src/overlay094/ov94_02243EF8.c +++ b/src/overlay094/ov94_02243EF8.c @@ -222,7 +222,7 @@ static const TouchScreenRect Unk_ov94_0224633E[] = { int ov94_02244214(int param0) { - int v0 = sub_02022664(Unk_ov94_0224633E); + int v0 = TouchScreen_CheckRectanglePressed(Unk_ov94_0224633E); if (v0 != 0xffffffff) { if (v0 < param0) { diff --git a/src/overlay094/ov94_022443E0.c b/src/overlay094/ov94_022443E0.c index adf39992f1..0f64ac7fa3 100644 --- a/src/overlay094/ov94_022443E0.c +++ b/src/overlay094/ov94_022443E0.c @@ -29,10 +29,10 @@ static const u8 Unk_ov94_02246360[] = { int ov94_022443E0(UnkStruct_ov94_0223FD4C *param0, int param1) { param0->unk_B8.monData = ov94_022411DC(param0->unk_00->unk_08, param0->unk_00->unk_0C, param0->unk_110, param0->unk_112); - param0->unk_B8.dataType = 2; - param0->unk_B8.max = 1; - param0->unk_B8.pos = 0; - param0->unk_B8.mode = 1; + param0->unk_B8.dataType = SUMMARY_DATA_BOX_MON; + param0->unk_B8.monMax = 1; + param0->unk_B8.monIndex = 0; + param0->unk_B8.mode = SUMMARY_MODE_LOCK_MOVES; param0->unk_B8.move = 0; param0->unk_B8.showContest = PokemonSummaryScreen_ShowContestData(param0->unk_00->unk_20); param0->unk_B8.dexMode = param0->unk_00->unk_34; diff --git a/src/overlay097/ov97_02233B18.c b/src/overlay097/ov97_02233B18.c index a27f6f57be..4db915a911 100644 --- a/src/overlay097/ov97_02233B18.c +++ b/src/overlay097/ov97_02233B18.c @@ -1964,7 +1964,7 @@ static int ov97_022356E8(OverlayManager *param0, int *param1) break; case 13: - v0 = sub_02022664((const TouchScreenRect *)v3->unk_374); + v0 = TouchScreen_CheckRectanglePressed((const TouchScreenRect *)v3->unk_374); if (v0 != 0xffffffff) { if (v0 < 30) { diff --git a/src/overlay104/ov104_02239C58.c b/src/overlay104/ov104_02239C58.c index e8cdfd6ea2..d80563aaa0 100644 --- a/src/overlay104/ov104_02239C58.c +++ b/src/overlay104/ov104_02239C58.c @@ -202,11 +202,11 @@ static void ov104_02239FB0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param param1->unk_AC->monData = Party_GetFromSavedata(param1->unk_00); param1->unk_AC->dexMode = sub_0207A274(param1->unk_00); param1->unk_AC->showContest = PokemonSummaryScreen_ShowContestData(param1->unk_00); - param1->unk_AC->dataType = 1; - param1->unk_AC->pos = param1->unk_9F; - param1->unk_AC->max = (u8)Party_GetCurrentCount(param1->unk_AC->monData); + param1->unk_AC->dataType = SUMMARY_DATA_PARTY_MON; + param1->unk_AC->monIndex = param1->unk_9F; + param1->unk_AC->monMax = (u8)Party_GetCurrentCount(param1->unk_AC->monData); param1->unk_AC->move = 0; - param1->unk_AC->mode = 0; + param1->unk_AC->mode = SUMMARY_MODE_NORMAL; param1->unk_AC->specialRibbons = sub_0202D79C(param1->unk_00); PokemonSummaryScreen_FlagVisiblePages(param1->unk_AC, v0); @@ -218,7 +218,7 @@ static void ov104_02239FB0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param static void ov104_0223A090(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3) { - param1->unk_9F = param1->unk_AC->pos; + param1->unk_9F = param1->unk_AC->monIndex; Heap_FreeToHeap(param1->unk_AC); param1->unk_AC = NULL; *param1->unk_B0 = 0; diff --git a/src/overlay105/ov105_02241AE0.c b/src/overlay105/ov105_02241AE0.c index fb6a378dd2..44f484ed27 100644 --- a/src/overlay105/ov105_02241AE0.c +++ b/src/overlay105/ov105_02241AE0.c @@ -861,7 +861,7 @@ static BOOL ov105_02242698(UnkStruct_ov105_02241FF4 *param0) case 0: if (OverlayManager_Exec(param0->unk_04) == 1) { - param0->unk_334 = param0->unk_140->pos; + param0->unk_334 = param0->unk_140->monIndex; Heap_FreeToHeap(param0->unk_140); Heap_FreeToHeap(param0->unk_04); param0->unk_04 = NULL; @@ -2893,10 +2893,10 @@ static void ov105_02245464(UnkStruct_ov105_02241FF4 *param0) param0->unk_140->monData = param0->unk_31C; param0->unk_140->options = param0->unk_138; - param0->unk_140->dataType = 1; - param0->unk_140->mode = 1; - param0->unk_140->max = param0->unk_12; - param0->unk_140->pos = ov105_022461A0(param0->unk_30C); + param0->unk_140->dataType = SUMMARY_DATA_PARTY_MON; + param0->unk_140->mode = SUMMARY_MODE_LOCK_MOVES; + param0->unk_140->monMax = param0->unk_12; + param0->unk_140->monIndex = ov105_022461A0(param0->unk_30C); param0->unk_140->move = 0; param0->unk_140->dexMode = sub_0207A274(param0->unk_13C); param0->unk_140->showContest = FALSE; diff --git a/src/overlay106/ov106_02241AE0.c b/src/overlay106/ov106_02241AE0.c index 1dfacfad19..e963e191eb 100644 --- a/src/overlay106/ov106_02241AE0.c +++ b/src/overlay106/ov106_02241AE0.c @@ -378,7 +378,7 @@ static BOOL ov106_02241E14(UnkStruct_ov106_02243118 *param0) case 0: if (OverlayManager_Exec(param0->unk_04) == 1) { - param0->unk_288 = param0->unk_BC->pos; + param0->unk_288 = param0->unk_BC->monIndex; Heap_FreeToHeap(param0->unk_BC); Heap_FreeToHeap(param0->unk_04); param0->unk_04 = NULL; @@ -1210,11 +1210,11 @@ static void ov106_02242CA4(UnkStruct_ov106_02243118 *param0) memset(param0->unk_BC, 0, sizeof(PokemonSummary)); param0->unk_BC->monData = param0->unk_290; - param0->unk_BC->dataType = 1; + param0->unk_BC->dataType = SUMMARY_DATA_PARTY_MON; param0->unk_BC->options = param0->unk_B4; - param0->unk_BC->mode = 1; - param0->unk_BC->max = Party_GetCurrentCount(param0->unk_290); - param0->unk_BC->pos = 0; + param0->unk_BC->mode = SUMMARY_MODE_LOCK_MOVES; + param0->unk_BC->monMax = Party_GetCurrentCount(param0->unk_290); + param0->unk_BC->monIndex = 0; param0->unk_BC->move = 0; param0->unk_BC->dexMode = sub_0207A274(param0->unk_B8); param0->unk_BC->showContest = PokemonSummaryScreen_ShowContestData(param0->unk_B8); diff --git a/src/overlay111/ov111_021D0D80.c b/src/overlay111/ov111_021D0D80.c index f957f14eda..114cb2ad37 100644 --- a/src/overlay111/ov111_021D0D80.c +++ b/src/overlay111/ov111_021D0D80.c @@ -518,7 +518,7 @@ static BOOL ov111_021D10B8(UnkStruct_ov111_021D0F7C *param0) param0->unk_0F--; } - v3 = sub_02022644((const TouchScreenRect *)Unk_ov111_021D364C); + v3 = TouchScreen_CheckRectangleHeld((const TouchScreenRect *)Unk_ov111_021D364C); if (v3 != 0xffffffff) { GXLayers_EngineAToggleLayers((GX_PLANEMASK_BG2), 0); @@ -745,7 +745,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0) break; case 3: sub_0201E564(¶m0->unk_424, 4, 2); - v1 = sub_02022644((const TouchScreenRect *)Unk_ov111_021D3794); + v1 = TouchScreen_CheckRectangleHeld((const TouchScreenRect *)Unk_ov111_021D3794); if (v1 != 0xffffffff) { if (ov111_021D2918(param0) < 3) { @@ -802,7 +802,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0) } if (param0->unk_0E == (3 - 1)) { - v1 = sub_02022664((const TouchScreenRect *)Unk_ov111_021D3610); + v1 = TouchScreen_CheckRectanglePressed((const TouchScreenRect *)Unk_ov111_021D3610); if (v1 != 0xffffffff) { ov111_021D350C(param0->unk_3A0, 1); @@ -817,7 +817,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0) break; } } else { - v1 = sub_02022664((const TouchScreenRect *)Unk_ov111_021D3618); + v1 = TouchScreen_CheckRectanglePressed((const TouchScreenRect *)Unk_ov111_021D3618); if (v1 != 0xffffffff) { ov111_021D350C(param0->unk_3A0, 1); diff --git a/src/overlay113/ov113_02260620.c b/src/overlay113/ov113_02260620.c index a8631478b6..370c2347da 100644 --- a/src/overlay113/ov113_02260620.c +++ b/src/overlay113/ov113_02260620.c @@ -130,7 +130,7 @@ int ov113_02260748(UnkStruct_ov113_02260818 *param0, int param1) int v0; int v1 = 0xff; - v0 = sub_02022664(Unk_ov113_02260D4C); + v0 = TouchScreen_CheckRectanglePressed(Unk_ov113_02260D4C); if (v0 < 6) { if ((param1 != v0) && (param0[v0].unk_02 != 0) && (param0[v0].unk_02 <= NATIONAL_DEX_COUNT)) { diff --git a/src/scrcmd.c b/src/scrcmd.c index 689fe9c3bd..264beea930 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1217,8 +1217,8 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_1C3, ScrCmd_1C4, ScrCmd_InitSizeContestRecord, - ScrCmd_1C6, - ScrCmd_1C7, + ScrCmd_SelectPartyMonMove, + ScrCmd_GetSelectedPartyMonMove, ScrCmd_1C8, ScrCmd_1C9, ScrCmd_1CA, @@ -1305,7 +1305,7 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_EnableSwarms, ScrCmd_21C, ScrCmd_21D, - ScrCmd_21E, + ScrCmd_Dummy21E, ScrCmd_21F, ScrCmd_220, ScrCmd_221, @@ -3801,7 +3801,7 @@ static BOOL ScrCmd_2E8(ScriptContext *ctx) GF_ASSERT(*v0 != 0); v2 = *v0; - *v1 = v2->selectedSlot; + *v1 = v2->selectedMoveSlot; Heap_FreeToHeap(*v0); *v0 = NULL; @@ -3910,13 +3910,7 @@ static BOOL sub_02041D3C(ScriptContext *ctx) BOOL ScriptContext_WaitForApplicationExit(ScriptContext *ctx) { - FieldSystem *fieldSystem = ctx->fieldSystem; - - if (FieldSystem_IsRunningApplication(fieldSystem)) { - return FALSE; - } - - return TRUE; + return !FieldSystem_IsRunningApplication(ctx->fieldSystem); } static BOOL ScrCmd_ReturnToField(ScriptContext *ctx) diff --git a/src/touch_screen.c b/src/touch_screen.c index 2cb9956648..e4590d27fd 100644 --- a/src/touch_screen.c +++ b/src/touch_screen.c @@ -5,17 +5,15 @@ #include "system.h" -static int sub_02022594(const TouchScreenRect *rect, u32 param1, u32 param2); +static int CheckRectangleTouch(const TouchScreenRect *rect, u32 x, u32 y); static BOOL sub_020225E0(const TouchScreenHitTable *hitTable, u32 param1, u32 param2); static BOOL sub_0202260C(const TouchScreenHitTable *hitTable, u32 param1, u32 param2); -static int sub_02022594(const TouchScreenRect *rect, u32 param1, u32 param2) +static int CheckRectangleTouch(const TouchScreenRect *rect, u32 x, u32 y) { - int v0; - - for (v0 = 0; rect[v0].rect.top != 0xff; v0++) { - if (((u32)(param1 - rect[v0].rect.left) < (u32)(rect[v0].rect.right - rect[v0].rect.left)) & ((u32)(param2 - rect[v0].rect.top) < (u32)(rect[v0].rect.bottom - rect[v0].rect.top))) { - return v0; + for (int i = 0; rect[i].rect.top != 0xFF; i++) { + if (((x - rect[i].rect.left) < (rect[i].rect.right - rect[i].rect.left)) & ((y - rect[i].rect.top) < (rect[i].rect.bottom - rect[i].rect.top))) { + return i; } } @@ -43,19 +41,19 @@ static BOOL sub_0202260C(const TouchScreenHitTable *hitTable, u32 param1, u32 pa return 0; } -int sub_02022644(const TouchScreenRect *rect) +int TouchScreen_CheckRectangleHeld(const TouchScreenRect *rect) { if (gSystem.touchHeld) { - return sub_02022594(rect, gSystem.touchX, gSystem.touchY); + return CheckRectangleTouch(rect, gSystem.touchX, gSystem.touchY); } return TOUCHSCREEN_INPUT_NONE; } -int sub_02022664(const TouchScreenRect *rect) +int TouchScreen_CheckRectanglePressed(const TouchScreenRect *rect) { if (gSystem.touchPressed) { - return sub_02022594(rect, gSystem.touchX, gSystem.touchY); + return CheckRectangleTouch(rect, gSystem.touchX, gSystem.touchY); } return TOUCHSCREEN_INPUT_NONE; diff --git a/src/unk_0203D1B8.c b/src/unk_0203D1B8.c index 7b2b97d37a..fab7b32175 100644 --- a/src/unk_0203D1B8.c +++ b/src/unk_0203D1B8.c @@ -374,9 +374,9 @@ void sub_0203D30C(FieldSystem *fieldSystem, void *param1) FieldSystem_StartChildProcess(fieldSystem, &template, fieldSystem->saveData); } -void sub_0203D334(FieldSystem *fieldSystem, void *param1) +void FieldSystem_OpenSummaryScreen(FieldSystem *fieldSystem, void *overlayArgs) { - FieldSystem_StartChildProcess(fieldSystem, &gPokemonSummaryScreenApp, param1); + FieldSystem_StartChildProcess(fieldSystem, &gPokemonSummaryScreenApp, overlayArgs); } static PartyManagementData *sub_0203D344(int param0, FieldSystem *fieldSystem, int param2, int param3) @@ -449,7 +449,7 @@ int sub_0203D438(void *param0) int sub_0203D440(void *param0) { PokemonSummary *v0 = param0; - return v0->pos; + return v0->monIndex; } static BOOL sub_0203D444(FieldTask *param0) @@ -485,8 +485,8 @@ static BOOL sub_0203D444(FieldTask *param0) break; case 2: v1->unk_08 = sub_0203D670(fieldSystem, v1->unk_00, 0); - v1->unk_08->pos = v1->unk_04->unk_22; - sub_0203D334(fieldSystem, v1->unk_08); + v1->unk_08->monIndex = v1->unk_04->unk_22; + FieldSystem_OpenSummaryScreen(fieldSystem, v1->unk_08); *v2 = 3; break; case 3: @@ -544,15 +544,15 @@ void *sub_0203D578(int param0, FieldSystem *fieldSystem, int param2, int param3, void *sub_0203D5C8(int param0, FieldSystem *fieldSystem, int param2) { - PokemonSummary *v0 = Heap_AllocFromHeap(11, sizeof(PokemonSummary)); + PokemonSummary *v0 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PokemonSummary)); v0->monData = Party_GetFromSavedata(fieldSystem->saveData); v0->options = SaveData_Options(fieldSystem->saveData); - v0->dataType = 1; - v0->pos = param2; - v0->max = (u8)Party_GetCurrentCount(v0->monData); + v0->dataType = SUMMARY_DATA_PARTY_MON; + v0->monIndex = param2; + v0->monMax = Party_GetCurrentCount(v0->monData); v0->move = 0; - v0->mode = 0; + v0->mode = SUMMARY_MODE_NORMAL; v0->specialRibbons = sub_0202D79C(fieldSystem->saveData); v0->dexMode = sub_0207A274(fieldSystem->saveData); v0->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData); @@ -590,9 +590,9 @@ PokemonSummary *sub_0203D670(FieldSystem *fieldSystem, int param1, int param2) v0->options = SaveData_Options(v1); v0->monData = Party_GetFromSavedata(v1); - v0->dataType = 1; - v0->pos = 0; - v0->max = Party_GetCurrentCount(v0->monData); + v0->dataType = SUMMARY_DATA_PARTY_MON; + v0->monIndex = 0; + v0->monMax = Party_GetCurrentCount(v0->monData); v0->move = 0; v0->mode = param2; v0->dexMode = sub_0207A274(v1); @@ -611,33 +611,32 @@ static const u8 Unk_020EA160[] = { 0x8 }; -void *sub_0203D6E4(int param0, FieldSystem *fieldSystem, u8 param2) +void *FieldSystem_OpenSummaryScreenSelectMove(enum HeapId heapID, FieldSystem *fieldSystem, u8 partySlot) { - PokemonSummary *v0 = Heap_AllocFromHeap(param0, sizeof(PokemonSummary)); + PokemonSummary *summary = Heap_AllocFromHeap(heapID, sizeof(PokemonSummary)); - memset(v0, 0, sizeof(PokemonSummary)); + memset(summary, 0, sizeof(PokemonSummary)); - v0->monData = Party_GetFromSavedata(fieldSystem->saveData); - v0->options = SaveData_Options(fieldSystem->saveData); - v0->dataType = 1; - v0->pos = param2; - v0->max = 1; - v0->move = 0; - v0->mode = 2; - v0->dexMode = sub_0207A274(fieldSystem->saveData); - v0->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData); + summary->monData = Party_GetFromSavedata(fieldSystem->saveData); + summary->options = SaveData_Options(fieldSystem->saveData); + summary->dataType = SUMMARY_DATA_PARTY_MON; + summary->monIndex = partySlot; + summary->monMax = 1; + summary->move = 0; + summary->mode = SUMMARY_MODE_SELECT_MOVE; + summary->dexMode = sub_0207A274(fieldSystem->saveData); + summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData); - PokemonSummaryScreen_FlagVisiblePages(v0, Unk_020EA160); - PokemonSummaryScreen_SetPlayerProfile(v0, SaveData_GetTrainerInfo(fieldSystem->saveData)); - sub_0203D334(fieldSystem, v0); + PokemonSummaryScreen_FlagVisiblePages(summary, Unk_020EA160); + PokemonSummaryScreen_SetPlayerProfile(summary, SaveData_GetTrainerInfo(fieldSystem->saveData)); + FieldSystem_OpenSummaryScreen(fieldSystem, summary); - return v0; + return summary; } -int sub_0203D750(void *param0) +int PokemonSummary_GetSelectedMoveSlot(void *summary) { - PokemonSummary *v0 = param0; - return v0->selectedSlot; + return ((PokemonSummary *)summary)->selectedMoveSlot; } void sub_0203D754(FieldSystem *fieldSystem, UnkStruct_02042434 *param1) @@ -1767,11 +1766,11 @@ void *sub_0203E63C(int param0, FieldSystem *fieldSystem, u16 param2, u16 param3) v0->monData = Party_GetPokemonBySlotIndex(Party_GetFromSavedata(fieldSystem->saveData), param2); v0->options = SaveData_Options(fieldSystem->saveData); - v0->dataType = 0; - v0->pos = 0; - v0->max = 1; + v0->dataType = SUMMARY_DATA_MON; + v0->monIndex = 0; + v0->monMax = 1; v0->move = param3; - v0->mode = 2; + v0->mode = SUMMARY_MODE_SELECT_MOVE; v0->specialRibbons = sub_0202D79C(fieldSystem->saveData); v0->dexMode = sub_0207A274(fieldSystem->saveData); v0->showContest = SystemFlag_CheckContestHallVisited(SaveData_GetVarsFlags(fieldSystem->saveData)); diff --git a/src/unk_0204EDA4.c b/src/unk_0204EDA4.c index 48fa833f5c..f0f8f4eacf 100644 --- a/src/unk_0204EDA4.c +++ b/src/unk_0204EDA4.c @@ -3,6 +3,8 @@ #include #include +#include "constants/moves.h" + #include "struct_defs/struct_020997B8.h" #include "field_script_context.h" @@ -19,41 +21,36 @@ static void sub_0204EE90(ScriptContext *param0, u16 param1, Pokemon *param2, u16 *param3); -BOOL ScrCmd_1C6(ScriptContext *param0) +BOOL ScrCmd_SelectPartyMonMove(ScriptContext *ctx) { - u16 v0 = ScriptContext_GetVar(param0); - void **v1; + u16 partySlot = ScriptContext_GetVar(ctx); + void **partyData = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_PARTY_MANAGEMENT_DATA); + *partyData = FieldSystem_OpenSummaryScreenSelectMove(HEAP_ID_FIELD_TASK, ctx->fieldSystem, partySlot); - v1 = FieldSystem_GetScriptMemberPtr(param0->fieldSystem, 19); - *v1 = sub_0203D6E4(32, param0->fieldSystem, v0); - - ScriptContext_Pause(param0, ScriptContext_WaitForApplicationExit); - return 1; + ScriptContext_Pause(ctx, ScriptContext_WaitForApplicationExit); + return TRUE; } -BOOL ScrCmd_1C7(ScriptContext *param0) +BOOL ScrCmd_GetSelectedPartyMonMove(ScriptContext *ctx) { - void **v0; - u16 *v1; + u16 *destVar = ScriptContext_GetVarPointer(ctx); + void **partyData = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_PARTY_MANAGEMENT_DATA); + GF_ASSERT(*partyData != 0); + *destVar = PokemonSummary_GetSelectedMoveSlot(*partyData); - v1 = ScriptContext_GetVarPointer(param0); - v0 = FieldSystem_GetScriptMemberPtr(param0->fieldSystem, 19); - GF_ASSERT(*v0 != 0); - *v1 = sub_0203D750(*v0); - - if (*v1 == 4) { - *v1 = 0xff; + if (*destVar == LEARNED_MOVES_MAX) { + *destVar = MOVE_NOT_SELECTED; } - Heap_FreeToHeap(*v0); - *v0 = NULL; + Heap_FreeToHeap(*partyData); + *partyData = NULL; - return 0; + return FALSE; } -BOOL ScrCmd_21E(ScriptContext *param0) +BOOL ScrCmd_Dummy21E(ScriptContext *ctx) { - return 0; + return FALSE; } BOOL ScrCmd_21F(ScriptContext *param0) diff --git a/src/unk_0204F13C.c b/src/unk_0204F13C.c index 0b39c0c69f..904c130ed5 100644 --- a/src/unk_0204F13C.c +++ b/src/unk_0204F13C.c @@ -424,11 +424,11 @@ static int sub_0204F628(UnkStruct_0204F470 *param0, FieldSystem *fieldSystem, in v0->monData = Party_GetFromSavedata(v1); v0->dexMode = sub_0207A274(v1); v0->showContest = PokemonSummaryScreen_ShowContestData(v1); - v0->dataType = 1; - v0->pos = param0->unk_05; - v0->max = (u8)Party_GetCurrentCount(v0->monData); + v0->dataType = SUMMARY_DATA_PARTY_MON; + v0->monIndex = param0->unk_05; + v0->monMax = Party_GetCurrentCount(v0->monData); v0->move = 0; - v0->mode = 0; + v0->mode = SUMMARY_MODE_NORMAL; v0->specialRibbons = sub_0202D79C(v1); PokemonSummaryScreen_FlagVisiblePages(v0, v2); @@ -450,7 +450,7 @@ static int sub_0204F6B0(UnkStruct_0204F470 *param0, FieldSystem *fieldSystem) v0 = *(param0->unk_08); - param0->unk_05 = v0->pos; + param0->unk_05 = v0->monIndex; Heap_FreeToHeap(v0); *(param0->unk_08) = NULL; diff --git a/src/unk_0204FAB4.c b/src/unk_0204FAB4.c index afd6ae5d38..bbbdf7d733 100644 --- a/src/unk_0204FAB4.c +++ b/src/unk_0204FAB4.c @@ -331,11 +331,11 @@ static int sub_0204FF6C(UnkStruct_0204FE50 *param0, FieldSystem *fieldSystem, in v0->monData = Party_GetFromSavedata(v1); v0->dexMode = sub_0207A274(v1); v0->showContest = PokemonSummaryScreen_ShowContestData(v1); - v0->dataType = 1; - v0->pos = param0->unk_05; - v0->max = (u8)Party_GetCurrentCount(v0->monData); + v0->dataType = SUMMARY_DATA_PARTY_MON; + v0->monIndex = param0->unk_05; + v0->monMax = Party_GetCurrentCount(v0->monData); v0->move = 0; - v0->mode = 0; + v0->mode = SUMMARY_MODE_NORMAL; v0->specialRibbons = sub_0202D79C(v1); PokemonSummaryScreen_FlagVisiblePages(v0, v2); @@ -355,7 +355,7 @@ static int sub_0204FFF4(UnkStruct_0204FE50 *param0, FieldSystem *fieldSystem) } v0 = *(param0->unk_0C); - param0->unk_05 = v0->pos; + param0->unk_05 = v0->monIndex; Heap_FreeToHeap(v0); *(param0->unk_0C) = NULL; diff --git a/src/unk_0205003C.c b/src/unk_0205003C.c index aa160ae16e..57d6f8054d 100644 --- a/src/unk_0205003C.c +++ b/src/unk_0205003C.c @@ -320,10 +320,10 @@ static int sub_02050498(UnkStruct_0205037C *param0, FieldSystem *fieldSystem, in v0->dexMode = sub_0207A274(v1); v0->showContest = PokemonSummaryScreen_ShowContestData(v1); v0->dataType = 1; - v0->pos = param0->unk_05; - v0->max = (u8)Party_GetCurrentCount(v0->monData); + v0->monIndex = param0->unk_05; + v0->monMax = (u8)Party_GetCurrentCount(v0->monData); v0->move = 0; - v0->mode = 0; + v0->mode = SUMMARY_MODE_NORMAL; v0->specialRibbons = sub_0202D79C(v1); PokemonSummaryScreen_FlagVisiblePages(v0, v2); @@ -343,7 +343,7 @@ static int sub_02050520(UnkStruct_0205037C *param0, FieldSystem *fieldSystem) } v0 = *(param0->unk_0C); - param0->unk_05 = v0->pos; + param0->unk_05 = v0->monIndex; Heap_FreeToHeap(v0); *(param0->unk_0C) = NULL; diff --git a/src/unk_0205A0D8.c b/src/unk_0205A0D8.c index 693aa306b7..dd6965fdd3 100644 --- a/src/unk_0205A0D8.c +++ b/src/unk_0205A0D8.c @@ -133,9 +133,9 @@ static void sub_0205A0D8(UnkStruct_0205A0D8 *param0, FieldSystem *fieldSystem, P v0->showContest = PokemonSummaryScreen_ShowContestData(v1); v0->options = SaveData_Options(v1); v0->monData = param2; - v0->dataType = 1; - v0->pos = param3; - v0->max = (u8)Party_GetCurrentCount(v0->monData); + v0->dataType = SUMMARY_DATA_PARTY_MON; + v0->monIndex = param3; + v0->monMax = Party_GetCurrentCount(v0->monData); v0->move = 0; v0->mode = param4; v0->specialRibbons = sub_0202D79C(v1); @@ -216,7 +216,7 @@ static BOOL sub_0205A2B0(UnkStruct_0205A0D8 *param0, FieldSystem *fieldSystem) return 0; } - param0->unk_3C = param0->unk_00->pos; + param0->unk_3C = param0->unk_00->monIndex; Heap_FreeToHeap(param0->unk_00); param0->unk_00 = NULL; diff --git a/src/unk_0206B9D8.c b/src/unk_0206B9D8.c index f0cb260a4f..7469ab7c7a 100644 --- a/src/unk_0206B9D8.c +++ b/src/unk_0206B9D8.c @@ -141,9 +141,9 @@ static int sub_0206BAE0(UnkStruct_0206B9D8 *param0, FieldSystem *fieldSystem, in v0->monData = Party_GetFromSavedata(v1); v0->dexMode = sub_0207A274(v1); v0->showContest = PokemonSummaryScreen_ShowContestData(v1); - v0->dataType = 1; - v0->pos = param0->unk_0D; - v0->max = (u8)Party_GetCurrentCount(v0->monData); + v0->dataType = SUMMARY_DATA_PARTY_MON; + v0->monIndex = param0->unk_0D; + v0->monMax = Party_GetCurrentCount(v0->monData); v0->move = 0; v0->mode = param0->unk_09; v0->specialRibbons = sub_0202D79C(v1); @@ -165,7 +165,7 @@ static int sub_0206BB6C(UnkStruct_0206B9D8 *param0, FieldSystem *fieldSystem) } v0 = *(param0->unk_14); - param0->unk_0D = v0->pos; + param0->unk_0D = v0->monIndex; Heap_FreeToHeap(v0); *(param0->unk_14) = NULL; diff --git a/src/unk_0207AE68.c b/src/unk_0207AE68.c index 9ed087a52b..90aaf22244 100644 --- a/src/unk_0207AE68.c +++ b/src/unk_0207AE68.c @@ -5,6 +5,7 @@ #include "generated/game_records.h" #include "generated/items.h" +#include "generated/moves.h" #include "generated/species.h" #include "generated/trainer_score_events.h" @@ -499,11 +500,11 @@ static void sub_0207B180(UnkStruct_0207AE68 *param0) sub_02007DEC(param0->unk_1C[1], 6, 1); param0->unk_3C->monData = param0->unk_28; param0->unk_3C->options = param0->unk_2C; - param0->unk_3C->dataType = 0; - param0->unk_3C->pos = 0; - param0->unk_3C->max = 1; + param0->unk_3C->dataType = SUMMARY_DATA_MON; + param0->unk_3C->monIndex = 0; + param0->unk_3C->monMax = 1; param0->unk_3C->move = param0->unk_6C; - param0->unk_3C->mode = 2; + param0->unk_3C->mode = SUMMARY_MODE_SELECT_MOVE; param0->unk_3C->chatotCry = NULL; PokemonSummaryScreen_FlagVisiblePages(param0->unk_3C, Unk_020F0A2C); sub_0207C624(param0); @@ -530,10 +531,10 @@ static void sub_0207B180(UnkStruct_0207AE68 *param0) sub_0200F338(1); if (PaletteData_GetSelectedBuffersMask(param0->unk_14) == 0) { - if (param0->unk_3C->selectedSlot == 4) { + if (param0->unk_3C->selectedMoveSlot == LEARNED_MOVES_MAX) { param0->unk_64 = 32; } else { - param0->unk_6E = param0->unk_3C->selectedSlot; + param0->unk_6E = param0->unk_3C->selectedMoveSlot; param0->unk_64 = 25; } } diff --git a/src/unk_0207E0B8.c b/src/unk_0207E0B8.c index 319276b692..ec3b9b397a 100644 --- a/src/unk_0207E0B8.c +++ b/src/unk_0207E0B8.c @@ -2302,7 +2302,7 @@ static int GetValidWindowLayout(GameWindowLayout *param0) return 0xffffffff; } - v0 = sub_02022664(Unk_020F1C94); + v0 = TouchScreen_CheckRectanglePressed(Unk_020F1C94); if (v0 != 0xffffffff) { u16 v1 = 0xfffe; diff --git a/src/unk_020989DC.c b/src/unk_020989DC.c index a4b4a70699..85bbe381be 100644 --- a/src/unk_020989DC.c +++ b/src/unk_020989DC.c @@ -323,11 +323,11 @@ static int sub_02098CB0(UnkStruct_02098BE4 *param0) v2->monData = param0->unk_0C->unk_10; v2->options = param0->unk_0C->unk_18; - v2->dataType = 1; - v2->pos = v0; - v2->max = (u8)Party_GetCurrentCount(v2->monData); + v2->dataType = SUMMARY_DATA_PARTY_MON; + v2->monIndex = v0; + v2->monMax = Party_GetCurrentCount(v2->monData); v2->move = 0; - v2->mode = 3; + v2->mode = SUMMARY_MODE_FEED_POFFIN; v2->showContest = TRUE; v2->chatotCry = NULL; @@ -351,7 +351,7 @@ static int sub_02098D38(UnkStruct_02098BE4 *param0) summaryScreen = (PokemonSummary *)param0->unk_10; u8 returnMode = summaryScreen->returnMode; - param0->unk_08 = summaryScreen->pos; + param0->unk_08 = summaryScreen->monIndex; Heap_FreeToHeap(param0->unk_10); @@ -422,11 +422,11 @@ static int sub_02098E0C(UnkStruct_02098BE4 *param0) v1->monData = param0->unk_0C->unk_10; v1->options = param0->unk_0C->unk_18; - v1->dataType = 1; - v1->pos = param0->unk_08; - v1->max = (u8)Party_GetCurrentCount(v1->monData); + v1->dataType = SUMMARY_DATA_PARTY_MON; + v1->monIndex = param0->unk_08; + v1->monMax = Party_GetCurrentCount(v1->monData); v1->move = 0; - v1->mode = 4; + v1->mode = SUMMARY_MODE_SHOW_CONDITION_CHANGE; v1->poffin = v2; v1->showContest = TRUE; v1->chatotCry = NULL; diff --git a/src/unk_0209C194.c b/src/unk_0209C194.c index ded2122495..4171e2f4a2 100644 --- a/src/unk_0209C194.c +++ b/src/unk_0209C194.c @@ -129,8 +129,8 @@ static BOOL sub_0209C2C0(UnkStruct_0209C1EC *param0) if (param0->unk_30->unk_23 == 1) { param0->unk_34 = sub_0203D670(param0->fieldSystem, 3, 0); param0->unk_04 = v0; - param0->unk_34->pos = v0; - sub_0203D334(param0->fieldSystem, param0->unk_34); + param0->unk_34->monIndex = v0; + FieldSystem_OpenSummaryScreen(param0->fieldSystem, param0->unk_34); param0->unk_00 = 3; } else { param0->unk_28->unk_04 = v0;