From d0d3ef4fffc29b378c9a5f46b435299451497b6b Mon Sep 17 00:00:00 2001 From: cawtds <38510667+cawtds@users.noreply.github.com> Date: Tue, 18 Nov 2025 17:53:17 +0100 Subject: [PATCH] document pokemon special anim --- include/constants/menu.h | 10 + include/constants/pokemon_special_anim.h | 27 + include/menu.h | 4 +- include/pokemon_special_anim_internal.h | 13 - src/menu2.c | 844 ++++++++++++----------- src/pokemon_special_anim.c | 19 +- src/pokemon_special_anim_scene.c | 58 +- 7 files changed, 502 insertions(+), 473 deletions(-) create mode 100644 include/constants/pokemon_special_anim.h diff --git a/include/constants/menu.h b/include/constants/menu.h index f6ac73efb71..7c36f360591 100644 --- a/include/constants/menu.h +++ b/include/constants/menu.h @@ -111,4 +111,14 @@ #define STDSTRING_TM_CASE 27 #define STDSTRING_BERRY_POUCH 28 +enum +{ + PSA_MON_ATTR_TMHM_X_POS, + PSA_MON_ATTR_TMHM_Y_POS, + PSA_MON_ATTR_Y_OFFSET, + PSA_MON_ATTR_ITEM_X_POS, + PSA_MON_ATTR_ITEM_Y_POS, + PSA_MON_ATTR_COUNT +}; + #endif //GUARD_CONSTANTS_MENU_H diff --git a/include/constants/pokemon_special_anim.h b/include/constants/pokemon_special_anim.h new file mode 100644 index 00000000000..ef86ed63837 --- /dev/null +++ b/include/constants/pokemon_special_anim.h @@ -0,0 +1,27 @@ +#ifndef GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H +#define GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H + +enum +{ + PSA_TEXT_ITEM_USED, + PSA_TEXT_LEVEL_ELEVATED, + PSA_TEXT_FORGET_1, + PSA_TEXT_FORGET_2_AND, + PSA_TEXT_FORGET_POOF, + PSA_TEXT_FORGET_FORGOT, + PSA_TEXT_FORGET_AND, + PSA_TEXT_MACHINE_SET, + PSA_TEXT_HUH, + PSA_TEXT_LEARNED_MOVE +}; + +enum +{ + PSA_ITEM_ANIM_TYPE_DEFAULT, + PSA_ITEM_ANIM_TYPE_POTION, + PSA_ITEM_ANIM_TYPE_UNUSED1, + PSA_ITEM_ANIM_TYPE_UNUSED2, + PSA_ITEM_ANIM_TYPE_TMHM +}; + +#endif // GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H diff --git a/include/menu.h b/include/menu.h index b0dc232fbf6..e176b624431 100644 --- a/include/menu.h +++ b/include/menu.h @@ -31,8 +31,8 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y); void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); bool8 IsBlendTaskActive(void); -u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2); -s8 Menu2_GetMonSpriteAnchorCoordMinusx20(u16 species, u32 personality, u8 a2); +u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId); +s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId); // list_menu void ListMenu_LoadMonIconPalette(u8 palOffset, u16 speciesId); diff --git a/include/pokemon_special_anim_internal.h b/include/pokemon_special_anim_internal.h index 707c40002b9..40ae79e6eea 100644 --- a/include/pokemon_special_anim_internal.h +++ b/include/pokemon_special_anim_internal.h @@ -3,19 +3,6 @@ #include "pokemon_special_anim.h" -enum -{ - PSA_TEXT_ITEM_USED, - PSA_TEXT_LEVEL_ELEVATED, - PSA_TEXT_FORGET_1, - PSA_TEXT_FORGET_2_AND, - PSA_TEXT_FORGET_POOF, - PSA_TEXT_FORGET_FORGOT, - PSA_TEXT_FORGET_AND, - PSA_TEXT_MACHINE_SET, - PSA_TEXT_HUH, - PSA_TEXT_LEARNED_MOVE -}; struct PokemonSpecialAnimScene { diff --git a/src/menu2.c b/src/menu2.c index 7ca12e5f0d2..e4e5eed54e4 100644 --- a/src/menu2.c +++ b/src/menu2.c @@ -2,6 +2,7 @@ #include "gflib.h" #include "task.h" #include "wild_encounter.h" +#include "constants/menu.h" // Not actually "old" given these were introduced in Gen 3, // but they're used as equivalents here alongside the other OLD_UNOWN @@ -10,424 +11,425 @@ static void Task_SmoothBlendLayers(u8 taskId); -static const u8 sMonSpriteAnchorCoords[][5] = { - [SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29}, - [SPECIES_IVYSAUR - 1] = {0x14, 0x1b, 0x30, 0x15, 0x2a}, - [SPECIES_VENUSAUR - 1] = {0x1b, 0x20, 0x20, 0x1b, 0x33}, - [SPECIES_CHARMANDER - 1] = {0x14, 0x0f, 0x38, 0x13, 0x1e}, - [SPECIES_CHARMELEON - 1] = {0x0d, 0x11, 0x30, 0x0f, 0x22}, - [SPECIES_CHARIZARD - 1] = {0x1b, 0x07, 0x28, 0x1a, 0x19}, - [SPECIES_SQUIRTLE - 1] = {0x19, 0x13, 0x30, 0x1a, 0x22}, - [SPECIES_WARTORTLE - 1] = {0x16, 0x13, 0x30, 0x17, 0x21}, - [SPECIES_BLASTOISE - 1] = {0x12, 0x08, 0x28, 0x15, 0x19}, - [SPECIES_CATERPIE - 1] = {0x15, 0x14, 0x30, 0x13, 0x24}, - [SPECIES_METAPOD - 1] = {0x13, 0x1d, 0x30, 0x18, 0x2a}, - [SPECIES_BUTTERFREE - 1] = {0x12, 0x1b, 0x08, 0x12, 0x2a}, - [SPECIES_WEEDLE - 1] = {0x16, 0x1c, 0x30, 0x15, 0x2b}, - [SPECIES_KAKUNA - 1] = {0x19, 0x13, 0x30, 0x1a, 0x24}, - [SPECIES_BEEDRILL - 1] = {0x19, 0x16, 0x08, 0x19, 0x25}, - [SPECIES_PIDGEY - 1] = {0x15, 0x12, 0x30, 0x12, 0x1e}, - [SPECIES_PIDGEOTTO - 1] = {0x24, 0x0e, 0x30, 0x1f, 0x1e}, - [SPECIES_PIDGEOT - 1] = {0x0c, 0x13, 0x08, 0x0a, 0x23}, - [SPECIES_RATTATA - 1] = {0x17, 0x1e, 0x30, 0x18, 0x2d}, - [SPECIES_RATICATE - 1] = {0x12, 0x14, 0x30, 0x10, 0x26}, - [SPECIES_SPEAROW - 1] = {0x15, 0x14, 0x30, 0x15, 0x1f}, - [SPECIES_FEAROW - 1] = {0x0c, 0x27, 0x00, 0x0b, 0x3f}, - [SPECIES_EKANS - 1] = {0x11, 0x0f, 0x30, 0x14, 0x1d}, - [SPECIES_ARBOK - 1] = {0x1b, 0x01, 0x28, 0x1d, 0x10}, - [SPECIES_PIKACHU - 1] = {0x19, 0x13, 0x30, 0x1a, 0x1f}, - [SPECIES_RAICHU - 1] = {0x19, 0x14, 0x28, 0x1c, 0x22}, - [SPECIES_SANDSHREW - 1] = {0x17, 0x16, 0x30, 0x18, 0x25}, - [SPECIES_SANDSLASH - 1] = {0x11, 0x13, 0x28, 0x13, 0x22}, - [SPECIES_NIDORAN_F - 1] = {0x16, 0x15, 0x30, 0x18, 0x21}, - [SPECIES_NIDORINA - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x28}, - [SPECIES_NIDOQUEEN - 1] = {0x10, 0x0b, 0x28, 0x13, 0x1c}, - [SPECIES_NIDORAN_M - 1] = {0x15, 0x22, 0x28, 0x15, 0x31}, - [SPECIES_NIDORINO - 1] = {0x13, 0x1e, 0x28, 0x1b, 0x2d}, - [SPECIES_NIDOKING - 1] = {0x12, 0x15, 0x28, 0x13, 0x27}, - [SPECIES_CLEFAIRY - 1] = {0x19, 0x14, 0x30, 0x1b, 0x24}, - [SPECIES_CLEFABLE - 1] = {0x1c, 0x12, 0x30, 0x1d, 0x21}, - [SPECIES_VULPIX - 1] = {0x10, 0x16, 0x30, 0x0e, 0x25}, - [SPECIES_NINETALES - 1] = {0x28, 0x10, 0x28, 0x27, 0x1e}, - [SPECIES_JIGGLYPUFF - 1] = {0x1d, 0x15, 0x30, 0x1e, 0x25}, - [SPECIES_WIGGLYTUFF - 1] = {0x1a, 0x12, 0x30, 0x1c, 0x22}, - [SPECIES_ZUBAT - 1] = {0x14, 0x1d, 0x08, 0x14, 0x29}, - [SPECIES_GOLBAT - 1] = {0x23, 0x1a, 0x00, 0x21, 0x2e}, - [SPECIES_ODDISH - 1] = {0x1d, 0x20, 0x28, 0x1d, 0x2b}, - [SPECIES_GLOOM - 1] = {0x1c, 0x18, 0x28, 0x1c, 0x27}, - [SPECIES_VILEPLUME - 1] = {0x1c, 0x1e, 0x28, 0x1d, 0x2a}, - [SPECIES_PARAS - 1] = {0x1d, 0x1a, 0x30, 0x1c, 0x27}, - [SPECIES_PARASECT - 1] = {0x1e, 0x1c, 0x28, 0x20, 0x2e}, - [SPECIES_VENONAT - 1] = {0x1b, 0x16, 0x10, 0x1a, 0x29}, - [SPECIES_VENOMOTH - 1] = {0x12, 0x19, 0x08, 0x16, 0x27}, - [SPECIES_DIGLETT - 1] = {0x1e, 0x16, 0x30, 0x1c, 0x23}, - [SPECIES_DUGTRIO - 1] = {0x1a, 0x11, 0x30, 0x1a, 0x1f}, - [SPECIES_MEOWTH - 1] = {0x1c, 0x16, 0x30, 0x1c, 0x23}, - [SPECIES_PERSIAN - 1] = {0x13, 0x13, 0x30, 0x13, 0x21}, - [SPECIES_PSYDUCK - 1] = {0x1c, 0x13, 0x30, 0x17, 0x29}, - [SPECIES_GOLDUCK - 1] = {0x17, 0x12, 0x28, 0x17, 0x22}, - [SPECIES_MANKEY - 1] = {0x1c, 0x15, 0x30, 0x1b, 0x23}, - [SPECIES_PRIMEAPE - 1] = {0x1e, 0x16, 0x30, 0x1a, 0x27}, - [SPECIES_GROWLITHE - 1] = {0x14, 0x17, 0x30, 0x14, 0x24}, - [SPECIES_ARCANINE - 1] = {0x0f, 0x09, 0x28, 0x0c, 0x19}, - [SPECIES_POLIWAG - 1] = {0x15, 0x14, 0x30, 0x13, 0x1f}, - [SPECIES_POLIWHIRL - 1] = {0x1f, 0x10, 0x30, 0x1e, 0x17}, - [SPECIES_POLIWRATH - 1] = {0x22, 0x0c, 0x30, 0x21, 0x18}, - [SPECIES_ABRA - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x21}, - [SPECIES_KADABRA - 1] = {0x1b, 0x12, 0x30, 0x1c, 0x25}, - [SPECIES_ALAKAZAM - 1] = {0x1c, 0x11, 0x28, 0x1d, 0x26}, - [SPECIES_MACHOP - 1] = {0x1b, 0x11, 0x30, 0x1b, 0x1e}, - [SPECIES_MACHOKE - 1] = {0x1d, 0x11, 0x30, 0x1d, 0x1f}, - [SPECIES_MACHAMP - 1] = {0x1a, 0x0d, 0x28, 0x1c, 0x1b}, - [SPECIES_BELLSPROUT - 1] = {0x15, 0x0e, 0x30, 0x0e, 0x1c}, - [SPECIES_WEEPINBELL - 1] = {0x1a, 0x1c, 0x10, 0x15, 0x32}, - [SPECIES_VICTREEBEL - 1] = {0x1e, 0x0f, 0x30, 0x1c, 0x1b}, - [SPECIES_TENTACOOL - 1] = {0x1a, 0x15, 0x30, 0x1e, 0x26}, - [SPECIES_TENTACRUEL - 1] = {0x1b, 0x10, 0x28, 0x1c, 0x26}, - [SPECIES_GEODUDE - 1] = {0x1c, 0x20, 0x28, 0x1d, 0x2d}, - [SPECIES_GRAVELER - 1] = {0x1d, 0x19, 0x28, 0x1e, 0x26}, - [SPECIES_GOLEM - 1] = {0x19, 0x1b, 0x28, 0x1c, 0x27}, - [SPECIES_PONYTA - 1] = {0x0f, 0x11, 0x30, 0x0e, 0x23}, - [SPECIES_RAPIDASH - 1] = {0x2f, 0x0f, 0x28, 0x2b, 0x1e}, - [SPECIES_SLOWPOKE - 1] = {0x14, 0x1f, 0x28, 0x15, 0x2f}, - [SPECIES_SLOWBRO - 1] = {0x0e, 0x0d, 0x28, 0x0c, 0x1f}, - [SPECIES_MAGNEMITE - 1] = {0x20, 0x1b, 0x10, 0x1f, 0x29}, - [SPECIES_MAGNETON - 1] = {0x1f, 0x14, 0x08, 0x1f, 0x22}, - [SPECIES_FARFETCHD - 1] = {0x16, 0x14, 0x30, 0x16, 0x29}, - [SPECIES_DODUO - 1] = {0x11, 0x16, 0x30, 0x0d, 0x2c}, - [SPECIES_DODRIO - 1] = {0x1d, 0x04, 0x28, 0x0e, 0x07}, - [SPECIES_SEEL - 1] = {0x1b, 0x24, 0x20, 0x17, 0x35}, - [SPECIES_DEWGONG - 1] = {0x12, 0x0a, 0x30, 0x0e, 0x1a}, - [SPECIES_GRIMER - 1] = {0x1f, 0x10, 0x30, 0x1d, 0x25}, - [SPECIES_MUK - 1] = {0x17, 0x0f, 0x30, 0x19, 0x22}, - [SPECIES_SHELLDER - 1] = {0x1a, 0x18, 0x30, 0x17, 0x29}, - [SPECIES_CLOYSTER - 1] = {0x19, 0x1e, 0x28, 0x1d, 0x2c}, - [SPECIES_GASTLY - 1] = {0x1a, 0x1f, 0x08, 0x19, 0x30}, - [SPECIES_HAUNTER - 1] = {0x20, 0x14, 0x08, 0x1d, 0x26}, - [SPECIES_GENGAR - 1] = {0x1a, 0x16, 0x30, 0x19, 0x28}, - [SPECIES_ONIX - 1] = {0x1f, 0x24, 0x20, 0x28, 0x36}, - [SPECIES_DROWZEE - 1] = {0x1a, 0x0e, 0x30, 0x1a, 0x1e}, - [SPECIES_HYPNO - 1] = {0x1c, 0x12, 0x30, 0x19, 0x24}, - [SPECIES_KRABBY - 1] = {0x1d, 0x1d, 0x30, 0x1a, 0x2b}, - [SPECIES_KINGLER - 1] = {0x1e, 0x1f, 0x28, 0x1c, 0x30}, - [SPECIES_VOLTORB - 1] = {0x1c, 0x1b, 0x30, 0x1b, 0x2b}, - [SPECIES_ELECTRODE - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x2e}, - [SPECIES_EXEGGCUTE - 1] = {0x21, 0x17, 0x30, 0x20, 0x24}, - [SPECIES_EXEGGUTOR - 1] = {0x1c, 0x17, 0x28, 0x1b, 0x25}, - [SPECIES_CUBONE - 1] = {0x1b, 0x12, 0x30, 0x1b, 0x22}, - [SPECIES_MAROWAK - 1] = {0x14, 0x0f, 0x30, 0x11, 0x23}, - [SPECIES_HITMONLEE - 1] = {0x2e, 0x11, 0x30, 0x28, 0x22}, - [SPECIES_HITMONCHAN - 1] = {0x22, 0x0e, 0x30, 0x1e, 0x1d}, - [SPECIES_LICKITUNG - 1] = {0x14, 0x11, 0x30, 0x14, 0x24}, - [SPECIES_KOFFING - 1] = {0x1e, 0x14, 0x10, 0x1d, 0x20}, - [SPECIES_WEEZING - 1] = {0x11, 0x0d, 0x10, 0x0f, 0x1c}, - [SPECIES_RHYHORN - 1] = {0x0e, 0x23, 0x20, 0x14, 0x33}, - [SPECIES_RHYDON - 1] = {0x0d, 0x12, 0x28, 0x17, 0x22}, - [SPECIES_CHANSEY - 1] = {0x1a, 0x0d, 0x30, 0x1a, 0x1a}, - [SPECIES_TANGELA - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x29}, - [SPECIES_KANGASKHAN - 1] = {0x1b, 0x06, 0x28, 0x1c, 0x14}, - [SPECIES_HORSEA - 1] = {0x1c, 0x14, 0x30, 0x16, 0x23}, - [SPECIES_SEADRA - 1] = {0x10, 0x17, 0x30, 0x09, 0x2a}, - [SPECIES_GOLDEEN - 1] = {0x16, 0x23, 0x20, 0x15, 0x34}, - [SPECIES_SEAKING - 1] = {0x16, 0x0f, 0x30, 0x10, 0x18}, - [SPECIES_STARYU - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x26}, - [SPECIES_STARMIE - 1] = {0x1d, 0x13, 0x30, 0x1b, 0x20}, - [SPECIES_MR_MIME - 1] = {0x24, 0x11, 0x30, 0x25, 0x1e}, - [SPECIES_SCYTHER - 1] = {0x10, 0x19, 0x28, 0x12, 0x27}, - [SPECIES_JYNX - 1] = {0x1b, 0x0f, 0x30, 0x19, 0x1c}, - [SPECIES_ELECTABUZZ - 1] = {0x14, 0x11, 0x30, 0x17, 0x20}, - [SPECIES_MAGMAR - 1] = {0x10, 0x0e, 0x30, 0x0b, 0x19}, - [SPECIES_PINSIR - 1] = {0x1d, 0x1c, 0x28, 0x20, 0x2b}, - [SPECIES_TAUROS - 1] = {0x11, 0x1d, 0x28, 0x13, 0x2e}, - [SPECIES_MAGIKARP - 1] = {0x16, 0x15, 0x30, 0x13, 0x23}, - [SPECIES_GYARADOS - 1] = {0x0b, 0x18, 0x28, 0x16, 0x29}, - [SPECIES_LAPRAS - 1] = {0x16, 0x08, 0x28, 0x15, 0x16}, - [SPECIES_DITTO - 1] = {0x24, 0x12, 0x30, 0x1f, 0x20}, - [SPECIES_EEVEE - 1] = {0x16, 0x16, 0x30, 0x16, 0x23}, - [SPECIES_VAPOREON - 1] = {0x18, 0x23, 0x28, 0x18, 0x30}, - [SPECIES_JOLTEON - 1] = {0x14, 0x1b, 0x30, 0x16, 0x28}, - [SPECIES_FLAREON - 1] = {0x16, 0x17, 0x30, 0x14, 0x25}, - [SPECIES_PORYGON - 1] = {0x18, 0x12, 0x30, 0x10, 0x23}, - [SPECIES_OMANYTE - 1] = {0x1d, 0x1d, 0x30, 0x1c, 0x2b}, - [SPECIES_OMASTAR - 1] = {0x16, 0x1a, 0x30, 0x19, 0x2d}, - [SPECIES_KABUTO - 1] = {0x1b, 0x16, 0x30, 0x1a, 0x27}, - [SPECIES_KABUTOPS - 1] = {0x15, 0x11, 0x30, 0x15, 0x1f}, - [SPECIES_AERODACTYL - 1] = {0x13, 0x1d, 0x00, 0x14, 0x30}, - [SPECIES_SNORLAX - 1] = {0x35, 0x09, 0x30, 0x2e, 0x14}, - [SPECIES_ARTICUNO - 1] = {0x18, 0x0b, 0x18, 0x17, 0x17}, - [SPECIES_ZAPDOS - 1] = {0x0e, 0x0e, 0x10, 0x04, 0x28}, - [SPECIES_MOLTRES - 1] = {0x0b, 0x2a, 0x08, 0x0b, 0x38}, - [SPECIES_DRATINI - 1] = {0x0d, 0x12, 0x30, 0x0b, 0x21}, - [SPECIES_DRAGONAIR - 1] = {0x18, 0x0e, 0x30, 0x13, 0x1c}, - [SPECIES_DRAGONITE - 1] = {0x1b, 0x07, 0x18, 0x19, 0x17}, - [SPECIES_MEWTWO - 1] = {0x2b, 0x09, 0x28, 0x2c, 0x18}, - [SPECIES_MEW - 1] = {0x19, 0x14, 0x10, 0x1f, 0x21}, - [SPECIES_CHIKORITA - 1] = {0x1b, 0x17, 0x30, 0x1b, 0x24}, - [SPECIES_BAYLEEF - 1] = {0x1d, 0x10, 0x30, 0x20, 0x1d}, - [SPECIES_MEGANIUM - 1] = {0x05, 0x0d, 0x28, 0x0d, 0x1b}, - [SPECIES_CYNDAQUIL - 1] = {0x11, 0x1b, 0x30, 0x14, 0x27}, - [SPECIES_QUILAVA - 1] = {0x25, 0x18, 0x30, 0x27, 0x26}, - [SPECIES_TYPHLOSION - 1] = {0x09, 0x10, 0x28, 0x10, 0x1c}, - [SPECIES_TOTODILE - 1] = {0x16, 0x10, 0x30, 0x19, 0x20}, - [SPECIES_CROCONAW - 1] = {0x16, 0x10, 0x30, 0x18, 0x21}, - [SPECIES_FERALIGATR - 1] = {0x0e, 0x0a, 0x28, 0x08, 0x1a}, - [SPECIES_SENTRET - 1] = {0x1e, 0x0a, 0x30, 0x1d, 0x15}, - [SPECIES_FURRET - 1] = {0x21, 0x0e, 0x30, 0x21, 0x19}, - [SPECIES_HOOTHOOT - 1] = {0x1d, 0x15, 0x30, 0x1c, 0x24}, - [SPECIES_NOCTOWL - 1] = {0x19, 0x0e, 0x30, 0x18, 0x1c}, - [SPECIES_LEDYBA - 1] = {0x1b, 0x15, 0x30, 0x1c, 0x24}, - [SPECIES_LEDIAN - 1] = {0x18, 0x12, 0x10, 0x1c, 0x21}, - [SPECIES_SPINARAK - 1] = {0x20, 0x20, 0x28, 0x20, 0x2d}, - [SPECIES_ARIADOS - 1] = {0x17, 0x23, 0x28, 0x15, 0x30}, - [SPECIES_CROBAT - 1] = {0x22, 0x1e, 0x08, 0x23, 0x2b}, - [SPECIES_CHINCHOU - 1] = {0x1f, 0x1d, 0x30, 0x1f, 0x29}, - [SPECIES_LANTURN - 1] = {0x10, 0x23, 0x28, 0x19, 0x33}, - [SPECIES_PICHU - 1] = {0x1e, 0x17, 0x30, 0x1e, 0x24}, - [SPECIES_CLEFFA - 1] = {0x1c, 0x18, 0x30, 0x1e, 0x26}, - [SPECIES_IGGLYBUFF - 1] = {0x1f, 0x19, 0x30, 0x1f, 0x24}, - [SPECIES_TOGEPI - 1] = {0x21, 0x15, 0x30, 0x1f, 0x20}, - [SPECIES_TOGETIC - 1] = {0x1b, 0x10, 0x30, 0x1c, 0x1c}, - [SPECIES_NATU - 1] = {0x1c, 0x17, 0x30, 0x15, 0x21}, - [SPECIES_XATU - 1] = {0x1b, 0x08, 0x30, 0x19, 0x14}, - [SPECIES_MAREEP - 1] = {0x16, 0x15, 0x30, 0x15, 0x24}, - [SPECIES_FLAAFFY - 1] = {0x19, 0x12, 0x30, 0x18, 0x21}, - [SPECIES_AMPHAROS - 1] = {0x0f, 0x0a, 0x30, 0x10, 0x1b}, - [SPECIES_BELLOSSOM - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x20}, - [SPECIES_MARILL - 1] = {0x1d, 0x15, 0x30, 0x1d, 0x22}, - [SPECIES_AZUMARILL - 1] = {0x1a, 0x12, 0x30, 0x17, 0x1f}, - [SPECIES_SUDOWOODO - 1] = {0x20, 0x10, 0x30, 0x20, 0x1f}, - [SPECIES_POLITOED - 1] = {0x1d, 0x0f, 0x30, 0x1e, 0x20}, - [SPECIES_HOPPIP - 1] = {0x23, 0x25, 0x08, 0x25, 0x33}, - [SPECIES_SKIPLOOM - 1] = {0x1e, 0x18, 0x08, 0x1c, 0x27}, - [SPECIES_JUMPLUFF - 1] = {0x1d, 0x21, 0x08, 0x20, 0x2f}, - [SPECIES_AIPOM - 1] = {0x1e, 0x29, 0x18, 0x1e, 0x35}, - [SPECIES_SUNKERN - 1] = {0x1f, 0x20, 0x08, 0x24, 0x2e}, - [SPECIES_SUNFLORA - 1] = {0x1c, 0x0c, 0x30, 0x1b, 0x19}, - [SPECIES_YANMA - 1] = {0x1b, 0x28, 0x08, 0x16, 0x35}, - [SPECIES_WOOPER - 1] = {0x1d, 0x13, 0x30, 0x1f, 0x21}, - [SPECIES_QUAGSIRE - 1] = {0x15, 0x09, 0x30, 0x12, 0x18}, - [SPECIES_ESPEON - 1] = {0x11, 0x1b, 0x30, 0x11, 0x29}, - [SPECIES_UMBREON - 1] = {0x23, 0x15, 0x30, 0x23, 0x22}, - [SPECIES_MURKROW - 1] = {0x24, 0x13, 0x30, 0x20, 0x22}, - [SPECIES_SLOWKING - 1] = {0x1e, 0x13, 0x28, 0x1d, 0x25}, - [SPECIES_MISDREAVUS - 1] = {0x28, 0x21, 0x08, 0x26, 0x2e}, - [SPECIES_UNOWN - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, - [SPECIES_WOBBUFFET - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x1a}, - [SPECIES_GIRAFARIG - 1] = {0x0b, 0x0d, 0x28, 0x11, 0x1d}, - [SPECIES_PINECO - 1] = {0x1d, 0x12, 0x10, 0x19, 0x25}, - [SPECIES_FORRETRESS - 1] = {0x19, 0x17, 0x08, 0x1e, 0x26}, - [SPECIES_DUNSPARCE - 1] = {0x10, 0x1b, 0x30, 0x0c, 0x2d}, - [SPECIES_GLIGAR - 1] = {0x1e, 0x13, 0x08, 0x1d, 0x23}, - [SPECIES_STEELIX - 1] = {0x0c, 0x0d, 0x28, 0x0d, 0x1c}, - [SPECIES_SNUBBULL - 1] = {0x1b, 0x15, 0x30, 0x1a, 0x23}, - [SPECIES_GRANBULL - 1] = {0x1c, 0x09, 0x30, 0x19, 0x18}, - [SPECIES_QWILFISH - 1] = {0x1f, 0x26, 0x20, 0x1d, 0x33}, - [SPECIES_SCIZOR - 1] = {0x15, 0x0f, 0x10, 0x1a, 0x1a}, - [SPECIES_SHUCKLE - 1] = {0x25, 0x0a, 0x30, 0x24, 0x18}, - [SPECIES_HERACROSS - 1] = {0x18, 0x19, 0x28, 0x1a, 0x26}, - [SPECIES_SNEASEL - 1] = {0x1c, 0x13, 0x30, 0x1d, 0x24}, - [SPECIES_TEDDIURSA - 1] = {0x1e, 0x12, 0x30, 0x1b, 0x23}, - [SPECIES_URSARING - 1] = {0x1e, 0x04, 0x28, 0x1d, 0x14}, - [SPECIES_SLUGMA - 1] = {0x20, 0x18, 0x30, 0x20, 0x28}, - [SPECIES_MAGCARGO - 1] = {0x16, 0x11, 0x30, 0x17, 0x23}, - [SPECIES_SWINUB - 1] = {0x1c, 0x18, 0x30, 0x1b, 0x25}, - [SPECIES_PILOSWINE - 1] = {0x18, 0x23, 0x20, 0x18, 0x36}, - [SPECIES_CORSOLA - 1] = {0x19, 0x1d, 0x28, 0x19, 0x2b}, - [SPECIES_REMORAID - 1] = {0x15, 0x1f, 0x28, 0x13, 0x2b}, - [SPECIES_OCTILLERY - 1] = {0x1c, 0x11, 0x30, 0x1a, 0x20}, - [SPECIES_DELIBIRD - 1] = {0x1d, 0x11, 0x30, 0x1b, 0x1f}, - [SPECIES_MANTINE - 1] = {0x16, 0x1e, 0x28, 0x1f, 0x27}, - [SPECIES_SKARMORY - 1] = {0x1e, 0x00, 0x28, 0x13, 0x07}, - [SPECIES_HOUNDOUR - 1] = {0x25, 0x11, 0x30, 0x25, 0x1f}, - [SPECIES_HOUNDOOM - 1] = {0x0d, 0x13, 0x30, 0x0d, 0x24}, - [SPECIES_KINGDRA - 1] = {0x0e, 0x13, 0x28, 0x0a, 0x2c}, - [SPECIES_PHANPY - 1] = {0x1b, 0x11, 0x30, 0x19, 0x24}, - [SPECIES_DONPHAN - 1] = {0x11, 0x15, 0x30, 0x19, 0x2c}, - [SPECIES_PORYGON2 - 1] = {0x18, 0x11, 0x30, 0x11, 0x20}, - [SPECIES_STANTLER - 1] = {0x15, 0x15, 0x28, 0x17, 0x28}, - [SPECIES_SMEARGLE - 1] = {0x18, 0x10, 0x30, 0x1b, 0x25}, - [SPECIES_TYROGUE - 1] = {0x1e, 0x12, 0x30, 0x1f, 0x1f}, - [SPECIES_HITMONTOP - 1] = {0x1a, 0x39, 0x10, 0x1a, 0x2b}, - [SPECIES_SMOOCHUM - 1] = {0x20, 0x18, 0x30, 0x21, 0x26}, - [SPECIES_ELEKID - 1] = {0x1d, 0x14, 0x30, 0x1d, 0x23}, - [SPECIES_MAGBY - 1] = {0x1c, 0x15, 0x30, 0x1a, 0x24}, - [SPECIES_MILTANK - 1] = {0x18, 0x0e, 0x30, 0x18, 0x1e}, - [SPECIES_BLISSEY - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x19}, - [SPECIES_RAIKOU - 1] = {0x29, 0x0c, 0x28, 0x27, 0x1e}, - [SPECIES_ENTEI - 1] = {0x08, 0x09, 0x28, 0x0b, 0x18}, - [SPECIES_SUICUNE - 1] = {0x23, 0x1d, 0x28, 0x26, 0x2c}, - [SPECIES_LARVITAR - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x24}, - [SPECIES_PUPITAR - 1] = {0x1b, 0x19, 0x30, 0x1b, 0x28}, - [SPECIES_TYRANITAR - 1] = {0x06, 0x0b, 0x28, 0x0d, 0x19}, - [SPECIES_LUGIA - 1] = {0x08, 0x2a, 0x08, 0x14, 0x34}, - [SPECIES_HO_OH - 1] = {0x0d, 0x25, 0x08, 0x0e, 0x34}, - [SPECIES_CELEBI - 1] = {0x15, 0x21, 0x08, 0x1a, 0x2b}, - [SPECIES_OLD_UNOWN_B - 1] = {0x1f, 0x12, 0x08, 0x1e, 0x1c}, - [SPECIES_OLD_UNOWN_C - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, - [SPECIES_OLD_UNOWN_D - 1] = {0x1c, 0x19, 0x08, 0x1b, 0x23}, - [SPECIES_OLD_UNOWN_E - 1] = {0x21, 0x19, 0x08, 0x20, 0x23}, - [SPECIES_OLD_UNOWN_F - 1] = {0x1b, 0x13, 0x08, 0x1a, 0x1d}, - [SPECIES_OLD_UNOWN_G - 1] = {0x20, 0x16, 0x08, 0x1f, 0x21}, - [SPECIES_OLD_UNOWN_H - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_I - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_J - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20}, - [SPECIES_OLD_UNOWN_K - 1] = {0x1d, 0x1a, 0x08, 0x1c, 0x24}, - [SPECIES_OLD_UNOWN_L - 1] = {0x20, 0x16, 0x08, 0x1f, 0x1f}, - [SPECIES_OLD_UNOWN_M - 1] = {0x20, 0x1c, 0x08, 0x1f, 0x26}, - [SPECIES_OLD_UNOWN_N - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_O - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_P - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20}, - [SPECIES_OLD_UNOWN_Q - 1] = {0x1d, 0x16, 0x08, 0x1c, 0x20}, - [SPECIES_OLD_UNOWN_R - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f}, - [SPECIES_OLD_UNOWN_S - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_T - 1] = {0x20, 0x1e, 0x08, 0x1f, 0x28}, - [SPECIES_OLD_UNOWN_U - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, - [SPECIES_OLD_UNOWN_V - 1] = {0x1e, 0x1e, 0x08, 0x1d, 0x28}, - [SPECIES_OLD_UNOWN_W - 1] = {0x20, 0x1d, 0x08, 0x1f, 0x27}, - [SPECIES_OLD_UNOWN_X - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_Y - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f}, - [SPECIES_OLD_UNOWN_Z - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_TREECKO - 1] = {0x1a, 0x0f, 0x30, 0x19, 0x20}, - [SPECIES_GROVYLE - 1] = {0x0d, 0x05, 0x10, 0x05, 0x13}, - [SPECIES_SCEPTILE - 1] = {0x10, 0x04, 0x28, 0x0c, 0x12}, - [SPECIES_TORCHIC - 1] = {0x17, 0x18, 0x30, 0x15, 0x25}, - [SPECIES_COMBUSKEN - 1] = {0x20, 0x12, 0x28, 0x1e, 0x20}, - [SPECIES_BLAZIKEN - 1] = {0x1a, 0x07, 0x28, 0x1d, 0x13}, - [SPECIES_MUDKIP - 1] = {0x1b, 0x1d, 0x28, 0x19, 0x2c}, - [SPECIES_MARSHTOMP - 1] = {0x1d, 0x11, 0x30, 0x1c, 0x20}, - [SPECIES_SWAMPERT - 1] = {0x1b, 0x11, 0x28, 0x1b, 0x23}, - [SPECIES_POOCHYENA - 1] = {0x14, 0x12, 0x30, 0x0f, 0x20}, - [SPECIES_MIGHTYENA - 1] = {0x09, 0x0d, 0x28, 0x09, 0x1c}, - [SPECIES_ZIGZAGOON - 1] = {0x0b, 0x1a, 0x30, 0x09, 0x2b}, - [SPECIES_LINOONE - 1] = {0x0d, 0x28, 0x18, 0x0b, 0x37}, - [SPECIES_WURMPLE - 1] = {0x21, 0x17, 0x30, 0x1f, 0x26}, - [SPECIES_SILCOON - 1] = {0x13, 0x1c, 0x30, 0x11, 0x2a}, - [SPECIES_BEAUTIFLY - 1] = {0x0f, 0x1b, 0x08, 0x0e, 0x28}, - [SPECIES_CASCOON - 1] = {0x14, 0x1d, 0x30, 0x11, 0x2c}, - [SPECIES_DUSTOX - 1] = {0x14, 0x19, 0x08, 0x16, 0x26}, - [SPECIES_LOTAD - 1] = {0x19, 0x25, 0x28, 0x17, 0x32}, - [SPECIES_LOMBRE - 1] = {0x22, 0x10, 0x30, 0x29, 0x1d}, - [SPECIES_LUDICOLO - 1] = {0x1c, 0x0f, 0x28, 0x1b, 0x24}, - [SPECIES_SEEDOT - 1] = {0x1b, 0x17, 0x30, 0x18, 0x28}, - [SPECIES_NUZLEAF - 1] = {0x20, 0x0d, 0x30, 0x1a, 0x1d}, - [SPECIES_SHIFTRY - 1] = {0x32, 0x11, 0x28, 0x2e, 0x23}, - [SPECIES_NINCADA - 1] = {0x18, 0x1a, 0x30, 0x17, 0x28}, - [SPECIES_NINJASK - 1] = {0x17, 0x21, 0x00, 0x17, 0x2f}, - [SPECIES_SHEDINJA - 1] = {0x16, 0x19, 0x08, 0x18, 0x2a}, - [SPECIES_TAILLOW - 1] = {0x17, 0x10, 0x30, 0x14, 0x1e}, - [SPECIES_SWELLOW - 1] = {0x0c, 0x0a, 0x28, 0x05, 0x16}, - [SPECIES_SHROOMISH - 1] = {0x1f, 0x16, 0x30, 0x1d, 0x23}, - [SPECIES_BRELOOM - 1] = {0x25, 0x0c, 0x30, 0x23, 0x19}, - [SPECIES_SPINDA - 1] = {0x21, 0x16, 0x30, 0x1f, 0x27}, - [SPECIES_WINGULL - 1] = {0x1a, 0x16, 0x10, 0x15, 0x26}, - [SPECIES_PELIPPER - 1] = {0x1d, 0x0a, 0x10, 0x09, 0x1b}, - [SPECIES_SURSKIT - 1] = {0x1d, 0x16, 0x30, 0x1c, 0x25}, - [SPECIES_MASQUERAIN - 1] = {0x1a, 0x21, 0x08, 0x14, 0x30}, - [SPECIES_WAILMER - 1] = {0x17, 0x17, 0x30, 0x16, 0x28}, - [SPECIES_WAILORD - 1] = {0x17, 0x03, 0x30, 0x09, 0x13}, - [SPECIES_SKITTY - 1] = {0x24, 0x1a, 0x30, 0x22, 0x2a}, - [SPECIES_DELCATTY - 1] = {0x1e, 0x12, 0x30, 0x1c, 0x21}, - [SPECIES_KECLEON - 1] = {0x19, 0x10, 0x30, 0x13, 0x1e}, - [SPECIES_BALTOY - 1] = {0x1d, 0x15, 0x30, 0x1b, 0x22}, - [SPECIES_CLAYDOL - 1] = {0x1e, 0x0d, 0x28, 0x1d, 0x24}, - [SPECIES_NOSEPASS - 1] = {0x1f, 0x10, 0x30, 0x15, 0x23}, - [SPECIES_TORKOAL - 1] = {0x0e, 0x19, 0x28, 0x0a, 0x27}, - [SPECIES_SABLEYE - 1] = {0x1e, 0x16, 0x30, 0x1d, 0x27}, - [SPECIES_BARBOACH - 1] = {0x17, 0x12, 0x30, 0x15, 0x1e}, - [SPECIES_WHISCASH - 1] = {0x18, 0x20, 0x28, 0x17, 0x31}, - [SPECIES_LUVDISC - 1] = {0x19, 0x0f, 0x30, 0x13, 0x1c}, - [SPECIES_CORPHISH - 1] = {0x1f, 0x14, 0x30, 0x1d, 0x23}, - [SPECIES_CRAWDAUNT - 1] = {0x14, 0x0c, 0x28, 0x18, 0x23}, - [SPECIES_FEEBAS - 1] = {0x18, 0x1e, 0x28, 0x16, 0x2f}, - [SPECIES_MILOTIC - 1] = {0x20, 0x0c, 0x28, 0x1f, 0x1d}, - [SPECIES_CARVANHA - 1] = {0x16, 0x19, 0x30, 0x13, 0x22}, - [SPECIES_SHARPEDO - 1] = {0x19, 0x0c, 0x28, 0x17, 0x27}, - [SPECIES_TRAPINCH - 1] = {0x29, 0x13, 0x30, 0x17, 0x18}, - [SPECIES_VIBRAVA - 1] = {0x10, 0x27, 0x20, 0x0e, 0x34}, - [SPECIES_FLYGON - 1] = {0x22, 0x07, 0x10, 0x21, 0x13}, - [SPECIES_MAKUHITA - 1] = {0x22, 0x13, 0x30, 0x1c, 0x23}, - [SPECIES_HARIYAMA - 1] = {0x24, 0x0f, 0x28, 0x26, 0x1c}, - [SPECIES_ELECTRIKE - 1] = {0x11, 0x18, 0x30, 0x14, 0x27}, - [SPECIES_MANECTRIC - 1] = {0x2f, 0x18, 0x28, 0x2e, 0x29}, - [SPECIES_NUMEL - 1] = {0x10, 0x1a, 0x30, 0x0d, 0x2a}, - [SPECIES_CAMERUPT - 1] = {0x0d, 0x22, 0x28, 0x0e, 0x36}, - [SPECIES_SPHEAL - 1] = {0x1e, 0x0f, 0x30, 0x18, 0x1f}, - [SPECIES_SEALEO - 1] = {0x1c, 0x09, 0x30, 0x1a, 0x18}, - [SPECIES_WALREIN - 1] = {0x19, 0x01, 0x28, 0x10, 0x16}, - [SPECIES_CACNEA - 1] = {0x1f, 0x17, 0x30, 0x1d, 0x29}, - [SPECIES_CACTURNE - 1] = {0x1d, 0x0e, 0x28, 0x1d, 0x1b}, - [SPECIES_SNORUNT - 1] = {0x1e, 0x16, 0x30, 0x1e, 0x26}, - [SPECIES_GLALIE - 1] = {0x1a, 0x1c, 0x08, 0x1a, 0x31}, - [SPECIES_LUNATONE - 1] = {0x1c, 0x16, 0x08, 0x19, 0x2c}, - [SPECIES_SOLROCK - 1] = {0x18, 0x18, 0x10, 0x17, 0x31}, - [SPECIES_AZURILL - 1] = {0x1b, 0x10, 0x30, 0x18, 0x1f}, - [SPECIES_SPOINK - 1] = {0x21, 0x14, 0x30, 0x1b, 0x28}, - [SPECIES_GRUMPIG - 1] = {0x14, 0x10, 0x30, 0x15, 0x20}, - [SPECIES_PLUSLE - 1] = {0x1c, 0x16, 0x08, 0x1d, 0x25}, - [SPECIES_MINUN - 1] = {0x21, 0x16, 0x08, 0x1f, 0x26}, - [SPECIES_MAWILE - 1] = {0x2d, 0x14, 0x30, 0x2f, 0x24}, - [SPECIES_MEDITITE - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x25}, - [SPECIES_MEDICHAM - 1] = {0x21, 0x0f, 0x28, 0x1e, 0x1d}, - [SPECIES_SWABLU - 1] = {0x1b, 0x16, 0x10, 0x17, 0x23}, - [SPECIES_ALTARIA - 1] = {0x1d, 0x0b, 0x10, 0x1a, 0x1a}, - [SPECIES_WYNAUT - 1] = {0x1a, 0x15, 0x30, 0x1b, 0x26}, - [SPECIES_DUSKULL - 1] = {0x10, 0x18, 0x08, 0x14, 0x2e}, - [SPECIES_DUSCLOPS - 1] = {0x1c, 0x0f, 0x30, 0x1a, 0x28}, - [SPECIES_ROSELIA - 1] = {0x1e, 0x11, 0x30, 0x1d, 0x20}, - [SPECIES_SLAKOTH - 1] = {0x19, 0x1e, 0x30, 0x18, 0x2f}, - [SPECIES_VIGOROTH - 1] = {0x10, 0x12, 0x28, 0x14, 0x24}, - [SPECIES_SLAKING - 1] = {0x37, 0x0f, 0x30, 0x29, 0x21}, - [SPECIES_GULPIN - 1] = {0x1b, 0x18, 0x30, 0x17, 0x26}, - [SPECIES_SWALOT - 1] = {0x1f, 0x06, 0x30, 0x15, 0x13}, - [SPECIES_TROPIUS - 1] = {0x18, 0x0a, 0x28, 0x20, 0x18}, - [SPECIES_WHISMUR - 1] = {0x1f, 0x19, 0x30, 0x1d, 0x29}, - [SPECIES_LOUDRED - 1] = {0x1c, 0x12, 0x28, 0x22, 0x27}, - [SPECIES_EXPLOUD - 1] = {0x10, 0x10, 0x28, 0x1a, 0x2a}, - [SPECIES_CLAMPERL - 1] = {0x20, 0x1a, 0x30, 0x1e, 0x26}, - [SPECIES_HUNTAIL - 1] = {0x13, 0x1e, 0x28, 0x15, 0x33}, - [SPECIES_GOREBYSS - 1] = {0x0d, 0x1f, 0x28, 0x03, 0x32}, - [SPECIES_ABSOL - 1] = {0x2a, 0x11, 0x28, 0x2a, 0x22}, - [SPECIES_SHUPPET - 1] = {0x16, 0x19, 0x08, 0x17, 0x27}, - [SPECIES_BANETTE - 1] = {0x1c, 0x14, 0x08, 0x1b, 0x23}, - [SPECIES_SEVIPER - 1] = {0x0e, 0x0d, 0x30, 0x0b, 0x1e}, - [SPECIES_ZANGOOSE - 1] = {0x18, 0x0c, 0x28, 0x15, 0x1a}, - [SPECIES_RELICANTH - 1] = {0x0c, 0x1f, 0x30, 0x09, 0x2d}, - [SPECIES_ARON - 1] = {0x18, 0x1c, 0x30, 0x1a, 0x2c}, - [SPECIES_LAIRON - 1] = {0x0b, 0x21, 0x30, 0x12, 0x2f}, - [SPECIES_AGGRON - 1] = {0x10, 0x0b, 0x28, 0x16, 0x1b}, - [SPECIES_CASTFORM - 1] = {0x1d, 0x18, 0x08, 0x1b, 0x26}, - [SPECIES_VOLBEAT - 1] = {0x25, 0x15, 0x08, 0x21, 0x25}, - [SPECIES_ILLUMISE - 1] = {0x20, 0x12, 0x08, 0x1f, 0x20}, - [SPECIES_LILEEP - 1] = {0x1e, 0x11, 0x30, 0x1f, 0x1e}, - [SPECIES_CRADILY - 1] = {0x12, 0x16, 0x28, 0x15, 0x28}, - [SPECIES_ANORITH - 1] = {0x1c, 0x1e, 0x30, 0x1b, 0x2b}, - [SPECIES_ARMALDO - 1] = {0x15, 0x05, 0x28, 0x14, 0x13}, - [SPECIES_RALTS - 1] = {0x1f, 0x17, 0x30, 0x20, 0x23}, - [SPECIES_KIRLIA - 1] = {0x1c, 0x12, 0x30, 0x1f, 0x1e}, - [SPECIES_GARDEVOIR - 1] = {0x35, 0x07, 0x28, 0x32, 0x14}, - [SPECIES_BAGON - 1] = {0x17, 0x13, 0x30, 0x16, 0x26}, - [SPECIES_SHELGON - 1] = {0x19, 0x1b, 0x30, 0x19, 0x2c}, - [SPECIES_SALAMENCE - 1] = {0x09, 0x11, 0x30, 0x0a, 0x21}, - [SPECIES_BELDUM - 1] = {0x16, 0x19, 0x08, 0x18, 0x23}, - [SPECIES_METANG - 1] = {0x22, 0x0f, 0x10, 0x1f, 0x21}, - [SPECIES_METAGROSS - 1] = {0x24, 0x1b, 0x28, 0x22, 0x2b}, - [SPECIES_REGIROCK - 1] = {0x16, 0x07, 0x28, 0x14, 0x12}, - [SPECIES_REGICE - 1] = {0x19, 0x0c, 0x28, 0x17, 0x19}, - [SPECIES_REGISTEEL - 1] = {0x19, 0x0d, 0x28, 0x19, 0x19}, - [SPECIES_KYOGRE - 1] = {0x0e, 0x19, 0x28, 0x0b, 0x26}, - [SPECIES_GROUDON - 1] = {0x04, 0x0b, 0x28, 0x0a, 0x19}, - [SPECIES_RAYQUAZA - 1] = {0x0c, 0x0e, 0x10, 0x0e, 0x1f}, - [SPECIES_LATIAS - 1] = {0x1e, 0x0c, 0x10, 0x23, 0x19}, - [SPECIES_LATIOS - 1] = {0x05, 0x0e, 0x10, 0x05, 0x1d}, - [SPECIES_JIRACHI - 1] = {0x1c, 0x15, 0x08, 0x1e, 0x22}, +static const u8 sMonPosAttributes[][PSA_MON_ATTR_COUNT] = { + // TMHM_X, TMHM_Y, Y_OFFSET, ITEM_X, ITEM_Y + [SPECIES_BULBASAUR - 1] = {22, 27, 48, 22, 41}, + [SPECIES_IVYSAUR - 1] = {20, 27, 48, 21, 42}, + [SPECIES_VENUSAUR - 1] = {27, 32, 32, 27, 51}, + [SPECIES_CHARMANDER - 1] = {20, 15, 56, 19, 30}, + [SPECIES_CHARMELEON - 1] = {13, 17, 48, 15, 34}, + [SPECIES_CHARIZARD - 1] = {27, 7, 40, 26, 25}, + [SPECIES_SQUIRTLE - 1] = {25, 19, 48, 26, 34}, + [SPECIES_WARTORTLE - 1] = {22, 19, 48, 23, 33}, + [SPECIES_BLASTOISE - 1] = {18, 8, 40, 21, 25}, + [SPECIES_CATERPIE - 1] = {21, 20, 48, 19, 36}, + [SPECIES_METAPOD - 1] = {19, 29, 48, 24, 42}, + [SPECIES_BUTTERFREE - 1] = {18, 27, 8, 18, 42}, + [SPECIES_WEEDLE - 1] = {22, 28, 48, 21, 43}, + [SPECIES_KAKUNA - 1] = {25, 19, 48, 26, 36}, + [SPECIES_BEEDRILL - 1] = {25, 22, 8, 25, 37}, + [SPECIES_PIDGEY - 1] = {21, 18, 48, 18, 30}, + [SPECIES_PIDGEOTTO - 1] = {36, 14, 48, 31, 30}, + [SPECIES_PIDGEOT - 1] = {12, 19, 8, 10, 35}, + [SPECIES_RATTATA - 1] = {23, 30, 48, 24, 45}, + [SPECIES_RATICATE - 1] = {18, 20, 48, 16, 38}, + [SPECIES_SPEAROW - 1] = {21, 20, 48, 21, 31}, + [SPECIES_FEAROW - 1] = {12, 39, 0, 11, 63}, + [SPECIES_EKANS - 1] = {17, 15, 48, 20, 29}, + [SPECIES_ARBOK - 1] = {27, 1, 40, 29, 16}, + [SPECIES_PIKACHU - 1] = {25, 19, 48, 26, 31}, + [SPECIES_RAICHU - 1] = {25, 20, 40, 28, 34}, + [SPECIES_SANDSHREW - 1] = {23, 22, 48, 24, 37}, + [SPECIES_SANDSLASH - 1] = {17, 19, 40, 19, 34}, + [SPECIES_NIDORAN_F - 1] = {22, 21, 48, 24, 33}, + [SPECIES_NIDORINA - 1] = {31, 23, 48, 30, 40}, + [SPECIES_NIDOQUEEN - 1] = {16, 11, 40, 19, 28}, + [SPECIES_NIDORAN_M - 1] = {21, 34, 40, 21, 49}, + [SPECIES_NIDORINO - 1] = {19, 30, 40, 27, 45}, + [SPECIES_NIDOKING - 1] = {18, 21, 40, 19, 39}, + [SPECIES_CLEFAIRY - 1] = {25, 20, 48, 27, 36}, + [SPECIES_CLEFABLE - 1] = {28, 18, 48, 29, 33}, + [SPECIES_VULPIX - 1] = {16, 22, 48, 14, 37}, + [SPECIES_NINETALES - 1] = {40, 16, 40, 39, 30}, + [SPECIES_JIGGLYPUFF - 1] = {29, 21, 48, 30, 37}, + [SPECIES_WIGGLYTUFF - 1] = {26, 18, 48, 28, 34}, + [SPECIES_ZUBAT - 1] = {20, 29, 8, 20, 41}, + [SPECIES_GOLBAT - 1] = {35, 26, 0, 33, 46}, + [SPECIES_ODDISH - 1] = {29, 32, 40, 29, 43}, + [SPECIES_GLOOM - 1] = {28, 24, 40, 28, 39}, + [SPECIES_VILEPLUME - 1] = {28, 30, 40, 29, 42}, + [SPECIES_PARAS - 1] = {29, 26, 48, 28, 39}, + [SPECIES_PARASECT - 1] = {30, 28, 40, 32, 46}, + [SPECIES_VENONAT - 1] = {27, 22, 16, 26, 41}, + [SPECIES_VENOMOTH - 1] = {18, 25, 8, 22, 39}, + [SPECIES_DIGLETT - 1] = {30, 22, 48, 28, 35}, + [SPECIES_DUGTRIO - 1] = {26, 17, 48, 26, 31}, + [SPECIES_MEOWTH - 1] = {28, 22, 48, 28, 35}, + [SPECIES_PERSIAN - 1] = {19, 19, 48, 19, 33}, + [SPECIES_PSYDUCK - 1] = {28, 19, 48, 23, 41}, + [SPECIES_GOLDUCK - 1] = {23, 18, 40, 23, 34}, + [SPECIES_MANKEY - 1] = {28, 21, 48, 27, 35}, + [SPECIES_PRIMEAPE - 1] = {30, 22, 48, 26, 39}, + [SPECIES_GROWLITHE - 1] = {20, 23, 48, 20, 36}, + [SPECIES_ARCANINE - 1] = {15, 9, 40, 12, 25}, + [SPECIES_POLIWAG - 1] = {21, 20, 48, 19, 31}, + [SPECIES_POLIWHIRL - 1] = {31, 16, 48, 30, 23}, + [SPECIES_POLIWRATH - 1] = {34, 12, 48, 33, 24}, + [SPECIES_ABRA - 1] = {31, 19, 48, 31, 33}, + [SPECIES_KADABRA - 1] = {27, 18, 48, 28, 37}, + [SPECIES_ALAKAZAM - 1] = {28, 17, 40, 29, 38}, + [SPECIES_MACHOP - 1] = {27, 17, 48, 27, 30}, + [SPECIES_MACHOKE - 1] = {29, 17, 48, 29, 31}, + [SPECIES_MACHAMP - 1] = {26, 13, 40, 28, 27}, + [SPECIES_BELLSPROUT - 1] = {21, 14, 48, 14, 28}, + [SPECIES_WEEPINBELL - 1] = {26, 28, 16, 21, 50}, + [SPECIES_VICTREEBEL - 1] = {30, 15, 48, 28, 27}, + [SPECIES_TENTACOOL - 1] = {26, 21, 48, 30, 38}, + [SPECIES_TENTACRUEL - 1] = {27, 16, 40, 28, 38}, + [SPECIES_GEODUDE - 1] = {28, 32, 40, 29, 45}, + [SPECIES_GRAVELER - 1] = {29, 25, 40, 30, 38}, + [SPECIES_GOLEM - 1] = {25, 27, 40, 28, 39}, + [SPECIES_PONYTA - 1] = {15, 17, 48, 14, 35}, + [SPECIES_RAPIDASH - 1] = {47, 15, 40, 43, 30}, + [SPECIES_SLOWPOKE - 1] = {20, 31, 40, 21, 47}, + [SPECIES_SLOWBRO - 1] = {14, 13, 40, 12, 31}, + [SPECIES_MAGNEMITE - 1] = {32, 27, 16, 31, 41}, + [SPECIES_MAGNETON - 1] = {31, 20, 8, 31, 34}, + [SPECIES_FARFETCHD - 1] = {22, 20, 48, 22, 41}, + [SPECIES_DODUO - 1] = {17, 22, 48, 13, 44}, + [SPECIES_DODRIO - 1] = {29, 4, 40, 14, 7}, + [SPECIES_SEEL - 1] = {27, 36, 32, 23, 53}, + [SPECIES_DEWGONG - 1] = {18, 10, 48, 14, 26}, + [SPECIES_GRIMER - 1] = {31, 16, 48, 29, 37}, + [SPECIES_MUK - 1] = {23, 15, 48, 25, 34}, + [SPECIES_SHELLDER - 1] = {26, 24, 48, 23, 41}, + [SPECIES_CLOYSTER - 1] = {25, 30, 40, 29, 44}, + [SPECIES_GASTLY - 1] = {26, 31, 8, 25, 48}, + [SPECIES_HAUNTER - 1] = {32, 20, 8, 29, 38}, + [SPECIES_GENGAR - 1] = {26, 22, 48, 25, 40}, + [SPECIES_ONIX - 1] = {31, 36, 32, 40, 54}, + [SPECIES_DROWZEE - 1] = {26, 14, 48, 26, 30}, + [SPECIES_HYPNO - 1] = {28, 18, 48, 25, 36}, + [SPECIES_KRABBY - 1] = {29, 29, 48, 26, 43}, + [SPECIES_KINGLER - 1] = {30, 31, 40, 28, 48}, + [SPECIES_VOLTORB - 1] = {28, 27, 48, 27, 43}, + [SPECIES_ELECTRODE - 1] = {28, 24, 48, 29, 46}, + [SPECIES_EXEGGCUTE - 1] = {33, 23, 48, 32, 36}, + [SPECIES_EXEGGUTOR - 1] = {28, 23, 40, 27, 37}, + [SPECIES_CUBONE - 1] = {27, 18, 48, 27, 34}, + [SPECIES_MAROWAK - 1] = {20, 15, 48, 17, 35}, + [SPECIES_HITMONLEE - 1] = {46, 17, 48, 40, 34}, + [SPECIES_HITMONCHAN - 1] = {34, 14, 48, 30, 29}, + [SPECIES_LICKITUNG - 1] = {20, 17, 48, 20, 36}, + [SPECIES_KOFFING - 1] = {30, 20, 16, 29, 32}, + [SPECIES_WEEZING - 1] = {17, 13, 16, 15, 28}, + [SPECIES_RHYHORN - 1] = {14, 35, 32, 20, 51}, + [SPECIES_RHYDON - 1] = {13, 18, 40, 23, 34}, + [SPECIES_CHANSEY - 1] = {26, 13, 48, 26, 26}, + [SPECIES_TANGELA - 1] = {28, 24, 48, 29, 41}, + [SPECIES_KANGASKHAN - 1] = {27, 6, 40, 28, 20}, + [SPECIES_HORSEA - 1] = {28, 20, 48, 22, 35}, + [SPECIES_SEADRA - 1] = {16, 23, 48, 9, 42}, + [SPECIES_GOLDEEN - 1] = {22, 35, 32, 21, 52}, + [SPECIES_SEAKING - 1] = {22, 15, 48, 16, 24}, + [SPECIES_STARYU - 1] = {28, 24, 48, 26, 38}, + [SPECIES_STARMIE - 1] = {29, 19, 48, 27, 32}, + [SPECIES_MR_MIME - 1] = {36, 17, 48, 37, 30}, + [SPECIES_SCYTHER - 1] = {16, 25, 40, 18, 39}, + [SPECIES_JYNX - 1] = {27, 15, 48, 25, 28}, + [SPECIES_ELECTABUZZ - 1] = {20, 17, 48, 23, 32}, + [SPECIES_MAGMAR - 1] = {16, 14, 48, 11, 25}, + [SPECIES_PINSIR - 1] = {29, 28, 40, 32, 43}, + [SPECIES_TAUROS - 1] = {17, 29, 40, 19, 46}, + [SPECIES_MAGIKARP - 1] = {22, 21, 48, 19, 35}, + [SPECIES_GYARADOS - 1] = {11, 24, 40, 22, 41}, + [SPECIES_LAPRAS - 1] = {22, 8, 40, 21, 22}, + [SPECIES_DITTO - 1] = {36, 18, 48, 31, 32}, + [SPECIES_EEVEE - 1] = {22, 22, 48, 22, 35}, + [SPECIES_VAPOREON - 1] = {24, 35, 40, 24, 48}, + [SPECIES_JOLTEON - 1] = {20, 27, 48, 22, 40}, + [SPECIES_FLAREON - 1] = {22, 23, 48, 20, 37}, + [SPECIES_PORYGON - 1] = {24, 18, 48, 16, 35}, + [SPECIES_OMANYTE - 1] = {29, 29, 48, 28, 43}, + [SPECIES_OMASTAR - 1] = {22, 26, 48, 25, 45}, + [SPECIES_KABUTO - 1] = {27, 22, 48, 26, 39}, + [SPECIES_KABUTOPS - 1] = {21, 17, 48, 21, 31}, + [SPECIES_AERODACTYL - 1] = {19, 29, 0, 20, 48}, + [SPECIES_SNORLAX - 1] = {53, 9, 48, 46, 20}, + [SPECIES_ARTICUNO - 1] = {24, 11, 24, 23, 23}, + [SPECIES_ZAPDOS - 1] = {14, 14, 16, 4, 40}, + [SPECIES_MOLTRES - 1] = {11, 42, 8, 11, 56}, + [SPECIES_DRATINI - 1] = {13, 18, 48, 11, 33}, + [SPECIES_DRAGONAIR - 1] = {24, 14, 48, 19, 28}, + [SPECIES_DRAGONITE - 1] = {27, 7, 24, 25, 23}, + [SPECIES_MEWTWO - 1] = {43, 9, 40, 44, 24}, + [SPECIES_MEW - 1] = {25, 20, 16, 31, 33}, + [SPECIES_CHIKORITA - 1] = {27, 23, 48, 27, 36}, + [SPECIES_BAYLEEF - 1] = {29, 16, 48, 32, 29}, + [SPECIES_MEGANIUM - 1] = { 5, 13, 40, 13, 27}, + [SPECIES_CYNDAQUIL - 1] = {17, 27, 48, 20, 39}, + [SPECIES_QUILAVA - 1] = {37, 24, 48, 39, 38}, + [SPECIES_TYPHLOSION - 1] = { 9, 16, 40, 16, 28}, + [SPECIES_TOTODILE - 1] = {22, 16, 48, 25, 32}, + [SPECIES_CROCONAW - 1] = {22, 16, 48, 24, 33}, + [SPECIES_FERALIGATR - 1] = {14, 10, 40, 8, 26}, + [SPECIES_SENTRET - 1] = {30, 10, 48, 29, 21}, + [SPECIES_FURRET - 1] = {33, 14, 48, 33, 25}, + [SPECIES_HOOTHOOT - 1] = {29, 21, 48, 28, 36}, + [SPECIES_NOCTOWL - 1] = {25, 14, 48, 24, 28}, + [SPECIES_LEDYBA - 1] = {27, 21, 48, 28, 36}, + [SPECIES_LEDIAN - 1] = {24, 18, 16, 28, 33}, + [SPECIES_SPINARAK - 1] = {32, 32, 40, 32, 45}, + [SPECIES_ARIADOS - 1] = {23, 35, 40, 21, 48}, + [SPECIES_CROBAT - 1] = {34, 30, 8, 35, 43}, + [SPECIES_CHINCHOU - 1] = {31, 29, 48, 31, 41}, + [SPECIES_LANTURN - 1] = {16, 35, 40, 25, 51}, + [SPECIES_PICHU - 1] = {30, 23, 48, 30, 36}, + [SPECIES_CLEFFA - 1] = {28, 24, 48, 30, 38}, + [SPECIES_IGGLYBUFF - 1] = {31, 25, 48, 31, 36}, + [SPECIES_TOGEPI - 1] = {33, 21, 48, 31, 32}, + [SPECIES_TOGETIC - 1] = {27, 16, 48, 28, 28}, + [SPECIES_NATU - 1] = {28, 23, 48, 21, 33}, + [SPECIES_XATU - 1] = {27, 8, 48, 25, 20}, + [SPECIES_MAREEP - 1] = {22, 21, 48, 21, 36}, + [SPECIES_FLAAFFY - 1] = {25, 18, 48, 24, 33}, + [SPECIES_AMPHAROS - 1] = {15, 10, 48, 16, 27}, + [SPECIES_BELLOSSOM - 1] = {31, 19, 48, 31, 32}, + [SPECIES_MARILL - 1] = {29, 21, 48, 29, 34}, + [SPECIES_AZUMARILL - 1] = {26, 18, 48, 23, 31}, + [SPECIES_SUDOWOODO - 1] = {32, 16, 48, 32, 31}, + [SPECIES_POLITOED - 1] = {29, 15, 48, 30, 32}, + [SPECIES_HOPPIP - 1] = {35, 37, 8, 37, 51}, + [SPECIES_SKIPLOOM - 1] = {30, 24, 8, 28, 39}, + [SPECIES_JUMPLUFF - 1] = {29, 33, 8, 32, 47}, + [SPECIES_AIPOM - 1] = {30, 41, 24, 30, 53}, + [SPECIES_SUNKERN - 1] = {31, 32, 8, 36, 46}, + [SPECIES_SUNFLORA - 1] = {28, 12, 48, 27, 25}, + [SPECIES_YANMA - 1] = {27, 40, 8, 22, 53}, + [SPECIES_WOOPER - 1] = {29, 19, 48, 31, 33}, + [SPECIES_QUAGSIRE - 1] = {21, 9, 48, 18, 24}, + [SPECIES_ESPEON - 1] = {17, 27, 48, 17, 41}, + [SPECIES_UMBREON - 1] = {35, 21, 48, 35, 34}, + [SPECIES_MURKROW - 1] = {36, 19, 48, 32, 34}, + [SPECIES_SLOWKING - 1] = {30, 19, 40, 29, 37}, + [SPECIES_MISDREAVUS - 1] = {40, 33, 8, 38, 46}, + [SPECIES_UNOWN - 1] = {32, 23, 8, 31, 33}, + [SPECIES_WOBBUFFET - 1] = {29, 9, 48, 29, 26}, + [SPECIES_GIRAFARIG - 1] = {11, 13, 40, 17, 29}, + [SPECIES_PINECO - 1] = {29, 18, 16, 25, 37}, + [SPECIES_FORRETRESS - 1] = {25, 23, 8, 30, 38}, + [SPECIES_DUNSPARCE - 1] = {16, 27, 48, 12, 45}, + [SPECIES_GLIGAR - 1] = {30, 19, 8, 29, 35}, + [SPECIES_STEELIX - 1] = {12, 13, 40, 13, 28}, + [SPECIES_SNUBBULL - 1] = {27, 21, 48, 26, 35}, + [SPECIES_GRANBULL - 1] = {28, 9, 48, 25, 24}, + [SPECIES_QWILFISH - 1] = {31, 38, 32, 29, 51}, + [SPECIES_SCIZOR - 1] = {21, 15, 16, 26, 26}, + [SPECIES_SHUCKLE - 1] = {37, 10, 48, 36, 24}, + [SPECIES_HERACROSS - 1] = {24, 25, 40, 26, 38}, + [SPECIES_SNEASEL - 1] = {28, 19, 48, 29, 36}, + [SPECIES_TEDDIURSA - 1] = {30, 18, 48, 27, 35}, + [SPECIES_URSARING - 1] = {30, 4, 40, 29, 20}, + [SPECIES_SLUGMA - 1] = {32, 24, 48, 32, 40}, + [SPECIES_MAGCARGO - 1] = {22, 17, 48, 23, 35}, + [SPECIES_SWINUB - 1] = {28, 24, 48, 27, 37}, + [SPECIES_PILOSWINE - 1] = {24, 35, 32, 24, 54}, + [SPECIES_CORSOLA - 1] = {25, 29, 40, 25, 43}, + [SPECIES_REMORAID - 1] = {21, 31, 40, 19, 43}, + [SPECIES_OCTILLERY - 1] = {28, 17, 48, 26, 32}, + [SPECIES_DELIBIRD - 1] = {29, 17, 48, 27, 31}, + [SPECIES_MANTINE - 1] = {22, 30, 40, 31, 39}, + [SPECIES_SKARMORY - 1] = {30, 0, 40, 19, 7}, + [SPECIES_HOUNDOUR - 1] = {37, 17, 48, 37, 31}, + [SPECIES_HOUNDOOM - 1] = {13, 19, 48, 13, 36}, + [SPECIES_KINGDRA - 1] = {14, 19, 40, 10, 44}, + [SPECIES_PHANPY - 1] = {27, 17, 48, 25, 36}, + [SPECIES_DONPHAN - 1] = {17, 21, 48, 25, 44}, + [SPECIES_PORYGON2 - 1] = {24, 17, 48, 17, 32}, + [SPECIES_STANTLER - 1] = {21, 21, 40, 23, 40}, + [SPECIES_SMEARGLE - 1] = {24, 16, 48, 27, 37}, + [SPECIES_TYROGUE - 1] = {30, 18, 48, 31, 31}, + [SPECIES_HITMONTOP - 1] = {26, 57, 16, 26, 43}, + [SPECIES_SMOOCHUM - 1] = {32, 24, 48, 33, 38}, + [SPECIES_ELEKID - 1] = {29, 20, 48, 29, 35}, + [SPECIES_MAGBY - 1] = {28, 21, 48, 26, 36}, + [SPECIES_MILTANK - 1] = {24, 14, 48, 24, 30}, + [SPECIES_BLISSEY - 1] = {29, 9, 48, 29, 25}, + [SPECIES_RAIKOU - 1] = {41, 12, 40, 39, 30}, + [SPECIES_ENTEI - 1] = { 8, 9, 40, 11, 24}, + [SPECIES_SUICUNE - 1] = {35, 29, 40, 38, 44}, + [SPECIES_LARVITAR - 1] = {28, 24, 48, 26, 36}, + [SPECIES_PUPITAR - 1] = {27, 25, 48, 27, 40}, + [SPECIES_TYRANITAR - 1] = { 6, 11, 40, 13, 25}, + [SPECIES_LUGIA - 1] = { 8, 42, 8, 20, 52}, + [SPECIES_HO_OH - 1] = {13, 37, 8, 14, 52}, + [SPECIES_CELEBI - 1] = {21, 33, 8, 26, 43}, + [SPECIES_OLD_UNOWN_B - 1] = {31, 18, 8, 30, 28}, + [SPECIES_OLD_UNOWN_C - 1] = {32, 23, 8, 31, 33}, + [SPECIES_OLD_UNOWN_D - 1] = {28, 25, 8, 27, 35}, + [SPECIES_OLD_UNOWN_E - 1] = {33, 25, 8, 32, 35}, + [SPECIES_OLD_UNOWN_F - 1] = {27, 19, 8, 26, 29}, + [SPECIES_OLD_UNOWN_G - 1] = {32, 22, 8, 31, 33}, + [SPECIES_OLD_UNOWN_H - 1] = {32, 25, 8, 31, 35}, + [SPECIES_OLD_UNOWN_I - 1] = {32, 25, 8, 31, 35}, + [SPECIES_OLD_UNOWN_J - 1] = {32, 22, 8, 31, 32}, + [SPECIES_OLD_UNOWN_K - 1] = {29, 26, 8, 28, 36}, + [SPECIES_OLD_UNOWN_L - 1] = {32, 22, 8, 31, 31}, + [SPECIES_OLD_UNOWN_M - 1] = {32, 28, 8, 31, 38}, + [SPECIES_OLD_UNOWN_N - 1] = {32, 26, 8, 31, 35}, + [SPECIES_OLD_UNOWN_O - 1] = {32, 26, 8, 31, 35}, + [SPECIES_OLD_UNOWN_P - 1] = {32, 22, 8, 31, 32}, + [SPECIES_OLD_UNOWN_Q - 1] = {29, 22, 8, 28, 32}, + [SPECIES_OLD_UNOWN_R - 1] = {32, 21, 8, 31, 31}, + [SPECIES_OLD_UNOWN_S - 1] = {32, 25, 8, 31, 35}, + [SPECIES_OLD_UNOWN_T - 1] = {32, 30, 8, 31, 40}, + [SPECIES_OLD_UNOWN_U - 1] = {32, 23, 8, 31, 33}, + [SPECIES_OLD_UNOWN_V - 1] = {30, 30, 8, 29, 40}, + [SPECIES_OLD_UNOWN_W - 1] = {32, 29, 8, 31, 39}, + [SPECIES_OLD_UNOWN_X - 1] = {32, 25, 8, 31, 35}, + [SPECIES_OLD_UNOWN_Y - 1] = {32, 21, 8, 31, 31}, + [SPECIES_OLD_UNOWN_Z - 1] = {32, 25, 8, 31, 35}, + [SPECIES_TREECKO - 1] = {26, 15, 48, 25, 32}, + [SPECIES_GROVYLE - 1] = {13, 5, 16, 5, 19}, + [SPECIES_SCEPTILE - 1] = {16, 4, 40, 12, 18}, + [SPECIES_TORCHIC - 1] = {23, 24, 48, 21, 37}, + [SPECIES_COMBUSKEN - 1] = {32, 18, 40, 30, 32}, + [SPECIES_BLAZIKEN - 1] = {26, 7, 40, 29, 19}, + [SPECIES_MUDKIP - 1] = {27, 29, 40, 25, 44}, + [SPECIES_MARSHTOMP - 1] = {29, 17, 48, 28, 32}, + [SPECIES_SWAMPERT - 1] = {27, 17, 40, 27, 35}, + [SPECIES_POOCHYENA - 1] = {20, 18, 48, 15, 32}, + [SPECIES_MIGHTYENA - 1] = { 9, 13, 40, 9, 28}, + [SPECIES_ZIGZAGOON - 1] = {11, 26, 48, 9, 43}, + [SPECIES_LINOONE - 1] = {13, 40, 24, 11, 55}, + [SPECIES_WURMPLE - 1] = {33, 23, 48, 31, 38}, + [SPECIES_SILCOON - 1] = {19, 28, 48, 17, 42}, + [SPECIES_BEAUTIFLY - 1] = {15, 27, 8, 14, 40}, + [SPECIES_CASCOON - 1] = {20, 29, 48, 17, 44}, + [SPECIES_DUSTOX - 1] = {20, 25, 8, 22, 38}, + [SPECIES_LOTAD - 1] = {25, 37, 40, 23, 50}, + [SPECIES_LOMBRE - 1] = {34, 16, 48, 41, 29}, + [SPECIES_LUDICOLO - 1] = {28, 15, 40, 27, 36}, + [SPECIES_SEEDOT - 1] = {27, 23, 48, 24, 40}, + [SPECIES_NUZLEAF - 1] = {32, 13, 48, 26, 29}, + [SPECIES_SHIFTRY - 1] = {50, 17, 40, 46, 35}, + [SPECIES_NINCADA - 1] = {24, 26, 48, 23, 40}, + [SPECIES_NINJASK - 1] = {23, 33, 0, 23, 47}, + [SPECIES_SHEDINJA - 1] = {22, 25, 8, 24, 42}, + [SPECIES_TAILLOW - 1] = {23, 16, 48, 20, 30}, + [SPECIES_SWELLOW - 1] = {12, 10, 40, 5, 22}, + [SPECIES_SHROOMISH - 1] = {31, 22, 48, 29, 35}, + [SPECIES_BRELOOM - 1] = {37, 12, 48, 35, 25}, + [SPECIES_SPINDA - 1] = {33, 22, 48, 31, 39}, + [SPECIES_WINGULL - 1] = {26, 22, 16, 21, 38}, + [SPECIES_PELIPPER - 1] = {29, 10, 16, 9, 27}, + [SPECIES_SURSKIT - 1] = {29, 22, 48, 28, 37}, + [SPECIES_MASQUERAIN - 1] = {26, 33, 8, 20, 48}, + [SPECIES_WAILMER - 1] = {23, 23, 48, 22, 40}, + [SPECIES_WAILORD - 1] = {23, 3, 48, 9, 19}, + [SPECIES_SKITTY - 1] = {36, 26, 48, 34, 42}, + [SPECIES_DELCATTY - 1] = {30, 18, 48, 28, 33}, + [SPECIES_KECLEON - 1] = {25, 16, 48, 19, 30}, + [SPECIES_BALTOY - 1] = {29, 21, 48, 27, 34}, + [SPECIES_CLAYDOL - 1] = {30, 13, 40, 29, 36}, + [SPECIES_NOSEPASS - 1] = {31, 16, 48, 21, 35}, + [SPECIES_TORKOAL - 1] = {14, 25, 40, 10, 39}, + [SPECIES_SABLEYE - 1] = {30, 22, 48, 29, 39}, + [SPECIES_BARBOACH - 1] = {23, 18, 48, 21, 30}, + [SPECIES_WHISCASH - 1] = {24, 32, 40, 23, 49}, + [SPECIES_LUVDISC - 1] = {25, 15, 48, 19, 28}, + [SPECIES_CORPHISH - 1] = {31, 20, 48, 29, 35}, + [SPECIES_CRAWDAUNT - 1] = {20, 12, 40, 24, 35}, + [SPECIES_FEEBAS - 1] = {24, 30, 40, 22, 47}, + [SPECIES_MILOTIC - 1] = {32, 12, 40, 31, 29}, + [SPECIES_CARVANHA - 1] = {22, 25, 48, 19, 34}, + [SPECIES_SHARPEDO - 1] = {25, 12, 40, 23, 39}, + [SPECIES_TRAPINCH - 1] = {41, 19, 48, 23, 24}, + [SPECIES_VIBRAVA - 1] = {16, 39, 32, 14, 52}, + [SPECIES_FLYGON - 1] = {34, 7, 16, 33, 19}, + [SPECIES_MAKUHITA - 1] = {34, 19, 48, 28, 35}, + [SPECIES_HARIYAMA - 1] = {36, 15, 40, 38, 28}, + [SPECIES_ELECTRIKE - 1] = {17, 24, 48, 20, 39}, + [SPECIES_MANECTRIC - 1] = {47, 24, 40, 46, 41}, + [SPECIES_NUMEL - 1] = {16, 26, 48, 13, 42}, + [SPECIES_CAMERUPT - 1] = {13, 34, 40, 14, 54}, + [SPECIES_SPHEAL - 1] = {30, 15, 48, 24, 31}, + [SPECIES_SEALEO - 1] = {28, 9, 48, 26, 24}, + [SPECIES_WALREIN - 1] = {25, 1, 40, 16, 22}, + [SPECIES_CACNEA - 1] = {31, 23, 48, 29, 41}, + [SPECIES_CACTURNE - 1] = {29, 14, 40, 29, 27}, + [SPECIES_SNORUNT - 1] = {30, 22, 48, 30, 38}, + [SPECIES_GLALIE - 1] = {26, 28, 8, 26, 49}, + [SPECIES_LUNATONE - 1] = {28, 22, 8, 25, 44}, + [SPECIES_SOLROCK - 1] = {24, 24, 16, 23, 49}, + [SPECIES_AZURILL - 1] = {27, 16, 48, 24, 31}, + [SPECIES_SPOINK - 1] = {33, 20, 48, 27, 40}, + [SPECIES_GRUMPIG - 1] = {20, 16, 48, 21, 32}, + [SPECIES_PLUSLE - 1] = {28, 22, 8, 29, 37}, + [SPECIES_MINUN - 1] = {33, 22, 8, 31, 38}, + [SPECIES_MAWILE - 1] = {45, 20, 48, 47, 36}, + [SPECIES_MEDITITE - 1] = {31, 23, 48, 30, 37}, + [SPECIES_MEDICHAM - 1] = {33, 15, 40, 30, 29}, + [SPECIES_SWABLU - 1] = {27, 22, 16, 23, 35}, + [SPECIES_ALTARIA - 1] = {29, 11, 16, 26, 26}, + [SPECIES_WYNAUT - 1] = {26, 21, 48, 27, 38}, + [SPECIES_DUSKULL - 1] = {16, 24, 8, 20, 46}, + [SPECIES_DUSCLOPS - 1] = {28, 15, 48, 26, 40}, + [SPECIES_ROSELIA - 1] = {30, 17, 48, 29, 32}, + [SPECIES_SLAKOTH - 1] = {25, 30, 48, 24, 47}, + [SPECIES_VIGOROTH - 1] = {16, 18, 40, 20, 36}, + [SPECIES_SLAKING - 1] = {55, 15, 48, 41, 33}, + [SPECIES_GULPIN - 1] = {27, 24, 48, 23, 38}, + [SPECIES_SWALOT - 1] = {31, 6, 48, 21, 19}, + [SPECIES_TROPIUS - 1] = {24, 10, 40, 32, 24}, + [SPECIES_WHISMUR - 1] = {31, 25, 48, 29, 41}, + [SPECIES_LOUDRED - 1] = {28, 18, 40, 34, 39}, + [SPECIES_EXPLOUD - 1] = {16, 16, 40, 26, 42}, + [SPECIES_CLAMPERL - 1] = {32, 26, 48, 30, 38}, + [SPECIES_HUNTAIL - 1] = {19, 30, 40, 21, 51}, + [SPECIES_GOREBYSS - 1] = {13, 31, 40, 3, 50}, + [SPECIES_ABSOL - 1] = {42, 17, 40, 42, 34}, + [SPECIES_SHUPPET - 1] = {22, 25, 8, 23, 39}, + [SPECIES_BANETTE - 1] = {28, 20, 8, 27, 35}, + [SPECIES_SEVIPER - 1] = {14, 13, 48, 11, 30}, + [SPECIES_ZANGOOSE - 1] = {24, 12, 40, 21, 26}, + [SPECIES_RELICANTH - 1] = {12, 31, 48, 9, 45}, + [SPECIES_ARON - 1] = {24, 28, 48, 26, 44}, + [SPECIES_LAIRON - 1] = {11, 33, 48, 18, 47}, + [SPECIES_AGGRON - 1] = {16, 11, 40, 22, 27}, + [SPECIES_CASTFORM - 1] = {29, 24, 8, 27, 38}, + [SPECIES_VOLBEAT - 1] = {37, 21, 8, 33, 37}, + [SPECIES_ILLUMISE - 1] = {32, 18, 8, 31, 32}, + [SPECIES_LILEEP - 1] = {30, 17, 48, 31, 30}, + [SPECIES_CRADILY - 1] = {18, 22, 40, 21, 40}, + [SPECIES_ANORITH - 1] = {28, 30, 48, 27, 43}, + [SPECIES_ARMALDO - 1] = {21, 5, 40, 20, 19}, + [SPECIES_RALTS - 1] = {31, 23, 48, 32, 35}, + [SPECIES_KIRLIA - 1] = {28, 18, 48, 31, 30}, + [SPECIES_GARDEVOIR - 1] = {53, 7, 40, 50, 20}, + [SPECIES_BAGON - 1] = {23, 19, 48, 22, 38}, + [SPECIES_SHELGON - 1] = {25, 27, 48, 25, 44}, + [SPECIES_SALAMENCE - 1] = { 9, 17, 48, 10, 33}, + [SPECIES_BELDUM - 1] = {22, 25, 8, 24, 35}, + [SPECIES_METANG - 1] = {34, 15, 16, 31, 33}, + [SPECIES_METAGROSS - 1] = {36, 27, 40, 34, 43}, + [SPECIES_REGIROCK - 1] = {22, 7, 40, 20, 18}, + [SPECIES_REGICE - 1] = {25, 12, 40, 23, 25}, + [SPECIES_REGISTEEL - 1] = {25, 13, 40, 25, 25}, + [SPECIES_KYOGRE - 1] = {14, 25, 40, 11, 38}, + [SPECIES_GROUDON - 1] = { 4, 11, 40, 10, 25}, + [SPECIES_RAYQUAZA - 1] = {12, 14, 16, 14, 31}, + [SPECIES_LATIAS - 1] = {30, 12, 16, 35, 25}, + [SPECIES_LATIOS - 1] = { 5, 14, 16, 5, 29}, + [SPECIES_JIRACHI - 1] = {28, 21, 8, 30, 34}, #if defined(FIRERED) - [SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16}, + [SPECIES_DEOXYS - 1] = {27, 8, 40, 28, 22}, #elif defined(LEAFGREEN) - [SPECIES_DEOXYS - 1] = {0x1a, 0x09, 0x28, 0x1a, 0x17}, + [SPECIES_DEOXYS - 1] = {26, 9, 40, 26, 23}, #endif - [SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a}, - [SPECIES_OLD_UNOWN_EMARK - 1] = {0x20, 0x21, 0x08, 0x20, 0x2b}, - [SPECIES_OLD_UNOWN_QMARK - 1] = {0x20, 0x23, 0x08, 0x20, 0x2d} + [SPECIES_CHIMECHO - 1] = {29, 12, 8, 28, 26}, + [SPECIES_OLD_UNOWN_EMARK - 1] = {32, 33, 8, 32, 43}, + [SPECIES_OLD_UNOWN_QMARK - 1] = {32, 35, 8, 32, 45} }; void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 x, u8 y, const u8 * color, s8 speed, const u8 * str) @@ -634,7 +636,7 @@ static void Task_SmoothBlendLayers(u8 taskId) } } -u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2) +u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId) { if (species == SPECIES_UNOWN) { @@ -654,16 +656,16 @@ u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2) break; } } - if (species != SPECIES_NONE && a2 < 5) + if (species != SPECIES_NONE && attributeId < PSA_MON_ATTR_COUNT) { species--; - if (sMonSpriteAnchorCoords[species][a2] != 0xFF) - return sMonSpriteAnchorCoords[species][a2]; + if (sMonPosAttributes[species][attributeId] != 0xFF) + return sMonPosAttributes[species][attributeId]; } return 32; } -s8 Menu2_GetMonSpriteAnchorCoordMinusx20(u16 species, u32 personality, u8 a2) +s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId) { - return Menu2_GetMonSpriteAnchorCoord(species, personality, a2) - 32; + return Menu2_GetMonPosAttribute(species, personality, attributeId) - 32; } diff --git a/src/pokemon_special_anim.c b/src/pokemon_special_anim.c index bf56a5c21a0..e1c344ef8fd 100644 --- a/src/pokemon_special_anim.c +++ b/src/pokemon_special_anim.c @@ -5,6 +5,7 @@ #include "pokemon_special_anim_internal.h" #include "item_use.h" #include "task.h" +#include "constants/pokemon_special_anim.h" #include "constants/songs.h" #include "constants/items.h" @@ -86,7 +87,7 @@ static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback ptr->pokemon = *pokemon; ptr->field_00a4 = 0; GetMonData(pokemon, MON_DATA_NICKNAME, ptr->nickname); - if (ptr->animType == 4) + if (ptr->animType == PSA_ITEM_ANIM_TYPE_TMHM) { moveId = ItemIdToBattleMoveId(itemId); StringCopy(ptr->nameOfMoveToTeach, gMoveNames[moveId]); @@ -122,12 +123,12 @@ static void SetUpUseItemAnim_Normal(struct PokemonSpecialAnim * ptr) u8 taskId; switch (ptr->animType) { - case 0: - case 1: - case 3: + case PSA_ITEM_ANIM_TYPE_DEFAULT: + case PSA_ITEM_ANIM_TYPE_POTION: + case PSA_ITEM_ANIM_TYPE_UNUSED2: taskId = CreateTask(Task_UseItem_Normal, 0); break; - case 4: + case PSA_ITEM_ANIM_TYPE_TMHM: taskId = CreateTask(Task_UseTM_NoForget, 0); break; default: @@ -602,8 +603,8 @@ static const struct { u16 itemId; u16 animType; } sItemAnimMap[2] = { - {ITEM_RARE_CANDY, 0}, - {ITEM_POTION, 1} + {ITEM_RARE_CANDY, PSA_ITEM_ANIM_TYPE_DEFAULT}, + {ITEM_POTION, PSA_ITEM_ANIM_TYPE_POTION} }; static u16 GetAnimTypeByItemId(u16 itemId) @@ -618,10 +619,10 @@ static u16 GetAnimTypeByItemId(u16 itemId) if (itemId >= ITEM_TM01 && itemId <= ITEM_HM08) { - return 4; + return PSA_ITEM_ANIM_TYPE_TMHM; } - return 0; + return PSA_ITEM_ANIM_TYPE_DEFAULT; } static u8 GetClosenessFromFriendship(u16 friendship) diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c index 164d936a173..bdb070c9655 100644 --- a/src/pokemon_special_anim_scene.c +++ b/src/pokemon_special_anim_scene.c @@ -12,6 +12,8 @@ #include "strings.h" #include "text_window.h" #include "trig.h" +#include "constants/menu.h" +#include "constants/pokemon_special_anim.h" #include "constants/songs.h" static void LoadBgGfxByAnimType(u16 animType); @@ -635,7 +637,7 @@ static void LoadBgGfxByAnimType(u16 animType) { CopyToBgTilemapBuffer(3, sBg_Tilemap, 0, 0x000); DecompressAndCopyTileDataToVram(3, sBg_Gfx, 0, 0x000, 0); - if (animType != 4) + if (animType != PSA_ITEM_ANIM_TYPE_TMHM) LoadPalette(sBg_Pal, BG_PLTT_ID(0), sizeof(sBg_Pal)); else LoadPalette(sBg_TmHm_Pal, BG_PLTT_ID(0), sizeof(sBg_TmHm_Pal)); @@ -647,31 +649,31 @@ void PSA_CreateMonSpriteAtCloseness(u8 closeness) struct Pokemon * pokemon = PSA_GetPokemon(); u16 species = GetMonData(pokemon, MON_DATA_SPECIES); u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY); - u8 r1 = Menu2_GetMonSpriteAnchorCoord(species, personality, 2); - void *r6; - void *r9; - void *r4; + u8 yOffset = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_Y_OFFSET); + void *monPicBuffer; + void *unusedBuffer; + void *monPalBuffer; u8 spriteId; - if (r1 != 0xFF) + if (yOffset != 0xFF) { - scene->monSpriteY1 = 0x48; - scene->monSpriteY2 = r1 + 0x30; + scene->monSpriteY1 = 72; + scene->monSpriteY2 = yOffset + 48; } else { - scene->monSpriteY1 = 0x48; - scene->monSpriteY2 = 0x60; + scene->monSpriteY1 = 72; + scene->monSpriteY2 = 96; } - r6 = Alloc(0x2000); - r9 = Alloc(0x2000); - r4 = Alloc(0x100); - if (r6 != NULL && r9 != NULL && r4 != NULL) + monPicBuffer = Alloc(MON_PIC_SIZE * MAX_MON_PIC_FRAMES); + unusedBuffer = Alloc(0x2000); + monPalBuffer = Alloc(0x100); + if (monPicBuffer != NULL && unusedBuffer != NULL && monPalBuffer != NULL) { - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], r6, species, personality); - LZ77UnCompWram(GetMonFrontSpritePal(pokemon), r4); - LoadMonSpriteGraphics(r6, r4); + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], monPicBuffer, species, personality); + LZ77UnCompWram(GetMonFrontSpritePal(pokemon), monPalBuffer); + LoadMonSpriteGraphics(monPicBuffer, monPalBuffer); spriteId = CreateSprite(&sSpriteTemplate_MonSprite, 120, scene->monSpriteY1, 4); if (spriteId != MAX_SPRITES) { @@ -682,9 +684,9 @@ void PSA_CreateMonSpriteAtCloseness(u8 closeness) scene->monSprite = NULL; scene->lastCloseness = closeness; } - if (r6 != NULL) Free(r6); - if (r9 != NULL) Free(r9); - if (r4 != NULL) Free(r4); + if (monPicBuffer != NULL) Free(monPicBuffer); + if (unusedBuffer != NULL) Free(unusedBuffer); + if (monPalBuffer != NULL) Free(monPalBuffer); } #define tState data[0] @@ -842,7 +844,7 @@ static void LoadMonSpriteGraphics(u16 *tiles, u16 *palette) struct SpritePalette spritePalette; spriteSheet.data = tiles; - spriteSheet.size = 0x800; + spriteSheet.size = MON_PIC_SIZE; spriteSheet.tag = 0; spritePalette.data = palette; spritePalette.tag = 0; @@ -1062,10 +1064,10 @@ static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, stru personality = PSA_GetMonPersonality(); switch (PSA_GetAnimType()) { - case 4: + case PSA_ITEM_ANIM_TYPE_TMHM: { - x = Menu2_GetMonSpriteAnchorCoord(species, personality, 0); - y = Menu2_GetMonSpriteAnchorCoord(species, personality, 1); + x = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_TMHM_X_POS); + y = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_TMHM_Y_POS); if (x == 0xFF) x = 0; if (y == 0xFF) @@ -1076,8 +1078,8 @@ static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, stru } default: { - x = Menu2_GetMonSpriteAnchorCoord(species, personality, 3); - y = Menu2_GetMonSpriteAnchorCoord(species, personality, 4); + x = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_ITEM_X_POS); + y = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_ITEM_Y_POS); if (x == 0xFF) x = 0; if (y == 0xFF) @@ -1200,8 +1202,8 @@ static void CreateStarSprites(struct PokemonSpecialAnimScene * scene) personality = PSA_GetMonPersonality(); gSprites[spriteId].data[3] = sStarCoordOffsets[i][0] * 8; gSprites[spriteId].data[4] = sStarCoordOffsets[i][1] * 8; - gSprites[spriteId].x += GetSpriteOffsetByScale(Menu2_GetMonSpriteAnchorCoordMinusx20(species, personality, 0), 3); - gSprites[spriteId].y += GetSpriteOffsetByScale(Menu2_GetMonSpriteAnchorCoordMinusx20(species, personality, 1), 3); + gSprites[spriteId].x += GetSpriteOffsetByScale(Menu2_GetStarSpritePosAttribute(species, personality, PSA_MON_ATTR_TMHM_X_POS), 3); + gSprites[spriteId].y += GetSpriteOffsetByScale(Menu2_GetStarSpritePosAttribute(species, personality, PSA_MON_ATTR_TMHM_Y_POS), 3); scene->field_0002++; } }