Merge pull request #309 from PikalaxALT/pokemon_special_anim

Pokemon special anim
This commit is contained in:
PikalaxALT
2020-03-22 14:50:33 -04:00
committed by GitHub
20 changed files with 2830 additions and 5430 deletions
File diff suppressed because it is too large Load Diff
-200
View File
@@ -1,200 +0,0 @@
#include "constants/region_map_sections.h"
#include "constants/flags.h"
#include "constants/moves.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_8459634:: @ 8459634 data16 2x2
.2byte 0x0044, 0x0000
.2byte 0x000d, 0x0001
gUnknown_845963C:: @ 845963C gbapal
.incbin "graphics/pokemon_special_anim/unk_845963C.gbapal"
gUnknown_845965C:: @ 845965C gbapal
.incbin "graphics/pokemon_special_anim/unk_845965C.gbapal"
gUnknown_845967C:: @ 845967C 4bpp.lz
.incbin "graphics/pokemon_special_anim/unk_845967C.4bpp.lz"
gUnknown_845973C:: @ 845973C bin.lz
.incbin "graphics/pokemon_special_anim/unk_845973C.bin.lz"
gUnknown_8459868:: @ 8459868 gbapal
.incbin "graphics/pokemon_special_anim/unk_8459868.gbapal"
gUnknown_8459888:: @ 8459888 4bpp.lz
.incbin "graphics/pokemon_special_anim/unk_8459888.4bpp.lz"
gUnknown_84598A4:: @ 84598A4 gbapal
.incbin "graphics/pokemon_special_anim/unk_84598A4.gbapal"
gUnknown_84598C4:: @ 84598C4 4bpp.lz
.incbin "graphics/pokemon_special_anim/unk_84598C4.4bpp.lz"
gUnknown_8459940:: @ 8459940 gbapal
.incbin "graphics/pokemon_special_anim/unk_8459940.gbapal"
gUnknown_8459960:: @ 8459960 4bpp.lz
.incbin "graphics/pokemon_special_anim/unk_8459960.4bpp.lz"
gUnknown_8459980:: @ 8459980 bg_template
.4byte 0x000041f0
@ {
@ .bg = 0,
@ .charBaseIndex = 0,
@ .mapBaseIndex = 31,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 0,
@ .baseTile = 0x0001
@ }
.4byte 0x000031cf
@ {
@ .bg = 3,
@ .charBaseIndex = 3,
@ .mapBaseIndex = 28,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 3,
@ .baseTile = 0x0000
@ }
gUnknown_8459988:: @ 8459988 window_template
.byte 0, 1, 15, 28, 4, 15
.2byte 0x000a
.byte 255, 0, 0, 0, 0, 0
.2byte 0x0000
gUnknown_8459998:: @ 8459998 dataptr
.4byte gUnknown_841B2ED @ 1,
.4byte gUnknown_841B2F1 @ 2, and ‥ ‥ ‥
.4byte gUnknown_841B2FF @ Poof!
gUnknown_84599A4:: @ 84599A4
.2byte 0x0000, 0x0010
gUnknown_84599A8:: @ 84599A8 unref, data16?
.2byte 0x0044
gUnknown_84599AA:: @ 84599AA data16
.2byte 0x0100, 0x0155, 0x01aa, 0x0200
gUnknown_84599B2:: @ 84599B2 data8
.byte 0xf8, 0xf8, 0x06, 0xf3, 0x08, 0xf8
gUnknown_84599B8:: @ 84599B8 sprite_sheet
obj_tiles gUnknown_84598C4, 0x0080, 2
gUnknown_84599C0:: @ 84599C0 sprite_palette
obj_pal gUnknown_84598A4, 2
gUnknown_84599C8:: @ 84599C8 sprite_sheet
obj_tiles gUnknown_8459960, 0x0060, 5
gUnknown_84599D0:: @ 84599D0 sprite_palette
obj_pal gUnknown_8459940, 5
gUnknown_84599D8:: @ 84599D8
.4byte 0xc0000300, 0x00000400
gUnknown_84599E0:: @ 84599E0
obj_rot_scal_anim_frame 256, 256, 0, 0
obj_rot_scal_anim_end
gUnknown_84599F0:: @ 84599F0
obj_rot_scal_anim_frame 341, 341, 0, 0
obj_rot_scal_anim_end
gUnknown_8459A00:: @ 8459A00
obj_rot_scal_anim_frame 426, 426, 0, 0
obj_rot_scal_anim_end
gUnknown_8459A10:: @ 8459A10
obj_rot_scal_anim_frame 512, 512, 0, 0
obj_rot_scal_anim_end
gUnknown_8459A20:: @ 8459A20 dataptr
.4byte gUnknown_84599E0
.4byte gUnknown_84599F0
.4byte gUnknown_8459A00
.4byte gUnknown_8459A10
gUnknown_8459A30:: @ 8459A30 spr_template
spr_template 0, 0, gUnknown_84599D8, gDummySpriteAnimTable, NULL, gUnknown_8459A20, SpriteCallbackDummy
gUnknown_8459A48:: @ 8459A48 affine_anim_cmd?
obj_rot_scal_anim_frame 256, 256, 0, 0
obj_rot_scal_anim_frame -28, -28, 0, 8
obj_rot_scal_anim_end
gUnknown_8459A60:: @ 459A60
obj_rot_scal_anim_frame 341, 341, 0, 0
obj_rot_scal_anim_frame -37, -37, 0, 8
obj_rot_scal_anim_end
gUnknown_8459A78:: @ 459A78
obj_rot_scal_anim_frame 426, 426, 0, 0
obj_rot_scal_anim_frame -47, -47, 0, 8
obj_rot_scal_anim_end
gUnknown_8459A90:: @ 459A90
obj_rot_scal_anim_frame 512, 512, 0, 0
obj_rot_scal_anim_frame -56, -56, 0, 8
obj_rot_scal_anim_end
gUnknown_8459AA8:: @ 8459AA8 dataptr
.4byte gUnknown_8459A48
.4byte gUnknown_8459A60
.4byte gUnknown_8459A78
.4byte gUnknown_8459A90
gUnknown_8459AB8:: @ 8459AB8
.4byte 0x00008400, 0x00000400
gUnknown_8459AC0:: @ 8459AC0
obj_image_anim_frame 0x0000, 3
obj_image_anim_end
gUnknown_8459AC8:: @ 8459AC8
.4byte gUnknown_8459AC0
gUnknown_8459ACC:: @ 8459ACC spr_template
spr_template 0, 0, gUnknown_8459AB8, gUnknown_8459AC8, NULL, gDummySpriteAffineAnimTable, sub_811E7B4
gUnknown_8459AE4:: @ 8459AE4
.4byte 0x40000000, 0x00000400
gUnknown_8459AEC:: @ 8459AEC spr_template
spr_template 2, 2, gUnknown_8459AE4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_811E300
gUnknown_8459B04:: @ 8459B04
.4byte 0x00000000, 0x00000000
gUnknown_8459B0C:: @ 8459B0C
obj_image_anim_frame 0x0000, 16
obj_image_anim_frame 0x0001, 8
obj_image_anim_frame 0x0002, 4
obj_image_anim_end
gUnknown_8459B1C:: @ 8459B1C
obj_image_anim_frame 0x0001, 4
obj_image_anim_frame 0x0000, 4
obj_image_anim_end
gUnknown_8459B28:: @ 8459B28
.4byte gUnknown_8459B0C
.4byte gUnknown_8459B1C
gUnknown_8459B30:: @ 8459B30 spr_template
spr_template 5, 5, gUnknown_8459B04, gUnknown_8459B28, NULL, gDummySpriteAffineAnimTable, sub_811E520
gUnknown_8459B48:: @ 8459B48 dataptr
.4byte gUnknown_841B2A9
.4byte gUnknown_841B2B7
.4byte gUnknown_841B2BE
.4byte gUnknown_841B2CC
.4byte gUnknown_841B2D4
.4byte gUnknown_841B2C6
-1
View File
@@ -211,7 +211,6 @@
#define PARTY_SIZE 6
#define MAX_TOTAL_EVS 510
#define UNOWN_FORM_COUNT 28
#define MAX_MON_LEVEL 100
#define BOX_NAME_LENGTH 8
#endif // GUARD_CONSTANTS_POKEMON_H
+2 -2
View File
@@ -24,8 +24,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 sub_812EA78(u16 species, u32 personality, u8 a2);
s8 sub_812EAE4(u16 species, u32 personality, u8 a2);
u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2);
s8 Menu2_GetMonSpriteAnchorCoordMinusx20(u16 species, u32 personality, u8 a2);
// list_menu
void sub_8107CD8(u8 palOffset, u16 speciesId);
+1 -1
View File
@@ -322,7 +322,7 @@ extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
extern const u8 gStatStageRatios[][2];
extern struct SpriteTemplate gMultiuseSpriteTemplate;
extern struct PokemonStorage* gPokemonStoragePtr;
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
extern const u32 gExperienceTables[][MAX_LEVEL + 1];
extern const u16 *const gLevelUpLearnsets[];
extern const u8 gFacilityClassToPicIndex[];
extern const u8 gFacilityClassToTrainerClass[];
+7 -7
View File
@@ -3,14 +3,14 @@
#include "global.h"
void sub_811E5B8(u16, u16, u16, u16, u16, u16);
bool8 sub_811E680(void);
void BufferMonStatsToTaskData(struct Pokemon *mon, u16 *currStats);
void CreateLevelUpVerticalSpritesTask(u16 x, u16 y, u16 tileTag, u16 paletteTag, u16 priority, u16 subpriority);
bool8 LevelUpVerticalSpritesTaskIsRunning(void);
void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats);
void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr);
void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr);
void sub_811C540(u8 slotId, u16 itemId, MainCallback callback);
void sub_811C5AC(u8 slotId, u16 itemId, MainCallback callback);
u32 sub_811D178(void);
void sub_811C568(u8 slotId, u16 itemId, u16 moveId, MainCallback callback);
void StartUseItemAnim_Normal(u8 slotId, u16 itemId, MainCallback callback);
void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback);
bool32 PSA_IsCancelDisabled(void);
void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, u16 itemId, u16 moveId, MainCallback callback);
#endif // GUARD_POKEMON_SPECIAL_ANIM_H
+94
View File
@@ -0,0 +1,94 @@
#ifndef GUARD_POKEMON_SPECIAL_ANIM_INTERNAL_H
#define GUARD_POKEMON_SPECIAL_ANIM_INTERNAL_H
#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
{
u16 state;
u16 field_0002;
u16 field_0004;
u16 monSpriteY1;
u16 monSpriteY2;
u8 lastCloseness;
struct Sprite * monSprite;
struct Sprite * itemIconSprite;
u8 textBuf[0x900];
u8 field_0914[BG_SCREEN_SIZE];
u8 field_1114[BG_SCREEN_SIZE];
u8 field_1914[BG_SCREEN_SIZE];
u8 field_2114[0x720];
}; // size=0x2834
struct PokemonSpecialAnim
{
/*0x0000*/ u8 filler_0000[0x4];
/*0x0004*/ MainCallback savedCallback;
/*0x0008*/ struct Pokemon pokemon;
/*0x006c*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
/*0x0077*/ u8 nameOfMoveForgotten[13];
/*0x0084*/ u8 nameOfMoveToTeach[13];
/*0x0091*/ bool8 cancelDisabled;
/*0x0092*/ u16 state;
/*0x0094*/ u16 species;
/*0x0096*/ u16 itemId;
/*0x0098*/ u16 animType;
/*0x009a*/ u16 slotId;
/*0x009c*/ u16 closeness;
/*0x009e*/ u16 delayTimer;
/*0x00a0*/ u32 personality;
/*0x00a4*/ u32 field_00a4;
/*0x00a8*/ struct PokemonSpecialAnimScene sceneResources;
}; // size=0x28dc
struct PokemonSpecialAnim * GetPSAStruct(void);
struct Pokemon * PSA_GetPokemon(void);
struct PokemonSpecialAnimScene * PSA_GetSceneWork(void);
u16 PSA_GetItemId(void);
u8 *PSA_GetNameOfMoveForgotten(void);
u8 *PSA_GetNameOfMoveToTeach(void);
u8 *PSA_CopyMonNickname(u8 *dest);
u8 *PSA_GetMonNickname(void);
u8 PSA_GetAnimType(void);
u16 PSA_GetMonSpecies(void);
u32 PSA_GetMonPersonality(void);
void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 animType);
bool8 PokemonSpecialAnimSceneInitIsNotFinished(void);
void PSA_FreeWindowBuffers(void);
void PSA_ShowMessageWindow(void);
void PSA_HideMessageWindow(void);
void PSA_PrintMessage(u8 messageId);
void PSA_AfterPoof_ClearMessageWindow(void);
bool8 PSA_IsMessagePrintTaskActive(void);
void PSA_DarkenMonSprite(void);
bool8 PSA_RunPoofAnim(void);
void PSA_UseTM_SetUpZoomOutAnim(void);
void PSA_UseTM_CleanUpForCancel(void);
bool8 PSA_UseTM_RunZoomOutAnim(void);
void PSA_UseTM_SetUpMachineSetWobble(void);
bool8 PSA_UseTM_RunMachineSetWobble(void);
bool8 PSA_LevelUpVerticalSpritesTaskIsRunning(void);
void PSA_CreateMonSpriteAtCloseness(u8 closeness);
void PSA_SetUpZoomAnim(u8 closeness);
bool8 PSA_IsZoomTaskActive(void);
void PSA_SetUpItemUseOnMonAnim(u16 itemId, u8 closeness, bool32 a2);
void CreateItemIconSpriteAtMaxCloseness(u16 itemId);
bool8 PSA_IsItemUseOnMonAnimActive(void);
void PSA_UseItem_CleanUpForCancel(void);
#endif //GUARD_POKEMON_SPECIAL_ANIM_INTERNAL_H
+22
View File
@@ -1441,4 +1441,26 @@ extern const u8 gPCText_Pokecenter[];
extern const u8 gPCText_Machine[];
extern const u8 gPCText_Simple[];
// pokemon_special_anim
extern const u8 gUnknown_841B2ED[];
extern const u8 gUnknown_841B2F1[];
extern const u8 gUnknown_841B2FF[];
extern const u8 gUnknown_841B285[];
extern const u8 gUnknown_841B293[];
extern const u8 gUnknown_841B295[];
extern const u8 gUnknown_841B2A7[];
extern const u8 gUnknown_841B32E[];
extern const u8 gUnknown_841B306[];
extern const u8 gUnknown_841B315[];
extern const u8 gUnknown_841B31B[];
extern const u8 gUnknown_841B329[];
extern const u8 gUnknown_841B2A9[];
extern const u8 gUnknown_841B2B7[];
extern const u8 gUnknown_841B2BE[];
extern const u8 gUnknown_841B2CC[];
extern const u8 gUnknown_841B2D4[];
extern const u8 gUnknown_841B2C6[];
extern const u8 gUnknown_841B2E5[];
extern const u8 gUnknown_841B2DC[];
#endif //GUARD_STRINGS_H
+4 -2
View File
@@ -251,7 +251,8 @@ SECTIONS {
src/union_room.o(.text);
src/rfu_union_tool.o(.text);
src/union_room_battle.o(.text);
asm/pokemon_special_anim.o(.text);
src/pokemon_special_anim.o(.text);
src/pokemon_special_anim_scene.o(.text);
src/party_menu.o(.text);
src/union_room_chat.o(.text);
src/union_room_chat_display.o(.text);
@@ -553,7 +554,8 @@ SECTIONS {
src/rfu_union_tool.o(.rodata);
src/union_room_battle.o(.rodata);
src/union_room_message.o(.rodata);
data/pokemon_special_anim.o(.rodata);
src/pokemon_special_anim.o(.rodata);
src/pokemon_special_anim_scene.o(.rodata);
src/party_menu.o(.rodata);
src/union_room_chat.o(.rodata);
src/union_room_chat_display.o(.rodata);
+2 -2
View File
@@ -1226,7 +1226,7 @@ static void sub_80303A8(u8 taskId)
case 2:
PlaySE(SE_REGI);
if (IsMonGettingExpSentOut())
sub_811E5B8(sprite->pos1.x + sprite->pos2.x,
CreateLevelUpVerticalSpritesTask(sprite->pos1.x + sprite->pos2.x,
sprite->pos1.y + sprite->pos2.y,
10000,
10000,
@@ -1235,7 +1235,7 @@ static void sub_80303A8(u8 taskId)
++data[15];
break;
case 3:
if (!sub_811E680())
if (!LevelUpVerticalSpritesTaskIsRunning())
{
sprite->invisible = FALSE;
++data[15];
+2 -2
View File
@@ -5828,7 +5828,7 @@ static void DrawLevelUpWindow1(void)
{
u16 currStats[NUM_STATS];
BufferMonStatsToTaskData(&gPlayerParty[gBattleStruct->expGetterMonId], currStats);
GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], currStats);
DrawLevelUpWindowPg1(12, gBattleResources->beforeLvlUp->stats, currStats, 0xE, 0xD, 0xF);
}
@@ -5836,7 +5836,7 @@ static void DrawLevelUpWindow2(void)
{
u16 currStats[NUM_STATS];
BufferMonStatsToTaskData(&gPlayerParty[gBattleStruct->expGetterMonId], currStats);
GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], currStats);
DrawLevelUpWindowPg2(12, currStats, 0xE, 0xD, 0xF);
}
+1 -1
View File
@@ -15,7 +15,7 @@
:(n <= 36) ? ((n + 14) * CUBE(n) / 50) \
: (((n / 2) + 32) * CUBE(n) / 50)
const u32 gExperienceTables[][MAX_MON_LEVEL + 1] =
const u32 gExperienceTables[][MAX_LEVEL + 1] =
{
{ // Medium Fast
0, // 0
+2 -2
View File
@@ -479,7 +479,7 @@ static void ApplyDaycareExperience(struct Pokemon *mon)
bool8 firstMove;
u16 learnedMove;
for (i = 0; i < MAX_MON_LEVEL; i++)
for (i = 0; i < MAX_LEVEL; i++)
{
// Add the mon's gained daycare experience level by level until it can't level up anymore.
if (TryIncrementMonLevel(mon))
@@ -513,7 +513,7 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
species = GetBoxMonData(&daycareMon->mon, MON_DATA_SPECIES);
BoxMonToMon(&daycareMon->mon, &pokemon);
if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_MON_LEVEL)
if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_LEVEL)
{
experience = GetMonData(&pokemon, MON_DATA_EXP) + daycareMon->steps;
SetMonData(&pokemon, MON_DATA_EXP, &experience);
+418 -418
View File
@@ -9,422 +9,422 @@
static void Task_SmoothBlendLayers(u8 taskId);
static const u8 gUnknown_845FD54[][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 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},
#if defined(FIRERED)
[SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16},
[SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16},
#elif defined(LEAFGREEN)
[SPECIES_DEOXYS - 1] = {0x1a, 0x09, 0x28, 0x1a, 0x17},
[SPECIES_DEOXYS - 1] = {0x1a, 0x09, 0x28, 0x1a, 0x17},
#endif
[SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a},
[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}
};
@@ -635,7 +635,7 @@ static void Task_SmoothBlendLayers(u8 taskId)
}
}
u8 sub_812EA78(u16 species, u32 personality, u8 a2)
u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2)
{
if (species == SPECIES_UNOWN)
{
@@ -658,13 +658,13 @@ u8 sub_812EA78(u16 species, u32 personality, u8 a2)
if (species != SPECIES_NONE && a2 < 5)
{
species--;
if (gUnknown_845FD54[species][a2] != 0xFF)
return gUnknown_845FD54[species][a2];
if (sMonSpriteAnchorCoords[species][a2] != 0xFF)
return sMonSpriteAnchorCoords[species][a2];
}
return 32;
}
s8 sub_812EAE4(u16 species, u32 personality, u8 a2)
s8 Menu2_GetMonSpriteAnchorCoordMinusx20(u16 species, u32 personality, u8 a2)
{
return sub_812EA78(species, personality, a2) - 32;
return Menu2_GetMonSpriteAnchorCoord(species, personality, a2) - 32;
}
+11 -11
View File
@@ -380,7 +380,7 @@ static void sub_8125898(u8 taskId, UNUSED TaskFunc func);
static void sub_8125F4C(u8 taskId, UNUSED TaskFunc func);
static void sub_8125F5C(u8 taskId);
static void sub_8126BD4(void);
static bool8 sub_8126C24(void);
static bool8 MonCanEvolve(void);
static EWRAM_DATA struct PartyMenuInternal *sPartyMenuInternal = NULL;
EWRAM_DATA struct PartyMenu gPartyMenu = {0};
@@ -4295,21 +4295,21 @@ static void sub_8124DE0(void)
{
if (CheckIfItemIsTMHMOrEvolutionStone(gSpecialVar_ItemId) == 2) // Evolution stone
{
if (sub_8126C24() == TRUE)
sub_811C540(gPartyMenu.slotId, gSpecialVar_ItemId, sub_8126BD4);
if (MonCanEvolve() == TRUE)
StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, sub_8126BD4);
else
sub_811C5AC(gPartyMenu.slotId, gSpecialVar_ItemId, gPartyMenu.exitCallback);
StartUseItemAnim_CantEvolve(gPartyMenu.slotId, gSpecialVar_ItemId, gPartyMenu.exitCallback);
}
else
{
sub_811C540(gPartyMenu.slotId, gSpecialVar_ItemId, sub_8124E48);
StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, sub_8124E48);
}
}
static void sub_8124E48(void)
{
if (ItemId_GetPocket(gSpecialVar_ItemId) == POCKET_TM_CASE
&& sub_811D178() == 1)
&& PSA_IsCancelDisabled() == TRUE)
{
GiveMoveToMon(&gPlayerParty[gPartyMenu.slotId], ItemIdToBattleMoveId(gSpecialVar_ItemId));
AdjustFriendship(&gPlayerParty[gPartyMenu.slotId], 4);
@@ -4325,7 +4325,7 @@ static void sub_8124E48(void)
static void sub_8124EFC(void)
{
if (sub_811D178() == 1)
if (PSA_IsCancelDisabled() == TRUE)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u8 moveIdx = GetMoveSlotToReplace();
@@ -4919,7 +4919,7 @@ static void CB2_ReturnToPartyMenuWhileLearningMove(void)
if (learnMoveState == 0 && moveIdx != MAX_MON_MOVES)
{
move = GetMonData(&gPlayerParty[gPartyMenu.slotId], moveIdx + MON_DATA_MOVE1);
sub_811C568(gPartyMenu.slotId, gSpecialVar_ItemId, move, sub_8124EFC);
StartUseItemAnim_ForgetMoveAndLearnTMorHM(gPartyMenu.slotId, gSpecialVar_ItemId, move, sub_8124EFC);
gItemUseCB = sub_8125F4C;
gPartyMenu.action = learnMoveState;
}
@@ -5075,9 +5075,9 @@ static void ItemUseCB_RareCandyStep(u8 taskId, UNUSED TaskFunc func)
s16 *arrayPtr = ptr->data;
u8 level;
BufferMonStatsToTaskData(mon, arrayPtr);
GetMonLevelUpWindowStats(mon, arrayPtr);
ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, 0);
BufferMonStatsToTaskData(mon, &ptr->data[NUM_STATS]);
GetMonLevelUpWindowStats(mon, &ptr->data[NUM_STATS]);
gPartyMenuUseExitCallback = TRUE;
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, 0xFFFF);
PlayFanfareByFanfareNum(0);
@@ -5347,7 +5347,7 @@ static void sub_8126BD4(void)
RemoveBagItem(gSpecialVar_ItemId, 1);
}
static bool8 sub_8126C24(void)
static bool8 MonCanEvolve(void)
{
if (!IsNationalPokedexEnabled()
&& GetEvolutionTargetSpecies(&gPlayerParty[gPartyMenu.slotId], 2, gSpecialVar_ItemId) > KANTO_DEX_COUNT)
+2 -2
View File
@@ -2143,7 +2143,7 @@ static u8 GetLevelFromMonExp(struct Pokemon *mon)
u32 exp = GetMonData(mon, MON_DATA_EXP, NULL);
s32 level = 1;
while (level <= MAX_MON_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
while (level <= MAX_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
level++;
return level - 1;
@@ -2155,7 +2155,7 @@ u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon)
u32 exp = GetBoxMonData(boxMon, MON_DATA_EXP, NULL);
s32 level = 1;
while (level <= MAX_MON_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
while (level <= MAX_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
level++;
return level - 1;
+708
View File
@@ -0,0 +1,708 @@
#include "global.h"
#include "gflib.h"
#include "data.h"
#include "party_menu.h"
#include "pokemon_special_anim_internal.h"
#include "item_use.h"
#include "task.h"
#include "constants/songs.h"
#include "constants/items.h"
// Functions related to the special anims Pokemon
// make when using an item on them in the field.
static EWRAM_DATA bool32 sCancelDisabled = FALSE;
static EWRAM_DATA u8 sPSATaskId = 0;
static EWRAM_DATA struct PokemonSpecialAnim * sPSAWork = NULL;
static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback);
static void SetUpUseItemAnim_Normal(struct PokemonSpecialAnim * ptr);
static void SetUpUseItemAnim_ForgetMoveAndLearnTMorHM(struct PokemonSpecialAnim * ptr);
static void SetUpUseItemAnim_CantEvolve(struct PokemonSpecialAnim * ptr);
static void Task_UseItem_Normal(u8 taskId);
static void Task_ForgetMove(u8 taskId);
static void Task_EvoStone_CantEvolve(u8 taskId);
static void Task_UseTM_NoForget(u8 taskId);
static void Task_MachineSet(u8 taskId);
static void Task_CleanUp(u8 taskId);
static u8 GetClosenessFromFriendship(u16 friendship);
static u16 GetAnimTypeByItemId(u16 itemId);
void StartUseItemAnim_Normal(u8 slotId, u16 itemId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback);
if (ptr == NULL)
SetMainCallback2(callback);
else
SetUpUseItemAnim_Normal(ptr);
}
void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, u16 itemId, u16 moveId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback);
if (ptr == NULL)
SetMainCallback2(callback);
else
{
StringCopy(ptr->nameOfMoveForgotten, gMoveNames[moveId]);
SetUpUseItemAnim_ForgetMoveAndLearnTMorHM(ptr);
}
}
void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback);
if (ptr == NULL)
SetMainCallback2(callback);
else
SetUpUseItemAnim_CantEvolve(ptr);
}
static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr;
struct Pokemon * pokemon;
u16 moveId;
if (!gMain.inBattle)
ResetTasks();
ResetSpriteData();
FreeAllSpritePalettes();
ptr = Alloc(sizeof(struct PokemonSpecialAnim));
if (ptr == NULL)
{
SetMainCallback2(callback);
return NULL;
}
pokemon = &gPlayerParty[slotId];
ptr->state = 0;
ptr->savedCallback = callback;
ptr->species = GetMonData(pokemon, MON_DATA_SPECIES);
ptr->closeness = GetClosenessFromFriendship(GetMonData(pokemon, MON_DATA_FRIENDSHIP));
ptr->personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
ptr->slotId = slotId;
ptr->itemId = itemId;
ptr->animType = GetAnimTypeByItemId(itemId);
ptr->pokemon = *pokemon;
ptr->field_00a4 = 0;
GetMonData(pokemon, MON_DATA_NICKNAME, ptr->nickname);
if (ptr->animType == 4)
{
moveId = ItemIdToBattleMoveId(itemId);
StringCopy(ptr->nameOfMoveToTeach, gMoveNames[moveId]);
}
return ptr;
}
static void VBlankCB_PSA(void)
{
TransferPlttBuffer();
LoadOam();
ProcessSpriteCopyRequests();
}
static void CB2_PSA(void)
{
RunTextPrinters();
RunTasks();
AnimateSprites();
BuildOamBuffer();
UpdatePaletteFade();
}
static void SetUseItemAnimCallback(u8 taskId, TaskFunc func)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
ptr->state = 0;
gTasks[taskId].func = func;
}
static void SetUpUseItemAnim_Normal(struct PokemonSpecialAnim * ptr)
{
u8 taskId;
switch (ptr->animType)
{
case 0:
case 1:
case 3:
taskId = CreateTask(Task_UseItem_Normal, 0);
break;
case 4:
taskId = CreateTask(Task_UseTM_NoForget, 0);
break;
default:
SetMainCallback2(ptr->savedCallback);
Free(ptr);
return;
}
ptr->cancelDisabled = FALSE;
SetWordTaskArg(taskId, 0, (uintptr_t)ptr);
SetMainCallback2(CB2_PSA);
sPSATaskId = taskId;
}
static void SetUpUseItemAnim_ForgetMoveAndLearnTMorHM(struct PokemonSpecialAnim * ptr)
{
u8 taskId = CreateTask(Task_ForgetMove, 0);
SetWordTaskArg(taskId, 0, (uintptr_t)ptr);
SetMainCallback2(CB2_PSA);
sPSATaskId = taskId;
ptr->cancelDisabled = FALSE;
}
static void SetUpUseItemAnim_CantEvolve(struct PokemonSpecialAnim * ptr)
{
u8 taskId = CreateTask(Task_EvoStone_CantEvolve, 0);
SetWordTaskArg(taskId, 0, (uintptr_t)ptr);
SetMainCallback2(CB2_PSA);
sPSATaskId = taskId;
}
static void Task_UseItem_Normal(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
if (!ptr->cancelDisabled && JOY_HELD(A_BUTTON | B_BUTTON))
{
PSA_UseItem_CleanUpForCancel();
SetUseItemAnimCallback(taskId, Task_CleanUp);
return;
}
switch (ptr->state)
{
case 0:
SetVBlankCallback(NULL);
InitPokemonSpecialAnimScene(&ptr->sceneResources, ptr->animType);
PSA_CreateMonSpriteAtCloseness(0);
ptr->state++;
break;
case 1:
if (!PokemonSpecialAnimSceneInitIsNotFinished())
{
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
ptr->state++;
SetVBlankCallback(VBlankCB_PSA);
}
break;
case 2:
if (!gPaletteFade.active)
{
ptr->state++;
}
break;
case 3:
PSA_SetUpZoomAnim(ptr->closeness);
ptr->state++;
break;
case 4:
if (!PSA_IsZoomTaskActive())
{
ptr->delayTimer = 0;
ptr->state++;
}
break;
case 5:
if (!PSA_LevelUpVerticalSpritesTaskIsRunning())
{
ptr->state++;
}
break;
case 6:
PSA_SetUpItemUseOnMonAnim(ptr->itemId, ptr->closeness, TRUE);
ptr->state++;
break;
case 7:
if (!PSA_IsItemUseOnMonAnimActive())
{
ptr->cancelDisabled = TRUE;
if (ptr->closeness == 3)
{
PlayCry1(ptr->species, 0);
}
PSA_ShowMessageWindow();
ptr->state++;
}
break;
case 8:
PSA_PrintMessage(PSA_TEXT_ITEM_USED);
ptr->state++;
break;
case 9:
if (!PSA_IsMessagePrintTaskActive())
{
ptr->state++;
}
break;
case 10:
PSA_SetUpZoomAnim(0);
ptr->state++;
break;
case 11:
if (!PSA_IsZoomTaskActive())
{
ptr->cancelDisabled = TRUE;
ptr->state++;
}
break;
case 12:
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
if (CheckIfItemIsTMHMOrEvolutionStone(ptr->itemId) != 2) // evo stone
{
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
ptr->state++;
}
else
{
ptr->state += 2;
}
}
break;
case 13:
if (!gPaletteFade.active)
{
ptr->state++;
}
break;
case 14:
SetMainCallback2(ptr->savedCallback);
PSA_FreeWindowBuffers();
Free(ptr);
DestroyTask(taskId);
break;
}
}
static void Task_ForgetMove(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
u8 r4;
switch (ptr->state)
{
case 0:
SetVBlankCallback(NULL);
InitPokemonSpecialAnimScene(&ptr->sceneResources, ptr->animType);
PSA_CreateMonSpriteAtCloseness(3);
ptr->state++;
break;
case 1:
if (!PokemonSpecialAnimSceneInitIsNotFinished())
{
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
ptr->state++;
SetVBlankCallback(VBlankCB_PSA);
}
break;
case 2:
if (!gPaletteFade.active)
{
ptr->delayTimer = 0;
ptr->state++;
}
break;
case 3:
ptr->delayTimer++;
if (ptr->delayTimer > 30)
{
PSA_ShowMessageWindow();
ptr->state++;
}
break;
case 4:
PSA_PrintMessage(PSA_TEXT_FORGET_1);
ptr->state++;
break;
case 5:
if (!PSA_IsMessagePrintTaskActive())
{
ptr->delayTimer = 0;
ptr->state++;
}
break;
case 6:
ptr->delayTimer++;
if (ptr->delayTimer > 30)
{
PSA_PrintMessage(PSA_TEXT_FORGET_2_AND);
ptr->state++;
}
break;
case 7:
if (!PSA_IsMessagePrintTaskActive())
{
ptr->delayTimer = 0;
ptr->state++;
}
break;
case 8:
ptr->delayTimer++;
if (ptr->delayTimer > 30)
{
PlaySE(SE_W255);
PSA_PrintMessage(PSA_TEXT_FORGET_POOF);
PSA_DarkenMonSprite();
ptr->state++;
}
break;
case 9:
r4 = PSA_RunPoofAnim();
if (!(r4 | PSA_IsMessagePrintTaskActive()))
{
PSA_AfterPoof_ClearMessageWindow();
ptr->state++;
}
break;
case 10:
PSA_PrintMessage(PSA_TEXT_FORGET_FORGOT);
ptr->state++;
break;
case 11:
if (!PSA_IsMessagePrintTaskActive())
{
PSA_PrintMessage(PSA_TEXT_FORGET_AND);
ptr->state++;
}
break;
case 12:
if (!PSA_IsMessagePrintTaskActive())
{
PSA_HideMessageWindow();
ptr->state++;
}
break;
case 13:
SetUseItemAnimCallback(taskId, Task_MachineSet);
break;
}
}
static void Task_EvoStone_CantEvolve(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
if (!ptr->cancelDisabled && JOY_HELD(B_BUTTON))
{
SetUseItemAnimCallback(taskId, Task_CleanUp);
return;
}
switch (ptr->state)
{
case 0:
SetVBlankCallback(NULL);
InitPokemonSpecialAnimScene(&ptr->sceneResources, ptr->animType);
PSA_CreateMonSpriteAtCloseness(0);
ptr->state++;
break;
case 1:
if (!PokemonSpecialAnimSceneInitIsNotFinished())
{
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
ptr->state++;
SetVBlankCallback(VBlankCB_PSA);
}
break;
case 2:
if (!gPaletteFade.active)
{
ptr->state++;
}
break;
case 3:
PSA_SetUpZoomAnim(ptr->closeness);
ptr->state++;
break;
case 4:
PSA_SetUpItemUseOnMonAnim(ptr->itemId, ptr->closeness, FALSE);
ptr->state++;
break;
case 5:
if (!PSA_IsItemUseOnMonAnimActive())
{
PSA_ShowMessageWindow();
ptr->state++;
}
break;
case 6:
PSA_PrintMessage(PSA_TEXT_HUH);
ptr->state++;
break;
case 7:
if (!PSA_IsMessagePrintTaskActive())
{
ptr->cancelDisabled = TRUE;
ptr->state++;
}
break;
case 8:
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
ptr->state++;
}
break;
case 9:
if (!gPaletteFade.active)
{
SetMainCallback2(ptr->savedCallback);
PSA_FreeWindowBuffers();
Free(ptr);
DestroyTask(taskId);
}
break;
}
}
static void Task_UseTM_NoForget(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
if (JOY_NEW(B_BUTTON))
{
SetUseItemAnimCallback(taskId, Task_CleanUp);
return;
}
switch (ptr->state)
{
case 0:
SetVBlankCallback(NULL);
InitPokemonSpecialAnimScene(&ptr->sceneResources, ptr->animType);
PSA_CreateMonSpriteAtCloseness(3);
ptr->state++;
break;
case 1:
if (!PokemonSpecialAnimSceneInitIsNotFinished())
{
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
ptr->state++;
SetVBlankCallback(VBlankCB_PSA);
}
break;
case 2:
if (!gPaletteFade.active)
{
ptr->delayTimer = 0;
ptr->state++;
}
break;
case 3:
ptr->delayTimer++;
if (ptr->delayTimer > 20)
{
SetUseItemAnimCallback(taskId, Task_MachineSet);
}
break;
}
}
static void Task_MachineSet(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
if (!ptr->cancelDisabled && JOY_NEW(B_BUTTON))
{
PSA_UseTM_CleanUpForCancel();
SetUseItemAnimCallback(taskId, Task_CleanUp);
return;
}
switch (ptr->state)
{
case 0:
CreateItemIconSpriteAtMaxCloseness(ptr->itemId);
ptr->delayTimer = 0;
ptr->state++;
break;
case 1:
PSA_ShowMessageWindow();
PSA_PrintMessage(PSA_TEXT_MACHINE_SET);
ptr->state++;
break;
case 2:
if (!PSA_IsMessagePrintTaskActive())
{
PSA_HideMessageWindow();
ptr->state++;
}
break;
case 3:
PSA_UseTM_SetUpMachineSetWobble();
ptr->state++;
break;
case 4:
if (!PSA_UseTM_RunMachineSetWobble())
{
ptr->state++;
}
break;
case 5:
PSA_UseTM_SetUpZoomOutAnim();
ptr->state++;
break;
case 6:
if (!PSA_UseTM_RunZoomOutAnim())
{
ptr->delayTimer = 0;
ptr->state++;
}
break;
case 7:
ptr->delayTimer++;
if (ptr->delayTimer > 30)
{
PSA_ShowMessageWindow();
PSA_PrintMessage(PSA_TEXT_LEARNED_MOVE);
ptr->state++;
}
break;
case 8:
if (!PSA_IsMessagePrintTaskActive())
{
PlayFanfare(MUS_FANFA1);
ptr->cancelDisabled = TRUE;
ptr->state++;
}
break;
case 9:
if (IsFanfareTaskInactive())
{
SetUseItemAnimCallback(taskId, Task_CleanUp);
}
break;
}
}
static void Task_CleanUp(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
switch (ptr->state)
{
case 0:
SetVBlankCallback(VBlankCB_PSA);
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
ptr->state++;
break;
case 1:
if (!gPaletteFade.active && (ptr->field_00a4 != 1 || IsCryFinished()))
{
sCancelDisabled = ptr->cancelDisabled;
SetMainCallback2(ptr->savedCallback);
DestroyTask(taskId);
PSA_FreeWindowBuffers();
Free(ptr);
}
break;
}
}
static const struct {
u16 itemId;
u16 animType;
} gUnknown_8459634[2] = {
{ITEM_RARE_CANDY, 0},
{ITEM_POTION, 1}
};
static u16 GetAnimTypeByItemId(u16 itemId)
{
int i;
for (i = 0; i < NELEMS(gUnknown_8459634); i++)
{
if (gUnknown_8459634[i].itemId == itemId)
return gUnknown_8459634[i].animType;
}
if (itemId >= ITEM_TM01 && itemId <= ITEM_HM08)
{
return 4;
}
return 0;
}
static u8 GetClosenessFromFriendship(u16 friendship)
{
if (friendship <= 100)
return 0;
else if (friendship <= 150)
return 1;
else if (friendship <= 200)
return 2;
else
return 3;
}
struct PokemonSpecialAnim * GetPSAStruct(void)
{
return (void *)GetWordTaskArg(sPSATaskId, 0);
}
struct Pokemon * PSA_GetPokemon(void)
{
sPSAWork = GetPSAStruct();
return &sPSAWork->pokemon;
}
struct PokemonSpecialAnimScene * PSA_GetSceneWork(void)
{
return &GetPSAStruct()->sceneResources;
}
u16 PSA_GetItemId(void)
{
return GetPSAStruct()->itemId;
}
u8 *PSA_GetNameOfMoveForgotten(void)
{
return GetPSAStruct()->nameOfMoveForgotten;
}
u8 *PSA_GetNameOfMoveToTeach(void)
{
return GetPSAStruct()->nameOfMoveToTeach;
}
u8 *PSA_CopyMonNickname(u8 *dest)
{
return StringCopy(dest, GetPSAStruct()->nickname);
}
u8 *PSA_GetMonNickname(void)
{
return GetPSAStruct()->nickname;
}
u8 PSA_GetAnimType(void)
{
return GetPSAStruct()->animType;
}
u16 PSA_GetMonSpecies(void)
{
return GetPSAStruct()->species;
}
u32 PSA_GetMonPersonality(void)
{
return GetPSAStruct()->personality;
}
void GetMonLevelUpWindowStats(struct Pokemon * pokemon, u16 *data)
{
data[0] = GetMonData(pokemon, MON_DATA_MAX_HP);
data[1] = GetMonData(pokemon, MON_DATA_ATK);
data[2] = GetMonData(pokemon, MON_DATA_DEF);
data[3] = GetMonData(pokemon, MON_DATA_SPEED);
data[4] = GetMonData(pokemon, MON_DATA_SPATK);
data[5] = GetMonData(pokemon, MON_DATA_SPDEF);
}
bool32 PSA_IsCancelDisabled(void)
{
return sCancelDisabled;
}
File diff suppressed because it is too large Load Diff
+1 -8
View File
@@ -59,15 +59,8 @@ gUnknown_3000E89: @ 3000E89
.include "src/quest_log.o"
.align 2
.include "src/union_room.o"
.align 2
@ .include "src/pokemon_special_anim.o"
gUnknown_3002030: @ 3002030
.space 0x8
gUnknown_3002038: @ 3002038
.space 0x8
.include "src/pokemon_special_anim_scene.o"
.align 2
.include "src/wireless_communication_status_screen.o"
.align 2
+1 -11
View File
@@ -261,18 +261,8 @@ gPlayerAvatar: @ 2037078
.include "src/rfu_union_tool.o"
.align 2
.include "src/union_room_battle.o"
.align 2
@ .include "src/pokemon_special_anim.o"
gUnknown_203B090: @ 203B090
.space 0x4
gUnknown_203B094: @ 203B094
.space 0x4
gUnknown_203B098: @ 203B098
.space 0x4
.include "src/pokemon_special_anim.o"
.align 2
.include "src/party_menu.o"
.align 2