mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-09-15 05:06:08 -05:00
Merge pull request #380 from ravepossum/summary_screen_pt3
Summary screen part 3 (misc. clean-up)
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "generated/moves.h"
|
||||
|
||||
#define LEARNED_MOVES_MAX 4
|
||||
#define MOVE_NOT_SELECTED 0xFF
|
||||
|
||||
#define NUM_MOVES MOVE_SHADOW_FORCE
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 can’t 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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
107
src/field_menu.c
107
src/field_menu.c
@@ -1029,15 +1029,15 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
|
||||
|
||||
switch (partyMan->unk_23) {
|
||||
case 1: {
|
||||
PokemonSummary *summary = Heap_AllocFromHeap(11, sizeof(PokemonSummary));
|
||||
PokemonSummary *summary = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PokemonSummary));
|
||||
|
||||
summary->monData = Party_GetFromSavedata(fieldSystem->saveData);
|
||||
summary->options = SaveData_Options(fieldSystem->saveData);
|
||||
summary->dataType = 1;
|
||||
summary->pos = partyMan->unk_22;
|
||||
summary->max = (u8)Party_GetCurrentCount(summary->monData);
|
||||
summary->dataType = SUMMARY_DATA_PARTY_MON;
|
||||
summary->monIndex = partyMan->unk_22;
|
||||
summary->monMax = Party_GetCurrentCount(summary->monData);
|
||||
summary->move = 0;
|
||||
summary->mode = 0;
|
||||
summary->mode = SUMMARY_MODE_NORMAL;
|
||||
summary->specialRibbons = sub_0202D79C(fieldSystem->saveData);
|
||||
summary->dexMode = sub_0207A274(fieldSystem->saveData);
|
||||
summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData);
|
||||
@@ -1045,67 +1045,63 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
|
||||
|
||||
PokemonSummaryScreen_FlagVisiblePages(summary, Unk_020EA02C);
|
||||
PokemonSummaryScreen_SetPlayerProfile(summary, SaveData_GetTrainerInfo(fieldSystem->saveData));
|
||||
sub_0203D334(fieldSystem, summary);
|
||||
FieldSystem_OpenSummaryScreen(fieldSystem, summary);
|
||||
|
||||
menu->unk_25C = summary;
|
||||
sub_0203B674(menu, sub_0203C1C8);
|
||||
} break;
|
||||
case 4: {
|
||||
PokemonSummary *v4 = Heap_AllocFromHeap(11, sizeof(PokemonSummary));
|
||||
PokemonSummary *summary = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PokemonSummary));
|
||||
|
||||
v4->monData = Party_GetFromSavedata(fieldSystem->saveData);
|
||||
v4->options = SaveData_Options(fieldSystem->saveData);
|
||||
v4->dataType = 1;
|
||||
v4->pos = partyMan->unk_22;
|
||||
v4->max = 1;
|
||||
v4->move = partyMan->unk_26;
|
||||
v4->mode = 2;
|
||||
v4->dexMode = sub_0207A274(fieldSystem->saveData);
|
||||
v4->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData);
|
||||
v4->chatotCry = NULL;
|
||||
summary->monData = Party_GetFromSavedata(fieldSystem->saveData);
|
||||
summary->options = SaveData_Options(fieldSystem->saveData);
|
||||
summary->dataType = SUMMARY_DATA_PARTY_MON;
|
||||
summary->monIndex = partyMan->unk_22;
|
||||
summary->monMax = 1;
|
||||
summary->move = partyMan->unk_26;
|
||||
summary->mode = SUMMARY_MODE_SELECT_MOVE;
|
||||
summary->dexMode = sub_0207A274(fieldSystem->saveData);
|
||||
summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData);
|
||||
summary->chatotCry = NULL;
|
||||
|
||||
PokemonSummaryScreen_FlagVisiblePages(v4, Unk_020EA01C);
|
||||
PokemonSummaryScreen_SetPlayerProfile(v4, SaveData_GetTrainerInfo(fieldSystem->saveData));
|
||||
sub_0203D334(fieldSystem, v4);
|
||||
PokemonSummaryScreen_FlagVisiblePages(summary, Unk_020EA01C);
|
||||
PokemonSummaryScreen_SetPlayerProfile(summary, SaveData_GetTrainerInfo(fieldSystem->saveData));
|
||||
FieldSystem_OpenSummaryScreen(fieldSystem, summary);
|
||||
|
||||
{
|
||||
UnkStruct_0203C1C8 *v5 = Heap_AllocFromHeap(11, sizeof(UnkStruct_0203C1C8));
|
||||
UnkStruct_0203C1C8 *v5 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(UnkStruct_0203C1C8));
|
||||
|
||||
v5->unk_00 = partyMan->unk_24;
|
||||
v5->unk_02 = 0;
|
||||
menu->unk_260 = v5;
|
||||
}
|
||||
v5->unk_00 = partyMan->unk_24;
|
||||
v5->unk_02 = 0;
|
||||
menu->unk_260 = v5;
|
||||
|
||||
menu->unk_25C = v4;
|
||||
menu->unk_25C = summary;
|
||||
sub_0203B674(menu, sub_0203C1C8);
|
||||
} break;
|
||||
case 5: {
|
||||
PokemonSummary *v6 = Heap_AllocFromHeap(11, sizeof(PokemonSummary));
|
||||
PokemonSummary *summary = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(PokemonSummary));
|
||||
|
||||
v6->monData = Party_GetFromSavedata(fieldSystem->saveData);
|
||||
v6->options = SaveData_Options(fieldSystem->saveData);
|
||||
v6->dataType = 1;
|
||||
v6->pos = partyMan->unk_22;
|
||||
v6->max = 1;
|
||||
v6->move = partyMan->unk_26;
|
||||
v6->mode = 2;
|
||||
v6->dexMode = sub_0207A274(fieldSystem->saveData);
|
||||
v6->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData);
|
||||
v6->chatotCry = NULL;
|
||||
summary->monData = Party_GetFromSavedata(fieldSystem->saveData);
|
||||
summary->options = SaveData_Options(fieldSystem->saveData);
|
||||
summary->dataType = SUMMARY_DATA_PARTY_MON;
|
||||
summary->monIndex = partyMan->unk_22;
|
||||
summary->monMax = 1;
|
||||
summary->move = partyMan->unk_26;
|
||||
summary->mode = SUMMARY_MODE_SELECT_MOVE;
|
||||
summary->dexMode = sub_0207A274(fieldSystem->saveData);
|
||||
summary->showContest = PokemonSummaryScreen_ShowContestData(fieldSystem->saveData);
|
||||
summary->chatotCry = NULL;
|
||||
|
||||
PokemonSummaryScreen_FlagVisiblePages(v6, Unk_020EA01C);
|
||||
PokemonSummaryScreen_SetPlayerProfile(v6, SaveData_GetTrainerInfo(fieldSystem->saveData));
|
||||
sub_0203D334(fieldSystem, v6);
|
||||
PokemonSummaryScreen_FlagVisiblePages(summary, Unk_020EA01C);
|
||||
PokemonSummaryScreen_SetPlayerProfile(summary, SaveData_GetTrainerInfo(fieldSystem->saveData));
|
||||
FieldSystem_OpenSummaryScreen(fieldSystem, summary);
|
||||
|
||||
{
|
||||
UnkStruct_0203C1C8 *v7 = Heap_AllocFromHeap(11, sizeof(UnkStruct_0203C1C8));
|
||||
UnkStruct_0203C1C8 *v7 = Heap_AllocFromHeap(HEAP_ID_FIELDMAP, sizeof(UnkStruct_0203C1C8));
|
||||
|
||||
v7->unk_00 = 0;
|
||||
v7->unk_02 = (u16)partyMan->unk_34;
|
||||
menu->unk_260 = v7;
|
||||
}
|
||||
v7->unk_00 = 0;
|
||||
v7->unk_02 = (u16)partyMan->unk_34;
|
||||
menu->unk_260 = v7;
|
||||
|
||||
menu->unk_25C = v6;
|
||||
menu->unk_25C = summary;
|
||||
sub_0203B674(menu, sub_0203C1C8);
|
||||
} break;
|
||||
case 6: {
|
||||
@@ -1150,11 +1146,10 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
|
||||
menu->unk_25C = sub_0207D824(v11, Unk_020EA020, 11);
|
||||
|
||||
sub_0207CB2C(menu->unk_25C, fieldSystem->saveData, 1, fieldSystem->unk_98);
|
||||
}
|
||||
|
||||
sub_0203D1E4(fieldSystem, menu->unk_25C);
|
||||
sub_0203B674(menu, sub_0203BC5C);
|
||||
break;
|
||||
} break;
|
||||
case 8: {
|
||||
UnkStruct_0203C7B8 *v14 = Heap_AllocFromHeap(11, sizeof(UnkStruct_0203C7B8));
|
||||
|
||||
@@ -1190,7 +1185,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
|
||||
case 20:
|
||||
case 21:
|
||||
case 22:
|
||||
case 23: {
|
||||
case 23:
|
||||
UnkFuncPtr_0203B7C0 v16;
|
||||
UnkStruct_020709CC v17;
|
||||
|
||||
@@ -1200,7 +1195,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
|
||||
|
||||
v16 = (UnkFuncPtr_0203B7C0)sub_0207070C(0, v17.unk_06);
|
||||
v16(&v17, &menu->unk_24C);
|
||||
} break;
|
||||
break;
|
||||
case 10:
|
||||
menu->unk_25C = sub_0203D20C(fieldSystem, &menu->unk_230);
|
||||
sub_0203B674(menu, sub_0203BC5C);
|
||||
@@ -1612,7 +1607,7 @@ static BOOL sub_0203C1C8(FieldTask *taskMan)
|
||||
Heap_FreeToHeap(menu->unk_25C);
|
||||
|
||||
switch (v2->mode) {
|
||||
case 2: {
|
||||
case SUMMARY_MODE_SELECT_MOVE: {
|
||||
PartyManagementData *v3;
|
||||
UnkStruct_0203C1C8 *v4;
|
||||
|
||||
@@ -1638,9 +1633,9 @@ static BOOL sub_0203C1C8(FieldTask *taskMan)
|
||||
}
|
||||
|
||||
v3->unk_24 = v4->unk_00;
|
||||
v3->unk_22 = v2->pos;
|
||||
v3->unk_22 = v2->monIndex;
|
||||
v3->unk_26 = v2->move;
|
||||
v3->unk_28 = v2->selectedSlot;
|
||||
v3->unk_28 = v2->selectedMoveSlot;
|
||||
|
||||
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F1E88, v3);
|
||||
Heap_FreeToHeap(menu->unk_260);
|
||||
@@ -1648,7 +1643,7 @@ static BOOL sub_0203C1C8(FieldTask *taskMan)
|
||||
sub_0203B674(menu, sub_0203B7C0);
|
||||
} break;
|
||||
default:
|
||||
menu->unk_25C = sub_0203D390(fieldSystem, &menu->unk_24C, v2->pos);
|
||||
menu->unk_25C = sub_0203D390(fieldSystem, &menu->unk_24C, v2->monIndex);
|
||||
sub_0203B674(menu, sub_0203B7C0);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -853,25 +853,25 @@ static void ov19_021D1C84(UnkStruct_ov19_021D5DF8 *param0)
|
||||
UnkStruct_ov19_021D5594 *v1 = ¶m0->unk_00.unk_14;
|
||||
|
||||
param0->unk_12C.monData = param0->unk_00.unk_14.unk_00;
|
||||
param0->unk_12C.dataType = (v1->unk_0B) ? 0 : 2;
|
||||
param0->unk_12C.max = 1;
|
||||
param0->unk_12C.pos = 0;
|
||||
param0->unk_12C.mode = 0;
|
||||
param0->unk_12C.dataType = (v1->unk_0B) ? SUMMARY_DATA_MON : SUMMARY_DATA_BOX_MON;
|
||||
param0->unk_12C.monMax = 1;
|
||||
param0->unk_12C.monIndex = 0;
|
||||
param0->unk_12C.mode = SUMMARY_MODE_NORMAL;
|
||||
param0->unk_12C.move = 0;
|
||||
param0->unk_12C.options = param0->unk_1A4;
|
||||
} else if (ov19_021D5E10(¶m0->unk_00) == 0) {
|
||||
param0->unk_12C.monData = sub_02079C9C(param0->unk_120, sub_0207999C(param0->unk_120), 0);
|
||||
param0->unk_12C.dataType = 2;
|
||||
param0->unk_12C.max = (5 * 6);
|
||||
param0->unk_12C.pos = ov19_021D5E24(¶m0->unk_00);
|
||||
param0->unk_12C.mode = 0;
|
||||
param0->unk_12C.dataType = SUMMARY_DATA_BOX_MON;
|
||||
param0->unk_12C.monMax = MAX_MONS_PER_BOX;
|
||||
param0->unk_12C.monIndex = ov19_021D5E24(¶m0->unk_00);
|
||||
param0->unk_12C.mode = SUMMARY_MODE_NORMAL;
|
||||
param0->unk_12C.move = 0;
|
||||
} else {
|
||||
param0->unk_12C.monData = param0->unk_124;
|
||||
param0->unk_12C.dataType = 1;
|
||||
param0->unk_12C.max = Party_GetCurrentCount(param0->unk_124);
|
||||
param0->unk_12C.pos = ov19_021D5E2C(¶m0->unk_00);
|
||||
param0->unk_12C.mode = 0;
|
||||
param0->unk_12C.dataType = SUMMARY_DATA_PARTY_MON;
|
||||
param0->unk_12C.monMax = Party_GetCurrentCount(param0->unk_124);
|
||||
param0->unk_12C.monIndex = ov19_021D5E2C(¶m0->unk_00);
|
||||
param0->unk_12C.mode = SUMMARY_MODE_NORMAL;
|
||||
param0->unk_12C.move = 0;
|
||||
}
|
||||
|
||||
@@ -2410,12 +2410,12 @@ static void ov19_021D3CFC(UnkStruct_ov19_021D4DF0 *param0, UnkStruct_ov19_021D5D
|
||||
|
||||
switch (v0->unk_04) {
|
||||
case 0:
|
||||
v0->unk_07 = param1->unk_12C.pos;
|
||||
v0->unk_07 = param1->unk_12C.monIndex;
|
||||
v0->unk_05 = v0->unk_07 % 6;
|
||||
v0->unk_06 = v0->unk_07 / 6;
|
||||
break;
|
||||
case 1:
|
||||
v0->unk_08 = param1->unk_12C.pos;
|
||||
v0->unk_08 = param1->unk_12C.monIndex;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -457,7 +457,7 @@ int ov88_0223B57C(OverlayManager *param0, int *param1)
|
||||
ov88_0223B3C0(v0);
|
||||
|
||||
v0->unk_44 = 0;
|
||||
v0->unk_88[0] = v0->unk_0C.pos + v0->unk_3C * 6;
|
||||
v0->unk_88[0] = v0->unk_0C.monIndex + v0->unk_3C * 6;
|
||||
|
||||
ov88_0223BE28(v0);
|
||||
ov88_0223CF68(v0->unk_88[0], v0->unk_39C[0], 0);
|
||||
@@ -1509,7 +1509,7 @@ static void ov88_0223CE74(UnkStruct_02095E80 *param0)
|
||||
return;
|
||||
}
|
||||
|
||||
v2 = sub_02022664(Unk_ov88_0223EE28);
|
||||
v2 = TouchScreen_CheckRectanglePressed(Unk_ov88_0223EE28);
|
||||
|
||||
if (v2 != 0xffffffff) {
|
||||
if (param0->unk_6F4[param0->unk_88[0]].unk_05) {
|
||||
@@ -1726,20 +1726,20 @@ static void ov88_0223D1EC(UnkStruct_02095E80 *param0, int param1)
|
||||
{
|
||||
if (param1 == 0) {
|
||||
param0->unk_0C.monData = param0->unk_2270;
|
||||
param0->unk_0C.max = Party_GetCurrentCount(param0->unk_08->unk_08);
|
||||
param0->unk_0C.monMax = Party_GetCurrentCount(param0->unk_08->unk_08);
|
||||
|
||||
param0->unk_0C.chatotCry = NULL;
|
||||
PokemonSummaryScreen_SetPlayerProfile(¶m0->unk_0C, CommInfo_TrainerInfo(CommSys_CurNetId()));
|
||||
} else {
|
||||
param0->unk_0C.monData = param0->unk_2274;
|
||||
param0->unk_0C.max = Party_GetCurrentCount(param0->unk_2274);
|
||||
param0->unk_0C.monMax = Party_GetCurrentCount(param0->unk_2274);
|
||||
param0->unk_0C.chatotCry = (ChatotCry *)param0->unk_2E6C[CommSys_CurNetId() ^ 1];
|
||||
PokemonSummaryScreen_SetPlayerProfile(¶m0->unk_0C, CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1));
|
||||
}
|
||||
|
||||
param0->unk_0C.dataType = 1;
|
||||
param0->unk_0C.pos = param0->unk_88[0] % 6;
|
||||
param0->unk_0C.mode = 1;
|
||||
param0->unk_0C.dataType = SUMMARY_DATA_PARTY_MON;
|
||||
param0->unk_0C.monIndex = param0->unk_88[0] % 6;
|
||||
param0->unk_0C.mode = SUMMARY_MODE_LOCK_MOVES;
|
||||
param0->unk_0C.move = 0;
|
||||
param0->unk_0C.showContest = PokemonSummaryScreen_ShowContestData(param0->unk_08->unk_10);
|
||||
param0->unk_0C.dexMode = param0->unk_08->unk_30;
|
||||
|
||||
@@ -1501,12 +1501,12 @@ static int ov91_021D261C(UnkStruct_ov91_021D0ED8 *param0)
|
||||
|
||||
param0->unk_14C.monData = param0->unk_00->unk_00;
|
||||
param0->unk_14C.options = param0->unk_00->unk_08;
|
||||
param0->unk_14C.dataType = 0;
|
||||
param0->unk_14C.pos = 0;
|
||||
param0->unk_14C.max = 1;
|
||||
param0->unk_14C.dataType = SUMMARY_DATA_MON;
|
||||
param0->unk_14C.monIndex = 0;
|
||||
param0->unk_14C.monMax = 1;
|
||||
param0->unk_14C.move = ov91_021D1DD0(param0);
|
||||
param0->unk_14C.mode = 2;
|
||||
param0->unk_14C.showContest = 1;
|
||||
param0->unk_14C.mode = SUMMARY_MODE_SELECT_MOVE;
|
||||
param0->unk_14C.showContest = TRUE;
|
||||
param0->unk_14C.chatotCry = NULL;
|
||||
|
||||
PokemonSummaryScreen_FlagVisiblePages(¶m0->unk_14C, v0);
|
||||
@@ -1523,7 +1523,7 @@ static int ov91_021D26AC(UnkStruct_ov91_021D0ED8 *param0)
|
||||
ov91_021D2548(param0, param0->unk_00->unk_10, 1);
|
||||
ov91_021D2574(param0, 0);
|
||||
ov91_021D25E4(param0);
|
||||
param0->unk_00->unk_17 = param0->unk_14C.selectedSlot;
|
||||
param0->unk_00->unk_17 = param0->unk_14C.selectedMoveSlot;
|
||||
param0->unk_180 = 7;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -518,7 +518,7 @@ static BOOL ov111_021D10B8(UnkStruct_ov111_021D0F7C *param0)
|
||||
param0->unk_0F--;
|
||||
}
|
||||
|
||||
v3 = sub_02022644((const TouchScreenRect *)Unk_ov111_021D364C);
|
||||
v3 = TouchScreen_CheckRectangleHeld((const TouchScreenRect *)Unk_ov111_021D364C);
|
||||
|
||||
if (v3 != 0xffffffff) {
|
||||
GXLayers_EngineAToggleLayers((GX_PLANEMASK_BG2), 0);
|
||||
@@ -745,7 +745,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0)
|
||||
break;
|
||||
case 3:
|
||||
sub_0201E564(¶m0->unk_424, 4, 2);
|
||||
v1 = sub_02022644((const TouchScreenRect *)Unk_ov111_021D3794);
|
||||
v1 = TouchScreen_CheckRectangleHeld((const TouchScreenRect *)Unk_ov111_021D3794);
|
||||
|
||||
if (v1 != 0xffffffff) {
|
||||
if (ov111_021D2918(param0) < 3) {
|
||||
@@ -802,7 +802,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0)
|
||||
}
|
||||
|
||||
if (param0->unk_0E == (3 - 1)) {
|
||||
v1 = sub_02022664((const TouchScreenRect *)Unk_ov111_021D3610);
|
||||
v1 = TouchScreen_CheckRectanglePressed((const TouchScreenRect *)Unk_ov111_021D3610);
|
||||
|
||||
if (v1 != 0xffffffff) {
|
||||
ov111_021D350C(param0->unk_3A0, 1);
|
||||
@@ -817,7 +817,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0)
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
v1 = sub_02022664((const TouchScreenRect *)Unk_ov111_021D3618);
|
||||
v1 = TouchScreen_CheckRectanglePressed((const TouchScreenRect *)Unk_ov111_021D3618);
|
||||
|
||||
if (v1 != 0xffffffff) {
|
||||
ov111_021D350C(param0->unk_3A0, 1);
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
16
src/scrcmd.c
16
src/scrcmd.c
@@ -1217,8 +1217,8 @@ const ScrCmdFunc Unk_020EAC58[] = {
|
||||
ScrCmd_1C3,
|
||||
ScrCmd_1C4,
|
||||
ScrCmd_InitSizeContestRecord,
|
||||
ScrCmd_1C6,
|
||||
ScrCmd_1C7,
|
||||
ScrCmd_SelectPartyMonMove,
|
||||
ScrCmd_GetSelectedPartyMonMove,
|
||||
ScrCmd_1C8,
|
||||
ScrCmd_1C9,
|
||||
ScrCmd_1CA,
|
||||
@@ -1305,7 +1305,7 @@ const ScrCmdFunc Unk_020EAC58[] = {
|
||||
ScrCmd_EnableSwarms,
|
||||
ScrCmd_21C,
|
||||
ScrCmd_21D,
|
||||
ScrCmd_21E,
|
||||
ScrCmd_Dummy21E,
|
||||
ScrCmd_21F,
|
||||
ScrCmd_220,
|
||||
ScrCmd_221,
|
||||
@@ -3801,7 +3801,7 @@ static BOOL ScrCmd_2E8(ScriptContext *ctx)
|
||||
GF_ASSERT(*v0 != 0);
|
||||
|
||||
v2 = *v0;
|
||||
*v1 = v2->selectedSlot;
|
||||
*v1 = v2->selectedMoveSlot;
|
||||
|
||||
Heap_FreeToHeap(*v0);
|
||||
*v0 = NULL;
|
||||
@@ -3910,13 +3910,7 @@ static BOOL sub_02041D3C(ScriptContext *ctx)
|
||||
|
||||
BOOL ScriptContext_WaitForApplicationExit(ScriptContext *ctx)
|
||||
{
|
||||
FieldSystem *fieldSystem = ctx->fieldSystem;
|
||||
|
||||
if (FieldSystem_IsRunningApplication(fieldSystem)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return !FieldSystem_IsRunningApplication(ctx->fieldSystem);
|
||||
}
|
||||
|
||||
static BOOL ScrCmd_ReturnToField(ScriptContext *ctx)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user