Merge pull request #380 from ravepossum/summary_screen_pt3

Summary screen part 3 (misc. clean-up)
This commit is contained in:
Rachel
2025-02-16 13:06:32 -08:00
committed by GitHub
53 changed files with 1249 additions and 536 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);

View File

@@ -6,6 +6,7 @@
#include "generated/moves.h"
#define LEARNED_MOVES_MAX 4
#define MOVE_NOT_SELECTED 0xFF
#define NUM_MOVES MOVE_SHADOW_FORCE

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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

View File

@@ -542,47 +542,47 @@
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 6, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00135" index="135">
<row id="summary_label_pp" index="135">
<attribute name="window_context_name">used</attribute>
<language name="English">PP</language>
</row>
<row id="pl_msg_00000455_00136" index="136">
<row id="summary_template_current_pp_0" index="136">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00137" index="137">
<row id="summary_template_current_pp_1" index="137">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00138" index="138">
<row id="summary_template_current_pp_2" index="138">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00139" index="139">
<row id="summary_template_current_pp_3" index="139">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00140" index="140">
<row id="summary_template_current_pp_4" index="140">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00141" index="141">
<row id="summary_template_max_pp_0" index="141">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00142" index="142">
<row id="summary_template_max_pp_1" index="142">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00143" index="143">
<row id="summary_template_max_pp_2" index="143">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00144" index="144">
<row id="summary_template_max_pp_3" index="144">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00145" index="145">
<row id="summary_template_max_pp_4" index="145">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 51, 0, 0}</language>
</row>
@@ -610,11 +610,11 @@
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 52, 0, 0}</language>
</row>
<row id="pl_msg_00000455_00152" index="152">
<row id="summary_move_switch" index="152">
<attribute name="window_context_name">used</attribute>
<language name="English">SWITCH</language>
</row>
<row id="pl_msg_00000455_00153" index="153">
<row id="summary_two_dashes" index="153">
<attribute name="window_context_name">used</attribute>
<language name="English">--</language>
</row>
@@ -626,7 +626,7 @@
<attribute name="window_context_name">used</attribute>
<language name="English">OK</language>
</row>
<row id="pl_msg_00000455_00156" index="156">
<row id="summary_hm_moves_cant_be_forgotten" index="156">
<attribute name="window_context_name">used</attribute>
<language name="English">HM moves cant be\nforgotten now.</language>
</row>
@@ -667,27 +667,27 @@
<attribute name="window_context_name">used</attribute>
<language name="English">FAVORITE FOOD</language>
</row>
<row id="summary_template_likes_spicy" index="166">
<row id="summary_likes_it_spicy" index="166">
<attribute name="window_context_name">used</attribute>
<language name="English">Likes it {COLOR 2}spicy{COLOR 0}.</language>
</row>
<row id="summary_template_likes_dry" index="167">
<row id="summary_likes_it_dry" index="167">
<attribute name="window_context_name">used</attribute>
<language name="English">Likes it {COLOR 2}dry{COLOR 0}.</language>
</row>
<row id="summary_template_likes_sweet" index="168">
<row id="summary_likes_it_sweet" index="168">
<attribute name="window_context_name">used</attribute>
<language name="English">Likes it {COLOR 2}sweet{COLOR 0}.</language>
</row>
<row id="summary_template_likes_bitter" index="169">
<row id="summary_likes_it_bitter" index="169">
<attribute name="window_context_name">used</attribute>
<language name="English">Likes it {COLOR 2}bitter{COLOR 0}.</language>
</row>
<row id="summary_template_likes_sour" index="170">
<row id="summary_likes_it_sour" index="170">
<attribute name="window_context_name">used</attribute>
<language name="English">Likes it {COLOR 2}sour{COLOR 0}.</language>
</row>
<row id="pl_msg_00000455_00171" index="171">
<row id="summary_eats_anything" index="171">
<attribute name="window_context_name">used</attribute>
<language name="English">Eats anything.</language>
</row>
@@ -727,7 +727,7 @@
<attribute name="window_context_name">used</attribute>
<language name="English">INFO</language>
</row>
<row id="pl_msg_00000455_00181" index="181">
<row id="summary_ribbon_select_cancel" index="181">
<attribute name="window_context_name">used</attribute>
<language name="English">CANCEL</language>
</row>

View File

@@ -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);

View File

@@ -3,6 +3,7 @@
#include <nitro.h>
#include <string.h>
#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;
}

View File

@@ -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);

View File

@@ -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)

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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) {

View File

@@ -853,25 +853,25 @@ static void ov19_021D1C84(UnkStruct_ov19_021D5DF8 *param0)
UnkStruct_ov19_021D5594 *v1 = &param0->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(&param0->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(&param0->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(&param0->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(&param0->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(&param0->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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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;

View File

@@ -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(&param0->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(&param0->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;

View File

@@ -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(&param0->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;
}

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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(&param0->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);

View File

@@ -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)) {

View File

@@ -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)

View File

@@ -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;

View File

@@ -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));

View File

@@ -3,6 +3,8 @@
#include <nitro.h>
#include <string.h>
#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)

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;