Move party menu data constants
This commit is contained in:
parent
5101811407
commit
f534e8e44a
2 changed files with 103 additions and 90 deletions
|
@ -1,9 +1,3 @@
|
||||||
enum {
|
|
||||||
TAG_POKEBALL = 1200,
|
|
||||||
TAG_POKEBALL_SMALL,
|
|
||||||
TAG_STATUS_ICONS,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct BgTemplate sPartyMenuBgTemplates[] =
|
static const struct BgTemplate sPartyMenuBgTemplates[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
@ -35,12 +29,6 @@ static const struct BgTemplate sPartyMenuBgTemplates[] =
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PARTY_BOX_LEFT_COLUMN,
|
|
||||||
PARTY_BOX_RIGHT_COLUMN
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] =
|
static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] =
|
||||||
{
|
{
|
||||||
[PARTY_BOX_LEFT_COLUMN] =
|
[PARTY_BOX_LEFT_COLUMN] =
|
||||||
|
@ -663,51 +651,6 @@ static const u16 sUnusedData[] =
|
||||||
0x0121, 0x013b, 0x000f, 0x0013, 0x0039, 0x0046, 0x0094, 0x00f9, 0x007f, 0x0123,
|
0x0121, 0x013b, 0x000f, 0x0013, 0x0039, 0x0046, 0x0094, 0x00f9, 0x007f, 0x0123,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
MENU_SUMMARY,
|
|
||||||
MENU_SWITCH,
|
|
||||||
MENU_CANCEL1,
|
|
||||||
MENU_ITEM,
|
|
||||||
MENU_GIVE,
|
|
||||||
MENU_TAKE_ITEM,
|
|
||||||
MENU_MAIL,
|
|
||||||
MENU_TAKE_MAIL,
|
|
||||||
MENU_READ,
|
|
||||||
MENU_CANCEL2,
|
|
||||||
MENU_SHIFT,
|
|
||||||
MENU_SEND_OUT,
|
|
||||||
MENU_ENTER,
|
|
||||||
MENU_NO_ENTRY,
|
|
||||||
MENU_STORE,
|
|
||||||
MENU_REGISTER,
|
|
||||||
MENU_TRADE1,
|
|
||||||
MENU_TRADE2,
|
|
||||||
MENU_TOSS,
|
|
||||||
MENU_FIELD_MOVES,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
FIELD_MOVE_CUT,
|
|
||||||
FIELD_MOVE_FLASH,
|
|
||||||
FIELD_MOVE_ROCK_SMASH,
|
|
||||||
FIELD_MOVE_STRENGTH,
|
|
||||||
FIELD_MOVE_SURF,
|
|
||||||
FIELD_MOVE_FLY,
|
|
||||||
FIELD_MOVE_DIVE,
|
|
||||||
FIELD_MOVE_WATERFALL,
|
|
||||||
FIELD_MOVE_TELEPORT,
|
|
||||||
FIELD_MOVE_DIG,
|
|
||||||
FIELD_MOVE_SECRET_POWER,
|
|
||||||
FIELD_MOVE_MILK_DRINK,
|
|
||||||
FIELD_MOVE_SOFT_BOILED,
|
|
||||||
FIELD_MOVE_SWEET_SCENT,
|
|
||||||
};
|
|
||||||
|
|
||||||
// What a weird choice of table termination;
|
|
||||||
#define FIELD_MOVE_TERMINATOR MOVE_SWORDS_DANCE
|
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
const u8 *text;
|
const u8 *text;
|
||||||
|
@ -763,25 +706,6 @@ static const u8 sPartyMenuAction_TradeSummaryCancel1[] = {MENU_TRADE1, MENU_SUMM
|
||||||
static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {MENU_TRADE2, MENU_SUMMARY, MENU_CANCEL1};
|
static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {MENU_TRADE2, MENU_SUMMARY, MENU_CANCEL1};
|
||||||
static const u8 sPartyMenuAction_TakeItemTossCancel[] = {MENU_TAKE_ITEM, MENU_TOSS, MENU_CANCEL1};
|
static const u8 sPartyMenuAction_TakeItemTossCancel[] = {MENU_TAKE_ITEM, MENU_TOSS, MENU_CANCEL1};
|
||||||
|
|
||||||
// IDs for the action lists that appear when a party mon is selected
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
ACTIONS_NONE,
|
|
||||||
ACTIONS_SWITCH,
|
|
||||||
ACTIONS_SHIFT,
|
|
||||||
ACTIONS_SEND_OUT,
|
|
||||||
ACTIONS_ENTER,
|
|
||||||
ACTIONS_NO_ENTRY,
|
|
||||||
ACTIONS_STORE,
|
|
||||||
ACTIONS_SUMMARY_ONLY,
|
|
||||||
ACTIONS_ITEM,
|
|
||||||
ACTIONS_MAIL,
|
|
||||||
ACTIONS_REGISTER,
|
|
||||||
ACTIONS_TRADE,
|
|
||||||
ACTIONS_SPIN_TRADE,
|
|
||||||
ACTIONS_TAKEITEM_TOSS
|
|
||||||
};
|
|
||||||
|
|
||||||
static const u8 *const sPartyMenuActions[] =
|
static const u8 *const sPartyMenuActions[] =
|
||||||
{
|
{
|
||||||
[ACTIONS_NONE] = NULL,
|
[ACTIONS_NONE] = NULL,
|
||||||
|
@ -818,17 +742,32 @@ static const u8 sPartyMenuActionCounts[] =
|
||||||
[ACTIONS_TAKEITEM_TOSS] = ARRAY_COUNT(sPartyMenuAction_TakeItemTossCancel)
|
[ACTIONS_TAKEITEM_TOSS] = ARRAY_COUNT(sPartyMenuAction_TakeItemTossCancel)
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u16 sFieldMoves[] =
|
static const u16 sFieldMoves[FIELD_MOVES_COUNT + 1] =
|
||||||
{
|
{
|
||||||
MOVE_CUT, MOVE_FLASH, MOVE_ROCK_SMASH, MOVE_STRENGTH, MOVE_SURF, MOVE_FLY, MOVE_DIVE, MOVE_WATERFALL, MOVE_TELEPORT,
|
[FIELD_MOVE_CUT] = MOVE_CUT,
|
||||||
MOVE_DIG, MOVE_SECRET_POWER, MOVE_MILK_DRINK, MOVE_SOFT_BOILED, MOVE_SWEET_SCENT, FIELD_MOVE_TERMINATOR
|
[FIELD_MOVE_FLASH] = MOVE_FLASH,
|
||||||
|
[FIELD_MOVE_ROCK_SMASH] = MOVE_ROCK_SMASH,
|
||||||
|
[FIELD_MOVE_STRENGTH] = MOVE_STRENGTH,
|
||||||
|
[FIELD_MOVE_SURF] = MOVE_SURF,
|
||||||
|
[FIELD_MOVE_FLY] = MOVE_FLY,
|
||||||
|
[FIELD_MOVE_DIVE] = MOVE_DIVE,
|
||||||
|
[FIELD_MOVE_WATERFALL] = MOVE_WATERFALL,
|
||||||
|
[FIELD_MOVE_TELEPORT] = MOVE_TELEPORT,
|
||||||
|
[FIELD_MOVE_DIG] = MOVE_DIG,
|
||||||
|
[FIELD_MOVE_SECRET_POWER] = MOVE_SECRET_POWER,
|
||||||
|
[FIELD_MOVE_MILK_DRINK] = MOVE_MILK_DRINK,
|
||||||
|
[FIELD_MOVE_SOFT_BOILED] = MOVE_SOFT_BOILED,
|
||||||
|
[FIELD_MOVE_SWEET_SCENT] = MOVE_SWEET_SCENT,
|
||||||
|
// NOTE: This value is used as the terminal value for the table. There's no reason to do this, as the size of the table is known.
|
||||||
|
// Whichever move shares this value (MOVE_SWORDS_DANCE by default) if present will be treated as the end of the array rather than a field move.
|
||||||
|
[FIELD_MOVES_COUNT] = FIELD_MOVES_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
bool8 (*fieldMoveFunc)(void);
|
bool8 (*fieldMoveFunc)(void);
|
||||||
u8 msgId;
|
u8 msgId;
|
||||||
} static const sFieldMoveCursorCallbacks[] =
|
} static const sFieldMoveCursorCallbacks[FIELD_MOVES_COUNT] =
|
||||||
{
|
{
|
||||||
[FIELD_MOVE_CUT] = {SetUpFieldMove_Cut, PARTY_MSG_NOTHING_TO_CUT},
|
[FIELD_MOVE_CUT] = {SetUpFieldMove_Cut, PARTY_MSG_NOTHING_TO_CUT},
|
||||||
[FIELD_MOVE_FLASH] = {SetUpFieldMove_Flash, PARTY_MSG_CANT_USE_HERE},
|
[FIELD_MOVE_FLASH] = {SetUpFieldMove_Flash, PARTY_MSG_CANT_USE_HERE},
|
||||||
|
@ -899,23 +838,23 @@ static const union AnimCmd *const sSpriteAnimTable_HeldItem[] =
|
||||||
|
|
||||||
static const struct SpriteSheet sSpriteSheet_HeldItem =
|
static const struct SpriteSheet sSpriteSheet_HeldItem =
|
||||||
{
|
{
|
||||||
sHeldItemGfx, sizeof(sHeldItemGfx), 0xd750
|
.data = sHeldItemGfx, .size = sizeof(sHeldItemGfx), .tag = TAG_HELD_ITEM
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpritePalette sSpritePalette_HeldItem =
|
static const struct SpritePalette sSpritePalette_HeldItem =
|
||||||
{
|
{
|
||||||
sHeldItemPalette, 0xd750
|
.data = sHeldItemPalette, .tag = TAG_HELD_ITEM
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_HeldItem =
|
static const struct SpriteTemplate sSpriteTemplate_HeldItem =
|
||||||
{
|
{
|
||||||
0xd750,
|
.tileTag = TAG_HELD_ITEM,
|
||||||
0xd750,
|
.paletteTag = TAG_HELD_ITEM,
|
||||||
&sOamData_HeldItem,
|
.oam = &sOamData_HeldItem,
|
||||||
sSpriteAnimTable_HeldItem,
|
.anims = sSpriteAnimTable_HeldItem,
|
||||||
NULL,
|
.images = NULL,
|
||||||
gDummySpriteAffineAnimTable,
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
SpriteCallbackDummy
|
.callback = SpriteCallbackDummy
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct OamData sOamData_MenuPokeball =
|
static const struct OamData sOamData_MenuPokeball =
|
||||||
|
|
|
@ -73,6 +73,80 @@
|
||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MENU_SUMMARY,
|
||||||
|
MENU_SWITCH,
|
||||||
|
MENU_CANCEL1,
|
||||||
|
MENU_ITEM,
|
||||||
|
MENU_GIVE,
|
||||||
|
MENU_TAKE_ITEM,
|
||||||
|
MENU_MAIL,
|
||||||
|
MENU_TAKE_MAIL,
|
||||||
|
MENU_READ,
|
||||||
|
MENU_CANCEL2,
|
||||||
|
MENU_SHIFT,
|
||||||
|
MENU_SEND_OUT,
|
||||||
|
MENU_ENTER,
|
||||||
|
MENU_NO_ENTRY,
|
||||||
|
MENU_STORE,
|
||||||
|
MENU_REGISTER,
|
||||||
|
MENU_TRADE1,
|
||||||
|
MENU_TRADE2,
|
||||||
|
MENU_TOSS,
|
||||||
|
MENU_FIELD_MOVES
|
||||||
|
};
|
||||||
|
|
||||||
|
// IDs for the action lists that appear when a party mon is selected
|
||||||
|
enum {
|
||||||
|
ACTIONS_NONE,
|
||||||
|
ACTIONS_SWITCH,
|
||||||
|
ACTIONS_SHIFT,
|
||||||
|
ACTIONS_SEND_OUT,
|
||||||
|
ACTIONS_ENTER,
|
||||||
|
ACTIONS_NO_ENTRY,
|
||||||
|
ACTIONS_STORE,
|
||||||
|
ACTIONS_SUMMARY_ONLY,
|
||||||
|
ACTIONS_ITEM,
|
||||||
|
ACTIONS_MAIL,
|
||||||
|
ACTIONS_REGISTER,
|
||||||
|
ACTIONS_TRADE,
|
||||||
|
ACTIONS_SPIN_TRADE,
|
||||||
|
ACTIONS_TAKEITEM_TOSS,
|
||||||
|
};
|
||||||
|
|
||||||
|
// In CursorCb_FieldMove, field moves <= FIELD_MOVE_WATERFALL are assumed to line up with the badge flags.
|
||||||
|
// Badge flag names are commented here for people searching for references to remove the badge requirement.
|
||||||
|
enum {
|
||||||
|
FIELD_MOVE_CUT, // FLAG_BADGE01_GET
|
||||||
|
FIELD_MOVE_FLASH, // FLAG_BADGE02_GET
|
||||||
|
FIELD_MOVE_ROCK_SMASH, // FLAG_BADGE03_GET
|
||||||
|
FIELD_MOVE_STRENGTH, // FLAG_BADGE04_GET
|
||||||
|
FIELD_MOVE_SURF, // FLAG_BADGE05_GET
|
||||||
|
FIELD_MOVE_FLY, // FLAG_BADGE06_GET
|
||||||
|
FIELD_MOVE_DIVE, // FLAG_BADGE07_GET
|
||||||
|
FIELD_MOVE_WATERFALL, // FLAG_BADGE08_GET
|
||||||
|
FIELD_MOVE_TELEPORT,
|
||||||
|
FIELD_MOVE_DIG,
|
||||||
|
FIELD_MOVE_SECRET_POWER,
|
||||||
|
FIELD_MOVE_MILK_DRINK,
|
||||||
|
FIELD_MOVE_SOFT_BOILED,
|
||||||
|
FIELD_MOVE_SWEET_SCENT,
|
||||||
|
FIELD_MOVES_COUNT
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PARTY_BOX_LEFT_COLUMN,
|
||||||
|
PARTY_BOX_RIGHT_COLUMN,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
TAG_POKEBALL = 1200,
|
||||||
|
TAG_POKEBALL_SMALL,
|
||||||
|
TAG_STATUS_ICONS,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define TAG_HELD_ITEM 55120
|
||||||
|
|
||||||
#define PARTY_PAL_SELECTED (1 << 0)
|
#define PARTY_PAL_SELECTED (1 << 0)
|
||||||
#define PARTY_PAL_FAINTED (1 << 1)
|
#define PARTY_PAL_FAINTED (1 << 1)
|
||||||
#define PARTY_PAL_TO_SWITCH (1 << 2)
|
#define PARTY_PAL_TO_SWITCH (1 << 2)
|
||||||
|
@ -2536,7 +2610,7 @@ static void SetPartyMonFieldSelectionActions(struct Pokemon *mons, u8 slotId)
|
||||||
// Add field moves to action list
|
// Add field moves to action list
|
||||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||||
{
|
{
|
||||||
for (j = 0; sFieldMoves[j] != FIELD_MOVE_TERMINATOR; j++)
|
for (j = 0; sFieldMoves[j] != FIELD_MOVES_COUNT; j++)
|
||||||
{
|
{
|
||||||
if (GetMonData(&mons[slotId], i + MON_DATA_MOVE1) == sFieldMoves[j])
|
if (GetMonData(&mons[slotId], i + MON_DATA_MOVE1) == sFieldMoves[j])
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue