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;