Merge remote-tracking branch 'merrp_origin/followers-expanded-id' into _RHH/pr/upcoming/merrpFollowers

# Conflicts:
#	README.md
#	gflib/sprite.c
#	graphics/object_events/pics/pokemon/togetic.png
#	src/data/object_events/object_event_graphics.h
#	src/data/object_events/object_event_graphics_info.h
#	src/data/object_events/object_event_graphics_info_followers.h
#	src/event_object_movement.c
#	src/field_effect_helpers.c
This commit is contained in:
Eduardo Quezada 2024-01-18 08:12:09 -03:00
commit 5d372b5f8a
21 changed files with 3128 additions and 1461 deletions

View File

@ -889,9 +889,13 @@ void BeginAnim(struct Sprite *sprite)
if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK))
SetSpriteOamFlipBits(sprite, hFlip, vFlip);
if (sprite->usingSheet)
if (sprite->usingSheet) {
#if OW_GFX_COMPRESS
if (sprite->sheetSpan)
imageValue = (imageValue + 1) << sprite->sheetSpan;
#endif
sprite->oam.tileNum = sprite->sheetTileStart + imageValue;
else
} else
RequestSpriteFrameImageCopy(imageValue, sprite->oam.tileNum, sprite->images);
}
}
@ -941,9 +945,13 @@ void AnimCmd_frame(struct Sprite *sprite)
if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK))
SetSpriteOamFlipBits(sprite, hFlip, vFlip);
if (sprite->usingSheet)
if (sprite->usingSheet) {
#if OW_GFX_COMPRESS
if (sprite->sheetSpan)
imageValue = (imageValue + 1) << sprite->sheetSpan;
#endif
sprite->oam.tileNum = sprite->sheetTileStart + imageValue;
else
} else
RequestSpriteFrameImageCopy(imageValue, sprite->oam.tileNum, sprite->images);
}
@ -975,9 +983,13 @@ void AnimCmd_jump(struct Sprite *sprite)
if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK))
SetSpriteOamFlipBits(sprite, hFlip, vFlip);
if (sprite->usingSheet)
if (sprite->usingSheet) {
#if OW_GFX_COMPRESS
if (sprite->sheetSpan)
imageValue = (imageValue + 1) << sprite->sheetSpan;
#endif
sprite->oam.tileNum = sprite->sheetTileStart + imageValue;
else
} else
RequestSpriteFrameImageCopy(imageValue, sprite->oam.tileNum, sprite->images);
}
@ -1357,6 +1369,10 @@ void SetSpriteSheetFrameTileNum(struct Sprite *sprite)
if (sprite->usingSheet)
{
s16 tileOffset = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.imageValue;
#if OW_GFX_COMPRESS
if (sprite->sheetSpan)
tileOffset = (tileOffset + 1) << sprite->sheetSpan;
#endif
if (tileOffset < 0)
tileOffset = 0;
sprite->oam.tileNum = sprite->sheetTileStart + tileOffset;
@ -1446,11 +1462,26 @@ u16 LoadSpriteSheet(const struct SpriteSheet *sheet)
else
{
AllocSpriteTileRange(sheet->tag, (u16)tileStart, sheet->size / TILE_SIZE_4BPP);
CpuCopy16(sheet->data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
CpuSmartCopy16(sheet->data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
return (u16)tileStart;
}
}
// Like LoadSpriteSheet, but checks if already loaded, and uses template image frames
u16 LoadSpriteSheetByTemplate(const struct SpriteTemplate *template, u32 frame, s32 offset) {
u16 tileStart;
struct SpriteSheet sheet;
// error if template is null or tile tag or images not set
if (!template || template->tileTag == TAG_NONE || !template->images)
return TAG_NONE;
if ((tileStart = GetSpriteTileStartByTag(template->tileTag)) != TAG_NONE) // return if already loaded
return tileStart;
sheet.data = template->images[frame].data - offset;
sheet.size = template->images[frame].size;
sheet.tag = template->tileTag;
return LoadSpriteSheet(&sheet);
}
void LoadSpriteSheets(const struct SpriteSheet *sheets)
{
u8 i;
@ -1477,6 +1508,10 @@ void FreeSpriteTilesByTag(u16 tag)
FREE_SPRITE_TILE(i);
sSpriteTileRangeTags[index] = TAG_NONE;
#if DEBUG
// If debugging, visibly clear the freed tiles
CpuSmartFill16(0, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * start, count * TILE_SIZE_4BPP);
#endif
}
}
@ -1542,7 +1577,6 @@ u8 LoadSpritePalette(const struct SpritePalette *palette)
{
u8 index = IndexOfSpritePaletteTag(palette->tag);
u8 i;
u16 *debugPtr = (u16*) 0x0203d800;
if (index != 0xFF)
return index;
@ -1556,10 +1590,6 @@ u8 LoadSpritePalette(const struct SpritePalette *palette)
else
{
sSpritePaletteTags[index] = palette->tag;
for (i = 0; i < 16; i++)
{
debugPtr[i] = sSpritePaletteTags[i];
}
DoLoadSpritePalette(palette->data, PLTT_ID(index));
return index;
}
@ -1713,10 +1743,33 @@ bool8 AddSubspritesToOamBuffer(struct Sprite *sprite, struct OamData *destOam, u
destOam[i].y = baseY + y;
destOam[i].tileNum = tileNum + subspriteTable->subsprites[i].tileOffset;
if (sprite->subspriteMode != SUBSPRITES_IGNORE_PRIORITY)
if (sprite->subspriteMode < SUBSPRITES_IGNORE_PRIORITY)
destOam[i].priority = subspriteTable->subsprites[i].priority;
}
}
return 0;
}
static const u8 sSpanPerImage[4][4] =
{
[ST_OAM_SQUARE] = {
[ST_OAM_SIZE_0] = 0, // SPRITE_SIZE_8x8
[ST_OAM_SIZE_1] = 2, // SPRITE_SIZE_16x16
[ST_OAM_SIZE_2] = 4, // SPRITE_SIZE_32x32
[ST_OAM_SIZE_3] = 6 // SPRITE_SIZE_64x64
},
[ST_OAM_H_RECTANGLE ... ST_OAM_V_RECTANGLE] = {
[ST_OAM_SIZE_0] = 1, // SPRITE_SIZE_16x8
[ST_OAM_SIZE_1] = 2, // SPRITE_SIZE_32x8
[ST_OAM_SIZE_2] = 3, // SPRITE_SIZE_32x16
[ST_OAM_SIZE_3] = 5 // SPRITE_SIZE_64x32
},
};
// For a given sprite shape & size, returns
// the value for sheetSpan:
// i.e, a 32x32 sprite has span 4, because 1 << 4 == 16 == 4x4 tiles
u32 GetSpanPerImage(u32 shape, u32 size) {
return sSpanPerImage[shape][size];
}

View File

@ -217,22 +217,26 @@ struct Sprite
// general purpose data fields
/*0x2E*/ s16 data[8];
/*0x3E*/ bool16 inUse:1; //1
bool16 coordOffsetEnabled:1; //2
bool16 invisible:1; //4
bool16 flags_3:1; //8
bool16 flags_4:1; //0x10
bool16 flags_5:1; //0x20
bool16 flags_6:1; //0x40
bool16 flags_7:1; //0x80
/*0x3F*/ bool16 hFlip:1; //1
bool16 vFlip:1; //2
bool16 animBeginning:1; //4
bool16 affineAnimBeginning:1; //8
bool16 animEnded:1; //0x10
bool16 affineAnimEnded:1; //0x20
bool16 usingSheet:1; //0x40
bool16 anchored:1; //0x80
/*0x3E*/ u16 inUse:1; //1
u16 coordOffsetEnabled:1; //2
u16 invisible:1; //4
u16 flags_3:1; //8
// if nonzero, tile offset for usingSheet sprites
// is (offset + 1) << sheetSpan;
// (This allows using frame-based anim tables for sheet sprites)
u16 sheetSpan:3;
// u16 flags_4:1; //0x10
// u16 flags_5:1; //0x20
// u16 flags_6:1; //0x40
u16 flags_7:1; //0x80
/*0x3F*/ u16 hFlip:1; //1
u16 vFlip:1; //2
u16 animBeginning:1; //4
u16 affineAnimBeginning:1; //8
u16 animEnded:1; //0x10
u16 affineAnimEnded:1; //0x20
u16 usingSheet:1; //0x40
u16 anchored:1; //0x80
/*0x40*/ u16 sheetTileStart;
@ -298,6 +302,7 @@ void FreeOamMatrix(u8 matrixNum);
void InitSpriteAffineAnim(struct Sprite *sprite);
void SetOamMatrixRotationScaling(u8 matrixNum, s16 xScale, s16 yScale, u16 rotation);
u16 LoadSpriteSheet(const struct SpriteSheet *sheet);
u16 LoadSpriteSheetByTemplate(const struct SpriteTemplate *template, u32 frame, s32 offset);
void LoadSpriteSheets(const struct SpriteSheet *sheets);
u16 AllocTilesForSpriteSheet(struct SpriteSheet *sheet);
void AllocTilesForSpriteSheets(struct SpriteSheet *sheets);
@ -324,5 +329,6 @@ void CopyFromSprites(u8 *dest);
u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
void ClearSpriteCopyRequests(void);
void ResetAffineAnimData(void);
u32 GetSpanPerImage(u32 shape, u32 size);
#endif //GUARD_SPRITE_H

View File

@ -286,10 +286,24 @@
#define OW_SPECIES(x) (((x)->graphicsId & OBJ_EVENT_GFX_SPECIES_MASK) - OBJ_EVENT_GFX_MON_BASE)
#define OW_FORM(x) ((x)->graphicsId >> OBJ_EVENT_GFX_SPECIES_BITS)
#define SHADOW_SIZE_S 0
#define SHADOW_SIZE_M 1
#define SHADOW_SIZE_L 2
#define SHADOW_NONE 3 // Originally SHADOW_SIZE_XL, which went unused due to shadowSize in ObjectEventGraphicsInfo being only 2 bits.
// If true, follower pokemon will bob up and down
// during their idle & walking animations
#define OW_MON_BOBBING TRUE
// If true, adds a small amount of overhead
// to OW code so that large (48x48, 64x64) OWs
// will display correctly under bridges, etc.
#define LARGE_OW_SUPPORT TRUE
// See global.h for the toggle of OW_GFX_COMPRESS
// Compressed gfx are incompatible with non-power-of-two sprite sizes:
// (You should not use 48x48 sprites/tables for compressed gfx)
// 16x32, 32x32, 64x64 etc are fine
#define SHADOW_SIZE_S 0
#define SHADOW_SIZE_M 1
#define SHADOW_SIZE_L 2
#define SHADOW_SIZE_NONE 3 // Originally SHADOW_SIZE_XL, which went unused due to shadowSize in ObjectEventGraphicsInfo being only 2 bits.
#define F_INANIMATE (1 << 6)
#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)

View File

@ -9,6 +9,7 @@ void LZDecompressWram(const u32 *src, void *dest);
void LZDecompressVram(const u32 *src, void *dest);
u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src);
u16 LoadCompressedSpriteSheetByTemplate(const struct SpriteTemplate *template, s32 offset);
void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet *src);

View File

@ -205,7 +205,7 @@ void UpdateObjectEventsForCameraUpdate(s16 x, s16 y);
u8 GetWalkSlowMovementAction(u32);
u8 GetJumpMovementAction(u32);
u8 ElevationToPriority(u8 elevation);
void ObjectEventUpdateElevation(struct ObjectEvent *objEvent);
void ObjectEventUpdateElevation(struct ObjectEvent *objEvent, struct Sprite *);
void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *, u8 subpriority);
void UnfreezeObjectEvent(struct ObjectEvent *);
u8 FindLockedObjectEventIndex(struct ObjectEvent *);

View File

@ -40,6 +40,24 @@
#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16)
#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32)
#define CpuSmartCopy16(src, dest, size) \
{ \
if ((((size) & 0x1f) == 0) && ((((u32)(src)) & 3) == 0) && ((((u32)(dest)) & 3) == 0)) { \
CpuFastCopy((src), (dest), (size)); \
} else { \
CpuCopy16((src), (dest), (size)); \
} \
}
#define CpuSmartCopy32(src, dest, size) \
{ \
if ((((size) & 0x1f) == 0) && ((((u32)(src)) & 3) == 0) && ((((u32)(dest)) & 3) == 0)) { \
CpuFastCopy((src), (dest), (size)); \
} else { \
CpuCopy32((src), (dest), (size)); \
} \
}
#define CpuFastFill(value, dest, size) \
{ \
vu32 tmp = (vu32)(value); \
@ -52,6 +70,24 @@
#define CpuFastFill8(value, dest, size) CpuFastFill(((value) << 24) | ((value) << 16) | ((value) << 8) | (value), (dest), (size))
#define CpuSmartFill(value, dest, size) \
{ \
if ((((size) & 0x1f) == 0) && ((((u32)(dest)) & 3) == 0)) { \
CpuFastFill((value), (dest), (size)); \
} else { \
CpuFill32((value), (dest), (size)); \
} \
}
#define CpuSmartFill16(value, dest, size) \
{ \
if ((((size) & 0x1f) == 0) && ((((u32)(dest)) & 3) == 0)) { \
CpuFastFill16((value), (dest), (size)); \
} else { \
CpuFill16((value), (dest), (size)); \
} \
}
#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF))
#define DmaSetUnchecked(dmaNum, src, dest, control) \

View File

@ -63,7 +63,7 @@ struct BackupMapLayout
u16 *map;
};
struct __attribute__((packed)) ObjectEventTemplate
struct __attribute__((packed, aligned(4))) ObjectEventTemplate
{
/*0x00*/ u8 localId;
/*0x01*/ u16 graphicsId;
@ -234,7 +234,7 @@ struct ObjectEventGraphicsInfo
/*0x0C*/ u8 paletteSlot:4;
u8 shadowSize:2;
u8 inanimate:1;
u8 disableReflectionPaletteLoad:1;
u8 compressed:1;
/*0x0D*/ u8 tracks;
/*0x10*/ const struct OamData *oam;
/*0x14*/ const struct SubspriteTable *subspriteTables;

View File

@ -37,6 +37,7 @@
#define INCBIN_S8 INCBIN
#define INCBIN_S16 INCBIN
#define INCBIN_S32 INCBIN
#define INCBIN_COMP INCBIN
#endif // IDE support
#define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0]))
@ -67,6 +68,8 @@
#define SAFE_DIV(a, b) ((a) / (b))
#endif
#define IS_POW_OF_TWO(n) (((n) & ((n)-1)) == 0)
// The below macro does a%n, but (to match) will switch to a&(n-1) if n is a power of 2.
// There are cases where GF does a&(n-1) where we would really like to have a%n, because
// if n is changed to a value that isn't a power of 2 then a&(n-1) is unlikely to work as
@ -1073,4 +1076,8 @@ struct MapPosition
s8 elevation;
};
// Adds support for compressed OW graphics,
// (Also compresses pokemon follower graphics)
#define OW_GFX_COMPRESS TRUE
#endif // GUARD_GLOBAL_H

View File

@ -156,13 +156,13 @@ const u32 gObjectEventPic_Steven[] = INCBIN_U32("graphics/object_events/pics/peo
const u32 gObjectEventPic_Wally[] = INCBIN_U32("graphics/object_events/pics/people/wally.4bpp");
const u32 gObjectEventPic_RubySapphireLittleBoy[] = INCBIN_U32("graphics/object_events/pics/people/rs_little_boy.4bpp");
const u32 gObjectEventPic_HotSpringsOldWoman[] = INCBIN_U32("graphics/object_events/pics/people/hot_springs_old_woman.4bpp");
const u32 gObjectEventPic_LatiasLatios[] = INCBIN_U32("graphics/object_events/pics/pokemon/latias_latios.4bpp");
const u32 gObjectEventPic_LatiasLatios[] = INCBIN_COMP("graphics/object_events/pics/pokemon/latias_latios.4bpp");
const u32 gObjectEventPic_GameboyKid[] = INCBIN_U32("graphics/object_events/pics/people/gameboy_kid.4bpp");
const u32 gObjectEventPic_ContestJudge[] = INCBIN_U32("graphics/object_events/pics/people/contest_judge.4bpp");
const u32 gObjectEventPic_Archie[] = INCBIN_U32("graphics/object_events/pics/people/team_aqua/archie.4bpp");
const u32 gObjectEventPic_Maxie[] = INCBIN_U32("graphics/object_events/pics/people/team_magma/maxie.4bpp");
const u32 gObjectEventPic_Regi[] = INCBIN_U32("graphics/object_events/pics/pokemon/regi.4bpp");
const u32 gObjectEventPic_RayquazaStill[] = INCBIN_U32("graphics/object_events/pics/pokemon/rayquaza_still.4bpp");
const u32 gObjectEventPic_Regi[] = INCBIN_COMP("graphics/object_events/pics/pokemon/regi.4bpp");
const u32 gObjectEventPic_RayquazaStill[] = INCBIN_COMP("graphics/object_events/pics/pokemon/rayquaza_still.4bpp");
const u32 gObjectEventPic_TuberMSwimming[] = INCBIN_U32("graphics/object_events/pics/people/tuber_m_swimming.4bpp");
const u32 gObjectEventPic_Mom[] = INCBIN_U32("graphics/object_events/pics/people/mom.4bpp");
const u16 gObjectEventPal_Kyogre[] = INCBIN_U16("graphics/object_events/palettes/kyogre.gbapal");
@ -231,7 +231,7 @@ const u32 gObjectEventPic_Truck[] = INCBIN_U32("graphics/object_events/pics/misc
const u16 gObjectEventPal_Truck[] = INCBIN_U16("graphics/object_events/palettes/truck.gbapal");
const u16 gObjectEventPal_Vigoroth[] = INCBIN_U16("graphics/object_events/palettes/vigoroth.gbapal");
const u32 gObjectEventPic_BirchsBag[] = INCBIN_U32("graphics/object_events/pics/misc/birchs_bag.4bpp");
const u32 gObjectEventPic_EnemyZigzagoon[] = INCBIN_U32("graphics/object_events/pics/pokemon/enemy_zigzagoon.4bpp");
const u32 gObjectEventPic_EnemyZigzagoon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/enemy_zigzagoon.4bpp");
const u16 gObjectEventPal_EnemyZigzagoon[] = INCBIN_U16("graphics/object_events/palettes/enemy_zigzagoon.gbapal");
const u16 gObjectEventPal_Poochyena[] = INCBIN_U16("graphics/object_events/palettes/poochyena.gbapal");
const u32 gObjectEventPic_CableCar[] = INCBIN_U32("graphics/object_events/pics/misc/cable_car.4bpp");
@ -356,443 +356,450 @@ const u32 gObjectEventPic_Noland[] = INCBIN_U32("graphics/object_events/pics/peo
const u32 gObjectEventPic_Lucy[] = INCBIN_U32("graphics/object_events/pics/people/frontier_brains/lucy.4bpp");
const u32 gObjectEventPic_Brandon[] = INCBIN_U32("graphics/object_events/pics/people/frontier_brains/brandon.4bpp");
const u32 gObjectEventPic_AnimatedBall[] = INCBIN_U32("graphics/object_events/pics/misc/animated_ball.4bpp");
const u32 gObjectEventPic_Bulbasaur[] = INCBIN_U32("graphics/object_events/pics/pokemon/bulbasaur.4bpp");
const u32 gObjectEventPic_Ivysaur[] = INCBIN_U32("graphics/object_events/pics/pokemon/ivysaur.4bpp");
const u32 gObjectEventPic_Venusaur[] = INCBIN_U32("graphics/object_events/pics/pokemon/venusaur.4bpp");
const u32 gObjectEventPic_Charmander[] = INCBIN_U32("graphics/object_events/pics/pokemon/charmander.4bpp");
const u32 gObjectEventPic_Charmeleon[] = INCBIN_U32("graphics/object_events/pics/pokemon/charmeleon.4bpp");
const u32 gObjectEventPic_Charizard[] = INCBIN_U32("graphics/object_events/pics/pokemon/charizard.4bpp");
const u32 gObjectEventPic_Squirtle[] = INCBIN_U32("graphics/object_events/pics/pokemon/squirtle.4bpp");
const u32 gObjectEventPic_Wartortle[] = INCBIN_U32("graphics/object_events/pics/pokemon/wartortle.4bpp");
const u32 gObjectEventPic_Blastoise[] = INCBIN_U32("graphics/object_events/pics/pokemon/blastoise.4bpp");
const u32 gObjectEventPic_Caterpie[] = INCBIN_U32("graphics/object_events/pics/pokemon/caterpie.4bpp");
const u32 gObjectEventPic_Metapod[] = INCBIN_U32("graphics/object_events/pics/pokemon/metapod.4bpp");
const u32 gObjectEventPic_Butterfree[] = INCBIN_U32("graphics/object_events/pics/pokemon/butterfree.4bpp");
const u32 gObjectEventPic_Weedle[] = INCBIN_U32("graphics/object_events/pics/pokemon/weedle.4bpp");
const u32 gObjectEventPic_Kakuna[] = INCBIN_U32("graphics/object_events/pics/pokemon/kakuna.4bpp");
const u32 gObjectEventPic_Beedrill[] = INCBIN_U32("graphics/object_events/pics/pokemon/beedrill.4bpp");
const u32 gObjectEventPic_Pidgey[] = INCBIN_U32("graphics/object_events/pics/pokemon/pidgey.4bpp");
const u32 gObjectEventPic_Pidgeotto[] = INCBIN_U32("graphics/object_events/pics/pokemon/pidgeotto.4bpp");
const u32 gObjectEventPic_Pidgeot[] = INCBIN_U32("graphics/object_events/pics/pokemon/pidgeot.4bpp");
const u32 gObjectEventPic_Rattata[] = INCBIN_U32("graphics/object_events/pics/pokemon/rattata.4bpp");
const u32 gObjectEventPic_Raticate[] = INCBIN_U32("graphics/object_events/pics/pokemon/raticate.4bpp");
const u32 gObjectEventPic_Spearow[] = INCBIN_U32("graphics/object_events/pics/pokemon/spearow.4bpp");
const u32 gObjectEventPic_Fearow[] = INCBIN_U32("graphics/object_events/pics/pokemon/fearow.4bpp");
const u32 gObjectEventPic_Ekans[] = INCBIN_U32("graphics/object_events/pics/pokemon/ekans.4bpp");
const u32 gObjectEventPic_Arbok[] = INCBIN_U32("graphics/object_events/pics/pokemon/arbok.4bpp");
const u32 gObjectEventPic_Pikachu[] = INCBIN_U32("graphics/object_events/pics/pokemon/pikachu.4bpp");
const u32 gObjectEventPic_Raichu[] = INCBIN_U32("graphics/object_events/pics/pokemon/raichu.4bpp");
const u32 gObjectEventPic_Sandshrew[] = INCBIN_U32("graphics/object_events/pics/pokemon/sandshrew.4bpp");
const u32 gObjectEventPic_Sandslash[] = INCBIN_U32("graphics/object_events/pics/pokemon/sandslash.4bpp");
const u32 gObjectEventPic_Nidoran_f[] = INCBIN_U32("graphics/object_events/pics/pokemon/nidoran_f.4bpp");
const u32 gObjectEventPic_Nidorina[] = INCBIN_U32("graphics/object_events/pics/pokemon/nidorina.4bpp");
const u32 gObjectEventPic_Nidoqueen[] = INCBIN_U32("graphics/object_events/pics/pokemon/nidoqueen.4bpp");
const u32 gObjectEventPic_Nidoran_m[] = INCBIN_U32("graphics/object_events/pics/pokemon/nidoran_m.4bpp");
const u32 gObjectEventPic_Nidorino[] = INCBIN_U32("graphics/object_events/pics/pokemon/nidorino.4bpp");
const u32 gObjectEventPic_Nidoking[] = INCBIN_U32("graphics/object_events/pics/pokemon/nidoking.4bpp");
const u32 gObjectEventPic_Clefairy[] = INCBIN_U32("graphics/object_events/pics/pokemon/clefairy.4bpp");
const u32 gObjectEventPic_Clefable[] = INCBIN_U32("graphics/object_events/pics/pokemon/clefable.4bpp");
const u32 gObjectEventPic_Vulpix[] = INCBIN_U32("graphics/object_events/pics/pokemon/vulpix.4bpp");
const u32 gObjectEventPic_Ninetales[] = INCBIN_U32("graphics/object_events/pics/pokemon/ninetales.4bpp");
const u32 gObjectEventPic_Jigglypuff[] = INCBIN_U32("graphics/object_events/pics/pokemon/jigglypuff.4bpp");
const u32 gObjectEventPic_Wigglytuff[] = INCBIN_U32("graphics/object_events/pics/pokemon/wigglytuff.4bpp");
const u32 gObjectEventPic_Zubat[] = INCBIN_U32("graphics/object_events/pics/pokemon/zubat.4bpp");
const u32 gObjectEventPic_Golbat[] = INCBIN_U32("graphics/object_events/pics/pokemon/golbat.4bpp");
const u32 gObjectEventPic_Oddish[] = INCBIN_U32("graphics/object_events/pics/pokemon/oddish.4bpp");
const u32 gObjectEventPic_Gloom[] = INCBIN_U32("graphics/object_events/pics/pokemon/gloom.4bpp");
const u32 gObjectEventPic_Vileplume[] = INCBIN_U32("graphics/object_events/pics/pokemon/vileplume.4bpp");
const u32 gObjectEventPic_Paras[] = INCBIN_U32("graphics/object_events/pics/pokemon/paras.4bpp");
const u32 gObjectEventPic_Parasect[] = INCBIN_U32("graphics/object_events/pics/pokemon/parasect.4bpp");
const u32 gObjectEventPic_Venonat[] = INCBIN_U32("graphics/object_events/pics/pokemon/venonat.4bpp");
const u32 gObjectEventPic_Venomoth[] = INCBIN_U32("graphics/object_events/pics/pokemon/venomoth.4bpp");
const u32 gObjectEventPic_Diglett[] = INCBIN_U32("graphics/object_events/pics/pokemon/diglett.4bpp");
const u32 gObjectEventPic_Dugtrio[] = INCBIN_U32("graphics/object_events/pics/pokemon/dugtrio.4bpp");
const u32 gObjectEventPic_Meowth[] = INCBIN_U32("graphics/object_events/pics/pokemon/meowth.4bpp");
const u32 gObjectEventPic_Persian[] = INCBIN_U32("graphics/object_events/pics/pokemon/persian.4bpp");
const u32 gObjectEventPic_Psyduck[] = INCBIN_U32("graphics/object_events/pics/pokemon/psyduck.4bpp");
const u32 gObjectEventPic_Golduck[] = INCBIN_U32("graphics/object_events/pics/pokemon/golduck.4bpp");
const u32 gObjectEventPic_Mankey[] = INCBIN_U32("graphics/object_events/pics/pokemon/mankey.4bpp");
const u32 gObjectEventPic_Primeape[] = INCBIN_U32("graphics/object_events/pics/pokemon/primeape.4bpp");
const u32 gObjectEventPic_Growlithe[] = INCBIN_U32("graphics/object_events/pics/pokemon/growlithe.4bpp");
const u32 gObjectEventPic_Arcanine[] = INCBIN_U32("graphics/object_events/pics/pokemon/arcanine.4bpp");
const u32 gObjectEventPic_Poliwag[] = INCBIN_U32("graphics/object_events/pics/pokemon/poliwag.4bpp");
const u32 gObjectEventPic_Poliwhirl[] = INCBIN_U32("graphics/object_events/pics/pokemon/poliwhirl.4bpp");
const u32 gObjectEventPic_Poliwrath[] = INCBIN_U32("graphics/object_events/pics/pokemon/poliwrath.4bpp");
const u32 gObjectEventPic_Abra[] = INCBIN_U32("graphics/object_events/pics/pokemon/abra.4bpp");
const u32 gObjectEventPic_Kadabra[] = INCBIN_U32("graphics/object_events/pics/pokemon/kadabra.4bpp");
const u32 gObjectEventPic_Alakazam[] = INCBIN_U32("graphics/object_events/pics/pokemon/alakazam.4bpp");
const u32 gObjectEventPic_Machop[] = INCBIN_U32("graphics/object_events/pics/pokemon/machop.4bpp");
const u32 gObjectEventPic_Machoke[] = INCBIN_U32("graphics/object_events/pics/pokemon/machoke.4bpp");
const u32 gObjectEventPic_Machamp[] = INCBIN_U32("graphics/object_events/pics/pokemon/machamp.4bpp");
const u32 gObjectEventPic_Bellsprout[] = INCBIN_U32("graphics/object_events/pics/pokemon/bellsprout.4bpp");
const u32 gObjectEventPic_Weepinbell[] = INCBIN_U32("graphics/object_events/pics/pokemon/weepinbell.4bpp");
const u32 gObjectEventPic_Victreebel[] = INCBIN_U32("graphics/object_events/pics/pokemon/victreebel.4bpp");
const u32 gObjectEventPic_Tentacool[] = INCBIN_U32("graphics/object_events/pics/pokemon/tentacool.4bpp");
const u32 gObjectEventPic_Tentacruel[] = INCBIN_U32("graphics/object_events/pics/pokemon/tentacruel.4bpp");
const u32 gObjectEventPic_Geodude[] = INCBIN_U32("graphics/object_events/pics/pokemon/geodude.4bpp");
const u32 gObjectEventPic_Graveler[] = INCBIN_U32("graphics/object_events/pics/pokemon/graveler.4bpp");
const u32 gObjectEventPic_Golem[] = INCBIN_U32("graphics/object_events/pics/pokemon/golem.4bpp");
const u32 gObjectEventPic_Ponyta[] = INCBIN_U32("graphics/object_events/pics/pokemon/ponyta.4bpp");
const u32 gObjectEventPic_Rapidash[] = INCBIN_U32("graphics/object_events/pics/pokemon/rapidash.4bpp");
const u32 gObjectEventPic_Slowpoke[] = INCBIN_U32("graphics/object_events/pics/pokemon/slowpoke.4bpp");
const u32 gObjectEventPic_Slowbro[] = INCBIN_U32("graphics/object_events/pics/pokemon/slowbro.4bpp");
const u32 gObjectEventPic_Magnemite[] = INCBIN_U32("graphics/object_events/pics/pokemon/magnemite.4bpp");
const u32 gObjectEventPic_Magneton[] = INCBIN_U32("graphics/object_events/pics/pokemon/magneton.4bpp");
const u32 gObjectEventPic_Farfetchd[] = INCBIN_U32("graphics/object_events/pics/pokemon/farfetchd.4bpp");
const u32 gObjectEventPic_Doduo[] = INCBIN_U32("graphics/object_events/pics/pokemon/doduo.4bpp");
const u32 gObjectEventPic_Dodrio[] = INCBIN_U32("graphics/object_events/pics/pokemon/dodrio.4bpp");
const u32 gObjectEventPic_Seel[] = INCBIN_U32("graphics/object_events/pics/pokemon/seel.4bpp");
const u32 gObjectEventPic_Dewgong[] = INCBIN_U32("graphics/object_events/pics/pokemon/dewgong.4bpp");
const u32 gObjectEventPic_Grimer[] = INCBIN_U32("graphics/object_events/pics/pokemon/grimer.4bpp");
const u32 gObjectEventPic_Muk[] = INCBIN_U32("graphics/object_events/pics/pokemon/muk.4bpp");
const u32 gObjectEventPic_Shellder[] = INCBIN_U32("graphics/object_events/pics/pokemon/shellder.4bpp");
const u32 gObjectEventPic_Cloyster[] = INCBIN_U32("graphics/object_events/pics/pokemon/cloyster.4bpp");
const u32 gObjectEventPic_Gastly[] = INCBIN_U32("graphics/object_events/pics/pokemon/gastly.4bpp");
const u32 gObjectEventPic_Haunter[] = INCBIN_U32("graphics/object_events/pics/pokemon/haunter.4bpp");
const u32 gObjectEventPic_Gengar[] = INCBIN_U32("graphics/object_events/pics/pokemon/gengar.4bpp");
const u32 gObjectEventPic_Onix[] = INCBIN_U32("graphics/object_events/pics/pokemon/onix.4bpp");
const u32 gObjectEventPic_Drowzee[] = INCBIN_U32("graphics/object_events/pics/pokemon/drowzee.4bpp");
const u32 gObjectEventPic_Hypno[] = INCBIN_U32("graphics/object_events/pics/pokemon/hypno.4bpp");
const u32 gObjectEventPic_Krabby[] = INCBIN_U32("graphics/object_events/pics/pokemon/krabby.4bpp");
const u32 gObjectEventPic_Kingler[] = INCBIN_U32("graphics/object_events/pics/pokemon/kingler.4bpp");
const u32 gObjectEventPic_Voltorb[] = INCBIN_U32("graphics/object_events/pics/pokemon/voltorb.4bpp");
const u32 gObjectEventPic_Electrode[] = INCBIN_U32("graphics/object_events/pics/pokemon/electrode.4bpp");
const u32 gObjectEventPic_Exeggcute[] = INCBIN_U32("graphics/object_events/pics/pokemon/exeggcute.4bpp");
const u32 gObjectEventPic_Exeggutor[] = INCBIN_U32("graphics/object_events/pics/pokemon/exeggutor.4bpp");
const u32 gObjectEventPic_Cubone[] = INCBIN_U32("graphics/object_events/pics/pokemon/cubone.4bpp");
const u32 gObjectEventPic_Marowak[] = INCBIN_U32("graphics/object_events/pics/pokemon/marowak.4bpp");
const u32 gObjectEventPic_Hitmonlee[] = INCBIN_U32("graphics/object_events/pics/pokemon/hitmonlee.4bpp");
const u32 gObjectEventPic_Hitmonchan[] = INCBIN_U32("graphics/object_events/pics/pokemon/hitmonchan.4bpp");
const u32 gObjectEventPic_Lickitung[] = INCBIN_U32("graphics/object_events/pics/pokemon/lickitung.4bpp");
const u32 gObjectEventPic_Koffing[] = INCBIN_U32("graphics/object_events/pics/pokemon/koffing.4bpp");
const u32 gObjectEventPic_Weezing[] = INCBIN_U32("graphics/object_events/pics/pokemon/weezing.4bpp");
const u32 gObjectEventPic_Rhyhorn[] = INCBIN_U32("graphics/object_events/pics/pokemon/rhyhorn.4bpp");
const u32 gObjectEventPic_Rhydon[] = INCBIN_U32("graphics/object_events/pics/pokemon/rhydon.4bpp");
const u32 gObjectEventPic_Chansey[] = INCBIN_U32("graphics/object_events/pics/pokemon/chansey.4bpp");
const u32 gObjectEventPic_Tangela[] = INCBIN_U32("graphics/object_events/pics/pokemon/tangela.4bpp");
const u32 gObjectEventPic_Kangaskhan[] = INCBIN_U32("graphics/object_events/pics/pokemon/kangaskhan.4bpp");
const u32 gObjectEventPic_Horsea[] = INCBIN_U32("graphics/object_events/pics/pokemon/horsea.4bpp");
const u32 gObjectEventPic_Seadra[] = INCBIN_U32("graphics/object_events/pics/pokemon/seadra.4bpp");
const u32 gObjectEventPic_Goldeen[] = INCBIN_U32("graphics/object_events/pics/pokemon/goldeen.4bpp");
const u32 gObjectEventPic_Seaking[] = INCBIN_U32("graphics/object_events/pics/pokemon/seaking.4bpp");
const u32 gObjectEventPic_Staryu[] = INCBIN_U32("graphics/object_events/pics/pokemon/staryu.4bpp");
const u32 gObjectEventPic_Starmie[] = INCBIN_U32("graphics/object_events/pics/pokemon/starmie.4bpp");
const u32 gObjectEventPic_Mr_Mime[] = INCBIN_U32("graphics/object_events/pics/pokemon/mr_mime.4bpp");
const u32 gObjectEventPic_Scyther[] = INCBIN_U32("graphics/object_events/pics/pokemon/scyther.4bpp");
const u32 gObjectEventPic_Jynx[] = INCBIN_U32("graphics/object_events/pics/pokemon/jynx.4bpp");
const u32 gObjectEventPic_Electabuzz[] = INCBIN_U32("graphics/object_events/pics/pokemon/electabuzz.4bpp");
const u32 gObjectEventPic_Magmar[] = INCBIN_U32("graphics/object_events/pics/pokemon/magmar.4bpp");
const u32 gObjectEventPic_Pinsir[] = INCBIN_U32("graphics/object_events/pics/pokemon/pinsir.4bpp");
const u32 gObjectEventPic_Tauros[] = INCBIN_U32("graphics/object_events/pics/pokemon/tauros.4bpp");
const u32 gObjectEventPic_Magikarp[] = INCBIN_U32("graphics/object_events/pics/pokemon/magikarp.4bpp");
const u32 gObjectEventPic_Gyarados[] = INCBIN_U32("graphics/object_events/pics/pokemon/gyarados.4bpp");
const u32 gObjectEventPic_Lapras[] = INCBIN_U32("graphics/object_events/pics/pokemon/lapras.4bpp");
const u32 gObjectEventPic_Ditto[] = INCBIN_U32("graphics/object_events/pics/pokemon/ditto.4bpp");
const u32 gObjectEventPic_Eevee[] = INCBIN_U32("graphics/object_events/pics/pokemon/eevee.4bpp");
const u32 gObjectEventPic_Vaporeon[] = INCBIN_U32("graphics/object_events/pics/pokemon/vaporeon.4bpp");
const u32 gObjectEventPic_Jolteon[] = INCBIN_U32("graphics/object_events/pics/pokemon/jolteon.4bpp");
const u32 gObjectEventPic_Flareon[] = INCBIN_U32("graphics/object_events/pics/pokemon/flareon.4bpp");
const u32 gObjectEventPic_Porygon[] = INCBIN_U32("graphics/object_events/pics/pokemon/porygon.4bpp");
const u32 gObjectEventPic_Omanyte[] = INCBIN_U32("graphics/object_events/pics/pokemon/omanyte.4bpp");
const u32 gObjectEventPic_Omastar[] = INCBIN_U32("graphics/object_events/pics/pokemon/omastar.4bpp");
const u32 gObjectEventPic_Kabuto[] = INCBIN_U32("graphics/object_events/pics/pokemon/kabuto.4bpp");
const u32 gObjectEventPic_Kabutops[] = INCBIN_U32("graphics/object_events/pics/pokemon/kabutops.4bpp");
const u32 gObjectEventPic_Aerodactyl[] = INCBIN_U32("graphics/object_events/pics/pokemon/aerodactyl.4bpp");
const u32 gObjectEventPic_Snorlax[] = INCBIN_U32("graphics/object_events/pics/pokemon/snorlax.4bpp");
const u32 gObjectEventPic_Articuno[] = INCBIN_U32("graphics/object_events/pics/pokemon/articuno.4bpp");
const u32 gObjectEventPic_Zapdos[] = INCBIN_U32("graphics/object_events/pics/pokemon/zapdos.4bpp");
const u32 gObjectEventPic_Moltres[] = INCBIN_U32("graphics/object_events/pics/pokemon/moltres.4bpp");
const u32 gObjectEventPic_Dratini[] = INCBIN_U32("graphics/object_events/pics/pokemon/dratini.4bpp");
const u32 gObjectEventPic_Dragonair[] = INCBIN_U32("graphics/object_events/pics/pokemon/dragonair.4bpp");
const u32 gObjectEventPic_Dragonite[] = INCBIN_U32("graphics/object_events/pics/pokemon/dragonite.4bpp");
const u32 gObjectEventPic_Mewtwo[] = INCBIN_U32("graphics/object_events/pics/pokemon/mewtwo.4bpp");
const u32 gObjectEventPic_Mew[] = INCBIN_U32("graphics/object_events/pics/pokemon/mew.4bpp");
const u32 gObjectEventPic_Chikorita[] = INCBIN_U32("graphics/object_events/pics/pokemon/chikorita.4bpp");
const u32 gObjectEventPic_Bayleef[] = INCBIN_U32("graphics/object_events/pics/pokemon/bayleef.4bpp");
const u32 gObjectEventPic_Meganium[] = INCBIN_U32("graphics/object_events/pics/pokemon/meganium.4bpp");
const u32 gObjectEventPic_Cyndaquil[] = INCBIN_U32("graphics/object_events/pics/pokemon/cyndaquil.4bpp");
const u32 gObjectEventPic_Quilava[] = INCBIN_U32("graphics/object_events/pics/pokemon/quilava.4bpp");
const u32 gObjectEventPic_Typhlosion[] = INCBIN_U32("graphics/object_events/pics/pokemon/typhlosion.4bpp");
const u32 gObjectEventPic_Totodile[] = INCBIN_U32("graphics/object_events/pics/pokemon/totodile.4bpp");
const u32 gObjectEventPic_Croconaw[] = INCBIN_U32("graphics/object_events/pics/pokemon/croconaw.4bpp");
const u32 gObjectEventPic_Feraligatr[] = INCBIN_U32("graphics/object_events/pics/pokemon/feraligatr.4bpp");
const u32 gObjectEventPic_Sentret[] = INCBIN_U32("graphics/object_events/pics/pokemon/sentret.4bpp");
const u32 gObjectEventPic_Furret[] = INCBIN_U32("graphics/object_events/pics/pokemon/furret.4bpp");
const u32 gObjectEventPic_Hoothoot[] = INCBIN_U32("graphics/object_events/pics/pokemon/hoothoot.4bpp");
const u32 gObjectEventPic_Noctowl[] = INCBIN_U32("graphics/object_events/pics/pokemon/noctowl.4bpp");
const u32 gObjectEventPic_Ledyba[] = INCBIN_U32("graphics/object_events/pics/pokemon/ledyba.4bpp");
const u32 gObjectEventPic_Ledian[] = INCBIN_U32("graphics/object_events/pics/pokemon/ledian.4bpp");
const u32 gObjectEventPic_Spinarak[] = INCBIN_U32("graphics/object_events/pics/pokemon/spinarak.4bpp");
const u32 gObjectEventPic_Ariados[] = INCBIN_U32("graphics/object_events/pics/pokemon/ariados.4bpp");
const u32 gObjectEventPic_Crobat[] = INCBIN_U32("graphics/object_events/pics/pokemon/crobat.4bpp");
const u32 gObjectEventPic_Chinchou[] = INCBIN_U32("graphics/object_events/pics/pokemon/chinchou.4bpp");
const u32 gObjectEventPic_Lanturn[] = INCBIN_U32("graphics/object_events/pics/pokemon/lanturn.4bpp");
const u32 gObjectEventPic_Pichu[] = INCBIN_U32("graphics/object_events/pics/pokemon/pichu.4bpp");
const u32 gObjectEventPic_Cleffa[] = INCBIN_U32("graphics/object_events/pics/pokemon/cleffa.4bpp");
const u32 gObjectEventPic_Igglybuff[] = INCBIN_U32("graphics/object_events/pics/pokemon/igglybuff.4bpp");
const u32 gObjectEventPic_Togepi[] = INCBIN_U32("graphics/object_events/pics/pokemon/togepi.4bpp");
const u32 gObjectEventPic_Togetic[] = INCBIN_U32("graphics/object_events/pics/pokemon/togetic.4bpp");
const u32 gObjectEventPic_Natu[] = INCBIN_U32("graphics/object_events/pics/pokemon/natu.4bpp");
const u32 gObjectEventPic_Xatu[] = INCBIN_U32("graphics/object_events/pics/pokemon/xatu.4bpp");
const u32 gObjectEventPic_Mareep[] = INCBIN_U32("graphics/object_events/pics/pokemon/mareep.4bpp");
const u32 gObjectEventPic_Flaaffy[] = INCBIN_U32("graphics/object_events/pics/pokemon/flaaffy.4bpp");
const u32 gObjectEventPic_Ampharos[] = INCBIN_U32("graphics/object_events/pics/pokemon/ampharos.4bpp");
const u32 gObjectEventPic_Bellossom[] = INCBIN_U32("graphics/object_events/pics/pokemon/bellossom.4bpp");
const u32 gObjectEventPic_Marill[] = INCBIN_U32("graphics/object_events/pics/pokemon/marill.4bpp");
const u32 gObjectEventPic_Azumarill[] = INCBIN_U32("graphics/object_events/pics/pokemon/azumarill.4bpp");
const u32 gObjectEventPic_Sudowoodo[] = INCBIN_U32("graphics/object_events/pics/pokemon/sudowoodo.4bpp");
const u32 gObjectEventPic_Politoed[] = INCBIN_U32("graphics/object_events/pics/pokemon/politoed.4bpp");
const u32 gObjectEventPic_Hoppip[] = INCBIN_U32("graphics/object_events/pics/pokemon/hoppip.4bpp");
const u32 gObjectEventPic_Skiploom[] = INCBIN_U32("graphics/object_events/pics/pokemon/skiploom.4bpp");
const u32 gObjectEventPic_Jumpluff[] = INCBIN_U32("graphics/object_events/pics/pokemon/jumpluff.4bpp");
const u32 gObjectEventPic_Aipom[] = INCBIN_U32("graphics/object_events/pics/pokemon/aipom.4bpp");
const u32 gObjectEventPic_Sunkern[] = INCBIN_U32("graphics/object_events/pics/pokemon/sunkern.4bpp");
const u32 gObjectEventPic_Sunflora[] = INCBIN_U32("graphics/object_events/pics/pokemon/sunflora.4bpp");
const u32 gObjectEventPic_Yanma[] = INCBIN_U32("graphics/object_events/pics/pokemon/yanma.4bpp");
const u32 gObjectEventPic_Wooper[] = INCBIN_U32("graphics/object_events/pics/pokemon/wooper.4bpp");
const u32 gObjectEventPic_Quagsire[] = INCBIN_U32("graphics/object_events/pics/pokemon/quagsire.4bpp");
const u32 gObjectEventPic_Espeon[] = INCBIN_U32("graphics/object_events/pics/pokemon/espeon.4bpp");
const u32 gObjectEventPic_Umbreon[] = INCBIN_U32("graphics/object_events/pics/pokemon/umbreon.4bpp");
const u32 gObjectEventPic_Murkrow[] = INCBIN_U32("graphics/object_events/pics/pokemon/murkrow.4bpp");
const u32 gObjectEventPic_Slowking[] = INCBIN_U32("graphics/object_events/pics/pokemon/slowking.4bpp");
const u32 gObjectEventPic_Misdreavus[] = INCBIN_U32("graphics/object_events/pics/pokemon/misdreavus.4bpp");
const u32 gObjectEventPic_Unown_A[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_a.4bpp");
const u32 gObjectEventPic_Unown_B[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_b.4bpp");
const u32 gObjectEventPic_Unown_C[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_c.4bpp");
const u32 gObjectEventPic_Unown_D[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_d.4bpp");
const u32 gObjectEventPic_Unown_E[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_e.4bpp");
const u32 gObjectEventPic_Unown_F[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_f.4bpp");
const u32 gObjectEventPic_Unown_G[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_g.4bpp");
const u32 gObjectEventPic_Unown_H[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_h.4bpp");
const u32 gObjectEventPic_Unown_I[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_i.4bpp");
const u32 gObjectEventPic_Unown_J[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_j.4bpp");
const u32 gObjectEventPic_Unown_K[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_k.4bpp");
const u32 gObjectEventPic_Unown_L[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_l.4bpp");
const u32 gObjectEventPic_Unown_M[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_m.4bpp");
const u32 gObjectEventPic_Unown_N[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_n.4bpp");
const u32 gObjectEventPic_Unown_O[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_o.4bpp");
const u32 gObjectEventPic_Unown_P[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_p.4bpp");
const u32 gObjectEventPic_Unown_Q[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_q.4bpp");
const u32 gObjectEventPic_Unown_R[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_r.4bpp");
const u32 gObjectEventPic_Unown_S[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_s.4bpp");
const u32 gObjectEventPic_Unown_T[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_t.4bpp");
const u32 gObjectEventPic_Unown_U[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_u.4bpp");
const u32 gObjectEventPic_Unown_V[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_v.4bpp");
const u32 gObjectEventPic_Unown_W[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_w.4bpp");
const u32 gObjectEventPic_Unown_X[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_x.4bpp");
const u32 gObjectEventPic_Unown_Y[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_y.4bpp");
const u32 gObjectEventPic_Unown_Z[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_z.4bpp");
const u32 gObjectEventPic_Unown_Exclamation[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_exclamation.4bpp");
const u32 gObjectEventPic_Unown_Question[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_question.4bpp");
const u32 gObjectEventPic_Wobbuffet[] = INCBIN_U32("graphics/object_events/pics/pokemon/wobbuffet.4bpp");
const u32 gObjectEventPic_Girafarig[] = INCBIN_U32("graphics/object_events/pics/pokemon/girafarig.4bpp");
const u32 gObjectEventPic_Pineco[] = INCBIN_U32("graphics/object_events/pics/pokemon/pineco.4bpp");
const u32 gObjectEventPic_Forretress[] = INCBIN_U32("graphics/object_events/pics/pokemon/forretress.4bpp");
const u32 gObjectEventPic_Dunsparce[] = INCBIN_U32("graphics/object_events/pics/pokemon/dunsparce.4bpp");
const u32 gObjectEventPic_Gligar[] = INCBIN_U32("graphics/object_events/pics/pokemon/gligar.4bpp");
const u32 gObjectEventPic_Steelix[] = INCBIN_U32("graphics/object_events/pics/pokemon/steelix.4bpp");
const u32 gObjectEventPic_Snubbull[] = INCBIN_U32("graphics/object_events/pics/pokemon/snubbull.4bpp");
const u32 gObjectEventPic_Granbull[] = INCBIN_U32("graphics/object_events/pics/pokemon/granbull.4bpp");
const u32 gObjectEventPic_Qwilfish[] = INCBIN_U32("graphics/object_events/pics/pokemon/qwilfish.4bpp");
const u32 gObjectEventPic_Scizor[] = INCBIN_U32("graphics/object_events/pics/pokemon/scizor.4bpp");
const u32 gObjectEventPic_Shuckle[] = INCBIN_U32("graphics/object_events/pics/pokemon/shuckle.4bpp");
const u32 gObjectEventPic_Heracross[] = INCBIN_U32("graphics/object_events/pics/pokemon/heracross.4bpp");
const u32 gObjectEventPic_Sneasel[] = INCBIN_U32("graphics/object_events/pics/pokemon/sneasel.4bpp");
const u32 gObjectEventPic_Teddiursa[] = INCBIN_U32("graphics/object_events/pics/pokemon/teddiursa.4bpp");
const u32 gObjectEventPic_Ursaring[] = INCBIN_U32("graphics/object_events/pics/pokemon/ursaring.4bpp");
const u32 gObjectEventPic_Slugma[] = INCBIN_U32("graphics/object_events/pics/pokemon/slugma.4bpp");
const u32 gObjectEventPic_Magcargo[] = INCBIN_U32("graphics/object_events/pics/pokemon/magcargo.4bpp");
const u32 gObjectEventPic_Swinub[] = INCBIN_U32("graphics/object_events/pics/pokemon/swinub.4bpp");
const u32 gObjectEventPic_Piloswine[] = INCBIN_U32("graphics/object_events/pics/pokemon/piloswine.4bpp");
const u32 gObjectEventPic_Corsola[] = INCBIN_U32("graphics/object_events/pics/pokemon/corsola.4bpp");
const u32 gObjectEventPic_Remoraid[] = INCBIN_U32("graphics/object_events/pics/pokemon/remoraid.4bpp");
const u32 gObjectEventPic_Octillery[] = INCBIN_U32("graphics/object_events/pics/pokemon/octillery.4bpp");
const u32 gObjectEventPic_Delibird[] = INCBIN_U32("graphics/object_events/pics/pokemon/delibird.4bpp");
const u32 gObjectEventPic_Mantine[] = INCBIN_U32("graphics/object_events/pics/pokemon/mantine.4bpp");
const u32 gObjectEventPic_Skarmory[] = INCBIN_U32("graphics/object_events/pics/pokemon/skarmory.4bpp");
const u32 gObjectEventPic_Houndour[] = INCBIN_U32("graphics/object_events/pics/pokemon/houndour.4bpp");
const u32 gObjectEventPic_Houndoom[] = INCBIN_U32("graphics/object_events/pics/pokemon/houndoom.4bpp");
const u32 gObjectEventPic_Kingdra[] = INCBIN_U32("graphics/object_events/pics/pokemon/kingdra.4bpp");
const u32 gObjectEventPic_Phanpy[] = INCBIN_U32("graphics/object_events/pics/pokemon/phanpy.4bpp");
const u32 gObjectEventPic_Donphan[] = INCBIN_U32("graphics/object_events/pics/pokemon/donphan.4bpp");
const u32 gObjectEventPic_Porygon2[] = INCBIN_U32("graphics/object_events/pics/pokemon/porygon2.4bpp");
const u32 gObjectEventPic_Stantler[] = INCBIN_U32("graphics/object_events/pics/pokemon/stantler.4bpp");
const u32 gObjectEventPic_Smeargle[] = INCBIN_U32("graphics/object_events/pics/pokemon/smeargle.4bpp");
const u32 gObjectEventPic_Tyrogue[] = INCBIN_U32("graphics/object_events/pics/pokemon/tyrogue.4bpp");
const u32 gObjectEventPic_Hitmontop[] = INCBIN_U32("graphics/object_events/pics/pokemon/hitmontop.4bpp");
const u32 gObjectEventPic_Smoochum[] = INCBIN_U32("graphics/object_events/pics/pokemon/smoochum.4bpp");
const u32 gObjectEventPic_Elekid[] = INCBIN_U32("graphics/object_events/pics/pokemon/elekid.4bpp");
const u32 gObjectEventPic_Magby[] = INCBIN_U32("graphics/object_events/pics/pokemon/magby.4bpp");
const u32 gObjectEventPic_Miltank[] = INCBIN_U32("graphics/object_events/pics/pokemon/miltank.4bpp");
const u32 gObjectEventPic_Blissey[] = INCBIN_U32("graphics/object_events/pics/pokemon/blissey.4bpp");
const u32 gObjectEventPic_Raikou[] = INCBIN_U32("graphics/object_events/pics/pokemon/raikou.4bpp");
const u32 gObjectEventPic_Entei[] = INCBIN_U32("graphics/object_events/pics/pokemon/entei.4bpp");
const u32 gObjectEventPic_Suicune[] = INCBIN_U32("graphics/object_events/pics/pokemon/suicune.4bpp");
const u32 gObjectEventPic_Larvitar[] = INCBIN_U32("graphics/object_events/pics/pokemon/larvitar.4bpp");
const u32 gObjectEventPic_Pupitar[] = INCBIN_U32("graphics/object_events/pics/pokemon/pupitar.4bpp");
const u32 gObjectEventPic_Tyranitar[] = INCBIN_U32("graphics/object_events/pics/pokemon/tyranitar.4bpp");
const u32 gObjectEventPic_Lugia[] = INCBIN_U32("graphics/object_events/pics/pokemon/lugia.4bpp");
const u32 gObjectEventPic_Ho_oh[] = INCBIN_U32("graphics/object_events/pics/pokemon/ho_oh.4bpp");
const u32 gObjectEventPic_Celebi[] = INCBIN_U32("graphics/object_events/pics/pokemon/celebi.4bpp");
const u32 gObjectEventPic_Treecko[] = INCBIN_U32("graphics/object_events/pics/pokemon/treecko.4bpp");
const u32 gObjectEventPic_Grovyle[] = INCBIN_U32("graphics/object_events/pics/pokemon/grovyle.4bpp");
const u32 gObjectEventPic_Sceptile[] = INCBIN_U32("graphics/object_events/pics/pokemon/sceptile.4bpp");
const u32 gObjectEventPic_Torchic[] = INCBIN_U32("graphics/object_events/pics/pokemon/torchic.4bpp");
const u32 gObjectEventPic_Combusken[] = INCBIN_U32("graphics/object_events/pics/pokemon/combusken.4bpp");
const u32 gObjectEventPic_Blaziken[] = INCBIN_U32("graphics/object_events/pics/pokemon/blaziken.4bpp");
const u32 gObjectEventPic_Mudkip[] = INCBIN_U32("graphics/object_events/pics/pokemon/mudkip.4bpp");
const u32 gObjectEventPic_Marshtomp[] = INCBIN_U32("graphics/object_events/pics/pokemon/marshtomp.4bpp");
const u32 gObjectEventPic_Swampert[] = INCBIN_U32("graphics/object_events/pics/pokemon/swampert.4bpp");
const u32 gObjectEventPic_Poochyena[] = INCBIN_U32("graphics/object_events/pics/pokemon/poochyena.4bpp");
const u32 gObjectEventPic_Mightyena[] = INCBIN_U32("graphics/object_events/pics/pokemon/mightyena.4bpp");
const u32 gObjectEventPic_Zigzagoon[] = INCBIN_U32("graphics/object_events/pics/pokemon/zigzagoon.4bpp");
const u32 gObjectEventPic_Linoone[] = INCBIN_U32("graphics/object_events/pics/pokemon/linoone.4bpp");
const u32 gObjectEventPic_Wurmple[] = INCBIN_U32("graphics/object_events/pics/pokemon/wurmple.4bpp");
const u32 gObjectEventPic_Silcoon[] = INCBIN_U32("graphics/object_events/pics/pokemon/silcoon.4bpp");
const u32 gObjectEventPic_Beautifly[] = INCBIN_U32("graphics/object_events/pics/pokemon/beautifly.4bpp");
const u32 gObjectEventPic_Cascoon[] = INCBIN_U32("graphics/object_events/pics/pokemon/cascoon.4bpp");
const u32 gObjectEventPic_Dustox[] = INCBIN_U32("graphics/object_events/pics/pokemon/dustox.4bpp");
const u32 gObjectEventPic_Lotad[] = INCBIN_U32("graphics/object_events/pics/pokemon/lotad.4bpp");
const u32 gObjectEventPic_Lombre[] = INCBIN_U32("graphics/object_events/pics/pokemon/lombre.4bpp");
const u32 gObjectEventPic_Ludicolo[] = INCBIN_U32("graphics/object_events/pics/pokemon/ludicolo.4bpp");
const u32 gObjectEventPic_Seedot[] = INCBIN_U32("graphics/object_events/pics/pokemon/seedot.4bpp");
const u32 gObjectEventPic_Nuzleaf[] = INCBIN_U32("graphics/object_events/pics/pokemon/nuzleaf.4bpp");
const u32 gObjectEventPic_Shiftry[] = INCBIN_U32("graphics/object_events/pics/pokemon/shiftry.4bpp");
const u32 gObjectEventPic_Taillow[] = INCBIN_U32("graphics/object_events/pics/pokemon/taillow.4bpp");
const u32 gObjectEventPic_Swellow[] = INCBIN_U32("graphics/object_events/pics/pokemon/swellow.4bpp");
const u32 gObjectEventPic_Wingull[] = INCBIN_U32("graphics/object_events/pics/pokemon/wingull.4bpp");
const u32 gObjectEventPic_Pelipper[] = INCBIN_U32("graphics/object_events/pics/pokemon/pelipper.4bpp");
const u32 gObjectEventPic_Ralts[] = INCBIN_U32("graphics/object_events/pics/pokemon/ralts.4bpp");
const u32 gObjectEventPic_Kirlia[] = INCBIN_U32("graphics/object_events/pics/pokemon/kirlia.4bpp");
const u32 gObjectEventPic_Gardevoir[] = INCBIN_U32("graphics/object_events/pics/pokemon/gardevoir.4bpp");
const u32 gObjectEventPic_Surskit[] = INCBIN_U32("graphics/object_events/pics/pokemon/surskit.4bpp");
const u32 gObjectEventPic_Masquerain[] = INCBIN_U32("graphics/object_events/pics/pokemon/masquerain.4bpp");
const u32 gObjectEventPic_Shroomish[] = INCBIN_U32("graphics/object_events/pics/pokemon/shroomish.4bpp");
const u32 gObjectEventPic_Breloom[] = INCBIN_U32("graphics/object_events/pics/pokemon/breloom.4bpp");
const u32 gObjectEventPic_Slakoth[] = INCBIN_U32("graphics/object_events/pics/pokemon/slakoth.4bpp");
const u32 gObjectEventPic_Vigoroth[] = INCBIN_U32("graphics/object_events/pics/pokemon/vigoroth.4bpp");
const u32 gObjectEventPic_Slaking[] = INCBIN_U32("graphics/object_events/pics/pokemon/slaking.4bpp");
const u32 gObjectEventPic_Nincada[] = INCBIN_U32("graphics/object_events/pics/pokemon/nincada.4bpp");
const u32 gObjectEventPic_Ninjask[] = INCBIN_U32("graphics/object_events/pics/pokemon/ninjask.4bpp");
const u32 gObjectEventPic_Shedinja[] = INCBIN_U32("graphics/object_events/pics/pokemon/shedinja.4bpp");
const u32 gObjectEventPic_Whismur[] = INCBIN_U32("graphics/object_events/pics/pokemon/whismur.4bpp");
const u32 gObjectEventPic_Loudred[] = INCBIN_U32("graphics/object_events/pics/pokemon/loudred.4bpp");
const u32 gObjectEventPic_Exploud[] = INCBIN_U32("graphics/object_events/pics/pokemon/exploud.4bpp");
const u32 gObjectEventPic_Makuhita[] = INCBIN_U32("graphics/object_events/pics/pokemon/makuhita.4bpp");
const u32 gObjectEventPic_Hariyama[] = INCBIN_U32("graphics/object_events/pics/pokemon/hariyama.4bpp");
const u32 gObjectEventPic_Azurill[] = INCBIN_U32("graphics/object_events/pics/pokemon/azurill.4bpp");
const u32 gObjectEventPic_Nosepass[] = INCBIN_U32("graphics/object_events/pics/pokemon/nosepass.4bpp");
const u32 gObjectEventPic_Skitty[] = INCBIN_U32("graphics/object_events/pics/pokemon/skitty.4bpp");
const u32 gObjectEventPic_Delcatty[] = INCBIN_U32("graphics/object_events/pics/pokemon/delcatty.4bpp");
const u32 gObjectEventPic_Sableye[] = INCBIN_U32("graphics/object_events/pics/pokemon/sableye.4bpp");
const u32 gObjectEventPic_Mawile[] = INCBIN_U32("graphics/object_events/pics/pokemon/mawile.4bpp");
const u32 gObjectEventPic_Aron[] = INCBIN_U32("graphics/object_events/pics/pokemon/aron.4bpp");
const u32 gObjectEventPic_Lairon[] = INCBIN_U32("graphics/object_events/pics/pokemon/lairon.4bpp");
const u32 gObjectEventPic_Aggron[] = INCBIN_U32("graphics/object_events/pics/pokemon/aggron.4bpp");
const u32 gObjectEventPic_Meditite[] = INCBIN_U32("graphics/object_events/pics/pokemon/meditite.4bpp");
const u32 gObjectEventPic_Medicham[] = INCBIN_U32("graphics/object_events/pics/pokemon/medicham.4bpp");
const u32 gObjectEventPic_Electrike[] = INCBIN_U32("graphics/object_events/pics/pokemon/electrike.4bpp");
const u32 gObjectEventPic_Manectric[] = INCBIN_U32("graphics/object_events/pics/pokemon/manectric.4bpp");
const u32 gObjectEventPic_Plusle[] = INCBIN_U32("graphics/object_events/pics/pokemon/plusle.4bpp");
const u32 gObjectEventPic_Minun[] = INCBIN_U32("graphics/object_events/pics/pokemon/minun.4bpp");
const u32 gObjectEventPic_Volbeat[] = INCBIN_U32("graphics/object_events/pics/pokemon/volbeat.4bpp");
const u32 gObjectEventPic_Illumise[] = INCBIN_U32("graphics/object_events/pics/pokemon/illumise.4bpp");
const u32 gObjectEventPic_Roselia[] = INCBIN_U32("graphics/object_events/pics/pokemon/roselia.4bpp");
const u32 gObjectEventPic_Gulpin[] = INCBIN_U32("graphics/object_events/pics/pokemon/gulpin.4bpp");
const u32 gObjectEventPic_Swalot[] = INCBIN_U32("graphics/object_events/pics/pokemon/swalot.4bpp");
const u32 gObjectEventPic_Carvanha[] = INCBIN_U32("graphics/object_events/pics/pokemon/carvanha.4bpp");
const u32 gObjectEventPic_Sharpedo[] = INCBIN_U32("graphics/object_events/pics/pokemon/sharpedo.4bpp");
const u32 gObjectEventPic_Wailmer[] = INCBIN_U32("graphics/object_events/pics/pokemon/wailmer.4bpp");
const u32 gObjectEventPic_Wailord[] = INCBIN_U32("graphics/object_events/pics/pokemon/wailord.4bpp");
const u32 gObjectEventPic_Numel[] = INCBIN_U32("graphics/object_events/pics/pokemon/numel.4bpp");
const u32 gObjectEventPic_Camerupt[] = INCBIN_U32("graphics/object_events/pics/pokemon/camerupt.4bpp");
const u32 gObjectEventPic_Torkoal[] = INCBIN_U32("graphics/object_events/pics/pokemon/torkoal.4bpp");
const u32 gObjectEventPic_Spoink[] = INCBIN_U32("graphics/object_events/pics/pokemon/spoink.4bpp");
const u32 gObjectEventPic_Grumpig[] = INCBIN_U32("graphics/object_events/pics/pokemon/grumpig.4bpp");
const u32 gObjectEventPic_Spinda[] = INCBIN_U32("graphics/object_events/pics/pokemon/spinda.4bpp");
const u32 gObjectEventPic_Trapinch[] = INCBIN_U32("graphics/object_events/pics/pokemon/trapinch.4bpp");
const u32 gObjectEventPic_Vibrava[] = INCBIN_U32("graphics/object_events/pics/pokemon/vibrava.4bpp");
const u32 gObjectEventPic_Flygon[] = INCBIN_U32("graphics/object_events/pics/pokemon/flygon.4bpp");
const u32 gObjectEventPic_Cacnea[] = INCBIN_U32("graphics/object_events/pics/pokemon/cacnea.4bpp");
const u32 gObjectEventPic_Cacturne[] = INCBIN_U32("graphics/object_events/pics/pokemon/cacturne.4bpp");
const u32 gObjectEventPic_Swablu[] = INCBIN_U32("graphics/object_events/pics/pokemon/swablu.4bpp");
const u32 gObjectEventPic_Altaria[] = INCBIN_U32("graphics/object_events/pics/pokemon/altaria.4bpp");
const u32 gObjectEventPic_Zangoose[] = INCBIN_U32("graphics/object_events/pics/pokemon/zangoose.4bpp");
const u32 gObjectEventPic_Seviper[] = INCBIN_U32("graphics/object_events/pics/pokemon/seviper.4bpp");
const u32 gObjectEventPic_Lunatone[] = INCBIN_U32("graphics/object_events/pics/pokemon/lunatone.4bpp");
const u32 gObjectEventPic_Solrock[] = INCBIN_U32("graphics/object_events/pics/pokemon/solrock.4bpp");
const u32 gObjectEventPic_Barboach[] = INCBIN_U32("graphics/object_events/pics/pokemon/barboach.4bpp");
const u32 gObjectEventPic_Whiscash[] = INCBIN_U32("graphics/object_events/pics/pokemon/whiscash.4bpp");
const u32 gObjectEventPic_Corphish[] = INCBIN_U32("graphics/object_events/pics/pokemon/corphish.4bpp");
const u32 gObjectEventPic_Crawdaunt[] = INCBIN_U32("graphics/object_events/pics/pokemon/crawdaunt.4bpp");
const u32 gObjectEventPic_Baltoy[] = INCBIN_U32("graphics/object_events/pics/pokemon/baltoy.4bpp");
const u32 gObjectEventPic_Claydol[] = INCBIN_U32("graphics/object_events/pics/pokemon/claydol.4bpp");
const u32 gObjectEventPic_Lileep[] = INCBIN_U32("graphics/object_events/pics/pokemon/lileep.4bpp");
const u32 gObjectEventPic_Cradily[] = INCBIN_U32("graphics/object_events/pics/pokemon/cradily.4bpp");
const u32 gObjectEventPic_Anorith[] = INCBIN_U32("graphics/object_events/pics/pokemon/anorith.4bpp");
const u32 gObjectEventPic_Armaldo[] = INCBIN_U32("graphics/object_events/pics/pokemon/armaldo.4bpp");
const u32 gObjectEventPic_Feebas[] = INCBIN_U32("graphics/object_events/pics/pokemon/feebas.4bpp");
const u32 gObjectEventPic_Milotic[] = INCBIN_U32("graphics/object_events/pics/pokemon/milotic.4bpp");
const u32 gObjectEventPic_Castform[] = INCBIN_U32("graphics/object_events/pics/pokemon/castform.4bpp");
const u32 gObjectEventPic_CastformSunny[] = INCBIN_U32("graphics/object_events/pics/pokemon/castform_sunny.4bpp");
const u32 gObjectEventPic_CastformRainy[] = INCBIN_U32("graphics/object_events/pics/pokemon/castform_rainy.4bpp");
const u32 gObjectEventPic_CastformSnowy[] = INCBIN_U32("graphics/object_events/pics/pokemon/castform_snowy.4bpp");
const u32 gObjectEventPic_Kecleon[] = INCBIN_U32("graphics/object_events/pics/pokemon/kecleon.4bpp");
const u32 gObjectEventPic_Shuppet[] = INCBIN_U32("graphics/object_events/pics/pokemon/shuppet.4bpp");
const u32 gObjectEventPic_Banette[] = INCBIN_U32("graphics/object_events/pics/pokemon/banette.4bpp");
const u32 gObjectEventPic_Duskull[] = INCBIN_U32("graphics/object_events/pics/pokemon/duskull.4bpp");
const u32 gObjectEventPic_Dusclops[] = INCBIN_U32("graphics/object_events/pics/pokemon/dusclops.4bpp");
const u32 gObjectEventPic_Tropius[] = INCBIN_U32("graphics/object_events/pics/pokemon/tropius.4bpp");
const u32 gObjectEventPic_Chimecho[] = INCBIN_U32("graphics/object_events/pics/pokemon/chimecho.4bpp");
const u32 gObjectEventPic_Absol[] = INCBIN_U32("graphics/object_events/pics/pokemon/absol.4bpp");
const u32 gObjectEventPic_Wynaut[] = INCBIN_U32("graphics/object_events/pics/pokemon/wynaut.4bpp");
const u32 gObjectEventPic_Snorunt[] = INCBIN_U32("graphics/object_events/pics/pokemon/snorunt.4bpp");
const u32 gObjectEventPic_Glalie[] = INCBIN_U32("graphics/object_events/pics/pokemon/glalie.4bpp");
const u32 gObjectEventPic_Spheal[] = INCBIN_U32("graphics/object_events/pics/pokemon/spheal.4bpp");
const u32 gObjectEventPic_Sealeo[] = INCBIN_U32("graphics/object_events/pics/pokemon/sealeo.4bpp");
const u32 gObjectEventPic_Walrein[] = INCBIN_U32("graphics/object_events/pics/pokemon/walrein.4bpp");
const u32 gObjectEventPic_Clamperl[] = INCBIN_U32("graphics/object_events/pics/pokemon/clamperl.4bpp");
const u32 gObjectEventPic_Huntail[] = INCBIN_U32("graphics/object_events/pics/pokemon/huntail.4bpp");
const u32 gObjectEventPic_Gorebyss[] = INCBIN_U32("graphics/object_events/pics/pokemon/gorebyss.4bpp");
const u32 gObjectEventPic_Relicanth[] = INCBIN_U32("graphics/object_events/pics/pokemon/relicanth.4bpp");
const u32 gObjectEventPic_Luvdisc[] = INCBIN_U32("graphics/object_events/pics/pokemon/luvdisc.4bpp");
const u32 gObjectEventPic_Bagon[] = INCBIN_U32("graphics/object_events/pics/pokemon/bagon.4bpp");
const u32 gObjectEventPic_Shelgon[] = INCBIN_U32("graphics/object_events/pics/pokemon/shelgon.4bpp");
const u32 gObjectEventPic_Salamence[] = INCBIN_U32("graphics/object_events/pics/pokemon/salamence.4bpp");
const u32 gObjectEventPic_Beldum[] = INCBIN_U32("graphics/object_events/pics/pokemon/beldum.4bpp");
const u32 gObjectEventPic_Metang[] = INCBIN_U32("graphics/object_events/pics/pokemon/metang.4bpp");
const u32 gObjectEventPic_Metagross[] = INCBIN_U32("graphics/object_events/pics/pokemon/metagross.4bpp");
const u32 gObjectEventPic_Regirock[] = INCBIN_U32("graphics/object_events/pics/pokemon/regirock.4bpp");
const u32 gObjectEventPic_Regice[] = INCBIN_U32("graphics/object_events/pics/pokemon/regice.4bpp");
const u32 gObjectEventPic_Registeel[] = INCBIN_U32("graphics/object_events/pics/pokemon/registeel.4bpp");
const u32 gObjectEventPic_Latias[] = INCBIN_U32("graphics/object_events/pics/pokemon/latias.4bpp");
const u32 gObjectEventPic_Latios[] = INCBIN_U32("graphics/object_events/pics/pokemon/latios.4bpp");
const u32 gObjectEventPic_Kyogre[] = INCBIN_U32("graphics/object_events/pics/pokemon/kyogre.4bpp");
const u32 gObjectEventPic_Groudon[] = INCBIN_U32("graphics/object_events/pics/pokemon/groudon.4bpp");
const u32 gObjectEventPic_Rayquaza[] = INCBIN_U32("graphics/object_events/pics/pokemon/rayquaza.4bpp");
const u32 gObjectEventPic_Jirachi[] = INCBIN_U32("graphics/object_events/pics/pokemon/jirachi.4bpp");
const u32 gObjectEventPic_Deoxys[] = INCBIN_U32("graphics/object_events/pics/pokemon/deoxys.4bpp");
const u32 gObjectEventPic_DeoxysOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/deoxys_old.4bpp");
const u32 gObjectEventPic_MewOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/mew_old.4bpp");
const u32 gObjectEventPic_DusclopsOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/dusclops_old.4bpp");
const u32 gObjectEventPic_KirliaOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/kirlia_old.4bpp");
const u32 gObjectEventPic_AzurillOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/azurill_old.4bpp");
const u32 gObjectEventPic_KecleonOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/kecleon_old.4bpp");
const u32 gObjectEventPic_WingullOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/wingull_old.4bpp");
const u32 gObjectEventPic_AzumarillOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/azumarill_old.4bpp");
const u32 gObjectEventPic_PikachuOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/pikachu_old.4bpp");
const u32 gObjectEventPic_ZigzagoonOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/zigzagoon_old.4bpp");
const u32 gObjectEventPic_SkittyOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/skitty_old.4bpp");
const u32 gObjectEventPic_PoochyenaOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/poochyena_old.4bpp");
const u32 gObjectEventPic_LugiaOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/lugia_old.4bpp");
const u32 gObjectEventPic_HoOhOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/ho_oh_old.4bpp");
const u32 gObjectEventPic_GroudonOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/groudon_old.4bpp");
const u32 gObjectEventPic_KyogreOld[] = INCBIN_U32("graphics/object_events/pics/pokemon/kyogre_old.4bpp");
// Normally, INCBIN_COMP acts like INCBIN_U32, but appends `.lz` to the file, compressing it;
// If not compressing follower gfx, make this an alias to INCBIN_32, so gfx will *not* be compressed
#if !(OW_GFX_COMPRESS)
#define INCBIN_COMP INCBIN_U32
#endif
const u32 gObjectEventPic_VigorothMover[] = INCBIN_U32("graphics/object_events/pics/pokemon/vigoroth_mover.4bpp");
const u32 gObjectEventPic_SudowoodoTree[] = INCBIN_U32("graphics/object_events/pics/pokemon/sudowoodo_tree.4bpp");
const u32 gObjectEventPic_RayquazaCutscene[] = INCBIN_U32("graphics/object_events/pics/pokemon/rayquaza_cutscene.4bpp");
const u32 gObjectEventPic_Bulbasaur[] = INCBIN_COMP("graphics/object_events/pics/pokemon/bulbasaur.4bpp");
const u32 gObjectEventPic_Ivysaur[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ivysaur.4bpp");
const u32 gObjectEventPic_Venusaur[] = INCBIN_COMP("graphics/object_events/pics/pokemon/venusaur.4bpp");
const u32 gObjectEventPic_Charmander[] = INCBIN_COMP("graphics/object_events/pics/pokemon/charmander.4bpp");
const u32 gObjectEventPic_Charmeleon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/charmeleon.4bpp");
const u32 gObjectEventPic_Charizard[] = INCBIN_COMP("graphics/object_events/pics/pokemon/charizard.4bpp");
const u32 gObjectEventPic_Squirtle[] = INCBIN_COMP("graphics/object_events/pics/pokemon/squirtle.4bpp");
const u32 gObjectEventPic_Wartortle[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wartortle.4bpp");
const u32 gObjectEventPic_Blastoise[] = INCBIN_COMP("graphics/object_events/pics/pokemon/blastoise.4bpp");
const u32 gObjectEventPic_Caterpie[] = INCBIN_COMP("graphics/object_events/pics/pokemon/caterpie.4bpp");
const u32 gObjectEventPic_Metapod[] = INCBIN_COMP("graphics/object_events/pics/pokemon/metapod.4bpp");
const u32 gObjectEventPic_Butterfree[] = INCBIN_COMP("graphics/object_events/pics/pokemon/butterfree.4bpp");
const u32 gObjectEventPic_Weedle[] = INCBIN_COMP("graphics/object_events/pics/pokemon/weedle.4bpp");
const u32 gObjectEventPic_Kakuna[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kakuna.4bpp");
const u32 gObjectEventPic_Beedrill[] = INCBIN_COMP("graphics/object_events/pics/pokemon/beedrill.4bpp");
const u32 gObjectEventPic_Pidgey[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pidgey.4bpp");
const u32 gObjectEventPic_Pidgeotto[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pidgeotto.4bpp");
const u32 gObjectEventPic_Pidgeot[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pidgeot.4bpp");
const u32 gObjectEventPic_Rattata[] = INCBIN_COMP("graphics/object_events/pics/pokemon/rattata.4bpp");
const u32 gObjectEventPic_Raticate[] = INCBIN_COMP("graphics/object_events/pics/pokemon/raticate.4bpp");
const u32 gObjectEventPic_Spearow[] = INCBIN_COMP("graphics/object_events/pics/pokemon/spearow.4bpp");
const u32 gObjectEventPic_Fearow[] = INCBIN_COMP("graphics/object_events/pics/pokemon/fearow.4bpp");
const u32 gObjectEventPic_Ekans[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ekans.4bpp");
const u32 gObjectEventPic_Arbok[] = INCBIN_COMP("graphics/object_events/pics/pokemon/arbok.4bpp");
const u32 gObjectEventPic_Pikachu[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pikachu.4bpp");
const u32 gObjectEventPic_Raichu[] = INCBIN_COMP("graphics/object_events/pics/pokemon/raichu.4bpp");
const u32 gObjectEventPic_Sandshrew[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sandshrew.4bpp");
const u32 gObjectEventPic_Sandslash[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sandslash.4bpp");
const u32 gObjectEventPic_Nidoran_f[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nidoran_f.4bpp");
const u32 gObjectEventPic_Nidorina[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nidorina.4bpp");
const u32 gObjectEventPic_Nidoqueen[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nidoqueen.4bpp");
const u32 gObjectEventPic_Nidoran_m[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nidoran_m.4bpp");
const u32 gObjectEventPic_Nidorino[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nidorino.4bpp");
const u32 gObjectEventPic_Nidoking[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nidoking.4bpp");
const u32 gObjectEventPic_Clefairy[] = INCBIN_COMP("graphics/object_events/pics/pokemon/clefairy.4bpp");
const u32 gObjectEventPic_Clefable[] = INCBIN_COMP("graphics/object_events/pics/pokemon/clefable.4bpp");
const u32 gObjectEventPic_Vulpix[] = INCBIN_COMP("graphics/object_events/pics/pokemon/vulpix.4bpp");
const u32 gObjectEventPic_Ninetales[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ninetales.4bpp");
const u32 gObjectEventPic_Jigglypuff[] = INCBIN_COMP("graphics/object_events/pics/pokemon/jigglypuff.4bpp");
const u32 gObjectEventPic_Wigglytuff[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wigglytuff.4bpp");
const u32 gObjectEventPic_Zubat[] = INCBIN_COMP("graphics/object_events/pics/pokemon/zubat.4bpp");
const u32 gObjectEventPic_Golbat[] = INCBIN_COMP("graphics/object_events/pics/pokemon/golbat.4bpp");
const u32 gObjectEventPic_Oddish[] = INCBIN_COMP("graphics/object_events/pics/pokemon/oddish.4bpp");
const u32 gObjectEventPic_Gloom[] = INCBIN_COMP("graphics/object_events/pics/pokemon/gloom.4bpp");
const u32 gObjectEventPic_Vileplume[] = INCBIN_COMP("graphics/object_events/pics/pokemon/vileplume.4bpp");
const u32 gObjectEventPic_Paras[] = INCBIN_COMP("graphics/object_events/pics/pokemon/paras.4bpp");
const u32 gObjectEventPic_Parasect[] = INCBIN_COMP("graphics/object_events/pics/pokemon/parasect.4bpp");
const u32 gObjectEventPic_Venonat[] = INCBIN_COMP("graphics/object_events/pics/pokemon/venonat.4bpp");
const u32 gObjectEventPic_Venomoth[] = INCBIN_COMP("graphics/object_events/pics/pokemon/venomoth.4bpp");
const u32 gObjectEventPic_Diglett[] = INCBIN_COMP("graphics/object_events/pics/pokemon/diglett.4bpp");
const u32 gObjectEventPic_Dugtrio[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dugtrio.4bpp");
const u32 gObjectEventPic_Meowth[] = INCBIN_COMP("graphics/object_events/pics/pokemon/meowth.4bpp");
const u32 gObjectEventPic_Persian[] = INCBIN_COMP("graphics/object_events/pics/pokemon/persian.4bpp");
const u32 gObjectEventPic_Psyduck[] = INCBIN_COMP("graphics/object_events/pics/pokemon/psyduck.4bpp");
const u32 gObjectEventPic_Golduck[] = INCBIN_COMP("graphics/object_events/pics/pokemon/golduck.4bpp");
const u32 gObjectEventPic_Mankey[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mankey.4bpp");
const u32 gObjectEventPic_Primeape[] = INCBIN_COMP("graphics/object_events/pics/pokemon/primeape.4bpp");
const u32 gObjectEventPic_Growlithe[] = INCBIN_COMP("graphics/object_events/pics/pokemon/growlithe.4bpp");
const u32 gObjectEventPic_Arcanine[] = INCBIN_COMP("graphics/object_events/pics/pokemon/arcanine.4bpp");
const u32 gObjectEventPic_Poliwag[] = INCBIN_COMP("graphics/object_events/pics/pokemon/poliwag.4bpp");
const u32 gObjectEventPic_Poliwhirl[] = INCBIN_COMP("graphics/object_events/pics/pokemon/poliwhirl.4bpp");
const u32 gObjectEventPic_Poliwrath[] = INCBIN_COMP("graphics/object_events/pics/pokemon/poliwrath.4bpp");
const u32 gObjectEventPic_Abra[] = INCBIN_COMP("graphics/object_events/pics/pokemon/abra.4bpp");
const u32 gObjectEventPic_Kadabra[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kadabra.4bpp");
const u32 gObjectEventPic_Alakazam[] = INCBIN_COMP("graphics/object_events/pics/pokemon/alakazam.4bpp");
const u32 gObjectEventPic_Machop[] = INCBIN_COMP("graphics/object_events/pics/pokemon/machop.4bpp");
const u32 gObjectEventPic_Machoke[] = INCBIN_COMP("graphics/object_events/pics/pokemon/machoke.4bpp");
const u32 gObjectEventPic_Machamp[] = INCBIN_COMP("graphics/object_events/pics/pokemon/machamp.4bpp");
const u32 gObjectEventPic_Bellsprout[] = INCBIN_COMP("graphics/object_events/pics/pokemon/bellsprout.4bpp");
const u32 gObjectEventPic_Weepinbell[] = INCBIN_COMP("graphics/object_events/pics/pokemon/weepinbell.4bpp");
const u32 gObjectEventPic_Victreebel[] = INCBIN_COMP("graphics/object_events/pics/pokemon/victreebel.4bpp");
const u32 gObjectEventPic_Tentacool[] = INCBIN_COMP("graphics/object_events/pics/pokemon/tentacool.4bpp");
const u32 gObjectEventPic_Tentacruel[] = INCBIN_COMP("graphics/object_events/pics/pokemon/tentacruel.4bpp");
const u32 gObjectEventPic_Geodude[] = INCBIN_COMP("graphics/object_events/pics/pokemon/geodude.4bpp");
const u32 gObjectEventPic_Graveler[] = INCBIN_COMP("graphics/object_events/pics/pokemon/graveler.4bpp");
const u32 gObjectEventPic_Golem[] = INCBIN_COMP("graphics/object_events/pics/pokemon/golem.4bpp");
const u32 gObjectEventPic_Ponyta[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ponyta.4bpp");
const u32 gObjectEventPic_Rapidash[] = INCBIN_COMP("graphics/object_events/pics/pokemon/rapidash.4bpp");
const u32 gObjectEventPic_Slowpoke[] = INCBIN_COMP("graphics/object_events/pics/pokemon/slowpoke.4bpp");
const u32 gObjectEventPic_Slowbro[] = INCBIN_COMP("graphics/object_events/pics/pokemon/slowbro.4bpp");
const u32 gObjectEventPic_Magnemite[] = INCBIN_COMP("graphics/object_events/pics/pokemon/magnemite.4bpp");
const u32 gObjectEventPic_Magneton[] = INCBIN_COMP("graphics/object_events/pics/pokemon/magneton.4bpp");
const u32 gObjectEventPic_Farfetchd[] = INCBIN_COMP("graphics/object_events/pics/pokemon/farfetchd.4bpp");
const u32 gObjectEventPic_Doduo[] = INCBIN_COMP("graphics/object_events/pics/pokemon/doduo.4bpp");
const u32 gObjectEventPic_Dodrio[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dodrio.4bpp");
const u32 gObjectEventPic_Seel[] = INCBIN_COMP("graphics/object_events/pics/pokemon/seel.4bpp");
const u32 gObjectEventPic_Dewgong[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dewgong.4bpp");
const u32 gObjectEventPic_Grimer[] = INCBIN_COMP("graphics/object_events/pics/pokemon/grimer.4bpp");
const u32 gObjectEventPic_Muk[] = INCBIN_COMP("graphics/object_events/pics/pokemon/muk.4bpp");
const u32 gObjectEventPic_Shellder[] = INCBIN_COMP("graphics/object_events/pics/pokemon/shellder.4bpp");
const u32 gObjectEventPic_Cloyster[] = INCBIN_COMP("graphics/object_events/pics/pokemon/cloyster.4bpp");
const u32 gObjectEventPic_Gastly[] = INCBIN_COMP("graphics/object_events/pics/pokemon/gastly.4bpp");
const u32 gObjectEventPic_Haunter[] = INCBIN_COMP("graphics/object_events/pics/pokemon/haunter.4bpp");
const u32 gObjectEventPic_Gengar[] = INCBIN_COMP("graphics/object_events/pics/pokemon/gengar.4bpp");
const u32 gObjectEventPic_Onix[] = INCBIN_COMP("graphics/object_events/pics/pokemon/onix.4bpp");
const u32 gObjectEventPic_Drowzee[] = INCBIN_COMP("graphics/object_events/pics/pokemon/drowzee.4bpp");
const u32 gObjectEventPic_Hypno[] = INCBIN_COMP("graphics/object_events/pics/pokemon/hypno.4bpp");
const u32 gObjectEventPic_Krabby[] = INCBIN_COMP("graphics/object_events/pics/pokemon/krabby.4bpp");
const u32 gObjectEventPic_Kingler[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kingler.4bpp");
const u32 gObjectEventPic_Voltorb[] = INCBIN_COMP("graphics/object_events/pics/pokemon/voltorb.4bpp");
const u32 gObjectEventPic_Electrode[] = INCBIN_COMP("graphics/object_events/pics/pokemon/electrode.4bpp");
const u32 gObjectEventPic_Exeggcute[] = INCBIN_COMP("graphics/object_events/pics/pokemon/exeggcute.4bpp");
const u32 gObjectEventPic_Exeggutor[] = INCBIN_COMP("graphics/object_events/pics/pokemon/exeggutor.4bpp");
const u32 gObjectEventPic_Cubone[] = INCBIN_COMP("graphics/object_events/pics/pokemon/cubone.4bpp");
const u32 gObjectEventPic_Marowak[] = INCBIN_COMP("graphics/object_events/pics/pokemon/marowak.4bpp");
const u32 gObjectEventPic_Hitmonlee[] = INCBIN_COMP("graphics/object_events/pics/pokemon/hitmonlee.4bpp");
const u32 gObjectEventPic_Hitmonchan[] = INCBIN_COMP("graphics/object_events/pics/pokemon/hitmonchan.4bpp");
const u32 gObjectEventPic_Lickitung[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lickitung.4bpp");
const u32 gObjectEventPic_Koffing[] = INCBIN_COMP("graphics/object_events/pics/pokemon/koffing.4bpp");
const u32 gObjectEventPic_Weezing[] = INCBIN_COMP("graphics/object_events/pics/pokemon/weezing.4bpp");
const u32 gObjectEventPic_Rhyhorn[] = INCBIN_COMP("graphics/object_events/pics/pokemon/rhyhorn.4bpp");
const u32 gObjectEventPic_Rhydon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/rhydon.4bpp");
const u32 gObjectEventPic_Chansey[] = INCBIN_COMP("graphics/object_events/pics/pokemon/chansey.4bpp");
const u32 gObjectEventPic_Tangela[] = INCBIN_COMP("graphics/object_events/pics/pokemon/tangela.4bpp");
const u32 gObjectEventPic_Kangaskhan[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kangaskhan.4bpp");
const u32 gObjectEventPic_Horsea[] = INCBIN_COMP("graphics/object_events/pics/pokemon/horsea.4bpp");
const u32 gObjectEventPic_Seadra[] = INCBIN_COMP("graphics/object_events/pics/pokemon/seadra.4bpp");
const u32 gObjectEventPic_Goldeen[] = INCBIN_COMP("graphics/object_events/pics/pokemon/goldeen.4bpp");
const u32 gObjectEventPic_Seaking[] = INCBIN_COMP("graphics/object_events/pics/pokemon/seaking.4bpp");
const u32 gObjectEventPic_Staryu[] = INCBIN_COMP("graphics/object_events/pics/pokemon/staryu.4bpp");
const u32 gObjectEventPic_Starmie[] = INCBIN_COMP("graphics/object_events/pics/pokemon/starmie.4bpp");
const u32 gObjectEventPic_Mr_Mime[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mr_mime.4bpp");
const u32 gObjectEventPic_Scyther[] = INCBIN_COMP("graphics/object_events/pics/pokemon/scyther.4bpp");
const u32 gObjectEventPic_Jynx[] = INCBIN_COMP("graphics/object_events/pics/pokemon/jynx.4bpp");
const u32 gObjectEventPic_Electabuzz[] = INCBIN_COMP("graphics/object_events/pics/pokemon/electabuzz.4bpp");
const u32 gObjectEventPic_Magmar[] = INCBIN_COMP("graphics/object_events/pics/pokemon/magmar.4bpp");
const u32 gObjectEventPic_Pinsir[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pinsir.4bpp");
const u32 gObjectEventPic_Tauros[] = INCBIN_COMP("graphics/object_events/pics/pokemon/tauros.4bpp");
const u32 gObjectEventPic_Magikarp[] = INCBIN_COMP("graphics/object_events/pics/pokemon/magikarp.4bpp");
const u32 gObjectEventPic_Gyarados[] = INCBIN_COMP("graphics/object_events/pics/pokemon/gyarados.4bpp");
const u32 gObjectEventPic_Lapras[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lapras.4bpp");
const u32 gObjectEventPic_Ditto[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ditto.4bpp");
const u32 gObjectEventPic_Eevee[] = INCBIN_COMP("graphics/object_events/pics/pokemon/eevee.4bpp");
const u32 gObjectEventPic_Vaporeon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/vaporeon.4bpp");
const u32 gObjectEventPic_Jolteon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/jolteon.4bpp");
const u32 gObjectEventPic_Flareon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/flareon.4bpp");
const u32 gObjectEventPic_Porygon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/porygon.4bpp");
const u32 gObjectEventPic_Omanyte[] = INCBIN_COMP("graphics/object_events/pics/pokemon/omanyte.4bpp");
const u32 gObjectEventPic_Omastar[] = INCBIN_COMP("graphics/object_events/pics/pokemon/omastar.4bpp");
const u32 gObjectEventPic_Kabuto[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kabuto.4bpp");
const u32 gObjectEventPic_Kabutops[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kabutops.4bpp");
const u32 gObjectEventPic_Aerodactyl[] = INCBIN_COMP("graphics/object_events/pics/pokemon/aerodactyl.4bpp");
const u32 gObjectEventPic_Snorlax[] = INCBIN_COMP("graphics/object_events/pics/pokemon/snorlax.4bpp");
const u32 gObjectEventPic_Articuno[] = INCBIN_COMP("graphics/object_events/pics/pokemon/articuno.4bpp");
const u32 gObjectEventPic_Zapdos[] = INCBIN_COMP("graphics/object_events/pics/pokemon/zapdos.4bpp");
const u32 gObjectEventPic_Moltres[] = INCBIN_COMP("graphics/object_events/pics/pokemon/moltres.4bpp");
const u32 gObjectEventPic_Dratini[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dratini.4bpp");
const u32 gObjectEventPic_Dragonair[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dragonair.4bpp");
const u32 gObjectEventPic_Dragonite[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dragonite.4bpp");
const u32 gObjectEventPic_Mewtwo[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mewtwo.4bpp");
const u32 gObjectEventPic_Mew[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mew.4bpp");
const u32 gObjectEventPic_Chikorita[] = INCBIN_COMP("graphics/object_events/pics/pokemon/chikorita.4bpp");
const u32 gObjectEventPic_Bayleef[] = INCBIN_COMP("graphics/object_events/pics/pokemon/bayleef.4bpp");
const u32 gObjectEventPic_Meganium[] = INCBIN_COMP("graphics/object_events/pics/pokemon/meganium.4bpp");
const u32 gObjectEventPic_Cyndaquil[] = INCBIN_COMP("graphics/object_events/pics/pokemon/cyndaquil.4bpp");
const u32 gObjectEventPic_Quilava[] = INCBIN_COMP("graphics/object_events/pics/pokemon/quilava.4bpp");
const u32 gObjectEventPic_Typhlosion[] = INCBIN_COMP("graphics/object_events/pics/pokemon/typhlosion.4bpp");
const u32 gObjectEventPic_Totodile[] = INCBIN_COMP("graphics/object_events/pics/pokemon/totodile.4bpp");
const u32 gObjectEventPic_Croconaw[] = INCBIN_COMP("graphics/object_events/pics/pokemon/croconaw.4bpp");
const u32 gObjectEventPic_Feraligatr[] = INCBIN_COMP("graphics/object_events/pics/pokemon/feraligatr.4bpp");
const u32 gObjectEventPic_Sentret[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sentret.4bpp");
const u32 gObjectEventPic_Furret[] = INCBIN_COMP("graphics/object_events/pics/pokemon/furret.4bpp");
const u32 gObjectEventPic_Hoothoot[] = INCBIN_COMP("graphics/object_events/pics/pokemon/hoothoot.4bpp");
const u32 gObjectEventPic_Noctowl[] = INCBIN_COMP("graphics/object_events/pics/pokemon/noctowl.4bpp");
const u32 gObjectEventPic_Ledyba[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ledyba.4bpp");
const u32 gObjectEventPic_Ledian[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ledian.4bpp");
const u32 gObjectEventPic_Spinarak[] = INCBIN_COMP("graphics/object_events/pics/pokemon/spinarak.4bpp");
const u32 gObjectEventPic_Ariados[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ariados.4bpp");
const u32 gObjectEventPic_Crobat[] = INCBIN_COMP("graphics/object_events/pics/pokemon/crobat.4bpp");
const u32 gObjectEventPic_Chinchou[] = INCBIN_COMP("graphics/object_events/pics/pokemon/chinchou.4bpp");
const u32 gObjectEventPic_Lanturn[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lanturn.4bpp");
const u32 gObjectEventPic_Pichu[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pichu.4bpp");
const u32 gObjectEventPic_Cleffa[] = INCBIN_COMP("graphics/object_events/pics/pokemon/cleffa.4bpp");
const u32 gObjectEventPic_Igglybuff[] = INCBIN_COMP("graphics/object_events/pics/pokemon/igglybuff.4bpp");
const u32 gObjectEventPic_Togepi[] = INCBIN_COMP("graphics/object_events/pics/pokemon/togepi.4bpp");
const u32 gObjectEventPic_Togetic[] = INCBIN_COMP("graphics/object_events/pics/pokemon/togetic.4bpp");
const u32 gObjectEventPic_Natu[] = INCBIN_COMP("graphics/object_events/pics/pokemon/natu.4bpp");
const u32 gObjectEventPic_Xatu[] = INCBIN_COMP("graphics/object_events/pics/pokemon/xatu.4bpp");
const u32 gObjectEventPic_Mareep[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mareep.4bpp");
const u32 gObjectEventPic_Flaaffy[] = INCBIN_COMP("graphics/object_events/pics/pokemon/flaaffy.4bpp");
const u32 gObjectEventPic_Ampharos[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ampharos.4bpp");
const u32 gObjectEventPic_Bellossom[] = INCBIN_COMP("graphics/object_events/pics/pokemon/bellossom.4bpp");
const u32 gObjectEventPic_Marill[] = INCBIN_COMP("graphics/object_events/pics/pokemon/marill.4bpp");
const u32 gObjectEventPic_Azumarill[] = INCBIN_COMP("graphics/object_events/pics/pokemon/azumarill.4bpp");
const u32 gObjectEventPic_Sudowoodo[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sudowoodo.4bpp");
const u32 gObjectEventPic_Politoed[] = INCBIN_COMP("graphics/object_events/pics/pokemon/politoed.4bpp");
const u32 gObjectEventPic_Hoppip[] = INCBIN_COMP("graphics/object_events/pics/pokemon/hoppip.4bpp");
const u32 gObjectEventPic_Skiploom[] = INCBIN_COMP("graphics/object_events/pics/pokemon/skiploom.4bpp");
const u32 gObjectEventPic_Jumpluff[] = INCBIN_COMP("graphics/object_events/pics/pokemon/jumpluff.4bpp");
const u32 gObjectEventPic_Aipom[] = INCBIN_COMP("graphics/object_events/pics/pokemon/aipom.4bpp");
const u32 gObjectEventPic_Sunkern[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sunkern.4bpp");
const u32 gObjectEventPic_Sunflora[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sunflora.4bpp");
const u32 gObjectEventPic_Yanma[] = INCBIN_COMP("graphics/object_events/pics/pokemon/yanma.4bpp");
const u32 gObjectEventPic_Wooper[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wooper.4bpp");
const u32 gObjectEventPic_Quagsire[] = INCBIN_COMP("graphics/object_events/pics/pokemon/quagsire.4bpp");
const u32 gObjectEventPic_Espeon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/espeon.4bpp");
const u32 gObjectEventPic_Umbreon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/umbreon.4bpp");
const u32 gObjectEventPic_Murkrow[] = INCBIN_COMP("graphics/object_events/pics/pokemon/murkrow.4bpp");
const u32 gObjectEventPic_Slowking[] = INCBIN_COMP("graphics/object_events/pics/pokemon/slowking.4bpp");
const u32 gObjectEventPic_Misdreavus[] = INCBIN_COMP("graphics/object_events/pics/pokemon/misdreavus.4bpp");
const u32 gObjectEventPic_Unown_A[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_a.4bpp");
const u32 gObjectEventPic_Unown_B[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_b.4bpp");
const u32 gObjectEventPic_Unown_C[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_c.4bpp");
const u32 gObjectEventPic_Unown_D[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_d.4bpp");
const u32 gObjectEventPic_Unown_E[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_e.4bpp");
const u32 gObjectEventPic_Unown_F[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_f.4bpp");
const u32 gObjectEventPic_Unown_G[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_g.4bpp");
const u32 gObjectEventPic_Unown_H[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_h.4bpp");
const u32 gObjectEventPic_Unown_I[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_i.4bpp");
const u32 gObjectEventPic_Unown_J[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_j.4bpp");
const u32 gObjectEventPic_Unown_K[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_k.4bpp");
const u32 gObjectEventPic_Unown_L[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_l.4bpp");
const u32 gObjectEventPic_Unown_M[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_m.4bpp");
const u32 gObjectEventPic_Unown_N[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_n.4bpp");
const u32 gObjectEventPic_Unown_O[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_o.4bpp");
const u32 gObjectEventPic_Unown_P[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_p.4bpp");
const u32 gObjectEventPic_Unown_Q[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_q.4bpp");
const u32 gObjectEventPic_Unown_R[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_r.4bpp");
const u32 gObjectEventPic_Unown_S[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_s.4bpp");
const u32 gObjectEventPic_Unown_T[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_t.4bpp");
const u32 gObjectEventPic_Unown_U[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_u.4bpp");
const u32 gObjectEventPic_Unown_V[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_v.4bpp");
const u32 gObjectEventPic_Unown_W[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_w.4bpp");
const u32 gObjectEventPic_Unown_X[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_x.4bpp");
const u32 gObjectEventPic_Unown_Y[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_y.4bpp");
const u32 gObjectEventPic_Unown_Z[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_z.4bpp");
const u32 gObjectEventPic_Unown_Exclamation[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_exclamation.4bpp");
const u32 gObjectEventPic_Unown_Question[] = INCBIN_COMP("graphics/object_events/pics/pokemon/unown_question.4bpp");
const u32 gObjectEventPic_Wobbuffet[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wobbuffet.4bpp");
const u32 gObjectEventPic_Girafarig[] = INCBIN_COMP("graphics/object_events/pics/pokemon/girafarig.4bpp");
const u32 gObjectEventPic_Pineco[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pineco.4bpp");
const u32 gObjectEventPic_Forretress[] = INCBIN_COMP("graphics/object_events/pics/pokemon/forretress.4bpp");
const u32 gObjectEventPic_Dunsparce[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dunsparce.4bpp");
const u32 gObjectEventPic_Gligar[] = INCBIN_COMP("graphics/object_events/pics/pokemon/gligar.4bpp");
const u32 gObjectEventPic_Steelix[] = INCBIN_COMP("graphics/object_events/pics/pokemon/steelix.4bpp");
const u32 gObjectEventPic_Snubbull[] = INCBIN_COMP("graphics/object_events/pics/pokemon/snubbull.4bpp");
const u32 gObjectEventPic_Granbull[] = INCBIN_COMP("graphics/object_events/pics/pokemon/granbull.4bpp");
const u32 gObjectEventPic_Qwilfish[] = INCBIN_COMP("graphics/object_events/pics/pokemon/qwilfish.4bpp");
const u32 gObjectEventPic_Scizor[] = INCBIN_COMP("graphics/object_events/pics/pokemon/scizor.4bpp");
const u32 gObjectEventPic_Shuckle[] = INCBIN_COMP("graphics/object_events/pics/pokemon/shuckle.4bpp");
const u32 gObjectEventPic_Heracross[] = INCBIN_COMP("graphics/object_events/pics/pokemon/heracross.4bpp");
const u32 gObjectEventPic_Sneasel[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sneasel.4bpp");
const u32 gObjectEventPic_Teddiursa[] = INCBIN_COMP("graphics/object_events/pics/pokemon/teddiursa.4bpp");
const u32 gObjectEventPic_Ursaring[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ursaring.4bpp");
const u32 gObjectEventPic_Slugma[] = INCBIN_COMP("graphics/object_events/pics/pokemon/slugma.4bpp");
const u32 gObjectEventPic_Magcargo[] = INCBIN_COMP("graphics/object_events/pics/pokemon/magcargo.4bpp");
const u32 gObjectEventPic_Swinub[] = INCBIN_COMP("graphics/object_events/pics/pokemon/swinub.4bpp");
const u32 gObjectEventPic_Piloswine[] = INCBIN_COMP("graphics/object_events/pics/pokemon/piloswine.4bpp");
const u32 gObjectEventPic_Corsola[] = INCBIN_COMP("graphics/object_events/pics/pokemon/corsola.4bpp");
const u32 gObjectEventPic_Remoraid[] = INCBIN_COMP("graphics/object_events/pics/pokemon/remoraid.4bpp");
const u32 gObjectEventPic_Octillery[] = INCBIN_COMP("graphics/object_events/pics/pokemon/octillery.4bpp");
const u32 gObjectEventPic_Delibird[] = INCBIN_COMP("graphics/object_events/pics/pokemon/delibird.4bpp");
const u32 gObjectEventPic_Mantine[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mantine.4bpp");
const u32 gObjectEventPic_Skarmory[] = INCBIN_COMP("graphics/object_events/pics/pokemon/skarmory.4bpp");
const u32 gObjectEventPic_Houndour[] = INCBIN_COMP("graphics/object_events/pics/pokemon/houndour.4bpp");
const u32 gObjectEventPic_Houndoom[] = INCBIN_COMP("graphics/object_events/pics/pokemon/houndoom.4bpp");
const u32 gObjectEventPic_Kingdra[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kingdra.4bpp");
const u32 gObjectEventPic_Phanpy[] = INCBIN_COMP("graphics/object_events/pics/pokemon/phanpy.4bpp");
const u32 gObjectEventPic_Donphan[] = INCBIN_COMP("graphics/object_events/pics/pokemon/donphan.4bpp");
const u32 gObjectEventPic_Porygon2[] = INCBIN_COMP("graphics/object_events/pics/pokemon/porygon2.4bpp");
const u32 gObjectEventPic_Stantler[] = INCBIN_COMP("graphics/object_events/pics/pokemon/stantler.4bpp");
const u32 gObjectEventPic_Smeargle[] = INCBIN_COMP("graphics/object_events/pics/pokemon/smeargle.4bpp");
const u32 gObjectEventPic_Tyrogue[] = INCBIN_COMP("graphics/object_events/pics/pokemon/tyrogue.4bpp");
const u32 gObjectEventPic_Hitmontop[] = INCBIN_COMP("graphics/object_events/pics/pokemon/hitmontop.4bpp");
const u32 gObjectEventPic_Smoochum[] = INCBIN_COMP("graphics/object_events/pics/pokemon/smoochum.4bpp");
const u32 gObjectEventPic_Elekid[] = INCBIN_COMP("graphics/object_events/pics/pokemon/elekid.4bpp");
const u32 gObjectEventPic_Magby[] = INCBIN_COMP("graphics/object_events/pics/pokemon/magby.4bpp");
const u32 gObjectEventPic_Miltank[] = INCBIN_COMP("graphics/object_events/pics/pokemon/miltank.4bpp");
const u32 gObjectEventPic_Blissey[] = INCBIN_COMP("graphics/object_events/pics/pokemon/blissey.4bpp");
const u32 gObjectEventPic_Raikou[] = INCBIN_COMP("graphics/object_events/pics/pokemon/raikou.4bpp");
const u32 gObjectEventPic_Entei[] = INCBIN_COMP("graphics/object_events/pics/pokemon/entei.4bpp");
const u32 gObjectEventPic_Suicune[] = INCBIN_COMP("graphics/object_events/pics/pokemon/suicune.4bpp");
const u32 gObjectEventPic_Larvitar[] = INCBIN_COMP("graphics/object_events/pics/pokemon/larvitar.4bpp");
const u32 gObjectEventPic_Pupitar[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pupitar.4bpp");
const u32 gObjectEventPic_Tyranitar[] = INCBIN_COMP("graphics/object_events/pics/pokemon/tyranitar.4bpp");
const u32 gObjectEventPic_Lugia[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lugia.4bpp");
const u32 gObjectEventPic_Ho_oh[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ho_oh.4bpp");
const u32 gObjectEventPic_Celebi[] = INCBIN_COMP("graphics/object_events/pics/pokemon/celebi.4bpp");
const u32 gObjectEventPic_Treecko[] = INCBIN_COMP("graphics/object_events/pics/pokemon/treecko.4bpp");
const u32 gObjectEventPic_Grovyle[] = INCBIN_COMP("graphics/object_events/pics/pokemon/grovyle.4bpp");
const u32 gObjectEventPic_Sceptile[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sceptile.4bpp");
const u32 gObjectEventPic_Torchic[] = INCBIN_COMP("graphics/object_events/pics/pokemon/torchic.4bpp");
const u32 gObjectEventPic_Combusken[] = INCBIN_COMP("graphics/object_events/pics/pokemon/combusken.4bpp");
const u32 gObjectEventPic_Blaziken[] = INCBIN_COMP("graphics/object_events/pics/pokemon/blaziken.4bpp");
const u32 gObjectEventPic_Mudkip[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mudkip.4bpp");
const u32 gObjectEventPic_Marshtomp[] = INCBIN_COMP("graphics/object_events/pics/pokemon/marshtomp.4bpp");
const u32 gObjectEventPic_Swampert[] = INCBIN_COMP("graphics/object_events/pics/pokemon/swampert.4bpp");
const u32 gObjectEventPic_Poochyena[] = INCBIN_COMP("graphics/object_events/pics/pokemon/poochyena.4bpp");
const u32 gObjectEventPic_Mightyena[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mightyena.4bpp");
const u32 gObjectEventPic_Zigzagoon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/zigzagoon.4bpp");
const u32 gObjectEventPic_Linoone[] = INCBIN_COMP("graphics/object_events/pics/pokemon/linoone.4bpp");
const u32 gObjectEventPic_Wurmple[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wurmple.4bpp");
const u32 gObjectEventPic_Silcoon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/silcoon.4bpp");
const u32 gObjectEventPic_Beautifly[] = INCBIN_COMP("graphics/object_events/pics/pokemon/beautifly.4bpp");
const u32 gObjectEventPic_Cascoon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/cascoon.4bpp");
const u32 gObjectEventPic_Dustox[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dustox.4bpp");
const u32 gObjectEventPic_Lotad[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lotad.4bpp");
const u32 gObjectEventPic_Lombre[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lombre.4bpp");
const u32 gObjectEventPic_Ludicolo[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ludicolo.4bpp");
const u32 gObjectEventPic_Seedot[] = INCBIN_COMP("graphics/object_events/pics/pokemon/seedot.4bpp");
const u32 gObjectEventPic_Nuzleaf[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nuzleaf.4bpp");
const u32 gObjectEventPic_Shiftry[] = INCBIN_COMP("graphics/object_events/pics/pokemon/shiftry.4bpp");
const u32 gObjectEventPic_Taillow[] = INCBIN_COMP("graphics/object_events/pics/pokemon/taillow.4bpp");
const u32 gObjectEventPic_Swellow[] = INCBIN_COMP("graphics/object_events/pics/pokemon/swellow.4bpp");
const u32 gObjectEventPic_Wingull[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wingull.4bpp");
const u32 gObjectEventPic_Pelipper[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pelipper.4bpp");
const u32 gObjectEventPic_Ralts[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ralts.4bpp");
const u32 gObjectEventPic_Kirlia[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kirlia.4bpp");
const u32 gObjectEventPic_Gardevoir[] = INCBIN_COMP("graphics/object_events/pics/pokemon/gardevoir.4bpp");
const u32 gObjectEventPic_Surskit[] = INCBIN_COMP("graphics/object_events/pics/pokemon/surskit.4bpp");
const u32 gObjectEventPic_Masquerain[] = INCBIN_COMP("graphics/object_events/pics/pokemon/masquerain.4bpp");
const u32 gObjectEventPic_Shroomish[] = INCBIN_COMP("graphics/object_events/pics/pokemon/shroomish.4bpp");
const u32 gObjectEventPic_Breloom[] = INCBIN_COMP("graphics/object_events/pics/pokemon/breloom.4bpp");
const u32 gObjectEventPic_Slakoth[] = INCBIN_COMP("graphics/object_events/pics/pokemon/slakoth.4bpp");
const u32 gObjectEventPic_Vigoroth[] = INCBIN_COMP("graphics/object_events/pics/pokemon/vigoroth.4bpp");
const u32 gObjectEventPic_Slaking[] = INCBIN_COMP("graphics/object_events/pics/pokemon/slaking.4bpp");
const u32 gObjectEventPic_Nincada[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nincada.4bpp");
const u32 gObjectEventPic_Ninjask[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ninjask.4bpp");
const u32 gObjectEventPic_Shedinja[] = INCBIN_COMP("graphics/object_events/pics/pokemon/shedinja.4bpp");
const u32 gObjectEventPic_Whismur[] = INCBIN_COMP("graphics/object_events/pics/pokemon/whismur.4bpp");
const u32 gObjectEventPic_Loudred[] = INCBIN_COMP("graphics/object_events/pics/pokemon/loudred.4bpp");
const u32 gObjectEventPic_Exploud[] = INCBIN_COMP("graphics/object_events/pics/pokemon/exploud.4bpp");
const u32 gObjectEventPic_Makuhita[] = INCBIN_COMP("graphics/object_events/pics/pokemon/makuhita.4bpp");
const u32 gObjectEventPic_Hariyama[] = INCBIN_COMP("graphics/object_events/pics/pokemon/hariyama.4bpp");
const u32 gObjectEventPic_Azurill[] = INCBIN_COMP("graphics/object_events/pics/pokemon/azurill.4bpp");
const u32 gObjectEventPic_Nosepass[] = INCBIN_COMP("graphics/object_events/pics/pokemon/nosepass.4bpp");
const u32 gObjectEventPic_Skitty[] = INCBIN_COMP("graphics/object_events/pics/pokemon/skitty.4bpp");
const u32 gObjectEventPic_Delcatty[] = INCBIN_COMP("graphics/object_events/pics/pokemon/delcatty.4bpp");
const u32 gObjectEventPic_Sableye[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sableye.4bpp");
const u32 gObjectEventPic_Mawile[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mawile.4bpp");
const u32 gObjectEventPic_Aron[] = INCBIN_COMP("graphics/object_events/pics/pokemon/aron.4bpp");
const u32 gObjectEventPic_Lairon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lairon.4bpp");
const u32 gObjectEventPic_Aggron[] = INCBIN_COMP("graphics/object_events/pics/pokemon/aggron.4bpp");
const u32 gObjectEventPic_Meditite[] = INCBIN_COMP("graphics/object_events/pics/pokemon/meditite.4bpp");
const u32 gObjectEventPic_Medicham[] = INCBIN_COMP("graphics/object_events/pics/pokemon/medicham.4bpp");
const u32 gObjectEventPic_Electrike[] = INCBIN_COMP("graphics/object_events/pics/pokemon/electrike.4bpp");
const u32 gObjectEventPic_Manectric[] = INCBIN_COMP("graphics/object_events/pics/pokemon/manectric.4bpp");
const u32 gObjectEventPic_Plusle[] = INCBIN_COMP("graphics/object_events/pics/pokemon/plusle.4bpp");
const u32 gObjectEventPic_Minun[] = INCBIN_COMP("graphics/object_events/pics/pokemon/minun.4bpp");
const u32 gObjectEventPic_Volbeat[] = INCBIN_COMP("graphics/object_events/pics/pokemon/volbeat.4bpp");
const u32 gObjectEventPic_Illumise[] = INCBIN_COMP("graphics/object_events/pics/pokemon/illumise.4bpp");
const u32 gObjectEventPic_Roselia[] = INCBIN_COMP("graphics/object_events/pics/pokemon/roselia.4bpp");
const u32 gObjectEventPic_Gulpin[] = INCBIN_COMP("graphics/object_events/pics/pokemon/gulpin.4bpp");
const u32 gObjectEventPic_Swalot[] = INCBIN_COMP("graphics/object_events/pics/pokemon/swalot.4bpp");
const u32 gObjectEventPic_Carvanha[] = INCBIN_COMP("graphics/object_events/pics/pokemon/carvanha.4bpp");
const u32 gObjectEventPic_Sharpedo[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sharpedo.4bpp");
const u32 gObjectEventPic_Wailmer[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wailmer.4bpp");
const u32 gObjectEventPic_Wailord[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wailord.4bpp");
const u32 gObjectEventPic_Numel[] = INCBIN_COMP("graphics/object_events/pics/pokemon/numel.4bpp");
const u32 gObjectEventPic_Camerupt[] = INCBIN_COMP("graphics/object_events/pics/pokemon/camerupt.4bpp");
const u32 gObjectEventPic_Torkoal[] = INCBIN_COMP("graphics/object_events/pics/pokemon/torkoal.4bpp");
const u32 gObjectEventPic_Spoink[] = INCBIN_COMP("graphics/object_events/pics/pokemon/spoink.4bpp");
const u32 gObjectEventPic_Grumpig[] = INCBIN_COMP("graphics/object_events/pics/pokemon/grumpig.4bpp");
const u32 gObjectEventPic_Spinda[] = INCBIN_COMP("graphics/object_events/pics/pokemon/spinda.4bpp");
const u32 gObjectEventPic_Trapinch[] = INCBIN_COMP("graphics/object_events/pics/pokemon/trapinch.4bpp");
const u32 gObjectEventPic_Vibrava[] = INCBIN_COMP("graphics/object_events/pics/pokemon/vibrava.4bpp");
const u32 gObjectEventPic_Flygon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/flygon.4bpp");
const u32 gObjectEventPic_Cacnea[] = INCBIN_COMP("graphics/object_events/pics/pokemon/cacnea.4bpp");
const u32 gObjectEventPic_Cacturne[] = INCBIN_COMP("graphics/object_events/pics/pokemon/cacturne.4bpp");
const u32 gObjectEventPic_Swablu[] = INCBIN_COMP("graphics/object_events/pics/pokemon/swablu.4bpp");
const u32 gObjectEventPic_Altaria[] = INCBIN_COMP("graphics/object_events/pics/pokemon/altaria.4bpp");
const u32 gObjectEventPic_Zangoose[] = INCBIN_COMP("graphics/object_events/pics/pokemon/zangoose.4bpp");
const u32 gObjectEventPic_Seviper[] = INCBIN_COMP("graphics/object_events/pics/pokemon/seviper.4bpp");
const u32 gObjectEventPic_Lunatone[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lunatone.4bpp");
const u32 gObjectEventPic_Solrock[] = INCBIN_COMP("graphics/object_events/pics/pokemon/solrock.4bpp");
const u32 gObjectEventPic_Barboach[] = INCBIN_COMP("graphics/object_events/pics/pokemon/barboach.4bpp");
const u32 gObjectEventPic_Whiscash[] = INCBIN_COMP("graphics/object_events/pics/pokemon/whiscash.4bpp");
const u32 gObjectEventPic_Corphish[] = INCBIN_COMP("graphics/object_events/pics/pokemon/corphish.4bpp");
const u32 gObjectEventPic_Crawdaunt[] = INCBIN_COMP("graphics/object_events/pics/pokemon/crawdaunt.4bpp");
const u32 gObjectEventPic_Baltoy[] = INCBIN_COMP("graphics/object_events/pics/pokemon/baltoy.4bpp");
const u32 gObjectEventPic_Claydol[] = INCBIN_COMP("graphics/object_events/pics/pokemon/claydol.4bpp");
const u32 gObjectEventPic_Lileep[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lileep.4bpp");
const u32 gObjectEventPic_Cradily[] = INCBIN_COMP("graphics/object_events/pics/pokemon/cradily.4bpp");
const u32 gObjectEventPic_Anorith[] = INCBIN_COMP("graphics/object_events/pics/pokemon/anorith.4bpp");
const u32 gObjectEventPic_Armaldo[] = INCBIN_COMP("graphics/object_events/pics/pokemon/armaldo.4bpp");
const u32 gObjectEventPic_Feebas[] = INCBIN_COMP("graphics/object_events/pics/pokemon/feebas.4bpp");
const u32 gObjectEventPic_Milotic[] = INCBIN_COMP("graphics/object_events/pics/pokemon/milotic.4bpp");
const u32 gObjectEventPic_Castform[] = INCBIN_COMP("graphics/object_events/pics/pokemon/castform.4bpp");
const u32 gObjectEventPic_CastformSunny[] = INCBIN_COMP("graphics/object_events/pics/pokemon/castform_sunny.4bpp");
const u32 gObjectEventPic_CastformRainy[] = INCBIN_COMP("graphics/object_events/pics/pokemon/castform_rainy.4bpp");
const u32 gObjectEventPic_CastformSnowy[] = INCBIN_COMP("graphics/object_events/pics/pokemon/castform_snowy.4bpp");
const u32 gObjectEventPic_Kecleon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kecleon.4bpp");
const u32 gObjectEventPic_Shuppet[] = INCBIN_COMP("graphics/object_events/pics/pokemon/shuppet.4bpp");
const u32 gObjectEventPic_Banette[] = INCBIN_COMP("graphics/object_events/pics/pokemon/banette.4bpp");
const u32 gObjectEventPic_Duskull[] = INCBIN_COMP("graphics/object_events/pics/pokemon/duskull.4bpp");
const u32 gObjectEventPic_Dusclops[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dusclops.4bpp");
const u32 gObjectEventPic_Tropius[] = INCBIN_COMP("graphics/object_events/pics/pokemon/tropius.4bpp");
const u32 gObjectEventPic_Chimecho[] = INCBIN_COMP("graphics/object_events/pics/pokemon/chimecho.4bpp");
const u32 gObjectEventPic_Absol[] = INCBIN_COMP("graphics/object_events/pics/pokemon/absol.4bpp");
const u32 gObjectEventPic_Wynaut[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wynaut.4bpp");
const u32 gObjectEventPic_Snorunt[] = INCBIN_COMP("graphics/object_events/pics/pokemon/snorunt.4bpp");
const u32 gObjectEventPic_Glalie[] = INCBIN_COMP("graphics/object_events/pics/pokemon/glalie.4bpp");
const u32 gObjectEventPic_Spheal[] = INCBIN_COMP("graphics/object_events/pics/pokemon/spheal.4bpp");
const u32 gObjectEventPic_Sealeo[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sealeo.4bpp");
const u32 gObjectEventPic_Walrein[] = INCBIN_COMP("graphics/object_events/pics/pokemon/walrein.4bpp");
const u32 gObjectEventPic_Clamperl[] = INCBIN_COMP("graphics/object_events/pics/pokemon/clamperl.4bpp");
const u32 gObjectEventPic_Huntail[] = INCBIN_COMP("graphics/object_events/pics/pokemon/huntail.4bpp");
const u32 gObjectEventPic_Gorebyss[] = INCBIN_COMP("graphics/object_events/pics/pokemon/gorebyss.4bpp");
const u32 gObjectEventPic_Relicanth[] = INCBIN_COMP("graphics/object_events/pics/pokemon/relicanth.4bpp");
const u32 gObjectEventPic_Luvdisc[] = INCBIN_COMP("graphics/object_events/pics/pokemon/luvdisc.4bpp");
const u32 gObjectEventPic_Bagon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/bagon.4bpp");
const u32 gObjectEventPic_Shelgon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/shelgon.4bpp");
const u32 gObjectEventPic_Salamence[] = INCBIN_COMP("graphics/object_events/pics/pokemon/salamence.4bpp");
const u32 gObjectEventPic_Beldum[] = INCBIN_COMP("graphics/object_events/pics/pokemon/beldum.4bpp");
const u32 gObjectEventPic_Metang[] = INCBIN_COMP("graphics/object_events/pics/pokemon/metang.4bpp");
const u32 gObjectEventPic_Metagross[] = INCBIN_COMP("graphics/object_events/pics/pokemon/metagross.4bpp");
const u32 gObjectEventPic_Regirock[] = INCBIN_COMP("graphics/object_events/pics/pokemon/regirock.4bpp");
const u32 gObjectEventPic_Regice[] = INCBIN_COMP("graphics/object_events/pics/pokemon/regice.4bpp");
const u32 gObjectEventPic_Registeel[] = INCBIN_COMP("graphics/object_events/pics/pokemon/registeel.4bpp");
const u32 gObjectEventPic_Latias[] = INCBIN_COMP("graphics/object_events/pics/pokemon/latias.4bpp");
const u32 gObjectEventPic_Latios[] = INCBIN_COMP("graphics/object_events/pics/pokemon/latios.4bpp");
const u32 gObjectEventPic_Kyogre[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kyogre.4bpp");
const u32 gObjectEventPic_Groudon[] = INCBIN_COMP("graphics/object_events/pics/pokemon/groudon.4bpp");
const u32 gObjectEventPic_Rayquaza[] = INCBIN_COMP("graphics/object_events/pics/pokemon/rayquaza.4bpp");
const u32 gObjectEventPic_Jirachi[] = INCBIN_COMP("graphics/object_events/pics/pokemon/jirachi.4bpp");
const u32 gObjectEventPic_Deoxys[] = INCBIN_COMP("graphics/object_events/pics/pokemon/deoxys.4bpp");
const u32 gObjectEventPic_DeoxysOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/deoxys_old.4bpp");
const u32 gObjectEventPic_MewOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/mew_old.4bpp");
const u32 gObjectEventPic_DusclopsOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/dusclops_old.4bpp");
const u32 gObjectEventPic_KirliaOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kirlia_old.4bpp");
const u32 gObjectEventPic_AzurillOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/azurill_old.4bpp");
const u32 gObjectEventPic_KecleonOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kecleon_old.4bpp");
const u32 gObjectEventPic_WingullOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/wingull_old.4bpp");
const u32 gObjectEventPic_AzumarillOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/azumarill_old.4bpp");
const u32 gObjectEventPic_PikachuOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/pikachu_old.4bpp");
const u32 gObjectEventPic_ZigzagoonOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/zigzagoon_old.4bpp");
const u32 gObjectEventPic_SkittyOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/skitty_old.4bpp");
const u32 gObjectEventPic_PoochyenaOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/poochyena_old.4bpp");
const u32 gObjectEventPic_LugiaOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/lugia_old.4bpp");
const u32 gObjectEventPic_HoOhOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/ho_oh_old.4bpp");
const u32 gObjectEventPic_GroudonOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/groudon_old.4bpp");
const u32 gObjectEventPic_KyogreOld[] = INCBIN_COMP("graphics/object_events/pics/pokemon/kyogre_old.4bpp");
const u32 gObjectEventPic_VigorothMover[] = INCBIN_COMP("graphics/object_events/pics/pokemon/vigoroth_mover.4bpp");
const u32 gObjectEventPic_SudowoodoTree[] = INCBIN_COMP("graphics/object_events/pics/pokemon/sudowoodo_tree.4bpp");
const u32 gObjectEventPic_RayquazaCutscene[] = INCBIN_COMP("graphics/object_events/pics/pokemon/rayquaza_cutscene.4bpp");
const u16 gObjectEventPal_HoOh[] = INCBIN_U16("graphics/object_events/palettes/ho_oh.gbapal");
const u16 gObjectEventPal_Lugia[] = INCBIN_U16("graphics/object_events/palettes/lugia.gbapal");

File diff suppressed because it is too large Load Diff

View File

@ -1,421 +1,424 @@
// Set .compressed = OW_GFX_COMPRESS
#define COMP OW_GFX_COMPRESS
// Species-indexed pokemon object event table
const struct ObjectEventGraphicsInfo gPokemonObjectGraphics[] =
{
[SPECIES_BULBASAUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bulbasaur, gDummySpriteAffineAnimTable},
[SPECIES_IVYSAUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ivysaur, gDummySpriteAffineAnimTable},
[SPECIES_VENUSAUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Venusaur, gDummySpriteAffineAnimTable},
[SPECIES_CHARMANDER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Charmander, gDummySpriteAffineAnimTable},
[SPECIES_CHARMELEON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Charmeleon, gDummySpriteAffineAnimTable},
[SPECIES_CHARIZARD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Charizard, gDummySpriteAffineAnimTable},
[SPECIES_SQUIRTLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Squirtle, gDummySpriteAffineAnimTable},
[SPECIES_WARTORTLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wartortle, gDummySpriteAffineAnimTable},
[SPECIES_BLASTOISE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Blastoise, gDummySpriteAffineAnimTable},
[SPECIES_CATERPIE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Caterpie, gDummySpriteAffineAnimTable},
[SPECIES_METAPOD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Metapod, gDummySpriteAffineAnimTable},
[SPECIES_BUTTERFREE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Butterfree, gDummySpriteAffineAnimTable},
[SPECIES_WEEDLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Weedle, gDummySpriteAffineAnimTable},
[SPECIES_KAKUNA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kakuna, gDummySpriteAffineAnimTable},
[SPECIES_BEEDRILL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Beedrill, gDummySpriteAffineAnimTable},
[SPECIES_PIDGEY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pidgey, gDummySpriteAffineAnimTable},
[SPECIES_PIDGEOTTO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pidgeotto, gDummySpriteAffineAnimTable},
[SPECIES_PIDGEOT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pidgeot, gDummySpriteAffineAnimTable},
[SPECIES_RATTATA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rattata, gDummySpriteAffineAnimTable},
[SPECIES_RATICATE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Raticate, gDummySpriteAffineAnimTable},
[SPECIES_SPEAROW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spearow, gDummySpriteAffineAnimTable},
[SPECIES_FEAROW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Fearow, gDummySpriteAffineAnimTable},
[SPECIES_EKANS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ekans, gDummySpriteAffineAnimTable},
[SPECIES_ARBOK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Arbok, gDummySpriteAffineAnimTable},
[SPECIES_PIKACHU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pikachu, gDummySpriteAffineAnimTable},
[SPECIES_RAICHU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Raichu, gDummySpriteAffineAnimTable},
[SPECIES_SANDSHREW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sandshrew, gDummySpriteAffineAnimTable},
[SPECIES_SANDSLASH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sandslash, gDummySpriteAffineAnimTable},
[SPECIES_NIDORAN_F] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidoran_f, gDummySpriteAffineAnimTable},
[SPECIES_NIDORINA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidorina, gDummySpriteAffineAnimTable},
[SPECIES_NIDOQUEEN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidoqueen, gDummySpriteAffineAnimTable},
[SPECIES_NIDORAN_M] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidoran_m, gDummySpriteAffineAnimTable},
[SPECIES_NIDORINO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidorino, gDummySpriteAffineAnimTable},
[SPECIES_NIDOKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidoking, gDummySpriteAffineAnimTable},
[SPECIES_CLEFAIRY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Clefairy, gDummySpriteAffineAnimTable},
[SPECIES_CLEFABLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Clefable, gDummySpriteAffineAnimTable},
[SPECIES_VULPIX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vulpix, gDummySpriteAffineAnimTable},
[SPECIES_NINETALES] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ninetales, gDummySpriteAffineAnimTable},
[SPECIES_JIGGLYPUFF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jigglypuff, gDummySpriteAffineAnimTable},
[SPECIES_WIGGLYTUFF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wigglytuff, gDummySpriteAffineAnimTable},
[SPECIES_ZUBAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Zubat, gDummySpriteAffineAnimTable},
[SPECIES_GOLBAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Golbat, gDummySpriteAffineAnimTable},
[SPECIES_ODDISH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Oddish, gDummySpriteAffineAnimTable},
[SPECIES_GLOOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gloom, gDummySpriteAffineAnimTable},
[SPECIES_VILEPLUME] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vileplume, gDummySpriteAffineAnimTable},
[SPECIES_PARAS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Paras, gDummySpriteAffineAnimTable},
[SPECIES_PARASECT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Parasect, gDummySpriteAffineAnimTable},
[SPECIES_VENONAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Venonat, gDummySpriteAffineAnimTable},
[SPECIES_VENOMOTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Venomoth, gDummySpriteAffineAnimTable},
[SPECIES_DIGLETT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Diglett, gDummySpriteAffineAnimTable},
[SPECIES_DUGTRIO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dugtrio, gDummySpriteAffineAnimTable},
[SPECIES_MEOWTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Meowth, gDummySpriteAffineAnimTable},
[SPECIES_PERSIAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Persian, gDummySpriteAffineAnimTable},
[SPECIES_PSYDUCK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Psyduck, gDummySpriteAffineAnimTable},
[SPECIES_GOLDUCK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Golduck, gDummySpriteAffineAnimTable},
[SPECIES_MANKEY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mankey, gDummySpriteAffineAnimTable},
[SPECIES_PRIMEAPE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Primeape, gDummySpriteAffineAnimTable},
[SPECIES_GROWLITHE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Growlithe, gDummySpriteAffineAnimTable},
[SPECIES_ARCANINE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Arcanine, gDummySpriteAffineAnimTable},
[SPECIES_POLIWAG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Poliwag, gDummySpriteAffineAnimTable},
[SPECIES_POLIWHIRL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Poliwhirl, gDummySpriteAffineAnimTable},
[SPECIES_POLIWRATH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Poliwrath, gDummySpriteAffineAnimTable},
[SPECIES_ABRA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Abra, gDummySpriteAffineAnimTable},
[SPECIES_KADABRA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kadabra, gDummySpriteAffineAnimTable},
[SPECIES_ALAKAZAM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Alakazam, gDummySpriteAffineAnimTable},
[SPECIES_MACHOP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Machop, gDummySpriteAffineAnimTable},
[SPECIES_MACHOKE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Machoke, gDummySpriteAffineAnimTable},
[SPECIES_MACHAMP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Machamp, gDummySpriteAffineAnimTable},
[SPECIES_BELLSPROUT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bellsprout, gDummySpriteAffineAnimTable},
[SPECIES_WEEPINBELL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Weepinbell, gDummySpriteAffineAnimTable},
[SPECIES_VICTREEBEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Victreebel, gDummySpriteAffineAnimTable},
[SPECIES_TENTACOOL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tentacool, gDummySpriteAffineAnimTable},
[SPECIES_TENTACRUEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tentacruel, gDummySpriteAffineAnimTable},
[SPECIES_GEODUDE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Geodude, gDummySpriteAffineAnimTable},
[SPECIES_GRAVELER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Graveler, gDummySpriteAffineAnimTable},
[SPECIES_GOLEM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Golem, gDummySpriteAffineAnimTable},
[SPECIES_PONYTA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ponyta, gDummySpriteAffineAnimTable},
[SPECIES_RAPIDASH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rapidash, gDummySpriteAffineAnimTable},
[SPECIES_SLOWPOKE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slowpoke, gDummySpriteAffineAnimTable},
[SPECIES_SLOWBRO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slowbro, gDummySpriteAffineAnimTable},
[SPECIES_MAGNEMITE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magnemite, gDummySpriteAffineAnimTable},
[SPECIES_MAGNETON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magneton, gDummySpriteAffineAnimTable},
[SPECIES_FARFETCHD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Farfetchd, gDummySpriteAffineAnimTable},
[SPECIES_DODUO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Doduo, gDummySpriteAffineAnimTable},
[SPECIES_DODRIO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dodrio, gDummySpriteAffineAnimTable},
[SPECIES_SEEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seel, gDummySpriteAffineAnimTable},
[SPECIES_DEWGONG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dewgong, gDummySpriteAffineAnimTable},
[SPECIES_GRIMER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Grimer, gDummySpriteAffineAnimTable},
[SPECIES_MUK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Muk, gDummySpriteAffineAnimTable},
[SPECIES_SHELLDER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shellder, gDummySpriteAffineAnimTable},
[SPECIES_CLOYSTER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cloyster, gDummySpriteAffineAnimTable},
[SPECIES_GASTLY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gastly, gDummySpriteAffineAnimTable},
[SPECIES_HAUNTER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Haunter, gDummySpriteAffineAnimTable},
[SPECIES_GENGAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gengar, gDummySpriteAffineAnimTable},
[SPECIES_ONIX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Onix, gDummySpriteAffineAnimTable},
[SPECIES_DROWZEE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Drowzee, gDummySpriteAffineAnimTable},
[SPECIES_HYPNO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hypno, gDummySpriteAffineAnimTable},
[SPECIES_KRABBY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Krabby, gDummySpriteAffineAnimTable},
[SPECIES_KINGLER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kingler, gDummySpriteAffineAnimTable},
[SPECIES_VOLTORB] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Voltorb, gDummySpriteAffineAnimTable},
[SPECIES_ELECTRODE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Electrode, gDummySpriteAffineAnimTable},
[SPECIES_EXEGGCUTE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Exeggcute, gDummySpriteAffineAnimTable},
[SPECIES_EXEGGUTOR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Exeggutor, gDummySpriteAffineAnimTable},
[SPECIES_CUBONE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cubone, gDummySpriteAffineAnimTable},
[SPECIES_MAROWAK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Marowak, gDummySpriteAffineAnimTable},
[SPECIES_HITMONLEE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hitmonlee, gDummySpriteAffineAnimTable},
[SPECIES_HITMONCHAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hitmonchan, gDummySpriteAffineAnimTable},
[SPECIES_LICKITUNG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lickitung, gDummySpriteAffineAnimTable},
[SPECIES_KOFFING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Koffing, gDummySpriteAffineAnimTable},
[SPECIES_WEEZING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Weezing, gDummySpriteAffineAnimTable},
[SPECIES_RHYHORN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rhyhorn, gDummySpriteAffineAnimTable},
[SPECIES_RHYDON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rhydon, gDummySpriteAffineAnimTable},
[SPECIES_CHANSEY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Chansey, gDummySpriteAffineAnimTable},
[SPECIES_TANGELA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tangela, gDummySpriteAffineAnimTable},
[SPECIES_KANGASKHAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kangaskhan, gDummySpriteAffineAnimTable},
[SPECIES_HORSEA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Horsea, gDummySpriteAffineAnimTable},
[SPECIES_SEADRA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seadra, gDummySpriteAffineAnimTable},
[SPECIES_GOLDEEN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Goldeen, gDummySpriteAffineAnimTable},
[SPECIES_SEAKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seaking, gDummySpriteAffineAnimTable},
[SPECIES_STARYU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Staryu, gDummySpriteAffineAnimTable},
[SPECIES_STARMIE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Starmie, gDummySpriteAffineAnimTable},
[SPECIES_MR_MIME] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mr_Mime, gDummySpriteAffineAnimTable},
[SPECIES_SCYTHER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Scyther, gDummySpriteAffineAnimTable},
[SPECIES_JYNX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jynx, gDummySpriteAffineAnimTable},
[SPECIES_ELECTABUZZ] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Electabuzz, gDummySpriteAffineAnimTable},
[SPECIES_MAGMAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magmar, gDummySpriteAffineAnimTable},
[SPECIES_PINSIR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pinsir, gDummySpriteAffineAnimTable},
[SPECIES_TAUROS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tauros, gDummySpriteAffineAnimTable},
[SPECIES_MAGIKARP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magikarp, gDummySpriteAffineAnimTable},
[SPECIES_GYARADOS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gyarados, gDummySpriteAffineAnimTable},
[SPECIES_LAPRAS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lapras, gDummySpriteAffineAnimTable},
[SPECIES_DITTO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ditto, gDummySpriteAffineAnimTable},
[SPECIES_EEVEE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Eevee, gDummySpriteAffineAnimTable},
[SPECIES_VAPOREON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vaporeon, gDummySpriteAffineAnimTable},
[SPECIES_JOLTEON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jolteon, gDummySpriteAffineAnimTable},
[SPECIES_FLAREON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Flareon, gDummySpriteAffineAnimTable},
[SPECIES_PORYGON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Porygon, gDummySpriteAffineAnimTable},
[SPECIES_OMANYTE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Omanyte, gDummySpriteAffineAnimTable},
[SPECIES_OMASTAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Omastar, gDummySpriteAffineAnimTable},
[SPECIES_KABUTO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kabuto, gDummySpriteAffineAnimTable},
[SPECIES_KABUTOPS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kabutops, gDummySpriteAffineAnimTable},
[SPECIES_AERODACTYL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Aerodactyl, gDummySpriteAffineAnimTable},
[SPECIES_SNORLAX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Snorlax, gDummySpriteAffineAnimTable},
[SPECIES_ARTICUNO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Articuno, gDummySpriteAffineAnimTable},
[SPECIES_ZAPDOS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Zapdos, gDummySpriteAffineAnimTable},
[SPECIES_MOLTRES] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Moltres, gDummySpriteAffineAnimTable},
[SPECIES_DRATINI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dratini, gDummySpriteAffineAnimTable},
[SPECIES_DRAGONAIR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dragonair, gDummySpriteAffineAnimTable},
[SPECIES_DRAGONITE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dragonite, gDummySpriteAffineAnimTable},
[SPECIES_MEWTWO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mewtwo, gDummySpriteAffineAnimTable},
[SPECIES_MEW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mew, gDummySpriteAffineAnimTable},
[SPECIES_CHIKORITA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Chikorita, gDummySpriteAffineAnimTable},
[SPECIES_BAYLEEF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bayleef, gDummySpriteAffineAnimTable},
[SPECIES_MEGANIUM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Meganium, gDummySpriteAffineAnimTable},
[SPECIES_CYNDAQUIL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cyndaquil, gDummySpriteAffineAnimTable},
[SPECIES_QUILAVA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Quilava, gDummySpriteAffineAnimTable},
[SPECIES_TYPHLOSION] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Typhlosion, gDummySpriteAffineAnimTable},
[SPECIES_TOTODILE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Totodile, gDummySpriteAffineAnimTable},
[SPECIES_CROCONAW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Croconaw, gDummySpriteAffineAnimTable},
[SPECIES_FERALIGATR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Feraligatr, gDummySpriteAffineAnimTable},
[SPECIES_SENTRET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sentret, gDummySpriteAffineAnimTable},
[SPECIES_FURRET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Furret, gDummySpriteAffineAnimTable},
[SPECIES_HOOTHOOT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hoothoot, gDummySpriteAffineAnimTable},
[SPECIES_NOCTOWL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Noctowl, gDummySpriteAffineAnimTable},
[SPECIES_LEDYBA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ledyba, gDummySpriteAffineAnimTable},
[SPECIES_LEDIAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ledian, gDummySpriteAffineAnimTable},
[SPECIES_SPINARAK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spinarak, gDummySpriteAffineAnimTable},
[SPECIES_ARIADOS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ariados, gDummySpriteAffineAnimTable},
[SPECIES_CROBAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Crobat, gDummySpriteAffineAnimTable},
[SPECIES_CHINCHOU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Chinchou, gDummySpriteAffineAnimTable},
[SPECIES_LANTURN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lanturn, gDummySpriteAffineAnimTable},
[SPECIES_PICHU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pichu, gDummySpriteAffineAnimTable},
[SPECIES_CLEFFA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cleffa, gDummySpriteAffineAnimTable},
[SPECIES_IGGLYBUFF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Igglybuff, gDummySpriteAffineAnimTable},
[SPECIES_TOGEPI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Togepi, gDummySpriteAffineAnimTable},
[SPECIES_TOGETIC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Togetic, gDummySpriteAffineAnimTable},
[SPECIES_NATU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Natu, gDummySpriteAffineAnimTable},
[SPECIES_XATU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Xatu, gDummySpriteAffineAnimTable},
[SPECIES_MAREEP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mareep, gDummySpriteAffineAnimTable},
[SPECIES_FLAAFFY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Flaaffy, gDummySpriteAffineAnimTable},
[SPECIES_AMPHAROS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ampharos, gDummySpriteAffineAnimTable},
[SPECIES_BELLOSSOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bellossom, gDummySpriteAffineAnimTable},
[SPECIES_MARILL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Marill, gDummySpriteAffineAnimTable},
[SPECIES_AZUMARILL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Azumarill, gDummySpriteAffineAnimTable},
[SPECIES_SUDOWOODO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sudowoodo, gDummySpriteAffineAnimTable},
[SPECIES_POLITOED] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Politoed, gDummySpriteAffineAnimTable},
[SPECIES_HOPPIP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hoppip, gDummySpriteAffineAnimTable},
[SPECIES_SKIPLOOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Skiploom, gDummySpriteAffineAnimTable},
[SPECIES_JUMPLUFF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jumpluff, gDummySpriteAffineAnimTable},
[SPECIES_AIPOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Aipom, gDummySpriteAffineAnimTable},
[SPECIES_SUNKERN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sunkern, gDummySpriteAffineAnimTable},
[SPECIES_SUNFLORA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sunflora, gDummySpriteAffineAnimTable},
[SPECIES_YANMA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Yanma, gDummySpriteAffineAnimTable},
[SPECIES_WOOPER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wooper, gDummySpriteAffineAnimTable},
[SPECIES_QUAGSIRE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Quagsire, gDummySpriteAffineAnimTable},
[SPECIES_ESPEON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Espeon, gDummySpriteAffineAnimTable},
[SPECIES_UMBREON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Umbreon, gDummySpriteAffineAnimTable},
[SPECIES_MURKROW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Murkrow, gDummySpriteAffineAnimTable},
[SPECIES_SLOWKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slowking, gDummySpriteAffineAnimTable},
[SPECIES_MISDREAVUS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Misdreavus, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_A, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_B] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_B, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_C] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_C, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_D] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_D, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_E] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_E, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_F] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_F, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_G] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_G, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_H] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_H, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_I] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_I, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_J] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_J, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_K] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_K, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_L] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_L, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_M] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_M, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_N] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_N, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_O] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_O, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_P] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_P, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Q] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Q, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_R] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_R, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_S] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_S, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_T] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_T, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_U] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_U, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_V] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_V, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_W] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_W, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_X] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_X, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Y] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Y, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Z] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Z, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_EMARK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Exclamation, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_QMARK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Question, gDummySpriteAffineAnimTable},
[SPECIES_WOBBUFFET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wobbuffet, gDummySpriteAffineAnimTable},
[SPECIES_GIRAFARIG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Girafarig, gDummySpriteAffineAnimTable},
[SPECIES_PINECO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pineco, gDummySpriteAffineAnimTable},
[SPECIES_FORRETRESS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Forretress, gDummySpriteAffineAnimTable},
[SPECIES_DUNSPARCE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dunsparce, gDummySpriteAffineAnimTable},
[SPECIES_GLIGAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gligar, gDummySpriteAffineAnimTable},
[SPECIES_STEELIX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Steelix, gDummySpriteAffineAnimTable},
[SPECIES_SNUBBULL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Snubbull, gDummySpriteAffineAnimTable},
[SPECIES_GRANBULL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Granbull, gDummySpriteAffineAnimTable},
[SPECIES_QWILFISH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Qwilfish, gDummySpriteAffineAnimTable},
[SPECIES_SCIZOR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Scizor, gDummySpriteAffineAnimTable},
[SPECIES_SHUCKLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shuckle, gDummySpriteAffineAnimTable},
[SPECIES_HERACROSS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Heracross, gDummySpriteAffineAnimTable},
[SPECIES_SNEASEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sneasel, gDummySpriteAffineAnimTable},
[SPECIES_TEDDIURSA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Teddiursa, gDummySpriteAffineAnimTable},
[SPECIES_URSARING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ursaring, gDummySpriteAffineAnimTable},
[SPECIES_SLUGMA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slugma, gDummySpriteAffineAnimTable},
[SPECIES_MAGCARGO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magcargo, gDummySpriteAffineAnimTable},
[SPECIES_SWINUB] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swinub, gDummySpriteAffineAnimTable},
[SPECIES_PILOSWINE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Piloswine, gDummySpriteAffineAnimTable},
[SPECIES_CORSOLA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Corsola, gDummySpriteAffineAnimTable},
[SPECIES_REMORAID] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Remoraid, gDummySpriteAffineAnimTable},
[SPECIES_OCTILLERY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Octillery, gDummySpriteAffineAnimTable},
[SPECIES_DELIBIRD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Delibird, gDummySpriteAffineAnimTable},
[SPECIES_MANTINE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mantine, gDummySpriteAffineAnimTable},
[SPECIES_SKARMORY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Skarmory, gDummySpriteAffineAnimTable},
[SPECIES_HOUNDOUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Houndour, gDummySpriteAffineAnimTable},
[SPECIES_HOUNDOOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Houndoom, gDummySpriteAffineAnimTable},
[SPECIES_KINGDRA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kingdra, gDummySpriteAffineAnimTable},
[SPECIES_PHANPY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Phanpy, gDummySpriteAffineAnimTable},
[SPECIES_DONPHAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Donphan, gDummySpriteAffineAnimTable},
[SPECIES_PORYGON2] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Porygon2, gDummySpriteAffineAnimTable},
[SPECIES_STANTLER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Stantler, gDummySpriteAffineAnimTable},
[SPECIES_SMEARGLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Smeargle, gDummySpriteAffineAnimTable},
[SPECIES_TYROGUE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tyrogue, gDummySpriteAffineAnimTable},
[SPECIES_HITMONTOP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hitmontop, gDummySpriteAffineAnimTable},
[SPECIES_SMOOCHUM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Smoochum, gDummySpriteAffineAnimTable},
[SPECIES_ELEKID] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Elekid, gDummySpriteAffineAnimTable},
[SPECIES_MAGBY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magby, gDummySpriteAffineAnimTable},
[SPECIES_MILTANK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Miltank, gDummySpriteAffineAnimTable},
[SPECIES_BLISSEY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Blissey, gDummySpriteAffineAnimTable},
[SPECIES_RAIKOU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Raikou, gDummySpriteAffineAnimTable},
[SPECIES_ENTEI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Entei, gDummySpriteAffineAnimTable},
[SPECIES_SUICUNE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Suicune, gDummySpriteAffineAnimTable},
[SPECIES_LARVITAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Larvitar, gDummySpriteAffineAnimTable},
[SPECIES_PUPITAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pupitar, gDummySpriteAffineAnimTable},
[SPECIES_TYRANITAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tyranitar, gDummySpriteAffineAnimTable},
[SPECIES_LUGIA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lugia, gDummySpriteAffineAnimTable},
[SPECIES_HO_OH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ho_oh, gDummySpriteAffineAnimTable},
[SPECIES_CELEBI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Celebi, gDummySpriteAffineAnimTable},
[SPECIES_TREECKO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Treecko, gDummySpriteAffineAnimTable},
[SPECIES_GROVYLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Grovyle, gDummySpriteAffineAnimTable},
[SPECIES_SCEPTILE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sceptile, gDummySpriteAffineAnimTable},
[SPECIES_TORCHIC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Torchic, gDummySpriteAffineAnimTable},
[SPECIES_COMBUSKEN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Combusken, gDummySpriteAffineAnimTable},
[SPECIES_BLAZIKEN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Blaziken, gDummySpriteAffineAnimTable},
[SPECIES_MUDKIP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mudkip, gDummySpriteAffineAnimTable},
[SPECIES_MARSHTOMP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Marshtomp, gDummySpriteAffineAnimTable},
[SPECIES_SWAMPERT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swampert, gDummySpriteAffineAnimTable},
[SPECIES_POOCHYENA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Poochyena, gDummySpriteAffineAnimTable},
[SPECIES_MIGHTYENA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mightyena, gDummySpriteAffineAnimTable},
[SPECIES_ZIGZAGOON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Zigzagoon, gDummySpriteAffineAnimTable},
[SPECIES_LINOONE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Linoone, gDummySpriteAffineAnimTable},
[SPECIES_WURMPLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wurmple, gDummySpriteAffineAnimTable},
[SPECIES_SILCOON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Silcoon, gDummySpriteAffineAnimTable},
[SPECIES_BEAUTIFLY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Beautifly, gDummySpriteAffineAnimTable},
[SPECIES_CASCOON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cascoon, gDummySpriteAffineAnimTable},
[SPECIES_DUSTOX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dustox, gDummySpriteAffineAnimTable},
[SPECIES_LOTAD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lotad, gDummySpriteAffineAnimTable},
[SPECIES_LOMBRE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lombre, gDummySpriteAffineAnimTable},
[SPECIES_LUDICOLO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ludicolo, gDummySpriteAffineAnimTable},
[SPECIES_SEEDOT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seedot, gDummySpriteAffineAnimTable},
[SPECIES_NUZLEAF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nuzleaf, gDummySpriteAffineAnimTable},
[SPECIES_SHIFTRY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shiftry, gDummySpriteAffineAnimTable},
[SPECIES_TAILLOW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Taillow, gDummySpriteAffineAnimTable},
[SPECIES_SWELLOW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swellow, gDummySpriteAffineAnimTable},
[SPECIES_WINGULL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wingull, gDummySpriteAffineAnimTable},
[SPECIES_PELIPPER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pelipper, gDummySpriteAffineAnimTable},
[SPECIES_RALTS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ralts, gDummySpriteAffineAnimTable},
[SPECIES_KIRLIA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kirlia, gDummySpriteAffineAnimTable},
[SPECIES_GARDEVOIR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gardevoir, gDummySpriteAffineAnimTable},
[SPECIES_SURSKIT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Surskit, gDummySpriteAffineAnimTable},
[SPECIES_MASQUERAIN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Masquerain, gDummySpriteAffineAnimTable},
[SPECIES_SHROOMISH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shroomish, gDummySpriteAffineAnimTable},
[SPECIES_BRELOOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Breloom, gDummySpriteAffineAnimTable},
[SPECIES_SLAKOTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slakoth, gDummySpriteAffineAnimTable},
[SPECIES_VIGOROTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vigoroth, gDummySpriteAffineAnimTable},
[SPECIES_SLAKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slaking, gDummySpriteAffineAnimTable},
[SPECIES_NINCADA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nincada, gDummySpriteAffineAnimTable},
[SPECIES_NINJASK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ninjask, gDummySpriteAffineAnimTable},
[SPECIES_SHEDINJA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shedinja, gDummySpriteAffineAnimTable},
[SPECIES_WHISMUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Whismur, gDummySpriteAffineAnimTable},
[SPECIES_LOUDRED] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Loudred, gDummySpriteAffineAnimTable},
[SPECIES_EXPLOUD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Exploud, gDummySpriteAffineAnimTable},
[SPECIES_MAKUHITA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Makuhita, gDummySpriteAffineAnimTable},
[SPECIES_HARIYAMA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hariyama, gDummySpriteAffineAnimTable},
[SPECIES_AZURILL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Azurill, gDummySpriteAffineAnimTable},
[SPECIES_NOSEPASS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nosepass, gDummySpriteAffineAnimTable},
[SPECIES_SKITTY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Skitty, gDummySpriteAffineAnimTable},
[SPECIES_DELCATTY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Delcatty, gDummySpriteAffineAnimTable},
[SPECIES_SABLEYE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sableye, gDummySpriteAffineAnimTable},
[SPECIES_MAWILE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mawile, gDummySpriteAffineAnimTable},
[SPECIES_ARON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Aron, gDummySpriteAffineAnimTable},
[SPECIES_LAIRON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lairon, gDummySpriteAffineAnimTable},
[SPECIES_AGGRON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Aggron, gDummySpriteAffineAnimTable},
[SPECIES_MEDITITE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Meditite, gDummySpriteAffineAnimTable},
[SPECIES_MEDICHAM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Medicham, gDummySpriteAffineAnimTable},
[SPECIES_ELECTRIKE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Electrike, gDummySpriteAffineAnimTable},
[SPECIES_MANECTRIC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Manectric, gDummySpriteAffineAnimTable},
[SPECIES_PLUSLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Plusle, gDummySpriteAffineAnimTable},
[SPECIES_MINUN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Minun, gDummySpriteAffineAnimTable},
[SPECIES_VOLBEAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Volbeat, gDummySpriteAffineAnimTable},
[SPECIES_ILLUMISE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Illumise, gDummySpriteAffineAnimTable},
[SPECIES_ROSELIA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Roselia, gDummySpriteAffineAnimTable},
[SPECIES_GULPIN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gulpin, gDummySpriteAffineAnimTable},
[SPECIES_SWALOT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swalot, gDummySpriteAffineAnimTable},
[SPECIES_CARVANHA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Carvanha, gDummySpriteAffineAnimTable},
[SPECIES_SHARPEDO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sharpedo, gDummySpriteAffineAnimTable},
[SPECIES_WAILMER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wailmer, gDummySpriteAffineAnimTable},
[SPECIES_WAILORD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wailord, gDummySpriteAffineAnimTable},
[SPECIES_NUMEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Numel, gDummySpriteAffineAnimTable},
[SPECIES_CAMERUPT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Camerupt, gDummySpriteAffineAnimTable},
[SPECIES_TORKOAL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Torkoal, gDummySpriteAffineAnimTable},
[SPECIES_SPOINK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spoink, gDummySpriteAffineAnimTable},
[SPECIES_GRUMPIG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Grumpig, gDummySpriteAffineAnimTable},
[SPECIES_SPINDA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spinda, gDummySpriteAffineAnimTable},
[SPECIES_TRAPINCH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Trapinch, gDummySpriteAffineAnimTable},
[SPECIES_VIBRAVA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vibrava, gDummySpriteAffineAnimTable},
[SPECIES_FLYGON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Flygon, gDummySpriteAffineAnimTable},
[SPECIES_CACNEA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cacnea, gDummySpriteAffineAnimTable},
[SPECIES_CACTURNE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cacturne, gDummySpriteAffineAnimTable},
[SPECIES_SWABLU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swablu, gDummySpriteAffineAnimTable},
[SPECIES_ALTARIA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Altaria, gDummySpriteAffineAnimTable},
[SPECIES_ZANGOOSE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Zangoose, gDummySpriteAffineAnimTable},
[SPECIES_SEVIPER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seviper, gDummySpriteAffineAnimTable},
[SPECIES_LUNATONE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lunatone, gDummySpriteAffineAnimTable},
[SPECIES_SOLROCK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Solrock, gDummySpriteAffineAnimTable},
[SPECIES_BARBOACH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Barboach, gDummySpriteAffineAnimTable},
[SPECIES_WHISCASH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Whiscash, gDummySpriteAffineAnimTable},
[SPECIES_CORPHISH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Corphish, gDummySpriteAffineAnimTable},
[SPECIES_CRAWDAUNT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Crawdaunt, gDummySpriteAffineAnimTable},
[SPECIES_BALTOY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Baltoy, gDummySpriteAffineAnimTable},
[SPECIES_CLAYDOL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Claydol, gDummySpriteAffineAnimTable},
[SPECIES_LILEEP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lileep, gDummySpriteAffineAnimTable},
[SPECIES_CRADILY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cradily, gDummySpriteAffineAnimTable},
[SPECIES_ANORITH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Anorith, gDummySpriteAffineAnimTable},
[SPECIES_ARMALDO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Armaldo, gDummySpriteAffineAnimTable},
[SPECIES_FEEBAS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Feebas, gDummySpriteAffineAnimTable},
[SPECIES_MILOTIC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Milotic, gDummySpriteAffineAnimTable},
[SPECIES_CASTFORM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Castform, gDummySpriteAffineAnimTable},
[SPECIES_CASTFORM_SUNNY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_CastformSunny, gDummySpriteAffineAnimTable},
[SPECIES_CASTFORM_RAINY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_CastformRainy, gDummySpriteAffineAnimTable},
[SPECIES_CASTFORM_SNOWY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_CastformSnowy, gDummySpriteAffineAnimTable},
[SPECIES_KECLEON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kecleon, gDummySpriteAffineAnimTable},
[SPECIES_SHUPPET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shuppet, gDummySpriteAffineAnimTable},
[SPECIES_BANETTE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Banette, gDummySpriteAffineAnimTable},
[SPECIES_DUSKULL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Duskull, gDummySpriteAffineAnimTable},
[SPECIES_DUSCLOPS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dusclops, gDummySpriteAffineAnimTable},
[SPECIES_TROPIUS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tropius, gDummySpriteAffineAnimTable},
[SPECIES_CHIMECHO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Chimecho, gDummySpriteAffineAnimTable},
[SPECIES_ABSOL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Absol, gDummySpriteAffineAnimTable},
[SPECIES_WYNAUT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wynaut, gDummySpriteAffineAnimTable},
[SPECIES_SNORUNT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Snorunt, gDummySpriteAffineAnimTable},
[SPECIES_GLALIE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Glalie, gDummySpriteAffineAnimTable},
[SPECIES_SPHEAL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spheal, gDummySpriteAffineAnimTable},
[SPECIES_SEALEO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sealeo, gDummySpriteAffineAnimTable},
[SPECIES_WALREIN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Walrein, gDummySpriteAffineAnimTable},
[SPECIES_CLAMPERL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Clamperl, gDummySpriteAffineAnimTable},
[SPECIES_HUNTAIL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Huntail, gDummySpriteAffineAnimTable},
[SPECIES_GOREBYSS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gorebyss, gDummySpriteAffineAnimTable},
[SPECIES_RELICANTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Relicanth, gDummySpriteAffineAnimTable},
[SPECIES_LUVDISC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Luvdisc, gDummySpriteAffineAnimTable},
[SPECIES_BAGON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bagon, gDummySpriteAffineAnimTable},
[SPECIES_SHELGON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shelgon, gDummySpriteAffineAnimTable},
[SPECIES_SALAMENCE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Salamence, gDummySpriteAffineAnimTable},
[SPECIES_BELDUM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Beldum, gDummySpriteAffineAnimTable},
[SPECIES_METANG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Metang, gDummySpriteAffineAnimTable},
[SPECIES_METAGROSS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Metagross, gDummySpriteAffineAnimTable},
[SPECIES_REGIROCK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Regirock, gDummySpriteAffineAnimTable},
[SPECIES_REGICE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Regice, gDummySpriteAffineAnimTable},
[SPECIES_REGISTEEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Registeel, gDummySpriteAffineAnimTable},
[SPECIES_LATIAS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Latias, gDummySpriteAffineAnimTable},
[SPECIES_LATIOS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Latios, gDummySpriteAffineAnimTable},
[SPECIES_KYOGRE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kyogre, gDummySpriteAffineAnimTable},
[SPECIES_GROUDON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Groudon, gDummySpriteAffineAnimTable},
[SPECIES_RAYQUAZA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rayquaza, gDummySpriteAffineAnimTable},
[SPECIES_JIRACHI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jirachi, gDummySpriteAffineAnimTable},
[SPECIES_DEOXYS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Deoxys, gDummySpriteAffineAnimTable},
[SPECIES_BULBASAUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bulbasaur, gDummySpriteAffineAnimTable},
[SPECIES_IVYSAUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ivysaur, gDummySpriteAffineAnimTable},
[SPECIES_VENUSAUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Venusaur, gDummySpriteAffineAnimTable},
[SPECIES_CHARMANDER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Charmander, gDummySpriteAffineAnimTable},
[SPECIES_CHARMELEON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Charmeleon, gDummySpriteAffineAnimTable},
[SPECIES_CHARIZARD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Charizard, gDummySpriteAffineAnimTable},
[SPECIES_SQUIRTLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Squirtle, gDummySpriteAffineAnimTable},
[SPECIES_WARTORTLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wartortle, gDummySpriteAffineAnimTable},
[SPECIES_BLASTOISE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Blastoise, gDummySpriteAffineAnimTable},
[SPECIES_CATERPIE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Caterpie, gDummySpriteAffineAnimTable},
[SPECIES_METAPOD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Metapod, gDummySpriteAffineAnimTable},
[SPECIES_BUTTERFREE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Butterfree, gDummySpriteAffineAnimTable},
[SPECIES_WEEDLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Weedle, gDummySpriteAffineAnimTable},
[SPECIES_KAKUNA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kakuna, gDummySpriteAffineAnimTable},
[SPECIES_BEEDRILL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Beedrill, gDummySpriteAffineAnimTable},
[SPECIES_PIDGEY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pidgey, gDummySpriteAffineAnimTable},
[SPECIES_PIDGEOTTO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pidgeotto, gDummySpriteAffineAnimTable},
[SPECIES_PIDGEOT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pidgeot, gDummySpriteAffineAnimTable},
[SPECIES_RATTATA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rattata, gDummySpriteAffineAnimTable},
[SPECIES_RATICATE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Raticate, gDummySpriteAffineAnimTable},
[SPECIES_SPEAROW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spearow, gDummySpriteAffineAnimTable},
[SPECIES_FEAROW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Fearow, gDummySpriteAffineAnimTable},
[SPECIES_EKANS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ekans, gDummySpriteAffineAnimTable},
[SPECIES_ARBOK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Arbok, gDummySpriteAffineAnimTable},
[SPECIES_PIKACHU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pikachu, gDummySpriteAffineAnimTable},
[SPECIES_RAICHU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Raichu, gDummySpriteAffineAnimTable},
[SPECIES_SANDSHREW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sandshrew, gDummySpriteAffineAnimTable},
[SPECIES_SANDSLASH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sandslash, gDummySpriteAffineAnimTable},
[SPECIES_NIDORAN_F] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidoran_f, gDummySpriteAffineAnimTable},
[SPECIES_NIDORINA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidorina, gDummySpriteAffineAnimTable},
[SPECIES_NIDOQUEEN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidoqueen, gDummySpriteAffineAnimTable},
[SPECIES_NIDORAN_M] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidoran_m, gDummySpriteAffineAnimTable},
[SPECIES_NIDORINO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidorino, gDummySpriteAffineAnimTable},
[SPECIES_NIDOKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nidoking, gDummySpriteAffineAnimTable},
[SPECIES_CLEFAIRY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Clefairy, gDummySpriteAffineAnimTable},
[SPECIES_CLEFABLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Clefable, gDummySpriteAffineAnimTable},
[SPECIES_VULPIX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vulpix, gDummySpriteAffineAnimTable},
[SPECIES_NINETALES] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ninetales, gDummySpriteAffineAnimTable},
[SPECIES_JIGGLYPUFF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jigglypuff, gDummySpriteAffineAnimTable},
[SPECIES_WIGGLYTUFF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wigglytuff, gDummySpriteAffineAnimTable},
[SPECIES_ZUBAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Zubat, gDummySpriteAffineAnimTable},
[SPECIES_GOLBAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Golbat, gDummySpriteAffineAnimTable},
[SPECIES_ODDISH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Oddish, gDummySpriteAffineAnimTable},
[SPECIES_GLOOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gloom, gDummySpriteAffineAnimTable},
[SPECIES_VILEPLUME] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vileplume, gDummySpriteAffineAnimTable},
[SPECIES_PARAS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Paras, gDummySpriteAffineAnimTable},
[SPECIES_PARASECT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Parasect, gDummySpriteAffineAnimTable},
[SPECIES_VENONAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Venonat, gDummySpriteAffineAnimTable},
[SPECIES_VENOMOTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Venomoth, gDummySpriteAffineAnimTable},
[SPECIES_DIGLETT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Diglett, gDummySpriteAffineAnimTable},
[SPECIES_DUGTRIO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dugtrio, gDummySpriteAffineAnimTable},
[SPECIES_MEOWTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Meowth, gDummySpriteAffineAnimTable},
[SPECIES_PERSIAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Persian, gDummySpriteAffineAnimTable},
[SPECIES_PSYDUCK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Psyduck, gDummySpriteAffineAnimTable},
[SPECIES_GOLDUCK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Golduck, gDummySpriteAffineAnimTable},
[SPECIES_MANKEY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mankey, gDummySpriteAffineAnimTable},
[SPECIES_PRIMEAPE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Primeape, gDummySpriteAffineAnimTable},
[SPECIES_GROWLITHE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Growlithe, gDummySpriteAffineAnimTable},
[SPECIES_ARCANINE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Arcanine, gDummySpriteAffineAnimTable},
[SPECIES_POLIWAG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Poliwag, gDummySpriteAffineAnimTable},
[SPECIES_POLIWHIRL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Poliwhirl, gDummySpriteAffineAnimTable},
[SPECIES_POLIWRATH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Poliwrath, gDummySpriteAffineAnimTable},
[SPECIES_ABRA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Abra, gDummySpriteAffineAnimTable},
[SPECIES_KADABRA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kadabra, gDummySpriteAffineAnimTable},
[SPECIES_ALAKAZAM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Alakazam, gDummySpriteAffineAnimTable},
[SPECIES_MACHOP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Machop, gDummySpriteAffineAnimTable},
[SPECIES_MACHOKE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Machoke, gDummySpriteAffineAnimTable},
[SPECIES_MACHAMP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Machamp, gDummySpriteAffineAnimTable},
[SPECIES_BELLSPROUT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bellsprout, gDummySpriteAffineAnimTable},
[SPECIES_WEEPINBELL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Weepinbell, gDummySpriteAffineAnimTable},
[SPECIES_VICTREEBEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Victreebel, gDummySpriteAffineAnimTable},
[SPECIES_TENTACOOL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tentacool, gDummySpriteAffineAnimTable},
[SPECIES_TENTACRUEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tentacruel, gDummySpriteAffineAnimTable},
[SPECIES_GEODUDE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Geodude, gDummySpriteAffineAnimTable},
[SPECIES_GRAVELER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Graveler, gDummySpriteAffineAnimTable},
[SPECIES_GOLEM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Golem, gDummySpriteAffineAnimTable},
[SPECIES_PONYTA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ponyta, gDummySpriteAffineAnimTable},
[SPECIES_RAPIDASH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rapidash, gDummySpriteAffineAnimTable},
[SPECIES_SLOWPOKE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slowpoke, gDummySpriteAffineAnimTable},
[SPECIES_SLOWBRO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slowbro, gDummySpriteAffineAnimTable},
[SPECIES_MAGNEMITE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magnemite, gDummySpriteAffineAnimTable},
[SPECIES_MAGNETON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magneton, gDummySpriteAffineAnimTable},
[SPECIES_FARFETCHD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Farfetchd, gDummySpriteAffineAnimTable},
[SPECIES_DODUO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Doduo, gDummySpriteAffineAnimTable},
[SPECIES_DODRIO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dodrio, gDummySpriteAffineAnimTable},
[SPECIES_SEEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seel, gDummySpriteAffineAnimTable},
[SPECIES_DEWGONG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dewgong, gDummySpriteAffineAnimTable},
[SPECIES_GRIMER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Grimer, gDummySpriteAffineAnimTable},
[SPECIES_MUK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Muk, gDummySpriteAffineAnimTable},
[SPECIES_SHELLDER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shellder, gDummySpriteAffineAnimTable},
[SPECIES_CLOYSTER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cloyster, gDummySpriteAffineAnimTable},
[SPECIES_GASTLY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gastly, gDummySpriteAffineAnimTable},
[SPECIES_HAUNTER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Haunter, gDummySpriteAffineAnimTable},
[SPECIES_GENGAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gengar, gDummySpriteAffineAnimTable},
[SPECIES_ONIX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Onix, gDummySpriteAffineAnimTable},
[SPECIES_DROWZEE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Drowzee, gDummySpriteAffineAnimTable},
[SPECIES_HYPNO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hypno, gDummySpriteAffineAnimTable},
[SPECIES_KRABBY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Krabby, gDummySpriteAffineAnimTable},
[SPECIES_KINGLER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kingler, gDummySpriteAffineAnimTable},
[SPECIES_VOLTORB] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Voltorb, gDummySpriteAffineAnimTable},
[SPECIES_ELECTRODE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Electrode, gDummySpriteAffineAnimTable},
[SPECIES_EXEGGCUTE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Exeggcute, gDummySpriteAffineAnimTable},
[SPECIES_EXEGGUTOR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Exeggutor, gDummySpriteAffineAnimTable},
[SPECIES_CUBONE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cubone, gDummySpriteAffineAnimTable},
[SPECIES_MAROWAK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Marowak, gDummySpriteAffineAnimTable},
[SPECIES_HITMONLEE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hitmonlee, gDummySpriteAffineAnimTable},
[SPECIES_HITMONCHAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hitmonchan, gDummySpriteAffineAnimTable},
[SPECIES_LICKITUNG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lickitung, gDummySpriteAffineAnimTable},
[SPECIES_KOFFING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Koffing, gDummySpriteAffineAnimTable},
[SPECIES_WEEZING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Weezing, gDummySpriteAffineAnimTable},
[SPECIES_RHYHORN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rhyhorn, gDummySpriteAffineAnimTable},
[SPECIES_RHYDON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rhydon, gDummySpriteAffineAnimTable},
[SPECIES_CHANSEY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Chansey, gDummySpriteAffineAnimTable},
[SPECIES_TANGELA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tangela, gDummySpriteAffineAnimTable},
[SPECIES_KANGASKHAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kangaskhan, gDummySpriteAffineAnimTable},
[SPECIES_HORSEA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Horsea, gDummySpriteAffineAnimTable},
[SPECIES_SEADRA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seadra, gDummySpriteAffineAnimTable},
[SPECIES_GOLDEEN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Goldeen, gDummySpriteAffineAnimTable},
[SPECIES_SEAKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seaking, gDummySpriteAffineAnimTable},
[SPECIES_STARYU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Staryu, gDummySpriteAffineAnimTable},
[SPECIES_STARMIE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Starmie, gDummySpriteAffineAnimTable},
[SPECIES_MR_MIME] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mr_Mime, gDummySpriteAffineAnimTable},
[SPECIES_SCYTHER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Scyther, gDummySpriteAffineAnimTable},
[SPECIES_JYNX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jynx, gDummySpriteAffineAnimTable},
[SPECIES_ELECTABUZZ] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Electabuzz, gDummySpriteAffineAnimTable},
[SPECIES_MAGMAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magmar, gDummySpriteAffineAnimTable},
[SPECIES_PINSIR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pinsir, gDummySpriteAffineAnimTable},
[SPECIES_TAUROS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tauros, gDummySpriteAffineAnimTable},
[SPECIES_MAGIKARP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magikarp, gDummySpriteAffineAnimTable},
[SPECIES_GYARADOS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gyarados, gDummySpriteAffineAnimTable},
[SPECIES_LAPRAS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lapras, gDummySpriteAffineAnimTable},
[SPECIES_DITTO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ditto, gDummySpriteAffineAnimTable},
[SPECIES_EEVEE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Eevee, gDummySpriteAffineAnimTable},
[SPECIES_VAPOREON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vaporeon, gDummySpriteAffineAnimTable},
[SPECIES_JOLTEON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jolteon, gDummySpriteAffineAnimTable},
[SPECIES_FLAREON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Flareon, gDummySpriteAffineAnimTable},
[SPECIES_PORYGON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Porygon, gDummySpriteAffineAnimTable},
[SPECIES_OMANYTE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Omanyte, gDummySpriteAffineAnimTable},
[SPECIES_OMASTAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Omastar, gDummySpriteAffineAnimTable},
[SPECIES_KABUTO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kabuto, gDummySpriteAffineAnimTable},
[SPECIES_KABUTOPS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kabutops, gDummySpriteAffineAnimTable},
[SPECIES_AERODACTYL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Aerodactyl, gDummySpriteAffineAnimTable},
[SPECIES_SNORLAX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Snorlax, gDummySpriteAffineAnimTable},
[SPECIES_ARTICUNO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Articuno, gDummySpriteAffineAnimTable},
[SPECIES_ZAPDOS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Zapdos, gDummySpriteAffineAnimTable},
[SPECIES_MOLTRES] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Moltres, gDummySpriteAffineAnimTable},
[SPECIES_DRATINI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dratini, gDummySpriteAffineAnimTable},
[SPECIES_DRAGONAIR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dragonair, gDummySpriteAffineAnimTable},
[SPECIES_DRAGONITE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dragonite, gDummySpriteAffineAnimTable},
[SPECIES_MEWTWO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mewtwo, gDummySpriteAffineAnimTable},
[SPECIES_MEW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mew, gDummySpriteAffineAnimTable},
[SPECIES_CHIKORITA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Chikorita, gDummySpriteAffineAnimTable},
[SPECIES_BAYLEEF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bayleef, gDummySpriteAffineAnimTable},
[SPECIES_MEGANIUM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Meganium, gDummySpriteAffineAnimTable},
[SPECIES_CYNDAQUIL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cyndaquil, gDummySpriteAffineAnimTable},
[SPECIES_QUILAVA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Quilava, gDummySpriteAffineAnimTable},
[SPECIES_TYPHLOSION] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Typhlosion, gDummySpriteAffineAnimTable},
[SPECIES_TOTODILE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Totodile, gDummySpriteAffineAnimTable},
[SPECIES_CROCONAW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Croconaw, gDummySpriteAffineAnimTable},
[SPECIES_FERALIGATR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Feraligatr, gDummySpriteAffineAnimTable},
[SPECIES_SENTRET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sentret, gDummySpriteAffineAnimTable},
[SPECIES_FURRET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Furret, gDummySpriteAffineAnimTable},
[SPECIES_HOOTHOOT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hoothoot, gDummySpriteAffineAnimTable},
[SPECIES_NOCTOWL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Noctowl, gDummySpriteAffineAnimTable},
[SPECIES_LEDYBA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ledyba, gDummySpriteAffineAnimTable},
[SPECIES_LEDIAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ledian, gDummySpriteAffineAnimTable},
[SPECIES_SPINARAK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spinarak, gDummySpriteAffineAnimTable},
[SPECIES_ARIADOS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ariados, gDummySpriteAffineAnimTable},
[SPECIES_CROBAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Crobat, gDummySpriteAffineAnimTable},
[SPECIES_CHINCHOU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Chinchou, gDummySpriteAffineAnimTable},
[SPECIES_LANTURN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lanturn, gDummySpriteAffineAnimTable},
[SPECIES_PICHU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pichu, gDummySpriteAffineAnimTable},
[SPECIES_CLEFFA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cleffa, gDummySpriteAffineAnimTable},
[SPECIES_IGGLYBUFF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Igglybuff, gDummySpriteAffineAnimTable},
[SPECIES_TOGEPI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Togepi, gDummySpriteAffineAnimTable},
[SPECIES_TOGETIC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Togetic, gDummySpriteAffineAnimTable},
[SPECIES_NATU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Natu, gDummySpriteAffineAnimTable},
[SPECIES_XATU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Xatu, gDummySpriteAffineAnimTable},
[SPECIES_MAREEP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mareep, gDummySpriteAffineAnimTable},
[SPECIES_FLAAFFY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Flaaffy, gDummySpriteAffineAnimTable},
[SPECIES_AMPHAROS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ampharos, gDummySpriteAffineAnimTable},
[SPECIES_BELLOSSOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bellossom, gDummySpriteAffineAnimTable},
[SPECIES_MARILL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Marill, gDummySpriteAffineAnimTable},
[SPECIES_AZUMARILL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Azumarill, gDummySpriteAffineAnimTable},
[SPECIES_SUDOWOODO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sudowoodo, gDummySpriteAffineAnimTable},
[SPECIES_POLITOED] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Politoed, gDummySpriteAffineAnimTable},
[SPECIES_HOPPIP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hoppip, gDummySpriteAffineAnimTable},
[SPECIES_SKIPLOOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Skiploom, gDummySpriteAffineAnimTable},
[SPECIES_JUMPLUFF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jumpluff, gDummySpriteAffineAnimTable},
[SPECIES_AIPOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Aipom, gDummySpriteAffineAnimTable},
[SPECIES_SUNKERN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sunkern, gDummySpriteAffineAnimTable},
[SPECIES_SUNFLORA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sunflora, gDummySpriteAffineAnimTable},
[SPECIES_YANMA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Yanma, gDummySpriteAffineAnimTable},
[SPECIES_WOOPER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wooper, gDummySpriteAffineAnimTable},
[SPECIES_QUAGSIRE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Quagsire, gDummySpriteAffineAnimTable},
[SPECIES_ESPEON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Espeon, gDummySpriteAffineAnimTable},
[SPECIES_UMBREON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Umbreon, gDummySpriteAffineAnimTable},
[SPECIES_MURKROW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Murkrow, gDummySpriteAffineAnimTable},
[SPECIES_SLOWKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slowking, gDummySpriteAffineAnimTable},
[SPECIES_MISDREAVUS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Misdreavus, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_A, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_B] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_B, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_C] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_C, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_D] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_D, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_E] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_E, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_F] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_F, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_G] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_G, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_H] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_H, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_I] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_I, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_J] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_J, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_K] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_K, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_L] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_L, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_M] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_M, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_N] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_N, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_O] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_O, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_P] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_P, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Q] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Q, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_R] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_R, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_S] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_S, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_T] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_T, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_U] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_U, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_V] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_V, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_W] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_W, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_X] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_X, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Y] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Y, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Z] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Z, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_EMARK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Exclamation, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_QMARK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Unown_Question, gDummySpriteAffineAnimTable},
[SPECIES_WOBBUFFET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wobbuffet, gDummySpriteAffineAnimTable},
[SPECIES_GIRAFARIG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Girafarig, gDummySpriteAffineAnimTable},
[SPECIES_PINECO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pineco, gDummySpriteAffineAnimTable},
[SPECIES_FORRETRESS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Forretress, gDummySpriteAffineAnimTable},
[SPECIES_DUNSPARCE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dunsparce, gDummySpriteAffineAnimTable},
[SPECIES_GLIGAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gligar, gDummySpriteAffineAnimTable},
[SPECIES_STEELIX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Steelix, gDummySpriteAffineAnimTable},
[SPECIES_SNUBBULL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Snubbull, gDummySpriteAffineAnimTable},
[SPECIES_GRANBULL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Granbull, gDummySpriteAffineAnimTable},
[SPECIES_QWILFISH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Qwilfish, gDummySpriteAffineAnimTable},
[SPECIES_SCIZOR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Scizor, gDummySpriteAffineAnimTable},
[SPECIES_SHUCKLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shuckle, gDummySpriteAffineAnimTable},
[SPECIES_HERACROSS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Heracross, gDummySpriteAffineAnimTable},
[SPECIES_SNEASEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sneasel, gDummySpriteAffineAnimTable},
[SPECIES_TEDDIURSA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Teddiursa, gDummySpriteAffineAnimTable},
[SPECIES_URSARING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ursaring, gDummySpriteAffineAnimTable},
[SPECIES_SLUGMA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slugma, gDummySpriteAffineAnimTable},
[SPECIES_MAGCARGO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magcargo, gDummySpriteAffineAnimTable},
[SPECIES_SWINUB] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swinub, gDummySpriteAffineAnimTable},
[SPECIES_PILOSWINE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Piloswine, gDummySpriteAffineAnimTable},
[SPECIES_CORSOLA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Corsola, gDummySpriteAffineAnimTable},
[SPECIES_REMORAID] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Remoraid, gDummySpriteAffineAnimTable},
[SPECIES_OCTILLERY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Octillery, gDummySpriteAffineAnimTable},
[SPECIES_DELIBIRD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Delibird, gDummySpriteAffineAnimTable},
[SPECIES_MANTINE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mantine, gDummySpriteAffineAnimTable},
[SPECIES_SKARMORY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Skarmory, gDummySpriteAffineAnimTable},
[SPECIES_HOUNDOUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Houndour, gDummySpriteAffineAnimTable},
[SPECIES_HOUNDOOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Houndoom, gDummySpriteAffineAnimTable},
[SPECIES_KINGDRA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kingdra, gDummySpriteAffineAnimTable},
[SPECIES_PHANPY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Phanpy, gDummySpriteAffineAnimTable},
[SPECIES_DONPHAN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Donphan, gDummySpriteAffineAnimTable},
[SPECIES_PORYGON2] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Porygon2, gDummySpriteAffineAnimTable},
[SPECIES_STANTLER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Stantler, gDummySpriteAffineAnimTable},
[SPECIES_SMEARGLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Smeargle, gDummySpriteAffineAnimTable},
[SPECIES_TYROGUE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tyrogue, gDummySpriteAffineAnimTable},
[SPECIES_HITMONTOP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hitmontop, gDummySpriteAffineAnimTable},
[SPECIES_SMOOCHUM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Smoochum, gDummySpriteAffineAnimTable},
[SPECIES_ELEKID] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Elekid, gDummySpriteAffineAnimTable},
[SPECIES_MAGBY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Magby, gDummySpriteAffineAnimTable},
[SPECIES_MILTANK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Miltank, gDummySpriteAffineAnimTable},
[SPECIES_BLISSEY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Blissey, gDummySpriteAffineAnimTable},
[SPECIES_RAIKOU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Raikou, gDummySpriteAffineAnimTable},
[SPECIES_ENTEI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Entei, gDummySpriteAffineAnimTable},
[SPECIES_SUICUNE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Suicune, gDummySpriteAffineAnimTable},
[SPECIES_LARVITAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Larvitar, gDummySpriteAffineAnimTable},
[SPECIES_PUPITAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pupitar, gDummySpriteAffineAnimTable},
[SPECIES_TYRANITAR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tyranitar, gDummySpriteAffineAnimTable},
[SPECIES_LUGIA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lugia, gDummySpriteAffineAnimTable},
[SPECIES_HO_OH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ho_oh, gDummySpriteAffineAnimTable},
[SPECIES_CELEBI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Celebi, gDummySpriteAffineAnimTable},
[SPECIES_TREECKO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Treecko, gDummySpriteAffineAnimTable},
[SPECIES_GROVYLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Grovyle, gDummySpriteAffineAnimTable},
[SPECIES_SCEPTILE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sceptile, gDummySpriteAffineAnimTable},
[SPECIES_TORCHIC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Torchic, gDummySpriteAffineAnimTable},
[SPECIES_COMBUSKEN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Combusken, gDummySpriteAffineAnimTable},
[SPECIES_BLAZIKEN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Blaziken, gDummySpriteAffineAnimTable},
[SPECIES_MUDKIP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mudkip, gDummySpriteAffineAnimTable},
[SPECIES_MARSHTOMP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Marshtomp, gDummySpriteAffineAnimTable},
[SPECIES_SWAMPERT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swampert, gDummySpriteAffineAnimTable},
[SPECIES_POOCHYENA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Poochyena, gDummySpriteAffineAnimTable},
[SPECIES_MIGHTYENA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mightyena, gDummySpriteAffineAnimTable},
[SPECIES_ZIGZAGOON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Zigzagoon, gDummySpriteAffineAnimTable},
[SPECIES_LINOONE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Linoone, gDummySpriteAffineAnimTable},
[SPECIES_WURMPLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wurmple, gDummySpriteAffineAnimTable},
[SPECIES_SILCOON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Silcoon, gDummySpriteAffineAnimTable},
[SPECIES_BEAUTIFLY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Beautifly, gDummySpriteAffineAnimTable},
[SPECIES_CASCOON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cascoon, gDummySpriteAffineAnimTable},
[SPECIES_DUSTOX] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dustox, gDummySpriteAffineAnimTable},
[SPECIES_LOTAD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lotad, gDummySpriteAffineAnimTable},
[SPECIES_LOMBRE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lombre, gDummySpriteAffineAnimTable},
[SPECIES_LUDICOLO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ludicolo, gDummySpriteAffineAnimTable},
[SPECIES_SEEDOT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seedot, gDummySpriteAffineAnimTable},
[SPECIES_NUZLEAF] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nuzleaf, gDummySpriteAffineAnimTable},
[SPECIES_SHIFTRY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shiftry, gDummySpriteAffineAnimTable},
[SPECIES_TAILLOW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Taillow, gDummySpriteAffineAnimTable},
[SPECIES_SWELLOW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swellow, gDummySpriteAffineAnimTable},
[SPECIES_WINGULL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wingull, gDummySpriteAffineAnimTable},
[SPECIES_PELIPPER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Pelipper, gDummySpriteAffineAnimTable},
[SPECIES_RALTS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ralts, gDummySpriteAffineAnimTable},
[SPECIES_KIRLIA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kirlia, gDummySpriteAffineAnimTable},
[SPECIES_GARDEVOIR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gardevoir, gDummySpriteAffineAnimTable},
[SPECIES_SURSKIT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Surskit, gDummySpriteAffineAnimTable},
[SPECIES_MASQUERAIN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Masquerain, gDummySpriteAffineAnimTable},
[SPECIES_SHROOMISH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shroomish, gDummySpriteAffineAnimTable},
[SPECIES_BRELOOM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Breloom, gDummySpriteAffineAnimTable},
[SPECIES_SLAKOTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slakoth, gDummySpriteAffineAnimTable},
[SPECIES_VIGOROTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vigoroth, gDummySpriteAffineAnimTable},
[SPECIES_SLAKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Slaking, gDummySpriteAffineAnimTable},
[SPECIES_NINCADA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nincada, gDummySpriteAffineAnimTable},
[SPECIES_NINJASK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Ninjask, gDummySpriteAffineAnimTable},
[SPECIES_SHEDINJA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shedinja, gDummySpriteAffineAnimTable},
[SPECIES_WHISMUR] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Whismur, gDummySpriteAffineAnimTable},
[SPECIES_LOUDRED] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Loudred, gDummySpriteAffineAnimTable},
[SPECIES_EXPLOUD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Exploud, gDummySpriteAffineAnimTable},
[SPECIES_MAKUHITA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Makuhita, gDummySpriteAffineAnimTable},
[SPECIES_HARIYAMA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Hariyama, gDummySpriteAffineAnimTable},
[SPECIES_AZURILL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Azurill, gDummySpriteAffineAnimTable},
[SPECIES_NOSEPASS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Nosepass, gDummySpriteAffineAnimTable},
[SPECIES_SKITTY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Skitty, gDummySpriteAffineAnimTable},
[SPECIES_DELCATTY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Delcatty, gDummySpriteAffineAnimTable},
[SPECIES_SABLEYE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sableye, gDummySpriteAffineAnimTable},
[SPECIES_MAWILE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Mawile, gDummySpriteAffineAnimTable},
[SPECIES_ARON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Aron, gDummySpriteAffineAnimTable},
[SPECIES_LAIRON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lairon, gDummySpriteAffineAnimTable},
[SPECIES_AGGRON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Aggron, gDummySpriteAffineAnimTable},
[SPECIES_MEDITITE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Meditite, gDummySpriteAffineAnimTable},
[SPECIES_MEDICHAM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Medicham, gDummySpriteAffineAnimTable},
[SPECIES_ELECTRIKE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Electrike, gDummySpriteAffineAnimTable},
[SPECIES_MANECTRIC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Manectric, gDummySpriteAffineAnimTable},
[SPECIES_PLUSLE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Plusle, gDummySpriteAffineAnimTable},
[SPECIES_MINUN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Minun, gDummySpriteAffineAnimTable},
[SPECIES_VOLBEAT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Volbeat, gDummySpriteAffineAnimTable},
[SPECIES_ILLUMISE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Illumise, gDummySpriteAffineAnimTable},
[SPECIES_ROSELIA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Roselia, gDummySpriteAffineAnimTable},
[SPECIES_GULPIN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gulpin, gDummySpriteAffineAnimTable},
[SPECIES_SWALOT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swalot, gDummySpriteAffineAnimTable},
[SPECIES_CARVANHA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Carvanha, gDummySpriteAffineAnimTable},
[SPECIES_SHARPEDO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sharpedo, gDummySpriteAffineAnimTable},
[SPECIES_WAILMER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wailmer, gDummySpriteAffineAnimTable},
[SPECIES_WAILORD] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wailord, gDummySpriteAffineAnimTable},
[SPECIES_NUMEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Numel, gDummySpriteAffineAnimTable},
[SPECIES_CAMERUPT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Camerupt, gDummySpriteAffineAnimTable},
[SPECIES_TORKOAL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Torkoal, gDummySpriteAffineAnimTable},
[SPECIES_SPOINK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spoink, gDummySpriteAffineAnimTable},
[SPECIES_GRUMPIG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Grumpig, gDummySpriteAffineAnimTable},
[SPECIES_SPINDA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spinda, gDummySpriteAffineAnimTable},
[SPECIES_TRAPINCH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Trapinch, gDummySpriteAffineAnimTable},
[SPECIES_VIBRAVA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Vibrava, gDummySpriteAffineAnimTable},
[SPECIES_FLYGON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Flygon, gDummySpriteAffineAnimTable},
[SPECIES_CACNEA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cacnea, gDummySpriteAffineAnimTable},
[SPECIES_CACTURNE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cacturne, gDummySpriteAffineAnimTable},
[SPECIES_SWABLU] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Swablu, gDummySpriteAffineAnimTable},
[SPECIES_ALTARIA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Altaria, gDummySpriteAffineAnimTable},
[SPECIES_ZANGOOSE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Zangoose, gDummySpriteAffineAnimTable},
[SPECIES_SEVIPER] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Seviper, gDummySpriteAffineAnimTable},
[SPECIES_LUNATONE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lunatone, gDummySpriteAffineAnimTable},
[SPECIES_SOLROCK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Solrock, gDummySpriteAffineAnimTable},
[SPECIES_BARBOACH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Barboach, gDummySpriteAffineAnimTable},
[SPECIES_WHISCASH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Whiscash, gDummySpriteAffineAnimTable},
[SPECIES_CORPHISH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Corphish, gDummySpriteAffineAnimTable},
[SPECIES_CRAWDAUNT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Crawdaunt, gDummySpriteAffineAnimTable},
[SPECIES_BALTOY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Baltoy, gDummySpriteAffineAnimTable},
[SPECIES_CLAYDOL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Claydol, gDummySpriteAffineAnimTable},
[SPECIES_LILEEP] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Lileep, gDummySpriteAffineAnimTable},
[SPECIES_CRADILY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Cradily, gDummySpriteAffineAnimTable},
[SPECIES_ANORITH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_BUG, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Anorith, gDummySpriteAffineAnimTable},
[SPECIES_ARMALDO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Armaldo, gDummySpriteAffineAnimTable},
[SPECIES_FEEBAS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Feebas, gDummySpriteAffineAnimTable},
[SPECIES_MILOTIC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Milotic, gDummySpriteAffineAnimTable},
[SPECIES_CASTFORM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Castform, gDummySpriteAffineAnimTable},
[SPECIES_CASTFORM_SUNNY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_CastformSunny, gDummySpriteAffineAnimTable},
[SPECIES_CASTFORM_RAINY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_CastformRainy, gDummySpriteAffineAnimTable},
[SPECIES_CASTFORM_SNOWY] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_CastformSnowy, gDummySpriteAffineAnimTable},
[SPECIES_KECLEON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kecleon, gDummySpriteAffineAnimTable},
[SPECIES_SHUPPET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shuppet, gDummySpriteAffineAnimTable},
[SPECIES_BANETTE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Banette, gDummySpriteAffineAnimTable},
[SPECIES_DUSKULL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Duskull, gDummySpriteAffineAnimTable},
[SPECIES_DUSCLOPS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Dusclops, gDummySpriteAffineAnimTable},
[SPECIES_TROPIUS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Tropius, gDummySpriteAffineAnimTable},
[SPECIES_CHIMECHO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Chimecho, gDummySpriteAffineAnimTable},
[SPECIES_ABSOL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Absol, gDummySpriteAffineAnimTable},
[SPECIES_WYNAUT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Wynaut, gDummySpriteAffineAnimTable},
[SPECIES_SNORUNT] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Snorunt, gDummySpriteAffineAnimTable},
[SPECIES_GLALIE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Glalie, gDummySpriteAffineAnimTable},
[SPECIES_SPHEAL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Spheal, gDummySpriteAffineAnimTable},
[SPECIES_SEALEO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Sealeo, gDummySpriteAffineAnimTable},
[SPECIES_WALREIN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Walrein, gDummySpriteAffineAnimTable},
[SPECIES_CLAMPERL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Clamperl, gDummySpriteAffineAnimTable},
[SPECIES_HUNTAIL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Huntail, gDummySpriteAffineAnimTable},
[SPECIES_GOREBYSS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SLITHER, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Gorebyss, gDummySpriteAffineAnimTable},
[SPECIES_RELICANTH] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Relicanth, gDummySpriteAffineAnimTable},
[SPECIES_LUVDISC] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_SPOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Luvdisc, gDummySpriteAffineAnimTable},
[SPECIES_BAGON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Bagon, gDummySpriteAffineAnimTable},
[SPECIES_SHELGON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Shelgon, gDummySpriteAffineAnimTable},
[SPECIES_SALAMENCE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Salamence, gDummySpriteAffineAnimTable},
[SPECIES_BELDUM] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Beldum, gDummySpriteAffineAnimTable},
[SPECIES_METANG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Metang, gDummySpriteAffineAnimTable},
[SPECIES_METAGROSS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Metagross, gDummySpriteAffineAnimTable},
[SPECIES_REGIROCK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Regirock, gDummySpriteAffineAnimTable},
[SPECIES_REGICE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Regice, gDummySpriteAffineAnimTable},
[SPECIES_REGISTEEL] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Registeel, gDummySpriteAffineAnimTable},
[SPECIES_LATIAS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Latias, gDummySpriteAffineAnimTable},
[SPECIES_LATIOS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Latios, gDummySpriteAffineAnimTable},
[SPECIES_KYOGRE] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Kyogre, gDummySpriteAffineAnimTable},
[SPECIES_GROUDON] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Groudon, gDummySpriteAffineAnimTable},
[SPECIES_RAYQUAZA] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Rayquaza, gDummySpriteAffineAnimTable},
[SPECIES_JIRACHI] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Jirachi, gDummySpriteAffineAnimTable},
[SPECIES_DEOXYS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, COMP, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Following, sPicTable_Deoxys, gDummySpriteAffineAnimTable},
};

File diff suppressed because it is too large Load Diff

View File

@ -29,6 +29,35 @@ u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src)
return LoadSpriteSheet(&dest);
}
// This can be used for either compressed or uncompressed sprite sheets
u16 LoadCompressedSpriteSheetByTemplate(const struct SpriteTemplate *template, s32 offset) {
struct SpriteTemplate myTemplate;
struct SpriteFrameImage myImage;
const u8 *data = template->images->data;
u32 size;
// (Heuristic) Check for LZ77 header
// See https://problemkaputt.de/gbatek.htm#biosdecompressionfunctions
// data[3] could be nonzero; but this would mean data >= 65536 bytes,
// which is 2048 tiles, far too big in practice
if (data[0] != 0x10 || data[3] != 0) // not compressed
return LoadSpriteSheetByTemplate(template, 0, offset);
// read uncompressed size from header
size = T1_READ_16(&data[1]);
// too big for compression buffer, so probably not compressed
if (size >= ARRAY_COUNT(gDecompressionBuffer))
return LoadSpriteSheetByTemplate(template, 0, offset);
LZ77UnCompWram(template->images->data, gDecompressionBuffer);
myImage.data = gDecompressionBuffer;
myImage.size = size + offset;
myTemplate.images = &myImage;
myTemplate.tileTag = template->tileTag;
return LoadSpriteSheetByTemplate(&myTemplate, 0, offset);
}
void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer)
{
struct SpriteSheet dest;

View File

@ -4,6 +4,7 @@
#include "decompress.h"
#include "main.h"
#include "battle_main.h"
#include "sprite.h"
struct DigitPrinter
{
@ -44,29 +45,6 @@ static bool32 SharesPalWithAnyActive(u32 id);
// ewram
static EWRAM_DATA struct DigitPrinterAlloc *sOamWork = {0};
// const rom data
static const u8 sTilesPerImage[4][4] =
{
[ST_OAM_SQUARE] = {
[ST_OAM_SIZE_0] = 0x01, // SPRITE_SIZE_8x8
[ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_16x16
[ST_OAM_SIZE_2] = 0x10, // SPRITE_SIZE_32x32
[ST_OAM_SIZE_3] = 0x40 // SPRITE_SIZE_64x64
},
[ST_OAM_H_RECTANGLE] = {
[ST_OAM_SIZE_0] = 0x02, // SPRITE_SIZE_16x8
[ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_32x8
[ST_OAM_SIZE_2] = 0x08, // SPRITE_SIZE_32x16
[ST_OAM_SIZE_3] = 0x20 // SPRITE_SIZE_64x32
},
[ST_OAM_V_RECTANGLE] = {
[ST_OAM_SIZE_0] = 0x02, // SPRITE_SIZE_8x16
[ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_8x32
[ST_OAM_SIZE_2] = 0x08, // SPRITE_SIZE_16x32
[ST_OAM_SIZE_3] = 0x20 // SPRITE_SIZE_32x64
}
};
// code
bool32 DigitObjUtil_Init(u32 count)
{
@ -446,5 +424,5 @@ static bool32 SharesPalWithAnyActive(u32 id)
u8 GetTilesPerImage(u32 shape, u32 size)
{
return sTilesPerImage[shape][size];
return 1 << GetSpanPerImage(shape, size);
}

View File

@ -484,8 +484,17 @@ const u8 gInitialMovementTypeFacingDirections[] = {
#define OBJ_EVENT_PAL_TAG_RS_MAY 0x1123
#define OBJ_EVENT_PAL_TAG_DYNAMIC 0x1124
#define OBJ_EVENT_PAL_TAG_EMOTES 0x8002
// Not a real OW palette tag; used for the white flash applied to followers
#define OBJ_EVENT_PAL_TAG_WHITE (OBJ_EVENT_PAL_TAG_NONE - 1)
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF
#if OW_GFX_COMPRESS
// This + localId is used as the tileTag
// for compressed graphicsInfos
// '(C)ompressed (E)vent'
#define COMP_OW_TILE_TAG_BASE 0xCE00
#endif
#include "data/object_events/object_event_graphics_info_pointers.h"
#include "data/field_effects/field_effect_object_template_pointers.h"
#include "data/object_events/object_event_pic_tables.h"
@ -1425,19 +1434,29 @@ void RemoveObjectEventByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup)
static void RemoveObjectEventInternal(struct ObjectEvent *objectEvent)
{
u8 paletteNum;
struct SpriteFrameImage image;
image.size = GetObjectEventGraphicsInfo(objectEvent->graphicsId)->size;
gSprites[objectEvent->spriteId].images = &image;
paletteNum = gSprites[objectEvent->spriteId].oam.paletteNum;
DestroySprite(&gSprites[objectEvent->spriteId]);
// It's possible that this function is called while the sprite pointed to `== sDummySprite`, i.e during map resume;
// In this case, don't free the palette as `paletteNum` is likely blank dummy data
if (gSprites[objectEvent->spriteId].inUse
|| gSprites[objectEvent->spriteId].oam.paletteNum
|| gSprites[objectEvent->spriteId].callback != SpriteCallbackDummy)
if (!gSprites[objectEvent->spriteId].inUse &&
!gSprites[objectEvent->spriteId].oam.paletteNum &&
gSprites[objectEvent->spriteId].callback == SpriteCallbackDummy)
{
DestroySprite(&gSprites[objectEvent->spriteId]);
}
else
{
u32 paletteNum = gSprites[objectEvent->spriteId].oam.paletteNum;
#if OW_GFX_COMPRESS
u16 tileStart = gSprites[objectEvent->spriteId].sheetTileStart;
#endif
DestroySprite(&gSprites[objectEvent->spriteId]);
FieldEffectFreePaletteIfUnused(paletteNum);
#if OW_GFX_COMPRESS
if (tileStart)
FieldEffectFreeTilesIfUnused(tileStart);
#endif
}
}
@ -1452,6 +1471,53 @@ void RemoveAllObjectEventsExceptPlayer(void)
}
}
#if OW_GFX_COMPRESS
u16 LoadSheetGraphicsInfo(const struct ObjectEventGraphicsInfo *info, u16 uuid, struct Sprite *sprite) {
u16 tag = info->tileTag;
if (tag != TAG_NONE || info->compressed) { // sheet-based gfx
u32 sheetSpan = GetSpanPerImage(info->oam->shape, info->oam->size);
u16 oldTiles = 0;
u16 tileStart;
if (tag == TAG_NONE)
tag = COMP_OW_TILE_TAG_BASE + uuid;
if (sprite) {
oldTiles = sprite->sheetTileStart;
sprite->sheetTileStart = 0; // mark unused
// Note: If sprite was not allocated to use a sheet,
// the tiles assigned to it will leak here,
// as its tileNum will be repointed to the new tileStart
// TODO: Unload static tiles!
}
tileStart = GetSpriteTileStartByTag(tag);
// sheet not loaded; unload any old tiles and load it
if (tileStart == TAG_NONE) {
struct SpriteFrameImage image = {.size = info->size, .data = info->images->data};
struct SpriteTemplate template = {.tileTag = tag, .images = &image};
if (oldTiles)
FieldEffectFreeTilesIfUnused(oldTiles);
tileStart = LoadCompressedSpriteSheetByTemplate(&template, TILE_SIZE_4BPP << sheetSpan);
// sheet loaded; unload any *other* sheet for sprite
} else if (oldTiles && oldTiles != tileStart) {
FieldEffectFreeTilesIfUnused(oldTiles);
}
if (sprite) {
sprite->sheetTileStart = tileStart;
sprite->sheetSpan = sheetSpan;
sprite->usingSheet = TRUE;
}
// Going from sheet -> !sheet, reset tile number
// (sheet stays loaded)
} else if (sprite && sprite->usingSheet) {
sprite->oam.tileNum = sprite->sheetTileStart;
sprite->usingSheet = FALSE;
}
return tag;
}
#endif
static u8 TrySetupObjectEventSprite(const struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY)
{
u8 spriteId;
@ -1472,6 +1538,10 @@ static u8 TrySetupObjectEventSprite(const struct ObjectEventTemplate *objectEven
if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE)
objectEvent->invisible = TRUE;
#if OW_GFX_COMPRESS
spriteTemplate->tileTag = LoadSheetGraphicsInfo(graphicsInfo, objectEvent->graphicsId, NULL);
#endif
spriteId = CreateSprite(spriteTemplate, 0, 0, 0);
if (spriteId == MAX_SPRITES)
{
@ -1484,6 +1554,10 @@ static u8 TrySetupObjectEventSprite(const struct ObjectEventTemplate *objectEven
if (spriteTemplate->paletteTag == OBJ_EVENT_PAL_TAG_DYNAMIC)
sprite->oam.paletteNum = LoadDynamicFollowerPalette(OW_SPECIES(objectEvent), OW_FORM(objectEvent), objectEvent->shiny);
#if OW_GFX_COMPRESS
if (sprite->usingSheet)
sprite->sheetSpan = GetSpanPerImage(sprite->oam.shape, sprite->oam.size);
#endif
GetMapCoordsFromSpritePos(objectEvent->currentCoords.x + cameraX, objectEvent->currentCoords.y + cameraY, &sprite->x, &sprite->y);
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
@ -1532,9 +1606,6 @@ static u8 TrySpawnObjectEventTemplate(const struct ObjectEventTemplate *objectEv
struct SpriteFrameImage spriteFrameImage;
const struct ObjectEventGraphicsInfo *graphicsInfo;
const struct SubspriteTable *subspriteTables = NULL;
u16 species;
u8 form = 0;
bool8 shiny = FALSE;
graphicsInfo = GetObjectEventGraphicsInfo(graphicsId);
CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(graphicsId, objectEventTemplate->movementType, &spriteTemplate, &subspriteTables);
@ -1635,6 +1706,7 @@ u8 CreateObjectGraphicsSprite(u16 graphicsId, void (*callback)(struct Sprite *),
{
struct SpriteTemplate *spriteTemplate;
const struct SubspriteTable *subspriteTables;
const struct ObjectEventGraphicsInfo *graphicsInfo;
struct Sprite *sprite;
u8 spriteId;
u32 paletteNum;
@ -1654,12 +1726,23 @@ u8 CreateObjectGraphicsSprite(u16 graphicsId, void (*callback)(struct Sprite *),
LoadObjectEventPalette(spriteTemplate->paletteTag);
}
#if OW_GFX_COMPRESS
graphicsInfo = GetObjectEventGraphicsInfo(graphicsId);
// Checking only for compressed here so as not to mess with decorations
if (graphicsInfo->compressed)
spriteTemplate->tileTag = LoadSheetGraphicsInfo(graphicsInfo, graphicsId, NULL);
#endif
spriteId = CreateSprite(spriteTemplate, x, y, subpriority);
Free(spriteTemplate);
if (spriteId != MAX_SPRITES && subspriteTables != NULL)
{
sprite = &gSprites[spriteId];
#if OW_GFX_COMPRESS
if (graphicsInfo->compressed)
sprite->sheetSpan = GetSpanPerImage(sprite->oam.shape, sprite->oam.size);
#endif
SetSubspriteTables(sprite, subspriteTables);
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
}
@ -1752,7 +1835,17 @@ static const struct ObjectEventGraphicsInfo * SpeciesToGraphicsInfo(u16 species,
graphicsInfo = &gPokemonObjectGraphics[species];
break;
}
return graphicsInfo->tileTag == TAG_NONE ? graphicsInfo : &gPokemonObjectGraphics[SPECIES_PORYGON]; // avoid OOB access
// Try to avoid OOB access
#if OW_GFX_COMPRESS
if (graphicsInfo->tileTag == 0 && species < NUM_SPECIES)
return &gPokemonObjectGraphics[SPECIES_PORYGON];
else if (graphicsInfo->tileTag != TAG_NONE && species >= NUM_SPECIES)
return &gPokemonObjectGraphics[SPECIES_PORYGON];
else
return graphicsInfo;
#else
return graphicsInfo->tileTag == TAG_NONE ? graphicsInfo : &gPokemonObjectGraphics[SPECIES_PORYGON];
#endif
}
// Find, or load, the palette for the specified pokemon info
@ -1797,16 +1890,20 @@ static void FollowerSetGraphics(struct ObjectEvent *objEvent, u16 species, u8 fo
}
// Like FollowerSetGraphics, but does not reposition sprite; intended to be used for mid-movement form changes, etc.
// TODO: Reposition sprite if size changes
static void RefreshFollowerGraphics(struct ObjectEvent *objEvent)
{
u16 species = OW_SPECIES(objEvent);
u8 form = OW_FORM(objEvent);
u8 shiny = objEvent->shiny;
u32 species = OW_SPECIES(objEvent);
u32 form = OW_FORM(objEvent);
u32 shiny = objEvent->shiny;
const struct ObjectEventGraphicsInfo *graphicsInfo = SpeciesToGraphicsInfo(species, form);
struct Sprite *sprite = &gSprites[objEvent->spriteId];
u8 i = FindObjectEventPaletteIndexByTag(graphicsInfo->paletteTag);
u32 i = FindObjectEventPaletteIndexByTag(graphicsInfo->paletteTag);
// Forbid changing form to a new size/shape
// TODO: Reposition sprite, reallocate tiles if form size changes
if (sprite->oam.shape != graphicsInfo->oam->shape
|| sprite->oam.size != graphicsInfo->oam->size)
return;
sprite->oam.shape = graphicsInfo->oam->shape;
sprite->oam.size = graphicsInfo->oam->size;
sprite->images = graphicsInfo->images;
@ -1829,6 +1926,9 @@ static void RefreshFollowerGraphics(struct ObjectEvent *objEvent)
if (gWeatherPtr->currWeather != WEATHER_FOG_HORIZONTAL) // don't want to weather blend in fog
UpdateSpritePaletteWithWeather(sprite->oam.paletteNum);
}
#if OW_GFX_COMPRESS
LoadSheetGraphicsInfo(graphicsInfo, objEvent->graphicsId, sprite);
#endif
}
// Like vanilla's CastformDataTypeChange, but for overworld weather
@ -1896,49 +1996,29 @@ static bool8 GetFollowerInfo(u16 *species, u8 *form, u8 *shiny)
return GetMonInfo(GetFirstLiveMon(), species, form, shiny);
}
// Update following pokemon if any
void UpdateFollowingPokemon(void)
{
struct ObjectEvent *objEvent = GetFollowerObject();
struct Sprite *sprite;
u16 species;
bool8 shiny;
u8 form;
// Avoid spawning large (64x64) follower pokemon inside buildings
if (GetFollowerInfo(&species, &form, &shiny)
&& !(gMapHeader.mapType == MAP_TYPE_INDOOR && SpeciesToGraphicsInfo(species, 0)->height == 64)
&& !FlagGet(FLAG_TEMP_HIDE_FOLLOWER))
{
// Spawn follower
if (objEvent == NULL)
{
struct ObjectEventTemplate template =
{
.localId = OBJ_EVENT_ID_FOLLOWER,
.graphicsId = OBJ_EVENT_GFX_MON_BASE + species,
.flagId = 0,
.x = gSaveBlock1Ptr->pos.x,
.y = gSaveBlock1Ptr->pos.y,
// If player active, copy player elevation
.elevation = gObjectEvents[gPlayerAvatar.objectEventId].active ? gObjectEvents[gPlayerAvatar.objectEventId].currentElevation : 3,
.movementType = MOVEMENT_TYPE_FOLLOW_PLAYER,
// store form info in template
.trainerRange_berryTreeId = (form & 0x1F) | (shiny << 5),
};
objEvent = &gObjectEvents[SpawnSpecialObjectEvent(&template)];
objEvent->invisible = TRUE;
}
sprite = &gSprites[objEvent->spriteId];
// Follower appearance changed; move to player and set invisible
if (species != OW_SPECIES(objEvent) || shiny != objEvent->shiny || form != OW_FORM(objEvent))
{
MoveObjectEventToMapCoords(objEvent,
gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x,
gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y);
FollowerSetGraphics(objEvent, species, form, shiny);
objEvent->invisible = TRUE;
}
sprite->data[6] = 0; // set animation data
void UpdateFollowingPokemon(void) { // Update following pokemon if any
struct ObjectEvent *objEvent = GetFollowerObject();
struct Sprite *sprite;
u16 species;
bool8 shiny;
u8 form;
// Avoid spawning large (>32x32) follower pokemon inside buildings
if (GetFollowerInfo(&species, &form, &shiny) && !(gMapHeader.mapType == MAP_TYPE_INDOOR && SpeciesToGraphicsInfo(species, 0)->height > 32) && !FlagGet(FLAG_TEMP_HIDE_FOLLOWER)) {
if (objEvent == NULL) { // Spawn follower
struct ObjectEventTemplate template = {
.localId = OBJ_EVENT_ID_FOLLOWER,
.graphicsId = OBJ_EVENT_GFX_MON_BASE + species,
.flagId = 0,
.x = gSaveBlock1Ptr->pos.x,
.y = gSaveBlock1Ptr->pos.y,
// If player active, copy player elevation
.elevation = gObjectEvents[gPlayerAvatar.objectEventId].active ? gObjectEvents[gPlayerAvatar.objectEventId].currentElevation : 3,
.movementType = MOVEMENT_TYPE_FOLLOW_PLAYER,
// store form info in template
.trainerRange_berryTreeId = (form & 0x1F) | (shiny << 5),
};
objEvent = &gObjectEvents[SpawnSpecialObjectEvent(&template)];
objEvent->invisible = TRUE;
}
else
{
@ -2330,7 +2410,7 @@ static void RemoveObjectEventIfOutsideView(struct ObjectEvent *objectEvent)
void SpawnObjectEventsOnReturnToField(s16 x, s16 y)
{
u8 i;
u32 i;
ClearPlayerAvatarInfo();
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
@ -2343,7 +2423,7 @@ void SpawnObjectEventsOnReturnToField(s16 x, s16 y)
static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y)
{
u8 i;
u32 i;
struct Sprite *sprite;
struct ObjectEvent *objectEvent;
struct SpriteTemplate spriteTemplate;
@ -2360,9 +2440,12 @@ static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y)
objectEvent = &gObjectEvents[objectEventId];
subspriteTables = NULL;
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
spriteFrameImage.size = graphicsInfo->size;
CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables);
spriteFrameImage.size = graphicsInfo->size;
spriteTemplate.images = &spriteFrameImage;
#if OW_GFX_COMPRESS
spriteTemplate.tileTag = LoadSheetGraphicsInfo(graphicsInfo, objectEvent->graphicsId, NULL);
#endif
if (spriteTemplate.paletteTag != TAG_NONE && spriteTemplate.paletteTag != OBJ_EVENT_PAL_TAG_DYNAMIC)
LoadObjectEventPalette(spriteTemplate.paletteTag);
@ -2373,6 +2456,10 @@ static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y)
// Use palette from species palette table
if (spriteTemplate.paletteTag == OBJ_EVENT_PAL_TAG_DYNAMIC)
sprite->oam.paletteNum = LoadDynamicFollowerPalette(OW_SPECIES(objectEvent), OW_FORM(objectEvent), objectEvent->shiny);
#if OW_GFX_COMPRESS
if (sprite->usingSheet)
sprite->sheetSpan = GetSpanPerImage(sprite->oam.shape, sprite->oam.size);
#endif
GetMapCoordsFromSpritePos(x + objectEvent->currentCoords.x, y + objectEvent->currentCoords.y, &sprite->x, &sprite->y);
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
@ -2443,7 +2530,7 @@ u8 UpdateSpritePaletteByTemplate(const struct SpriteTemplate * template, struct
static void ObjectEventSetGraphics(struct ObjectEvent *objectEvent, const struct ObjectEventGraphicsInfo *graphicsInfo)
{
struct Sprite *sprite = &gSprites[objectEvent->spriteId];
u8 i = FindObjectEventPaletteIndexByTag(graphicsInfo->paletteTag);
u32 i = FindObjectEventPaletteIndexByTag(graphicsInfo->paletteTag);
if (i != 0xFF)
UpdateSpritePalette(&sObjectEventSpritePalettes[i], sprite);
sprite->oam.shape = graphicsInfo->oam->shape;
@ -2451,6 +2538,9 @@ static void ObjectEventSetGraphics(struct ObjectEvent *objectEvent, const struct
sprite->images = graphicsInfo->images;
sprite->anims = graphicsInfo->anims;
sprite->subspriteTables = graphicsInfo->subspriteTables;
#if OW_GFX_COMPRESS
LoadSheetGraphicsInfo(graphicsInfo, objectEvent->graphicsId, sprite);
#endif
objectEvent->inanimate = graphicsInfo->inanimate;
SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->x, &sprite->y);
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
@ -2458,9 +2548,7 @@ static void ObjectEventSetGraphics(struct ObjectEvent *objectEvent, const struct
sprite->x += 8;
sprite->y += 16 + sprite->centerToCornerVecY;
if (objectEvent->trackedByCamera)
{
CameraObjectReset1();
}
}
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u16 graphicsId)
@ -5027,7 +5115,7 @@ static bool8 TryStartFollowerTransformEffect(struct ObjectEvent *objectEvent, st
sprite->data[7] = TRANSFORM_TYPE_WEATHER << 8;
return TRUE;
}
else if ((gRngValue >> 16) < 18 && GetLocalWildMon(FALSE)
else if ((Random() & 0xFFFF) < 18 && GetLocalWildMon(FALSE)
&& (OW_SPECIES(objectEvent) == SPECIES_MEW || OW_SPECIES(objectEvent) == SPECIES_DITTO))
{
sprite->data[7] = TRANSFORM_TYPE_RANDOM_WILD << 8;
@ -5118,12 +5206,7 @@ bool8 MovementType_FollowPlayer_Shadow(struct ObjectEvent *objectEvent, struct S
bool8 MovementType_FollowPlayer_Active(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
if (gPlayerAvatar.tileTransitionState == T_NOT_MOVING && !gObjectEvents[gPlayerAvatar.objectEventId].heldMovementActive )
{
// do nothing if player is stationary
return FALSE;
}
else if (!IsFollowerVisible())
if (!IsFollowerVisible())
{
if (objectEvent->invisible)
{
@ -5161,16 +5244,19 @@ bool8 MovementType_FollowPlayer_Moving(struct ObjectEvent *objectEvent, struct S
sprite->sTypeFuncId = 1;
}
}
else if (objectEvent->movementActionId != MOVEMENT_ACTION_EXIT_POKEBALL)
else if (objectEvent->movementActionId < MOVEMENT_ACTION_EXIT_POKEBALL)
{
UpdateFollowerTransformEffect(objectEvent, sprite);
#if OW_MON_BOBBING == TRUE
if ((sprite->data[5] & 7) == 2)
sprite->y2 ^= -1;
#endif
}
return FALSE;
}
bool8 FollowablePlayerMovement_Idle(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8))
{
u8 direction;
if (!objectEvent->singleMovementActive)
{
// walk in place
@ -5184,6 +5270,10 @@ bool8 FollowablePlayerMovement_Idle(struct ObjectEvent *objectEvent, struct Spri
// finish movement action
objectEvent->singleMovementActive = 0;
}
#if OW_MON_BOBBING == TRUE
else if ((sprite->data[3] & 7) == 2)
sprite->y2 ^= -1;
#endif
UpdateFollowerTransformEffect(objectEvent, sprite);
return FALSE;
}
@ -5196,7 +5286,7 @@ bool8 FollowablePlayerMovement_Step(struct ObjectEvent *objectEvent, struct Spri
s16 targetX;
s16 targetY;
#ifdef MB_SIDEWAYS_STAIRS_RIGHT_SIDE
u8 playerAction = gObjectEvents[gPlayerAvatar.objectEventId].movementActionId;
u32 playerAction = gObjectEvents[gPlayerAvatar.objectEventId].movementActionId;
#endif
targetX = gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x;
@ -5226,6 +5316,9 @@ bool8 FollowablePlayerMovement_Step(struct ObjectEvent *objectEvent, struct Spri
ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_EXIT_POKEBALL);
objectEvent->singleMovementActive = 1;
sprite->sTypeFuncId = 2;
#if OW_MON_BOBBING == TRUE
sprite->y2 = 0;
#endif
return TRUE;
}
else if (x == targetX && y == targetY)
@ -5258,8 +5351,12 @@ bool8 FollowablePlayerMovement_Step(struct ObjectEvent *objectEvent, struct Spri
{
if (playerAction >= MOVEMENT_ACTION_WALK_SLOW_DOWN && playerAction <= MOVEMENT_ACTION_WALK_SLOW_RIGHT)
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkSlowMovementAction(direction));
else
else {
objectEvent->movementActionId = GetWalkNormalMovementAction(direction);
#if OW_MON_BOBBING == TRUE
sprite->y2 = -1;
#endif
}
}
sprite->sActionFuncId = 0;
#else
@ -5270,8 +5367,12 @@ bool8 FollowablePlayerMovement_Step(struct ObjectEvent *objectEvent, struct Spri
// If *player* jumps, make step take twice as long
else if (PlayerGetCopyableMovement() == COPY_MOVE_JUMP2)
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkSlowMovementAction(direction));
else
else {
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkNormalMovementAction(direction));
#if OW_MON_BOBBING == TRUE
sprite->y2 = -1;
#endif
}
#endif
objectEvent->singleMovementActive = 1;
sprite->sTypeFuncId = 2;
@ -6835,12 +6936,12 @@ bool8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *objectEvent,
return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite);
}
// Copy and load objectEvent's palette, but set all opaque colors to white
static u8 LoadWhiteFlashPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite)
// Update sprite with a palette filled with a solid color
static u8 LoadFillColorPalette(u16 color, u16 paletteTag, struct Sprite *sprite)
{
u16 paletteData[16];
struct SpritePalette dynamicPalette = {.tag = OBJ_EVENT_PAL_TAG_NONE-1, .data = paletteData}; // TODO: Use a proper palette tag here
CpuFill16(RGB_WHITE, paletteData, 32);
struct SpritePalette dynamicPalette = {.tag = paletteTag, .data = paletteData};
CpuFill16(color, paletteData, PLTT_SIZE_4BPP);
return UpdateSpritePalette(&dynamicPalette, sprite);
}
@ -6923,19 +7024,27 @@ bool8 MovementAction_ExitPokeball_Step1(struct ObjectEvent *objectEvent, struct
sprite->animCmdIndex = 0;
sprite->animPaused = TRUE;
return TRUE;
// Set graphics, palette, and affine animation
}
// Set graphics, palette, and affine animation
else if ((duration == 0 && sprite->data[3] == 3) || (duration == 1 && sprite->data[3] == 7))
{
FollowerSetGraphics(objectEvent, OW_SPECIES(objectEvent), OW_FORM(objectEvent), objectEvent->shiny);
LoadWhiteFlashPalette(objectEvent, sprite);
LoadFillColorPalette(RGB_WHITE, OBJ_EVENT_PAL_TAG_WHITE, sprite);
// Initialize affine animation
sprite->affineAnims = sAffineAnims_PokeballFollower;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(sprite);
StartSpriteAffineAnim(sprite, sprite->data[6] >> 4);
// Restore original palette & disable affine
#if LARGE_OW_SUPPORT
if (IS_POW_OF_TWO(-sprite->centerToCornerVecX))
{
#endif
sprite->affineAnims = sAffineAnims_PokeballFollower;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(sprite);
StartSpriteAffineAnim(sprite, sprite->data[6] >> 4);
#if LARGE_OW_SUPPORT
}
#endif
}
// Restore original palette & disable affine
else if ((duration == 0 && sprite->data[3] == 1) || (duration == 1 && sprite->data[3] == 3))
{
sprite->affineAnimEnded = TRUE;
@ -6968,11 +7077,21 @@ bool8 MovementAction_EnterPokeball_Step1(struct ObjectEvent *objectEvent, struct
else if (sprite->data[3] == 11)
{
// Set palette to white & start affine
LoadWhiteFlashPalette(objectEvent, sprite);
sprite->affineAnims = sAffineAnims_PokeballFollower;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(sprite);
StartSpriteAffineAnim(sprite, sprite->data[6]);
LoadFillColorPalette(RGB_WHITE, OBJ_EVENT_PAL_TAG_WHITE, sprite);
#if LARGE_OW_SUPPORT
// Only do affine if sprite width is power of 2
// (effect looks weird on sprites composed of subsprites like 48x48, etc)
if (IS_POW_OF_TWO(-sprite->centerToCornerVecX))
{
#endif
sprite->affineAnims = sAffineAnims_PokeballFollower;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(sprite);
StartSpriteAffineAnim(sprite, sprite->data[6]);
#if LARGE_OW_SUPPORT
}
#endif
sprite->subspriteTableNum = 0;
}
else if (sprite->data[3] == 7)
{
@ -9002,7 +9121,20 @@ static void UpdateObjectEventElevationAndPriority(struct ObjectEvent *objEvent,
if (objEvent->fixedPriority)
return;
ObjectEventUpdateElevation(objEvent);
ObjectEventUpdateElevation(objEvent, sprite);
#if LARGE_OW_SUPPORT
if (objEvent->localId == OBJ_EVENT_ID_FOLLOWER) {
// keep subspriteMode synced with player's
// so that it disappears under bridges when they do
sprite->subspriteMode |= gSprites[gPlayerAvatar.spriteId].subspriteMode & SUBSPRITES_IGNORE_PRIORITY;
if (!objEvent->currentElevation)
objEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
}
#else
// if transitioning between elevations, use the player's elevation
if (!objEvent->currentElevation && objEvent->localId == OBJ_EVENT_ID_FOLLOWER)
objEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
#endif
sprite->subspriteTableNum = sElevationToSubspriteTableNum[objEvent->previousElevation];
sprite->oam.priority = sElevationToPriority[objEvent->previousElevation];
@ -9019,13 +9151,20 @@ u8 ElevationToPriority(u8 elevation)
return sElevationToPriority[elevation];
}
void ObjectEventUpdateElevation(struct ObjectEvent *objEvent)
// Returns current elevation, or 15 for bridges
void ObjectEventUpdateElevation(struct ObjectEvent *objEvent, struct Sprite *sprite)
{
u8 curElevation = MapGridGetElevationAt(objEvent->currentCoords.x, objEvent->currentCoords.y);
u8 prevElevation = MapGridGetElevationAt(objEvent->previousCoords.x, objEvent->previousCoords.y);
if (curElevation == 15 || prevElevation == 15)
if (curElevation == 15 || prevElevation == 15) {
#if LARGE_OW_SUPPORT
// Ignore subsprite priorities under bridges
// so all subsprites will display below it
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
#endif
return;
}
objEvent->currentElevation = curElevation;
@ -9048,6 +9187,10 @@ static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sp
if (objEvent->fixedPriority)
return;
// If transitioning between elevations, use the player's elevation
if (!objEvent->currentElevation && objEvent->localId == OBJ_EVENT_ID_FOLLOWER)
objEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
SetObjectSubpriorityByElevation(objEvent->previousElevation, sprite, 1);
}
@ -9417,6 +9560,9 @@ static void DoGroundEffects_OnSpawn(struct ObjectEvent *objEvent, struct Sprite
if (objEvent->triggerGroundEffectsOnMove)
{
flags = 0;
#if LARGE_OW_SUPPORT
sprite->subspriteMode = SUBSPRITES_ON;
#endif
UpdateObjectEventElevationAndPriority(objEvent, sprite);
GetAllGroundEffectFlags_OnSpawn(objEvent, &flags);
SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite);
@ -9433,6 +9579,9 @@ static void DoGroundEffects_OnBeginStep(struct ObjectEvent *objEvent, struct Spr
if (objEvent->triggerGroundEffectsOnMove)
{
flags = 0;
#if LARGE_OW_SUPPORT
sprite->subspriteMode = SUBSPRITES_ON;
#endif
UpdateObjectEventElevationAndPriority(objEvent, sprite);
GetAllGroundEffectFlags_OnBeginStep(objEvent, &flags);
SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite);

View File

@ -13,11 +13,15 @@
#include "trig.h"
#include "constants/event_objects.h"
#include "constants/field_effects.h"
#include "constants/rgb.h"
#include "constants/songs.h"
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF // duplicate of define in event_object_movement.c
#define PAL_TAG_REFLECTION_OFFSET 0x2000 // reflection tag value is paletteTag + 0x2000
#define PAL_RAW_REFLECTION_OFFSET 0x4000 // raw reflection tag is paletteNum + 0x4000
#define HIGH_BRIDGE_PAL_TAG 0x4010
// Build a unique tag for reflection's palette based on based tag, or paletteNum
#define REFLECTION_PAL_TAG(tag, num) ((tag) == TAG_NONE ? (num) + PAL_RAW_REFLECTION_OFFSET : (tag) + PAL_TAG_REFLECTION_OFFSET)
static void UpdateObjectReflectionSprite(struct Sprite *);
static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite);
@ -70,8 +74,9 @@ void SetUpReflection(struct ObjectEvent *objectEvent, struct Sprite *sprite, boo
StartSpriteAnim(reflectionSprite, 0);
reflectionSprite->affineAnims = gDummySpriteAffineAnimTable;
reflectionSprite->affineAnimBeginning = TRUE;
reflectionSprite->subspriteMode = SUBSPRITES_OFF;
reflectionSprite->sReflectionObjEventId = sprite->data[0];
reflectionSprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
reflectionSprite->subspriteTableNum = 0;
reflectionSprite->sReflectionObjEventId = sprite->sReflectionObjEventId;
reflectionSprite->sReflectionObjEventLocalId = objectEvent->localId;
reflectionSprite->sIsStillReflection = stillReflection;
LoadObjectReflectionPalette(objectEvent, reflectionSprite);
@ -94,11 +99,10 @@ static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct
[BRIDGE_TYPE_POND_HIGH - 1] = 44
};
reflectionSprite->sReflectionVerticalOffset = 0;
if (!GetObjectEventGraphicsInfo(objectEvent->graphicsId)->disableReflectionPaletteLoad
&& ((bridgeType = MetatileBehavior_GetBridgeType(objectEvent->previousMetatileBehavior))
|| (bridgeType = MetatileBehavior_GetBridgeType(objectEvent->currentMetatileBehavior))))
if ((bridgeType = MetatileBehavior_GetBridgeType(objectEvent->previousMetatileBehavior))
|| (bridgeType = MetatileBehavior_GetBridgeType(objectEvent->currentMetatileBehavior)))
{
reflectionSprite->data[2] = bridgeReflectionVerticalOffsets[bridgeType - 1];
reflectionSprite->sReflectionVerticalOffset = bridgeReflectionVerticalOffsets[bridgeType - 1];
LoadObjectHighBridgeReflectionPalette(objectEvent, reflectionSprite);
}
else
@ -108,82 +112,72 @@ static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct
}
// Apply a blue tint effect to a palette
static void ApplyPondFilter(u8 paletteNum, u16 *dest)
{
u8 i, val, r, g, b;
static void ApplyPondFilter(u8 paletteNum, u16 *dest) {
u32 i, r, g, b;
// CpuCopy16(gPlttBufferUnfaded + 0x100 + paletteNum * 16, dest, 32);
u16 *src = gPlttBufferUnfaded + OBJ_PLTT_ID(paletteNum);
for (i = 0; i < 16; i++)
{
r = src[i] & 0x1F;
g = (src[i] >> 5) & 0x1F;
b = (src[i] >> 10) & 0x1F;
*dest++ = *src++; // copy transparency
for (i = 0; i < 16 - 1; i++) {
r = GET_R(src[i]);
g = GET_G(src[i]);
b = GET_B(src[i]);
b += 10;
if (b > 31)
b = 31;
*dest++ = (b << 10) | (g << 5) | r;
*dest++ = RGB2(r, g, b);
}
}
// Apply a ice tint effect to a palette
static void ApplyIceFilter(u8 paletteNum, u16 *dest)
{
u8 i, val, r, g, b;
static void ApplyIceFilter(u8 paletteNum, u16 *dest) {
u32 i, r, g, b;
// CpuCopy16(gPlttBufferUnfaded + 0x100 + paletteNum * 16, dest, 32);
u16 *src = gPlttBufferUnfaded + 0x100 + paletteNum * 16;
for (i = 0; i < 16; i++)
{
r = src[i] & 0x1F;
u16 *src = gPlttBufferUnfaded + OBJ_PLTT_ID(paletteNum);
*dest++ = *src++; // copy transparency
for (i = 0; i < 16 - 1; i++) {
r = GET_R(src[i]);
r -= 5;
if (r > 31)
r = 0;
g = (src[i] >> 5) & 0x1F;
g = GET_G(src[i]);
g += 3;
if (g > 31)
g = 31;
b = (src[i] >> 10) & 0x1F;
b = GET_B(src[i]);
b += 16;
if (b > 31)
b = 31;
*dest++ = (b << 10) | (g << 5) | r;
*dest++ = RGB2(r, g, b);
}
}
static void LoadObjectRegularReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
const struct Sprite *mainSprite = &gSprites[objectEvent->spriteId];
u16 baseTag = GetSpritePaletteTagByPaletteNum(mainSprite->oam.paletteNum);
u16 paletteTag = baseTag == 0xFFFF ? mainSprite->oam.paletteNum + PAL_RAW_REFLECTION_OFFSET : baseTag + PAL_TAG_REFLECTION_OFFSET;
u16 paletteTag = REFLECTION_PAL_TAG(baseTag, mainSprite->oam.paletteNum);
u8 paletteNum = IndexOfSpritePaletteTag(paletteTag);
if (paletteNum == 0xFF)
{
// Load filtered palette
u16 filteredData[16] = {0};
struct SpritePalette filteredPalette = {.tag = paletteTag, .data = filteredData};
if (sprite->data[7] == FALSE)
if (paletteNum <= 16) { // Load filtered palette
u16 filteredData[16];
struct SpritePalette filteredPal = {.tag = paletteTag, .data = filteredData};
if (sprite->sIsStillReflection == FALSE)
ApplyPondFilter(mainSprite->oam.paletteNum, filteredData);
else
ApplyIceFilter(mainSprite->oam.paletteNum, filteredData);
paletteNum = LoadSpritePalette(&filteredPalette);
paletteNum = LoadSpritePalette(&filteredPal);
UpdateSpritePaletteWithWeather(paletteNum);
}
sprite->oam.paletteNum = paletteNum;
sprite->oam.objMode = 1; // Alpha blending
sprite->oam.objMode = ST_OAM_OBJ_BLEND;
}
#define HIGH_BRIDGE_PAL_TAG 0x4010
// When walking on a bridge high above water (Route 120), the reflection is a solid dark blue color.
// This is so the sprite blends in with the dark water metatile underneath the bridge.
static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
u16 blueData[16] = {0};
u16 blueData[16];
struct SpritePalette bluePalette = {.tag = HIGH_BRIDGE_PAL_TAG, .data = blueData};
u8 i;
for (i = 1; i < 16; i++)
blueData[i] = 0x55c9;
CpuFill16(0x55C9, blueData, PLTT_SIZE_4BPP);
sprite->oam.paletteNum = LoadSpritePalette(&bluePalette);
UpdateSpritePaletteWithWeather(sprite->oam.paletteNum);
}
@ -192,6 +186,7 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
{
struct ObjectEvent *objectEvent = &gObjectEvents[reflectionSprite->sReflectionObjEventId];
struct Sprite *mainSprite = &gSprites[objectEvent->spriteId];
if (!objectEvent->active || !objectEvent->hasReflection || objectEvent->localId != reflectionSprite->sReflectionObjEventLocalId)
{
reflectionSprite->inUse = FALSE;
@ -200,26 +195,24 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
}
// Only filter palette if not using the high bridge blue palette
if (IndexOfSpritePaletteTag(HIGH_BRIDGE_PAL_TAG) != reflectionSprite->oam.paletteNum)
{
// This is basically a copy of LoadObjectRegularReflectionPalette
if (IndexOfSpritePaletteTag(HIGH_BRIDGE_PAL_TAG) != reflectionSprite->oam.paletteNum) {
u16 baseTag = GetSpritePaletteTagByPaletteNum(mainSprite->oam.paletteNum);
u16 paletteTag = baseTag == 0xFFFF ? mainSprite->oam.paletteNum + PAL_RAW_REFLECTION_OFFSET : baseTag + PAL_TAG_REFLECTION_OFFSET;
u16 paletteTag = REFLECTION_PAL_TAG(baseTag, mainSprite->oam.paletteNum);
u8 paletteNum = IndexOfSpritePaletteTag(paletteTag);
if (paletteNum == 0xFF)
{
// Build filtered palette
u16 filteredData[16] = {0};
struct SpritePalette filteredPalette = {.tag = paletteTag, .data = filteredData};
if (paletteNum >= 16) { // Build filtered palette
u16 filteredData[16];
struct SpritePalette filteredPal = {.tag = paletteTag, .data = filteredData};
// Free palette if unused
reflectionSprite->inUse = FALSE;
FieldEffectFreePaletteIfUnused(reflectionSprite->oam.paletteNum);
reflectionSprite->inUse = TRUE;
if (reflectionSprite->data[7] == FALSE)
if (reflectionSprite->sIsStillReflection == FALSE) {
ApplyPondFilter(mainSprite->oam.paletteNum, filteredData);
else
} else {
ApplyIceFilter(mainSprite->oam.paletteNum, filteredData);
paletteNum = LoadSpritePalette(&filteredPalette);
}
paletteNum = LoadSpritePalette(&filteredPal);
UpdateSpritePaletteWithWeather(paletteNum);
}
reflectionSprite->oam.paletteNum = paletteNum;
@ -229,11 +222,10 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
reflectionSprite->oam.matrixNum = mainSprite->oam.matrixNum | ST_OAM_VFLIP;
reflectionSprite->oam.tileNum = mainSprite->oam.tileNum;
reflectionSprite->subspriteTables = mainSprite->subspriteTables;
reflectionSprite->subspriteTableNum = mainSprite->subspriteTableNum;
reflectionSprite->invisible = mainSprite->invisible;
reflectionSprite->x = mainSprite->x;
// reflectionSprite->data[2] holds an additional vertical offset, used by the high bridges on Route 120
reflectionSprite->y = mainSprite->y + GetReflectionVerticalOffset(objectEvent) + reflectionSprite->data[2];
// sReflectionVerticalOffset is only set for high bridges
reflectionSprite->y = mainSprite->y + GetReflectionVerticalOffset(objectEvent) + reflectionSprite->sReflectionVerticalOffset;
reflectionSprite->centerToCornerVecX = mainSprite->centerToCornerVecX;
reflectionSprite->centerToCornerVecY = mainSprite->centerToCornerVecY;
reflectionSprite->x2 = mainSprite->x2;
@ -243,15 +235,17 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
if (objectEvent->hideReflection == TRUE)
reflectionSprite->invisible = TRUE;
// Check if the reflection is not still.
if (reflectionSprite->data[7] == FALSE)
// Support "virtual" sprites which can't be rotated via affines
if (reflectionSprite->subspriteTables[0].subsprites) {
reflectionSprite->oam.affineMode = ST_OAM_AFFINE_OFF;
return;
}
if (reflectionSprite->sIsStillReflection == FALSE)
{
// Sets the reflection sprite's rot/scale matrix to the appropriate
// matrix based on whether or not the main sprite is horizontally flipped.
// If the sprite is facing to the east, then it is flipped, and its matrixNum is 8.
reflectionSprite->oam.matrixNum = 0;
if (mainSprite->oam.matrixNum & ST_OAM_HFLIP)
reflectionSprite->oam.matrixNum = 1;
// Sets the reflection sprite's rot/scale matrix to the correct
// water reflection matrix based on the main sprite's facing direction.
// If the sprite is facing east, then it's flipped, and its matrixNum is 1.
reflectionSprite->oam.matrixNum = (mainSprite->oam.matrixNum & ST_OAM_HFLIP) ? 1 : 0;
}
}
@ -339,9 +333,9 @@ u32 FldEff_Shadow(void)
}
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId);
if (graphicsInfo->shadowSize == SHADOW_NONE) // don't create a shadow at all
return 0;
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 148);
if (graphicsInfo->shadowSize == SHADOW_SIZE_NONE) // don't create a shadow at all
return 0;
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94);
if (spriteId != MAX_SPRITES)
{
// SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 12));
@ -350,7 +344,11 @@ u32 FldEff_Shadow(void)
gSprites[spriteId].sLocalId = gFieldEffectArguments[0];
gSprites[spriteId].sMapNum = gFieldEffectArguments[1];
gSprites[spriteId].sMapGroup = gFieldEffectArguments[2];
#if LARGE_OW_SUPPORT
gSprites[spriteId].sYOffset = gShadowVerticalOffsets[graphicsInfo->shadowSize];
#else
gSprites[spriteId].sYOffset = (graphicsInfo->height >> 1) - gShadowVerticalOffsets[graphicsInfo->shadowSize];
#endif
}
return 0;
}
@ -369,7 +367,12 @@ void UpdateShadowFieldEffect(struct Sprite *sprite)
struct Sprite *linkedSprite = &gSprites[objectEvent->spriteId];
sprite->oam.priority = linkedSprite->oam.priority;
sprite->x = linkedSprite->x;
#if LARGE_OW_SUPPORT
// Read 'live' size from linked sprite
sprite->y = linkedSprite->y - linkedSprite->centerToCornerVecY - sprite->sYOffset;
#else
sprite->y = linkedSprite->y + sprite->sYOffset;
#endif
sprite->invisible = linkedSprite->invisible;
if (!objectEvent->active || !objectEvent->hasShadow
|| MetatileBehavior_IsPokeGrass(objectEvent->currentMetatileBehavior)

View File

@ -3202,7 +3202,6 @@ void ScrollableMultichoice_ClosePersistentMenu(void)
#undef tTaskId
#define DEOXYS_ROCK_LEVELS 11
#define ROCK_PAL_ID 10
void DoDeoxysRockInteraction(void)
{
@ -3279,11 +3278,13 @@ static void Task_DeoxysRockInteraction(u8 taskId)
}
}
// duplicate of event_object_movement
#define OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE 0x111F
static void ChangeDeoxysRockLevel(u8 rockLevel)
{
u8 objectEventId;
LoadPalette(&sDeoxysRockPalettes[rockLevel], OBJ_PLTT_ID(ROCK_PAL_ID), PLTT_SIZEOF(4));
TryGetObjectEventIdByLocalIdAndMap(LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId);
u8 paletteNum = IndexOfSpritePaletteTag(OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE);
LoadPalette(&sDeoxysRockPalettes[rockLevel], OBJ_PLTT_ID(paletteNum), PLTT_SIZEOF(4));
if (rockLevel == 0)
PlaySE(SE_M_CONFUSE_RAY); // Failure sound
@ -3329,10 +3330,13 @@ void IncrementBirthIslandRockStepCount(void)
}
}
// called before fade-in
void SetDeoxysRockPalette(void)
{
LoadPalette(&sDeoxysRockPalettes[(u8)VarGet(VAR_DEOXYS_ROCK_LEVEL)], OBJ_PLTT_ID(ROCK_PAL_ID), PLTT_SIZEOF(4));
BlendPalettes(1 << (ROCK_PAL_ID + 16), 16, 0);
u32 paletteNum = IndexOfSpritePaletteTag(OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE);
LoadPalette(&sDeoxysRockPalettes[(u8)VarGet(VAR_DEOXYS_ROCK_LEVEL)], OBJ_PLTT_ID(paletteNum), PLTT_SIZEOF(4));
// Set faded to all black, weather blending handled during fade-in
CpuFill16(0, &gPlttBufferFaded[OBJ_PLTT_ID(paletteNum)], 32);
}
void SetPCBoxToSendMon(u8 boxId)

View File

@ -290,7 +290,7 @@ const struct FollowerMsgInfoExtended gFollowerConditionalMessages[COND_MSG_COUNT
[COND_MSG_BURN] =
{
.text = sCondMsg42,
.st = {.status STATUS1_BURN},
.st = {.status = STATUS1_BURN},
.stFlags = ST_FLAGS_STATUS,
.emotion = FOLLOWER_EMOTION_SAD,
},

View File

@ -2999,7 +2999,7 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1
objEvent->previousCoords.y = y;
SetSpritePosToMapCoords(x, y, &objEvent->initialCoords.x, &objEvent->initialCoords.y);
objEvent->initialCoords.x += 8;
ObjectEventUpdateElevation(objEvent);
ObjectEventUpdateElevation(objEvent, NULL);
}
static void UNUSED SetLinkPlayerObjectRange(u8 linkPlayerId, u8 dir)
@ -3139,7 +3139,7 @@ static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayer
{
objEvent->directionSequenceIndex = 16;
ShiftObjectEventCoords(objEvent, x, y);
ObjectEventUpdateElevation(objEvent);
ObjectEventUpdateElevation(objEvent, NULL);
return TRUE;
}
}

View File

@ -321,10 +321,10 @@ int ExtractData(const std::unique_ptr<unsigned char[]>& buffer, int offset, int
void CFile::TryConvertIncbin()
{
std::string idents[6] = { "INCBIN_S8", "INCBIN_U8", "INCBIN_S16", "INCBIN_U16", "INCBIN_S32", "INCBIN_U32" };
std::string idents[8] = { "INCBIN_S8", "INCBIN_U8", "INCBIN_S16", "INCBIN_U16", "INCBIN_S32", "INCBIN_U32", "DUMMY", "INCBIN_COMP"};
int incbinType = -1;
for (int i = 0; i < 6; i++)
for (int i = 0; i < 8; i++)
{
if (CheckIdentifier(idents[i]))
{
@ -337,6 +337,8 @@ void CFile::TryConvertIncbin()
return;
int size = 1 << (incbinType / 2);
if (size > 4)
size = 4;
bool isSigned = ((incbinType % 2) == 0);
long oldPos = m_pos;
@ -389,6 +391,10 @@ void CFile::TryConvertIncbin()
std::string path(&m_buffer[startPos], m_pos - startPos);
// INCBIN_COMP; include *compressed* version of file
if (incbinType == 7)
path = path.append(".lz");
m_pos++;
int fileSize;

View File

@ -213,10 +213,10 @@ void CFile::CheckIncbin()
return;
}
std::string idents[6] = { "INCBIN_S8", "INCBIN_U8", "INCBIN_S16", "INCBIN_U16", "INCBIN_S32", "INCBIN_U32" };
std::string idents[7] = { "INCBIN_S8", "INCBIN_U8", "INCBIN_S16", "INCBIN_U16", "INCBIN_S32", "INCBIN_U32", "INCBIN_COMP"};
int incbinType = -1;
for (int i = 0; i < 6; i++)
for (int i = 0; i < 7; i++)
{
if (CheckIdentifier(idents[i]))
{
@ -250,6 +250,10 @@ void CFile::CheckIncbin()
std::string path = ReadPath();
// INCBIN_COMP; include *compressed* version of file
if (incbinType == 6)
path = path.append(".lz");
SkipWhitespace();
m_incbins.emplace(path);