summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_interface.c15
-rw-r--r--src/data/field_effects/field_effect_object_template_pointers.h143
-rw-r--r--src/data/field_effects/field_effect_objects.h953
-rw-r--r--src/data/object_events/object_event_graphics.h459
-rw-r--r--src/data/object_events/object_event_graphics_info.h308
-rw-r--r--src/event_object_movement.c543
-rw-r--r--src/field_effect.c10
-rw-r--r--src/field_effect_helpers.c87
-rw-r--r--src/fldeff_cut.c2
-rw-r--r--src/item_menu.c2
-rw-r--r--src/item_pc.c2
-rw-r--r--src/list_menu.c163
-rw-r--r--src/move_descriptions.c714
-rw-r--r--src/overworld.c12
-rw-r--r--src/pokedex_screen.c6
-rw-r--r--src/pokemon.c2
-rw-r--r--src/scrcmd.c8
-rw-r--r--src/sprite.c24
-rw-r--r--src/teachy_tv.c5
-rw-r--r--src/trainer_tower.c140
-rw-r--r--src/trainer_tower_sets.c8997
21 files changed, 11157 insertions, 1438 deletions
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 4cc39e8aa..1df525967 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -736,18 +736,11 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
u32 windowId, spriteTileNum;
u8 *windowTileData;
u8 text[16] = _("{LV_2}");
- u32 xPos, var1;
- void *objVram;
+ u32 xPos;
+ u8 *objVram;
- xPos = (u32) ConvertIntToDecimalStringN(text + 2, lvl, STR_CONV_MODE_LEFT_ALIGN, 3);
- // Alright, that part was unmatchable. It's basically doing:
- // xPos = 5 * (3 - (u32)(&text[2]));
- xPos--;
- xPos--;
- xPos -= ((u32)(text));
- var1 = (3 - xPos);
- xPos = 4 * var1;
- xPos += var1;
+ objVram = ConvertIntToDecimalStringN(text + 2, lvl, STR_CONV_MODE_LEFT_ALIGN, 3);
+ xPos = 5 * (3 - (objVram - (text + 2)));
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, &windowId);
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP;
diff --git a/src/data/field_effects/field_effect_object_template_pointers.h b/src/data/field_effects/field_effect_object_template_pointers.h
index 39321bb3d..1f5c27ed4 100644
--- a/src/data/field_effects/field_effect_object_template_pointers.h
+++ b/src/data/field_effects/field_effect_object_template_pointers.h
@@ -1,74 +1,75 @@
-const struct SpriteTemplate gUnknown_83A537C;
-const struct SpriteTemplate gUnknown_83A5394;
-const struct SpriteTemplate gUnknown_83A53AC;
-const struct SpriteTemplate gUnknown_83A53C4;
-const struct SpriteTemplate gUnknown_83A5420;
-const struct SpriteTemplate gUnknown_83A5488;
-const struct SpriteTemplate gUnknown_83A54E4;
-const struct SpriteTemplate gUnknown_83A556C;
-const struct SpriteTemplate gUnknown_83A5604;
-const struct SpriteTemplate gUnknown_83A5648;
-const struct SpriteTemplate gUnknown_83A5698;
-const struct SpriteTemplate gUnknown_83A56F4;
-const struct SpriteTemplate gUnknown_83A583C;
-const struct SpriteTemplate gUnknown_83A589C;
-const struct SpriteTemplate gUnknown_83A58E0;
-const struct SpriteTemplate gUnknown_83A593C;
-const struct SpriteTemplate gUnknown_83A59A4;
-const struct SpriteTemplate gUnknown_83A5A30;
-const struct SpriteTemplate gUnknown_83A5A88;
-const struct SpriteTemplate gUnknown_83A5AD8;
-const struct SpriteTemplate gUnknown_83A5B74;
-const struct SpriteTemplate gUnknown_83A5C34;
-const struct SpriteTemplate gUnknown_83A5750;
-const struct SpriteTemplate gUnknown_83A5CB4;
-const struct SpriteTemplate gUnknown_83A5D34;
-const struct SpriteTemplate gUnknown_83A5E00;
-const struct SpriteTemplate gUnknown_83A57EC;
-const struct SpriteTemplate gUnknown_83A5D84;
-const struct SpriteTemplate gUnknown_83A5B1C;
-const struct SpriteTemplate gUnknown_83A5E38;
-const struct SpriteTemplate gUnknown_83A5E64;
-const struct SpriteTemplate gUnknown_83A5EC0;
-const struct SpriteTemplate gUnknown_83A5F24;
-const struct SpriteTemplate gUnknown_83A5FA4;
-const struct SpriteTemplate gUnknown_83A5FE0;
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall;
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium;
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge;
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge;
+const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass;
+const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple;
+const struct SpriteTemplate gFieldEffectObjectTemplate_Ash;
+const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob;
+const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow;
+const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust;
+const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass;
+const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints;
+const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash;
+const struct SpriteTemplate gFieldEffectObjectTemplate_Splash;
+const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash;
+const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass;
+const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass;
+const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass;
+const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2;
+const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand;
+const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing;
+const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion;
+const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints;
+/*const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle;*/
+const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise;
+const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise;
+const struct SpriteTemplate gFieldEffectObjectTemplate_Bird;
+const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks;
+const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder;
+const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile;
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass;
+const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater;
+const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff;
+const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch;
+const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles;
+const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle;
const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = {
- &gUnknown_83A537C,
- &gUnknown_83A5394,
- &gUnknown_83A53AC,
- &gUnknown_83A53C4,
- &gUnknown_83A5420,
- &gUnknown_83A5488,
- &gUnknown_83A54E4,
- &gUnknown_83A556C,
- &gUnknown_83A5604,
- &gUnknown_83A5648,
- &gUnknown_83A5698,
- &gUnknown_83A56F4,
- &gUnknown_83A583C,
- &gUnknown_83A589C,
- &gUnknown_83A58E0,
- &gUnknown_83A593C,
- &gUnknown_83A59A4,
- &gUnknown_83A5A30,
- &gUnknown_83A5A88,
- &gUnknown_83A5AD8,
- &gUnknown_83A5B74,
- &gUnknown_83A5C34,
- NULL,
- &gUnknown_83A5750,
- &gUnknown_83A5CB4,
- &gUnknown_83A5D34,
- &gUnknown_83A5E00,
- &gUnknown_83A57EC,
- &gUnknown_83A5D84,
- &gUnknown_83A5B1C,
- &gUnknown_83A5E38,
- &gUnknown_83A5E64,
- &gUnknown_83A5EC0,
- &gUnknown_83A5F24,
- &gUnknown_83A5FA4,
- &gUnknown_83A5FE0,
+ [FLDEFFOBJ_SHADOW_S] = &gFieldEffectObjectTemplate_ShadowSmall,
+ [FLDEFFOBJ_SHADOW_M] = &gFieldEffectObjectTemplate_ShadowMedium,
+ [FLDEFFOBJ_SHADOW_L] = &gFieldEffectObjectTemplate_ShadowLarge,
+ [FLDEFFOBJ_SHADOW_XL] = &gFieldEffectObjectTemplate_ShadowExtraLarge,
+ [FLDEFFOBJ_TALL_GRASS] = &gFieldEffectObjectTemplate_TallGrass,
+ [FLDEFFOBJ_RIPPLE] = &gFieldEffectObjectTemplate_Ripple,
+ [FLDEFFOBJ_ASH] = &gFieldEffectObjectTemplate_Ash,
+ [FLDEFFOBJ_SURF_BLOB] = &gFieldEffectObjectTemplate_SurfBlob,
+ [FLDEFFOBJ_ARROW] = &gFieldEffectObjectTemplate_Arrow,
+ [FLDEFFOBJ_GROUND_IMPACT_DUST] = &gFieldEffectObjectTemplate_GroundImpactDust,
+ [FLDEFFOBJ_JUMP_TALL_GRASS] = &gFieldEffectObjectTemplate_JumpTallGrass,
+ [FLDEFFOBJ_SAND_FOOTPRINTS] = &gFieldEffectObjectTemplate_SandFootprints,
+ [FLDEFFOBJ_JUMP_BIG_SPLASH] = &gFieldEffectObjectTemplate_JumpBigSplash,
+ [FLDEFFOBJ_SPLASH] = &gFieldEffectObjectTemplate_Splash,
+ [FLDEFFOBJ_JUMP_SMALL_SPLASH] = &gFieldEffectObjectTemplate_JumpSmallSplash,
+ [FLDEFFOBJ_LONG_GRASS] = &gFieldEffectObjectTemplate_LongGrass,
+ [FLDEFFOBJ_JUMP_LONG_GRASS] = &gFieldEffectObjectTemplate_JumpLongGrass,
+ [FLDEFFOBJ_UNUSED_GRASS] = &gFieldEffectObjectTemplate_UnusedGrass,
+ [FLDEFFOBJ_UNUSED_GRASS_2] = &gFieldEffectObjectTemplate_UnusedGrass2,
+ [FLDEFFOBJ_UNUSED_SAND] = &gFieldEffectObjectTemplate_UnusedSand,
+ [FLDEFFOBJ_WATER_SURFACING] = &gFieldEffectObjectTemplate_WaterSurfacing,
+ [FLDEFFOBJ_REFLECTION_DISTORTION] = &gFieldEffectObjectTemplate_ReflectionDistortion,
+ [FLDEFFOBJ_SPARKLE] = NULL,
+ [FLDEFFOBJ_DEEP_SAND_FOOTPRINTS] = &gFieldEffectObjectTemplate_DeepSandFootprints,
+ [FLDEFFOBJ_TREE_DISGUISE] = &gFieldEffectObjectTemplate_TreeDisguise,
+ [FLDEFFOBJ_MOUNTAIN_DISGUISE] = &gFieldEffectObjectTemplate_MountainDisguise,
+ [FLDEFFOBJ_BIRD] = &gFieldEffectObjectTemplate_Bird,
+ [FLDEFFOBJ_BIKE_TIRE_TRACKS] = &gFieldEffectObjectTemplate_BikeTireTracks,
+ [FLDEFFOBJ_SAND_DISGUISE] = &gFieldEffectObjectTemplate_SandDisguisePlaceholder,
+ [FLDEFFOBJ_SAND_PILE] = &gFieldEffectObjectTemplate_SandPile,
+ [FLDEFFOBJ_SHORT_GRASS] = &gFieldEffectObjectTemplate_ShortGrass,
+ [FLDEFFOBJ_HOT_SPRINGS_WATER] = &gFieldEffectObjectTemplate_HotSpringsWater,
+ [FLDEFFOBJ_ASH_PUFF] = &gFieldEffectObjectTemplate_AshPuff,
+ [FLDEFFOBJ_ASH_LAUNCH] = &gFieldEffectObjectTemplate_AshLaunch,
+ [FLDEFFOBJ_BUBBLES] = &gFieldEffectObjectTemplate_Bubbles,
+ [FLDEFFOBJ_SMALL_SPARKLE] = &gFieldEffectObjectTemplate_SmallSparkle,
};
diff --git a/src/data/field_effects/field_effect_objects.h b/src/data/field_effects/field_effect_objects.h
index 0f2694de2..7a764d3d5 100644
--- a/src/data/field_effects/field_effect_objects.h
+++ b/src/data/field_effects/field_effect_objects.h
@@ -1,76 +1,76 @@
-const struct SpritePalette gUnknown_83A5340 = { .data = gUnknown_8398FA8, .tag = 0x1004 };
-const struct SpritePalette gUnknown_83A5348 = { .data = gUnknown_8398FC8, .tag = 0x1005 };
+const struct SpritePalette gSpritePalette_GeneralFieldEffect0 = { .data = gFieldEffectObjectPalette0, .tag = FLDEFF_PAL_TAG_GENERAL_0 };
+const struct SpritePalette gSpritePalette_GeneralFieldEffect1 = { .data = gFieldEffectObjectPalette1, .tag = FLDEFF_PAL_TAG_GENERAL_1 };
-const union AnimCmd gUnknown_83A5350[] =
+static const union AnimCmd sAnim_Shadow[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5358[] =
+static const union AnimCmd *const sAnimTable_Shadow[] =
{
- gUnknown_83A5350,
+ sAnim_Shadow,
};
-const struct SpriteFrameImage gUnknown_83A535C[] = { obj_frame_tiles(gUnknown_8398048) };
-const struct SpriteFrameImage gUnknown_83A5364[] = { obj_frame_tiles(gUnknown_8398068) };
-const struct SpriteFrameImage gUnknown_83A536C[] = { obj_frame_tiles(gUnknown_83980A8) };
-const struct SpriteFrameImage gUnknown_83A5374[] = { obj_frame_tiles(gUnknown_8398128) };
+static const struct SpriteFrameImage sPicTable_ShadowSmall[] = {obj_frame_tiles(gFieldEffectObjectPic_ShadowSmall) };
+static const struct SpriteFrameImage sPicTable_ShadowMedium[] = {obj_frame_tiles(gFieldEffectObjectPic_ShadowMedium) };
+static const struct SpriteFrameImage sPicTable_ShadowLarge[] = {obj_frame_tiles(gFieldEffectObjectPic_ShadowLarge) };
+static const struct SpriteFrameImage sPicTable_ShadowExtraLarge[] = { obj_frame_tiles(gFieldEffectObjectPic_ShadowExtraLarge) };
-const struct SpriteTemplate gUnknown_83A537C =
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_8x8,
- .anims = gUnknown_83A5358,
- .images = gUnknown_83A535C,
+ .anims = sAnimTable_Shadow,
+ .images = sPicTable_ShadowSmall,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateShadowFieldEffect,
};
-const struct SpriteTemplate gUnknown_83A5394 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_16x8,
- .anims = gUnknown_83A5358,
- .images = gUnknown_83A5364,
+ .anims = sAnimTable_Shadow,
+ .images = sPicTable_ShadowMedium,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateShadowFieldEffect,
};
-const struct SpriteTemplate gUnknown_83A53AC =
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_32x8,
- .anims = gUnknown_83A5358,
- .images = gUnknown_83A536C,
+ .anims = sAnimTable_Shadow,
+ .images = sPicTable_ShadowLarge,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateShadowFieldEffect,
};
-const struct SpriteTemplate gUnknown_83A53C4 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_64x32,
- .anims = gUnknown_83A5358,
- .images = gUnknown_83A5374,
+ .anims = sAnimTable_Shadow,
+ .images = sPicTable_ShadowExtraLarge,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateShadowFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A53DC[] =
+static const struct SpriteFrameImage sPicTable_TallGrass[] =
{
- overworld_frame(gUnknown_839A008, 2, 2, 0),
- overworld_frame(gUnknown_839A008, 2, 2, 1),
- overworld_frame(gUnknown_839A008, 2, 2, 2),
- overworld_frame(gUnknown_839A008, 2, 2, 3),
- overworld_frame(gUnknown_839A008, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 4),
};
-const union AnimCmd gUnknown_83A5404[] =
+static const union AnimCmd sAnim_TallGrass[] =
{
ANIMCMD_FRAME(1, 10),
ANIMCMD_FRAME(2, 10),
@@ -80,32 +80,32 @@ const union AnimCmd gUnknown_83A5404[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A541C[] =
+static const union AnimCmd *const sAnimTable_TallGrass[] =
{
- gUnknown_83A5404,
+ sAnim_TallGrass,
};
-const struct SpriteTemplate gUnknown_83A5420 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A541C,
- .images = gUnknown_83A53DC,
+ .anims = sAnimTable_TallGrass,
+ .images = sPicTable_TallGrass,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateTallGrassFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5438[] =
+static const struct SpriteFrameImage sPicTable_Ripple[] =
{
- overworld_frame(gUnknown_83986A8, 2, 2, 0),
- overworld_frame(gUnknown_83986A8, 2, 2, 1),
- overworld_frame(gUnknown_83986A8, 2, 2, 2),
- overworld_frame(gUnknown_83986A8, 2, 2, 3),
- overworld_frame(gUnknown_83986A8, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 4),
};
-const union AnimCmd gUnknown_83A5460[] =
+static const union AnimCmd sAnim_Ripple[] =
{
ANIMCMD_FRAME(0, 12),
ANIMCMD_FRAME(1, 9),
@@ -118,32 +118,32 @@ const union AnimCmd gUnknown_83A5460[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5484[] =
+static const union AnimCmd *const sAnimTable_Ripple[] =
{
- gUnknown_83A5460,
+ sAnim_Ripple,
};
-const struct SpriteTemplate gUnknown_83A5488 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5484,
- .images = gUnknown_83A5438,
+ .anims = sAnimTable_Ripple,
+ .images = sPicTable_Ripple,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = WaitFieldEffectSpriteAnim,
};
-const struct SpriteFrameImage gUnknown_83A54A0[] =
+static const struct SpriteFrameImage sPicTable_Ash[] =
{
- overworld_frame(gUnknown_8398928, 2, 2, 0),
- overworld_frame(gUnknown_8398928, 2, 2, 1),
- overworld_frame(gUnknown_8398928, 2, 2, 2),
- overworld_frame(gUnknown_8398928, 2, 2, 3),
- overworld_frame(gUnknown_8398928, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 4),
};
-const union AnimCmd gUnknown_83A54C8[] =
+static const union AnimCmd sAnim_Ash[] =
{
ANIMCMD_FRAME(0, 12),
ANIMCMD_FRAME(1, 12),
@@ -153,23 +153,23 @@ const union AnimCmd gUnknown_83A54C8[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A54E0[] =
+static const union AnimCmd *const sAnimTable_Ash[] =
{
- gUnknown_83A54C8,
+ sAnim_Ash,
};
-const struct SpriteTemplate gUnknown_83A54E4 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_Ash =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A54E0,
- .images = gUnknown_83A54A0,
+ .anims = sAnimTable_Ash,
+ .images = sPicTable_Ash,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateAshFieldEffect,
};
-const struct SpriteFrameImage gObjectEventPicTable_SurfBlob[] =
+static const struct SpriteFrameImage gObjectEventPicTable_SurfBlob[] =
{
overworld_frame(gObjectEventPic_SurfBlob, 2, 8, 0),
overworld_frame(gObjectEventPic_SurfBlob, 2, 8, 1),
@@ -179,120 +179,120 @@ const struct SpriteFrameImage gObjectEventPicTable_SurfBlob[] =
overworld_frame(gObjectEventPic_SurfBlob, 2, 8, 5),
};
-const union AnimCmd gUnknown_83A552C[] =
+static const union AnimCmd sSurfBlobAnim_FaceSouth[] =
{
ANIMCMD_FRAME(0, 48),
ANIMCMD_FRAME(1, 48),
ANIMCMD_JUMP(0),
};
-const union AnimCmd gUnknown_83A5538[] =
+static const union AnimCmd sSurfBlobAnim_FaceNorth[] =
{
ANIMCMD_FRAME(2, 48),
ANIMCMD_FRAME(3, 48),
ANIMCMD_JUMP(0),
};
-const union AnimCmd gUnknown_83A5544[] =
+static const union AnimCmd sSurfBlobAnim_FaceWest[] =
{
ANIMCMD_FRAME(4, 48),
ANIMCMD_FRAME(5, 48),
ANIMCMD_JUMP(0),
};
-const union AnimCmd gUnknown_83A5550[] =
+static const union AnimCmd sSurfBlobAnim_FaceEast[] =
{
ANIMCMD_FRAME(4, 48, .hFlip = TRUE),
ANIMCMD_FRAME(5, 48, .hFlip = TRUE),
ANIMCMD_JUMP(0),
};
-const union AnimCmd *const gUnknown_83A555C[] =
+static const union AnimCmd *const sAnimTable_SurfBlob[] =
{
- gUnknown_83A552C,
- gUnknown_83A5538,
- gUnknown_83A5544,
- gUnknown_83A5550,
+ [DIR_SOUTH - 1] = sSurfBlobAnim_FaceSouth,
+ [DIR_NORTH - 1] = sSurfBlobAnim_FaceNorth,
+ [DIR_WEST - 1] = sSurfBlobAnim_FaceWest,
+ [DIR_EAST - 1] = sSurfBlobAnim_FaceEast,
};
-const struct SpriteTemplate gUnknown_83A556C =
+const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_32x32,
- .anims = gUnknown_83A555C,
+ .anims = sAnimTable_SurfBlob,
.images = gObjectEventPicTable_SurfBlob,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateSurfBlobFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5584[] =
+static const struct SpriteFrameImage sPicTable_Arrow[] =
{
- overworld_frame(gUnknown_8398BA8, 2, 2, 0),
- overworld_frame(gUnknown_8398BA8, 2, 2, 1),
- overworld_frame(gUnknown_8398BA8, 2, 2, 2),
- overworld_frame(gUnknown_8398BA8, 2, 2, 3),
- overworld_frame(gUnknown_8398BA8, 2, 2, 4),
- overworld_frame(gUnknown_8398BA8, 2, 2, 5),
- overworld_frame(gUnknown_8398BA8, 2, 2, 6),
- overworld_frame(gUnknown_8398BA8, 2, 2, 7),
+ overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 5),
+ overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 6),
+ overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 7),
};
-const union AnimCmd gUnknown_83A55C4[] =
+static const union AnimCmd sArrowAnim_South[] =
{
ANIMCMD_FRAME(2, 32),
ANIMCMD_FRAME(3, 32),
ANIMCMD_JUMP(0),
};
-const union AnimCmd gUnknown_83A55D0[] =
+static const union AnimCmd sArrowAnim_North[] =
{
ANIMCMD_FRAME(0, 32),
ANIMCMD_FRAME(1, 32),
ANIMCMD_JUMP(0),
};
-const union AnimCmd gUnknown_83A55DC[] =
+static const union AnimCmd sArrowAnim_West[] =
{
ANIMCMD_FRAME(4, 32),
ANIMCMD_FRAME(5, 32),
ANIMCMD_JUMP(0),
};
-const union AnimCmd gUnknown_83A55E8[] =
+static const union AnimCmd sArrowAnim_East[] =
{
ANIMCMD_FRAME(6, 32),
ANIMCMD_FRAME(7, 32),
ANIMCMD_JUMP(0),
};
-const union AnimCmd *const gUnknown_83A55F4[] =
+static const union AnimCmd *const sAnimTable_Arrow[] =
{
- gUnknown_83A55C4,
- gUnknown_83A55D0,
- gUnknown_83A55DC,
- gUnknown_83A55E8,
+ [DIR_SOUTH - 1] = sArrowAnim_South,
+ [DIR_NORTH - 1] = sArrowAnim_North,
+ [DIR_WEST - 1] = sArrowAnim_West,
+ [DIR_EAST - 1] = sArrowAnim_East,
};
-const struct SpriteTemplate gUnknown_83A5604 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A55F4,
- .images = gUnknown_83A5584,
+ .anims = sAnimTable_Arrow,
+ .images = sPicTable_Arrow,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
-const struct SpriteFrameImage gUnknown_83A561C[] =
+static const struct SpriteFrameImage sPicTable_GroundImpactDust[] =
{
- overworld_frame(gUnknown_8399008, 2, 1, 0),
- overworld_frame(gUnknown_8399008, 2, 1, 1),
- overworld_frame(gUnknown_8399008, 2, 1, 2),
+ overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 0),
+ overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 1),
+ overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 2),
};
-const union AnimCmd gUnknown_83A5634[] =
+static const union AnimCmd sAnim_GroundImpactDust[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(1, 8),
@@ -300,31 +300,31 @@ const union AnimCmd gUnknown_83A5634[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5644[] =
+static const union AnimCmd *const sAnimTable_GroundImpactDust[] =
{
- gUnknown_83A5634,
+ sAnim_GroundImpactDust,
};
-const struct SpriteTemplate gUnknown_83A5648 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x8,
- .anims = gUnknown_83A5644,
- .images = gUnknown_83A561C,
+ .anims = sAnimTable_GroundImpactDust,
+ .images = sPicTable_GroundImpactDust,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80DCCE0,
+ .callback = UpdateJumpImpactEffect,
};
-const struct SpriteFrameImage gUnknown_83A5660[] =
+static const struct SpriteFrameImage sPicTable_JumpTallGrass[] =
{
- overworld_frame(gUnknown_8399188, 2, 1, 0),
- overworld_frame(gUnknown_8399188, 2, 1, 1),
- overworld_frame(gUnknown_8399188, 2, 1, 2),
- overworld_frame(gUnknown_8399188, 2, 1, 3),
+ overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 0),
+ overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 1),
+ overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 2),
+ overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 3),
};
-const union AnimCmd gUnknown_83A5680[] =
+static const union AnimCmd sAnim_JumpTallGrass[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(1, 8),
@@ -333,211 +333,211 @@ const union AnimCmd gUnknown_83A5680[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5694[] =
+static const union AnimCmd *const sAnimTable_JumpTallGrass[] =
{
- gUnknown_83A5680,
+ sAnim_JumpTallGrass,
};
-const struct SpriteTemplate gUnknown_83A5698 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x8,
- .anims = gUnknown_83A5694,
- .images = gUnknown_83A5660,
+ .anims = sAnimTable_JumpTallGrass,
+ .images = sPicTable_JumpTallGrass,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80DCCE0,
+ .callback = UpdateJumpImpactEffect,
};
-const struct SpriteFrameImage gUnknown_83A56B0[] =
+static const struct SpriteFrameImage sPicTable_SandFootprints[] =
{
- overworld_frame(gUnknown_839A388, 2, 2, 0),
- overworld_frame(gUnknown_839A388, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 1),
};
-const union AnimCmd gUnknown_83A56C0[] =
+static const union AnimCmd sSandFootprintsAnim_South[] =
{
ANIMCMD_FRAME(0, 1, .vFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A56C8[] =
+static const union AnimCmd sSandFootprintsAnim_North[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A56D0[] =
+static const union AnimCmd sSandFootprintsAnim_West[] =
{
ANIMCMD_FRAME(1, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A56D8[] =
+static const union AnimCmd sSandFootprintsAnim_East[] =
{
ANIMCMD_FRAME(1, 1, .hFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A56E0[] =
+static const union AnimCmd *const sAnimTable_SandFootprints[] =
{
- gUnknown_83A56C0,
- gUnknown_83A56C0,
- gUnknown_83A56C8,
- gUnknown_83A56D0,
- gUnknown_83A56D8,
+ [DIR_NONE] = sSandFootprintsAnim_South,
+ [DIR_SOUTH] = sSandFootprintsAnim_South,
+ [DIR_NORTH] = sSandFootprintsAnim_North,
+ [DIR_WEST] = sSandFootprintsAnim_West,
+ [DIR_EAST] = sSandFootprintsAnim_East,
};
-const struct SpriteTemplate gUnknown_83A56F4 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A56E0,
- .images = gUnknown_83A56B0,
+ .anims = sAnimTable_SandFootprints,
+ .images = sPicTable_SandFootprints,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateFootprintsTireTracksFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A570C[] =
+static const struct SpriteFrameImage sPicTable_DeepSandFootprints[] =
{
- overworld_frame(gUnknown_839A488, 2, 2, 0),
- overworld_frame(gUnknown_839A488, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 1),
};
-const union AnimCmd gUnknown_83A571C[] =
+static const union AnimCmd sDeepSandFootprintsAnim_South[] =
{
ANIMCMD_FRAME(0, 1, .vFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5724[] =
+static const union AnimCmd sDeepSandFootprintsAnim_North[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A572C[] =
+static const union AnimCmd sDeepSandFootprintsAnim_West[] =
{
ANIMCMD_FRAME(1, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5734[] =
+static const union AnimCmd sDeepSandFootprintsAnim_East[] =
{
ANIMCMD_FRAME(1, 1, .hFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A573C[] =
+static const union AnimCmd *const sAnimTable_DeepSandFootprints[] =
{
- gUnknown_83A571C,
- gUnknown_83A571C,
- gUnknown_83A5724,
- gUnknown_83A572C,
- gUnknown_83A5734,
+ [DIR_NONE] = sDeepSandFootprintsAnim_South,
+ [DIR_SOUTH] = sDeepSandFootprintsAnim_South,
+ [DIR_NORTH] = sDeepSandFootprintsAnim_North,
+ [DIR_WEST] = sDeepSandFootprintsAnim_West,
+ [DIR_EAST] = sDeepSandFootprintsAnim_East,
};
-const struct SpriteTemplate gUnknown_83A5750 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A573C,
- .images = gUnknown_83A570C,
+ .anims = sAnimTable_DeepSandFootprints,
+ .images = sPicTable_DeepSandFootprints,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateFootprintsTireTracksFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5768[] =
+static const struct SpriteFrameImage sPicTable_BikeTireTracks[] =
{
- overworld_frame(gUnknown_839A588, 2, 2, 0),
- overworld_frame(gUnknown_839A588, 2, 2, 1),
- overworld_frame(gUnknown_839A588, 2, 2, 2),
- overworld_frame(gUnknown_839A588, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 3),
};
-const union AnimCmd gUnknown_83A5788[] =
+static const union AnimCmd sBikeTireTracksAnim_South[] =
{
ANIMCMD_FRAME(2, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5790[] =
+static const union AnimCmd sBikeTireTracksAnim_North[] =
{
ANIMCMD_FRAME(2, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5798[] =
+static const union AnimCmd sBikeTireTracksAnim_West[] =
{
ANIMCMD_FRAME(1, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A57A0[] =
+static const union AnimCmd sBikeTireTracksAnim_East[] =
{
ANIMCMD_FRAME(1, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A57A8[] =
+static const union AnimCmd sBikeTireTracksAnim_SECornerTurn[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A57B0[] =
+static const union AnimCmd sBikeTireTracksAnim_SWCornerTurn[] =
{
ANIMCMD_FRAME(0, 1, .hFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A57B8[] =
+static const union AnimCmd sBikeTireTracksAnim_NWCornerTurn[] =
{
ANIMCMD_FRAME(3, 1, .hFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A57C0[] =
+static const union AnimCmd sBikeTireTracksAnim_NECornerTurn[] =
{
ANIMCMD_FRAME(3, 1),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A57C8[] =
+static const union AnimCmd *const sAnimTable_BikeTireTracks[] =
{
- gUnknown_83A5788,
- gUnknown_83A5788,
- gUnknown_83A5790,
- gUnknown_83A5798,
- gUnknown_83A57A0,
- gUnknown_83A57A8,
- gUnknown_83A57B0,
- gUnknown_83A57B8,
- gUnknown_83A57C0,
+ [DIR_NONE] = sBikeTireTracksAnim_South,
+ [DIR_SOUTH] = sBikeTireTracksAnim_South,
+ [DIR_NORTH] = sBikeTireTracksAnim_North,
+ [DIR_WEST] = sBikeTireTracksAnim_West,
+ [DIR_EAST] = sBikeTireTracksAnim_East,
+ [DIR_SOUTHWEST] = sBikeTireTracksAnim_SECornerTurn,
+ [DIR_SOUTHEAST] = sBikeTireTracksAnim_SWCornerTurn,
+ [DIR_NORTHWEST] = sBikeTireTracksAnim_NWCornerTurn,
+ [DIR_NORTHEAST] = sBikeTireTracksAnim_NECornerTurn,
};
-const struct SpriteTemplate gUnknown_83A57EC =
+const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A57C8,
- .images = gUnknown_83A5768,
+ .anims = sAnimTable_BikeTireTracks,
+ .images = sPicTable_BikeTireTracks,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateFootprintsTireTracksFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5804[] =
+static const struct SpriteFrameImage sPicTable_JumpBigSplash[] =
{
- overworld_frame(gUnknown_839AA48, 2, 2, 0),
- overworld_frame(gUnknown_839AA48, 2, 2, 1),
- overworld_frame(gUnknown_839AA48, 2, 2, 2),
- overworld_frame(gUnknown_839AA48, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 3),
};
-const union AnimCmd gUnknown_83A5824[] =
+static const union AnimCmd sAnim_JumpBigSplash[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(1, 8),
@@ -546,36 +546,36 @@ const union AnimCmd gUnknown_83A5824[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5838[] =
+static const union AnimCmd *const sAnimTable_JumpBigSplash[] =
{
- gUnknown_83A5824,
+ sAnim_JumpBigSplash,
};
-const struct SpriteTemplate gUnknown_83A583C =
+const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5838,
- .images = gUnknown_83A5804,
+ .anims = sAnimTable_JumpBigSplash,
+ .images = sPicTable_JumpBigSplash,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80DCCE0,
+ .callback = UpdateJumpImpactEffect,
};
-const struct SpriteFrameImage gUnknown_83A5854[] =
+static const struct SpriteFrameImage sPicTable_Splash[] =
{
- overworld_frame(gUnknown_839AC48, 2, 1, 0),
- overworld_frame(gUnknown_839AC48, 2, 1, 1),
+ overworld_frame(gFieldEffectObjectPic_Splash, 2, 1, 0),
+ overworld_frame(gFieldEffectObjectPic_Splash, 2, 1, 1),
};
-const union AnimCmd gUnknown_83A5864[] =
+static const union AnimCmd sAnim_Splash_0[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5870[] =
+static const union AnimCmd sAnim_Splash_1[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -588,31 +588,31 @@ const union AnimCmd gUnknown_83A5870[] =
ANIMCMD_JUMP(0),
};
-const union AnimCmd *const gUnknown_83A5894[] =
+static const union AnimCmd *const sAnimTable_Splash[] =
{
- gUnknown_83A5864,
- gUnknown_83A5870,
+ sAnim_Splash_0,
+ sAnim_Splash_1,
};
-const struct SpriteTemplate gUnknown_83A589C =
+const struct SpriteTemplate gFieldEffectObjectTemplate_Splash =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x8,
- .anims = gUnknown_83A5894,
- .images = gUnknown_83A5854,
+ .anims = sAnimTable_Splash,
+ .images = sPicTable_Splash,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateSplashFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A58B4[] =
+static const struct SpriteFrameImage sPicTable_JumpSmallSplash[] =
{
- overworld_frame(gUnknown_839ACC8, 2, 1, 0),
- overworld_frame(gUnknown_839ACC8, 2, 1, 1),
- overworld_frame(gUnknown_839ACC8, 2, 1, 2),
+ overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 0),
+ overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 1),
+ overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 2),
};
-const union AnimCmd gUnknown_83A58CC[] =
+static const union AnimCmd sAnim_JumpSmallSplash[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -620,31 +620,31 @@ const union AnimCmd gUnknown_83A58CC[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A58DC[] =
+static const union AnimCmd *const sAnimTable_JumpSmallSplash[] =
{
- gUnknown_83A58CC,
+ sAnim_JumpSmallSplash,
};
-const struct SpriteTemplate gUnknown_83A58E0 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x8,
- .anims = gUnknown_83A58DC,
- .images = gUnknown_83A58B4,
+ .anims = sAnimTable_JumpSmallSplash,
+ .images = sPicTable_JumpSmallSplash,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80DCCE0,
+ .callback = UpdateJumpImpactEffect,
};
-const struct SpriteFrameImage gUnknown_83A58F8[] =
+static const struct SpriteFrameImage sPicTable_LongGrass[] =
{
- overworld_frame(gUnknown_8399E08, 2, 2, 0),
- overworld_frame(gUnknown_8399E08, 2, 2, 1),
- overworld_frame(gUnknown_8399E08, 2, 2, 2),
- overworld_frame(gUnknown_8399E08, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 3),
};
-const union AnimCmd gUnknown_83A5918[] =
+static const union AnimCmd sAnim_LongGrass[] =
{
ANIMCMD_FRAME(1, 3),
ANIMCMD_FRAME(2, 3),
@@ -656,33 +656,33 @@ const union AnimCmd gUnknown_83A5918[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5938[] =
+static const union AnimCmd *const sAnimTable_LongGrass[] =
{
- gUnknown_83A5918,
+ sAnim_LongGrass,
};
-const struct SpriteTemplate gUnknown_83A593C =
+const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5938,
- .images = gUnknown_83A58F8,
+ .anims = sAnimTable_LongGrass,
+ .images = sPicTable_LongGrass,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateLongGrassFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5954[] =
+static const struct SpriteFrameImage sPicTable_JumpLongGrass[] =
{
- overworld_frame(gUnknown_8399488, 2, 2, 0),
- overworld_frame(gUnknown_8399488, 2, 2, 1),
- overworld_frame(gUnknown_8399488, 2, 2, 2),
- overworld_frame(gUnknown_8399488, 2, 2, 3),
- overworld_frame(gUnknown_8399488, 2, 2, 4),
- overworld_frame(gUnknown_8399488, 2, 2, 6),
+ overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 6),
};
-const union AnimCmd gUnknown_83A5984[] =
+static const union AnimCmd sAnim_JumpLongGrass[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -693,36 +693,36 @@ const union AnimCmd gUnknown_83A5984[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A59A0[] =
+static const union AnimCmd *const sAnimTable_JumpLongGrass[] =
{
- gUnknown_83A5984,
+ sAnim_JumpLongGrass,
};
-const struct SpriteTemplate gUnknown_83A59A4 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A59A0,
- .images = gUnknown_83A5954,
+ .anims = sAnimTable_JumpLongGrass,
+ .images = sPicTable_JumpLongGrass,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80DCCE0,
+ .callback = UpdateJumpImpactEffect,
};
-const struct SpriteFrameImage gUnknown_83A59BC[] =
+static const struct SpriteFrameImage sPicTable_UnusedGrass[] =
{
- overworld_frame(gUnknown_8399788, 2, 2, 0),
- overworld_frame(gUnknown_8399788, 2, 2, 1),
- overworld_frame(gUnknown_8399788, 2, 2, 2),
- overworld_frame(gUnknown_8399788, 2, 2, 3),
- overworld_frame(gUnknown_8399788, 2, 2, 4),
- overworld_frame(gUnknown_8399788, 2, 2, 5),
- overworld_frame(gUnknown_8399788, 2, 2, 6),
- overworld_frame(gUnknown_8399788, 2, 2, 7),
- overworld_frame(gUnknown_8399788, 2, 2, 8),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 5),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 6),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 7),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 8),
};
-const union AnimCmd gUnknown_83A5A04[] =
+static const union AnimCmd sAnim_UnusedGrass[] =
{
ANIMCMD_FRAME(0, 10),
ANIMCMD_FRAME(1, 4),
@@ -736,31 +736,31 @@ const union AnimCmd gUnknown_83A5A04[] =
ANIMCMD_JUMP(7),
};
-const union AnimCmd *const gUnknown_83A5A2C[] =
+static const union AnimCmd *const sAnimTable_UnusedGrass[] =
{
- gUnknown_83A5A04,
+ sAnim_UnusedGrass,
};
-const struct SpriteTemplate gUnknown_83A5A30 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5A2C,
- .images = gUnknown_83A59BC,
+ .anims = sAnimTable_UnusedGrass,
+ .images = sPicTable_UnusedGrass,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = WaitFieldEffectSpriteAnim,
};
-const struct SpriteFrameImage gUnknown_83A5A48[] =
+static const struct SpriteFrameImage sPicTable_UnusedGrass2[] =
{
- overworld_frame(gUnknown_8399C08, 2, 2, 0),
- overworld_frame(gUnknown_8399C08, 2, 2, 1),
- overworld_frame(gUnknown_8399C08, 2, 2, 2),
- overworld_frame(gUnknown_8399C08, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass2, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass2, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass2, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_UnusedGrass2, 2, 2, 3),
};
-const union AnimCmd gUnknown_83A5A68[] =
+static const union AnimCmd sAnim_UnusedGrass2[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -771,31 +771,31 @@ const union AnimCmd gUnknown_83A5A68[] =
ANIMCMD_JUMP(0),
};
-const union AnimCmd *const gUnknown_83A5A84[] =
+static const union AnimCmd *const sAnimTable_UnusedGrass2[] =
{
- gUnknown_83A5A68,
+ sAnim_UnusedGrass2,
};
-const struct SpriteTemplate gUnknown_83A5A88 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2 =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5A84,
- .images = gUnknown_83A5A48,
+ .anims = sAnimTable_UnusedGrass2,
+ .images = sPicTable_UnusedGrass2,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = WaitFieldEffectSpriteAnim,
};
-const struct SpriteFrameImage gUnknown_83A5AA0[] =
+static const struct SpriteFrameImage sPicTable_UnusedSand[] =
{
- overworld_frame(gUnknown_839A788, 2, 2, 0),
- overworld_frame(gUnknown_839A788, 2, 2, 1),
- overworld_frame(gUnknown_839A788, 2, 2, 2),
- overworld_frame(gUnknown_839A788, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 3),
};
-const union AnimCmd gUnknown_83A5AC0[] =
+static const union AnimCmd sAnim_UnusedSand[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -804,30 +804,30 @@ const union AnimCmd gUnknown_83A5AC0[] =
ANIMCMD_JUMP(0),
};
-const union AnimCmd *const gUnknown_83A5AD4[] =
+static const union AnimCmd *const sAnimTable_UnusedSand[] =
{
- gUnknown_83A5AC0,
+ sAnim_UnusedSand,
};
-const struct SpriteTemplate gUnknown_83A5AD8 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5AD4,
- .images = gUnknown_83A5AA0,
+ .anims = sAnimTable_UnusedSand,
+ .images = sPicTable_UnusedSand,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = WaitFieldEffectSpriteAnim,
};
-const struct SpriteFrameImage gUnknown_83A5AF0[] =
+static const struct SpriteFrameImage sPicTable_SandPile[] =
{
- overworld_frame(gUnknown_839A988, 2, 1, 0),
- overworld_frame(gUnknown_839A988, 2, 1, 1),
- overworld_frame(gUnknown_839A988, 2, 1, 2),
+ overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 0),
+ overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 1),
+ overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 2),
};
-const union AnimCmd gUnknown_83A5B08[] =
+static const union AnimCmd sAnim_SandPile[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -835,31 +835,31 @@ const union AnimCmd gUnknown_83A5B08[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5B18[] =
+static const union AnimCmd *const sAnimTable_SandPile[] =
{
- gUnknown_83A5B08,
+ sAnim_SandPile,
};
-const struct SpriteTemplate gUnknown_83A5B1C =
+const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x8,
- .anims = gUnknown_83A5B18,
- .images = gUnknown_83A5AF0,
+ .anims = sAnimTable_SandPile,
+ .images = sPicTable_SandPile,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateSandPileFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5B34[] =
+static const struct SpriteFrameImage sPicTable_WaterSurfacing[] =
{
- overworld_frame(gUnknown_839AD88, 2, 2, 0),
- overworld_frame(gUnknown_839AD88, 2, 2, 1),
- overworld_frame(gUnknown_839AD88, 2, 2, 2),
- overworld_frame(gUnknown_839AD88, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_WaterSurfacing, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_WaterSurfacing, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_WaterSurfacing, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_WaterSurfacing, 2, 2, 3),
};
-const union AnimCmd gUnknown_83A5B54[] =
+static const union AnimCmd sAnim_WaterSurfacing[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -870,23 +870,23 @@ const union AnimCmd gUnknown_83A5B54[] =
ANIMCMD_JUMP(0),
};
-const union AnimCmd *const gUnknown_83A5B70[] =
+static const union AnimCmd *const sAnimTable_WaterSurfacing[] =
{
- gUnknown_83A5B54,
+ sAnim_WaterSurfacing,
};
-const struct SpriteTemplate gUnknown_83A5B74 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5B70,
- .images = gUnknown_83A5B34,
+ .anims = sAnimTable_WaterSurfacing,
+ .images = sPicTable_WaterSurfacing,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = WaitFieldEffectSpriteAnim,
};
-const union AffineAnimCmd gUnknown_83A5B8C[] =
+const union AffineAnimCmd sAffineAnim_ReflectionDistortion_0[] =
{
AFFINEANIMCMD_FRAME(-256, 256, 128, 0),
AFFINEANIMCMD_FRAME(1, 0, 0, 4),
@@ -900,7 +900,7 @@ const union AffineAnimCmd gUnknown_83A5B8C[] =
AFFINEANIMCMD_JUMP(1),
};
-const union AffineAnimCmd gUnknown_83A5BDC[] =
+const union AffineAnimCmd sAffineAnim_ReflectionDistortion_1[] =
{
AFFINEANIMCMD_FRAME(256, 256, 128, 0),
AFFINEANIMCMD_FRAME(-1, 0, 0, 4),
@@ -914,41 +914,92 @@ const union AffineAnimCmd gUnknown_83A5BDC[] =
AFFINEANIMCMD_JUMP(1),
};
-const union AffineAnimCmd *const gUnknown_83A5C2C[] =
+const union AffineAnimCmd *const sAffineAnims_ReflectionDistortion[] =
{
- gUnknown_83A5B8C,
- gUnknown_83A5BDC,
+ sAffineAnim_ReflectionDistortion_0,
+ sAffineAnim_ReflectionDistortion_1,
};
-const struct SpriteTemplate gUnknown_83A5C34 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion =
{
.tileTag = 0x0,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gDummyOamData,
.anims = gDummySpriteAnimTable,
.images = NULL,
- .affineAnims = gUnknown_83A5C2C,
+ .affineAnims = sAffineAnims_ReflectionDistortion,
.callback = SpriteCallbackDummy,
};
-const struct SpriteFrameImage gUnknown_83A5C4C[] =
+/*
+static const struct SpriteFrameImage sPicTable_Sparkle[] = {
+ overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 5),
+};
+
+static const union AnimCmd sAnim_Sparkle[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(5, 8),
+ ANIMCMD_LOOP(0),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_LOOP(3),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(5, 8),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sAnimTable_Sparkle[] =
+{
+ sAnim_Sparkle,
+};
+
+const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle = {
+ .tileTag = 0xFFFF,
+ .paletteTag = 0xFFFF,
+ .oam = &gObjectEventBaseOam_16x16,
+ .anims = sAnimTable_Sparkle,
+ .images = sPicTable_Sparkle,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = WaitFieldEffectSpriteAnim,
+};
+*/
+
+static const struct SpriteFrameImage sPicTable_TreeDisguise[] =
{
- overworld_frame(gUnknown_839B008, 2, 4, 0),
- overworld_frame(gUnknown_839B008, 2, 4, 1),
- overworld_frame(gUnknown_839B008, 2, 4, 2),
- overworld_frame(gUnknown_839B008, 2, 4, 3),
- overworld_frame(gUnknown_839B008, 2, 4, 4),
- overworld_frame(gUnknown_839B008, 2, 4, 5),
- overworld_frame(gUnknown_839B008, 2, 4, 6),
+ overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 0),
+ overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 1),
+ overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 2),
+ overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 3),
+ overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 4),
+ overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 5),
+ overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 6),
};
-const union AnimCmd gUnknown_83A5C84[] =
+static const union AnimCmd sAnim_TreeDisguise[] =
{
ANIMCMD_FRAME(0, 16),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5C8C[] =
+static const union AnimCmd sAnim_TreeDisguiseReveal[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -960,41 +1011,41 @@ const union AnimCmd gUnknown_83A5C8C[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5CAC[] =
+static const union AnimCmd *const sAnimTable_TreeDisguise[] =
{
- gUnknown_83A5C84,
- gUnknown_83A5C8C,
+ sAnim_TreeDisguise,
+ sAnim_TreeDisguiseReveal,
};
-const struct SpriteTemplate gUnknown_83A5CB4 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_16x32,
- .anims = gUnknown_83A5CAC,
- .images = gUnknown_83A5C4C,
+ .anims = sAnimTable_TreeDisguise,
+ .images = sPicTable_TreeDisguise,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateDisguiseFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5CCC[] =
+static const struct SpriteFrameImage sPicTable_MountainDisguise[] =
{
- overworld_frame(gUnknown_839B708, 2, 4, 0),
- overworld_frame(gUnknown_839B708, 2, 4, 1),
- overworld_frame(gUnknown_839B708, 2, 4, 2),
- overworld_frame(gUnknown_839B708, 2, 4, 3),
- overworld_frame(gUnknown_839B708, 2, 4, 4),
- overworld_frame(gUnknown_839B708, 2, 4, 5),
- overworld_frame(gUnknown_839B708, 2, 4, 6),
+ overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 0),
+ overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 1),
+ overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 2),
+ overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 3),
+ overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 4),
+ overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 5),
+ overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 6),
};
-const union AnimCmd gUnknown_83A5D04[] =
+static const union AnimCmd sAnim_MountainDisguise[] =
{
ANIMCMD_FRAME(0, 16),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5D0C[] =
+static const union AnimCmd sAnim_MountainDisguiseReveal[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -1006,170 +1057,170 @@ const union AnimCmd gUnknown_83A5D0C[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5D2C[] =
+static const union AnimCmd *const sAnimTable_MountainDisguise[] =
{
- gUnknown_83A5D04,
- gUnknown_83A5D0C,
+ sAnim_MountainDisguise,
+ sAnim_MountainDisguiseReveal,
};
-const struct SpriteTemplate gUnknown_83A5D34 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_16x32,
- .anims = gUnknown_83A5D2C,
- .images = gUnknown_83A5CCC,
+ .anims = sAnimTable_MountainDisguise,
+ .images = sPicTable_MountainDisguise,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateDisguiseFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5D4C[] =
+static const struct SpriteFrameImage sPicTable_SandDisguisePlaceholder[] =
{
- overworld_frame(gUnknown_839BE08, 2, 4, 0),
- overworld_frame(gUnknown_839BE08, 2, 4, 1),
- overworld_frame(gUnknown_839BE08, 2, 4, 2),
- overworld_frame(gUnknown_839BE08, 2, 4, 3),
- overworld_frame(gUnknown_839BE08, 2, 4, 4),
- overworld_frame(gUnknown_839BE08, 2, 4, 5),
- overworld_frame(gUnknown_839BE08, 2, 4, 6),
+ overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 0),
+ overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 1),
+ overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 2),
+ overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 3),
+ overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 4),
+ overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 5),
+ overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 6),
};
-const struct SpriteTemplate gUnknown_83A5D84 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_16x32,
- .anims = gUnknown_83A5CAC,
- .images = gUnknown_83A5D4C,
+ .anims = sAnimTable_TreeDisguise,
+ .images = sPicTable_SandDisguisePlaceholder,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateDisguiseFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5D9C[] =
+static const struct SpriteFrameImage sPicTable_Bird[] =
{
- overworld_frame(gUnknown_839D3C8, 8, 8, 0),
- overworld_frame(gUnknown_839D3C8, 8, 8, 1),
- overworld_frame(gUnknown_839D3C8, 8, 8, 2),
- overworld_frame(gUnknown_839D3C8, 8, 8, 3),
- overworld_frame(gUnknown_839D3C8, 8, 8, 4),
+ overworld_frame(gFieldEffectObjectPic_Bird, 8, 8, 0),
+ overworld_frame(gFieldEffectObjectPic_Bird, 8, 8, 1),
+ overworld_frame(gFieldEffectObjectPic_Bird, 8, 8, 2),
+ overworld_frame(gFieldEffectObjectPic_Bird, 8, 8, 3),
+ overworld_frame(gFieldEffectObjectPic_Bird, 8, 8, 4),
};
-const union AnimCmd gUnknown_83A5DC4[] =
+static const union AnimCmd sAnim_Bird_0[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5DCC[] =
+static const union AnimCmd sAnim_Bird_1[] =
{
ANIMCMD_FRAME(1, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5DD4[] =
+static const union AnimCmd sAnim_Bird_2[] =
{
ANIMCMD_FRAME(2, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5DDC[] =
+static const union AnimCmd sAnim_Bird_3[] =
{
ANIMCMD_FRAME(3, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_83A5DE4[] =
+static const union AnimCmd sAnim_Bird_4[] =
{
ANIMCMD_FRAME(4, 1),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5DEC[] =
+static const union AnimCmd *const sAnimTable_Bird[] =
{
- gUnknown_83A5DC4,
- gUnknown_83A5DCC,
- gUnknown_83A5DD4,
- gUnknown_83A5DDC,
- gUnknown_83A5DE4,
+ sAnim_Bird_0,
+ sAnim_Bird_1,
+ sAnim_Bird_2,
+ sAnim_Bird_3,
+ sAnim_Bird_4,
};
-const struct SpriteTemplate gUnknown_83A5E00 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_Bird =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = SPRITE_INVALID_TAG,
.oam = &gObjectEventBaseOam_64x64,
- .anims = gUnknown_83A5DEC,
- .images = gUnknown_83A5D9C,
+ .anims = sAnimTable_Bird,
+ .images = sPicTable_Bird,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
-const struct SpriteFrameImage gUnknown_83A5E18[] =
+static const struct SpriteFrameImage sPicTable_ShortGrass[] =
{
- overworld_frame(gUnknown_839A288, 2, 2, 0),
- overworld_frame(gUnknown_839A288, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_ShortGrass, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_ShortGrass, 2, 2, 1),
};
-const union AnimCmd gUnknown_83A5E28[] =
+static const union AnimCmd sAnim_ShortGrass[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5E34[] =
+static const union AnimCmd *const sAnimTable_ShortGrass[] =
{
- gUnknown_83A5E28,
+ sAnim_ShortGrass,
};
-const struct SpriteTemplate gUnknown_83A5E38 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5E34,
- .images = gUnknown_83A5E18,
+ .anims = sAnimTable_ShortGrass,
+ .images = sPicTable_ShortGrass,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateShortGrassFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5E50[] =
+static const struct SpriteFrameImage sPicTable_HotSpringsWater[] =
{
- overworld_frame(gUnknown_839C508, 2, 2, 0),
+ obj_frame_tiles(gFieldEffectObjectPic_HotSpringsWater),
};
-const union AnimCmd gUnknown_83A5E58[] =
+static const union AnimCmd sAnim_HotSpringsWater[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5E60[] =
+static const union AnimCmd *const sAnimTable_HotSpringsWater[] =
{
- gUnknown_83A5E58,
+ sAnim_HotSpringsWater,
};
-const struct SpriteTemplate gUnknown_83A5E64 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1005,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_1,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5E60,
- .images = gUnknown_83A5E50,
+ .anims = sAnimTable_HotSpringsWater,
+ .images = sPicTable_HotSpringsWater,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateHotSpringsWaterFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5E7C[] =
+static const struct SpriteFrameImage sPicTable_AshPuff[] =
{
- overworld_frame(gUnknown_839C5A8, 2, 2, 0),
- overworld_frame(gUnknown_839C5A8, 2, 2, 1),
- overworld_frame(gUnknown_839C5A8, 2, 2, 2),
- overworld_frame(gUnknown_839C5A8, 2, 2, 3),
- overworld_frame(gUnknown_839C5A8, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 4),
};
-const union AnimCmd gUnknown_83A5EA4[] =
+static const union AnimCmd sAnim_AshPuff[] =
{
ANIMCMD_FRAME(0, 6),
ANIMCMD_FRAME(1, 6),
@@ -1179,34 +1230,34 @@ const union AnimCmd gUnknown_83A5EA4[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5EBC[] =
+static const union AnimCmd *const sAnimTable_AshPuff[] =
{
- gUnknown_83A5EA4,
+ sAnim_AshPuff,
};
-const struct SpriteTemplate gUnknown_83A5EC0 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x100D,
+ .paletteTag = FLDEFF_PAL_TAG_ASH,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5EBC,
- .images = gUnknown_83A5E7C,
+ .anims = sAnimTable_AshPuff,
+ .images = sPicTable_AshPuff,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_PopOutOfAsh,
};
-const struct SpritePalette gUnknown_83A5ED8 = { .data = gUnknown_839C588, .tag = 0x100D };
+const struct SpritePalette gSpritePalette_Ash = { .data = gFieldEffectPal_Ash, .tag = FLDEFF_PAL_TAG_ASH };
-const struct SpriteFrameImage gUnknown_83A5EE0[] =
+static const struct SpriteFrameImage sPicTable_AshLaunch[] =
{
- overworld_frame(gUnknown_839C828, 2, 2, 0),
- overworld_frame(gUnknown_839C828, 2, 2, 1),
- overworld_frame(gUnknown_839C828, 2, 2, 2),
- overworld_frame(gUnknown_839C828, 2, 2, 3),
- overworld_frame(gUnknown_839C828, 2, 2, 4),
+ overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 2),
+ overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 3),
+ overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 4),
};
-const union AnimCmd gUnknown_83A5F08[] =
+static const union AnimCmd sAnim_AshLaunch[] =
{
ANIMCMD_FRAME(0, 6),
ANIMCMD_FRAME(1, 6),
@@ -1216,35 +1267,35 @@ const union AnimCmd gUnknown_83A5F08[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5F20[] =
+static const union AnimCmd *const sAnimTable_AshLaunch[] =
{
- gUnknown_83A5F08,
+ sAnim_AshLaunch,
};
-const struct SpriteTemplate gUnknown_83A5F24 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x100D,
+ .paletteTag = FLDEFF_PAL_TAG_ASH,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5F20,
- .images = gUnknown_83A5EE0,
+ .anims = sAnimTable_AshLaunch,
+ .images = sPicTable_AshLaunch,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = SpriteCB_LavaridgeGymWarp,
+ .callback = SpriteCB_AshLaunch,
};
-const struct SpriteFrameImage gUnknown_83A5F3C[] =
+static const struct SpriteFrameImage sPicTable_Bubbles[] =
{
- overworld_frame(gUnknown_839CAA8, 2, 4, 0),
- overworld_frame(gUnknown_839CAA8, 2, 4, 1),
- overworld_frame(gUnknown_839CAA8, 2, 4, 2),
- overworld_frame(gUnknown_839CAA8, 2, 4, 3),
- overworld_frame(gUnknown_839CAA8, 2, 4, 4),
- overworld_frame(gUnknown_839CAA8, 2, 4, 5),
- overworld_frame(gUnknown_839CAA8, 2, 4, 6),
- overworld_frame(gUnknown_839CAA8, 2, 4, 7),
+ overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 0),
+ overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 1),
+ overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 2),
+ overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 3),
+ overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 4),
+ overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 5),
+ overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 6),
+ overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 7),
};
-const union AnimCmd gUnknown_83A5F7C[] =
+static const union AnimCmd sAnim_Bubbles[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(1, 4),
@@ -1257,29 +1308,29 @@ const union AnimCmd gUnknown_83A5F7C[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5FA0[] =
+static const union AnimCmd *const sAnimTable_Bubbles[] =
{
- gUnknown_83A5F7C,
+ sAnim_Bubbles,
};
-const struct SpriteTemplate gUnknown_83A5FA4 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x1004,
+ .paletteTag = FLDEFF_PAL_TAG_GENERAL_0,
.oam = &gObjectEventBaseOam_16x32,
- .anims = gUnknown_83A5FA0,
- .images = gUnknown_83A5F3C,
+ .anims = sAnimTable_Bubbles,
+ .images = sPicTable_Bubbles,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateBubblesFieldEffect,
};
-const struct SpriteFrameImage gUnknown_83A5FBC[] =
+static const struct SpriteFrameImage sPicTable_SmallSparkle[] =
{
- overworld_frame(gUnknown_839D2A8, 2, 2, 0),
- overworld_frame(gUnknown_839D2A8, 2, 2, 1),
+ overworld_frame(gFieldEffectObjectPic_SmallSparkle, 2, 2, 0),
+ overworld_frame(gFieldEffectObjectPic_SmallSparkle, 2, 2, 1),
};
-const union AnimCmd gUnknown_83A5FCC[] =
+static const union AnimCmd sAnim_SmallSparkle[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(1, 5),
@@ -1287,20 +1338,20 @@ const union AnimCmd gUnknown_83A5FCC[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_83A5FDC[] =
+static const union AnimCmd *const sAnimTable_SmallSparkle[] =
{
- gUnknown_83A5FCC,
+ sAnim_SmallSparkle,
};
-const struct SpriteTemplate gUnknown_83A5FE0 =
+const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle =
{
.tileTag = SPRITE_INVALID_TAG,
- .paletteTag = 0x100F,
+ .paletteTag = FLDEFF_PAL_TAG_SMALL_SPARKLE,
.oam = &gObjectEventBaseOam_16x16,
- .anims = gUnknown_83A5FDC,
- .images = gUnknown_83A5FBC,
+ .anims = sAnimTable_SmallSparkle,
+ .images = sPicTable_SmallSparkle,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateSparkleFieldEffect,
};
-const struct SpritePalette gUnknown_83A5FF8 = { .data = gUnknown_839D3A8, .tag = 0x100F };
+const struct SpritePalette gSpritePalette_SmallSparkle = { .data = gFieldEffectPal_SmallSparkle, .tag = FLDEFF_PAL_TAG_SMALL_SPARKLE };
diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h
index 87451cae1..7d0f57e3c 100644
--- a/src/data/object_events/object_event_graphics.h
+++ b/src/data/object_events/object_event_graphics.h
@@ -1,4 +1,4 @@
-const u16 gUnknown_835B968[] = INCBIN_U16("graphics/object_events/palettes/0.gbapal");
+const u16 gObjectEventPal_Player[] = INCBIN_U16("graphics/object_events/palettes/player.gbapal");
const u16 gUnknown_835B988[] = INCBIN_U16("graphics/object_events/palettes/unk_835B988.gbapal");
const u16 gObjectEventPaletteNull1[16] = {};
const u16 gObjectEventPaletteNull2[16] = {};
@@ -14,248 +14,219 @@ const u16 gObjectEventPaletteNull11[16] = {};
const u16 gObjectEventPaletteNull12[16] = {};
const u16 gObjectEventPaletteNull13[16] = {};
const u16 gObjectEventPaletteNull14[16] = {};
-const u32 gObjectEventPic_RedNormal[] = INCBIN_U32("graphics/object_events/pics/people/red_normal.4bpp");
-const u32 gObjectEventPic_RedSurfRun[] = INCBIN_U32("graphics/object_events/pics/people/red_surf_run.4bpp");
-const u32 gObjectEventPic_GreenNormal[] = INCBIN_U32("graphics/object_events/pics/people/green_normal.4bpp");
-const u32 gObjectEventPic_GreenSurfRun[] = INCBIN_U32("graphics/object_events/pics/people/green_surf_run.4bpp");
-const u16 gUnknown_835E968[] = INCBIN_U16("graphics/object_events/palettes/1.gbapal");
-const u16 gUnknown_835E988[] = INCBIN_U16("graphics/object_events/palettes/2.gbapal");
-const u32 gObjectEventPic_RedItem[] = INCBIN_U32("graphics/object_events/pics/people/red_item.4bpp");
-const u32 gObjectEventPic_GreenItem[] = INCBIN_U32("graphics/object_events/pics/people/green_item.4bpp");
-const u32 gObjectEventPic_RedSurf[] = INCBIN_U32("graphics/object_events/pics/people/red_surf.4bpp");
-const u32 gObjectEventPic_GreenSurf[] = INCBIN_U32("graphics/object_events/pics/people/green_surf.4bpp");
-const u32 gObjectEventPic_RedBike[] = INCBIN_U32("graphics/object_events/pics/people/red_bike.4bpp");
-const u32 gObjectEventPic_RedVSSeekerBike[] = INCBIN_U32("graphics/object_events/pics/people/red_vs_seeker_bike.4bpp");
-const u32 gObjectEventPic_GreenBike[] = INCBIN_U32("graphics/object_events/pics/people/green_bike.4bpp");
-const u32 gObjectEventPic_GreenVSSeekerBike[] = INCBIN_U32("graphics/object_events/pics/people/green_vs_seeker_bike.4bpp");
-const u32 gObjectEventPic_RSBrendan[] = INCBIN_U32("graphics/object_events/pics/people/rs_brendan.4bpp");
-const u32 gObjectEventPic_RSMay[] = INCBIN_U32("graphics/object_events/pics/people/rs_may.4bpp");
-const u32 gObjectEventPic_RedFish[] = INCBIN_U32("graphics/object_events/pics/people/red_fish.4bpp");
-const u32 gObjectEventPic_GreenFish[] = INCBIN_U32("graphics/object_events/pics/people/green_fish.4bpp");
-const u32 gObjectEventPic_Pokedex[] = INCBIN_U32("graphics/object_events/pics/misc/pokedex.4bpp");
-const u32 gObjectEventPic_TownMap[] = INCBIN_U32("graphics/object_events/pics/misc/town_map.4bpp");
-const u32 gObjectEventPic_UnusedMan[] = INCBIN_U32("graphics/object_events/pics/people/unused_man.4bpp"); // Unused
-const u32 gObjectEventPic_Giovanni[] = INCBIN_U32("graphics/object_events/pics/people/giovanni.4bpp");
-const u32 gObjectEventPic_Blaine[] = INCBIN_U32("graphics/object_events/pics/people/blaine.4bpp");
-const u32 gObjectEventPic_Sabrina[] = INCBIN_U32("graphics/object_events/pics/people/sabrina.4bpp");
-const u32 gObjectEventPic_Daisy[] = INCBIN_U32("graphics/object_events/pics/people/daisy.4bpp");
-const u32 gObjectEventPic_Lorelei[] = INCBIN_U32("graphics/object_events/pics/people/lorelei.4bpp");
-const u32 gObjectEventPic_Erika[] = INCBIN_U32("graphics/object_events/pics/people/erika.4bpp");
-const u32 gObjectEventPic_Koga[] = INCBIN_U32("graphics/object_events/pics/people/koga.4bpp");
-const u32 gObjectEventPic_Brock[] = INCBIN_U32("graphics/object_events/pics/people/brock.4bpp");
-const u32 gObjectEventPic_LtSurge[] = INCBIN_U32("graphics/object_events/pics/people/lt_surge.4bpp");
-const u32 gObjectEventPic_Bill[] = INCBIN_U32("graphics/object_events/pics/people/bill.4bpp");
-const u16 gUnknown_836D828[] = INCBIN_U16("graphics/object_events/palettes/3.gbapal");
-const u16 gUnknown_836D848[] = INCBIN_U16("graphics/object_events/palettes/4.gbapal");
-const u16 gUnknown_836D868[] = INCBIN_U16("graphics/object_events/palettes/5.gbapal");
-const u16 gUnknown_836D888[] = INCBIN_U16("graphics/object_events/palettes/6.gbapal");
-const u16 gUnknown_836D8A8[] = INCBIN_U16("graphics/object_events/palettes/7.gbapal");
-const u16 gUnknown_836D8C8[] = INCBIN_U16("graphics/object_events/palettes/8.gbapal");
-const u16 gUnknown_836D8E8[] = INCBIN_U16("graphics/object_events/palettes/9.gbapal");
-const u16 gUnknown_836D908[] = INCBIN_U16("graphics/object_events/palettes/10.gbapal");
-const u32 gObjectEventPic_LittleBoy[] = INCBIN_U32("graphics/object_events/pics/people/little_boy.4bpp");
-const u32 gObjectEventPic_LittleGirl[] = INCBIN_U32("graphics/object_events/pics/people/little_girl.4bpp");
-const u32 gObjectEventPic_SittingBoy[] = INCBIN_U32("graphics/object_events/pics/people/sitting_boy.4bpp");
-const u32 gObjectEventPic_Lass[] = INCBIN_U32("graphics/object_events/pics/people/lass.4bpp");
-const u32 gObjectEventPic_Youngster[] = INCBIN_U32("graphics/object_events/pics/people/youngster.4bpp");
-const u32 gObjectEventPic_Boy[] = INCBIN_U32("graphics/object_events/pics/people/boy.4bpp");
-const u32 gObjectEventPic_Woman1[] = INCBIN_U32("graphics/object_events/pics/people/woman_1.4bpp");
-const u32 gObjectEventPic_Woman3[] = INCBIN_U32("graphics/object_events/pics/people/woman_3.4bpp");
-const u32 gObjectEventPic_BugCatcher[] = INCBIN_U32("graphics/object_events/pics/people/bug_catcher.4bpp");
-const u32 gObjectEventPic_BattleGirl[] = INCBIN_U32("graphics/object_events/pics/people/battle_girl.4bpp");
-const u32 gObjectEventPic_RichBoy[] = INCBIN_U32("graphics/object_events/pics/people/rich_boy.4bpp"); // Unused
-const u32 gObjectEventPic_FatMan[] = INCBIN_U32("graphics/object_events/pics/people/fat_man.4bpp");
-const u32 gObjectEventPic_BaldingMan[] = INCBIN_U32("graphics/object_events/pics/people/balding_man.4bpp");
-const u32 gObjectEventPic_Woman2[] = INCBIN_U32("graphics/object_events/pics/people/woman_2.4bpp");
-const u32 gObjectEventPic_OldMan1[] = INCBIN_U32("graphics/object_events/pics/people/old_man_1.4bpp");
-const u32 gObjectEventPic_OldManLyingDown[] = INCBIN_U32("graphics/object_events/pics/people/old_man_lying_down.4bpp");
-const u32 gObjectEventPic_WorkerM[] = INCBIN_U32("graphics/object_events/pics/people/worker_m.4bpp");
-const u32 gObjectEventPic_WorkerF[] = INCBIN_U32("graphics/object_events/pics/people/worker_f.4bpp");
-const u32 gObjectEventPic_Beauty[] = INCBIN_U32("graphics/object_events/pics/people/beauty.4bpp");
-const u32 gObjectEventPic_Chef[] = INCBIN_U32("graphics/object_events/pics/people/chef.4bpp");
-const u32 gObjectEventPic_OldMan2[] = INCBIN_U32("graphics/object_events/pics/people/old_man_2.4bpp");
-const u32 gObjectEventPic_OldWoman[] = INCBIN_U32("graphics/object_events/pics/people/old_woman.4bpp");
-const u32 gObjectEventPic_Camper[] = INCBIN_U32("graphics/object_events/pics/people/camper.4bpp");
-const u32 gObjectEventPic_Picnicker[] = INCBIN_U32("graphics/object_events/pics/people/picnicker.4bpp");
-const u32 gObjectEventPic_CooltrainerM[] = INCBIN_U32("graphics/object_events/pics/people/cooltrainer_m.4bpp");
-const u32 gObjectEventPic_CooltrainerF[] = INCBIN_U32("graphics/object_events/pics/people/cooltrainer_f.4bpp");
-const u32 gObjectEventPic_Psyduck[] = INCBIN_U32("graphics/object_events/pics/pokemon/psyduck.4bpp");
-const u32 gObjectEventPic_SuperNerd[] = INCBIN_U32("graphics/object_events/pics/people/super_nerd.4bpp");
-const u32 gObjectEventPic_Channeler[] = INCBIN_U32("graphics/object_events/pics/people/channeler.4bpp");
-const u32 gObjectEventPic_RocketF[] = INCBIN_U32("graphics/object_events/pics/people/rocket_f.4bpp");
-const u32 gObjectEventPic_SwimmerMWater[] = INCBIN_U32("graphics/object_events/pics/people/swimmer_m_water.4bpp");
-const u32 gObjectEventPic_SwimmerFWater[] = INCBIN_U32("graphics/object_events/pics/people/swimmer_f_water.4bpp");
-const u32 gObjectEventPic_SwimmerMLand[] = INCBIN_U32("graphics/object_events/pics/people/swimmer_m_land.4bpp");
-const u32 gObjectEventPic_SwimmerFLand[] = INCBIN_U32("graphics/object_events/pics/people/swimmer_f_land.4bpp");
-const u32 gObjectEventPic_Blackbelt[] = INCBIN_U32("graphics/object_events/pics/people/blackbelt.4bpp");
-const u32 gObjectEventPic_Scientist[] = INCBIN_U32("graphics/object_events/pics/people/scientist.4bpp");
-const u32 gObjectEventPic_Gentleman[] = INCBIN_U32("graphics/object_events/pics/people/gentleman.4bpp");
-const u32 gObjectEventPic_Sailor[] = INCBIN_U32("graphics/object_events/pics/people/sailor.4bpp");
-const u32 gObjectEventPic_Captain[] = INCBIN_U32("graphics/object_events/pics/people/captain.4bpp");
-const u32 gObjectEventPic_Fisher[] = INCBIN_U32("graphics/object_events/pics/people/fisher.4bpp");
-const u32 gObjectEventPic_TeachyTVHost[] = INCBIN_U32("graphics/object_events/pics/people/teachy_tv_host.4bpp");
-const u32 gObjectEventPic_UnusedWoman[] = INCBIN_U32("graphics/object_events/pics/people/unused_woman.4bpp");
-const u32 gObjectEventPic_TuberF[] = INCBIN_U32("graphics/object_events/pics/people/tuber_f.4bpp");
-const u32 gObjectEventPic_TuberMWater[] = INCBIN_U32("graphics/object_events/pics/people/tuber_m_water.4bpp");
-const u32 gObjectEventPic_TuberMLand[] = INCBIN_U32("graphics/object_events/pics/people/tuber_m_land.4bpp");
-const u32 gObjectEventPic_Hiker[] = INCBIN_U32("graphics/object_events/pics/people/hiker.4bpp");
-const u32 gObjectEventPic_Biker[] = INCBIN_U32("graphics/object_events/pics/people/biker.4bpp");
-const u32 gObjectEventPic_GymGuy[] = INCBIN_U32("graphics/object_events/pics/people/gym_guy.4bpp");
-const u32 gObjectEventPic_Man[] = INCBIN_U32("graphics/object_events/pics/people/man.4bpp");
-const u32 gObjectEventPic_Rocker[] = INCBIN_U32("graphics/object_events/pics/people/rocker.4bpp");
-const u32 gObjectEventPic_ProfOak[] = INCBIN_U32("graphics/object_events/pics/people/prof_oak.4bpp");
-const u32 gObjectEventPic_Blue[] = INCBIN_U32("graphics/object_events/pics/people/blue.4bpp");
-const u32 gObjectEventPic_Nurse[] = INCBIN_U32("graphics/object_events/pics/people/nurse.4bpp");
-const u32 gObjectEventPic_CableClubReceptionist[] = INCBIN_U32("graphics/object_events/pics/people/cable_club_receptionist.4bpp");
-const u32 gObjectEventPic_UnionRoomReceptionist[] = INCBIN_U32("graphics/object_events/pics/people/union_room_receptionist.4bpp");
-const u32 gObjectEventPic_UnusedMaleReceptionist[] = INCBIN_U32("graphics/object_events/pics/people/unused_male_receptionist.4bpp");
-const u32 gObjectEventPic_ItemBall[] = INCBIN_U32("graphics/object_events/pics/misc/item_ball.4bpp");
-const u32 gObjectEventPic_MrFuji[] = INCBIN_U32("graphics/object_events/pics/people/mr_fuji.4bpp");
-const u32 gObjectEventPic_Bruno[] = INCBIN_U32("graphics/object_events/pics/people/bruno.4bpp");
-const u32 gObjectEventPic_Clerk[] = INCBIN_U32("graphics/object_events/pics/people/clerk.4bpp");
-const u32 gObjectEventPic_MGDeliveryman[] = INCBIN_U32("graphics/object_events/pics/people/mg_deliveryman.4bpp");
-const u32 gObjectEventPic_TrainerTowerDude[] = INCBIN_U32("graphics/object_events/pics/people/trainer_tower_dude.4bpp");
-const u32 gObjectEventPic_Cameraman[] = INCBIN_U32("graphics/object_events/pics/people/cameraman.4bpp"); // Unused
-const u32 gObjectEventPic_RocketM[] = INCBIN_U32("graphics/object_events/pics/people/rocket_m.4bpp");
-const u32 gObjectEventPic_Celio[] = INCBIN_U32("graphics/object_events/pics/people/celio.4bpp");
-const u32 gObjectEventPic_Lapras[] = INCBIN_U32("graphics/object_events/pics/pokemon/lapras.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_Articuno[] = INCBIN_U32("graphics/object_events/pics/pokemon/articuno.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_Entei[] = INCBIN_U32("graphics/object_events/pics/pokemon/entei.4bpp");
-const u32 gObjectEventPic_Raikou[] = INCBIN_U32("graphics/object_events/pics/pokemon/raikou.4bpp");
-const u32 gObjectEventPic_Suicune[] = INCBIN_U32("graphics/object_events/pics/pokemon/suicune.4bpp");
-const u32 gObjectEventPic_Lugia[] = INCBIN_U32("graphics/object_events/pics/pokemon/lugia.4bpp");
-const u32 gObjectEventPic_HoOh[] = 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_DeoxysD[] = INCBIN_U32("graphics/object_events/pics/pokemon/deoxys_d.4bpp");
-const u32 gObjectEventPic_DeoxysA[] = INCBIN_U32("graphics/object_events/pics/pokemon/deoxys_a.4bpp");
-const u32 gObjectEventPic_DeoxysN[] = INCBIN_U32("graphics/object_events/pics/pokemon/deoxys_n.4bpp");
-const u32 gObjectEventPic_Agatha[] = INCBIN_U32("graphics/object_events/pics/people/agatha.4bpp");
-const u32 gObjectEventPic_Misty[] = INCBIN_U32("graphics/object_events/pics/people/misty.4bpp");
-const u32 gObjectEventPic_Lance[] = INCBIN_U32("graphics/object_events/pics/people/lance.4bpp");
-const u32 gObjectEventPic_GBAKid[] = INCBIN_U32("graphics/object_events/pics/people/gba_kid.4bpp");
-const u32 gObjectEventPic_Mom[] = INCBIN_U32("graphics/object_events/pics/people/mom.4bpp");
-const u32 gObjectEventPic_Pidgeot[] = INCBIN_U32("graphics/object_events/pics/pokemon/pidgeot.4bpp");
-const u32 gObjectEventPic_Omanyte[] = INCBIN_U32("graphics/object_events/pics/pokemon/omanyte.4bpp");
-const u32 gObjectEventPic_Kangaskhan[] = INCBIN_U32("graphics/object_events/pics/pokemon/kangaskhan.4bpp");
-const u32 gObjectEventPic_NidoranF[] = INCBIN_U32("graphics/object_events/pics/pokemon/nidoran_f.4bpp");
-const u32 gObjectEventPic_NidoranM[] = 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_Meowth[] = INCBIN_U32("graphics/object_events/pics/pokemon/meowth.4bpp");
-const u32 gObjectEventPic_Seel[] = INCBIN_U32("graphics/object_events/pics/pokemon/seel.4bpp");
-const u32 gObjectEventPic_Voltorb[] = INCBIN_U32("graphics/object_events/pics/pokemon/voltorb.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_Machop[] = INCBIN_U32("graphics/object_events/pics/pokemon/machop.4bpp");
-const u32 gObjectEventPic_Wigglytuff[] = INCBIN_U32("graphics/object_events/pics/pokemon/wigglytuff.4bpp");
-const u32 gObjectEventPic_Doduo[] = INCBIN_U32("graphics/object_events/pics/pokemon/doduo.4bpp");
-const u32 gObjectEventPic_Fearow[] = INCBIN_U32("graphics/object_events/pics/pokemon/fearow.4bpp");
-const u32 gObjectEventPic_Kabuto[] = INCBIN_U32("graphics/object_events/pics/pokemon/kabuto.4bpp");
-const u32 gObjectEventPic_Machoke[] = INCBIN_U32("graphics/object_events/pics/pokemon/machoke.4bpp");
-const u32 gObjectEventPic_Snorlax[] = INCBIN_U32("graphics/object_events/pics/pokemon/snorlax.4bpp");
-const u32 gObjectEventPic_Spearow[] = INCBIN_U32("graphics/object_events/pics/pokemon/spearow.4bpp");
-const u32 gObjectEventPic_Cubone[] = INCBIN_U32("graphics/object_events/pics/pokemon/cubone.4bpp");
-const u32 gObjectEventPic_Poliwrath[] = INCBIN_U32("graphics/object_events/pics/pokemon/poliwrath.4bpp");
-const u32 gObjectEventPic_Chansey[] = INCBIN_U32("graphics/object_events/pics/pokemon/chansey.4bpp");
-const u32 gObjectEventPic_Pikachu[] = INCBIN_U32("graphics/object_events/pics/pokemon/pikachu.4bpp");
-const u32 gObjectEventPic_Jigglypuff[] = INCBIN_U32("graphics/object_events/pics/pokemon/jigglypuff.4bpp");
-const u32 gObjectEventPic_Pidgey[] = INCBIN_U32("graphics/object_events/pics/pokemon/pidgey.4bpp");
-const u32 gObjectEventPic_Clefairy[] = INCBIN_U32("graphics/object_events/pics/pokemon/clefairy.4bpp");
-const u32 gObjectEventPic_CutTree[] = INCBIN_U32("graphics/object_events/pics/misc/cut_tree.4bpp");
-const u32 gObjectEventPic_RockSmashRock[] = INCBIN_U32("graphics/object_events/pics/misc/rock_smash_rock.4bpp");
-const u32 gObjectEventPic_StrengthBoulder[] = INCBIN_U32("graphics/object_events/pics/misc/strength_boulder.4bpp");
-const u32 gObjectEventPic_Fossil[] = INCBIN_U32("graphics/object_events/pics/misc/fossil.4bpp");
-const u32 gObjectEventPic_Ruby[] = INCBIN_U32("graphics/object_events/pics/misc/ruby.4bpp");
-const u32 gObjectEventPic_Sapphire[] = INCBIN_U32("graphics/object_events/pics/misc/sapphire.4bpp");
-const u32 gObjectEventPic_OldAmber[] = INCBIN_U32("graphics/object_events/pics/misc/old_amber.4bpp");
-const u32 gObjectEventPic_GymSign[] = INCBIN_U32("graphics/object_events/pics/misc/gym_sign.4bpp");
-const u32 gObjectEventPic_Sign[] = INCBIN_U32("graphics/object_events/pics/misc/sign.4bpp");
-const u32 gObjectEventPic_WoodenSign[] = INCBIN_U32("graphics/object_events/pics/misc/wooden_sign.4bpp");
-const u32 gObjectEventPic_Clipboard[] = INCBIN_U32("graphics/object_events/pics/misc/clipboard.4bpp");
-const u16 gUnknown_8394EA8[] = INCBIN_U16("graphics/object_events/palettes/19.gbapal");
-const u32 gObjectEventPic_BirthIslandStone[] = INCBIN_U32("graphics/object_events/pics/misc/birth_island_stone.4bpp");
-const u32 gObjectEventPic_LaprasDoll[] = INCBIN_U32("graphics/object_events/pics/misc/lapras_doll.4bpp");
-const u16 gUnknown_83952C8[] = INCBIN_U16("graphics/object_events/palettes/20.gbapal");
-const u32 gObjectEventPic_Seagallop[] = INCBIN_U32("graphics/object_events/pics/misc/seagallop.4bpp");
-const u16 gUnknown_8395AE8[] = INCBIN_U16("graphics/object_events/palettes/21.gbapal");
-const u32 gObjectEventPic_SSAnne[] = INCBIN_U32("graphics/object_events/pics/misc/ss_anne.4bpp");
-const u32 gObjectEventPic_SurfBlob[] = INCBIN_U32("graphics/object_events/pics/misc/surf_blob.4bpp");
-const u32 gObjectEventPic_Policeman[] = INCBIN_U32("graphics/object_events/pics/people/policeman.4bpp");
-const u16 gUnknown_8398008[] = INCBIN_U16("graphics/object_events/palettes/11.gbapal");
-const u16 gUnknown_8398028[] = INCBIN_U16("graphics/object_events/palettes/12.gbapal");
-const u32 gUnknown_8398048[] = INCBIN_U32("graphics/object_events/pics/effects/shadow_small.4bpp");
-const u32 gUnknown_8398068[] = INCBIN_U32("graphics/object_events/pics/effects/shadow_medium.4bpp");
-const u32 gUnknown_83980A8[] = INCBIN_U32("graphics/object_events/pics/effects/shadow_large.4bpp");
-const u32 gUnknown_8398128[] = INCBIN_U32("graphics/object_events/pics/effects/shadow_extra_large.4bpp");
-const u32 filler_8398188[0x48] = {};
+const u16 gObjectEventPic_RedNormal[] = INCBIN_U16("graphics/object_events/pics/people/red_normal.4bpp");
+const u16 gObjectEventPic_RedSurfRun[] = INCBIN_U16("graphics/object_events/pics/people/red_surf_run.4bpp");
+const u16 gObjectEventPic_GreenNormal[] = INCBIN_U16("graphics/object_events/pics/people/green_normal.4bpp");
+const u16 gObjectEventPic_GreenSurfRun[] = INCBIN_U16("graphics/object_events/pics/people/green_surf_run.4bpp");
+const u16 gObjectEventPal_PlayerReflection[] = INCBIN_U16("graphics/object_events/palettes/player_reflection.gbapal");
+const u16 gObjectEventPal_BridgeReflection[] = INCBIN_U16("graphics/object_events/palettes/bridge_reflection.gbapal");
+const u16 gObjectEventPic_RedItem[] = INCBIN_U16("graphics/object_events/pics/people/red_item.4bpp");
+const u16 gObjectEventPic_GreenItem[] = INCBIN_U16("graphics/object_events/pics/people/green_item.4bpp");
+const u16 gObjectEventPic_RedSurf[] = INCBIN_U16("graphics/object_events/pics/people/red_surf.4bpp");
+const u16 gObjectEventPic_GreenSurf[] = INCBIN_U16("graphics/object_events/pics/people/green_surf.4bpp");
+const u16 gObjectEventPic_RedBike[] = INCBIN_U16("graphics/object_events/pics/people/red_bike.4bpp");
+const u16 gObjectEventPic_RedVSSeekerBike[] = INCBIN_U16("graphics/object_events/pics/people/red_vs_seeker_bike.4bpp");
+const u16 gObjectEventPic_GreenBike[] = INCBIN_U16("graphics/object_events/pics/people/green_bike.4bpp");
+const u16 gObjectEventPic_GreenVSSeekerBike[] = INCBIN_U16("graphics/object_events/pics/people/green_vs_seeker_bike.4bpp");
+const u16 gObjectEventPic_RSBrendan[] = INCBIN_U16("graphics/object_events/pics/people/rs_brendan.4bpp");
+const u16 gObjectEventPic_RSMay[] = INCBIN_U16("graphics/object_events/pics/people/rs_may.4bpp");
+const u16 gObjectEventPic_RedFish[] = INCBIN_U16("graphics/object_events/pics/people/red_fish.4bpp");
+const u16 gObjectEventPic_GreenFish[] = INCBIN_U16("graphics/object_events/pics/people/green_fish.4bpp");
+const u16 gObjectEventPic_Pokedex[] = INCBIN_U16("graphics/object_events/pics/misc/pokedex.4bpp");
+const u16 gObjectEventPic_TownMap[] = INCBIN_U16("graphics/object_events/pics/misc/town_map.4bpp");
+const u16 gObjectEventPic_UnusedMan[] = INCBIN_U16("graphics/object_events/pics/people/unused_man.4bpp"); // Unused
+const u16 gObjectEventPic_Giovanni[] = INCBIN_U16("graphics/object_events/pics/people/giovanni.4bpp");
+const u16 gObjectEventPic_Blaine[] = INCBIN_U16("graphics/object_events/pics/people/blaine.4bpp");
+const u16 gObjectEventPic_Sabrina[] = INCBIN_U16("graphics/object_events/pics/people/sabrina.4bpp");
+const u16 gObjectEventPic_Daisy[] = INCBIN_U16("graphics/object_events/pics/people/daisy.4bpp");
+const u16 gObjectEventPic_Lorelei[] = INCBIN_U16("graphics/object_events/pics/people/lorelei.4bpp");
+const u16 gObjectEventPic_Erika[] = INCBIN_U16("graphics/object_events/pics/people/erika.4bpp");
+const u16 gObjectEventPic_Koga[] = INCBIN_U16("graphics/object_events/pics/people/koga.4bpp");
+const u16 gObjectEventPic_Brock[] = INCBIN_U16("graphics/object_events/pics/people/brock.4bpp");
+const u16 gObjectEventPic_LtSurge[] = INCBIN_U16("graphics/object_events/pics/people/lt_surge.4bpp");
+const u16 gObjectEventPic_Bill[] = INCBIN_U16("graphics/object_events/pics/people/bill.4bpp");
+const u16 gObjectEventPal_NpcBlue[] = INCBIN_U16("graphics/object_events/palettes/npc_blue.gbapal");
+const u16 gObjectEventPal_NpcPink[] = INCBIN_U16("graphics/object_events/palettes/npc_pink.gbapal");
+const u16 gObjectEventPal_NpcGreen[] = INCBIN_U16("graphics/object_events/palettes/npc_green.gbapal");
+const u16 gObjectEventPal_NpcWhite[] = INCBIN_U16("graphics/object_events/palettes/npc_white.gbapal");
+const u16 gObjectEventPal_NpcBlueReflection[] = INCBIN_U16("graphics/object_events/palettes/npc_blue_reflection.gbapal");
+const u16 gObjectEventPal_NpcPinkReflection[] = INCBIN_U16("graphics/object_events/palettes/npc_pink_reflection.gbapal");
+const u16 gObjectEventPal_NpcGreenReflection[] = INCBIN_U16("graphics/object_events/palettes/npc_green_reflection.gbapal");
+const u16 gObjectEventPal_NpcWhiteReflection[] = INCBIN_U16("graphics/object_events/palettes/npc_white_reflection.gbapal");
+const u16 gObjectEventPic_LittleBoy[] = INCBIN_U16("graphics/object_events/pics/people/little_boy.4bpp");
+const u16 gObjectEventPic_LittleGirl[] = INCBIN_U16("graphics/object_events/pics/people/little_girl.4bpp");
+const u16 gObjectEventPic_SittingBoy[] = INCBIN_U16("graphics/object_events/pics/people/sitting_boy.4bpp");
+const u16 gObjectEventPic_Lass[] = INCBIN_U16("graphics/object_events/pics/people/lass.4bpp");
+const u16 gObjectEventPic_Youngster[] = INCBIN_U16("graphics/object_events/pics/people/youngster.4bpp");
+const u16 gObjectEventPic_Boy[] = INCBIN_U16("graphics/object_events/pics/people/boy.4bpp");
+const u16 gObjectEventPic_Woman1[] = INCBIN_U16("graphics/object_events/pics/people/woman_1.4bpp");
+const u16 gObjectEventPic_Woman3[] = INCBIN_U16("graphics/object_events/pics/people/woman_3.4bpp");
+const u16 gObjectEventPic_BugCatcher[] = INCBIN_U16("graphics/object_events/pics/people/bug_catcher.4bpp");
+const u16 gObjectEventPic_BattleGirl[] = INCBIN_U16("graphics/object_events/pics/people/battle_girl.4bpp");
+const u16 gObjectEventPic_RichBoy[] = INCBIN_U16("graphics/object_events/pics/people/rich_boy.4bpp"); // Unused
+const u16 gObjectEventPic_FatMan[] = INCBIN_U16("graphics/object_events/pics/people/fat_man.4bpp");
+const u16 gObjectEventPic_BaldingMan[] = INCBIN_U16("graphics/object_events/pics/people/balding_man.4bpp");
+const u16 gObjectEventPic_Woman2[] = INCBIN_U16("graphics/object_events/pics/people/woman_2.4bpp");
+const u16 gObjectEventPic_OldMan1[] = INCBIN_U16("graphics/object_events/pics/people/old_man_1.4bpp");
+const u16 gObjectEventPic_OldManLyingDown[] = INCBIN_U16("graphics/object_events/pics/people/old_man_lying_down.4bpp");
+const u16 gObjectEventPic_WorkerM[] = INCBIN_U16("graphics/object_events/pics/people/worker_m.4bpp");
+const u16 gObjectEventPic_WorkerF[] = INCBIN_U16("graphics/object_events/pics/people/worker_f.4bpp");
+const u16 gObjectEventPic_Beauty[] = INCBIN_U16("graphics/object_events/pics/people/beauty.4bpp");
+const u16 gObjectEventPic_Chef[] = INCBIN_U16("graphics/object_events/pics/people/chef.4bpp");
+const u16 gObjectEventPic_OldMan2[] = INCBIN_U16("graphics/object_events/pics/people/old_man_2.4bpp");
+const u16 gObjectEventPic_OldWoman[] = INCBIN_U16("graphics/object_events/pics/people/old_woman.4bpp");
+const u16 gObjectEventPic_Camper[] = INCBIN_U16("graphics/object_events/pics/people/camper.4bpp");
+const u16 gObjectEventPic_Picnicker[] = INCBIN_U16("graphics/object_events/pics/people/picnicker.4bpp");
+const u16 gObjectEventPic_CooltrainerM[] = INCBIN_U16("graphics/object_events/pics/people/cooltrainer_m.4bpp");
+const u16 gObjectEventPic_CooltrainerF[] = INCBIN_U16("graphics/object_events/pics/people/cooltrainer_f.4bpp");
+const u16 gObjectEventPic_Psyduck[] = INCBIN_U16("graphics/object_events/pics/pokemon/psyduck.4bpp");
+const u16 gObjectEventPic_SuperNerd[] = INCBIN_U16("graphics/object_events/pics/people/super_nerd.4bpp");
+const u16 gObjectEventPic_Channeler[] = INCBIN_U16("graphics/object_events/pics/people/channeler.4bpp");
+const u16 gObjectEventPic_RocketF[] = INCBIN_U16("graphics/object_events/pics/people/rocket_f.4bpp");
+const u16 gObjectEventPic_SwimmerMWater[] = INCBIN_U16("graphics/object_events/pics/people/swimmer_m_water.4bpp");
+const u16 gObjectEventPic_SwimmerFWater[] = INCBIN_U16("graphics/object_events/pics/people/swimmer_f_water.4bpp");
+const u16 gObjectEventPic_SwimmerMLand[] = INCBIN_U16("graphics/object_events/pics/people/swimmer_m_land.4bpp");
+const u16 gObjectEventPic_SwimmerFLand[] = INCBIN_U16("graphics/object_events/pics/people/swimmer_f_land.4bpp");
+const u16 gObjectEventPic_Blackbelt[] = INCBIN_U16("graphics/object_events/pics/people/blackbelt.4bpp");
+const u16 gObjectEventPic_Scientist[] = INCBIN_U16("graphics/object_events/pics/people/scientist.4bpp");
+const u16 gObjectEventPic_Gentleman[] = INCBIN_U16("graphics/object_events/pics/people/gentleman.4bpp");
+const u16 gObjectEventPic_Sailor[] = INCBIN_U16("graphics/object_events/pics/people/sailor.4bpp");
+const u16 gObjectEventPic_Captain[] = INCBIN_U16("graphics/object_events/pics/people/captain.4bpp");
+const u16 gObjectEventPic_Fisher[] = INCBIN_U16("graphics/object_events/pics/people/fisher.4bpp");
+const u16 gObjectEventPic_TeachyTVHost[] = INCBIN_U16("graphics/object_events/pics/people/teachy_tv_host.4bpp");
+const u16 gObjectEventPic_UnusedWoman[] = INCBIN_U16("graphics/object_events/pics/people/unused_woman.4bpp");
+const u16 gObjectEventPic_TuberF[] = INCBIN_U16("graphics/object_events/pics/people/tuber_f.4bpp");
+const u16 gObjectEventPic_TuberMWater[] = INCBIN_U16("graphics/object_events/pics/people/tuber_m_water.4bpp");
+const u16 gObjectEventPic_TuberMLand[] = INCBIN_U16("graphics/object_events/pics/people/tuber_m_land.4bpp");
+const u16 gObjectEventPic_Hiker[] = INCBIN_U16("graphics/object_events/pics/people/hiker.4bpp");
+const u16 gObjectEventPic_Biker[] = INCBIN_U16("graphics/object_events/pics/people/biker.4bpp");
+const u16 gObjectEventPic_GymGuy[] = INCBIN_U16("graphics/object_events/pics/people/gym_guy.4bpp");
+const u16 gObjectEventPic_Man[] = INCBIN_U16("graphics/object_events/pics/people/man.4bpp");
+const u16 gObjectEventPic_Rocker[] = INCBIN_U16("graphics/object_events/pics/people/rocker.4bpp");
+const u16 gObjectEventPic_ProfOak[] = INCBIN_U16("graphics/object_events/pics/people/prof_oak.4bpp");
+const u16 gObjectEventPic_Blue[] = INCBIN_U16("graphics/object_events/pics/people/blue.4bpp");
+const u16 gObjectEventPic_Nurse[] = INCBIN_U16("graphics/object_events/pics/people/nurse.4bpp");
+const u16 gObjectEventPic_CableClubReceptionist[] = INCBIN_U16("graphics/object_events/pics/people/cable_club_receptionist.4bpp");
+const u16 gObjectEventPic_UnionRoomReceptionist[] = INCBIN_U16("graphics/object_events/pics/people/union_room_receptionist.4bpp");
+const u16 gObjectEventPic_UnusedMaleReceptionist[] = INCBIN_U16("graphics/object_events/pics/people/unused_male_receptionist.4bpp");
+const u16 gObjectEventPic_ItemBall[] = INCBIN_U16("graphics/object_events/pics/misc/item_ball.4bpp");
+const u16 gObjectEventPic_MrFuji[] = INCBIN_U16("graphics/object_events/pics/people/mr_fuji.4bpp");
+const u16 gObjectEventPic_Bruno[] = INCBIN_U16("graphics/object_events/pics/people/bruno.4bpp");
+const u16 gObjectEventPic_Clerk[] = INCBIN_U16("graphics/object_events/pics/people/clerk.4bpp");
+const u16 gObjectEventPic_MGDeliveryman[] = INCBIN_U16("graphics/object_events/pics/people/mg_deliveryman.4bpp");
+const u16 gObjectEventPic_TrainerTowerDude[] = INCBIN_U16("graphics/object_events/pics/people/trainer_tower_dude.4bpp");
+const u16 gObjectEventPic_Cameraman[] = INCBIN_U16("graphics/object_events/pics/people/cameraman.4bpp"); // Unused
+const u16 gObjectEventPic_RocketM[] = INCBIN_U16("graphics/object_events/pics/people/rocket_m.4bpp");
+const u16 gObjectEventPic_Celio[] = INCBIN_U16("graphics/object_events/pics/people/celio.4bpp");
+const u16 gObjectEventPic_Lapras[] = INCBIN_U16("graphics/object_events/pics/pokemon/lapras.4bpp");
+const u16 gObjectEventPic_Zapdos[] = INCBIN_U16("graphics/object_events/pics/pokemon/zapdos.4bpp");
+const u16 gObjectEventPic_Moltres[] = INCBIN_U16("graphics/object_events/pics/pokemon/moltres.4bpp");
+const u16 gObjectEventPic_Articuno[] = INCBIN_U16("graphics/object_events/pics/pokemon/articuno.4bpp");
+const u16 gObjectEventPic_Mewtwo[] = INCBIN_U16("graphics/object_events/pics/pokemon/mewtwo.4bpp");
+const u16 gObjectEventPic_Mew[] = INCBIN_U16("graphics/object_events/pics/pokemon/mew.4bpp");
+const u16 gObjectEventPic_Entei[] = INCBIN_U16("graphics/object_events/pics/pokemon/entei.4bpp");
+const u16 gObjectEventPic_Raikou[] = INCBIN_U16("graphics/object_events/pics/pokemon/raikou.4bpp");
+const u16 gObjectEventPic_Suicune[] = INCBIN_U16("graphics/object_events/pics/pokemon/suicune.4bpp");
+const u16 gObjectEventPic_Lugia[] = INCBIN_U16("graphics/object_events/pics/pokemon/lugia.4bpp");
+const u16 gObjectEventPic_HoOh[] = INCBIN_U16("graphics/object_events/pics/pokemon/ho_oh.4bpp");
+const u16 gObjectEventPic_Celebi[] = INCBIN_U16("graphics/object_events/pics/pokemon/celebi.4bpp");
+const u16 gObjectEventPic_DeoxysD[] = INCBIN_U16("graphics/object_events/pics/pokemon/deoxys_d.4bpp");
+const u16 gObjectEventPic_DeoxysA[] = INCBIN_U16("graphics/object_events/pics/pokemon/deoxys_a.4bpp");
+const u16 gObjectEventPic_DeoxysN[] = INCBIN_U16("graphics/object_events/pics/pokemon/deoxys_n.4bpp");
+const u16 gObjectEventPic_Agatha[] = INCBIN_U16("graphics/object_events/pics/people/agatha.4bpp");
+const u16 gObjectEventPic_Misty[] = INCBIN_U16("graphics/object_events/pics/people/misty.4bpp");
+const u16 gObjectEventPic_Lance[] = INCBIN_U16("graphics/object_events/pics/people/lance.4bpp");
+const u16 gObjectEventPic_GBAKid[] = INCBIN_U16("graphics/object_events/pics/people/gba_kid.4bpp");
+const u16 gObjectEventPic_Mom[] = INCBIN_U16("graphics/object_events/pics/people/mom.4bpp");
+const u16 gObjectEventPic_Pidgeot[] = INCBIN_U16("graphics/object_events/pics/pokemon/pidgeot.4bpp");
+const u16 gObjectEventPic_Omanyte[] = INCBIN_U16("graphics/object_events/pics/pokemon/omanyte.4bpp");
+const u16 gObjectEventPic_Kangaskhan[] = INCBIN_U16("graphics/object_events/pics/pokemon/kangaskhan.4bpp");
+const u16 gObjectEventPic_NidoranF[] = INCBIN_U16("graphics/object_events/pics/pokemon/nidoran_f.4bpp");
+const u16 gObjectEventPic_NidoranM[] = INCBIN_U16("graphics/object_events/pics/pokemon/nidoran_m.4bpp");
+const u16 gObjectEventPic_Nidorino[] = INCBIN_U16("graphics/object_events/pics/pokemon/nidorino.4bpp");
+const u16 gObjectEventPic_Meowth[] = INCBIN_U16("graphics/object_events/pics/pokemon/meowth.4bpp");
+const u16 gObjectEventPic_Seel[] = INCBIN_U16("graphics/object_events/pics/pokemon/seel.4bpp");
+const u16 gObjectEventPic_Voltorb[] = INCBIN_U16("graphics/object_events/pics/pokemon/voltorb.4bpp");
+const u16 gObjectEventPic_Slowpoke[] = INCBIN_U16("graphics/object_events/pics/pokemon/slowpoke.4bpp");
+const u16 gObjectEventPic_Slowbro[] = INCBIN_U16("graphics/object_events/pics/pokemon/slowbro.4bpp");
+const u16 gObjectEventPic_Machop[] = INCBIN_U16("graphics/object_events/pics/pokemon/machop.4bpp");
+const u16 gObjectEventPic_Wigglytuff[] = INCBIN_U16("graphics/object_events/pics/pokemon/wigglytuff.4bpp");
+const u16 gObjectEventPic_Doduo[] = INCBIN_U16("graphics/object_events/pics/pokemon/doduo.4bpp");
+const u16 gObjectEventPic_Fearow[] = INCBIN_U16("graphics/object_events/pics/pokemon/fearow.4bpp");
+const u16 gObjectEventPic_Kabuto[] = INCBIN_U16("graphics/object_events/pics/pokemon/kabuto.4bpp");
+const u16 gObjectEventPic_Machoke[] = INCBIN_U16("graphics/object_events/pics/pokemon/machoke.4bpp");
+const u16 gObjectEventPic_Snorlax[] = INCBIN_U16("graphics/object_events/pics/pokemon/snorlax.4bpp");
+const u16 gObjectEventPic_Spearow[] = INCBIN_U16("graphics/object_events/pics/pokemon/spearow.4bpp");
+const u16 gObjectEventPic_Cubone[] = INCBIN_U16("graphics/object_events/pics/pokemon/cubone.4bpp");
+const u16 gObjectEventPic_Poliwrath[] = INCBIN_U16("graphics/object_events/pics/pokemon/poliwrath.4bpp");
+const u16 gObjectEventPic_Chansey[] = INCBIN_U16("graphics/object_events/pics/pokemon/chansey.4bpp");
+const u16 gObjectEventPic_Pikachu[] = INCBIN_U16("graphics/object_events/pics/pokemon/pikachu.4bpp");
+const u16 gObjectEventPic_Jigglypuff[] = INCBIN_U16("graphics/object_events/pics/pokemon/jigglypuff.4bpp");
+const u16 gObjectEventPic_Pidgey[] = INCBIN_U16("graphics/object_events/pics/pokemon/pidgey.4bpp");
+const u16 gObjectEventPic_Clefairy[] = INCBIN_U16("graphics/object_events/pics/pokemon/clefairy.4bpp");
+const u16 gObjectEventPic_CutTree[] = INCBIN_U16("graphics/object_events/pics/misc/cut_tree.4bpp");
+const u16 gObjectEventPic_RockSmashRock[] = INCBIN_U16("graphics/object_events/pics/misc/rock_smash_rock.4bpp");
+const u16 gObjectEventPic_StrengthBoulder[] = INCBIN_U16("graphics/object_events/pics/misc/strength_boulder.4bpp");
+const u16 gObjectEventPic_Fossil[] = INCBIN_U16("graphics/object_events/pics/misc/fossil.4bpp");
+const u16 gObjectEventPic_Ruby[] = INCBIN_U16("graphics/object_events/pics/misc/ruby.4bpp");
+const u16 gObjectEventPic_Sapphire[] = INCBIN_U16("graphics/object_events/pics/misc/sapphire.4bpp");
+const u16 gObjectEventPic_OldAmber[] = INCBIN_U16("graphics/object_events/pics/misc/old_amber.4bpp");
+const u16 gObjectEventPic_GymSign[] = INCBIN_U16("graphics/object_events/pics/misc/gym_sign.4bpp");
+const u16 gObjectEventPic_Sign[] = INCBIN_U16("graphics/object_events/pics/misc/sign.4bpp");
+const u16 gObjectEventPic_WoodenSign[] = INCBIN_U16("graphics/object_events/pics/misc/wooden_sign.4bpp");
+const u16 gObjectEventPic_Clipboard[] = INCBIN_U16("graphics/object_events/pics/misc/clipboard.4bpp");
+const u16 gObjectEventPal_Meteorite[] = INCBIN_U16("graphics/object_events/palettes/meteorite.gbapal");
+const u16 gObjectEventPic_BirthIslandStone[] = INCBIN_U16("graphics/object_events/pics/misc/birth_island_stone.4bpp");
+const u16 gObjectEventPic_LaprasDoll[] = INCBIN_U16("graphics/object_events/pics/misc/lapras_doll.4bpp");
+const u16 gObjectEventPal_Seagallop[] = INCBIN_U16("graphics/object_events/palettes/seagallop.gbapal");
+const u16 gObjectEventPic_Seagallop[] = INCBIN_U16("graphics/object_events/pics/misc/seagallop.4bpp");
+const u16 gObjectEventPal_SSAnne[] = INCBIN_U16("graphics/object_events/palettes/ss_anne.gbapal");
+const u16 gObjectEventPic_SSAnne[] = INCBIN_U16("graphics/object_events/pics/misc/ss_anne.4bpp");
+const u16 gObjectEventPic_SurfBlob[] = INCBIN_U16("graphics/object_events/pics/misc/surf_blob.4bpp");
+const u16 gObjectEventPic_Policeman[] = INCBIN_U16("graphics/object_events/pics/people/policeman.4bpp");
+const u16 gObjectEventPal_RSQuintyPlump[] = INCBIN_U16("graphics/object_events/palettes/rs_quinty_plump.gbapal");
+const u16 gObjectEventPal_RSQuintyPlumpReflection[] = INCBIN_U16("graphics/object_events/palettes/rs_quinty_plump_reflection.gbapal");
+const u16 gFieldEffectObjectPic_ShadowSmall[] = INCBIN_U16("graphics/field_effects/pics/shadow_small.4bpp");
+const u16 gFieldEffectObjectPic_ShadowMedium[] = INCBIN_U16("graphics/field_effects/pics/shadow_medium.4bpp");
+const u16 gFieldEffectObjectPic_ShadowLarge[] = INCBIN_U16("graphics/field_effects/pics/shadow_large.4bpp");
+const u16 gFieldEffectObjectPic_ShadowExtraLarge[] = INCBIN_U16("graphics/field_effects/pics/shadow_extra_large.4bpp");
+const u16 filler_8398188[0x90] = {};
const u16 gUnknown_8398648[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp");
-const u32 gUnknown_8398668[] = INCBIN_U32("graphics/field_effects/fldeff_cut.4bpp");
+const u16 gUnknown_8398668[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp");
const u16 gUnknown_8398688[] = INCBIN_U16("graphics/field_effects/fldeff_cut.gbapal");
-const u32 gUnknown_83986A8[] = INCBIN_U32("graphics/object_events/pics/unknown/83986A8.4bpp");
-const u32 gUnknown_8398928[] = INCBIN_U32("graphics/object_events/pics/unknown/8398928.4bpp");
-const u32 gUnknown_8398BA8[] = INCBIN_U32("graphics/object_events/pics/unknown/8398BA8.4bpp");
-const u16 gUnknown_8398FA8[] = INCBIN_U16("graphics/object_events/palettes/8398FA8.gbapal");
-const u16 gUnknown_8398FC8[] = INCBIN_U16("graphics/object_events/palettes/8398FC8.gbapal");
-const u32 gUnknown_8399008[] = INCBIN_U32("graphics/object_events/pics/unknown/8399008.4bpp");
-const u32 gUnknown_83990C8[] = INCBIN_U32("graphics/object_events/pics/unknown/83990C8.4bpp");
-const u32 gUnknown_8399188[] = INCBIN_U32("graphics/object_events/pics/unknown/8399188.4bpp");
-const u32 gUnknown_8399288[] = INCBIN_U32("graphics/object_events/pics/unknown/8399288.4bpp");
-const u32 gUnknown_8399488[] = INCBIN_U32("graphics/object_events/pics/unknown/8399488.4bpp");
-const u32 gUnknown_8399788[] = INCBIN_U32("graphics/object_events/pics/unknown/8399788.4bpp");
-const u32 gUnknown_8399C08[] = INCBIN_U32("graphics/object_events/pics/unknown/8399C08.4bpp");
-const u32 gUnknown_8399E08[] = INCBIN_U32("graphics/object_events/pics/unknown/8399E08.4bpp");
-const u32 gUnknown_8399E88[] = INCBIN_U32("graphics/object_events/pics/unknown/8399E88.4bpp");
-const u32 gUnknown_8399F08[] = INCBIN_U32("graphics/object_events/pics/unknown/8399F08.4bpp");
-const u32 gUnknown_8399F88[] = INCBIN_U32("graphics/object_events/pics/unknown/8399F88.4bpp");
-const u32 gUnknown_839A008[] = INCBIN_U32("graphics/object_events/pics/unknown/839A008.4bpp");
-const u32 gUnknown_839A288[] = INCBIN_U32("graphics/object_events/pics/unknown/839A288.4bpp");
-const u32 gUnknown_839A388[] = INCBIN_U32("graphics/object_events/pics/unknown/839A388.4bpp");
-const u32 gUnknown_839A408[] = INCBIN_U32("graphics/object_events/pics/unknown/839A408.4bpp");
-const u32 gUnknown_839A488[] = INCBIN_U32("graphics/object_events/pics/unknown/839A488.4bpp");
-const u32 gUnknown_839A508[] = INCBIN_U32("graphics/object_events/pics/unknown/839A508.4bpp");
-const u32 gUnknown_839A588[] = INCBIN_U32("graphics/object_events/pics/unknown/839A588.4bpp");
-const u32 gUnknown_839A608[] = INCBIN_U32("graphics/object_events/pics/unknown/839A608.4bpp");
-const u32 gUnknown_839A688[] = INCBIN_U32("graphics/object_events/pics/unknown/839A688.4bpp");
-const u32 gUnknown_839A708[] = INCBIN_U32("graphics/object_events/pics/unknown/839A708.4bpp");
-const u32 gUnknown_839A788[] = INCBIN_U32("graphics/object_events/pics/unknown/839A788.4bpp");
-const u32 gUnknown_839A988[] = INCBIN_U32("graphics/object_events/pics/unknown/839A988.4bpp");
-const u32 gUnknown_839AA48[] = INCBIN_U32("graphics/object_events/pics/unknown/839AA48.4bpp");
-const u32 gUnknown_839AAC8[] = INCBIN_U32("graphics/object_events/pics/unknown/839AAC8.4bpp");
-const u32 gUnknown_839AB48[] = INCBIN_U32("graphics/object_events/pics/unknown/839AB48.4bpp");
-const u32 gUnknown_839ABC8[] = INCBIN_U32("graphics/object_events/pics/unknown/839ABC8.4bpp");
-const u32 gUnknown_839AC48[] = INCBIN_U32("graphics/object_events/pics/unknown/839AC48.4bpp");
-const u32 gUnknown_839AC88[] = INCBIN_U32("graphics/object_events/pics/unknown/839AC88.4bpp");
-const u32 gUnknown_839ACC8[] = INCBIN_U32("graphics/object_events/pics/unknown/839ACC8.4bpp");
-const u32 gUnknown_839AD08[] = INCBIN_U32("graphics/object_events/pics/unknown/839AD08.4bpp");
-const u32 gUnknown_839AD48[] = INCBIN_U32("graphics/object_events/pics/unknown/839AD48.4bpp");
-const u32 gUnknown_839AD88[] = INCBIN_U32("graphics/object_events/pics/unknown/839AD88.4bpp");
-const u32 gUnknown_839B008[] = INCBIN_U32("graphics/object_events/pics/unknown/839B008.4bpp");
-const u32 gUnknown_839B708[] = INCBIN_U32("graphics/object_events/pics/unknown/839B708.4bpp");
-const u32 gUnknown_839BE08[] = INCBIN_U32("graphics/object_events/pics/unknown/839BE08.4bpp");
-const u32 gUnknown_839C508[] = INCBIN_U32("graphics/object_events/pics/unknown/839C508.4bpp");
-const u16 gUnknown_839C588[] = INCBIN_U16("graphics/object_events/palettes/839C588.gbapal");
-const u32 gUnknown_839C5A8[] = INCBIN_U32("graphics/object_events/pics/unknown/839C5A8.4bpp");
-const u32 gUnknown_839C628[] = INCBIN_U32("graphics/object_events/pics/unknown/839C628.4bpp");
-const u32 gUnknown_839C6A8[] = INCBIN_U32("graphics/object_events/pics/unknown/839C6A8.4bpp");
-const u32 gUnknown_839C728[] = INCBIN_U32("graphics/object_events/pics/unknown/839C728.4bpp");
-const u32 gUnknown_839C7A8[] = INCBIN_U32("graphics/object_events/pics/unknown/839C7A8.4bpp");
-const u32 gUnknown_839C828[] = INCBIN_U32("graphics/object_events/pics/unknown/839C828.4bpp");
-const u32 gUnknown_839C8A8[] = INCBIN_U32("graphics/object_events/pics/unknown/839C8A8.4bpp");
-const u32 gUnknown_839C928[] = INCBIN_U32("graphics/object_events/pics/unknown/839C928.4bpp");
-const u32 gUnknown_839C9A8[] = INCBIN_U32("graphics/object_events/pics/unknown/839C9A8.4bpp");
-const u32 gUnknown_839CA28[] = INCBIN_U32("graphics/object_events/pics/unknown/839CA28.4bpp");
-const u32 gUnknown_839CAA8[] = INCBIN_U32("graphics/object_events/pics/unknown/839CAA8.4bpp");
-const u32 gUnknown_839CBA8[] = INCBIN_U32("graphics/object_events/pics/unknown/839CBA8.4bpp");
-const u32 gUnknown_839CCA8[] = INCBIN_U32("graphics/object_events/pics/unknown/839CCA8.4bpp");
-const u32 gUnknown_839CDA8[] = INCBIN_U32("graphics/object_events/pics/unknown/839CDA8.4bpp");
-const u32 gUnknown_839CEA8[] = INCBIN_U32("graphics/object_events/pics/unknown/839CEA8.4bpp");
-const u32 gUnknown_839CFA8[] = INCBIN_U32("graphics/object_events/pics/unknown/839CFA8.4bpp");
-const u32 gUnknown_839D0A8[] = INCBIN_U32("graphics/object_events/pics/unknown/839D0A8.4bpp");
-const u32 gUnknown_839D1A8[] = INCBIN_U32("graphics/object_events/pics/unknown/839D1A8.4bpp");
-const u32 gUnknown_839D2A8[] = INCBIN_U32("graphics/object_events/pics/unknown/839D2A8.4bpp");
-const u32 gUnknown_839D328[] = INCBIN_U32("graphics/object_events/pics/unknown/839D328.4bpp");
-const u16 gUnknown_839D3A8[] = INCBIN_U16("graphics/object_events/palettes/839D3A8.gbapal");
-const u32 gUnknown_839D3C8[] = INCBIN_U32("graphics/object_events/pics/unknown/839D3C8.4bpp");
+const u16 gFieldEffectObjectPic_Ripple[] = INCBIN_U16("graphics/field_effects/pics/ripple.4bpp");
+const u16 gFieldEffectObjectPic_Ash[] = INCBIN_U16("graphics/field_effects/pics/ash.4bpp");
+const u16 gFieldEffectObjectPic_Arrow[] = INCBIN_U16("graphics/field_effects/pics/arrow.4bpp");
+const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/palettes/general_0.gbapal");
+const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/general_1.gbapal");
+const u16 filler_8398FE8[16] = {0};
+const u16 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U16("graphics/field_effects/pics/ground_impact_dust.4bpp");
+UNUSED const u16 gFieldEffectObjectPic_UnusedGrass3[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_3.4bpp");
+const u16 gFieldEffectObjectPic_JumpTallGrass[] = INCBIN_U16("graphics/field_effects/pics/jump_tall_grass.4bpp");
+UNUSED const u16 gFieldEffectObjectPic_UnusedGrass4[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_4.4bpp");
+const u16 gFieldEffectObjectPic_JumpLongGrass[] = INCBIN_U16("graphics/field_effects/pics/jump_long_grass.4bpp");
+const u16 gFieldEffectObjectPic_UnusedGrass[] = INCBIN_U16("graphics/field_effects/pics/unused_grass.4bpp");
+const u16 gFieldEffectObjectPic_UnusedGrass2[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_2.4bpp");
+const u16 gFieldEffectObjectPic_LongGrass[] = INCBIN_U16("graphics/field_effects/pics/long_grass.4bpp");
+const u16 gFieldEffectObjectPic_TallGrass[] = INCBIN_U16("graphics/field_effects/pics/tall_grass.4bpp");
+const u16 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U16("graphics/field_effects/pics/short_grass.4bpp");
+const u16 gFieldEffectObjectPic_SandFootprints[] = INCBIN_U16("graphics/field_effects/pics/sand_footprints.4bpp");
+const u16 gFieldEffectObjectPic_DeepSandFootprints[] = INCBIN_U16("graphics/field_effects/pics/deep_sand_footprints.4bpp");
+const u16 gFieldEffectObjectPic_BikeTireTracks[] = INCBIN_U16("graphics/field_effects/pics/bike_tire_tracks.4bpp");
+const u16 gFieldEffectObjectPic_UnusedSand[] = INCBIN_U16("graphics/field_effects/pics/unused_sand.4bpp");
+const u16 gFieldEffectObjectPic_SandPile[] = INCBIN_U16("graphics/field_effects/pics/sand_pile.4bpp");
+const u16 gFieldEffectObjectPic_JumpBigSplash[] = INCBIN_U16("graphics/field_effects/pics/jump_big_splash.4bpp");
+const u16 gFieldEffectObjectPic_Splash[] = INCBIN_U16("graphics/field_effects/pics/splash.4bpp");
+const u16 gFieldEffectObjectPic_JumpSmallSplash[] = INCBIN_U16("graphics/field_effects/pics/jump_small_splash.4bpp");
+const u16 gFieldEffectObjectPic_WaterSurfacing[] = INCBIN_U16("graphics/field_effects/pics/water_surfacing.4bpp");
+const u16 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U16("graphics/field_effects/pics/tree_disguise.4bpp");
+const u16 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U16("graphics/field_effects/pics/mountain_disguise.4bpp");
+const u16 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U16("graphics/field_effects/pics/sand_disguise.4bpp");
+const u16 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U16("graphics/field_effects/pics/hot_springs_water.4bpp");
+const u16 gFieldEffectPal_Ash[] = INCBIN_U16("graphics/field_effects/palettes/ash.gbapal");
+const u16 gFieldEffectObjectPic_AshPuff[] = INCBIN_U16("graphics/field_effects/pics/pop_out_of_ash.4bpp");
+const u16 gFieldEffectObjectPic_AshLaunch[] = INCBIN_U16("graphics/field_effects/pics/lavaridge_warp.4bpp");
+const u16 gFieldEffectObjectPic_Bubbles[] = INCBIN_U16("graphics/field_effects/pics/underwater_bubbles.4bpp");
+const u16 gFieldEffectObjectPic_SmallSparkle[] = INCBIN_U16("graphics/field_effects/pics/small_sparkle.4bpp");
+const u16 gFieldEffectPal_SmallSparkle[] = INCBIN_U16("graphics/field_effects/palettes/small_sparkle.gbapal");
+const u16 gFieldEffectObjectPic_Bird[] = INCBIN_U16("graphics/field_effects/pics/bird.4bpp");
diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h
index 41a883b40..71f3ea5f8 100644
--- a/src/data/object_events/object_event_graphics_info.h
+++ b/src/data/object_events/object_event_graphics_info.h
@@ -1,154 +1,154 @@
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedNormal = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenNormal, gObjectEventPicTable_RedNormal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RedBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedSurf = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenSurf, gObjectEventPicTable_RedSurf, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFieldMove = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenItem, gObjectEventPicTable_RedItem, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Policeman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Policeman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSBrendan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RSBrendan, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSMay = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RSMay, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleBoy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleGirl, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SittingBoy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SittingBoy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lass, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Youngster, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman3, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BattleGirl, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BugCatcher, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_FatMan, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaldingMan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BaldingMan, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan1 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldMan1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_WorkerM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_WorkerF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Beauty, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chef = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Chef, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan2 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldMan2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldWoman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Camper, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Picnicker, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_CooltrainerM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_CooltrainerF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SuperNerd, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Channeler = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Channeler, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RocketF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerMWater, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerFWater, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerMLand, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerFLand, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Blackbelt, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Gentleman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sailor, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Captain = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Captain, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisher = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Fisher, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TeachyTVHost = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TeachyTVHost, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWoman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnusedWoman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberMWater, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberMLand, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Hiker, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Biker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Biker, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymGuy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GymGuy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Nurse, gObjectEventPicTable_Nurse, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMaleReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnusedMaleReceptionist, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ItemBall, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfOak = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ProfOak, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rocker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Rocker, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrFuji = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MrFuji, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bruno = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Bruno, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldManLyingDown = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldManLyingDown, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CutTree = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_CutTree, gObjectEventPicTable_CutTree, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clerk = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Clerk, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MGDeliveryman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MGDeliveryman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTowerDude = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TrainerTowerDude, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableClubReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_CableClubReceptionist, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnionRoomReceptionist, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RockSmashRock = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_RockSmashRock, gObjectEventPicTable_RockSmashRock, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_StrengthBoulder = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_StrengthBoulder, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenNormal = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenNormal, gObjectEventPicTable_GreenNormal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GreenBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenSurf = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenSurf, gObjectEventPicTable_GreenSurf, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFieldMove = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenItem, gObjectEventPicTable_GreenItem, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_83A45F4 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RedBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RocketM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celio = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Celio, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Agatha = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Agatha, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brock = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brock, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Misty = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Misty, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LtSurge = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LtSurge, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Erika = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Erika, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Koga = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Koga, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giovanni = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Giovanni, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blaine = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Blaine, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sabrina = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sabrina, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bill = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Bill, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Daisy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Daisy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lorelei = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lorelei, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lance = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lance, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blue = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Blue, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFish = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_RedGreenFish, gObjectEventPicTable_RedFish, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFish = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_RedGreenFish, gObjectEventPicTable_GreenFish, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeeker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenVSSeeker, gObjectEventPicTable_RedItem, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeekerBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_RedGreenVSSeekerBike, gObjectEventPicTable_RedVSSeekerBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeeker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenVSSeeker, gObjectEventPicTable_GreenItem, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeekerBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_RedGreenVSSeekerBike, gObjectEventPicTable_GreenVSSeekerBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TownMap = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 32, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TownMap, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pokedex = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Pokedex, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GBAKid = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GBAKid, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Snorlax = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Snorlax, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Fossil, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Ruby = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Ruby, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sapphire = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Sapphire, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldAmber = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_OldAmber, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymSign = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GymSign, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sign = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Sign, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTips = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WoodenSign, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clipboard = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Clipboard, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meteorite = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_20, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirthIslandStone, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LaprasDoll = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_LaprasDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spearow = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Spearow, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Omanyte = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Omanyte, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kangaskhan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kangaskhan, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Psyduck = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Psyduck, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_NidoranF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_NidoranM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nidorino = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Nidorino, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meowth = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Meowth, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seel = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Seel, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Voltorb = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Voltorb, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowpoke = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Slowpoke, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowbro = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Slowbro, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machop = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Machop, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wigglytuff = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wigglytuff, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Doduo = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Doduo, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fearow = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Fearow, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lapras = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lapras, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zapdos = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Zapdos, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Moltres = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Moltres, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Articuno = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Articuno, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysD = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DeoxysD, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysA = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DeoxysA, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysN = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DeoxysN, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mewtwo = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mewtwo, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mew, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Entei = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Entei, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Raikou = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Raikou, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Suicune = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Suicune, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lugia, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_HoOh, gObjectEventPicTable_HoOh, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celebi = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Celebi, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cubone = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cubone, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machoke = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Machoke, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kabuto = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kabuto, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poliwrath = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Poliwrath, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgeot = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pidgeot, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chansey = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Chansey, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pikachu, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Jigglypuff = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Jigglypuff, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgey = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pidgey, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clefairy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Clefairy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mom, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seagallop = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_21, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Seagallop, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSAnne = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_11, OBJ_EVENT_PAL_TAG_NONE, 4096, 128, 64, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_128x64, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SSAnne, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedNormal = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenNormal, gObjectEventPicTable_RedNormal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RedBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedSurf = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenSurf, gObjectEventPicTable_RedSurf, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFieldMove = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenItem, gObjectEventPicTable_RedItem, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Policeman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Policeman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSBrendan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RSBrendan, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSMay = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RSMay, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleBoy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleGirl, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SittingBoy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SittingBoy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lass, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Youngster, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman3, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BattleGirl, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BugCatcher, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_FatMan, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaldingMan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BaldingMan, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan1 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldMan1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_WorkerM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_WorkerF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Beauty, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chef = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Chef, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan2 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldMan2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldWoman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Camper, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Picnicker, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_CooltrainerM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_CooltrainerF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SuperNerd, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Channeler = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Channeler, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RocketF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerMWater, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerFWater, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerMLand, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerFLand, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Blackbelt, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Gentleman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sailor, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Captain = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Captain, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisher = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Fisher, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TeachyTVHost = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TeachyTVHost, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWoman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnusedWoman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMWater = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberMWater, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMLand = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberMLand, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Hiker, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Biker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Biker, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymGuy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GymGuy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Nurse, gObjectEventPicTable_Nurse, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMaleReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnusedMaleReceptionist, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ItemBall, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfOak = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ProfOak, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rocker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Rocker, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrFuji = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MrFuji, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bruno = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Bruno, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldManLyingDown = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldManLyingDown, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CutTree = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_CutTree, gObjectEventPicTable_CutTree, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clerk = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Clerk, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MGDeliveryman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MGDeliveryman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTowerDude = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TrainerTowerDude, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableClubReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_CableClubReceptionist, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomReceptionist = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnionRoomReceptionist, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RockSmashRock = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_RockSmashRock, gObjectEventPicTable_RockSmashRock, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_StrengthBoulder = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_StrengthBoulder, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenNormal = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenNormal, gObjectEventPicTable_GreenNormal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GreenBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenSurf = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenSurf, gObjectEventPicTable_GreenSurf, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFieldMove = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenItem, gObjectEventPicTable_GreenItem, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_83A45F4 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RedBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RocketM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celio = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Celio, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Agatha = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Agatha, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brock = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brock, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Misty = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Misty, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LtSurge = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LtSurge, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Erika = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Erika, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Koga = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Koga, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giovanni = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Giovanni, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blaine = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Blaine, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sabrina = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sabrina, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bill = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Bill, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Daisy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Daisy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lorelei = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lorelei, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lance = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lance, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blue = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Blue, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFish = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_RedGreenFish, gObjectEventPicTable_RedFish, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFish = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_RedGreenFish, gObjectEventPicTable_GreenFish, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeeker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenVSSeeker, gObjectEventPicTable_RedItem, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeekerBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_RedGreenVSSeekerBike, gObjectEventPicTable_RedVSSeekerBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeeker = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenVSSeeker, gObjectEventPicTable_GreenItem, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeekerBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_RedGreenVSSeekerBike, gObjectEventPicTable_GreenVSSeekerBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TownMap = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 32, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TownMap, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pokedex = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Pokedex, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GBAKid = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GBAKid, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Snorlax = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Snorlax, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Fossil, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Ruby = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Ruby, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sapphire = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Sapphire, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldAmber = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_OldAmber, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymSign = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GymSign, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sign = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Sign, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTips = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WoodenSign, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clipboard = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Clipboard, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meteorite = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_METEORITE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirthIslandStone, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LaprasDoll = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_LaprasDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spearow = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Spearow, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Omanyte = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Omanyte, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kangaskhan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kangaskhan, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Psyduck = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Psyduck, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranF = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_NidoranF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_NidoranM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nidorino = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Nidorino, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meowth = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Meowth, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seel = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Seel, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Voltorb = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Voltorb, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowpoke = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Slowpoke, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowbro = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Slowbro, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machop = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Machop, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wigglytuff = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wigglytuff, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Doduo = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Doduo, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fearow = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Fearow, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lapras = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lapras, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zapdos = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Zapdos, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Moltres = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Moltres, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Articuno = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Articuno, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysD = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DeoxysD, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysA = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DeoxysA, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysN = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DeoxysN, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mewtwo = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mewtwo, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mew, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Entei = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Entei, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Raikou = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Raikou, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Suicune = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Suicune, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lugia, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_HoOh, gObjectEventPicTable_HoOh, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celebi = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Celebi, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cubone = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cubone, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machoke = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Machoke, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kabuto = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kabuto, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poliwrath = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Poliwrath, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgeot = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pidgeot, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chansey = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Chansey, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pikachu, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Jigglypuff = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Jigglypuff, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgey = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pidgey, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clefairy = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Clefairy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mom, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seagallop = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_SEAGALLOP, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Seagallop, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSAnne = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_SS_ANNE, OBJ_EVENT_PAL_TAG_NONE, 4096, 128, 64, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_128x64, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SSAnne, gDummySpriteAffineAnimTable};
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 6b9445d8e..a671ada34 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -18,8 +18,6 @@
#include "constants/event_object_movement.h"
#include "constants/event_objects.h"
-#define NUM_FIELD_MAP_OBJECT_TEMPLATES 0x51
-
static void MoveCoordsInDirection(u32, s16 *, s16 *, s16, s16);
static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *, struct Sprite *);
static u8 GetCollisionInDirection(struct ObjectEvent *, u8);
@@ -71,10 +69,10 @@ static void GetObjectEventMovingCameraOffset(s16 *, s16 *);
static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8, u8, u8);
static void LoadObjectEventPalette(u16);
static void RemoveObjectEventIfOutsideView(struct ObjectEvent *);
-static void sub_805EE3C(u8, s16, s16);
+static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y);
static void SetPlayerAvatarObjectEventIdAndObjectId(u8, u8);
static void sub_805EFF4(struct ObjectEvent *);
-static u8 sub_805F510(const struct SpritePalette *);
+static u8 TryLoadObjectPalette(const struct SpritePalette *spritePalette);
static u8 FindObjectEventPaletteIndexByTag(u16);
static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *, u8);
static void ObjectCB_CameraObject(struct Sprite *);
@@ -177,11 +175,11 @@ static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprit
EWRAM_DATA u8 sCurrentReflectionType = 0;
EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0;
-const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0};
+const u8 gReflectionEffectPaletteMap[16] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0};
-const struct SpriteTemplate gCameraSpriteTemplate = {
+static const struct SpriteTemplate gCameraSpriteTemplate = {
.tileTag = 0,
- .paletteTag = 0xFFFF,
+ .paletteTag = SPRITE_INVALID_TAG,
.oam = &gDummyOamData,
.anims = gDummySpriteAnimTable,
.images = NULL,
@@ -197,7 +195,7 @@ void (*const gCameraObjectFuncs[])(struct Sprite *) = {
#include "data/object_events/object_event_graphics.h"
-static void (*const sMovementTypeCallbacks[])(struct Sprite *) = {
+static void (*const sMovementTypeCallbacks[MOVEMENT_TYPES_COUNT])(struct Sprite *) = {
[MOVEMENT_TYPE_NONE] = MovementType_None,
[MOVEMENT_TYPE_LOOK_AROUND] = MovementType_LookAround,
[MOVEMENT_TYPE_WANDER_AROUND] = MovementType_WanderAround,
@@ -281,7 +279,7 @@ static void (*const sMovementTypeCallbacks[])(struct Sprite *) = {
[MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = MovementType_WanderAroundSlowest,
};
-const bool8 gRangedMovementTypes[NUM_FIELD_MAP_OBJECT_TEMPLATES] = {
+static const bool8 gRangedMovementTypes[MOVEMENT_TYPES_COUNT] = {
[MOVEMENT_TYPE_NONE] = FALSE,
[MOVEMENT_TYPE_LOOK_AROUND] = FALSE,
[MOVEMENT_TYPE_WANDER_AROUND] = TRUE,
@@ -365,7 +363,7 @@ const bool8 gRangedMovementTypes[NUM_FIELD_MAP_OBJECT_TEMPLATES] = {
[MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = TRUE,
};
-const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES] = {
+static const u8 gInitialMovementTypeFacingDirections[MOVEMENT_TYPES_COUNT] = {
[MOVEMENT_TYPE_NONE] = DIR_SOUTH,
[MOVEMENT_TYPE_LOOK_AROUND] = DIR_SOUTH,
[MOVEMENT_TYPE_WANDER_AROUND] = DIR_SOUTH,
@@ -449,42 +447,35 @@ const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES] =
[MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = DIR_SOUTH,
};
-#define OBJ_EVENT_PAL_TAG_0 0x1103
-#define OBJ_EVENT_PAL_TAG_1 0x1104
-#define OBJ_EVENT_PAL_TAG_2 0x1105
-#define OBJ_EVENT_PAL_TAG_3 0x1106
-#define OBJ_EVENT_PAL_TAG_4 0x1107
-#define OBJ_EVENT_PAL_TAG_5 0x1108
-#define OBJ_EVENT_PAL_TAG_6 0x1109
-#define OBJ_EVENT_PAL_TAG_7 0x110A
-#define OBJ_EVENT_PAL_TAG_8 0x1100
-#define OBJ_EVENT_PAL_TAG_9 0x1101
-#define OBJ_EVENT_PAL_TAG_10 0x1102
-#define OBJ_EVENT_PAL_TAG_11 0x1115
-#define OBJ_EVENT_PAL_TAG_12 0x110B
-#define OBJ_EVENT_PAL_TAG_13 0x110C
-#define OBJ_EVENT_PAL_TAG_14 0x110D
-#define OBJ_EVENT_PAL_TAG_15 0x110E
-#define OBJ_EVENT_PAL_TAG_16 0x110F
-#define OBJ_EVENT_PAL_TAG_17 0x1110
-#define OBJ_EVENT_PAL_TAG_18 0x1111
-#define OBJ_EVENT_PAL_TAG_19 0x1112
-#define OBJ_EVENT_PAL_TAG_20 0x1113
-#define OBJ_EVENT_PAL_TAG_21 0x1114
-#define OBJ_EVENT_PAL_TAG_22 0x1116
-#define OBJ_EVENT_PAL_TAG_23 0x1117
-#define OBJ_EVENT_PAL_TAG_24 0x1118
-#define OBJ_EVENT_PAL_TAG_25 0x1119
-#define OBJ_EVENT_PAL_TAG_26 0x111B
-#define OBJ_EVENT_PAL_TAG_27 0x111C
-#define OBJ_EVENT_PAL_TAG_28 0x111D
-#define OBJ_EVENT_PAL_TAG_29 0x111E
-#define OBJ_EVENT_PAL_TAG_30 0x111F
-#define OBJ_EVENT_PAL_TAG_31 0x1120
-#define OBJ_EVENT_PAL_TAG_32 0x1121
-#define OBJ_EVENT_PAL_TAG_33 0x1122
-#define OBJ_EVENT_PAL_TAG_34 0x1123
-#define OBJ_EVENT_PAL_TAG_NONE 0x11FF
+#define OBJ_EVENT_PAL_TAG_PLAYER_RED 0x1100
+#define OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION 0x1101
+#define OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION 0x1102
+#define OBJ_EVENT_PAL_TAG_NPC_BLUE 0x1103
+#define OBJ_EVENT_PAL_TAG_NPC_PINK 0x1104
+#define OBJ_EVENT_PAL_TAG_NPC_GREEN 0x1105
+#define OBJ_EVENT_PAL_TAG_NPC_WHITE 0x1106
+#define OBJ_EVENT_PAL_TAG_NPC_BLUE_REFLECTION 0x1107
+#define OBJ_EVENT_PAL_TAG_NPC_PINK_REFLECTION 0x1108
+#define OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION 0x1109
+#define OBJ_EVENT_PAL_TAG_NPC_WHITE_REFLECTION 0x110A
+#define OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP 0x110B
+#define OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP_REFLECTION 0x110C
+#define OBJ_EVENT_PAL_TAG_RS_TRUCK 0x110D
+#define OBJ_EVENT_PAL_TAG_RS_MACHOKE 0x110E
+#define OBJ_EVENT_PAL_TAG_RS_POOCHYENA 0x110F
+#define OBJ_EVENT_PAL_TAG_PLAYER_GREEN 0x1110
+#define OBJ_EVENT_PAL_TAG_PLAYER_GREEN_REFLECTION 0x1111
+#define OBJ_EVENT_PAL_TAG_RS_MOVING_BOX 0x1112
+#define OBJ_EVENT_PAL_TAG_METEORITE 0x1113
+#define OBJ_EVENT_PAL_TAG_SEAGALLOP 0x1114
+#define OBJ_EVENT_PAL_TAG_SS_ANNE 0x1115
+#define OBJ_EVENT_PAL_TAG_RS_PLAYER_UNDERWATER 0x1116
+#define OBJ_EVENT_PAL_TAG_RS_KYOGRE 0x1117
+#define OBJ_EVENT_PAL_TAG_RS_KYOGRE_REFLECTION 0x1118
+#define OBJ_EVENT_PAL_TAG_RS_GROUDON 0x1119
+#define OBJ_EVENT_PAL_TAG_RS_GROUDON_REFLECTION 0x111A
+#define OBJ_EVENT_PAL_TAG_RS_SUBMARINE_SHADOW 0x111B
+#define OBJ_EVENT_PAL_TAG_NONE 0x11FF
#include "data/object_events/object_event_graphics_info_pointers.h"
#include "data/field_effects/field_effect_object_template_pointers.h"
@@ -495,207 +486,210 @@ const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES] =
#include "data/object_events/object_event_graphics_info.h"
static const struct SpritePalette sObjectEventSpritePalettes[] = {
- {gUnknown_836D828, OBJ_EVENT_PAL_TAG_0},
- {gUnknown_836D848, OBJ_EVENT_PAL_TAG_1},
- {gUnknown_836D868, OBJ_EVENT_PAL_TAG_2},
- {gUnknown_836D888, OBJ_EVENT_PAL_TAG_3},
- {gUnknown_836D8A8, OBJ_EVENT_PAL_TAG_4},
- {gUnknown_836D8C8, OBJ_EVENT_PAL_TAG_5},
- {gUnknown_836D8E8, OBJ_EVENT_PAL_TAG_6},
- {gUnknown_836D908, OBJ_EVENT_PAL_TAG_7},
- {gUnknown_835B968, OBJ_EVENT_PAL_TAG_8},
- {gUnknown_835E968, OBJ_EVENT_PAL_TAG_9},
- {gUnknown_835E988, OBJ_EVENT_PAL_TAG_10},
- {gUnknown_8398008, OBJ_EVENT_PAL_TAG_12},
- {gUnknown_8398028, OBJ_EVENT_PAL_TAG_13},
- {gUnknown_835B968, OBJ_EVENT_PAL_TAG_17},
- {gUnknown_835E968, OBJ_EVENT_PAL_TAG_18},
- {gUnknown_8394EA8, OBJ_EVENT_PAL_TAG_20},
- {gUnknown_8395AE8, OBJ_EVENT_PAL_TAG_11},
- {gUnknown_83952C8, OBJ_EVENT_PAL_TAG_21},
+ {gObjectEventPal_NpcBlue, OBJ_EVENT_PAL_TAG_NPC_BLUE},
+ {gObjectEventPal_NpcPink, OBJ_EVENT_PAL_TAG_NPC_PINK},
+ {gObjectEventPal_NpcGreen, OBJ_EVENT_PAL_TAG_NPC_GREEN},
+ {gObjectEventPal_NpcWhite, OBJ_EVENT_PAL_TAG_NPC_WHITE},
+ {gObjectEventPal_NpcBlueReflection, OBJ_EVENT_PAL_TAG_NPC_BLUE_REFLECTION},
+ {gObjectEventPal_NpcPinkReflection, OBJ_EVENT_PAL_TAG_NPC_PINK_REFLECTION},
+ {gObjectEventPal_NpcGreenReflection, OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION},
+ {gObjectEventPal_NpcWhiteReflection, OBJ_EVENT_PAL_TAG_NPC_WHITE_REFLECTION},
+ {gObjectEventPal_Player, OBJ_EVENT_PAL_TAG_PLAYER_RED},
+ {gObjectEventPal_PlayerReflection, OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION},
+ {gObjectEventPal_BridgeReflection, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION},
+ {gObjectEventPal_RSQuintyPlump, OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP},
+ {gObjectEventPal_RSQuintyPlumpReflection, OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP_REFLECTION},
+ {gObjectEventPal_Player, OBJ_EVENT_PAL_TAG_PLAYER_GREEN},
+ {gObjectEventPal_PlayerReflection, OBJ_EVENT_PAL_TAG_PLAYER_GREEN_REFLECTION},
+ {gObjectEventPal_Meteorite, OBJ_EVENT_PAL_TAG_METEORITE},
+ {gObjectEventPal_SSAnne, OBJ_EVENT_PAL_TAG_SS_ANNE},
+ {gObjectEventPal_Seagallop, OBJ_EVENT_PAL_TAG_SEAGALLOP},
{},
};
-const u16 gPlayerReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_18,
- OBJ_EVENT_PAL_TAG_18,
- OBJ_EVENT_PAL_TAG_18,
- OBJ_EVENT_PAL_TAG_18,
+static const u16 sPlayerReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION,
+ OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION,
+ OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION,
+ OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION,
+};
+
+static const u16 sUnusedPlayerReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_PLAYER_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_PLAYER_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_PLAYER_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_PLAYER_GREEN_REFLECTION,
};
-const u16 gUnknownPaletteTags_83A5200[] = {
- OBJ_EVENT_PAL_TAG_22,
- OBJ_EVENT_PAL_TAG_22,
- OBJ_EVENT_PAL_TAG_22,
- OBJ_EVENT_PAL_TAG_22,
+static const u16 sPlayerUnderwaterReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_RS_PLAYER_UNDERWATER,
+ OBJ_EVENT_PAL_TAG_RS_PLAYER_UNDERWATER,
+ OBJ_EVENT_PAL_TAG_RS_PLAYER_UNDERWATER,
+ OBJ_EVENT_PAL_TAG_RS_PLAYER_UNDERWATER,
};
-const struct PairedPalettes gPlayerReflectionPaletteSets[] = {
- {OBJ_EVENT_PAL_TAG_8, gPlayerReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_17, gPlayerReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_22, gUnknownPaletteTags_83A5200},
+static const struct PairedPalettes gPlayerReflectionPaletteSets[] = {
+ {OBJ_EVENT_PAL_TAG_PLAYER_RED, sPlayerReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_PLAYER_GREEN, sPlayerReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_RS_PLAYER_UNDERWATER, sPlayerUnderwaterReflectionPaletteTags},
{OBJ_EVENT_PAL_TAG_NONE, NULL},
};
-const u16 gUnknownPaletteTags_83A5228[] = {
- OBJ_EVENT_PAL_TAG_13,
- OBJ_EVENT_PAL_TAG_13,
- OBJ_EVENT_PAL_TAG_13,
- OBJ_EVENT_PAL_TAG_13,
+static const u16 sRSQuintyPlumpReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP_REFLECTION,
};
-const u16 gUnknownPaletteTags_83A5230[] = {
- OBJ_EVENT_PAL_TAG_14,
- OBJ_EVENT_PAL_TAG_14,
- OBJ_EVENT_PAL_TAG_14,
- OBJ_EVENT_PAL_TAG_14,
+static const u16 sRSTruckReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_RS_TRUCK,
+ OBJ_EVENT_PAL_TAG_RS_TRUCK,
+ OBJ_EVENT_PAL_TAG_RS_TRUCK,
+ OBJ_EVENT_PAL_TAG_RS_TRUCK,
};
-const u16 gUnknownPaletteTags_83A5238[] = {
- OBJ_EVENT_PAL_TAG_15,
- OBJ_EVENT_PAL_TAG_15,
- OBJ_EVENT_PAL_TAG_15,
- OBJ_EVENT_PAL_TAG_15,
+static const u16 sRSMachokeReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_RS_MACHOKE,
+ OBJ_EVENT_PAL_TAG_RS_MACHOKE,
+ OBJ_EVENT_PAL_TAG_RS_MACHOKE,
+ OBJ_EVENT_PAL_TAG_RS_MACHOKE,
};
-const u16 gUnknownPaletteTags_83A5240[] = {
- OBJ_EVENT_PAL_TAG_19,
- OBJ_EVENT_PAL_TAG_19,
- OBJ_EVENT_PAL_TAG_19,
- OBJ_EVENT_PAL_TAG_19,
+static const u16 sRSMovingBoxReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_RS_MOVING_BOX,
+ OBJ_EVENT_PAL_TAG_RS_MOVING_BOX,
+ OBJ_EVENT_PAL_TAG_RS_MOVING_BOX,
+ OBJ_EVENT_PAL_TAG_RS_MOVING_BOX,
};
-const u16 gUnknownPaletteTags_83A5248[] = {
- OBJ_EVENT_PAL_TAG_20,
- OBJ_EVENT_PAL_TAG_20,
- OBJ_EVENT_PAL_TAG_20,
- OBJ_EVENT_PAL_TAG_20,
+static const u16 sMeteoriteReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_METEORITE,
+ OBJ_EVENT_PAL_TAG_METEORITE,
+ OBJ_EVENT_PAL_TAG_METEORITE,
+ OBJ_EVENT_PAL_TAG_METEORITE,
};
-const u16 gUnknownPaletteTags_83A5250[] = {
- OBJ_EVENT_PAL_TAG_21,
- OBJ_EVENT_PAL_TAG_21,
- OBJ_EVENT_PAL_TAG_21,
- OBJ_EVENT_PAL_TAG_21,
+static const u16 sSeagallopReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_SEAGALLOP,
+ OBJ_EVENT_PAL_TAG_SEAGALLOP,
+ OBJ_EVENT_PAL_TAG_SEAGALLOP,
+ OBJ_EVENT_PAL_TAG_SEAGALLOP,
};
-const u16 gUnknownPaletteTags_83A5258[] = {
- OBJ_EVENT_PAL_TAG_26,
- OBJ_EVENT_PAL_TAG_26,
- OBJ_EVENT_PAL_TAG_26,
- OBJ_EVENT_PAL_TAG_26,
+static const u16 sRSSubmarineShadowReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_RS_SUBMARINE_SHADOW,
+ OBJ_EVENT_PAL_TAG_RS_SUBMARINE_SHADOW,
+ OBJ_EVENT_PAL_TAG_RS_SUBMARINE_SHADOW,
+ OBJ_EVENT_PAL_TAG_RS_SUBMARINE_SHADOW,
};
-const u16 gUnknownPaletteTags_83A5260[] = {
- OBJ_EVENT_PAL_TAG_24,
- OBJ_EVENT_PAL_TAG_24,
- OBJ_EVENT_PAL_TAG_24,
- OBJ_EVENT_PAL_TAG_24,
+static const u16 sRSKyogreReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_RS_KYOGRE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_KYOGRE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_KYOGRE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_KYOGRE_REFLECTION,
};
-const u16 gUnknownPaletteTags_83A5268[] = {
- 0x111a,
- 0x111a,
- 0x111a,
- 0x111a,
+static const u16 sRSGroudonReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_RS_GROUDON_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_GROUDON_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_GROUDON_REFLECTION,
+ OBJ_EVENT_PAL_TAG_RS_GROUDON_REFLECTION,
};
-const u16 gUnknownPaletteTags_83A5270[] = {
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_6,
+static const u16 sGreenNPCReflectionPaletteTags[] = {
+ OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION,
};
-const struct PairedPalettes gSpecialObjectReflectionPaletteSets[] = {
- {OBJ_EVENT_PAL_TAG_8, gPlayerReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_17, gPlayerReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_12, gUnknownPaletteTags_83A5228},
- {OBJ_EVENT_PAL_TAG_14, gUnknownPaletteTags_83A5230},
- {OBJ_EVENT_PAL_TAG_15, gUnknownPaletteTags_83A5238},
- {OBJ_EVENT_PAL_TAG_19, gUnknownPaletteTags_83A5240},
- {OBJ_EVENT_PAL_TAG_20, gUnknownPaletteTags_83A5248},
- {OBJ_EVENT_PAL_TAG_21, gUnknownPaletteTags_83A5250},
- {OBJ_EVENT_PAL_TAG_23, gUnknownPaletteTags_83A5260},
- {OBJ_EVENT_PAL_TAG_25, gUnknownPaletteTags_83A5268},
- {OBJ_EVENT_PAL_TAG_2, gUnknownPaletteTags_83A5270},
- {OBJ_EVENT_PAL_TAG_26, gUnknownPaletteTags_83A5258},
+static const struct PairedPalettes gSpecialObjectReflectionPaletteSets[] = {
+ {OBJ_EVENT_PAL_TAG_PLAYER_RED, sPlayerReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_PLAYER_GREEN, sPlayerReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_RS_QUINTY_PLUMP, sRSQuintyPlumpReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_RS_TRUCK, sRSTruckReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_RS_MACHOKE, sRSMachokeReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_RS_MOVING_BOX, sRSMovingBoxReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_METEORITE, sMeteoriteReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_SEAGALLOP, sSeagallopReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_RS_KYOGRE, sRSKyogreReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_RS_GROUDON, sRSGroudonReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_NPC_GREEN, sGreenNPCReflectionPaletteTags},
+ {OBJ_EVENT_PAL_TAG_RS_SUBMARINE_SHADOW, sRSSubmarineShadowReflectionPaletteTags},
{OBJ_EVENT_PAL_TAG_NONE, NULL},
};
-const u16 gUnknownPaletteTags_83A52E0[] = {
- OBJ_EVENT_PAL_TAG_8,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_0,
- OBJ_EVENT_PAL_TAG_1,
- OBJ_EVENT_PAL_TAG_2,
- OBJ_EVENT_PAL_TAG_3,
- OBJ_EVENT_PAL_TAG_4,
- OBJ_EVENT_PAL_TAG_5,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_7,
+static const u16 sObjectPaletteTags0[] = {
+ OBJ_EVENT_PAL_TAG_PLAYER_RED,
+ OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_BLUE,
+ OBJ_EVENT_PAL_TAG_NPC_PINK,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN,
+ OBJ_EVENT_PAL_TAG_NPC_WHITE,
+ OBJ_EVENT_PAL_TAG_NPC_BLUE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_PINK_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_WHITE_REFLECTION,
};
-const u16 gUnknownPaletteTags_83A52F4[] = {
- OBJ_EVENT_PAL_TAG_8,
- OBJ_EVENT_PAL_TAG_17,
- OBJ_EVENT_PAL_TAG_0,
- OBJ_EVENT_PAL_TAG_1,
- OBJ_EVENT_PAL_TAG_2,
- OBJ_EVENT_PAL_TAG_3,
- OBJ_EVENT_PAL_TAG_4,
- OBJ_EVENT_PAL_TAG_5,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_7,
+static const u16 sObjectPaletteTags1[] = {
+ OBJ_EVENT_PAL_TAG_PLAYER_RED,
+ OBJ_EVENT_PAL_TAG_PLAYER_GREEN,
+ OBJ_EVENT_PAL_TAG_NPC_BLUE,
+ OBJ_EVENT_PAL_TAG_NPC_PINK,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN,
+ OBJ_EVENT_PAL_TAG_NPC_WHITE,
+ OBJ_EVENT_PAL_TAG_NPC_BLUE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_PINK_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_WHITE_REFLECTION,
};
-const u16 gUnknownPaletteTags_83A5308[] = {
- OBJ_EVENT_PAL_TAG_8,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_0,
- OBJ_EVENT_PAL_TAG_1,
- OBJ_EVENT_PAL_TAG_2,
- OBJ_EVENT_PAL_TAG_3,
- OBJ_EVENT_PAL_TAG_4,
- OBJ_EVENT_PAL_TAG_5,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_7,
+static const u16 sObjectPaletteTags2[] = {
+ OBJ_EVENT_PAL_TAG_PLAYER_RED,
+ OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_BLUE,
+ OBJ_EVENT_PAL_TAG_NPC_PINK,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN,
+ OBJ_EVENT_PAL_TAG_NPC_WHITE,
+ OBJ_EVENT_PAL_TAG_NPC_BLUE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_PINK_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_WHITE_REFLECTION,
};
-const u16 gUnknownPaletteTags_83A531C[] = {
- OBJ_EVENT_PAL_TAG_8,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_0,
- OBJ_EVENT_PAL_TAG_1,
- OBJ_EVENT_PAL_TAG_2,
- OBJ_EVENT_PAL_TAG_3,
- OBJ_EVENT_PAL_TAG_4,
- OBJ_EVENT_PAL_TAG_5,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_7,
+static const u16 sObjectPaletteTags3[] = {
+ OBJ_EVENT_PAL_TAG_PLAYER_RED,
+ OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_BLUE,
+ OBJ_EVENT_PAL_TAG_NPC_PINK,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN,
+ OBJ_EVENT_PAL_TAG_NPC_WHITE,
+ OBJ_EVENT_PAL_TAG_NPC_BLUE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_PINK_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_WHITE_REFLECTION,
};
-const u16 *const gObjectPaletteTagSets[] = {
- gUnknownPaletteTags_83A52E0,
- gUnknownPaletteTags_83A52F4,
- gUnknownPaletteTags_83A5308,
- gUnknownPaletteTags_83A531C,
+static const u16 *const gObjectPaletteTagSets[] = {
+ sObjectPaletteTags0,
+ sObjectPaletteTags1,
+ sObjectPaletteTags2,
+ sObjectPaletteTags3,
};
//#include "data/object_events/berry_tree_graphics_tables.h"
#include "data/field_effects/field_effect_objects.h"
-const s16 gMovementDelaysMedium[] = {32, 64, 96, 128};
-const s16 gMovementDelaysLong[] = {32, 64, 128, 192};
-const s16 gMovementDelaysShort[] = {32, 48, 64, 80};
+static const s16 gMovementDelaysMedium[] = {32, 64, 96, 128};
+static const s16 gMovementDelaysLong[] = {32, 64, 128, 192};
+static const s16 gMovementDelaysShort[] = {32, 48, 64, 80};
#include "data/object_events/movement_type_func_tables.h"
-const u8 gFaceDirectionAnimNums[] = {
+static const u8 gFaceDirectionAnimNums[] = {
[DIR_NONE] = 0x00,
[DIR_SOUTH] = 0x00,
[DIR_NORTH] = 0x01,
@@ -707,7 +701,7 @@ const u8 gFaceDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x01,
};
-const u8 gMoveDirectionAnimNums[] = {
+static const u8 gMoveDirectionAnimNums[] = {
[DIR_NONE] = 0x4,
[DIR_SOUTH] = 0x4,
[DIR_NORTH] = 0x5,
@@ -719,7 +713,7 @@ const u8 gMoveDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x5,
};
-const u8 gMoveDirectionFastAnimNums[] = {
+static const u8 gMoveDirectionFastAnimNums[] = {
[DIR_NONE] = 0x8,
[DIR_SOUTH] = 0x8,
[DIR_NORTH] = 0x9,
@@ -731,7 +725,7 @@ const u8 gMoveDirectionFastAnimNums[] = {
[DIR_NORTHEAST] = 0x9,
};
-const u8 gMoveDirectionFasterAnimNums[] = {
+static const u8 gMoveDirectionFasterAnimNums[] = {
[DIR_NONE] = 0xC,
[DIR_SOUTH] = 0xC,
[DIR_NORTH] = 0xD,
@@ -743,7 +737,7 @@ const u8 gMoveDirectionFasterAnimNums[] = {
[DIR_NORTHEAST] = 0xD,
};
-const u8 gMoveDirectionFastestAnimNums[] = {
+static const u8 gMoveDirectionFastestAnimNums[] = {
[DIR_NONE] = 0x10,
[DIR_SOUTH] = 0x10,
[DIR_NORTH] = 0x11,
@@ -755,7 +749,7 @@ const u8 gMoveDirectionFastestAnimNums[] = {
[DIR_NORTHEAST] = 0x11,
};
-const u8 gJumpSpecialDirectionAnimNums[] = {
+static const u8 gJumpSpecialDirectionAnimNums[] = {
[DIR_NONE] = 0x14,
[DIR_SOUTH] = 0x14,
[DIR_NORTH] = 0x15,
@@ -767,7 +761,7 @@ const u8 gJumpSpecialDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x15,
};
-const u8 gAcroWheelieDirectionAnimNums[] = {
+static const u8 gAcroWheelieDirectionAnimNums[] = {
[DIR_NONE] = 0x14,
[DIR_SOUTH] = 0x14,
[DIR_NORTH] = 0x15,
@@ -779,7 +773,7 @@ const u8 gAcroWheelieDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x15,
};
-const u8 gUnrefAnimNums_080634A0[] = {
+static const u8 gUnrefAnimNums_080634A0[] = {
[DIR_NONE] = 0x18,
[DIR_SOUTH] = 0x18,
[DIR_NORTH] = 0x19,
@@ -791,7 +785,7 @@ const u8 gUnrefAnimNums_080634A0[] = {
[DIR_NORTHEAST] = 0x19,
};
-const u8 gAcroEndWheelieDirectionAnimNums[] = {
+static const u8 gAcroEndWheelieDirectionAnimNums[] = {
[DIR_NONE] = 0x1C,
[DIR_SOUTH] = 0x1C,
[DIR_NORTH] = 0x1D,
@@ -803,7 +797,7 @@ const u8 gAcroEndWheelieDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x1D,
};
-const u8 gUnknown_83A6465[] = {
+static const u8 gUnknown_83A6465[] = {
[DIR_NONE] = 0x18,
[DIR_SOUTH] = 0x18,
[DIR_NORTH] = 0x19,
@@ -815,7 +809,7 @@ const u8 gUnknown_83A6465[] = {
[DIR_NORTHEAST] = 0x1B,
};
-const u8 gAcroUnusedActionDirectionAnimNums[] = {
+static const u8 gAcroUnusedActionDirectionAnimNums[] = {
[DIR_NONE] = 0x20,
[DIR_SOUTH] = 0x20,
[DIR_NORTH] = 0x21,
@@ -827,7 +821,7 @@ const u8 gAcroUnusedActionDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x21,
};
-const u8 gAcroWheeliePedalDirectionAnimNums[] = {
+static const u8 gAcroWheeliePedalDirectionAnimNums[] = {
[DIR_NONE] = 0x24,
[DIR_SOUTH] = 0x24,
[DIR_NORTH] = 0x25,
@@ -839,7 +833,7 @@ const u8 gAcroWheeliePedalDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x25,
};
-const u8 gFishingDirectionAnimNums[] = {
+static const u8 gFishingDirectionAnimNums[] = {
[DIR_NONE] = 0x0,
[DIR_SOUTH] = 0x0,
[DIR_NORTH] = 0x1,
@@ -851,7 +845,7 @@ const u8 gFishingDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x1,
};
-const u8 gFishingNoCatchDirectionAnimNums[] = {
+static const u8 gFishingNoCatchDirectionAnimNums[] = {
[DIR_NONE] = 0x4,
[DIR_SOUTH] = 0x4,
[DIR_NORTH] = 0x5,
@@ -863,7 +857,7 @@ const u8 gFishingNoCatchDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x5,
};
-const u8 gFishingBiteDirectionAnimNums[] = {
+static const u8 gFishingBiteDirectionAnimNums[] = {
[DIR_NONE] = 0x8,
[DIR_SOUTH] = 0x8,
[DIR_NORTH] = 0x9,
@@ -875,7 +869,7 @@ const u8 gFishingBiteDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x9,
};
-const u8 gRunningDirectionAnimNums[] = {
+static const u8 gRunningDirectionAnimNums[] = {
[DIR_NONE] = 0x14,
[DIR_SOUTH] = 0x14,
[DIR_NORTH] = 0x15,
@@ -887,7 +881,7 @@ const u8 gRunningDirectionAnimNums[] = {
[DIR_NORTHEAST] = 0x15,
};
-const u8 gTrainerFacingDirectionMovementTypes[] = {
+static const u8 gTrainerFacingDirectionMovementTypes[] = {
[DIR_NONE] = 0x08,
[DIR_SOUTH] = 0x08,
[DIR_NORTH] = 0x07,
@@ -925,7 +919,7 @@ static const struct Coords16 sDirectionToVectors[] = {
[DIR_NORTHEAST] = { 1, -1},
};
-const u8 gFaceDirectionMovementActions[] = {
+static const u8 gFaceDirectionMovementActions[] = {
[DIR_NONE] = MOVEMENT_ACTION_FACE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_FACE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_FACE_UP,
@@ -933,7 +927,7 @@ const u8 gFaceDirectionMovementActions[] = {
[DIR_EAST] = MOVEMENT_ACTION_FACE_RIGHT,
};
-const u8 gFaceDirectionFastMovementActions[] = {
+static const u8 gFaceDirectionFastMovementActions[] = {
[DIR_NONE] = MOVEMENT_ACTION_FACE_DOWN_FAST,
[DIR_SOUTH] = MOVEMENT_ACTION_FACE_DOWN_FAST,
[DIR_NORTH] = MOVEMENT_ACTION_FACE_UP_FAST,
@@ -941,7 +935,7 @@ const u8 gFaceDirectionFastMovementActions[] = {
[DIR_EAST] = MOVEMENT_ACTION_FACE_RIGHT_FAST,
};
-const u8 gUnknown_83A64F6[] = {
+static const u8 gUnknown_83A64F6[] = {
[DIR_NONE] = MOVEMENT_ACTION_0x9B,
[DIR_SOUTH] = MOVEMENT_ACTION_0x9B,
[DIR_NORTH] = MOVEMENT_ACTION_0x9C,
@@ -949,7 +943,7 @@ const u8 gUnknown_83A64F6[] = {
[DIR_EAST] = MOVEMENT_ACTION_0x9E,
};
-const u8 gUnknown_83A64FB[] = {
+static const u8 gUnknown_83A64FB[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_SLOWEST_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_SLOWEST_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_SLOWEST_UP,
@@ -957,7 +951,7 @@ const u8 gUnknown_83A64FB[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_SLOWEST_RIGHT,
};
-const u8 gUnknown_83A6500[] = {
+static const u8 gUnknown_83A6500[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_SLOW_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_SLOW_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_SLOW_UP,
@@ -965,7 +959,7 @@ const u8 gUnknown_83A6500[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_SLOW_RIGHT,
};
-const u8 gUnknown_83A6505[] = {
+static const u8 gUnknown_83A6505[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_NORMAL_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_NORMAL_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_NORMAL_UP,
@@ -973,7 +967,7 @@ const u8 gUnknown_83A6505[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_NORMAL_RIGHT,
};
-const u8 gUnknown_83A650A[] = {
+static const u8 gUnknown_83A650A[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_FAST_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_FAST_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_FAST_UP,
@@ -981,7 +975,7 @@ const u8 gUnknown_83A650A[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_FAST_RIGHT,
};
-const u8 gUnknown_83A650F[] = {
+static const u8 gUnknown_83A650F[] = {
[DIR_NONE] = MOVEMENT_ACTION_0xA0,
[DIR_SOUTH] = MOVEMENT_ACTION_0xA0,
[DIR_NORTH] = MOVEMENT_ACTION_0xA1,
@@ -989,7 +983,7 @@ const u8 gUnknown_83A650F[] = {
[DIR_EAST] = MOVEMENT_ACTION_0xA3,
};
-const u8 gUnknown_83A6514[] = {
+static const u8 gUnknown_83A6514[] = {
[DIR_NONE] = MOVEMENT_ACTION_FACE_DOWN_SLOW,
[DIR_SOUTH] = MOVEMENT_ACTION_FACE_DOWN_SLOW,
[DIR_NORTH] = MOVEMENT_ACTION_FACE_UP_SLOW,
@@ -997,7 +991,7 @@ const u8 gUnknown_83A6514[] = {
[DIR_EAST] = MOVEMENT_ACTION_FACE_RIGHT_SLOW,
};
-const u8 gUnknown_83A6519[] = {
+static const u8 gUnknown_83A6519[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_FASTEST_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_FASTEST_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_FASTEST_UP,
@@ -1005,7 +999,7 @@ const u8 gUnknown_83A6519[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_FASTEST_RIGHT,
};
-const u8 gUnknown_83A651E[] = {
+static const u8 gUnknown_83A651E[] = {
[DIR_NONE] = MOVEMENT_ACTION_SLIDE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_SLIDE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_SLIDE_UP,
@@ -1013,7 +1007,7 @@ const u8 gUnknown_83A651E[] = {
[DIR_EAST] = MOVEMENT_ACTION_SLIDE_RIGHT,
};
-const u8 gUnknown_83A6523[] = {
+static const u8 gUnknown_83A6523[] = {
[DIR_NONE] = MOVEMENT_ACTION_PLAYER_RUN_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_PLAYER_RUN_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_PLAYER_RUN_UP,
@@ -1021,7 +1015,7 @@ const u8 gUnknown_83A6523[] = {
[DIR_EAST] = MOVEMENT_ACTION_PLAYER_RUN_RIGHT,
};
-const u8 gUnknown_83A6528[] = {
+static const u8 gUnknown_83A6528[] = {
[DIR_NONE] = MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW,
[DIR_SOUTH] = MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW,
[DIR_NORTH] = MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW,
@@ -1029,7 +1023,7 @@ const u8 gUnknown_83A6528[] = {
[DIR_EAST] = MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW,
};
-const u8 gUnknown_83A652D[] = {
+static const u8 gUnknown_83A652D[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP,
@@ -1037,7 +1031,7 @@ const u8 gUnknown_83A652D[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT,
};
-const u8 gUnknown_83A6532[] = {
+static const u8 gUnknown_83A6532[] = {
[DIR_NONE] = MOVEMENT_ACTION_JUMP_2_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_JUMP_2_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_JUMP_2_UP,
@@ -1045,7 +1039,7 @@ const u8 gUnknown_83A6532[] = {
[DIR_EAST] = MOVEMENT_ACTION_JUMP_2_RIGHT,
};
-const u8 gUnknown_83A6537[] = {
+static const u8 gUnknown_83A6537[] = {
[DIR_NONE] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP,
@@ -1053,7 +1047,7 @@ const u8 gUnknown_83A6537[] = {
[DIR_EAST] = MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT,
};
-const u8 gUnknown_83A653C[] = {
+static const u8 gUnknown_83A653C[] = {
[DIR_NONE] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP,
@@ -1061,7 +1055,7 @@ const u8 gUnknown_83A653C[] = {
[DIR_EAST] = MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT,
};
-const u8 gUnknown_83A6541[] = {
+static const u8 gUnknown_83A6541[] = {
[DIR_NONE] = MOVEMENT_ACTION_JUMP_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_JUMP_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_JUMP_UP,
@@ -1069,7 +1063,7 @@ const u8 gUnknown_83A6541[] = {
[DIR_EAST] = MOVEMENT_ACTION_JUMP_RIGHT,
};
-const u8 gUnknown_83A6546[] = {
+static const u8 gUnknown_83A6546[] = {
[DIR_NONE] = MOVEMENT_ACTION_JUMP_SPECIAL_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_JUMP_SPECIAL_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_JUMP_SPECIAL_UP,
@@ -1077,7 +1071,7 @@ const u8 gUnknown_83A6546[] = {
[DIR_EAST] = MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT,
};
-const u8 gUnknown_83A654B[] = {
+static const u8 gUnknown_83A654B[] = {
[DIR_NONE] = MOVEMENT_ACTION_0xA6,
[DIR_SOUTH] = MOVEMENT_ACTION_0xA6,
[DIR_NORTH] = MOVEMENT_ACTION_0xA7,
@@ -1085,7 +1079,7 @@ const u8 gUnknown_83A654B[] = {
[DIR_EAST] = MOVEMENT_ACTION_0xA9,
};
-const u8 gUnknown_83A6550[] = {
+static const u8 gUnknown_83A6550[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP,
@@ -1093,7 +1087,7 @@ const u8 gUnknown_83A6550[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT,
};
-const u8 gUnknown_83A6555[] = {
+static const u8 gUnknown_83A6555[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP,
@@ -1101,7 +1095,7 @@ const u8 gUnknown_83A6555[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT,
};
-const u8 gUnknown_83A655A[] = {
+static const u8 gUnknown_83A655A[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP,
@@ -1109,7 +1103,7 @@ const u8 gUnknown_83A655A[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT,
};
-const u8 gUnknown_83A655F[] = {
+static const u8 gUnknown_83A655F[] = {
[DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP,
@@ -1117,7 +1111,7 @@ const u8 gUnknown_83A655F[] = {
[DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT,
};
-const u8 gUnknown_83A6564[] = {
+static const u8 gUnknown_83A6564[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP,
@@ -1125,7 +1119,7 @@ const u8 gUnknown_83A6564[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT,
};
-const u8 gUnknown_83A6569[] = {
+static const u8 gUnknown_83A6569[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP,
@@ -1133,7 +1127,7 @@ const u8 gUnknown_83A6569[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT,
};
-const u8 gUnknown_83A656E[] = {
+static const u8 gUnknown_83A656E[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP,
@@ -1141,7 +1135,7 @@ const u8 gUnknown_83A656E[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT,
};
-const u8 gUnknown_83A6573[] = {
+static const u8 gUnknown_83A6573[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP,
@@ -1149,7 +1143,7 @@ const u8 gUnknown_83A6573[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT,
};
-const u8 gUnknown_83A6578[] = {
+static const u8 gUnknown_83A6578[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP,
@@ -1157,7 +1151,7 @@ const u8 gUnknown_83A6578[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT,
};
-const u8 gUnknown_83A657D[] = {
+static const u8 gUnknown_83A657D[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP,
@@ -1165,7 +1159,7 @@ const u8 gUnknown_83A657D[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT,
};
-const u8 gUnknown_83A6582[] = {
+static const u8 gUnknown_83A6582[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP,
@@ -1173,7 +1167,7 @@ const u8 gUnknown_83A6582[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT,
};
-const u8 gUnknown_83A6587[] = {
+static const u8 gUnknown_83A6587[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP,
@@ -1181,7 +1175,7 @@ const u8 gUnknown_83A6587[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT,
};
-const u8 gUnknown_83A658C[] = {
+static const u8 gUnknown_83A658C[] = {
[DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN,
[DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN,
[DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP,
@@ -1189,7 +1183,7 @@ const u8 gUnknown_83A658C[] = {
[DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT,
};
-const u8 gOppositeDirections[] = {
+static const u8 gOppositeDirections[] = {
DIR_NORTH,
DIR_SOUTH,
DIR_EAST,
@@ -1200,14 +1194,14 @@ const u8 gOppositeDirections[] = {
DIR_SOUTHWEST,
};
-const u8 gUnknown_83A6599[][4] = {
+static const u8 gUnknown_83A6599[][4] = {
{2, 1, 4, 3},
{1, 2, 3, 4},
{3, 4, 2, 1},
{4, 3, 1, 2}
};
-const u8 gUnknown_83A65A9[][4] = {
+static const u8 gUnknown_83A65A9[][4] = {
{2, 1, 4, 3},
{1, 2, 3, 4},
{4, 3, 1, 2},
@@ -1243,13 +1237,13 @@ void ResetObjectEvents(void)
static void CreateReflectionEffectSprites(void)
{
- u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31);
+ u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_REFLECTION_DISTORTION], 0, 0, 31);
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(&gSprites[spriteId]);
StartSpriteAffineAnim(&gSprites[spriteId], 0);
gSprites[spriteId].invisible = TRUE;
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_REFLECTION_DISTORTION], 0, 0, 31);
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(&gSprites[spriteId]);
StartSpriteAffineAnim(&gSprites[spriteId], 1);
@@ -1604,11 +1598,11 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
if (graphicsInfo->paletteSlot == 0)
{
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
else if (graphicsInfo->paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE)
@@ -1711,7 +1705,7 @@ void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callba
const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId);
spriteTemplate->tileTag = graphicsInfo->tileTag;
- spriteTemplate->paletteTag = graphicsInfo->paletteTag1;
+ spriteTemplate->paletteTag = graphicsInfo->paletteTag;
spriteTemplate->oam = graphicsInfo->oam;
spriteTemplate->anims = graphicsInfo->anims;
spriteTemplate->images = graphicsInfo->images;
@@ -1785,7 +1779,7 @@ u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction)
sprite->data[1] = z;
if (graphicsInfo->paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
if (subspriteTables != NULL)
@@ -1822,7 +1816,7 @@ u8 sub_805EB44(u8 graphicsId, u8 a1, s16 x, s16 y)
sprite->data[0] = a1;
if (graphicsInfo->paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
if (subspriteTables != NULL)
@@ -1900,7 +1894,7 @@ static void RemoveObjectEventIfOutsideView(struct ObjectEvent *objectEvent)
RemoveObjectEvent(objectEvent);
}
-void sub_805EDF0(s16 x, s16 y)
+void ReloadMapObjectsWithOffset(s16 x, s16 y)
{
u8 i;
@@ -1909,13 +1903,13 @@ void sub_805EDF0(s16 x, s16 y)
{
if (gObjectEvents[i].active)
{
- sub_805EE3C(i, x, y);
+ ReloadMapObjectWithOffset(i, x, y);
}
}
CreateReflectionEffectSprites();
}
-static void sub_805EE3C(u8 objectEventId, s16 x, s16 y)
+static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y)
{
u8 spriteId;
struct Sprite *sprite;
@@ -1945,11 +1939,11 @@ static void sub_805EE3C(u8 objectEventId, s16 x, s16 y)
*(u16 *)&spriteTemplate.paletteTag = SPRITE_INVALID_TAG;
if (graphicsInfo->paletteSlot == 0)
{
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
if (graphicsInfo->paletteSlot > 9)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
*(u16 *)&spriteTemplate.paletteTag = SPRITE_INVALID_TAG;
spriteId = CreateSprite(&spriteTemplate, 0, 0, 0);
@@ -2016,17 +2010,17 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId)
sprite = &gSprites[objectEvent->spriteId];
if (graphicsInfo->paletteSlot == 0)
{
- PatchObjectPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
if (graphicsInfo->paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
var = sprite->images->size / TILE_SIZE_4BPP;
if (!sprite->usingSheet)
{
- sub_80075C0(sprite);
+ FreeSpriteTilesIfNotUsingSheet(sprite);
}
sprite->oam.shape = graphicsInfo->oam->shape;
sprite->oam.size = graphicsInfo->oam->size;
@@ -2112,7 +2106,7 @@ static void SetObjectEventDynamicGraphicsId(struct ObjectEvent *objectEvent)
}
}
-void npc_by_local_id_and_map_set_field_1_bit_x20(u8 localId, u8 mapNum, u8 mapGroup, u8 state)
+void ShowOrHideObjectByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 state)
{
u8 objectEventId;
@@ -2129,7 +2123,7 @@ void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId,
*(u8*)(mapGroup) = objectEvent->mapGroup;
}
-void sub_805F378(s16 x, s16 y)
+void EnableObjectGroundEffectsByXY(s16 x, s16 y)
{
u8 objectEventId;
struct ObjectEvent *objectEvent;
@@ -2142,7 +2136,7 @@ void sub_805F378(s16 x, s16 y)
}
}
-void sub_805F3A8(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority)
+void SetObjectPriorityByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority)
{
u8 objectEventId;
struct ObjectEvent *objectEvent;
@@ -2157,7 +2151,7 @@ void sub_805F3A8(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority)
}
}
-void sub_805F400(u8 localId, u8 mapNum, u8 mapGroup)
+void UnfixObjectPriorityByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup)
{
u8 objectEventId;
struct ObjectEvent *objectEvent;
@@ -2170,7 +2164,7 @@ void sub_805F400(u8 localId, u8 mapNum, u8 mapGroup)
}
}
-void sub_808E82C(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y)
+void SetObjectPositionByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y)
{
u8 objectEventId;
struct Sprite *sprite;
@@ -2193,9 +2187,13 @@ static void LoadObjectEventPalette(u16 paletteTag)
{
u16 i = FindObjectEventPaletteIndexByTag(paletteTag);
+#ifdef BUGFIX
+ if (sObjectEventSpritePalettes[i].tag != OBJ_EVENT_PAL_TAG_NONE)
+#else
if (i != OBJ_EVENT_PAL_TAG_NONE) // always true
+#endif
{
- sub_805F510(&sObjectEventSpritePalettes[i]);
+ TryLoadObjectPalette(&sObjectEventSpritePalettes[i]);
}
}
@@ -2209,10 +2207,11 @@ void Unused_LoadObjectEventPaletteSet(u16 *paletteTags)
}
}
-static u8 sub_805F510(const struct SpritePalette *spritePalette)
+static u8 TryLoadObjectPalette(const struct SpritePalette *spritePalette)
{
if (IndexOfSpritePaletteTag(spritePalette->tag) != 0xFF)
{
+ // Already loaded
return 0xFF;
}
return LoadSpritePalette(spritePalette);
diff --git a/src/field_effect.c b/src/field_effect.c
index c2b507882..4cab3cff8 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -1903,13 +1903,13 @@ u8 FldEff_LavaridgeGymWarp(void)
{
u8 spriteId;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[33], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH_LAUNCH], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
gSprites[spriteId].oam.priority = gFieldEffectArguments[3];
gSprites[spriteId].coordOffsetEnabled = TRUE;
return spriteId;
}
-void SpriteCB_LavaridgeGymWarp(struct Sprite * sprite)
+void SpriteCB_AshLaunch(struct Sprite * sprite)
{
if (sprite->animEnded)
{
@@ -1996,7 +1996,7 @@ u8 FldEff_PopOutOfAsh(void)
{
u8 spriteId;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[32], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH_PUFF], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
gSprites[spriteId].oam.priority = gFieldEffectArguments[3];
gSprites[spriteId].coordOffsetEnabled = TRUE;
return spriteId;
@@ -3048,7 +3048,7 @@ static void sub_8086D94(struct Sprite * sprite);
u8 FldEff_NpcFlyOut(void)
{
- u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1);
+ u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1);
struct Sprite * sprite = &gSprites[spriteId];
sprite->oam.paletteNum = 0;
@@ -3239,7 +3239,7 @@ static u8 sub_8087168(void)
{
u8 spriteId;
struct Sprite * sprite;
- spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0xff, 0xb4, 0x1);
+ spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0xff, 0xb4, 0x1);
sprite = &gSprites[spriteId];
sprite->oam.paletteNum = 0;
sprite->oam.priority = 1;
diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c
index 55095086c..fd4198712 100644
--- a/src/field_effect_helpers.c
+++ b/src/field_effect_helpers.c
@@ -7,6 +7,7 @@
#include "fieldmap.h"
#include "metatile_behavior.h"
#include "constants/field_effects.h"
+#include "constants/event_objects.h"
#include "constants/songs.h"
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF // duplicate of define in event_object_movement.c
@@ -77,15 +78,15 @@ static void LoadObjectRegularReflectionPalette(struct ObjectEvent * objectEvent,
const struct ObjectEventGraphicsInfo * graphicsInfo;
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
- if (graphicsInfo->paletteTag2 != OBJ_EVENT_PAL_TAG_NONE)
+ if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
{
if (graphicsInfo->paletteSlot == 0)
{
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, paletteIndex);
+ LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
}
else if (graphicsInfo->paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, paletteIndex);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
}
else
{
@@ -102,9 +103,9 @@ static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent * objectEve
const struct ObjectEventGraphicsInfo * graphicsInfo;
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
- if (graphicsInfo->paletteTag2 != OBJ_EVENT_PAL_TAG_NONE)
+ if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
{
- PatchObjectPalette(graphicsInfo->paletteTag2, paletteNum);
+ PatchObjectPalette(graphicsInfo->reflectionPaletteTag, paletteNum);
UpdateSpritePaletteWithWeather(paletteNum);
}
}
@@ -164,7 +165,7 @@ u8 CreateWarpArrowSprite(void)
u8 spriteId;
struct Sprite * sprite;
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8], 0, 0, 0x52);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -201,17 +202,17 @@ void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y)
}
const u8 gShadowEffectTemplateIds[] = {
- 0,
- 1,
- 2,
- 3
+ [SHADOW_SIZE_S] = FLDEFFOBJ_SHADOW_S,
+ [SHADOW_SIZE_M] = FLDEFFOBJ_SHADOW_M,
+ [SHADOW_SIZE_L] = FLDEFFOBJ_SHADOW_L,
+ [SHADOW_SIZE_XL] = FLDEFFOBJ_SHADOW_XL
};
const u16 gShadowVerticalOffsets[] = {
- 4,
- 4,
- 4,
- 16
+ [SHADOW_SIZE_S] = 4,
+ [SHADOW_SIZE_M] = 4,
+ [SHADOW_SIZE_L] = 4,
+ [SHADOW_SIZE_XL] = 16
};
u32 FldEff_Shadow(void)
@@ -273,7 +274,7 @@ u32 FldEff_TallGrass(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_8063BC4(&x, &y, 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[4], x, y, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TALL_GRASS], x, y, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -340,7 +341,7 @@ u32 FldEff_JumpTallGrass(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[10], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_TALL_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -380,7 +381,7 @@ u32 FldEff_LongGrass(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_8063BC4(&x, &y, 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -443,7 +444,7 @@ u32 FldEff_JumpLongGrass(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[16], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -464,7 +465,7 @@ u32 FldEff_ShortGrass(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[30], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SHORT_GRASS], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &(gSprites[spriteId]);
@@ -521,7 +522,7 @@ u32 FldEff_SandFootprints(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[11], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -539,7 +540,7 @@ u32 FldEff_DeepSandFootprints(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[23], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_DEEP_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -557,7 +558,7 @@ u32 FldEff_BikeTireTracks(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[27], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIKE_TIRE_TRACKS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -610,7 +611,7 @@ u32 FldEff_Splash(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@@ -649,7 +650,7 @@ u32 FldEff_JumpSmallSplash(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[14], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_SMALL_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -667,7 +668,7 @@ u32 FldEff_JumpBigSplash(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[12], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_BIG_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -689,7 +690,7 @@ u32 FldEff_FeetInFlowingWater(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@@ -743,7 +744,7 @@ u32 FldEff_Ripple(void)
u8 spriteId;
struct Sprite * sprite;
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[5], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RIPPLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -763,7 +764,7 @@ u32 FldEff_HotSpringsWater(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[31], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_HOT_SPRINGS_WATER], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -805,7 +806,7 @@ u32 FldEff_Unknown19(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -822,7 +823,7 @@ u32 FldEff_Unknown20(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[18], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS_2], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -839,7 +840,7 @@ u32 FldEff_Unknown21(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_SAND], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -856,7 +857,7 @@ u32 FldEff_Unknown22(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_WATER_SURFACING], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -888,7 +889,7 @@ u32 FldEff_Ash(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_8063BC4(&x, &y, 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[6], x, y, gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH], x, y, gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -944,7 +945,7 @@ u32 FldEff_SurfBlob(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[7], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96);
if (spriteId !=MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -1104,7 +1105,7 @@ u32 FldEff_Dust(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[9], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_GROUND_IMPACT_DUST], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -1126,7 +1127,7 @@ u32 FldEff_SandPile(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[29], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_PILE], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@@ -1180,7 +1181,7 @@ u32 FldEff_Bubbles(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 0);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[34], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BUBBLES], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -1208,7 +1209,7 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -1222,17 +1223,17 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
u32 ShowTreeDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 24, 4);
+ return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4);
}
u32 ShowMountainDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 25, 3);
+ return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE, 3);
}
u32 ShowSandDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 28, 2);
+ return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE, 2);
}
static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
@@ -1328,7 +1329,7 @@ u32 FldEff_Sparkle(void)
gFieldEffectArguments[0] += 7;
gFieldEffectArguments[1] += 7;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[35], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SMALL_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].oam.priority = gFieldEffectArguments[2];
@@ -1355,7 +1356,7 @@ void UpdateSparkleFieldEffect(struct Sprite * sprite)
FieldEffectStop(sprite, FLDEFF_SPARKLE);
}
-void sub_80DCCE0(struct Sprite * sprite)
+void UpdateJumpImpactEffect(struct Sprite * sprite)
{
if (sprite->animEnded)
{
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index 2286f49ed..c731072c6 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -219,7 +219,7 @@ bool8 FldEff_CutGrass(void)
if (MetatileAtCoordsIsGrassTile(x, y) == TRUE)
{
SetCutGrassMetatileAt(x, y);
- sub_805F378(x, y);
+ EnableObjectGroundEffectsByXY(x, y);
}
}
}
diff --git a/src/item_menu.c b/src/item_menu.c
index 6b23482e5..e0022322d 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -1224,7 +1224,7 @@ static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex)
u16 cursorPos;
s16 *data = gTasks[taskId].data;
ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove);
- ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1);
+ ListMenuSetTemplateField(data[0], LISTFIELD_CURSORKIND, 1);
data[1] = itemIndex;
sBagMenuDisplay->itemOriginalLocation = itemIndex;
StringCopy(gStringVar1, ItemId_GetName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])));
diff --git a/src/item_pc.c b/src/item_pc.c
index 4366997ba..bf1bf87df 100644
--- a/src/item_pc.c
+++ b/src/item_pc.c
@@ -767,7 +767,7 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
{
s16 * data = gTasks[taskId].data;
- ListMenuSetUnkIndicatorsStructField(data[0], 16, 1);
+ ListMenuSetTemplateField(data[0], LISTFIELD_CURSORKIND, 1);
data[1] = pos;
sStateDataPtr->moveModeOrigPos = pos;
StringCopy(gStringVar1, ItemId_GetName(ItemPc_GetItemIdBySlotId(data[1])));
diff --git a/src/list_menu.c b/src/list_menu.c
index b032ae012..d1e69c2ff 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -11,29 +11,6 @@
#include "pokemon_icon.h"
#include "constants/songs.h"
-struct UnkIndicatorsStruct
-{
- u8 field_0;
- u16 *field_4;
- u16 field_8;
- u16 field_A;
- u16 field_C;
- u16 field_E;
- u8 field_10;
- u8 field_11;
- u8 field_12;
- u8 field_13;
- u8 field_14_0:4;
- u8 field_14_1:4;
- u8 field_15_0:4;
- u8 field_15_1:4;
- u8 field_16_0:3;
- u8 field_16_1:3;
- u8 field_16_2:2;
- u8 field_17_0:6;
- u8 field_17_1:2;
-};
-
struct MysteryGiftLinkMenuStruct
{
u32 currItemId;
@@ -646,104 +623,104 @@ void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu
PlaySE(SE_SELECT);
}
-static s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field)
+static s32 ListMenuGetTemplateField(u8 taskId, u8 field)
{
- struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data;
+ struct ListMenu *data = (struct ListMenu *)gTasks[taskId].data;
switch (field)
{
- case 0:
- case 1:
- return (s32)(data->field_4);
- case 2:
- return data->field_C;
- case 3:
- return data->field_E;
- case 4:
- return data->field_10;
- case 5:
- return data->field_11;
- case 6:
- return data->field_12;
- case 7:
- return data->field_13;
- case 8:
- return data->field_14_0;
- case 9:
- return data->field_14_1;
- case 10:
- return data->field_15_0;
- case 11:
- return data->field_15_1;
- case 12:
- return data->field_16_0;
- case 13:
- return data->field_16_1;
- case 14:
- return data->field_16_2;
- case 15:
- return data->field_17_0;
- case 16:
- return data->field_17_1;
+ case LISTFIELD_MOVECURSORFUNC:
+ case LISTFIELD_MOVECURSORFUNC2:
+ return (s32)(data->template.moveCursorFunc);
+ case LISTFIELD_TOTALITEMS:
+ return data->template.totalItems;
+ case LISTFIELD_MAXSHOWED:
+ return data->template.maxShowed;
+ case LISTFIELD_WINDOWID:
+ return data->template.windowId;
+ case LISTFIELD_HEADERX:
+ return data->template.header_X;
+ case LISTFIELD_ITEMX:
+ return data->template.item_X;
+ case LISTFIELD_CURSORX:
+ return data->template.cursor_X;
+ case LISTFIELD_UPTEXTY:
+ return data->template.upText_Y;
+ case LISTFIELD_CURSORPAL:
+ return data->template.cursorPal;
+ case LISTFIELD_FILLVALUE:
+ return data->template.fillValue;
+ case LISTFIELD_CURSORSHADOWPAL:
+ return data->template.cursorShadowPal;
+ case LISTFIELD_LETTERSPACING:
+ return data->template.lettersSpacing;
+ case LISTFIELD_ITEMVERTICALPADDING:
+ return data->template.itemVerticalPadding;
+ case LISTFIELD_SCROLLMULTIPLE:
+ return data->template.scrollMultiple;
+ case LISTFIELD_FONTID:
+ return data->template.fontId;
+ case LISTFIELD_CURSORKIND:
+ return data->template.cursorKind;
default:
return -1;
}
}
-void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value)
+void ListMenuSetTemplateField(u8 taskId, u8 field, s32 value)
{
- struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data;
+ struct ListMenu *data = (struct ListMenu *)gTasks[taskId].data;
switch (field)
{
- case 0:
- case 1:
- data->field_4 = (void *)value;
+ case LISTFIELD_MOVECURSORFUNC:
+ case LISTFIELD_MOVECURSORFUNC2:
+ data->template.moveCursorFunc = (void *)value;
break;
- case 2:
- data->field_C = value;
+ case LISTFIELD_TOTALITEMS:
+ data->template.totalItems = value;
break;
- case 3:
- data->field_E = value;
+ case LISTFIELD_MAXSHOWED:
+ data->template.maxShowed = value;
break;
- case 4:
- data->field_10 = value;
+ case LISTFIELD_WINDOWID:
+ data->template.windowId = value;
break;
- case 5:
- data->field_11 = value;
+ case LISTFIELD_HEADERX:
+ data->template.header_X = value;
break;
- case 6:
- data->field_12 = value;
+ case LISTFIELD_ITEMX:
+ data->template.item_X = value;
break;
- case 7:
- data->field_13 = value;
+ case LISTFIELD_CURSORX:
+ data->template.cursor_X = value;
break;
- case 8:
- data->field_14_0 = value;
+ case LISTFIELD_UPTEXTY:
+ data->template.upText_Y = value;
break;
- case 9:
- data->field_14_1 = value;
+ case LISTFIELD_CURSORPAL:
+ data->template.cursorPal = value;
break;
- case 10:
- data->field_15_0 = value;
+ case LISTFIELD_FILLVALUE:
+ data->template.fillValue = value;
break;
- case 11:
- data->field_15_1 = value;
+ case LISTFIELD_CURSORSHADOWPAL:
+ data->template.cursorShadowPal = value;
break;
- case 12:
- data->field_16_0 = value;
+ case LISTFIELD_LETTERSPACING:
+ data->template.lettersSpacing = value;
break;
- case 13:
- data->field_16_1 = value;
+ case LISTFIELD_ITEMVERTICALPADDING:
+ data->template.itemVerticalPadding = value;
break;
- case 14:
- data->field_16_2 = value;
+ case LISTFIELD_SCROLLMULTIPLE:
+ data->template.scrollMultiple = value;
break;
- case 15:
- data->field_17_0 = value;
+ case LISTFIELD_FONTID:
+ data->template.fontId = value;
break;
- case 16:
- data->field_17_1 = value;
+ case LISTFIELD_CURSORKIND:
+ data->template.cursorKind = value;
break;
}
}
diff --git a/src/move_descriptions.c b/src/move_descriptions.c
new file mode 100644
index 000000000..8ece0e12d
--- /dev/null
+++ b/src/move_descriptions.c
@@ -0,0 +1,714 @@
+#include "global.h"
+#include "constants/moves.h"
+
+const u8 gMoveDescription_Pound[] = _("A physical attack\ndelivered with a\nlong tail or a\nforeleg, etc.");
+const u8 gMoveDescription_KarateChop[] = _("The foe is attacked\nwith a sharp chop.\nIt has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_DoubleSlap[] = _("The foe is slapped\nrepeatedly, back\nand forth, two to\nfive times.");
+const u8 gMoveDescription_CometPunch[] = _("The foe is hit with\na flurry of punches\nthat strike two to\nfive times.");
+const u8 gMoveDescription_MegaPunch[] = _("The foe is slugged\nby a punch thrown\nwith muscle-packed\npower.");
+const u8 gMoveDescription_PayDay[] = _("Numerous coins are\nhurled at the foe.\nMoney is earned\nafter battle.");
+const u8 gMoveDescription_FirePunch[] = _("The foe is punched\nwith a fiery fist.\nIt may leave the\nfoe with a burn.");
+const u8 gMoveDescription_IcePunch[] = _("The foe is punched\nwith an icy fist.\nIt may leave the\nfoe frozen.");
+const u8 gMoveDescription_ThunderPunch[] = _("The foe is punched\nwith an electrified\nfist. It may leave\nthe foe paralyzed.");
+const u8 gMoveDescription_Scratch[] = _("Hard, pointed, and\nsharp claws rake\nthe foe.");
+const u8 gMoveDescription_ViceGrip[] = _("Huge, impressive\npincers grip and\nsqueeze the foe.");
+const u8 gMoveDescription_Guillotine[] = _("A vicious tearing\nattack with pincers.\nThe foe will faint\nif it hits.");
+const u8 gMoveDescription_RazorWind[] = _("Blades of wind hit\nthe foe on the 2nd\nturn. It has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_SwordsDance[] = _("A frenetic dance of\nfighting. It sharply\nraises the ATTACK\nstat.");
+const u8 gMoveDescription_Cut[] = _("A basic attack.\nIt can be used to\ncut down thin trees\nand grass.");
+const u8 gMoveDescription_Gust[] = _("Strikes the foe\nwith a gust of wind\nwhipped up by\nwings.");
+const u8 gMoveDescription_WingAttack[] = _("The foe is struck\nwith large, imposing\nwings spread wide.");
+const u8 gMoveDescription_Whirlwind[] = _("The foe is made to\nswitch out with an\nally. In the wild,\nthe battle ends.");
+const u8 gMoveDescription_Fly[] = _("A 2-turn move that\nhits on the 2nd\nturn. Use it to fly\nto any known town.");
+const u8 gMoveDescription_Bind[] = _("A long body or\ntentacles are used\nto bind the foe for\ntwo to five turns.");
+const u8 gMoveDescription_Slam[] = _("The foe is struck\nwith a long tail,\nvines, etc.");
+const u8 gMoveDescription_VineWhip[] = _("The foe is struck\nwith slender, whip-\nlike vines.");
+const u8 gMoveDescription_Stomp[] = _("The foe is stomped\nwith a big foot.\nIt may make the\nfoe flinch.");
+const u8 gMoveDescription_DoubleKick[] = _("Two legs are used\nto quickly kick the\nfoe twice in one\nturn.");
+const u8 gMoveDescription_MegaKick[] = _("The foe is attacked\nby a kick fired\nwith muscle-packed\npower.");
+const u8 gMoveDescription_JumpKick[] = _("The user jumps up\nhigh, then kicks.\nIf it misses, the\nuser hurts itself.");
+const u8 gMoveDescription_RollingKick[] = _("A quick kick from a\nrolling spin.\nIt may make the\nfoe flinch.");
+const u8 gMoveDescription_SandAttack[] = _("A lot of sand is\nhurled in the foe's\nface, reducing its\naccuracy.");
+const u8 gMoveDescription_Headbutt[] = _("The user sticks its\nhead out and rams.\nIt may make the\nfoe flinch.");
+const u8 gMoveDescription_HornAttack[] = _("The foe is jabbed\nwith a sharply\npointed horn to\ninflict damage.");
+const u8 gMoveDescription_FuryAttack[] = _("The foe is jabbed\nrepeatedly with a\nhorn or beak two to\nfive times.");
+const u8 gMoveDescription_HornDrill[] = _("The horn is rotated\nlike a drill to ram.\nThe foe will faint\nif it hits.");
+const u8 gMoveDescription_Tackle[] = _("A physical attack\nin which the user\ncharges, full body,\ninto the foe.");
+const u8 gMoveDescription_BodySlam[] = _("The user drops its\nfull body on the\nfoe. It may leave\nthe foe paralyzed.");
+const u8 gMoveDescription_Wrap[] = _("A long body or\nvines are used to\nwrap the foe for\ntwo to five turns.");
+const u8 gMoveDescription_TakeDown[] = _("A reckless, full-\nbody charge attack\nthat also hurts the\nuser a little.");
+const u8 gMoveDescription_Thrash[] = _("The user rampages\nabout for two to\nthree turns, then\nbecomes confused.");
+const u8 gMoveDescription_DoubleEdge[] = _("A reckless, life-\nrisking tackle that\nalso hurts the user\na little.");
+const u8 gMoveDescription_TailWhip[] = _("The user wags its\ntail cutely, making\nthe foe lower its\nDEFENSE stat.");
+const u8 gMoveDescription_PoisonSting[] = _("The foe is stabbed\nwith a toxic barb,\netc. It may poison\nthe foe.");
+const u8 gMoveDescription_Twineedle[] = _("The foe is stabbed\ntwice with foreleg\nstingers. It may\npoison the foe.");
+const u8 gMoveDescription_PinMissile[] = _("Sharp pins are shot\nat the foe and hit\ntwo to five times\nat once.");
+const u8 gMoveDescription_Leer[] = _("The foe is given an\nintimidating look\nthat lowers its\nDEFENSE stat.");
+const u8 gMoveDescription_Bite[] = _("The user bites with\nvicious fangs.\nIt may make the\nfoe flinch.");
+const u8 gMoveDescription_Growl[] = _("The user growls in\na cute way, making\nthe foe lower its\nATTACK stat.");
+const u8 gMoveDescription_Roar[] = _("The foe is made to\nswitch out with an\nally. In the wild,\nthe battle ends.");
+const u8 gMoveDescription_Sing[] = _("A soothing song\nin a calming voice\nlulls the foe into\na deep slumber.");
+const u8 gMoveDescription_Supersonic[] = _("The user generates\nodd sound waves.\nIt may confuse the\nfoe.");
+const u8 gMoveDescription_SonicBoom[] = _("The foe is hit with\na shock wave that\nalways inflicts 20-\nHP damage.");
+const u8 gMoveDescription_Disable[] = _("For a few turns,\nit prevents the foe\nfrom using the move\nit last used.");
+const u8 gMoveDescription_Acid[] = _("The foe is sprayed\nwith a harsh, hide-\nmelting acid that\nmay lower DEFENSE.");
+const u8 gMoveDescription_Ember[] = _("The foe is attacked\nwith small flames.\nThe foe may suffer\na burn.");
+const u8 gMoveDescription_Flamethrower[] = _("The foe is scorched\nwith intense flames.\nThe foe may suffer\na burn.");
+const u8 gMoveDescription_Mist[] = _("The ally party is\nprotected by a\nmist that prevents\nstat reductions.");
+const u8 gMoveDescription_WaterGun[] = _("The foe is struck\nwith a lot of water\nexpelled forcibly\nfrom the mouth.");
+const u8 gMoveDescription_HydroPump[] = _("A high volume of\nwater is blasted at\nthe foe under great\npressure.");
+const u8 gMoveDescription_Surf[] = _("A big wave crashes\ndown on the foe.\nCan also be used\nfor crossing water.");
+const u8 gMoveDescription_IceBeam[] = _("The foe is struck\nwith an icy beam.\nIt may freeze the\nfoe solid.");
+const u8 gMoveDescription_Blizzard[] = _("The foe is blasted\nwith a blizzard.\nIt may freeze the\nfoe solid.");
+const u8 gMoveDescription_Psybeam[] = _("A peculiar ray is\nshot at the foe.\nIt may leave the\nfoe confused.");
+const u8 gMoveDescription_BubbleBeam[] = _("A spray of bubbles\nstrikes the foe.\nIt may lower the\nfoe's SPEED stat.");
+const u8 gMoveDescription_AuroraBeam[] = _("A rainbow-colored\nattack beam.\nIt may lower the\nfoe's ATTACK stat.");
+const u8 gMoveDescription_HyperBeam[] = _("A severely damaging\nattack that makes\nthe user rest on\nthe next turn.");
+const u8 gMoveDescription_Peck[] = _("The foe is jabbed\nwith a sharply\npointed beak or\nhorn.");
+const u8 gMoveDescription_DrillPeck[] = _("A corkscrewing\nattack with the\nsharp beak acting\nas a drill.");
+const u8 gMoveDescription_Submission[] = _("A reckless, full-\nbody throw attack\nthat also hurts the\nuser a little.");
+const u8 gMoveDescription_LowKick[] = _("A low, tripping kick\nthat inflicts more\ndamage on heavier\nfoes.");
+const u8 gMoveDescription_Counter[] = _("A retaliation move\nthat counters any\nphysical hit with\ndouble the damage.");
+const u8 gMoveDescription_SeismicToss[] = _("A gravity-fed throw\nthat causes damage\nmatching the user's\nlevel.");
+const u8 gMoveDescription_Strength[] = _("The foe is slugged\nat maximum power.\nCan also be used\nto move boulders.");
+const u8 gMoveDescription_Absorb[] = _("An attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.");
+const u8 gMoveDescription_MegaDrain[] = _("A tough attack that\ndrains half the\ndamage it inflicted\nto restore HP.");
+const u8 gMoveDescription_LeechSeed[] = _("A seed is planted\non the foe to steal\nsome HP for the \nuser on every turn.");
+const u8 gMoveDescription_Growth[] = _("The user's body is\nforced to grow,\nraising the SP.\nATK stat.");
+const u8 gMoveDescription_RazorLeaf[] = _("The foe is hit with\na cutting leaf.\nIt has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_SolarBeam[] = _("A 2-turn move that\nblasts the foe with\nabsorbed energy in\nthe 2nd turn.");
+const u8 gMoveDescription_PoisonPowder[] = _("A cloud of toxic\ndust is scattered.\nIt may poison the\nfoe.");
+const u8 gMoveDescription_StunSpore[] = _("Paralyzing dust is\nscattered wildly.\nIt may paralyze\nthe foe.");
+const u8 gMoveDescription_SleepPowder[] = _("A sleep-inducing\ndust is scattered\nin high volume\naround a foe.");
+const u8 gMoveDescription_PetalDance[] = _("The user attacks\nwith petals for two\nto three turns,\nthen gets confused.");
+const u8 gMoveDescription_StringShot[] = _("The foe is bound\nwith strings shot\nfrom the mouth to\nreduce its SPEED.");
+const u8 gMoveDescription_DragonRage[] = _("The foe is hit with\na shock wave that\nalways inflicts 40-\nHP damage.");
+const u8 gMoveDescription_FireSpin[] = _("The foe is trapped\nin an intense spiral\nof fire that rages\ntwo to five turns.");
+const u8 gMoveDescription_ThunderShock[] = _("An electric shock\nattack that may\nalso leave the foe\nparalyzed.");
+const u8 gMoveDescription_Thunderbolt[] = _("A strong electrical\nattack that may\nalso leave the foe\nparalyzed.");
+const u8 gMoveDescription_ThunderWave[] = _("A weak electric\nshock that is sure\nto cause paralysis\nif it hits.");
+const u8 gMoveDescription_Thunder[] = _("A brutal lightning\nattack that may\nalso leave the foe\nparalyzed.");
+const u8 gMoveDescription_RockThrow[] = _("The foe is attacked\nwith a shower of\nsmall, easily\nthrown rocks.");
+const u8 gMoveDescription_Earthquake[] = _("An earthquake that\nstrikes all POKéMON\nin battle excluding\nthe user.");
+const u8 gMoveDescription_Fissure[] = _("The foe is dropped\ninto a fissure.\nThe foe faints if it\nhits.");
+const u8 gMoveDescription_Dig[] = _("An attack that hits\non the 2nd turn.\nCan also be used\nto exit dungeons.");
+const u8 gMoveDescription_Toxic[] = _("A move that badly\npoisons the foe.\nIts poison damage\nworsens every turn.");
+const u8 gMoveDescription_Confusion[] = _("A weak telekinetic\nattack that may\nalso leave the foe\nconfused.");
+const u8 gMoveDescription_Psychic[] = _("A strong telekinetic\nattack. It may also\nlower the foe's\nSP. DEF stat.");
+const u8 gMoveDescription_Hypnosis[] = _("Hypnotic suggestion\nis used to make the\nfoe fall into a\ndeep sleep.");
+const u8 gMoveDescription_Meditate[] = _("The user meditates\nto awaken its power\nand raise its\nATTACK stat.");
+const u8 gMoveDescription_Agility[] = _("The user relaxes\nand lightens its\nbody to sharply\nboost its SPEED.");
+const u8 gMoveDescription_QuickAttack[] = _("An almost invisibly\nfast attack that\nis certain to strike\nfirst.");
+const u8 gMoveDescription_Rage[] = _("An attack that\nbecomes stronger\neach time the user\nis hit in battle.");
+const u8 gMoveDescription_Teleport[] = _("Use it to flee from\nany wild POKéMON.\nAlso warps to the\nlast POKé CENTER.");
+const u8 gMoveDescription_NightShade[] = _("An attack with a\nmirage that inflicts\ndamage matching\nthe user's level.");
+const u8 gMoveDescription_Mimic[] = _("The user copies the\nmove last used by\nthe foe for the\nrest of the battle.");
+const u8 gMoveDescription_Screech[] = _("An ear-splitting\nscreech is emitted\nto sharply reduce\nthe foe's DEFENSE.");
+const u8 gMoveDescription_DoubleTeam[] = _("The user creates\nillusory copies of\nitself to raise its\nevasiveness.");
+const u8 gMoveDescription_Recover[] = _("A self-healing move\nthat restores HP by\nup to half of the\nuser's maximum HP.");
+const u8 gMoveDescription_Harden[] = _("The user stiffens\nall the muscles in\nits body to raise\nits DEFENSE stat.");
+const u8 gMoveDescription_Minimize[] = _("The user compresses\nall the cells in its\nbody to raise its\nevasiveness.");
+const u8 gMoveDescription_Smokescreen[] = _("An obscuring cloud\nof smoke or ink\nreduces the foe's\naccuracy.");
+const u8 gMoveDescription_ConfuseRay[] = _("The foe is exposed\nto a sinister ray\nthat triggers\nconfusion.");
+const u8 gMoveDescription_Withdraw[] = _("The user withdraws\nits body in its hard\nshell, raising its\nDEFENSE stat.");
+const u8 gMoveDescription_DefenseCurl[] = _("The user curls up\nto conceal weak\nspots and raise its\nDEFENSE stat.");
+const u8 gMoveDescription_Barrier[] = _("The user creates a\nsturdy wall that\nsharply raises its\nDEFENSE stat.");
+const u8 gMoveDescription_LightScreen[] = _("A wall of light\ncuts damage from\nSP. ATK attacks\nfor five turns.");
+const u8 gMoveDescription_Haze[] = _("Eliminates all stat\nchanges among all\nPOKéMON engaged in\nbattle.");
+const u8 gMoveDescription_Reflect[] = _("A wall of light\ncuts damage from\nphysical attacks\nfor five turns.");
+const u8 gMoveDescription_FocusEnergy[] = _("The user takes a\ndeep breath and\nfocuses to raise its\ncritical-hit ratio.");
+const u8 gMoveDescription_Bide[] = _("The user endures\nattacks for two\nturns, then strikes\nback double.");
+const u8 gMoveDescription_Metronome[] = _("Waggles a finger\nand stimulates the\nbrain into using any\nmove at random.");
+const u8 gMoveDescription_MirrorMove[] = _("The user counters\nthe move last used\nby the foe with the\nsame move.");
+const u8 gMoveDescription_SelfDestruct[] = _("The user blows up\nto inflict severe\ndamage, even\nmaking itself faint.");
+const u8 gMoveDescription_EggBomb[] = _("A large egg is\nhurled with great\nforce at the foe to\ninflict damage.");
+const u8 gMoveDescription_Lick[] = _("The foe is licked\nand hit with a long\ntongue. It may\nalso paralyze.");
+const u8 gMoveDescription_Smog[] = _("The foe is attacked\nwith exhaust gases.\nIt may also poison\nthe foe.");
+const u8 gMoveDescription_Sludge[] = _("Toxic sludge is\nhurled at the foe.\nIt may poison the\ntarget.");
+const u8 gMoveDescription_BoneClub[] = _("The foe is clubbed\nwith a bone held in\nhand. It may make\nthe foe flinch.");
+const u8 gMoveDescription_FireBlast[] = _("The foe is hit with\nan intense flame.\nIt may leave the\ntarget with a burn.");
+const u8 gMoveDescription_Waterfall[] = _("A powerful charge\nattack. It can also\nbe used to climb\na waterfall.");
+const u8 gMoveDescription_Clamp[] = _("The foe is clamped\nand squeezed by\nthe user's shell for\ntwo to five turns.");
+const u8 gMoveDescription_Swift[] = _("Star-shaped rays\nthat never miss are\nfired at all foes in\nbattle.");
+const u8 gMoveDescription_SkullBash[] = _("The user raises its\nDEFENSE in the 1st\nturn, then attacks\nin the 2nd turn.");
+const u8 gMoveDescription_SpikeCannon[] = _("Sharp spikes are\nfired at the foe to\nstrike two to five\ntimes.");
+const u8 gMoveDescription_Constrict[] = _("The foe is attacked\nwith long tentacles\nor vines. It may\nlower SPEED.");
+const u8 gMoveDescription_Amnesia[] = _("Forgets about\nsomething and\nsharply raises\nSP. DEF.");
+const u8 gMoveDescription_Kinesis[] = _("The user distracts\nthe foe by bending\na spoon. It may\nlower accuracy.");
+const u8 gMoveDescription_SoftBoiled[] = _("Heals the user by\nup to half its full\nHP. It can be used\nto heal an ally.");
+const u8 gMoveDescription_HiJumpKick[] = _("A strong jumping\nknee kick. If it\nmisses, the user is\nhurt.");
+const u8 gMoveDescription_Glare[] = _("The user intimidates\nthe foe with the\ndesign on its belly\nto cause paralysis.");
+const u8 gMoveDescription_DreamEater[] = _("Absorbs half the\ndamage it inflicted\non a sleeping foe\nto restore HP.");
+const u8 gMoveDescription_PoisonGas[] = _("The foe is sprayed\nwith a cloud of\ntoxic gas that may\npoison the foe.");
+const u8 gMoveDescription_Barrage[] = _("Round objects are\nhurled at the foe\nto strike two to\nfive times.");
+const u8 gMoveDescription_LeechLife[] = _("An attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.");
+const u8 gMoveDescription_LovelyKiss[] = _("The user forces a\nkiss on the foe\nwith a scary face\nthat induces sleep.");
+const u8 gMoveDescription_SkyAttack[] = _("A 2nd-turn attack\nmove with a high\ncritical-hit ratio.\nThe foe may flinch.");
+const u8 gMoveDescription_Transform[] = _("The user transforms\ninto a copy of the\nfoe with even the\nsame move set.");
+const u8 gMoveDescription_Bubble[] = _("A spray of bubbles\nhits the foe.\nIt may lower the\nfoe's SPEED stat.");
+const u8 gMoveDescription_DizzyPunch[] = _("The foe is hit with\na rhythmic punch\nthat may leave it\nconfused.");
+const u8 gMoveDescription_Spore[] = _("The user scatters\nbursts of fine\nspores that induce\nsleep.");
+const u8 gMoveDescription_Flash[] = _("A blast of light\nthat cuts the foe's\naccuracy. It also\nilluminates caves.");
+const u8 gMoveDescription_Psywave[] = _("The foe is attacked\nwith an odd, hot\nenergy wave that\nvaries in intensity.");
+const u8 gMoveDescription_Splash[] = _("The user just flops\nand splashes around\nwithout having any\neffect.");
+const u8 gMoveDescription_AcidArmor[] = _("The user alters its\ncells to liquefy\nitself and sharply\nraise DEFENSE.");
+const u8 gMoveDescription_Crabhammer[] = _("A large pincer is\nused to hammer the\nfoe. It has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_Explosion[] = _("The user explodes\nto inflict terrible\ndamage even while\nfainting itself.");
+const u8 gMoveDescription_FurySwipes[] = _("The foe is raked\nwith sharp claws or\nscythes two to five\ntimes.");
+const u8 gMoveDescription_Bonemerang[] = _("The user throws a\nbone that hits the\nfoe once, then once\nagain on return.");
+const u8 gMoveDescription_Rest[] = _("The user sleeps for\ntwo turns to fully\nrestore HP and heal\nany status problem.");
+const u8 gMoveDescription_RockSlide[] = _("Large boulders are\nhurled at the foe.\nIt may make the\nfoe flinch.");
+const u8 gMoveDescription_HyperFang[] = _("The foe is attacked\nwith sharp fangs.\nIt may make the\nfoe flinch.");
+const u8 gMoveDescription_Sharpen[] = _("The user reduces\nits polygon count\nto sharpen edges\nand raise ATTACK.");
+const u8 gMoveDescription_Conversion[] = _("The user changes\nits type to match\nthe type of one of\nits moves.");
+const u8 gMoveDescription_TriAttack[] = _("A simultaneous\n3-beam attack that\nmay paralyze, burn,\nor freeze the foe.");
+const u8 gMoveDescription_SuperFang[] = _("The user attacks\nwith sharp fangs\nand halves the\nfoe's HP.");
+const u8 gMoveDescription_Slash[] = _("The foe is slashed\nwith claws, etc.\nIt has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_Substitute[] = _("The user creates a\ndecoy using one-\nquarter of its full\nHP.");
+const u8 gMoveDescription_Struggle[] = _("An attack that is\nused only if there\nis no PP. It also\nhurts the user.");
+const u8 gMoveDescription_Sketch[] = _("This move copies\nthe move last used\nby the foe, then\ndisappears.");
+const u8 gMoveDescription_TripleKick[] = _("A 3-kick attack\nthat becomes more\npowerful with each\nsuccessive hit.");
+const u8 gMoveDescription_Thief[] = _("An attack that may\ntake the foe's held\nitem if the user\nisn't holding one.");
+const u8 gMoveDescription_SpiderWeb[] = _("Ensnares the foe \nwith sticky string\nso it doesn't flee\nor switch out.");
+const u8 gMoveDescription_MindReader[] = _("The user predicts\nthe foe's action to\nensure its next\nattack hits.");
+const u8 gMoveDescription_Nightmare[] = _("A sleeping foe is\nshown a nightmare\nthat inflicts some\ndamage every turn.");
+const u8 gMoveDescription_FlameWheel[] = _("The user makes a\nfiery charge at the\nfoe. It may cause\na burn.");
+const u8 gMoveDescription_Snore[] = _("An attack that can\nbe used only while\nasleep. It may\ncause flinching.");
+const u8 gMoveDescription_Curse[] = _("A move that works\ndifferently for the\nGHOST-type and all\nthe other types.");
+const u8 gMoveDescription_Flail[] = _("A desperate attack\nthat becomes more\npowerful the less\nHP the user has.");
+const u8 gMoveDescription_Conversion2[] = _("The user changes\ntype to make itself\nresistant to the\nlast attack it took.");
+const u8 gMoveDescription_Aeroblast[] = _("A vortex of air is\nshot at the foe.\nIt has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_CottonSpore[] = _("Cotton-like spores\ncling to the foe,\nsharply reducing\nits SPEED stat.");
+const u8 gMoveDescription_Reversal[] = _("An all-out attack\nthat becomes more\npowerful the less\nHP the user has.");
+const u8 gMoveDescription_Spite[] = _("A move that cuts\n2 to 5 PP from the\nmove last used by\nthe foe.");
+const u8 gMoveDescription_PowderSnow[] = _("Blasts the foe with\na snowy gust.\nIt may cause\nfreezing.");
+const u8 gMoveDescription_Protect[] = _("Enables the user to\nevade all attacks.\nIt may fail if used\nin succession.");
+const u8 gMoveDescription_MachPunch[] = _("A punch thrown at\nblinding speed.\nIt is certain to\nstrike first.");
+const u8 gMoveDescription_ScaryFace[] = _("Frightens the foe\nwith a scary face\nto sharply reduce\nits SPEED.");
+const u8 gMoveDescription_FaintAttack[] = _("The user draws up\nclose to the foe\ndisarmingly, then\nhits without fail.");
+const u8 gMoveDescription_SweetKiss[] = _("The user kisses\nthe foe with sweet\ncuteness that\ncauses confusion.");
+const u8 gMoveDescription_BellyDrum[] = _("The user maximizes\nits ATTACK stat at\nthe cost of half\nits full HP.");
+const u8 gMoveDescription_SludgeBomb[] = _("Filthy sludge is\nhurled at the foe.\nIt may poison the\ntarget.");
+const u8 gMoveDescription_MudSlap[] = _("Mud is hurled in\nthe foe's face to\ninflict damage and\nlower its accuracy.");
+const u8 gMoveDescription_Octazooka[] = _("Ink is blasted in\nthe foe's face or\neyes to damage and\nlower accuracy.");
+const u8 gMoveDescription_Spikes[] = _("A trap of spikes is\nlaid around the\nfoe's party to hurt\nfoes switching in.");
+const u8 gMoveDescription_ZapCannon[] = _("An electric blast is\nfired like a cannon\nto inflict damage\nand paralyze.");
+const u8 gMoveDescription_Foresight[] = _("Completely negates\nthe foe's efforts to\nheighten its ability\nto evade.");
+const u8 gMoveDescription_DestinyBond[] = _("If the user faints,\nthe foe delivering\nthe final hit also\nfaints.");
+const u8 gMoveDescription_PerishSong[] = _("Any battler that\nhears this faints\nin three turns\nunless it switches.");
+const u8 gMoveDescription_IcyWind[] = _("A chilling wind is\nused to attack.\nIt also lowers the\nSPEED stat.");
+const u8 gMoveDescription_Detect[] = _("Enables the user to\nevade all attacks.\nIt may fail if used\nin succession.");
+const u8 gMoveDescription_BoneRush[] = _("The user strikes\nthe foe with a bone\nin hand two to five\ntimes.");
+const u8 gMoveDescription_LockOn[] = _("The user locks on\nto the foe, making\nthe next move sure\nto hit.");
+const u8 gMoveDescription_Outrage[] = _("The user thrashes\nabout for two to\nthree turns, then\nbecomes confused.");
+const u8 gMoveDescription_Sandstorm[] = _("A 5-turn sandstorm\nthat damages all\ntypes except ROCK,\nGROUND, and STEEL.");
+const u8 gMoveDescription_GigaDrain[] = _("A harsh attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.");
+const u8 gMoveDescription_Endure[] = _("The user endures\nany hit with 1 HP\nleft. It may fail if\nused in succession.");
+const u8 gMoveDescription_Charm[] = _("The foe is charmed\nby the user's cute\nappeals, sharply\ncutting its ATTACK.");
+const u8 gMoveDescription_Rollout[] = _("A 5-turn rolling\nattack that becomes\nstronger each time\nit hits.");
+const u8 gMoveDescription_FalseSwipe[] = _("A restrained attack\nthat always leaves\nthe foe with at\nleast 1 HP.");
+const u8 gMoveDescription_Swagger[] = _("A move that makes\nthe foe confused,\nbut also sharply\nraises its ATTACK.");
+const u8 gMoveDescription_MilkDrink[] = _("Heals the user by\nup to half its full\nHP. It can be used\nto heal an ally.");
+const u8 gMoveDescription_Spark[] = _("An electrically\ncharged tackle that\nmay also paralyze\nthe foe.");
+const u8 gMoveDescription_FuryCutter[] = _("An attack that\ngrows stronger on\neach successive\nhit.");
+const u8 gMoveDescription_SteelWing[] = _("The foe is hit with\nwings of steel.\nIt may also raise\nthe user's DEFENSE.");
+const u8 gMoveDescription_MeanLook[] = _("The foe is fixed\nwith a mean look\nthat prevents it\nfrom escaping.");
+const u8 gMoveDescription_Attract[] = _("If it is the other\ngender, the foe is\nmade infatuated and\nunlikely to attack.");
+const u8 gMoveDescription_SleepTalk[] = _("While asleep, the\nuser randomly uses\none of the moves it\nknows.");
+const u8 gMoveDescription_HealBell[] = _("A soothing bell\nchimes to heal the\nstatus problems of\nall allies.");
+const u8 gMoveDescription_Return[] = _("This attack move\ngrows more powerful\nthe more the user\nlikes its TRAINER.");
+const u8 gMoveDescription_Present[] = _("The foe is given a\nbooby-trapped gift.\nIt restores HP\nsometimes, however.");
+const u8 gMoveDescription_Frustration[] = _("This attack move\ngrows more powerful\nthe less the user\nlikes its TRAINER.");
+const u8 gMoveDescription_Safeguard[] = _("It protects the\nuser's party from\nall status problems\nfor five turns.");
+const u8 gMoveDescription_PainSplit[] = _("The user adds its\nHP to the foe's HP,\nthen equally shares\nthe total HP.");
+const u8 gMoveDescription_SacredFire[] = _("A mystical and\npowerful fire\nattack that may\ninflict a burn.");
+const u8 gMoveDescription_Magnitude[] = _("A ground-shaking\nattack against all\nstanding POKéMON.\nIts power varies.");
+const u8 gMoveDescription_DynamicPunch[] = _("The foe is punched\nwith the user's full\npower. It confuses\nthe foe if it hits.");
+const u8 gMoveDescription_Megahorn[] = _("A brutal ramming\nattack delivered\nwith a tough and\nimpressive horn.");
+const u8 gMoveDescription_DragonBreath[] = _("The foe is hit with\nan incredible blast\nof breath that may\nalso paralyze.");
+const u8 gMoveDescription_BatonPass[] = _("The user switches\nout, passing along\nany stat changes\nto the new battler.");
+const u8 gMoveDescription_Encore[] = _("Makes the foe use\nthe move it last\nused repeatedly for\ntwo to six turns.");
+const u8 gMoveDescription_Pursuit[] = _("An attack move that\nworks especially\nwell on a foe that\nis switching out.");
+const u8 gMoveDescription_RapidSpin[] = _("An attack that\nfrees the user from\nBIND, WRAP, LEECH\nSEED, and SPIKES.");
+const u8 gMoveDescription_SweetScent[] = _("Allures the foe to\nreduce evasiveness.\nIt also attracts\nwild POKéMON.");
+const u8 gMoveDescription_IronTail[] = _("An attack with a\nsteel-hard tail.\nIt may lower the\nfoe's DEFENSE stat.");
+const u8 gMoveDescription_MetalClaw[] = _("The foe is attacked\nwith steel claws.\nIt may also raise\nthe user's ATTACK.");
+const u8 gMoveDescription_VitalThrow[] = _("Makes the user\nattack after the\nfoe. In return,\nit will not miss.");
+const u8 gMoveDescription_MorningSun[] = _("Restores the user's\nHP. The amount of\nHP regained varies\nwith the weather.");
+const u8 gMoveDescription_Synthesis[] = _("Restores the user's\nHP. The amount of\nHP regained varies\nwith the weather.");
+const u8 gMoveDescription_Moonlight[] = _("Restores the user's\nHP. The amount of\nHP regained varies\nwith the weather.");
+const u8 gMoveDescription_HiddenPower[] = _("An attack that\nvaries in type and\nintensity depending\non the user.");
+const u8 gMoveDescription_CrossChop[] = _("The foe is hit with\ndouble chops.\nIt has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_Twister[] = _("A vicious twister\nattacks the foe.\nIt may make the\nfoe flinch.");
+const u8 gMoveDescription_RainDance[] = _("A heavy rain falls\nfor five turns,\npowering up WATER-\ntype moves.");
+const u8 gMoveDescription_SunnyDay[] = _("The sun blazes for\nfive turns, powering\nup FIRE-type\nmoves.");
+const u8 gMoveDescription_Crunch[] = _("The foe is crunched\nwith sharp fangs.\nIt may lower the\nfoe's SP. DEF.");
+const u8 gMoveDescription_MirrorCoat[] = _("A retaliation move\nthat pays back the\nfoe's special attack\ndouble.");
+const u8 gMoveDescription_PsychUp[] = _("The user hypnotizes\nitself into copying\nany stat change\nmade by the foe.");
+const u8 gMoveDescription_ExtremeSpeed[] = _("A blindingly speedy\ncharge attack that\nalways goes before\nany other.");
+const u8 gMoveDescription_AncientPower[] = _("An ancient power is\nused to attack. It\nmay also raise all\nthe user's stats.");
+const u8 gMoveDescription_ShadowBall[] = _("A shadowy blob is\nhurled at the foe.\nMay also lower the\nfoe's SP. DEF.");
+const u8 gMoveDescription_FutureSight[] = _("Two turns after\nthis move is used,\nthe foe is attacked\npsychically.");
+const u8 gMoveDescription_RockSmash[] = _("An attack that may\nalso cut DEFENSE.\nIt can also smash\ncracked boulders.");
+const u8 gMoveDescription_Whirlpool[] = _("The foe is trapped\nin a fast, vicious\nwhirlpool for two\nto five turns.");
+const u8 gMoveDescription_BeatUp[] = _("All party POKéMON\njoin in the attack.\nThe more allies,\nthe more damage.");
+const u8 gMoveDescription_FakeOut[] = _("An attack that hits\nfirst and causes\nflinching. Usable\nonly on 1st turn.");
+const u8 gMoveDescription_Uproar[] = _("The user attacks in\nan uproar that\nprevents sleep for\ntwo to five turns.");
+const u8 gMoveDescription_Stockpile[] = _("The user charges\nup power for use\nlater. It can be\nused three times.");
+const u8 gMoveDescription_SpitUp[] = _("The power built\nusing STOCKPILE is\nreleased at once\nfor attack.");
+const u8 gMoveDescription_Swallow[] = _("The energy it built\nusing STOCKPILE is\nabsorbed to restore\nHP.");
+const u8 gMoveDescription_HeatWave[] = _("The user exhales a\nheated breath to\nattack. It may also\ninflict a burn.");
+const u8 gMoveDescription_Hail[] = _("A hailstorm lasting\nfive turns damages\nall POKéMON except\nthe ICE-type.");
+const u8 gMoveDescription_Torment[] = _("It enrages the foe,\nmaking it incapable\nof using the same\nmove successively.");
+const u8 gMoveDescription_Flatter[] = _("Flattery is used to\nconfuse the foe,\nbut its SP. ATK\nalso rises.");
+const u8 gMoveDescription_WillOWisp[] = _("A sinister, bluish\nwhite flame is shot\nat the foe to\ninflict a burn.");
+const u8 gMoveDescription_Memento[] = _("The user faints,\nbut sharply lowers\nthe foe's ATTACK\nand SP. ATK.");
+const u8 gMoveDescription_Facade[] = _("An attack that is\nboosted if user is\nburned, poisoned,\nor paralyzed.");
+const u8 gMoveDescription_FocusPunch[] = _("An attack that is\nexecuted last.\nThe user flinches\nif hit beforehand.");
+const u8 gMoveDescription_SmellingSalt[] = _("Doubly effective on\na paralyzed foe,\nbut it also cures\nthe foe's paralysis.");
+const u8 gMoveDescription_FollowMe[] = _("The user draws\nattention to itself,\nmaking foes attack\nonly the user.");
+const u8 gMoveDescription_NaturePower[] = _("An attack that\nchanges type\ndepending on the\nuser's location.");
+const u8 gMoveDescription_Charge[] = _("The user charges\npower to boost the\nELECTRIC move it\nuses next.");
+const u8 gMoveDescription_Taunt[] = _("The foe is taunted\ninto a rage that\nallows it to use\nonly attack moves.");
+const u8 gMoveDescription_HelpingHand[] = _("A move that boosts\nthe power of the\nally's attack in a\nbattle.");
+const u8 gMoveDescription_Trick[] = _("A move that tricks\nthe foe into\ntrading held items\nwith the user.");
+const u8 gMoveDescription_RolePlay[] = _("The user mimics the\nfoe completely and\ncopies the foe's\nability.");
+const u8 gMoveDescription_Wish[] = _("A self-healing move\nthat restores half\nthe full HP on the\nnext turn.");
+const u8 gMoveDescription_Assist[] = _("The user randomly\npicks and uses a\nmove of an allied\nPOKéMON.");
+const u8 gMoveDescription_Ingrain[] = _("The user lays roots\nthat restore HP on\nevery turn.\nIt can't switch out.");
+const u8 gMoveDescription_Superpower[] = _("A powerful attack,\nbut it also lowers\nthe user's ATTACK\nand DEFENSE stats.");
+const u8 gMoveDescription_MagicCoat[] = _("Reflects back the\nfoe's LEECH SEED\nand any status-\ndamaging move.");
+const u8 gMoveDescription_Recycle[] = _("A move that\nrecycles a used\nitem for use once\nmore.");
+const u8 gMoveDescription_Revenge[] = _("An attack move that\ngains in intensity if\nthe target has hurt\nthe user.");
+const u8 gMoveDescription_BrickBreak[] = _("An attack that also\nbreaks any barrier\nlike LIGHT SCREEN\nand REFLECT.");
+const u8 gMoveDescription_Yawn[] = _("A huge yawn lulls\nthe foe into falling\nasleep on the next\nturn.");
+const u8 gMoveDescription_KnockOff[] = _("Knocks down the\nfoe's held item to\nprevent its use\nduring the battle.");
+const u8 gMoveDescription_Endeavor[] = _("Gains power the\nfewer HP the user\nhas compared with\nthe foe.");
+const u8 gMoveDescription_Eruption[] = _("The higher the\nuser's HP, the more\npowerful this\nattack becomes.");
+const u8 gMoveDescription_SkillSwap[] = _("The user employs\nits psychic power\nto swap abilities\nwith the foe.");
+const u8 gMoveDescription_Imprison[] = _("Prevents foes from\nusing any move\nthat is also known\nby the user.");
+const u8 gMoveDescription_Refresh[] = _("A self-healing move\nthat cures the user\nof a poisoning,\nburn, or paralysis.");
+const u8 gMoveDescription_Grudge[] = _("If the user faints,\nthis move deletes\nthe PP of the move\nthat finished it.");
+const u8 gMoveDescription_Snatch[] = _("Steals the effects\nof the foe's\nhealing or status-\nchanging move.");
+const u8 gMoveDescription_SecretPower[] = _("An attack that may\nhave an additional\neffect that varies\nwith the terrain.");
+const u8 gMoveDescription_Dive[] = _("The user dives\nunderwater on the\nfirst turn and\nstrikes next turn.");
+const u8 gMoveDescription_ArmThrust[] = _("A quick flurry of\nstraight-arm\npunches that hit\ntwo to five times.");
+const u8 gMoveDescription_Camouflage[] = _("Alters the user's\ntype depending on\nthe location's\nterrain.");
+const u8 gMoveDescription_TailGlow[] = _("The user flashes a\nlight that sharply\nraises its SP. ATK\nstat.");
+const u8 gMoveDescription_LusterPurge[] = _("A burst of light\ninjures the foe. It\nmay also lower the\nfoe's SP. DEF.");
+const u8 gMoveDescription_MistBall[] = _("A flurry of down\nhits the foe. It\nmay also lower the\nfoe's SP. ATK.");
+const u8 gMoveDescription_FeatherDance[] = _("The foe is covered\nwith a mass of down\nthat sharply cuts\nthe ATTACK stat.");
+const u8 gMoveDescription_TeeterDance[] = _("A wobbly dance\nthat confuses all\nthe POKéMON in\nbattle.");
+const u8 gMoveDescription_BlazeKick[] = _("A fiery kick with a\nhigh critical-hit\nratio. It may also\nburn the foe.");
+const u8 gMoveDescription_MudSport[] = _("Weakens ELECTRIC-\ntype attacks while\nthe user is in the\nbattle.");
+const u8 gMoveDescription_IceBall[] = _("A 5-turn rolling\nattack that becomes\nstronger each time\nit rolls.");
+const u8 gMoveDescription_NeedleArm[] = _("An attack using\nthorny arms.\nIt may make the\nfoe flinch.");
+const u8 gMoveDescription_SlackOff[] = _("The user slacks off\nand restores its HP\nby half its full\nHP.");
+const u8 gMoveDescription_HyperVoice[] = _("The user lets loose\na horribly loud\nshout with the\npower to damage.");
+const u8 gMoveDescription_PoisonFang[] = _("The foe is bitten\nwith toxic fangs.\nIt may also badly\npoison the foe.");
+const u8 gMoveDescription_CrushClaw[] = _("The foe is attacked\nwith sharp claws.\nIt may also lower\nthe foe's DEFENSE.");
+const u8 gMoveDescription_BlastBurn[] = _("The foe is hit with\na huge explosion.\nThe user can't move\non the next turn.");
+const u8 gMoveDescription_HydroCannon[] = _("The foe is hit with\na watery cannon.\nThe user can't move\non the next turn.");
+const u8 gMoveDescription_MeteorMash[] = _("The foe is hit with\na hard, fast punch.\nIt may also raise\nthe user's ATTACK.");
+const u8 gMoveDescription_Astonish[] = _("An attack using a\nstartling shout.\nIt also may make\nthe foe flinch.");
+const u8 gMoveDescription_WeatherBall[] = _("An attack that\nvaries in power and\ntype depending on\nthe weather.");
+const u8 gMoveDescription_Aromatherapy[] = _("A soothing scent is\nreleased to heal\nall status problems\nin the user's party.");
+const u8 gMoveDescription_FakeTears[] = _("The user feigns\ncrying to sharply\nlower the foe's\nSP. DEF stat.");
+const u8 gMoveDescription_AirCutter[] = _("The foe is hit with\nrazor-like wind.\nIt has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_Overheat[] = _("An intense attack\nthat also sharply\nreduces the user's\nSP. ATK stat.");
+const u8 gMoveDescription_OdorSleuth[] = _("Completely negates\nthe foe's efforts to\nheighten its ability\nto evade.");
+const u8 gMoveDescription_RockTomb[] = _("Boulders are hurled\nat the foe. It also\nlowers the foe's\nSPEED if it hits.");
+const u8 gMoveDescription_SilverWind[] = _("The foe is attacked\nwith a silver dust.\nIt may raise all\nthe user's stats.");
+const u8 gMoveDescription_MetalSound[] = _("A horrible metallic\nscreech is used to\nsharply lower the\nfoe's SP. DEF.");
+const u8 gMoveDescription_GrassWhistle[] = _("A pleasant melody\nis played to lull\nthe foe into a deep\nsleep.");
+const u8 gMoveDescription_Tickle[] = _("The foe is made to\nlaugh, reducing its\nATTACK and DEFENSE\nstats.");
+const u8 gMoveDescription_CosmicPower[] = _("The user absorbs a\nmystic power to\nraise its DEFENSE\nand SP. DEF.");
+const u8 gMoveDescription_WaterSpout[] = _("The higher the\nuser's HP, the more\npowerful this\nattack becomes.");
+const u8 gMoveDescription_SignalBeam[] = _("The foe is hit with\na flashing beam\nthat may also\ncause confusion.");
+const u8 gMoveDescription_ShadowPunch[] = _("The user throws a\npunch from the\nshadows. It cannot\nbe evaded.");
+const u8 gMoveDescription_Extrasensory[] = _("The user attacks\nwith an odd power\nthat may make the\nfoe flinch.");
+const u8 gMoveDescription_SkyUppercut[] = _("The user attacks\nwith an uppercut\nthrown skywards\nwith force.");
+const u8 gMoveDescription_SandTomb[] = _("The foe is trapped\ninside a painful\nsandstorm for two\nto five turns.");
+const u8 gMoveDescription_SheerCold[] = _("The foe is attacked\nwith ultimate cold\nthat causes fainting\nif it hits.");
+const u8 gMoveDescription_MuddyWater[] = _("The user attacks\nwith muddy water.\nIt may also lower\nthe foe's accuracy.");
+const u8 gMoveDescription_BulletSeed[] = _("The user shoots\nseeds at the foe.\nTwo to five seeds\nare shot at once.");
+const u8 gMoveDescription_AerialAce[] = _("An extremely fast\nattack against one\ntarget. It can't be\nevaded.");
+const u8 gMoveDescription_IcicleSpear[] = _("Sharp icicles are\nfired at the foe.\nIt strikes two to\nfive times.");
+const u8 gMoveDescription_IronDefense[] = _("The user hardens\nits body's surface\nto sharply raise its\nDEFENSE stat.");
+const u8 gMoveDescription_Block[] = _("The user blocks the\nfoe's way with arms\nspread wide to\nprevent escape.");
+const u8 gMoveDescription_Howl[] = _("The user howls to\nraise its spirit and\nboost its ATTACK\nstat.");
+const u8 gMoveDescription_DragonClaw[] = _("Sharp, huge claws\nhook and slash the\nfoe quickly and\nwith great power.");
+const u8 gMoveDescription_FrenzyPlant[] = _("The foe is hit with\nan enormous branch.\nThe user can't move\non the next turn.");
+const u8 gMoveDescription_BulkUp[] = _("The user bulks up\nits body to boost\nboth its ATTACK and\nDEFENSE stats.");
+const u8 gMoveDescription_Bounce[] = _("The user bounces\non the foe on the\n2nd turn. It may\nparalyze the foe.");
+const u8 gMoveDescription_MudShot[] = _("The user attacks by\nhurling mud.\nIt also reduces the\nfoe's SPEED.");
+const u8 gMoveDescription_PoisonTail[] = _("An attack with a\nhigh critical-hit\nratio. It may also\npoison the foe.");
+const u8 gMoveDescription_Covet[] = _("A cutely executed\nattack that also\nsteals the foe's\nhold item.");
+const u8 gMoveDescription_VoltTackle[] = _("The user throws an\nelectrified tackle.\nIt hurts the user\na little.");
+const u8 gMoveDescription_MagicalLeaf[] = _("The foe is attacked\nwith a strange leaf\nthat cannot be\nevaded.");
+const u8 gMoveDescription_WaterSport[] = _("Weakens FIRE-type\nattacks while the\nuser is in the\nbattle.");
+const u8 gMoveDescription_CalmMind[] = _("The user focuses\nits mind to raise\nthe SP. ATK and\nSP. DEF stats.");
+const u8 gMoveDescription_LeafBlade[] = _("The foe is slashed\nwith a sharp leaf.\nIt has a high\ncritical-hit ratio.");
+const u8 gMoveDescription_DragonDance[] = _("A mystic, powerful\ndance that boosts\nthe user's ATTACK\nand SPEED stats.");
+const u8 gMoveDescription_RockBlast[] = _("The user hurls two\nto five hard rocks\nat the foe to\nattack.");
+const u8 gMoveDescription_ShockWave[] = _("A rapid jolt of\nelectricity strikes\nthe foe. It can't\nbe evaded.");
+const u8 gMoveDescription_WaterPulse[] = _("An attack with a\npulsing blast of\nwater. It may also\nconfuse the foe.");
+const u8 gMoveDescription_DoomDesire[] = _("A move that attacks\nthe foe with a\nblast of light two\nturns after use.");
+const u8 gMoveDescription_PsychoBoost[] = _("An intense attack\nthat also sharply\nreduces the user's\nSP. ATK stat.");
+
+const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] = {
+ [MOVE_POUND - 1] = gMoveDescription_Pound,
+ [MOVE_KARATE_CHOP - 1] = gMoveDescription_KarateChop,
+ [MOVE_DOUBLE_SLAP - 1] = gMoveDescription_DoubleSlap,
+ [MOVE_COMET_PUNCH - 1] = gMoveDescription_CometPunch,
+ [MOVE_MEGA_PUNCH - 1] = gMoveDescription_MegaPunch,
+ [MOVE_PAY_DAY - 1] = gMoveDescription_PayDay,
+ [MOVE_FIRE_PUNCH - 1] = gMoveDescription_FirePunch,
+ [MOVE_ICE_PUNCH - 1] = gMoveDescription_IcePunch,
+ [MOVE_THUNDER_PUNCH - 1] = gMoveDescription_ThunderPunch,
+ [MOVE_SCRATCH - 1] = gMoveDescription_Scratch,
+ [MOVE_VICE_GRIP - 1] = gMoveDescription_ViceGrip,
+ [MOVE_GUILLOTINE - 1] = gMoveDescription_Guillotine,
+ [MOVE_RAZOR_WIND - 1] = gMoveDescription_RazorWind,
+ [MOVE_SWORDS_DANCE - 1] = gMoveDescription_SwordsDance,
+ [MOVE_CUT - 1] = gMoveDescription_Cut,
+ [MOVE_GUST - 1] = gMoveDescription_Gust,
+ [MOVE_WING_ATTACK - 1] = gMoveDescription_WingAttack,
+ [MOVE_WHIRLWIND - 1] = gMoveDescription_Whirlwind,
+ [MOVE_FLY - 1] = gMoveDescription_Fly,
+ [MOVE_BIND - 1] = gMoveDescription_Bind,
+ [MOVE_SLAM - 1] = gMoveDescription_Slam,
+ [MOVE_VINE_WHIP - 1] = gMoveDescription_VineWhip,
+ [MOVE_STOMP - 1] = gMoveDescription_Stomp,
+ [MOVE_DOUBLE_KICK - 1] = gMoveDescription_DoubleKick,
+ [MOVE_MEGA_KICK - 1] = gMoveDescription_MegaKick,
+ [MOVE_JUMP_KICK - 1] = gMoveDescription_JumpKick,
+ [MOVE_ROLLING_KICK - 1] = gMoveDescription_RollingKick,
+ [MOVE_SAND_ATTACK - 1] = gMoveDescription_SandAttack,
+ [MOVE_HEADBUTT - 1] = gMoveDescription_Headbutt,
+ [MOVE_HORN_ATTACK - 1] = gMoveDescription_HornAttack,
+ [MOVE_FURY_ATTACK - 1] = gMoveDescription_FuryAttack,
+ [MOVE_HORN_DRILL - 1] = gMoveDescription_HornDrill,
+ [MOVE_TACKLE - 1] = gMoveDescription_Tackle,
+ [MOVE_BODY_SLAM - 1] = gMoveDescription_BodySlam,
+ [MOVE_WRAP - 1] = gMoveDescription_Wrap,
+ [MOVE_TAKE_DOWN - 1] = gMoveDescription_TakeDown,
+ [MOVE_THRASH - 1] = gMoveDescription_Thrash,
+ [MOVE_DOUBLE_EDGE - 1] = gMoveDescription_DoubleEdge,
+ [MOVE_TAIL_WHIP - 1] = gMoveDescription_TailWhip,
+ [MOVE_POISON_STING - 1] = gMoveDescription_PoisonSting,
+ [MOVE_TWINEEDLE - 1] = gMoveDescription_Twineedle,
+ [MOVE_PIN_MISSILE - 1] = gMoveDescription_PinMissile,
+ [MOVE_LEER - 1] = gMoveDescription_Leer,
+ [MOVE_BITE - 1] = gMoveDescription_Bite,
+ [MOVE_GROWL - 1] = gMoveDescription_Growl,
+ [MOVE_ROAR - 1] = gMoveDescription_Roar,
+ [MOVE_SING - 1] = gMoveDescription_Sing,
+ [MOVE_SUPERSONIC - 1] = gMoveDescription_Supersonic,
+ [MOVE_SONIC_BOOM - 1] = gMoveDescription_SonicBoom,
+ [MOVE_DISABLE - 1] = gMoveDescription_Disable,
+ [MOVE_ACID - 1] = gMoveDescription_Acid,
+ [MOVE_EMBER - 1] = gMoveDescription_Ember,
+ [MOVE_FLAMETHROWER - 1] = gMoveDescription_Flamethrower,
+ [MOVE_MIST - 1] = gMoveDescription_Mist,
+ [MOVE_WATER_GUN - 1] = gMoveDescription_WaterGun,
+ [MOVE_HYDRO_PUMP - 1] = gMoveDescription_HydroPump,
+ [MOVE_SURF - 1] = gMoveDescription_Surf,
+ [MOVE_ICE_BEAM - 1] = gMoveDescription_IceBeam,
+ [MOVE_BLIZZARD - 1] = gMoveDescription_Blizzard,
+ [MOVE_PSYBEAM - 1] = gMoveDescription_Psybeam,
+ [MOVE_BUBBLE_BEAM - 1] = gMoveDescription_BubbleBeam,
+ [MOVE_AURORA_BEAM - 1] = gMoveDescription_AuroraBeam,
+ [MOVE_HYPER_BEAM - 1] = gMoveDescription_HyperBeam,
+ [MOVE_PECK - 1] = gMoveDescription_Peck,
+ [MOVE_DRILL_PECK - 1] = gMoveDescription_DrillPeck,
+ [MOVE_SUBMISSION - 1] = gMoveDescription_Submission,
+ [MOVE_LOW_KICK - 1] = gMoveDescription_LowKick,
+ [MOVE_COUNTER - 1] = gMoveDescription_Counter,
+ [MOVE_SEISMIC_TOSS - 1] = gMoveDescription_SeismicToss,
+ [MOVE_STRENGTH - 1] = gMoveDescription_Strength,
+ [MOVE_ABSORB - 1] = gMoveDescription_Absorb,
+ [MOVE_MEGA_DRAIN - 1] = gMoveDescription_MegaDrain,
+ [MOVE_LEECH_SEED - 1] = gMoveDescription_LeechSeed,
+ [MOVE_GROWTH - 1] = gMoveDescription_Growth,
+ [MOVE_RAZOR_LEAF - 1] = gMoveDescription_RazorLeaf,
+ [MOVE_SOLAR_BEAM - 1] = gMoveDescription_SolarBeam,
+ [MOVE_POISON_POWDER - 1] = gMoveDescription_PoisonPowder,
+ [MOVE_STUN_SPORE - 1] = gMoveDescription_StunSpore,
+ [MOVE_SLEEP_POWDER - 1] = gMoveDescription_SleepPowder,
+ [MOVE_PETAL_DANCE - 1] = gMoveDescription_PetalDance,
+ [MOVE_STRING_SHOT - 1] = gMoveDescription_StringShot,
+ [MOVE_DRAGON_RAGE - 1] = gMoveDescription_DragonRage,
+ [MOVE_FIRE_SPIN - 1] = gMoveDescription_FireSpin,
+ [MOVE_THUNDER_SHOCK - 1] = gMoveDescription_ThunderShock,
+ [MOVE_THUNDERBOLT - 1] = gMoveDescription_Thunderbolt,
+ [MOVE_THUNDER_WAVE - 1] = gMoveDescription_ThunderWave,
+ [MOVE_THUNDER - 1] = gMoveDescription_Thunder,
+ [MOVE_ROCK_THROW - 1] = gMoveDescription_RockThrow,
+ [MOVE_EARTHQUAKE - 1] = gMoveDescription_Earthquake,
+ [MOVE_FISSURE - 1] = gMoveDescription_Fissure,
+ [MOVE_DIG - 1] = gMoveDescription_Dig,
+ [MOVE_TOXIC - 1] = gMoveDescription_Toxic,
+ [MOVE_CONFUSION - 1] = gMoveDescription_Confusion,
+ [MOVE_PSYCHIC - 1] = gMoveDescription_Psychic,
+ [MOVE_HYPNOSIS - 1] = gMoveDescription_Hypnosis,
+ [MOVE_MEDITATE - 1] = gMoveDescription_Meditate,
+ [MOVE_AGILITY - 1] = gMoveDescription_Agility,
+ [MOVE_QUICK_ATTACK - 1] = gMoveDescription_QuickAttack,
+ [MOVE_RAGE - 1] = gMoveDescription_Rage,
+ [MOVE_TELEPORT - 1] = gMoveDescription_Teleport,
+ [MOVE_NIGHT_SHADE - 1] = gMoveDescription_NightShade,
+ [MOVE_MIMIC - 1] = gMoveDescription_Mimic,
+ [MOVE_SCREECH - 1] = gMoveDescription_Screech,
+ [MOVE_DOUBLE_TEAM - 1] = gMoveDescription_DoubleTeam,
+ [MOVE_RECOVER - 1] = gMoveDescription_Recover,
+ [MOVE_HARDEN - 1] = gMoveDescription_Harden,
+ [MOVE_MINIMIZE - 1] = gMoveDescription_Minimize,
+ [MOVE_SMOKESCREEN - 1] = gMoveDescription_Smokescreen,
+ [MOVE_CONFUSE_RAY - 1] = gMoveDescription_ConfuseRay,
+ [MOVE_WITHDRAW - 1] = gMoveDescription_Withdraw,
+ [MOVE_DEFENSE_CURL - 1] = gMoveDescription_DefenseCurl,
+ [MOVE_BARRIER - 1] = gMoveDescription_Barrier,
+ [MOVE_LIGHT_SCREEN - 1] = gMoveDescription_LightScreen,
+ [MOVE_HAZE - 1] = gMoveDescription_Haze,
+ [MOVE_REFLECT - 1] = gMoveDescription_Reflect,
+ [MOVE_FOCUS_ENERGY - 1] = gMoveDescription_FocusEnergy,
+ [MOVE_BIDE - 1] = gMoveDescription_Bide,
+ [MOVE_METRONOME - 1] = gMoveDescription_Metronome,
+ [MOVE_MIRROR_MOVE - 1] = gMoveDescription_MirrorMove,
+ [MOVE_SELF_DESTRUCT - 1] = gMoveDescription_SelfDestruct,
+ [MOVE_EGG_BOMB - 1] = gMoveDescription_EggBomb,
+ [MOVE_LICK - 1] = gMoveDescription_Lick,
+ [MOVE_SMOG - 1] = gMoveDescription_Smog,
+ [MOVE_SLUDGE - 1] = gMoveDescription_Sludge,
+ [MOVE_BONE_CLUB - 1] = gMoveDescription_BoneClub,
+ [MOVE_FIRE_BLAST - 1] = gMoveDescription_FireBlast,
+ [MOVE_WATERFALL - 1] = gMoveDescription_Waterfall,
+ [MOVE_CLAMP - 1] = gMoveDescription_Clamp,
+ [MOVE_SWIFT - 1] = gMoveDescription_Swift,
+ [MOVE_SKULL_BASH - 1] = gMoveDescription_SkullBash,
+ [MOVE_SPIKE_CANNON - 1] = gMoveDescription_SpikeCannon,
+ [MOVE_CONSTRICT - 1] = gMoveDescription_Constrict,
+ [MOVE_AMNESIA - 1] = gMoveDescription_Amnesia,
+ [MOVE_KINESIS - 1] = gMoveDescription_Kinesis,
+ [MOVE_SOFT_BOILED - 1] = gMoveDescription_SoftBoiled,
+ [MOVE_HI_JUMP_KICK - 1] = gMoveDescription_HiJumpKick,
+ [MOVE_GLARE - 1] = gMoveDescription_Glare,
+ [MOVE_DREAM_EATER - 1] = gMoveDescription_DreamEater,
+ [MOVE_POISON_GAS - 1] = gMoveDescription_PoisonGas,
+ [MOVE_BARRAGE - 1] = gMoveDescription_Barrage,
+ [MOVE_LEECH_LIFE - 1] = gMoveDescription_LeechLife,
+ [MOVE_LOVELY_KISS - 1] = gMoveDescription_LovelyKiss,
+ [MOVE_SKY_ATTACK - 1] = gMoveDescription_SkyAttack,
+ [MOVE_TRANSFORM - 1] = gMoveDescription_Transform,
+ [MOVE_BUBBLE - 1] = gMoveDescription_Bubble,
+ [MOVE_DIZZY_PUNCH - 1] = gMoveDescription_DizzyPunch,
+ [MOVE_SPORE - 1] = gMoveDescription_Spore,
+ [MOVE_FLASH - 1] = gMoveDescription_Flash,
+ [MOVE_PSYWAVE - 1] = gMoveDescription_Psywave,
+ [MOVE_SPLASH - 1] = gMoveDescription_Splash,
+ [MOVE_ACID_ARMOR - 1] = gMoveDescription_AcidArmor,
+ [MOVE_CRABHAMMER - 1] = gMoveDescription_Crabhammer,
+ [MOVE_EXPLOSION - 1] = gMoveDescription_Explosion,
+ [MOVE_FURY_SWIPES - 1] = gMoveDescription_FurySwipes,
+ [MOVE_BONEMERANG - 1] = gMoveDescription_Bonemerang,
+ [MOVE_REST - 1] = gMoveDescription_Rest,
+ [MOVE_ROCK_SLIDE - 1] = gMoveDescription_RockSlide,
+ [MOVE_HYPER_FANG - 1] = gMoveDescription_HyperFang,
+ [MOVE_SHARPEN - 1] = gMoveDescription_Sharpen,
+ [MOVE_CONVERSION - 1] = gMoveDescription_Conversion,
+ [MOVE_TRI_ATTACK - 1] = gMoveDescription_TriAttack,
+ [MOVE_SUPER_FANG - 1] = gMoveDescription_SuperFang,
+ [MOVE_SLASH - 1] = gMoveDescription_Slash,
+ [MOVE_SUBSTITUTE - 1] = gMoveDescription_Substitute,
+ [MOVE_STRUGGLE - 1] = gMoveDescription_Struggle,
+ [MOVE_SKETCH - 1] = gMoveDescription_Sketch,
+ [MOVE_TRIPLE_KICK - 1] = gMoveDescription_TripleKick,
+ [MOVE_THIEF - 1] = gMoveDescription_Thief,
+ [MOVE_SPIDER_WEB - 1] = gMoveDescription_SpiderWeb,
+ [MOVE_MIND_READER - 1] = gMoveDescription_MindReader,
+ [MOVE_NIGHTMARE - 1] = gMoveDescription_Nightmare,
+ [MOVE_FLAME_WHEEL - 1] = gMoveDescription_FlameWheel,
+ [MOVE_SNORE - 1] = gMoveDescription_Snore,
+ [MOVE_CURSE - 1] = gMoveDescription_Curse,
+ [MOVE_FLAIL - 1] = gMoveDescription_Flail,
+ [MOVE_CONVERSION_2 - 1] = gMoveDescription_Conversion2,
+ [MOVE_AEROBLAST - 1] = gMoveDescription_Aeroblast,
+ [MOVE_COTTON_SPORE - 1] = gMoveDescription_CottonSpore,
+ [MOVE_REVERSAL - 1] = gMoveDescription_Reversal,
+ [MOVE_SPITE - 1] = gMoveDescription_Spite,
+ [MOVE_POWDER_SNOW - 1] = gMoveDescription_PowderSnow,
+ [MOVE_PROTECT - 1] = gMoveDescription_Protect,
+ [MOVE_MACH_PUNCH - 1] = gMoveDescription_MachPunch,
+ [MOVE_SCARY_FACE - 1] = gMoveDescription_ScaryFace,
+ [MOVE_FAINT_ATTACK - 1] = gMoveDescription_FaintAttack,
+ [MOVE_SWEET_KISS - 1] = gMoveDescription_SweetKiss,
+ [MOVE_BELLY_DRUM - 1] = gMoveDescription_BellyDrum,
+ [MOVE_SLUDGE_BOMB - 1] = gMoveDescription_SludgeBomb,
+ [MOVE_MUD_SLAP - 1] = gMoveDescription_MudSlap,
+ [MOVE_OCTAZOOKA - 1] = gMoveDescription_Octazooka,
+ [MOVE_SPIKES - 1] = gMoveDescription_Spikes,
+ [MOVE_ZAP_CANNON - 1] = gMoveDescription_ZapCannon,
+ [MOVE_FORESIGHT - 1] = gMoveDescription_Foresight,
+ [MOVE_DESTINY_BOND - 1] = gMoveDescription_DestinyBond,
+ [MOVE_PERISH_SONG - 1] = gMoveDescription_PerishSong,
+ [MOVE_ICY_WIND - 1] = gMoveDescription_IcyWind,
+ [MOVE_DETECT - 1] = gMoveDescription_Detect,
+ [MOVE_BONE_RUSH - 1] = gMoveDescription_BoneRush,
+ [MOVE_LOCK_ON - 1] = gMoveDescription_LockOn,
+ [MOVE_OUTRAGE - 1] = gMoveDescription_Outrage,
+ [MOVE_SANDSTORM - 1] = gMoveDescription_Sandstorm,
+ [MOVE_GIGA_DRAIN - 1] = gMoveDescription_GigaDrain,
+ [MOVE_ENDURE - 1] = gMoveDescription_Endure,
+ [MOVE_CHARM - 1] = gMoveDescription_Charm,
+ [MOVE_ROLLOUT - 1] = gMoveDescription_Rollout,
+ [MOVE_FALSE_SWIPE - 1] = gMoveDescription_FalseSwipe,
+ [MOVE_SWAGGER - 1] = gMoveDescription_Swagger,
+ [MOVE_MILK_DRINK - 1] = gMoveDescription_MilkDrink,
+ [MOVE_SPARK - 1] = gMoveDescription_Spark,
+ [MOVE_FURY_CUTTER - 1] = gMoveDescription_FuryCutter,
+ [MOVE_STEEL_WING - 1] = gMoveDescription_SteelWing,
+ [MOVE_MEAN_LOOK - 1] = gMoveDescription_MeanLook,
+ [MOVE_ATTRACT - 1] = gMoveDescription_Attract,
+ [MOVE_SLEEP_TALK - 1] = gMoveDescription_SleepTalk,
+ [MOVE_HEAL_BELL - 1] = gMoveDescription_HealBell,
+ [MOVE_RETURN - 1] = gMoveDescription_Return,
+ [MOVE_PRESENT - 1] = gMoveDescription_Present,
+ [MOVE_FRUSTRATION - 1] = gMoveDescription_Frustration,
+ [MOVE_SAFEGUARD - 1] = gMoveDescription_Safeguard,
+ [MOVE_PAIN_SPLIT - 1] = gMoveDescription_PainSplit,
+ [MOVE_SACRED_FIRE - 1] = gMoveDescription_SacredFire,
+ [MOVE_MAGNITUDE - 1] = gMoveDescription_Magnitude,
+ [MOVE_DYNAMIC_PUNCH - 1] = gMoveDescription_DynamicPunch,
+ [MOVE_MEGAHORN - 1] = gMoveDescription_Megahorn,
+ [MOVE_DRAGON_BREATH - 1] = gMoveDescription_DragonBreath,
+ [MOVE_BATON_PASS - 1] = gMoveDescription_BatonPass,
+ [MOVE_ENCORE - 1] = gMoveDescription_Encore,
+ [MOVE_PURSUIT - 1] = gMoveDescription_Pursuit,
+ [MOVE_RAPID_SPIN - 1] = gMoveDescription_RapidSpin,
+ [MOVE_SWEET_SCENT - 1] = gMoveDescription_SweetScent,
+ [MOVE_IRON_TAIL - 1] = gMoveDescription_IronTail,
+ [MOVE_METAL_CLAW - 1] = gMoveDescription_MetalClaw,
+ [MOVE_VITAL_THROW - 1] = gMoveDescription_VitalThrow,
+ [MOVE_MORNING_SUN - 1] = gMoveDescription_MorningSun,
+ [MOVE_SYNTHESIS - 1] = gMoveDescription_Synthesis,
+ [MOVE_MOONLIGHT - 1] = gMoveDescription_Moonlight,
+ [MOVE_HIDDEN_POWER - 1] = gMoveDescription_HiddenPower,
+ [MOVE_CROSS_CHOP - 1] = gMoveDescription_CrossChop,
+ [MOVE_TWISTER - 1] = gMoveDescription_Twister,
+ [MOVE_RAIN_DANCE - 1] = gMoveDescription_RainDance,
+ [MOVE_SUNNY_DAY - 1] = gMoveDescription_SunnyDay,
+ [MOVE_CRUNCH - 1] = gMoveDescription_Crunch,
+ [MOVE_MIRROR_COAT - 1] = gMoveDescription_MirrorCoat,
+ [MOVE_PSYCH_UP - 1] = gMoveDescription_PsychUp,
+ [MOVE_EXTREME_SPEED - 1] = gMoveDescription_ExtremeSpeed,
+ [MOVE_ANCIENT_POWER - 1] = gMoveDescription_AncientPower,
+ [MOVE_SHADOW_BALL - 1] = gMoveDescription_ShadowBall,
+ [MOVE_FUTURE_SIGHT - 1] = gMoveDescription_FutureSight,
+ [MOVE_ROCK_SMASH - 1] = gMoveDescription_RockSmash,
+ [MOVE_WHIRLPOOL - 1] = gMoveDescription_Whirlpool,
+ [MOVE_BEAT_UP - 1] = gMoveDescription_BeatUp,
+ [MOVE_FAKE_OUT - 1] = gMoveDescription_FakeOut,
+ [MOVE_UPROAR - 1] = gMoveDescription_Uproar,
+ [MOVE_STOCKPILE - 1] = gMoveDescription_Stockpile,
+ [MOVE_SPIT_UP - 1] = gMoveDescription_SpitUp,
+ [MOVE_SWALLOW - 1] = gMoveDescription_Swallow,
+ [MOVE_HEAT_WAVE - 1] = gMoveDescription_HeatWave,
+ [MOVE_HAIL - 1] = gMoveDescription_Hail,
+ [MOVE_TORMENT - 1] = gMoveDescription_Torment,
+ [MOVE_FLATTER - 1] = gMoveDescription_Flatter,
+ [MOVE_WILL_O_WISP - 1] = gMoveDescription_WillOWisp,
+ [MOVE_MEMENTO - 1] = gMoveDescription_Memento,
+ [MOVE_FACADE - 1] = gMoveDescription_Facade,
+ [MOVE_FOCUS_PUNCH - 1] = gMoveDescription_FocusPunch,
+ [MOVE_SMELLING_SALT - 1] = gMoveDescription_SmellingSalt,
+ [MOVE_FOLLOW_ME - 1] = gMoveDescription_FollowMe,
+ [MOVE_NATURE_POWER - 1] = gMoveDescription_NaturePower,
+ [MOVE_CHARGE - 1] = gMoveDescription_Charge,
+ [MOVE_TAUNT - 1] = gMoveDescription_Taunt,
+ [MOVE_HELPING_HAND - 1] = gMoveDescription_HelpingHand,
+ [MOVE_TRICK - 1] = gMoveDescription_Trick,
+ [MOVE_ROLE_PLAY - 1] = gMoveDescription_RolePlay,
+ [MOVE_WISH - 1] = gMoveDescription_Wish,
+ [MOVE_ASSIST - 1] = gMoveDescription_Assist,
+ [MOVE_INGRAIN - 1] = gMoveDescription_Ingrain,
+ [MOVE_SUPERPOWER - 1] = gMoveDescription_Superpower,
+ [MOVE_MAGIC_COAT - 1] = gMoveDescription_MagicCoat,
+ [MOVE_RECYCLE - 1] = gMoveDescription_Recycle,
+ [MOVE_REVENGE - 1] = gMoveDescription_Revenge,
+ [MOVE_BRICK_BREAK - 1] = gMoveDescription_BrickBreak,
+ [MOVE_YAWN - 1] = gMoveDescription_Yawn,
+ [MOVE_KNOCK_OFF - 1] = gMoveDescription_KnockOff,
+ [MOVE_ENDEAVOR - 1] = gMoveDescription_Endeavor,
+ [MOVE_ERUPTION - 1] = gMoveDescription_Eruption,
+ [MOVE_SKILL_SWAP - 1] = gMoveDescription_SkillSwap,
+ [MOVE_IMPRISON - 1] = gMoveDescription_Imprison,
+ [MOVE_REFRESH - 1] = gMoveDescription_Refresh,
+ [MOVE_GRUDGE - 1] = gMoveDescription_Grudge,
+ [MOVE_SNATCH - 1] = gMoveDescription_Snatch,
+ [MOVE_SECRET_POWER - 1] = gMoveDescription_SecretPower,
+ [MOVE_DIVE - 1] = gMoveDescription_Dive,
+ [MOVE_ARM_THRUST - 1] = gMoveDescription_ArmThrust,
+ [MOVE_CAMOUFLAGE - 1] = gMoveDescription_Camouflage,
+ [MOVE_TAIL_GLOW - 1] = gMoveDescription_TailGlow,
+ [MOVE_LUSTER_PURGE - 1] = gMoveDescription_LusterPurge,
+ [MOVE_MIST_BALL - 1] = gMoveDescription_MistBall,
+ [MOVE_FEATHER_DANCE - 1] = gMoveDescription_FeatherDance,
+ [MOVE_TEETER_DANCE - 1] = gMoveDescription_TeeterDance,
+ [MOVE_BLAZE_KICK - 1] = gMoveDescription_BlazeKick,
+ [MOVE_MUD_SPORT - 1] = gMoveDescription_MudSport,
+ [MOVE_ICE_BALL - 1] = gMoveDescription_IceBall,
+ [MOVE_NEEDLE_ARM - 1] = gMoveDescription_NeedleArm,
+ [MOVE_SLACK_OFF - 1] = gMoveDescription_SlackOff,
+ [MOVE_HYPER_VOICE - 1] = gMoveDescription_HyperVoice,
+ [MOVE_POISON_FANG - 1] = gMoveDescription_PoisonFang,
+ [MOVE_CRUSH_CLAW - 1] = gMoveDescription_CrushClaw,
+ [MOVE_BLAST_BURN - 1] = gMoveDescription_BlastBurn,
+ [MOVE_HYDRO_CANNON - 1] = gMoveDescription_HydroCannon,
+ [MOVE_METEOR_MASH - 1] = gMoveDescription_MeteorMash,
+ [MOVE_ASTONISH - 1] = gMoveDescription_Astonish,
+ [MOVE_WEATHER_BALL - 1] = gMoveDescription_WeatherBall,
+ [MOVE_AROMATHERAPY - 1] = gMoveDescription_Aromatherapy,
+ [MOVE_FAKE_TEARS - 1] = gMoveDescription_FakeTears,
+ [MOVE_AIR_CUTTER - 1] = gMoveDescription_AirCutter,
+ [MOVE_OVERHEAT - 1] = gMoveDescription_Overheat,
+ [MOVE_ODOR_SLEUTH - 1] = gMoveDescription_OdorSleuth,
+ [MOVE_ROCK_TOMB - 1] = gMoveDescription_RockTomb,
+ [MOVE_SILVER_WIND - 1] = gMoveDescription_SilverWind,
+ [MOVE_METAL_SOUND - 1] = gMoveDescription_MetalSound,
+ [MOVE_GRASS_WHISTLE - 1] = gMoveDescription_GrassWhistle,
+ [MOVE_TICKLE - 1] = gMoveDescription_Tickle,
+ [MOVE_COSMIC_POWER - 1] = gMoveDescription_CosmicPower,
+ [MOVE_WATER_SPOUT - 1] = gMoveDescription_WaterSpout,
+ [MOVE_SIGNAL_BEAM - 1] = gMoveDescription_SignalBeam,
+ [MOVE_SHADOW_PUNCH - 1] = gMoveDescription_ShadowPunch,
+ [MOVE_EXTRASENSORY - 1] = gMoveDescription_Extrasensory,
+ [MOVE_SKY_UPPERCUT - 1] = gMoveDescription_SkyUppercut,
+ [MOVE_SAND_TOMB - 1] = gMoveDescription_SandTomb,
+ [MOVE_SHEER_COLD - 1] = gMoveDescription_SheerCold,
+ [MOVE_MUDDY_WATER - 1] = gMoveDescription_MuddyWater,
+ [MOVE_BULLET_SEED - 1] = gMoveDescription_BulletSeed,
+ [MOVE_AERIAL_ACE - 1] = gMoveDescription_AerialAce,
+ [MOVE_ICICLE_SPEAR - 1] = gMoveDescription_IcicleSpear,
+ [MOVE_IRON_DEFENSE - 1] = gMoveDescription_IronDefense,
+ [MOVE_BLOCK - 1] = gMoveDescription_Block,
+ [MOVE_HOWL - 1] = gMoveDescription_Howl,
+ [MOVE_DRAGON_CLAW - 1] = gMoveDescription_DragonClaw,
+ [MOVE_FRENZY_PLANT - 1] = gMoveDescription_FrenzyPlant,
+ [MOVE_BULK_UP - 1] = gMoveDescription_BulkUp,
+ [MOVE_BOUNCE - 1] = gMoveDescription_Bounce,
+ [MOVE_MUD_SHOT - 1] = gMoveDescription_MudShot,
+ [MOVE_POISON_TAIL - 1] = gMoveDescription_PoisonTail,
+ [MOVE_COVET - 1] = gMoveDescription_Covet,
+ [MOVE_VOLT_TACKLE - 1] = gMoveDescription_VoltTackle,
+ [MOVE_MAGICAL_LEAF - 1] = gMoveDescription_MagicalLeaf,
+ [MOVE_WATER_SPORT - 1] = gMoveDescription_WaterSport,
+ [MOVE_CALM_MIND - 1] = gMoveDescription_CalmMind,
+ [MOVE_LEAF_BLADE - 1] = gMoveDescription_LeafBlade,
+ [MOVE_DRAGON_DANCE - 1] = gMoveDescription_DragonDance,
+ [MOVE_ROCK_BLAST - 1] = gMoveDescription_RockBlast,
+ [MOVE_SHOCK_WAVE - 1] = gMoveDescription_ShockWave,
+ [MOVE_WATER_PULSE - 1] = gMoveDescription_WaterPulse,
+ [MOVE_DOOM_DESIRE - 1] = gMoveDescription_DoomDesire,
+ [MOVE_PSYCHO_BOOST - 1] = gMoveDescription_PsychoBoost,
+};
diff --git a/src/overworld.c b/src/overworld.c
index 2083b7578..66ca5e336 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -151,7 +151,7 @@ static void InitOverworldGraphicsRegisters(void);
static void sub_8057024(bool32 a0);
static void sub_8057074(void);
static void mli4_mapscripts_and_other(void);
-static void sub_8057100(void);
+static void ReloadObjectsAndRunReturnToFieldMapScript(void);
static void sub_8057114(void);
static void SetCameraToTrackGuestPlayer(void);
static void SetCameraToTrackGuestPlayer_2(void);
@@ -1933,7 +1933,7 @@ static bool32 sub_8056CD8(u8 *state)
InitOverworldBgs();
QuestLog_InitPalettesBackup();
sub_8057024(FALSE);
- sub_8057100();
+ ReloadObjectsAndRunReturnToFieldMapScript();
sub_8057114();
(*state)++;
break;
@@ -1971,7 +1971,7 @@ static bool32 map_loading_iteration_2_link(u8 *state)
break;
case 2:
CreateLinkPlayerSprites();
- sub_8057100();
+ ReloadObjectsAndRunReturnToFieldMapScript();
SetCameraToTrackGuestPlayer_2();
SetHelpContextForMap();
(*state)++;
@@ -2141,9 +2141,9 @@ static void mli4_mapscripts_and_other(void)
TryRunOnWarpIntoMapScript();
}
-static void sub_8057100(void)
+static void ReloadObjectsAndRunReturnToFieldMapScript(void)
{
- sub_805EDF0(0, 0);
+ ReloadMapObjectsWithOffset(0, 0);
RunOnReturnToFieldMapScript();
}
@@ -2267,7 +2267,7 @@ static bool32 LoadMap_QLPlayback(u8 *state)
(*state)++;
break;
case 3:
- sub_8057100();
+ ReloadObjectsAndRunReturnToFieldMapScript();
sub_8057114();
(*state)++;
break;
diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c
index dc8968a5f..c4749055d 100644
--- a/src/pokedex_screen.c
+++ b/src/pokedex_screen.c
@@ -1187,10 +1187,10 @@ static void MoveCursorFunc_DexModeSelect(s32 itemIndex, bool8 onInit, struct Lis
static void ItemPrintFunc_DexModeSelect(u8 windowId, s32 itemId, u8 y)
{
u32 itemId_ = itemId;
- if (itemId_ > 8 || sPokedexScreenData->unlockedCategories & (1 << itemId_))
- ListMenuOverrideSetColors(1, 0, 3);
+ if (itemId_ >= DEX_CATEGORY_COUNT || sPokedexScreenData->unlockedCategories & (1 << itemId_))
+ ListMenuOverrideSetColors(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY);
else
- ListMenuOverrideSetColors(10, 0, 11);
+ ListMenuOverrideSetColors(TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_2);
}
static void Task_DexScreen_NumericalOrder(u8 taskId)
diff --git a/src/pokemon.c b/src/pokemon.c
index c59fd226e..350395763 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -3770,7 +3770,7 @@ static void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord
}
}
gBattleTypeFlags = 8;
- gTrainerBattleOpponent_A = 0x400;
+ gTrainerBattleOpponent_A = SECRET_BASE_OPPONENT;
}
u8 GetSecretBaseTrainerPicIndex(void)
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 69acf7b7b..224da3ef4 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1106,7 +1106,7 @@ bool8 ScrCmd_showobject_at(struct ScriptContext * ctx)
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
- npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 0);
+ ShowOrHideObjectByLocalIdAndMap(localId, mapNum, mapGroup, 0);
return FALSE;
}
@@ -1116,7 +1116,7 @@ bool8 ScrCmd_hideobject_at(struct ScriptContext * ctx)
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
- npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 1);
+ ShowOrHideObjectByLocalIdAndMap(localId, mapNum, mapGroup, 1);
return FALSE;
}
@@ -1127,7 +1127,7 @@ bool8 ScrCmd_setobjectpriority(struct ScriptContext * ctx)
u8 mapNum = ScriptReadByte(ctx);
u8 priority = ScriptReadByte(ctx);
- sub_805F3A8(localId, mapNum, mapGroup, priority + 83);
+ SetObjectPriorityByLocalIdAndMap(localId, mapNum, mapGroup, priority + 83);
return FALSE;
}
@@ -1137,7 +1137,7 @@ bool8 ScrCmd_resetobjectpriority(struct ScriptContext * ctx)
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
- sub_805F400(localId, mapNum, mapGroup);
+ UnfixObjectPriorityByLocalIdAndMap(localId, mapNum, mapGroup);
return FALSE;
}
diff --git a/src/sprite.c b/src/sprite.c
index a71edce1c..af03aaf11 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -11,17 +11,17 @@
(sSpriteTileRanges + 1)[index * 2] = count; \
}
-#define ALLOC_SPRITE_TILE(n) \
-{ \
- gSpriteTileAllocBitmap[(n) / 8] |= (1 << ((n) % 8)); \
+#define ALLOC_SPRITE_TILE(n) \
+{ \
+ gSpriteTileAllocBitmap[(n) >> 3] |= (1 << ((n) & 7)); \
}
-#define FREE_SPRITE_TILE(n) \
-{ \
- gSpriteTileAllocBitmap[(n) / 8] &= ~(1 << ((n) % 8)); \
+#define FREE_SPRITE_TILE(n) \
+{ \
+ gSpriteTileAllocBitmap[(n) >> 3] &= ~(1 << ((n) & 7)); \
}
-#define SPRITE_TILE_IS_ALLOCATED(n) ((gSpriteTileAllocBitmap[(n) / 8] >> ((n) % 8)) & 1)
+#define SPRITE_TILE_IS_ALLOCATED(n) ((gSpriteTileAllocBitmap[(n) >> 3] >> ((n) & 7)) & 1)
struct SpriteCopyRequest
@@ -782,17 +782,17 @@ u8 SpriteTileAllocBitmapOp(u16 bit, u8 op)
u8 val = bit % 8;
u8 retVal = 0;
- if (op == 0)
+ if (op == 0) // clear
{
val = ~(1 << val);
gSpriteTileAllocBitmap[index] &= val;
}
- else if (op == 1)
+ else if (op == 1) // set
{
val = (1 << val);
gSpriteTileAllocBitmap[index] |= val;
}
- else
+ else // check
{
retVal = 1 << shift;
retVal &= gSpriteTileAllocBitmap[index];
@@ -801,7 +801,7 @@ u8 SpriteTileAllocBitmapOp(u16 bit, u8 op)
return retVal;
}
-void sub_80075C0(struct Sprite *sprite)
+void FreeSpriteTilesIfNotUsingSheet(struct Sprite *sprite)
{
if (!sprite->usingSheet)
{
@@ -809,7 +809,7 @@ void sub_80075C0(struct Sprite *sprite)
int end = (sprite->images[0].size / TILE_SIZE_4BPP) + sprite->oam.tileNum;
for (i = sprite->oam.tileNum; i < end; i++)
- gSpriteTileAllocBitmap[i >> 3] &= ~(1 << (i & 7));
+ FREE_SPRITE_TILE(i);
}
}
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index 0ad510721..15c1e094c 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -25,6 +25,7 @@
#include "graphics.h"
#include "fieldmap.h"
#include "strings.h"
+#include "constants/field_effects.h"
struct TeachyTvCtrlBlk
{
@@ -530,7 +531,7 @@ static void TeachyTvLoadGraphic(void)
LZDecompressWram(gUnknown_8E86D6C, sResources->buffer4);
LoadCompressedPalette(gUnknown_8E86F98, 0, 0x80);
LoadPalette(&src, 0, sizeof(src));
- LoadSpritePalette(&gUnknown_83A5348);
+ LoadSpritePalette(&gSpritePalette_GeneralFieldEffect1);
TeachyTvLoadBg3Map(sResources->buffer3);
}
@@ -1107,7 +1108,7 @@ static void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority,
if (sResources->grassAnimDisabled != 1 && TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(x - 0x10, y))
{
- spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[4], 0, 0, subpriority);
+ spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TALL_GRASS], 0, 0, subpriority);
obj = &gSprites[spriteId];
obj->pos2.x = x;
obj->pos2.y = y + 8;
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index b39782297..fe45a2938 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -19,13 +19,13 @@
#include "constants/event_objects.h"
#include "constants/trainer_tower.h"
-#define CURR_FLOOR sTrainerTowerState->unk_0004.floors[sTrainerTowerState->floorIdx]
+#define CURR_FLOOR sTrainerTowerState->data.floors[sTrainerTowerState->floorIdx]
#define TRAINER_TOWER gSaveBlock1Ptr->trainerTower[gSaveBlock1Ptr->towerChallengeId]
-struct UnkStruct_203F458
+struct TrainerTowerState
{
/* 0x0000 */ u8 floorIdx;
- /* 0x0004 */ struct EReaderTrainerTowerSet unk_0004;
+ /* 0x0004 */ struct EReaderTrainerTowerSet data;
};
struct TrainerTowerOpponent
@@ -37,7 +37,7 @@ struct TrainerTowerOpponent
/* 0x30 */ u16 speechLose2[6];
/* 0x3C */ u8 battleType;
/* 0x3D */ u8 facilityClass;
- /* 0x3E */ u8 gender;
+ /* 0x3E */ u8 textColor;
};
struct SinglesTrainerInfo
@@ -62,7 +62,7 @@ struct TrainerEncounterMusicPairs
u8 musicId;
};
-static EWRAM_DATA struct UnkStruct_203F458 * sTrainerTowerState = NULL;
+static EWRAM_DATA struct TrainerTowerState * sTrainerTowerState = NULL;
static EWRAM_DATA struct TrainerTowerOpponent * sTrainerTowerOpponent = NULL;
static EWRAM_DATA u8 sUnused_203F460 = 0;
@@ -310,8 +310,15 @@ static const struct TrainerEncounterMusicPairs sTrainerEncounterMusicLUT[105] =
};
static const struct WindowTemplate sTimeBoardWindowTemplate[] = {
- {0, 3, 1, 27, 18, 15, 0x001},
- DUMMY_WIN_TEMPLATE
+ {
+ .bg = 0,
+ .tilemapLeft = 3,
+ .tilemapTop = 1,
+ .width = 27,
+ .height = 18,
+ .paletteNum = 15,
+ .baseBlock = 0x001
+ }, DUMMY_WIN_TEMPLATE
};
static const u32 sUnused_847A228 = 0x70;
@@ -389,41 +396,44 @@ static const u16 sTrainerTowerEncounterMusic[] = {
[TRAINER_ENCOUNTER_MUSIC_RICH] = MUS_ENCOUNTER_BOY
};
-static const u8 sSingleBattleChallengeMonIdxs[][2] = {
- {0x00, 0x02},
- {0x01, 0x03},
- {0x02, 0x04},
- {0x03, 0x05},
- {0x04, 0x01},
- {0x05, 0x02},
- {0x00, 0x03},
- {0x01, 0x04}
+// The trainer only uses two Pokemon from the encoded pool, based on the current floor
+static const u8 sSingleBattleChallengeMonIdxs[MAX_TRAINER_TOWER_FLOORS][2] = {
+ {0, 2},
+ {1, 3},
+ {2, 4},
+ {3, 5},
+ {4, 1},
+ {5, 2},
+ {0, 3},
+ {1, 4}
};
-static const u8 sDoubleBattleChallengeMonIdxs[][2] = {
- {0x00, 0x01},
- {0x01, 0x03},
- {0x02, 0x00},
- {0x03, 0x04},
- {0x04, 0x02},
- {0x05, 0x02},
- {0x00, 0x03},
- {0x01, 0x05}
+// Each trainer only uses one Pokemon from the encoded pool, based on the current floor
+static const u8 sDoubleBattleChallengeMonIdxs[MAX_TRAINER_TOWER_FLOORS][2] = {
+ {0, 1},
+ {1, 3},
+ {2, 0},
+ {3, 4},
+ {4, 2},
+ {5, 2},
+ {0, 3},
+ {1, 5}
};
-static const u8 sKnockoutChallengeMonIdxs[][3] = {
- {0x00, 0x02, 0x04},
- {0x01, 0x03, 0x05},
- {0x02, 0x03, 0x01},
- {0x03, 0x04, 0x00},
- {0x04, 0x01, 0x02},
- {0x05, 0x00, 0x03},
- {0x00, 0x05, 0x02},
- {0x01, 0x04, 0x05}
+// Each trainer only uses one Pokemon from the encoded pool, based on the current floor
+static const u8 sKnockoutChallengeMonIdxs[MAX_TRAINER_TOWER_FLOORS][3] = {
+ {0, 2, 4},
+ {1, 3, 5},
+ {2, 3, 1},
+ {3, 4, 0},
+ {4, 1, 2},
+ {5, 0, 3},
+ {0, 5, 2},
+ {1, 4, 5}
};
-extern const struct EReaderTrainerTowerSetSubstruct gUnknown_84827AC;
-extern const struct TrainerTowerFloor *const gUnknown_84827B4[][MAX_TRAINER_TOWER_FLOORS];
+extern const struct EReaderTrainerTowerSetSubstruct gTrainerTowerLocalHeader;
+extern const struct TrainerTowerFloor *const gTrainerTowerFloors[][MAX_TRAINER_TOWER_FLOORS];
void CallTrainerTowerFunc(void)
{
@@ -471,7 +481,7 @@ void InitTrainerTowerBattleStruct(void)
sTrainerTowerOpponent->battleType = CURR_FLOOR.challengeType;
sTrainerTowerOpponent->facilityClass = CURR_FLOOR.trainers[trainerId].facilityClass;
- sTrainerTowerOpponent->gender = CURR_FLOOR.trainers[trainerId].gender;
+ sTrainerTowerOpponent->textColor = CURR_FLOOR.trainers[trainerId].textColor;
SetVBlankCounter1Ptr(&TRAINER_TOWER.timer);
FreeTrainerTowerDataStruct();
}
@@ -504,24 +514,24 @@ void GetTrainerTowerOpponentLoseText(u8 *dest, u8 opponentIdx)
static void SetUpTrainerTowerDataStruct(void)
{
u32 challengeType = gSaveBlock1Ptr->towerChallengeId;
- s32 r4;
- const struct TrainerTowerFloor *const * r7;
+ s32 i;
+ const struct TrainerTowerFloor *const * floors_p;
sTrainerTowerState = AllocZeroed(sizeof(*sTrainerTowerState));
sTrainerTowerState->floorIdx = gMapHeader.mapLayoutId - LAYOUT_TRAINER_TOWER_1F;
if (ReadTrainerTowerAndValidate() == TRUE)
- CEReaderTool_LoadTrainerTower(&sTrainerTowerState->unk_0004);
+ CEReaderTool_LoadTrainerTower(&sTrainerTowerState->data);
else
{
- struct UnkStruct_203F458 * r0_ = sTrainerTowerState;
- const struct EReaderTrainerTowerSetSubstruct * r1 = &gUnknown_84827AC;
- memcpy(&r0_->unk_0004, r1, sizeof(struct EReaderTrainerTowerSetSubstruct));
- r7 = gUnknown_84827B4[challengeType];
- for (r4 = 0; r4 < MAX_TRAINER_TOWER_FLOORS; r4++)
+ struct TrainerTowerState * ttstate_p = sTrainerTowerState;
+ const struct EReaderTrainerTowerSetSubstruct * header_p = &gTrainerTowerLocalHeader;
+ memcpy(&ttstate_p->data, header_p, sizeof(struct EReaderTrainerTowerSetSubstruct));
+ floors_p = gTrainerTowerFloors[challengeType];
+ for (i = 0; i < MAX_TRAINER_TOWER_FLOORS; i++)
{
- *(sTrainerTowerState->unk_0004.floors + r4) = *(r7[r4]); // manual pointer arithmetic needed to match
+ *(sTrainerTowerState->data.floors + i) = *(floors_p[i]); // manual pointer arithmetic needed to match
}
- sTrainerTowerState->unk_0004.checksum = CalcByteArraySum((void *)sTrainerTowerState->unk_0004.floors, sizeof(sTrainerTowerState->unk_0004.floors));
+ sTrainerTowerState->data.checksum = CalcByteArraySum((void *)sTrainerTowerState->data.floors, sizeof(sTrainerTowerState->data.floors));
ValidateOrResetCurTrainerTowerRecord();
}
}
@@ -533,7 +543,7 @@ static void FreeTrainerTowerDataStruct(void)
static void InitTrainerTowerFloor(void)
{
- if (gMapHeader.mapLayoutId - LAYOUT_TRAINER_TOWER_LOBBY > sTrainerTowerState->unk_0004.numFloors)
+ if (gMapHeader.mapLayoutId - LAYOUT_TRAINER_TOWER_LOBBY > sTrainerTowerState->data.numFloors)
{
gSpecialVar_Result = 3; // Skip past usable challenge types
SetCurrentMapLayout(LAYOUT_TRAINER_TOWER_ROOF);
@@ -620,17 +630,21 @@ static void SetTrainerTowerNPCGraphics(void)
static void TT_ConvertEasyChatMessageToString(u16 *ecWords, u8 *dest)
{
- s32 r1;
+ s32 i;
ConvertEasyChatWordsToString(dest, ecWords, 3, 2);
if ((unsigned)GetStringWidth(2, dest, -1) > 196)
{
+ // Has to be printed 2x3
ConvertEasyChatWordsToString(dest, ecWords, 2, 3);
- r1 = 0;
- while (dest[r1++] != CHAR_NEWLINE)
+ // Skip line 1
+ i = 0;
+ while (dest[i++] != CHAR_NEWLINE)
;
- while (dest[r1] != CHAR_NEWLINE)
- r1++;
- dest[r1] = CHAR_PROMPT_SCROLL;
+ // Skip line 2
+ while (dest[i] != CHAR_NEWLINE)
+ i++;
+ // Replace \n with \l at the end of line 2
+ dest[i] = CHAR_PROMPT_SCROLL;
}
}
@@ -784,7 +798,7 @@ static void GetOwnerState(void)
static void GiveChallengePrize(void)
{
- u16 itemId = sPrizeList[sTrainerTowerState->unk_0004.floors->prize];
+ u16 itemId = sPrizeList[sTrainerTowerState->data.floors->prize];
if (TRAINER_TOWER.receivedPrize)
{
@@ -891,15 +905,15 @@ static void ShowResultsBoard(void)
windowId = AddWindow(sTimeBoardWindowTemplate);
LoadStdWindowFrameGfx();
DrawStdWindowFrame(windowId, FALSE);
- AddTextPrinterParameterized(windowId, 2, gText_TimeBoard, 0x4A, 0, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 2, gText_TimeBoard, 74, 0, TEXT_SPEED_FF, NULL);
for (i = 0; i < NUM_TOWER_CHALLENGE_TYPES; i++)
{
PRINT_TOWER_TIME(GetTrainerTowerRecordTime(&TRAINER_TOWER.bestTime));
StringExpandPlaceholders(gStringVar4, gText_XMinYZSec);
- AddTextPrinterParameterized(windowId, 2, gTrainerTowerChallengeTypeTexts[i - 1], 0x18, 0x24 + 0x14 * i, 0xFF, NULL);
- AddTextPrinterParameterized(windowId, 2, gStringVar4, 0x60, 0x2E + 0x14 * i, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 2, gTrainerTowerChallengeTypeTexts[i - 1], 24, 36 + 20 * i, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 2, gStringVar4, 96, 46 + 20 * i, TEXT_SPEED_FF, NULL);
}
PutWindowTilemap(windowId);
@@ -922,9 +936,9 @@ static void TrainerTowerGetDoublesEligiblity(void)
static void TrainerTowerGetNumFloors(void)
{
- if (sTrainerTowerState->unk_0004.numFloors != sTrainerTowerState->unk_0004.floors[0].floorIdx)
+ if (sTrainerTowerState->data.numFloors != sTrainerTowerState->data.floors[0].floorIdx)
{
- ConvertIntToDecimalStringN(gStringVar1, sTrainerTowerState->unk_0004.numFloors, STR_CONV_MODE_LEFT_ALIGN, 1);
+ ConvertIntToDecimalStringN(gStringVar1, sTrainerTowerState->data.numFloors, STR_CONV_MODE_LEFT_ALIGN, 1);
gSpecialVar_Result = TRUE;
}
else
@@ -1029,9 +1043,9 @@ static s32 GetPartyMaxLevel(void)
static void ValidateOrResetCurTrainerTowerRecord(void)
{
- if (TRAINER_TOWER.unk9 != sTrainerTowerState->unk_0004.id)
+ if (TRAINER_TOWER.unk9 != sTrainerTowerState->data.id)
{
- TRAINER_TOWER.unk9 = sTrainerTowerState->unk_0004.id;
+ TRAINER_TOWER.unk9 = sTrainerTowerState->data.id;
SetTrainerTowerRecordTime(&TRAINER_TOWER.bestTime, TRAINER_TOWER_MAX_TIME);
TRAINER_TOWER.receivedPrize = FALSE;
}
@@ -1043,7 +1057,7 @@ void PrintTrainerTowerRecords(void)
u8 windowId = 0;
SetUpTrainerTowerDataStruct();
- FillWindowPixelRect(0, 0, 0, 0, 0xd8, 0x90);
+ FillWindowPixelRect(0, PIXEL_FILL(0), 0, 0, 216, 144);
ValidateOrResetCurTrainerTowerRecord();
AddTextPrinterParameterized3(0, 2, 0x4a, 0, sTextColors, 0, gText_TimeBoard);
diff --git a/src/trainer_tower_sets.c b/src/trainer_tower_sets.c
new file mode 100644
index 000000000..119950d7f
--- /dev/null
+++ b/src/trainer_tower_sets.c
@@ -0,0 +1,8997 @@
+#include "global.h"
+#include "cereader_tool.h"
+#include "trainer_tower.h"
+#include "text.h"
+#include "constants/easy_chat.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/trainer_tower.h"
+#include "constants/facility_trainer_classes.h"
+
+// Dummy strings must be declared explicitly for the sake of modern gcc
+#define DUMMY_TOWER_MON(iv) {.hpIV = iv, .attackIV = iv, .defenseIV = iv, .speedIV = iv, .spAttackIV = iv, .spDefenseIV = iv, .nickname = _("$$$$$$$$$$")}
+#define DUMMY_TOWER_TEAM(iv) {.name = _(""), .textColor = 1, .speechBefore = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, .speechWin = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, .speechLose = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, .speechAfter = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, .mons = {DUMMY_TOWER_MON(iv), DUMMY_TOWER_MON(iv), DUMMY_TOWER_MON(iv), DUMMY_TOWER_MON(iv), DUMMY_TOWER_MON(iv), DUMMY_TOWER_MON(iv)}}
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Single_4 = {
+ .id = 1,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_WHITE_HERB,
+ .trainers = {
+ {
+ .name = _("COLE"),
+ .facilityClass = FACILITY_CLASS_YOUNGSTER_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_AHAHA, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_ANYWHERE, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_ALL_RIGHT, EC_WORD_EXCL, EC_WORD_BYE_BYE, EC_WORD_EXCL, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_HIYAH, EC_WORD_EXCL_EXCL, EC_WORD_DONE, EC_WORD_IN, EC_WORD_TOTALLY, EC_WORD_EXCL_EXCL},
+ .speechAfter = {EC_WORD_TCH, EC_WORD_TCH, EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, 0xFFFF, 0xFFFF},
+ .mons = {
+ {
+ .species = SPECIES_RATICATE,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_SHOCK_WAVE, MOVE_HYPER_FANG, MOVE_SCARY_FACE, MOVE_ENDEAVOR},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("RATICATE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGMAR,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_FIRE_PUNCH, MOVE_SUNNY_DAY, MOVE_SMOG, MOVE_STRENGTH},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 210,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x56, // MALE HASTY
+ .nickname = _("MAGMAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGCARGO,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_FLAMETHROWER, MOVE_AMNESIA, MOVE_BODY_SLAM, MOVE_HARDEN},
+ .hpEV = 110,
+ .attackEV = 200,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 200,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("MAGCARGO"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PRIMEAPE,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_OVERHEAT, MOVE_SEISMIC_TOSS, MOVE_SWAGGER, MOVE_KARATE_CHOP},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 210,
+ .spAttackEV = 200,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x87, // MALE TIMID
+ .nickname = _("PRIMEAPE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLBAT,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_SLUDGE_BOMB, MOVE_MEAN_LOOK},
+ .hpEV = 0,
+ .attackEV = 200,
+ .defenseEV = 0,
+ .speedEV = 110,
+ .spAttackEV = 200,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x81, // MALE NAUGHTY
+ .nickname = _("GOLBAT"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SLOWBRO,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_SUNNY_DAY, MOVE_YAWN, MOVE_FLAMETHROWER, MOVE_CONFUSION},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 210,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("SLOWBRO"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016aab
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Single_7 = {
+ .id = 2,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_DRAGON_SCALE,
+ .trainers = {
+ {
+ .name = _("JAC"),
+ .facilityClass = FACILITY_CLASS_BURGLAR,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_MOVE2(THIEF), EC_WORD_EXCL, EC_WORD_GIVE_ME, EC_WORD_SOMETHING},
+ .speechWin = {EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_NOTHING, EC_WORD_THAT, EC_WORD_I, EC_WORD_WANT},
+ .speechLose = {EC_WORD_EEK, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_I, EC_WORD_SURRENDER},
+ .speechAfter = {EC_WORD_I, EC_WORD_WILL, EC_WORD_STOP, EC_WORD_BEING, EC_WORD_A, EC_MOVE2(THIEF)},
+ .mons = {
+ {
+ .species = SPECIES_MEOWTH,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_SWAGGER, MOVE_SUBSTITUTE, MOVE_FAKE_OUT, MOVE_SLASH},
+ .hpEV = 200,
+ .attackEV = 110,
+ .defenseEV = 0,
+ .speedEV = 200,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 138 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("MEOWTH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FLAREON,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_SAND_ATTACK, MOVE_FIRE_SPIN},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 200,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("FLAREON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PORYGON,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_TRI_ATTACK, MOVE_RECYCLE, MOVE_PSYBEAM, MOVE_CONVERSION_2},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 210,
+ .speedEV = 0,
+ .spAttackEV = 200,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x07, // GENDERLESS RELAXED
+ .nickname = _("PORYGON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CHANSEY,
+ .heldItem = ITEM_LUCKY_PUNCH,
+ .moves = {MOVE_FLAMETHROWER, MOVE_LIGHT_SCREEN, MOVE_BODY_SLAM, MOVE_MINIMIZE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x10, // FEMALE MILD
+ .nickname = _("CHANSEY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FARFETCHD,
+ .heldItem = ITEM_STICK,
+ .moves = {MOVE_KNOCK_OFF, MOVE_SWORDS_DANCE, MOVE_FLY, MOVE_SAND_ATTACK},
+ .hpEV = 100,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 110,
+ .otId = 133 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x85, // MALE IMPISH
+ .nickname = _("FARFETCH'D"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MR_MIME,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_SUBSTITUTE, MOVE_SHOCK_WAVE, MOVE_LIGHT_SCREEN, MOVE_BRICK_BREAK},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 130 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x82, // MALE BOLD
+ .nickname = _("MR. MIME"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016456
+};
+
+static const struct TrainerTowerFloor gUnknown_847B36C = {
+ .id = 3,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_IRON,
+ .trainers = {
+ {
+ .name = _("MILY"),
+ .facilityClass = FACILITY_CLASS_PSYCHIC_4,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(SUPERPOWER), EC_WORD_EXCL},
+ .speechWin = {EC_WORD_ISN_T, EC_WORD_IT, EC_WORD_INCREDIBLE, EC_WORD_QUES, EC_WORD_POKEMON, EC_WORD_POWER},
+ .speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_ELLIPSIS_EXCL},
+ .speechAfter = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_DREAM, EC_WORD_NOTHING, EC_WORD_MORE},
+ .mons = {
+ {
+ .species = SPECIES_CHANSEY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = {MOVE_LIGHT_SCREEN, MOVE_EGG_BOMB, MOVE_MINIMIZE, MOVE_SECRET_POWER},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x08, // FEMALE IMPISH
+ .nickname = _("CHANSEY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CLEFABLE,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = {MOVE_METRONOME, MOVE_REFLECT, MOVE_SING, MOVE_POUND},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("CLEFABLE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOGETIC,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = {MOVE_METRONOME, MOVE_REFLECT, MOVE_SWEET_KISS, MOVE_PECK},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("TOGETIC"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOGETIC,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = {MOVE_METRONOME, MOVE_HIDDEN_POWER, MOVE_ATTRACT, MOVE_LIGHT_SCREEN},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x20, // MALE RELAXED
+ .nickname = _("TOGETIC"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CHANSEY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = {MOVE_FLAMETHROWER, MOVE_SOFT_BOILED, MOVE_LIGHT_SCREEN, MOVE_SECRET_POWER},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x05, // FEMALE BOLD
+ .nickname = _("CHANSEY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CLEFABLE,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = {MOVE_REFLECT, MOVE_FLAMETHROWER, MOVE_SING, MOVE_BODY_SLAM},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 200,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0xC0, // MALE QUIET
+ .nickname = _("CLEFABLE"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x000164ec
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Double_5 = {
+ .id = 4,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_CHOICE_BAND,
+ .trainers = {
+ {
+ .name = _("JOS & ANNE"),
+ .facilityClass = FACILITY_CLASS_COOL_COUPLE,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_TO, EC_WORD_YOU, EC_WORD_HERE},
+ .speechWin = {EC_WORD_VERY, EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, EC_WORD_GOOD, EC_WORD_BATTLE},
+ .speechLose = {EC_WORD_UNBELIEVABLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_BUT, EC_WORD_YOU, EC_WORD_WIN, EC_WORD_ELLIPSIS},
+ .mons = {
+ {
+ .species = SPECIES_RAPIDASH,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = {MOVE_BOUNCE, MOVE_OVERHEAT, MOVE_HYPNOSIS, MOVE_RETURN},
+ .hpEV = 100,
+ .attackEV = 100,
+ .defenseEV = 0,
+ .speedEV = 110,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x10, // FEMALE MILD
+ .nickname = _("RAPIDASH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NINETALES,
+ .heldItem = ITEM_CHARCOAL,
+ .moves = {MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP, MOVE_HEAT_WAVE, MOVE_DIG},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 200,
+ .spAttackEV = 200,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x15, // FEMALE GENTLE
+ .nickname = _("NINETALES"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MISDREAVUS,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_GRUDGE, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT},
+ .hpEV = 200,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 210,
+ .spAttackEV = 100,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("MISDREAVUS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_LIGHT_SCREEN, MOVE_RECOVER, MOVE_PSYCHIC, MOVE_THUNDER_PUNCH},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("ALAKAZAM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_BLISSEY,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_LIGHT_SCREEN, MOVE_ATTRACT, MOVE_RETURN, MOVE_PSYCHIC},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("BLISSEY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_TOXIC, MOVE_FLY, MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 210,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x17, // FEMALE CAREFUL
+ .nickname = _("CROBAT"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("JOS & ANNE"),
+ .facilityClass = FACILITY_CLASS_COOL_COUPLE,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_HERE_GOES, EC_WORD_EXCL_EXCL, EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_LOSE},
+ .speechWin = {EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_WE, EC_WORD_GET, EC_WORD_THE, EC_WORD_WIN},
+ .speechLose = {EC_WORD_LOST, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_JOKING, EC_WORD_EXCL},
+ .speechAfter = {EC_WORD_HOW, EC_WORD_COULD, EC_WORD_I, EC_WORD_LOSE, EC_WORD_THIS, EC_WORD_QUES},
+ .mons = {
+ {
+ .species = SPECIES_HOUNDOOM,
+ .heldItem = ITEM_CHARCOAL,
+ .moves = {MOVE_TAUNT, MOVE_FLAMETHROWER, MOVE_WILL_O_WISP, MOVE_CRUNCH},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x82, // MALE BOLD
+ .nickname = _("HOUNDOOM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_AERODACTYL,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_ROAR, MOVE_FIRE_BLAST, MOVE_HYPER_BEAM, MOVE_AERIAL_ACE},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x33, // MALE LONELY
+ .nickname = _("AERODACTYL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ARCANINE,
+ .heldItem = ITEM_CHARCOAL,
+ .moves = {MOVE_HEAT_WAVE, MOVE_EXTREME_SPEED, MOVE_ROAR, MOVE_DIG},
+ .hpEV = 210,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 200,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x56, // MALE HASTY
+ .nickname = _("ARCANINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_WEEZING,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_EXPLOSION, MOVE_SMOKESCREEN, MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT},
+ .hpEV = 100,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 110,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x8E, // MALE QUIET
+ .nickname = _("WEEZING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CHARIZARD,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = {MOVE_OVERHEAT, MOVE_OUTRAGE, MOVE_DRAGON_RAGE, MOVE_SMOKESCREEN},
+ .hpEV = 100,
+ .attackEV = 110,
+ .defenseEV = 0,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x33, // MALE LONELY
+ .nickname = _("CHARIZARD"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GENGAR,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT},
+ .hpEV = 55,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x87, // MALE TIMID
+ .nickname = _("GENGAR"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00017908
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Double_6 = {
+ .id = 5,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_CALCIUM,
+ .trainers = {
+ {
+ .name = _("EMY & ALEK"),
+ .facilityClass = FACILITY_CLASS_YOUNG_COUPLE_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LOST, EC_WORD_IN, EC_WORD_LOVEY_DOVEY, EC_WORD_HAPPINESS},
+ .speechWin = {EC_WORD_OH, EC_WORD_OH, EC_WORD_HE, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME},
+ .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_SERIOUS, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_WHO, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF, 0xFFFF},
+ .mons = {
+ {
+ .species = SPECIES_TAUROS,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_FLAMETHROWER, MOVE_REST, MOVE_SHOCK_WAVE, MOVE_DOUBLE_TEAM},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0A, // MALE TIMID
+ .nickname = _("TAUROS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_KANGASKHAN,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_FLAMETHROWER, MOVE_DIZZY_PUNCH, MOVE_REST, MOVE_FAKE_OUT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("KANGASKHAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FEAROW,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_DOUBLE_EDGE, MOVE_REST},
+ .hpEV = 100,
+ .attackEV = 210,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x94, // MALE CAREFUL
+ .nickname = _("FEAROW"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOGETIC,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_FLAMETHROWER, MOVE_LIGHT_SCREEN, MOVE_REST, MOVE_ANCIENT_POWER},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x24, // MALE HASTY
+ .nickname = _("TOGETIC"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PIDGEOT,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_STEEL_WING, MOVE_FLY, MOVE_MIRROR_MOVE, MOVE_REST},
+ .hpEV = 100,
+ .attackEV = 110,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0D, // FEMALE JOLLY
+ .nickname = _("PIDGEOT"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_URSARING,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_REST, MOVE_SNORE, MOVE_DIG, MOVE_SLASH},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("URSARING"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("EMY & ALEK"),
+ .facilityClass = FACILITY_CLASS_YOUNG_COUPLE_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_GIDDY, EC_WORD_WITH, EC_WORD_LOVEY_DOVEY, EC_WORD_JOY, EC_WORD_EXCL_EXCL},
+ .speechWin = {EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_IS, EC_WORD_CUTE},
+ .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_SERIOUS},
+ .speechAfter = {EC_WORD_WAIT, EC_WORD_ELLIPSIS, EC_WORD_WHO, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_QUES},
+ .mons = {
+ {
+ .species = SPECIES_LICKITUNG,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_FLAMETHROWER, MOVE_EARTHQUAKE, MOVE_REST, MOVE_SLEEP_TALK},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 55,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("LICKITUNG"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NOCTOWL,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_REFLECT, MOVE_AERIAL_ACE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("NOCTOWL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FURRET,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_FLAMETHROWER, MOVE_AMNESIA, MOVE_SHOCK_WAVE, MOVE_SLASH},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0E, // FEMALE NAIVE
+ .nickname = _("FURRET"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RATICATE,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_SUPER_FANG, MOVE_QUICK_ATTACK, MOVE_SWAGGER, MOVE_ENDEAVOR},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("RATICATE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_WIGGLYTUFF,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_SUNNY_DAY, MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_BODY_SLAM},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("WIGGLYTUFF"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PORYGON2,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_THUNDERBOLT, MOVE_CONVERSION_2, MOVE_TRI_ATTACK, MOVE_RECOVER},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0A, // GENDERLESS TIMID
+ .nickname = _("PORYGON2"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00015d3b
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Double_2 = {
+ .id = 6,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_HP_UP,
+ .trainers = {
+ {
+ .name = _("JO & HALEY"),
+ .facilityClass = FACILITY_CLASS_CRUSH_KIN,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_WE_RE, EC_WORD_USING, EC_WORD_THAT, EC_WORD_STRATEGY, EC_WORD_OKAY, EC_WORD_QUES},
+ .speechWin = {EC_WORD_YAY, EC_WORD_WE, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TERRIBLE, EC_WORD_EXCL},
+ .speechAfter = {EC_WORD_ALL, EC_WORD_I, EC_WORD_DO, EC_WORD_IS, EC_WORD_LOSE, EC_WORD_ELLIPSIS},
+ .mons = {
+ {
+ .species = SPECIES_SNEASEL,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_SHADOW_BALL, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_AERIAL_ACE},
+ .hpEV = 200,
+ .attackEV = 0,
+ .defenseEV = 50,
+ .speedEV = 210,
+ .spAttackEV = 0,
+ .spDefenseEV = 50,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0D, // FEMALE JOLLY
+ .nickname = _("SNEASEL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_FIRE_PUNCH, MOVE_RECOVER, MOVE_PSYCHIC, MOVE_SUNNY_DAY},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x05, // FEMALE BOLD
+ .nickname = _("ALAKAZAM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HITMONTOP,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_MEGA_KICK, MOVE_ENDEAVOR, MOVE_DIG, MOVE_SUNNY_DAY},
+ .hpEV = 100,
+ .attackEV = 210,
+ .defenseEV = 0,
+ .speedEV = 200,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x08, // MALE IMPISH
+ .nickname = _("HITMONTOP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GIRAFARIG,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_LIGHT_SCREEN, MOVE_SUNNY_DAY, MOVE_SHADOW_BALL, MOVE_PSYBEAM},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("GIRAFARIG"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_XATU,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_SUNNY_DAY, MOVE_DRILL_PECK, MOVE_CONFUSE_RAY, MOVE_PSYCHIC},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x14, // FEMALE CALM
+ .nickname = _("XATU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MR_MIME,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_REFLECT, MOVE_SUNNY_DAY, MOVE_PSYCHIC, MOVE_SHOCK_WAVE},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 200,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x05, // FEMALE BOLD
+ .nickname = _("MR. MIME"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("JO & HALEY"),
+ .facilityClass = FACILITY_CLASS_CRUSH_KIN,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_YOU, EC_WORD_YOU, EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_WORD_WIN},
+ .speechWin = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_JOKING, EC_WORD_QUES, EC_WORD_WE, EC_WORD_WON},
+ .speechLose = {EC_WORD_WIMPY, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_WERE, EC_WORD_WEAK, EC_WORD_ELLIPSIS},
+ .speechAfter = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, EC_WORD_WE_RE, EC_WORD_TOTALLY, EC_WORD_USELESS, EC_WORD_ELLIPSIS},
+ .mons = {
+ {
+ .species = SPECIES_HYPNO,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_FIRE_PUNCH, MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_NIGHTMARE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x87, // MALE TIMID
+ .nickname = _("HYPNO"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HITMONCHAN,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_DETECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0F, // MALE MODEST
+ .nickname = _("HITMONCHAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_FLAMETHROWER, MOVE_BRICK_BREAK, MOVE_SCARY_FACE, MOVE_DIG},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x43, // MALE QUIET
+ .nickname = _("MACHAMP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HOUNDOOM,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_ROAR, MOVE_FLAMETHROWER, MOVE_BITE, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x87, // MALE TIMID
+ .nickname = _("HOUNDOOM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PRIMEAPE,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_OVERHEAT, MOVE_SWAGGER, MOVE_SEISMIC_TOSS, MOVE_DOUBLE_TEAM},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 110,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x8C, // MALE MODEST
+ .nickname = _("PRIMEAPE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_LEER},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x85, // MALE IMPISH
+ .nickname = _("HERACROSS"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x000160b1
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Knockout_1 = {
+ .id = 7,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_KNOCKOUT,
+ .prize = TTPRIZE_METAL_COAT,
+ .trainers = {
+ {
+ .name = _("JORDY"),
+ .facilityClass = FACILITY_CLASS_BIKER,
+ .textColor = 3,
+ .speechBefore = {EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GIGGLE, EC_WORD_YOU, EC_WORD_PUSHOVER},
+ .speechWin = {EC_WORD_WHAT, EC_WORD_A_LITTLE, EC_WORD_PUSHOVER, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_YOU, EC_WORD_WERE, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_EXCL},
+ .speechAfter = {EC_WORD_DARN, EC_WORD_EXCL, EC_WORD_I, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_IT},
+ .mons = {
+ {
+ .species = SPECIES_MAGBY,
+ .heldItem = ITEM_LAX_INCENSE,
+ .moves = {MOVE_SMOKESCREEN, MOVE_CONFUSE_RAY, MOVE_FLAMETHROWER, MOVE_SCREECH},
+ .hpEV = 210,
+ .attackEV = 30,
+ .defenseEV = 30,
+ .speedEV = 0,
+ .spAttackEV = 210,
+ .spDefenseEV = 30,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x43, // MALE QUIET
+ .nickname = _("MAGBY"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_CLEFFA,
+ .heldItem = ITEM_LAX_INCENSE,
+ .moves = {MOVE_ATTRACT, MOVE_CHARM, MOVE_SECRET_POWER, MOVE_FLASH},
+ .hpEV = 210,
+ .attackEV = 210,
+ .defenseEV = 30,
+ .speedEV = 0,
+ .spAttackEV = 30,
+ .spDefenseEV = 30,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0xCA, // MALE BRAVE
+ .nickname = _("CLEFFA"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_IGGLYBUFF,
+ .heldItem = ITEM_LAX_INCENSE,
+ .moves = {MOVE_SING, MOVE_HIDDEN_POWER, MOVE_CHARM, MOVE_DOUBLE_TEAM},
+ .hpEV = 210,
+ .attackEV = 0,
+ .defenseEV = 45,
+ .speedEV = 210,
+ .spAttackEV = 0,
+ .spDefenseEV = 45,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0xD2, // MALE TIMID
+ .nickname = _("IGGLYBUFF"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SMOOCHUM,
+ .heldItem = ITEM_LAX_INCENSE,
+ .moves = {MOVE_FAKE_TEARS, MOVE_PSYCHIC, MOVE_MEAN_LOOK, MOVE_SING},
+ .hpEV = 210,
+ .attackEV = 0,
+ .defenseEV = 45,
+ .speedEV = 0,
+ .spAttackEV = 210,
+ .spDefenseEV = 45,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("SMOOCHUM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOGEPI,
+ .heldItem = ITEM_LAX_INCENSE,
+ .moves = {MOVE_SWEET_KISS, MOVE_YAWN, MOVE_ANCIENT_POWER, MOVE_DOUBLE_TEAM},
+ .hpEV = 210,
+ .attackEV = 210,
+ .defenseEV = 45,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 45,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x34, // MALE BRAVE
+ .nickname = _("TOGEPI"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_PICHU,
+ .heldItem = ITEM_LAX_INCENSE,
+ .moves = {MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE, MOVE_SWEET_KISS, MOVE_FLASH},
+ .hpEV = 210,
+ .attackEV = 0,
+ .defenseEV = 45,
+ .speedEV = 0,
+ .spAttackEV = 210,
+ .spDefenseEV = 45,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x8E, // MALE QUIET
+ .nickname = _("PICHU"),
+ .friendship = 0
+ },
+ }
+ },
+ {
+ .name = _("ERNEST"),
+ .facilityClass = FACILITY_CLASS_BIKER,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_IT_S, EC_WORD_SLEEP, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_CHILDREN, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_NOT, EC_WORD_GUTSY, EC_WORD_ENOUGH, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_WHY, EC_WORD_DID, EC_WORD_YOU, EC_WORD_CRUSH, EC_WORD_ME, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_I_AM, EC_WORD_BEAT, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_NAP},
+ .mons = {
+ {
+ .species = SPECIES_CLEFFA,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_SWEET_KISS, MOVE_FRUSTRATION, MOVE_SING, MOVE_ATTRACT},
+ .hpEV = 210,
+ .attackEV = 210,
+ .defenseEV = 45,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 45,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0xCA, // MALE BRAVE
+ .nickname = _("CLEFFA"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_MAGBY,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_FRUSTRATION, MOVE_CONFUSE_RAY, MOVE_FLAMETHROWER, MOVE_TOXIC},
+ .hpEV = 90,
+ .attackEV = 210,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 210,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x4D, // MALE BRAVE
+ .nickname = _("MAGBY"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_TOGEPI,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_FRUSTRATION, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_SWEET_KISS},
+ .hpEV = 210,
+ .attackEV = 210,
+ .defenseEV = 45,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 45,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x34, // MALE BRAVE
+ .nickname = _("TOGEPI"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_SMOOCHUM,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_MEAN_LOOK, MOVE_PERISH_SONG, MOVE_TOXIC, MOVE_FLASH},
+ .hpEV = 90,
+ .attackEV = 0,
+ .defenseEV = 210,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 210,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("SMOOCHUM"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_IGGLYBUFF,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_DOUBLE_TEAM, MOVE_SWEET_KISS, MOVE_SEISMIC_TOSS, MOVE_FLASH},
+ .hpEV = 210,
+ .attackEV = 0,
+ .defenseEV = 45,
+ .speedEV = 210,
+ .spAttackEV = 0,
+ .spDefenseEV = 45,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("IGGLYBUFF"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_PICHU,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_TAIL_WHIP, MOVE_FRUSTRATION, MOVE_ATTRACT, MOVE_THUNDER_WAVE},
+ .hpEV = 90,
+ .attackEV = 210,
+ .defenseEV = 0,
+ .speedEV = 210,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("PICHU"),
+ .friendship = 0
+ },
+ }
+ },
+ {
+ .name = _("GABRIEL"),
+ .facilityClass = FACILITY_CLASS_CUE_BALL,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_HERE_I_COME, EC_WORD_TO, EC_WORD_SWARM, EC_WORD_YOU},
+ .speechWin = {EC_WORD_I_AM, EC_WORD_INVINCIBLE, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_THAT, EC_WORD_QUES},
+ .speechLose = {EC_WORD_WHAT, EC_WORD_WAS, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_WIN, EC_WORD_NEXT, EC_WORD_TIME},
+ .mons = {
+ {
+ .species = SPECIES_PICHU,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_THUNDER_WAVE, MOVE_FRUSTRATION, MOVE_THUNDERBOLT, MOVE_ATTRACT},
+ .hpEV = 90,
+ .attackEV = 210,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 210,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x81, // MALE NAUGHTY
+ .nickname = _("PICHU"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_TOGEPI,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_ATTRACT, MOVE_FRUSTRATION, MOVE_TOXIC, MOVE_SUBSTITUTE},
+ .hpEV = 210,
+ .attackEV = 210,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 90,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x33, // MALE LONELY
+ .nickname = _("TOGEPI"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_CLEFFA,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_ENCORE, MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_FLASH},
+ .hpEV = 210,
+ .attackEV = 0,
+ .defenseEV = 150,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 150,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0xCF, // MALE RELAXED
+ .nickname = _("CLEFFA"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_IGGLYBUFF,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_ATTRACT, MOVE_SUBSTITUTE, MOVE_SING, MOVE_PERISH_SONG},
+ .hpEV = 210,
+ .attackEV = 0,
+ .defenseEV = 210,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 90,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0xCF, // MALE RELAXED
+ .nickname = _("IGGLYBUFF"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_SMOOCHUM,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_SWEET_KISS, MOVE_PERISH_SONG, MOVE_TOXIC, MOVE_ATTRACT},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("SMOOCHUM"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_MAGBY,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_LEER, MOVE_FRUSTRATION, MOVE_SUBSTITUTE, MOVE_FLAMETHROWER},
+ .hpEV = 90,
+ .attackEV = 210,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 210,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x4D, // MALE BRAVE
+ .nickname = _("MAGBY"),
+ .friendship = 0
+ },
+ }
+ },
+ },
+ .checksum = 0x00017a4a
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Knockout_2 = {
+ .id = 8,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_KNOCKOUT,
+ .prize = TTPRIZE_UP_GRADE,
+ .trainers = {
+ {
+ .name = _("MIKE"),
+ .facilityClass = FACILITY_CLASS_HIKER_2,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_FULL, EC_WORD_OF, EC_WORD_POWER},
+ .speechWin = {EC_WORD_WHAT_S_UP_QUES, EC_WORD_WHERE, EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_QUES},
+ .speechLose = {EC_WORD_YOU, EC_WORD_GOT, EC_WORD_ME, EC_WORD_WITH, EC_WORD_YOUR, EC_MOVE2(FAKE_OUT)},
+ .speechAfter = {EC_WORD_OH_YEAH, EC_WORD_EXCL, EC_WORD_THAT_S, EC_WORD_PRETTY, EC_WORD_EXCELLENT, EC_WORD_EXCL},
+ .mons = {
+ {
+ .species = SPECIES_PINSIR,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_GUILLOTINE, MOVE_BRICK_BREAK, MOVE_DIG, MOVE_REVENGE},
+ .hpEV = 100,
+ .attackEV = 210,
+ .defenseEV = 0,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("PINSIR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CHARIZARD,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_DRAGON_CLAW, MOVE_METAL_CLAW, MOVE_AERIAL_ACE, MOVE_OUTRAGE},
+ .hpEV = 200,
+ .attackEV = 200,
+ .defenseEV = 0,
+ .speedEV = 110,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x35, // MALE ADAMANT
+ .nickname = _("CHARIZARD"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_MEGAHORN, MOVE_HORN_DRILL, MOVE_CRUSH_CLAW, MOVE_BRICK_BREAK},
+ .hpEV = 100,
+ .attackEV = 210,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x09, // FEMALE LAX
+ .nickname = _("RHYDON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ARCANINE,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_EXTREME_SPEED, MOVE_IRON_TAIL, MOVE_AERIAL_ACE, MOVE_DIG},
+ .hpEV = 110,
+ .attackEV = 200,
+ .defenseEV = 0,
+ .speedEV = 200,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x3F, // MALE JOLLY
+ .nickname = _("ARCANINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_ROLLOUT, MOVE_BRICK_BREAK, MOVE_DIG},
+ .hpEV = 100,
+ .attackEV = 210,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("GOLEM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HOUNDOOM,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_CRUNCH, MOVE_REVERSAL, MOVE_DOUBLE_EDGE, MOVE_COUNTER},
+ .hpEV = 200,
+ .attackEV = 110,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 1,
+ .personality = 0x08, // FEMALE IMPISH
+ .nickname = _("HOUNDOOM"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("REBECCA"),
+ .facilityClass = FACILITY_CLASS_CRUSH_GIRL,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF},
+ .speechWin = {EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_OVERWHELMING},
+ .speechLose = {EC_WORD_ARRGH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_YOU, EC_WORD_ANGER, EC_WORD_ME, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_TOUGH},
+ .mons = {
+ {
+ .species = SPECIES_SANDSLASH,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_CRUSH_CLAW, MOVE_DIG, MOVE_DOUBLE_EDGE, MOVE_AERIAL_ACE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x0D, // FEMALE JOLLY
+ .nickname = _("SANDSLASH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DRAGONAIR,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_OUTRAGE, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE, MOVE_SLAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("DRAGONAIR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RAPIDASH,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_BOUNCE, MOVE_IRON_TAIL, MOVE_THRASH, MOVE_DOUBLE_EDGE},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 1,
+ .personality = 0x94, // MALE CAREFUL
+ .nickname = _("RAPIDASH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FLAREON,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_IRON_TAIL, MOVE_FLAIL, MOVE_BITE, MOVE_DOUBLE_EDGE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x21, // MALE IMPISH
+ .nickname = _("FLAREON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDOQUEEN,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_SUPERPOWER, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_COUNTER},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x17, // FEMALE CAREFUL
+ .nickname = _("NIDOQUEEN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PERSIAN,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_RETURN, MOVE_AERIAL_ACE, MOVE_IRON_TAIL, MOVE_DIG},
+ .hpEV = 110,
+ .attackEV = 200,
+ .defenseEV = 0,
+ .speedEV = 200,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("PERSIAN"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("NICOLAS"),
+ .facilityClass = FACILITY_CLASS_BLACK_BELT_2,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_WHERE, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_EVER, EC_WORD_BEAT, EC_WORD_ME},
+ .speechLose = {EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_TRAIN, EC_WORD_SOME, EC_WORD_MORE},
+ .mons = {
+ {
+ .species = SPECIES_HITMONLEE,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_MEGA_KICK, MOVE_REVERSAL, MOVE_FOCUS_PUNCH, MOVE_BRICK_BREAK},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x08, // MALE IMPISH
+ .nickname = _("HITMONLEE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SCYTHER,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_SLASH, MOVE_REVERSAL, MOVE_STEEL_WING, MOVE_AERIAL_ACE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x17, // FEMALE CAREFUL
+ .nickname = _("SCYTHER"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGMAR,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_BRICK_BREAK, MOVE_IRON_TAIL},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x53, // MALE IMPISH
+ .nickname = _("MAGMAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_DYNAMIC_PUNCH, MOVE_DIG, MOVE_CROSS_CHOP, MOVE_REVENGE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x3F, // MALE JOLLY
+ .nickname = _("MACHAMP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PRIMEAPE,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_THRASH, MOVE_CROSS_CHOP, MOVE_IRON_TAIL, MOVE_AERIAL_ACE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 110,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x08, // FEMALE IMPISH
+ .nickname = _("PRIMEAPE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_POLIWRATH,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_BODY_SLAM, MOVE_DIG, MOVE_MEGA_KICK, MOVE_COUNTER},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x0D, // FEMALE JOLLY
+ .nickname = _("POLIWRATH"),
+ .friendship = 255
+ },
+ }
+ },
+ },
+ .checksum = 0x00016f05
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Single_5 = {
+ .id = 9,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_HP_UP,
+ .trainers = {
+ {
+ .name = _("JOEY"),
+ .facilityClass = FACILITY_CLASS_CAMPER_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SCARY, EC_WORD_STRONG, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_WERE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES},
+ .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WAY, EC_WORD_TOO_STRONG, EC_WORD_EXCL},
+ .speechAfter = {EC_WORD_THE, EC_WORD_WAY, EC_WORD_POKEMON, EC_WORD_MATCH_UP, EC_WORD_IS, EC_WORD_IMPORTANT},
+ .mons = {
+ {
+ .species = SPECIES_MURKROW,
+ .heldItem = ITEM_BLACK_GLASSES,
+ .moves = {MOVE_FAINT_ATTACK, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("MURKROW"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TAUROS,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_ROCK_TOMB, MOVE_PURSUIT},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0C, // MALE SERIOUS
+ .nickname = _("TAUROS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SLOWBRO,
+ .heldItem = ITEM_MYSTIC_WATER,
+ .moves = {MOVE_AMNESIA, MOVE_PSYCHIC, MOVE_SURF, MOVE_ICE_BEAM},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("SLOWBRO"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ARBOK,
+ .heldItem = ITEM_POISON_BARB,
+ .moves = {MOVE_IRON_TAIL, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE, MOVE_TOXIC},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("ARBOK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDOKING,
+ .heldItem = ITEM_SOFT_SAND,
+ .moves = {MOVE_EARTHQUAKE, MOVE_MEGAHORN, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0C, // MALE SERIOUS
+ .nickname = _("NIDOKING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RAPIDASH,
+ .heldItem = ITEM_CHARCOAL,
+ .moves = {MOVE_FLAMETHROWER, MOVE_BOUNCE, MOVE_QUICK_ATTACK, MOVE_DOUBLE_KICK},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("RAPIDASH"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016417
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Single_8 = {
+ .id = 10,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_METAL_COAT,
+ .trainers = {
+ {
+ .name = _("LILY"),
+ .facilityClass = FACILITY_CLASS_PKMN_BREEDER_3,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_EXCL},
+ .speechWin = {EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_ELLIPSIS},
+ .speechAfter = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_HAVE, EC_WORD_MY, EC_WORD_TRUST, EC_WORD_FOREVER},
+ .mons = {
+ {
+ .species = SPECIES_CLEFAIRY,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_CHARM, MOVE_METRONOME, MOVE_RETURN, MOVE_REST},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("CLEFAIRY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOGEPI,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_CHARM, MOVE_METRONOME, MOVE_RETURN, MOVE_REST},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("TOGEPI"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MEOWTH,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_CHARM, MOVE_ASSIST, MOVE_RETURN, MOVE_REST},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("MEOWTH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_JIGGLYPUFF,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_CHARM, MOVE_ROLLOUT, MOVE_RETURN, MOVE_REST},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("JIGGLYPUFF"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SNORLAX,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_CHARM, MOVE_ROLLOUT, MOVE_RETURN, MOVE_REST},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x25, // MALE SERIOUS
+ .nickname = _("SNORLAX"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SNUBBULL,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_CHARM, MOVE_LICK, MOVE_RETURN, MOVE_REST},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("SNUBBULL"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016cb7
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Single_2 = {
+ .id = 11,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_UP_GRADE,
+ .trainers = {
+ {
+ .name = _("BRANDON"),
+ .facilityClass = FACILITY_CLASS_BUG_CATCHER_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_POISON, EC_WORD_IS, EC_WORD_JUST, EC_WORD_SO, EC_WORD_AWFUL, EC_WORD_ISN_T_IT_QUES},
+ .speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_ISN_T, EC_WORD_POISON, EC_WORD_TERRIBLE, EC_WORD_QUES},
+ .speechLose = {EC_WORD_HUH_QUES, EC_WORD_OUR, EC_WORD_POISON, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_POISON, EC_WORD_IS, EC_WORD_A, EC_WORD_TERRIBLE, EC_MOVE(TORMENT), EC_WORD_ISN_T_IT_QUES},
+ .mons = {
+ {
+ .species = SPECIES_BUTTERFREE,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_SILVER_WIND, MOVE_SLEEP_POWDER, MOVE_PSYCHIC, MOVE_SUPERSONIC},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("BUTTERFREE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_BEEDRILL,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_SLUDGE_BOMB, MOVE_TWINEEDLE, MOVE_DOUBLE_TEAM, MOVE_AERIAL_ACE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("BEEDRILL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PARASECT,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_GIGA_DRAIN, MOVE_LIGHT_SCREEN, MOVE_STUN_SPORE, MOVE_SLASH},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("PARASECT"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_YANMA,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_HYPNOSIS, MOVE_SONIC_BOOM, MOVE_QUICK_ATTACK, MOVE_AERIAL_ACE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 1,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("YANMA"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SHUCKLE,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_TOXIC, MOVE_ROCK_TOMB, MOVE_PROTECT, MOVE_REST},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("SHUCKLE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FORRETRESS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_SANDSTORM},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("FORRETRESS"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016e1f
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Double_3 = {
+ .id = 12,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_IRON,
+ .trainers = {
+ {
+ .name = _("RIC & RENE"),
+ .facilityClass = FACILITY_CLASS_CRUSH_KIN,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME},
+ .speechWin = {EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_TOO, EC_WORD_AWESOME},
+ .speechLose = {EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_ISN_T, EC_WORD_AWESOME, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_FIGHT, EC_WORD_EXCL, 0xFFFF, 0xFFFF},
+ .mons = {
+ {
+ .species = SPECIES_HITMONLEE,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_ROCK_TOMB, MOVE_HI_JUMP_KICK, MOVE_BULK_UP, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x02, // MALE BRAVE
+ .nickname = _("HITMONLEE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_MEGAHORN, MOVE_ROCK_BLAST, MOVE_BRICK_BREAK, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x7F, // MALE BRAVE
+ .nickname = _("RHYDON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_BRICK_BREAK, MOVE_ROCK_BLAST, MOVE_DIG, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("GOLEM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGMAR,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_FIRE_PUNCH, MOVE_BRICK_BREAK, MOVE_CONFUSE_RAY, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x4F, // MALE NAUGHTY
+ .nickname = _("MAGMAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HERACROSS,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_ROCK_TOMB, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x7F, // MALE BRAVE
+ .nickname = _("HERACROSS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_POLIWRATH,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_FOCUS_PUNCH, MOVE_SURF, MOVE_BULK_UP, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x97, // MALE LONELY
+ .nickname = _("POLIWRATH"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("RIC & RENE"),
+ .facilityClass = FACILITY_CLASS_CRUSH_KIN,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF},
+ .speechWin = {EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_HUH_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_AWESOME, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_I, EC_WORD_WILL, EC_WORD_DO, EC_WORD_MY, EC_WORD_BEST, EC_WORD_EXCL},
+ .mons = {
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_CROSS_CHOP, MOVE_SEISMIC_TOSS, MOVE_ROCK_TOMB, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x4E, // MALE ADAMANT
+ .nickname = _("MACHAMP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PINSIR,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_ROCK_TOMB, MOVE_SEISMIC_TOSS, MOVE_SUBMISSION, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("PINSIR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAROWAK,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_BRICK_BREAK, MOVE_BONEMERANG, MOVE_AERIAL_ACE, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("MAROWAK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HITMONCHAN,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_MACH_PUNCH, MOVE_THUNDER_PUNCH, MOVE_DOUBLE_TEAM, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x03, // MALE ADAMANT
+ .nickname = _("HITMONCHAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ELECTABUZZ,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_THUNDER_PUNCH, MOVE_BRICK_BREAK, MOVE_THUNDER_WAVE, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x4F, // MALE NAUGHTY
+ .nickname = _("ELECTABUZZ"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_POLIWRATH,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_FOCUS_PUNCH, MOVE_SURF, MOVE_BULK_UP, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x97, // MALE LONELY
+ .nickname = _("POLIWRATH"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x000166b4
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Double_1 = {
+ .id = 13,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_DRAGON_SCALE,
+ .trainers = {
+ {
+ .name = _("JEN & KIRA"),
+ .facilityClass = FACILITY_CLASS_TWINS_2,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_EHEHE, EC_WORD_YAY, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_I, EC_WORD_WILL, EC_WORD_TRY, EC_WORD_TO, EC_WORD_GET, EC_WORD_BETTER},
+ .mons = {
+ {
+ .species = SPECIES_JOLTEON,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_QUICK_ATTACK, MOVE_THUNDERBOLT, MOVE_DOUBLE_KICK, MOVE_PIN_MISSILE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x29, // MALE MILD
+ .nickname = _("JOLTEON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ESPEON,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_QUICK_ATTACK, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_BITE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x29, // MALE MILD
+ .nickname = _("ESPEON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FLAREON,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_QUICK_ATTACK, MOVE_FLAMETHROWER, MOVE_SHADOW_BALL, MOVE_IRON_TAIL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x33, // MALE LONELY
+ .nickname = _("FLAREON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_VAPOREON,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_QUICK_ATTACK, MOVE_WATERFALL, MOVE_ICE_BEAM, MOVE_BITE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x10, // FEMALE MILD
+ .nickname = _("VAPOREON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_EEVEE,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_QUICK_ATTACK, MOVE_DOUBLE_EDGE, MOVE_BITE, MOVE_IRON_TAIL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x10, // FEMALE MILD
+ .nickname = _("EEVEE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_UMBREON,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_QUICK_ATTACK, MOVE_FAINT_ATTACK, MOVE_SHADOW_BALL, MOVE_IRON_TAIL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x10, // FEMALE MILD
+ .nickname = _("UMBREON"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("JEN & KIRA"),
+ .facilityClass = FACILITY_CLASS_TWINS_2,
+ .textColor = 3,
+ .speechBefore = {EC_WORD_LET_S, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL, 0xFFFF, 0xFFFF},
+ .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_WE, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_WORK, EC_WORD_BETTER, 0xFFFF},
+ .mons = {
+ {
+ .species = SPECIES_JOLTEON,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_THUNDERBOLT},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 10 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("JOLTEON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ESPEON,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_HELPING_HAND, MOVE_PSYCHIC},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 10 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("ESPEON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FLAREON,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_FLAMETHROWER},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 13 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0D, // FEMALE JOLLY
+ .nickname = _("FLAREON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_VAPOREON,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_SURF},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 35 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x23, // MALE TIMID
+ .nickname = _("VAPOREON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_EEVEE,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_DOUBLE_EDGE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 35 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x23, // MALE TIMID
+ .nickname = _("EEVEE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_UMBREON,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_FAINT_ATTACK},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 35 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x23, // MALE TIMID
+ .nickname = _("UMBREON"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00017fc2
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Double_4 = {
+ .id = 14,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_MENTAL_HERB,
+ .trainers = {
+ {
+ .name = _("ISAC & MAG"),
+ .facilityClass = FACILITY_CLASS_COOL_COUPLE,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_OUR, EC_MOVE(EARTHQUAKE), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SHAKY},
+ .speechWin = {EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_I_AM, EC_WORD_ALL, EC_WORD_SHAKY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_MY, EC_WORD_GIRL, EC_WORD_ISN_T, EC_WORD_SHAKY, EC_WORD_SHE_IS, EC_WORD_LOVEY_DOVEY},
+ .mons = {
+ {
+ .species = SPECIES_NIDOKING,
+ .heldItem = ITEM_SOFT_SAND,
+ .moves = {MOVE_EARTHQUAKE, MOVE_MEGAHORN, MOVE_SHADOW_BALL, MOVE_FIRE_BLAST},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x03, // MALE ADAMANT
+ .nickname = _("NIDOKING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GLIGAR,
+ .heldItem = ITEM_SOFT_SAND,
+ .moves = {MOVE_EARTHQUAKE, MOVE_QUICK_ATTACK, MOVE_AERIAL_ACE, MOVE_IRON_TAIL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("GLIGAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_QUAGSIRE,
+ .heldItem = ITEM_SOFT_SAND,
+ .moves = {MOVE_EARTHQUAKE, MOVE_SLUDGE_BOMB, MOVE_BLIZZARD, MOVE_BRICK_BREAK},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("QUAGSIRE"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_PILOSWINE,
+ .heldItem = ITEM_SOFT_SAND,
+ .moves = {MOVE_EARTHQUAKE, MOVE_BLIZZARD, MOVE_ANCIENT_POWER, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("PILOSWINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_SOFT_SAND,
+ .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_BLAST, MOVE_BRICK_BREAK, MOVE_EXPLOSION},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("GOLEM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_STEELIX,
+ .heldItem = ITEM_SOFT_SAND,
+ .moves = {MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_DRAGON_BREATH, MOVE_DOUBLE_EDGE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("STEELIX"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("ISAC & MAG"),
+ .facilityClass = FACILITY_CLASS_COOL_COUPLE,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_DOESN_T, EC_WORD_GET, EC_WORD_ALL, EC_WORD_SHAKY},
+ .speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_LIE, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SHAKY},
+ .speechAfter = {EC_WORD_I_AM, EC_WORD_LOVEY_DOVEY, EC_WORD_FOR, EC_WORD_HIM, EC_WORD_NOT, EC_WORD_SHAKY},
+ .mons = {
+ {
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_SANDSTORM, MOVE_STEEL_WING, MOVE_AIR_CUTTER, MOVE_SPIKES},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("SKARMORY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MANTINE,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("MANTINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_JUMPLUFF,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_TAIL_WHIP, MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_AERIAL_ACE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("JUMPLUFF"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GENGAR,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT, MOVE_PSYCHIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("GENGAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_GIGA_DRAIN, MOVE_POISON_FANG, MOVE_FLY, MOVE_STEEL_WING},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("CROBAT"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_XATU,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE, MOVE_LIGHT_SCREEN},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("XATU"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016bb0
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Knockout_8 = {
+ .id = 15,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_KNOCKOUT,
+ .prize = TTPRIZE_BRIGHT_POWDER,
+ .trainers = {
+ {
+ .name = _("CHELSEA"),
+ .facilityClass = FACILITY_CLASS_PKMN_RANGER_4,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_IMPORTANT, EC_WORD_ISN_T_IT_QUES},
+ .speechWin = {EC_WORD_YOU, EC_WORD_TAKE, EC_WORD_THE, EC_WORD_LOSS, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_BE, EC_WORD_KIND, EC_WORD_TO, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD},
+ .speechAfter = {EC_WORD_DON_T, EC_WORD_EVER, EC_WORD_POISON, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD},
+ .mons = {
+ {
+ .species = SPECIES_VILEPLUME,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_INGRAIN, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_STUN_SPORE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("VILEPLUME"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_WATERFALL, MOVE_RECOVER},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x10, // GENDERLESS MILD
+ .nickname = _("STARMIE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_URSARING,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_FAINT_ATTACK, MOVE_BODY_SLAM, MOVE_BRICK_BREAK, MOVE_ROCK_TOMB},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x01, // FEMALE LONELY
+ .nickname = _("URSARING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NOCTOWL,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_FAINT_ATTACK, MOVE_AERIAL_ACE},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x01, // FEMALE LONELY
+ .nickname = _("NOCTOWL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NINETALES,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_GRUDGE, MOVE_OVERHEAT, MOVE_FAINT_ATTACK, MOVE_WILL_O_WISP},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x10, // FEMALE MILD
+ .nickname = _("NINETALES"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_LEDIAN,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_SILVER_WIND, MOVE_SWIFT, MOVE_AERIAL_ACE, MOVE_TOXIC},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x01, // FEMALE LONELY
+ .nickname = _("LEDIAN"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("TRENTON"),
+ .facilityClass = FACILITY_CLASS_PKMN_RANGER_3,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_I, EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREAT, EC_WORD_GREEN, EC_WORD_WORLD},
+ .speechWin = {EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_YOURS},
+ .speechLose = {EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_MOVE2(PROTECT), EC_WORD_AND, EC_WORD_RESUSCITATE, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD},
+ .mons = {
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_EARTHQUAKE, MOVE_WATERFALL, MOVE_BLIZZARD, MOVE_HYPER_BEAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x88, // MALE HASTY
+ .nickname = _("GYARADOS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_VICTREEBEL,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_REFLECT, MOVE_ATTRACT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x8E, // MALE QUIET
+ .nickname = _("VICTREEBEL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DONPHAN,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x97, // MALE LONELY
+ .nickname = _("DONPHAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FEAROW,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_FAINT_ATTACK, MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_DOUBLE_TEAM},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x97, // MALE LONELY
+ .nickname = _("FEAROW"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ARCANINE,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_EXTREME_SPEED, MOVE_FIRE_BLAST, MOVE_CRUNCH, MOVE_AERIAL_ACE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x4F, // MALE NAUGHTY
+ .nickname = _("ARCANINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ARIADOS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_PSYCHIC, MOVE_SLUDGE_BOMB, MOVE_SIGNAL_BEAM, MOVE_TOXIC},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x97, // MALE LONELY
+ .nickname = _("ARIADOS"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("ALBERT"),
+ .facilityClass = FACILITY_CLASS_COOLTRAINER_3,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_HERE},
+ .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_THINGS, EC_WORD_EXCITING},
+ .speechLose = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_THAT_WAS, EC_WORD_WILD, EC_WORD_AND, EC_WORD_EXCITING},
+ .speechAfter = {EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_AFTER, EC_WORD_THAT, EC_WORD_EXCITING, EC_WORD_MATCH},
+ .mons = {
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_TWISTER, MOVE_OCTAZOOKA, MOVE_AURORA_BEAM, MOVE_RETURN},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x15, // FEMALE GENTLE
+ .nickname = _("KINGDRA"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_DOUBLE_EDGE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x7F, // MALE BRAVE
+ .nickname = _("GOLEM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DRAGONITE,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_THUNDER, MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_DRAGON_CLAW},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x01, // FEMALE LONELY
+ .nickname = _("DRAGONITE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TYRANITAR,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_THUNDER, MOVE_FIRE_BLAST},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x97, // MALE LONELY
+ .nickname = _("TYRANITAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_AMPHAROS,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_REFLECT, MOVE_THUNDER, MOVE_BRICK_BREAK, MOVE_RETURN},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x13, // FEMALE RASH
+ .nickname = _("AMPHAROS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_VENUSAUR,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_GIGA_DRAIN, MOVE_LEECH_SEED, MOVE_TOXIC, MOVE_BODY_SLAM},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x2A, // MALE QUIET
+ .nickname = _("VENUSAUR"),
+ .friendship = 255
+ },
+ }
+ },
+ },
+ .checksum = 0x0001844c
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Knockout_3 = {
+ .id = 16,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_KNOCKOUT,
+ .prize = TTPRIZE_CALCIUM,
+ .trainers = {
+ {
+ .name = _("CAMRYN"),
+ .facilityClass = FACILITY_CLASS_PICNICKER_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_I, EC_WORD_WON_T, EC_WORD_LOSE, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_I, EC_WORD_WOULD, EC_WORD_WIN},
+ .speechLose = {EC_WORD_OH_QUES, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_DID, EC_WORD_I, EC_WORD_LOSE, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .mons = {
+ {
+ .species = SPECIES_MURKROW,
+ .heldItem = ITEM_BLACK_GLASSES,
+ .moves = {MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_FAINT_ATTACK, MOVE_CONFUSE_RAY},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("MURKROW"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RAPIDASH,
+ .heldItem = ITEM_CHARCOAL,
+ .moves = {MOVE_BOUNCE, MOVE_FLAMETHROWER, MOVE_QUICK_ATTACK, MOVE_DOUBLE_KICK},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("RAPIDASH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MILTANK,
+ .heldItem = ITEM_SILK_SCARF,
+ .moves = {MOVE_MILK_DRINK, MOVE_BRICK_BREAK, MOVE_BODY_SLAM, MOVE_SHADOW_BALL},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("MILTANK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = ITEM_MYSTIC_WATER,
+ .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_LIGHT_SCREEN},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("GOLDUCK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SANDSLASH,
+ .heldItem = ITEM_SOFT_SAND,
+ .moves = {MOVE_SANDSTORM, MOVE_AERIAL_ACE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("SANDSLASH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDOQUEEN,
+ .heldItem = ITEM_HARD_STONE,
+ .moves = {MOVE_EARTHQUAKE, MOVE_SUPERPOWER, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("NIDOQUEEN"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("NATALIA"),
+ .facilityClass = FACILITY_CLASS_AROMA_LADY_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_THIS, EC_MOVE(SWEET_SCENT), EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_IT, EC_WORD_QUES},
+ .speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_NICE, EC_WORD_QUES, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_THAT, EC_WORD_WASN_T, EC_WORD_GOOD, EC_WORD_QUES, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_I, EC_MOVE2(REFRESH), EC_WORD_THINGS, EC_WORD_WITH, EC_WORD_REFRESHING, EC_MOVE(AROMATHERAPY)},
+ .mons = {
+ {
+ .species = SPECIES_BELLOSSOM,
+ .heldItem = ITEM_PERSIM_BERRY,
+ .moves = {MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_PETAL_DANCE, MOVE_FLAIL},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("BELLOSSOM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_VICTREEBEL,
+ .heldItem = ITEM_MIRACLE_SEED,
+ .moves = {MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("VICTREEBEL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PARASECT,
+ .heldItem = ITEM_MIRACLE_SEED,
+ .moves = {MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_GIGA_DRAIN, MOVE_AERIAL_ACE},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("PARASECT"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_VILEPLUME,
+ .heldItem = ITEM_PERSIM_BERRY,
+ .moves = {MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_PETAL_DANCE, MOVE_SLUDGE_BOMB},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("VILEPLUME"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_VENUSAUR,
+ .heldItem = ITEM_PERSIM_BERRY,
+ .moves = {MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_PETAL_DANCE, MOVE_SLUDGE_BOMB},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("VENUSAUR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MEGANIUM,
+ .heldItem = ITEM_MIRACLE_SEED,
+ .moves = {MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_GIGA_DRAIN, MOVE_BODY_SLAM},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x25, // MALE SERIOUS
+ .nickname = _("MEGANIUM"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("KATHLEEN"),
+ .facilityClass = FACILITY_CLASS_COOLTRAINER_4,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_TOO, EC_WORD_BAD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU},
+ .speechWin = {EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_ELLIPSIS},
+ .speechAfter = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_PURE_POWER, EC_WORD_THAT, EC_WORD_IS, EC_WORD_NATURAL},
+ .mons = {
+ {
+ .species = SPECIES_MAROWAK,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_BONEMERANG, MOVE_AERIAL_ACE},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("MAROWAK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_LAPRAS,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_SURF, MOVE_BLIZZARD, MOVE_PSYCHIC, MOVE_THUNDER},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("LAPRAS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ARCANINE,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_EXTREME_SPEED, MOVE_FLAMETHROWER, MOVE_CRUNCH, MOVE_AERIAL_ACE},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x57, // MALE SERIOUS
+ .nickname = _("ARCANINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_DOUBLE_TEAM, MOVE_IRON_TAIL},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x89, // MALE SERIOUS
+ .nickname = _("RAICHU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOGETIC,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_ANCIENT_POWER, MOVE_SWEET_KISS, MOVE_PSYCHIC, MOVE_MAGICAL_LEAF},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("TOGETIC"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SNORLAX,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_BODY_SLAM, MOVE_REST, MOVE_SNORE, MOVE_SHADOW_BALL},
+ .hpEV = 84,
+ .attackEV = 84,
+ .defenseEV = 84,
+ .speedEV = 84,
+ .spAttackEV = 84,
+ .spDefenseEV = 84,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0C, // FEMALE SERIOUS
+ .nickname = _("SNORLAX"),
+ .friendship = 255
+ },
+ }
+ },
+ },
+ .checksum = 0x0001738c
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Single_6 = {
+ .id = 17,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_CARBOS,
+ .trainers = {
+ {
+ .name = _("BRADEN"),
+ .facilityClass = FACILITY_CLASS_SWIMMER_MALE_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_PRETTY, EC_WORD_HAPPY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_TOUGHNESS},
+ .speechWin = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, EC_WORD_SERIOUSLY, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES},
+ .speechLose = {EC_WORD_YOU, EC_WORD_SHOCKED, EC_WORD_ME, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HAPPINESS},
+ .speechAfter = {EC_WORD_NICE, EC_WORD_WORK, EC_WORD_YOU, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_FABULOUS},
+ .mons = {
+ {
+ .species = SPECIES_VAPOREON,
+ .heldItem = ITEM_CHERI_BERRY,
+ .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_SHADOW_BALL, MOVE_WISH},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 110,
+ .speedEV = 0,
+ .spAttackEV = 200,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("VAPOREON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SLOWBRO,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_SURF, MOVE_CONFUSION, MOVE_AMNESIA, MOVE_DISABLE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x91, // MALE CALM
+ .nickname = _("SLOWBRO"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_POLITOED,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_HYPNOSIS, MOVE_SWAGGER},
+ .hpEV = 100,
+ .attackEV = 100,
+ .defenseEV = 110,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("POLITOED"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = ITEM_POISON_BARB,
+ .moves = {MOVE_SURF, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM, MOVE_MIRROR_COAT},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 110,
+ .speedEV = 0,
+ .spAttackEV = 200,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("TENTACRUEL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RATICATE,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_SUPER_FANG, MOVE_HYPER_FANG, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK},
+ .hpEV = 110,
+ .attackEV = 200,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("RATICATE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DUNSPARCE,
+ .heldItem = ITEM_PERSIM_BERRY,
+ .moves = {MOVE_WATER_PULSE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_YAWN},
+ .hpEV = 255,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x7F, // MALE BRAVE
+ .nickname = _("DUNSPARCE"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016530
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Mixed_1 = {
+ .id = 18,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_KINGS_ROCK,
+ .trainers = {
+ {
+ .name = _("ALLYSON"),
+ .facilityClass = FACILITY_CLASS_COOLTRAINER_4,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_ABOUT, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_TODAY},
+ .speechWin = {EC_WORD_YES, EC_WORD_EXCL_EXCL, EC_WORD_I, EC_WORD_ADORE, EC_WORD_MYSELF, EC_WORD_TODAY},
+ .speechLose = {EC_WORD_I_WAS, EC_WORD_CONFUSED, EC_WORD_ABOUT, EC_WORD_THINGS, EC_WORD_I, EC_WORD_THINK},
+ .speechAfter = {EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_STRONG, EC_WORD_TODAY, EC_WORD_THAT_S, EC_WORD_ALL},
+ .mons = {
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_THUNDER_WAVE, MOVE_RECOVER},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x0F, // GENDERLESS MODEST
+ .nickname = _("STARMIE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_BLASTOISE,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_MIRROR_COAT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x32, // MALE HARDY
+ .nickname = _("BLASTOISE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_DRAGON_BREATH, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x8C, // MALE MODEST
+ .nickname = _("KINGDRA"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_QUAGSIRE,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 155,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("QUAGSIRE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_LAPRAS,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_PSYCHIC, MOVE_ATTRACT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("LAPRAS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DRAGONITE,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_LIGHT_SCREEN},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 155,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("DRAGONITE"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016e32
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Single_1 = {
+ .id = 19,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_UP_GRADE,
+ .trainers = {
+ {
+ .name = _("ALBERTO"),
+ .facilityClass = FACILITY_CLASS_SAILOR_2,
+ .textColor = 5,
+ .speechBefore = {EC_WORD_LET_S, EC_WORD_GET, EC_WORD_WITH, EC_WORD_IT, EC_WORD_RIGHT, EC_WORD_AWAY},
+ .speechWin = {EC_WORD_YO, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_NOW, EC_WORD_EH_QUES},
+ .speechLose = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_OVER, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER},
+ .speechAfter = {EC_WORD_OKAY, EC_WORD_I, EC_WORD_CONCEDE, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_LOST},
+ .mons = {
+ {
+ .species = SPECIES_FERALIGATR,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_DRAGON_CLAW},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x32, // MALE HARDY
+ .nickname = _("FERALIGATR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_POLIWRATH,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_MEGA_KICK, MOVE_ROCK_TOMB},
+ .hpEV = 100,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 1,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("POLIWRATH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_KANGASKHAN,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_CRUSH_CLAW, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_AERIAL_ACE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 130,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 125,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("KANGASKHAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MILTANK,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ROCK_TOMB, MOVE_MILK_DRINK},
+ .hpEV = 155,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("MILTANK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_CROSS_CHOP, MOVE_SURF, MOVE_ICE_BEAM, MOVE_DISABLE},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 210,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 1,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("GOLDUCK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GRANBULL,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 130,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 125,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0xCA, // MALE BRAVE
+ .nickname = _("GRANBULL"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016890
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Mixed_5 = {
+ .id = 20,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_METAL_COAT,
+ .trainers = {
+ {
+ .name = _("KAT & KIPP"),
+ .facilityClass = FACILITY_CLASS_SIS_AND_BRO_2,
+ .textColor = 4,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_MY, EC_WORD_BEST},
+ .speechWin = {EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO, EC_WORD_MY, EC_WORD_AWESOME, EC_WORD_BROTHER},
+ .speechLose = {EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_IT, EC_WORD_GOES},
+ .speechAfter = {EC_WORD_OKAY, EC_WORD_MY, EC_WORD_AWESOME, EC_WORD_BROTHER, EC_WORD_FIGHT, EC_WORD_FIGHT},
+ .mons = {
+ {
+ .species = SPECIES_SNEASEL,
+ .heldItem = ITEM_RAWST_BERRY,
+ .moves = {MOVE_DIG, MOVE_TORMENT, MOVE_REFLECT, MOVE_TAUNT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x0D, // FEMALE JOLLY
+ .nickname = _("SNEASEL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_OMASTAR,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_DIVE, MOVE_LEER, MOVE_TICKLE, MOVE_SUPERSONIC},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x2D, // MALE CALM
+ .nickname = _("OMASTAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DEWGONG,
+ .heldItem = ITEM_PERSIM_BERRY,
+ .moves = {MOVE_DIVE, MOVE_ENCORE, MOVE_GROWL, MOVE_SAFEGUARD},
+ .hpEV = 200,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 210,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x14, // FEMALE CALM
+ .nickname = _("DEWGONG"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_QUAGSIRE,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_DIVE, MOVE_YAWN, MOVE_AMNESIA, MOVE_SAFEGUARD},
+ .hpEV = 200,
+ .attackEV = 0,
+ .defenseEV = 110,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x91, // MALE CALM
+ .nickname = _("QUAGSIRE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CORSOLA,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_DIG, MOVE_MIRROR_COAT, MOVE_RECOVER, MOVE_CONFUSE_RAY},
+ .hpEV = 155,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x17, // FEMALE CAREFUL
+ .nickname = _("CORSOLA"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SANDSLASH,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_DIG, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_SAND_ATTACK},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x94, // MALE CAREFUL
+ .nickname = _("SANDSLASH"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("KAT & KIPP"),
+ .facilityClass = FACILITY_CLASS_SIS_AND_BRO_2,
+ .textColor = 4,
+ .speechBefore = {EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_NEVER, EC_WORD_LOSE, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE_RE, EC_WORD_TOO_STRONG, EC_WORD_TO, EC_WORD_LOSE},
+ .speechLose = {EC_WORD_WHAT, EC_WORD_HUH_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_JOKING, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_WAAAH, EC_WORD_WAAAH, EC_WORD_OH, EC_WORD_BIG, EC_WORD_SISTER, EC_WORD_EXCL},
+ .mons = {
+ {
+ .species = SPECIES_FURRET,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_DIG, MOVE_AMNESIA, MOVE_DEFENSE_CURL, MOVE_FOLLOW_ME},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("FURRET"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_AZUMARILL,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = {MOVE_DIVE, MOVE_LIGHT_SCREEN, MOVE_TAIL_WHIP, MOVE_DEFENSE_CURL},
+ .hpEV = 155,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x14, // FEMALE CALM
+ .nickname = _("AZUMARILL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_KINGLER,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_DIVE, MOVE_HARDEN, MOVE_LEER, MOVE_AMNESIA},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x91, // MALE CALM
+ .nickname = _("KINGLER"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CLOYSTER,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_DIVE, MOVE_WITHDRAW, MOVE_PROTECT, MOVE_SUPERSONIC},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x14, // FEMALE CALM
+ .nickname = _("CLOYSTER"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_QUAGSIRE,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_DIG, MOVE_YAWN, MOVE_AMNESIA, MOVE_SAFEGUARD},
+ .hpEV = 200,
+ .attackEV = 0,
+ .defenseEV = 110,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x94, // MALE CAREFUL
+ .nickname = _("QUAGSIRE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_KABUTOPS,
+ .heldItem = ITEM_PECHA_BERRY,
+ .moves = {MOVE_DIG, MOVE_SAND_ATTACK, MOVE_ENDURE, MOVE_CONFUSE_RAY},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x30, // MALE CAREFUL
+ .nickname = _("KABUTOPS"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00015d7c
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Double_8 = {
+ .id = 21,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_MENTAL_HERB,
+ .trainers = {
+ {
+ .name = _("GEB&MEGAN"),
+ .facilityClass = FACILITY_CLASS_COOL_COUPLE,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_OPPONENT, EC_WORD_QUES, EC_WORD_PUSHOVER, EC_WORD_HAHAHA},
+ .speechWin = {EC_WORD_HAHAHA, EC_WORD_SORRY, EC_WORD_MY, EC_WORD_FRIEND, EC_WORD_TOUGH, EC_WORD_LOSS},
+ .speechLose = {EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_FRIEND, EC_WORD_QUES},
+ .speechAfter = {EC_WORD_WON_T, EC_WORD_YOU, EC_WORD_GET, EC_WORD_LOST, EC_WORD_PLEASE, EC_WORD_QUES},
+ .mons = {
+ {
+ .species = SPECIES_POLITOED,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_SURF, MOVE_HYPNOSIS, MOVE_PERISH_SONG, MOVE_SWAGGER},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x8C, // MALE MODEST
+ .nickname = _("POLITOED"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_HYPER_BEAM, MOVE_DRAGON_DANCE, MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("GYARADOS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_LAPRAS,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("LAPRAS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDOQUEEN,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_SUPERPOWER, MOVE_ROCK_SLIDE},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("NIDOQUEEN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_JYNX,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_WATER_PULSE, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_PSYCHIC},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("JYNX"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GIRAFARIG,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_LIGHT_SCREEN, MOVE_CRUNCH, MOVE_PSYCHIC, MOVE_REFLECT},
+ .hpEV = 210,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x8C, // MALE MODEST
+ .nickname = _("GIRAFARIG"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("GEB&MEGAN"),
+ .facilityClass = FACILITY_CLASS_COOL_COUPLE,
+ .textColor = 7,
+ .speechBefore = {EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_FOE, EC_WORD_QUES, EC_WORD_GIGGLE, EC_WORD_ELLIPSIS},
+ .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, 0xFFFF},
+ .speechLose = {EC_WORD_MY, EC_WORD_WORD, EC_WORD_THIS, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE},
+ .speechAfter = {EC_WORD_WE, EC_WORD_NEED, EC_WORD_TO, EC_WORD_TRAIN, EC_WORD_SOME, EC_WORD_MORE},
+ .mons = {
+ {
+ .species = SPECIES_MAROWAK,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x94, // MALE CAREFUL
+ .nickname = _("MAROWAK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_URSARING,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("URSARING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SLOWKING,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_SHADOW_BALL},
+ .hpEV = 0,
+ .attackEV = 110,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 200,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("SLOWKING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_PSYCHIC, MOVE_PROTECT, MOVE_LIGHT_SCREEN, MOVE_REFLECT},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x41, // MALE MODEST
+ .nickname = _("ALAKAZAM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDOKING,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_SURF, MOVE_MEGAHORN, MOVE_THUNDERBOLT, MOVE_ICE_BEAM},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x00, // MALE HARDY
+ .nickname = _("NIDOKING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_MEGAHORN, MOVE_ROCK_SLIDE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x93, // MALE SASSY
+ .nickname = _("RHYDON"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x000160f4
+};
+
+static const struct TrainerTowerFloor gUnknown_847FD0C = {
+ .id = 22,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_ZINC,
+ .trainers = {
+ {
+ .name = _("LISA&LEAH"),
+ .facilityClass = FACILITY_CLASS_TWINS_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_ABSOLUTELY, EC_WORD_WE_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
+ .speechLose = {EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_EXCUSE_ME, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_ALL, EC_WORD_TOO_STRONG, 0xFFFF},
+ .mons = {
+ {
+ .species = SPECIES_POLIWAG,
+ .heldItem = ITEM_CHERI_BERRY,
+ .moves = {MOVE_SURF, MOVE_PROTECT, MOVE_TOXIC, MOVE_DOUBLE_TEAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x87, // MALE TIMID
+ .nickname = _("POLIWAG"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SQUIRTLE,
+ .heldItem = ITEM_MYSTIC_WATER,
+ .moves = {MOVE_WATER_PULSE, MOVE_PROTECT, MOVE_TOXIC, MOVE_MIRROR_COAT},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x2D, // MALE CALM
+ .nickname = _("SQUIRTLE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CHINCHOU,
+ .heldItem = ITEM_MAGNET,
+ .moves = {MOVE_SURF, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY, MOVE_THUNDERBOLT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("CHINCHOU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDORAN_F,
+ .heldItem = ITEM_POISON_BARB,
+ .moves = {MOVE_WATER_PULSE, MOVE_SLUDGE_BOMB, MOVE_CRUNCH, MOVE_DIG},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("NIDORAN♀"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CLEFAIRY,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_SING, MOVE_MINIMIZE},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("CLEFAIRY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HORSEA,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_SURF, MOVE_SMOKESCREEN, MOVE_ATTRACT, MOVE_DRAGON_RAGE},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x2D, // MALE CALM
+ .nickname = _("HORSEA"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("LISA&LEAH"),
+ .facilityClass = FACILITY_CLASS_TWINS_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_CAN, EC_WORD_WE, EC_WORD_WIN, EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_EXCITING},
+ .speechWin = {EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY},
+ .speechLose = {EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF},
+ .speechAfter = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_MOVE2(BEAT_UP), EC_WORD_ON, EC_WORD_CHILDREN},
+ .mons = {
+ {
+ .species = SPECIES_WOOPER,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_YAWN, MOVE_FLASH},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x93, // MALE SASSY
+ .nickname = _("WOOPER"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PSYDUCK,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_SURF, MOVE_CROSS_CHOP, MOVE_HYPNOSIS, MOVE_DISABLE},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 1,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("PSYDUCK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SNUBBULL,
+ .heldItem = ITEM_PECHA_BERRY,
+ .moves = {MOVE_WATER_PULSE, MOVE_THUNDER_WAVE, MOVE_CRUNCH, MOVE_SHADOW_BALL},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("SNUBBULL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_JIGGLYPUFF,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_WATER_PULSE, MOVE_THUNDER_WAVE, MOVE_SING, MOVE_DISABLE},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("JIGGLYPUFF"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDORAN_M,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_WATER_PULSE, MOVE_SLUDGE_BOMB, MOVE_HORN_DRILL, MOVE_DIG},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x00, // MALE HARDY
+ .nickname = _("NIDORAN♂"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOTODILE,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_SURF, MOVE_PROTECT, MOVE_TOXIC, MOVE_DOUBLE_TEAM},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x2D, // MALE CALM
+ .nickname = _("TOTODILE"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(15),
+ },
+ .checksum = 0x000197d4
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Knockout_7 = {
+ .id = 23,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_KNOCKOUT,
+ .prize = TTPRIZE_PROTEIN,
+ .trainers = {
+ {
+ .name = _("PRISCILLA"),
+ .facilityClass = FACILITY_CLASS_TUBER_3,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_A_LITTLE, EC_WORD_POKEMON, EC_WORD_GIRL, EC_WORD_HERE_I_COME, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DID, EC_WORD_I, EC_WORD_WIN, EC_WORD_QUES},
+ .speechLose = {EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_ELLIPSIS},
+ .speechAfter = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_NICE, EC_WORD_TRAINER, EC_WORD_THANK_YOU, EC_WORD_EXCL},
+ .mons = {
+ {
+ .species = SPECIES_GOLDEEN,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_WATER_PULSE, MOVE_MEGAHORN, MOVE_SUPERSONIC, MOVE_ICE_BEAM},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("GOLDEEN"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_SEAKING,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_SURF, MOVE_MEGAHORN, MOVE_HORN_DRILL, MOVE_PROTECT},
+ .hpEV = 100,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("SEAKING"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_SURF, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ICE_BEAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 210,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x8C, // MALE MODEST
+ .nickname = _("LANTURN"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_ICE_BEAM, MOVE_RAIN_DANCE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 210,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("LANTURN"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_GOLDEEN,
+ .heldItem = ITEM_APICOT_BERRY,
+ .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_TOXIC, MOVE_PSYBEAM},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("GOLDEEN"),
+ .friendship = 0
+ },
+ {
+ .species = SPECIES_SEAKING,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_SURF, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PSYBEAM},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("SEAKING"),
+ .friendship = 0
+ },
+ }
+ },
+ {
+ .name = _("CHARLOTTE"),
+ .facilityClass = FACILITY_CLASS_LADY_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_HELLO, EC_WORD_THERE, EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY},
+ .speechWin = {EC_WORD_OH, EC_WORD_MY, EC_WORD_MY, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SORRY},
+ .speechLose = {EC_WORD_YOU_RE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY},
+ .speechAfter = {EC_WORD_HOHOHO, EC_WORD_THANK_YOU, EC_WORD_FOR, EC_WORD_AN, EC_WORD_AMUSING, EC_WORD_BATTLE},
+ .mons = {
+ {
+ .species = SPECIES_OCTILLERY,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_OCTAZOOKA, MOVE_ICE_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER},
+ .hpEV = 55,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("OCTILLERY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_QWILFISH,
+ .heldItem = ITEM_PERSIM_BERRY,
+ .moves = {MOVE_SURF, MOVE_TOXIC, MOVE_REVENGE, MOVE_DOUBLE_TEAM},
+ .hpEV = 200,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 210,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x14, // FEMALE CALM
+ .nickname = _("QWILFISH"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_REMORAID,
+ .heldItem = ITEM_PECHA_BERRY,
+ .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_THUNDER_WAVE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("REMORAID"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_REMORAID,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = {MOVE_WATER_PULSE, MOVE_BLIZZARD, MOVE_FIRE_BLAST, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("REMORAID"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_OCTILLERY,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_OCTAZOOKA, MOVE_SLUDGE_BOMB, MOVE_THUNDER_WAVE, MOVE_HYPER_BEAM},
+ .hpEV = 155,
+ .attackEV = 100,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x93, // MALE SASSY
+ .nickname = _("OCTILLERY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_QWILFISH,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_DESTINY_BOND},
+ .hpEV = 100,
+ .attackEV = 100,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 210,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("QWILFISH"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("SHANIA"),
+ .facilityClass = FACILITY_CLASS_SWIMMER_FEMALE_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_HEROINE, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM},
+ .speechWin = {EC_WORD_AHAHA, EC_WORD_NO, EC_WORD_WAY, EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_SERIOUSLY},
+ .speechLose = {EC_WORD_WHY, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LIE},
+ .speechAfter = {EC_WORD_NICE, EC_WORD_BATTLE, EC_WORD_THANKS, EC_WORD_FOR, EC_WORD_ENTERTAINING, EC_WORD_ME},
+ .mons = {
+ {
+ .species = SPECIES_MANTINE,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("MANTINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGIKARP,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_SPLASH, MOVE_TACKLE, MOVE_NONE, MOVE_NONE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0D, // FEMALE JOLLY
+ .nickname = _("MAGIKARP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MANTINE,
+ .heldItem = ITEM_MENTAL_HERB,
+ .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY, MOVE_ATTRACT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("MANTINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_HYPER_BEAM, MOVE_THUNDER_WAVE, MOVE_EARTHQUAKE, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("GYARADOS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGIKARP,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_FLAIL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x94, // MALE CAREFUL
+ .nickname = _("MAGIKARP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_THUNDER_WAVE, MOVE_EARTHQUAKE, MOVE_DRAGON_DANCE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("GYARADOS"),
+ .friendship = 255
+ },
+ }
+ },
+ },
+ .checksum = 0x0001521d
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Knockout_4 = {
+ .id = 24,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_KNOCKOUT,
+ .prize = TTPRIZE_DRAGON_SCALE,
+ .trainers = {
+ {
+ .name = _("BRENNAN"),
+ .facilityClass = FACILITY_CLASS_SAILOR_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_TAKE, EC_WORD_THINGS, EC_WORD_EASY, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_IMPORTANT},
+ .speechWin = {EC_WORD_YOU, EC_WORD_LOSE, EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_OOPS, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_AN, EC_WORD_EASY, EC_WORD_WIN},
+ .speechAfter = {EC_WORD_I, EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_YOU, EC_WORD_BUT, EC_WORD_ELLIPSIS},
+ .mons = {
+ {
+ .species = SPECIES_LAPRAS,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = {MOVE_HYDRO_PUMP, MOVE_PSYCHIC, MOVE_ATTRACT, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 255,
+ .otId = 15 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("LAPRAS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = {MOVE_HYDRO_PUMP, MOVE_BLIZZARD, MOVE_DRAGON_BREATH, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x8C, // MALE MODEST
+ .nickname = _("KINGDRA"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_HYPER_BEAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 130,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 125,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x4E, // MALE ADAMANT
+ .nickname = _("MACHAMP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CHANSEY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = {MOVE_WATER_PULSE, MOVE_SOFT_BOILED, MOVE_MINIMIZE, MOVE_THUNDER_WAVE},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x05, // FEMALE BOLD
+ .nickname = _("CHANSEY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TAUROS,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SWAGGER},
+ .hpEV = 110,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x03, // MALE ADAMANT
+ .nickname = _("TAUROS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SNORLAX,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x21, // MALE IMPISH
+ .nickname = _("SNORLAX"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("KADEN"),
+ .facilityClass = FACILITY_CLASS_FISHERMAN_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_MY, EC_WORD_FISHING, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_IS, EC_WORD_FANTASTIC},
+ .speechWin = {EC_WORD_MY, EC_WORD_FANTASTIC, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_WINS, EC_WORD_OUT},
+ .speechLose = {EC_WORD_UH_OH, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_LOST},
+ .speechAfter = {EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_WON_T, EC_WORD_GET, EC_WORD_ME, EC_WORD_WINS},
+ .mons = {
+ {
+ .species = SPECIES_CHINCHOU,
+ .heldItem = ITEM_MAGNET,
+ .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY, MOVE_PROTECT},
+ .hpEV = 100,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("CHINCHOU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DRATINI,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_WATER_PULSE, MOVE_THUNDER_WAVE, MOVE_DRAGON_BREATH, MOVE_PROTECT},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("DRATINI"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SLOWPOKE,
+ .heldItem = ITEM_PECHA_BERRY,
+ .moves = {MOVE_WATER_PULSE, MOVE_YAWN, MOVE_DISABLE, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("SLOWPOKE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGIKARP,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_SPLASH, MOVE_FLAIL, MOVE_TACKLE, MOVE_NONE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 23 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x17, // FEMALE CAREFUL
+ .nickname = _("MAGIKARP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_SEAKING,
+ .heldItem = ITEM_CHERI_BERRY,
+ .moves = {MOVE_HORN_DRILL, MOVE_MEGAHORN, MOVE_SUPERSONIC, MOVE_AGILITY},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 23 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x17, // FEMALE CAREFUL
+ .nickname = _("SEAKING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_MIRROR_COAT, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_TOXIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x96, // MALE HARDY
+ .nickname = _("TENTACRUEL"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("EMANUEL"),
+ .facilityClass = FACILITY_CLASS_GENTLEMAN_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_HMM, EC_WORD_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SKILLED, EC_WORD_QUES},
+ .speechWin = {EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_RIGHT, EC_WORD_ELLIPSIS},
+ .speechLose = {EC_WORD_YOU, EC_WORD_TRULY, EC_WORD_ARE, EC_WORD_A, EC_WORD_MASTER, EC_WORD_TRAINER},
+ .speechAfter = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_THAT, EC_WORD_I_WAS, EC_WORD_YOUR, EC_WORD_OPPONENT},
+ .mons = {
+ {
+ .species = SPECIES_VAPOREON,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_ATTRACT, MOVE_BITE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x14, // FEMALE CALM
+ .nickname = _("VAPOREON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ESPEON,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = {MOVE_PSYCHIC, MOVE_BITE, MOVE_REFLECT, MOVE_REST},
+ .hpEV = 110,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("ESPEON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_BLISSEY,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_WATER_PULSE, MOVE_MINIMIZE, MOVE_THUNDER_WAVE, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x05, // FEMALE BOLD
+ .nickname = _("BLISSEY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_PSYCHIC},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 20 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x14, // GENDERLESS CALM
+ .nickname = _("STARMIE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PERSIAN,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_SLASH, MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_FAKE_OUT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 130,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 125,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0D, // FEMALE JOLLY
+ .nickname = _("PERSIAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_AZUMARILL,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_SURF, MOVE_ENCORE, MOVE_ATTRACT, MOVE_DIG},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x00, // FEMALE HARDY
+ .nickname = _("AZUMARILL"),
+ .friendship = 255
+ },
+ }
+ },
+ },
+ .checksum = 0x0001554b
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Single_3 = {
+ .id = 25,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_METAL_COAT,
+ .trainers = {
+ {
+ .name = _("JARRETT"),
+ .facilityClass = FACILITY_CLASS_JUGGLER,
+ .textColor = 2,
+ .speechBefore = {EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_PARTY, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_CONGRATS, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS, EC_WORD_PARTY, EC_WORD_KID},
+ .speechLose = {EC_WORD_NICE, EC_MOVE(SELF_DESTRUCT), EC_WORD_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_PERFECT},
+ .speechAfter = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_PARTY, EC_WORD_SOME, EC_WORD_MORE, EC_WORD_QUES},
+ .mons = {
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_EXPLOSION, MOVE_LIGHT_SCREEN, MOVE_SCREECH, MOVE_THUNDERBOLT},
+ .hpEV = 10,
+ .attackEV = 150,
+ .defenseEV = 100,
+ .speedEV = 150,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x0D, // GENDERLESS JOLLY
+ .nickname = _("ELECTRODE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_VOLTORB,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_EXPLOSION, MOVE_FLASH, MOVE_DOUBLE_TEAM, MOVE_THUNDER},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x0D, // GENDERLESS JOLLY
+ .nickname = _("VOLTORB"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_WEEZING,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_DESTINY_BOND, MOVE_THUNDERBOLT},
+ .hpEV = 0,
+ .attackEV = 200,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("WEEZING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_EXPLOSION, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 150,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x7F, // MALE BRAVE
+ .nickname = _("GOLEM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_EXEGGCUTE,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_EXPLOSION, MOVE_STUN_SPORE, MOVE_HYPNOSIS, MOVE_GIGA_DRAIN},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("EXEGGCUTE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FORRETRESS,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_DIG, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x84, // MALE RELAXED
+ .nickname = _("FORRETRESS"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00015b6a
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Mixed_3 = {
+ .id = 26,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_DRAGON_SCALE,
+ .trainers = {
+ {
+ .name = _("OWEN"),
+ .facilityClass = FACILITY_CLASS_SUPER_NERD,
+ .textColor = 2,
+ .speechBefore = {EC_WORD_HERE_IT_IS, EC_MOVE2(THUNDER_WAVE), EC_WORD_DON_T, EC_MOVE2(WRAP), EC_WORD_ME, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_ACCEPT, EC_WORD_MY, EC_MOVE2(PRESENT), EC_WORD_OF, EC_MOVE2(THUNDER_WAVE), EC_WORD_EXCL},
+ .speechLose = {EC_MOVE2(WRAP), EC_MOVE(BIND), EC_WORD_ELECTRIC, EC_MOVE2(WHIRLWIND), EC_WORD_SPIRALING, EC_WORD_AROUND},
+ .speechAfter = {EC_MOVE2(WHIRLWIND), EC_WORD_SPIRALING, 0xFFFF, 0xFFFF, EC_WORD_SPIRALING, EC_MOVE2(WHIRLWIND)},
+ .mons = {
+ {
+ .species = SPECIES_MAGNETON,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_PROTECT, MOVE_ZAP_CANNON, MOVE_TOXIC, MOVE_SUPERSONIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 125,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 130,
+ .otId = 10 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x0A, // GENDERLESS TIMID
+ .nickname = _("MAGNETON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PIKACHU,
+ .heldItem = ITEM_LIGHT_BALL,
+ .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_DOUBLE_TEAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 150,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 105,
+ .otId = 15 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("PIKACHU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_JOLTEON,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_DOUBLE_TEAM, MOVE_TOXIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x37, // MALE BOLD
+ .nickname = _("JOLTEON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_BLISSEY,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_THUNDER_WAVE, MOVE_BLIZZARD, MOVE_WATER_PULSE, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x05, // FEMALE BOLD
+ .nickname = _("BLISSEY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PORYGON2,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_THUNDER_WAVE, MOVE_ZAP_CANNON, MOVE_PSYCHIC, MOVE_RECOVER},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 125,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 130,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x05, // GENDERLESS BOLD
+ .nickname = _("PORYGON2"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PORYGON,
+ .heldItem = ITEM_LAX_INCENSE,
+ .moves = {MOVE_THUNDER_WAVE, MOVE_ZAP_CANNON, MOVE_DOUBLE_TEAM, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 5 | (0 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x05, // GENDERLESS BOLD
+ .nickname = _("PORYGON"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x000160ec
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Mixed_2 = {
+ .id = 27,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_SINGLE,
+ .prize = TTPRIZE_PROTEIN,
+ .trainers = {
+ {
+ .name = _("LORENZO"),
+ .facilityClass = FACILITY_CLASS_PSYCHIC_3,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_THIS, EC_WORD_POWER, EC_WORD_IS, EC_WORD_NOW, EC_WORD_COMPLETE, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_NO, EC_WORD_KEEN_EYE, EC_WORD_CAN, EC_WORD_STOP, EC_WORD_MY, EC_WORD_POWER},
+ .speechLose = {EC_WORD_HERE_IT_IS, EC_WORD_EXCL, EC_MOVE(KINESIS), EC_WORD_EXCL, EC_WORD_ELLIPSIS, EC_WORD_WHAT},
+ .speechAfter = {EC_WORD_I, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_THE, EC_MOVE(KINESIS), EC_WORD_HALL_OF_FAME},
+ .mons = {
+ {
+ .species = SPECIES_MR_MIME,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN, MOVE_REFLECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("MR. MIME"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HYPNO,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_PSYCHIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 200,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x8C, // MALE MODEST
+ .nickname = _("HYPNO"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_PSYCHIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 150,
+ .spAttackEV = 155,
+ .spDefenseEV = 50,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("ALAKAZAM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GENGAR,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_THUNDERBOLT, MOVE_SHADOW_BALL, MOVE_HYPNOSIS, MOVE_TOXIC},
+ .hpEV = 0,
+ .attackEV = 200,
+ .defenseEV = 0,
+ .speedEV = 100,
+ .spAttackEV = 55,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x88, // MALE HASTY
+ .nickname = _("GENGAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GIRAFARIG,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_BODY_SLAM, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 155,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 1,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("GIRAFARIG"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = ITEM_APICOT_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_SURF, MOVE_RECOVER, MOVE_ICE_BEAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 55,
+ .speedEV = 250,
+ .spAttackEV = 150,
+ .spDefenseEV = 55,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x0A, // GENDERLESS TIMID
+ .nickname = _("STARMIE"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x0001624b
+};
+
+static const struct TrainerTowerFloor gUnknown_848144C = {
+ .id = 28,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_SCOPE_LENS,
+ .trainers = {
+ {
+ .name = _("NIA & CARL"),
+ .facilityClass = FACILITY_CLASS_COOL_COUPLE,
+ .textColor = 4,
+ .speechBefore = {EC_WORD_HERE_GOES, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_ROMANTIC, EC_WORD_HERO, EC_WORD_STRATEGY},
+ .speechWin = {EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_DIGITAL, EC_WORD_HYPER, EC_WORD_MODE, EC_WORD_POWER},
+ .speechLose = {EC_WORD_MY, EC_WORD_PERFECT, EC_WORD_STRATEGY, EC_WORD_WAS, EC_MOVE2(BEAT_UP), EC_WORD_QUES},
+ .speechAfter = {EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_STRATEGY, EC_WORD_WAS, EC_WORD_DESTROYED, EC_WORD_ELLIPSIS},
+ .mons = {
+ {
+ .species = SPECIES_MUK,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("MUK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GENGAR,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_CONFUSE_RAY, MOVE_PSYCHIC, MOVE_EXPLOSION},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 155,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x15, // FEMALE GENTLE
+ .nickname = _("GENGAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ALAKAZAM,
+ .heldItem = ITEM_GANLON_BERRY,
+ .moves = {MOVE_THUNDER_PUNCH, MOVE_PSYCHIC, MOVE_RECOVER, MOVE_REFLECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("ALAKAZAM"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_JOLTEON,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_THUNDERBOLT, MOVE_FLAIL, MOVE_THUNDER_WAVE, MOVE_DOUBLE_TEAM},
+ .hpEV = 0,
+ .attackEV = 50,
+ .defenseEV = 100,
+ .speedEV = 160,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x05, // FEMALE BOLD
+ .nickname = _("JOLTEON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_EXPLOSION, MOVE_MIRROR_COAT, MOVE_LIGHT_SCREEN},
+ .hpEV = 0,
+ .attackEV = 55,
+ .defenseEV = 0,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x14, // GENDERLESS CALM
+ .nickname = _("ELECTRODE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_COUNTER, MOVE_REVERSAL, MOVE_LIGHT_SCREEN},
+ .hpEV = 0,
+ .attackEV = 55,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("RAICHU"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("NIA & CARL"),
+ .facilityClass = FACILITY_CLASS_COOL_COUPLE,
+ .textColor = 4,
+ .speechBefore = {EC_WORD_MASTER, EC_WORD_COMPLETE, EC_WORD_FASHION, EC_WORD_SYSTEM, EC_WORD_START, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_THAT_S_IT_EXCL, EC_WORD_THE, EC_WORD_POWER, EC_WORD_OF, EC_WORD_OUR, EC_WORD_SYSTEM},
+ .speechLose = {EC_WORD_OKAY, EC_WORD_EXCL, EC_MOVE(THUNDERBOLT), EC_WORD_RUN_AWAY, EC_WORD_SYSTEM, EC_WORD_START},
+ .speechAfter = {EC_WORD_GO, EC_WORD_ON, EC_WORD_PLEASE, EC_WORD_EXCL, EC_WORD_TCH, EC_WORD_ELLIPSIS},
+ .mons = {
+ {
+ .species = SPECIES_KANGASKHAN,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_SHADOW_BALL, MOVE_REVERSAL, MOVE_ENDURE, MOVE_FAKE_OUT},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 105,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 150,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("KANGASKHAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TAUROS,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_TOMB, MOVE_SURF, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x03, // MALE ADAMANT
+ .nickname = _("TAUROS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MILTANK,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_MILK_DRINK, MOVE_ROCK_TOMB},
+ .hpEV = 0,
+ .attackEV = 155,
+ .defenseEV = 50,
+ .speedEV = 250,
+ .spAttackEV = 0,
+ .spDefenseEV = 55,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("MILTANK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RHYDON,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_MEGAHORN, MOVE_HORN_DRILL, MOVE_ROCK_TOMB},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("RHYDON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DRAGONITE,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_BLIZZARD, MOVE_SURF, MOVE_OUTRAGE, MOVE_FLAMETHROWER},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 0,
+ .personality = 0x91, // MALE CALM
+ .nickname = _("DRAGONITE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_LAPRAS,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_THUNDERBOLT, MOVE_BLIZZARD, MOVE_SURF, MOVE_HORN_DRILL},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 31,
+ .attackIV = 31,
+ .defenseIV = 31,
+ .speedIV = 31,
+ .spAttackIV = 31,
+ .spDefenseIV = 31,
+ .abilityNum = 1,
+ .personality = 0x91, // MALE CALM
+ .nickname = _("LAPRAS"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00016360
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Double_7 = {
+ .id = 29,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_CARBOS,
+ .trainers = {
+ {
+ .name = _("AXE & REN"),
+ .facilityClass = FACILITY_CLASS_SIS_AND_BRO_2,
+ .textColor = 2,
+ .speechBefore = {EC_WORD_IT_S, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_WORD_AWFULLY, EC_WORD_COLD},
+ .speechWin = {EC_WORD_THAT_S, EC_WORD_THAT, EC_WORD_MAN, EC_WORD_I_AM, EC_WORD_COLD, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SHEER_COLD), EC_WORD_ELLIPSIS},
+ .speechAfter = {EC_WORD_THIS, EC_MOVE(SHEER_COLD), EC_WORD_HAS, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SHAKY},
+ .mons = {
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_THUNDER, MOVE_ICE_BEAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("LANTURN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MANTINE,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_ICE_BEAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 155,
+ .spAttackEV = 100,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x14, // FEMALE CALM
+ .nickname = _("MANTINE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DEWGONG,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_SHEER_COLD, MOVE_BLIZZARD},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 55,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("DEWGONG"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CLOYSTER,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_ICE_BEAM, MOVE_HYPER_BEAM},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("CLOYSTER"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 100,
+ .speedEV = 100,
+ .spAttackEV = 255,
+ .spDefenseEV = 55,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("TENTACRUEL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GYARADOS,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_DRAGON_DANCE, MOVE_RETURN},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("GYARADOS"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("AXE & REN"),
+ .facilityClass = FACILITY_CLASS_SIS_AND_BRO_2,
+ .textColor = 2,
+ .speechBefore = {EC_WORD_OUR, EC_WORD_SWIFT_SWIM, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_COLD},
+ .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_HOT},
+ .speechLose = {EC_WORD_I_AM, EC_WORD_HUNGRY, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_HOT, EC_WORD_EATS},
+ .speechAfter = {EC_WORD_SISTER, EC_WORD_I, EC_WORD_NEED, EC_WORD_SOMETHING, EC_WORD_HOT, EC_WORD_PLEASE},
+ .mons = {
+ {
+ .species = SPECIES_ELECTABUZZ,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_THUNDER, MOVE_PSYCHIC, MOVE_CROSS_CHOP, MOVE_LIGHT_SCREEN},
+ .hpEV = 0,
+ .attackEV = 155,
+ .defenseEV = 155,
+ .speedEV = 100,
+ .spAttackEV = 100,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x40, // MALE NAIVE
+ .nickname = _("ELECTABUZZ"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGNETON,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_THUNDER, MOVE_SONIC_BOOM, MOVE_METAL_SOUND, MOVE_REFLECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x0A, // GENDERLESS TIMID
+ .nickname = _("MAGNETON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PORYGON,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_THUNDER, MOVE_PSYCHIC, MOVE_BLIZZARD, MOVE_PROTECT},
+ .hpEV = 255,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x11, // GENDERLESS QUIET
+ .nickname = _("PORYGON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_DRAGONAIR,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_THUNDER, MOVE_SURF, MOVE_BLIZZARD, MOVE_OUTRAGE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 50,
+ .speedEV = 155,
+ .spAttackEV = 255,
+ .spDefenseEV = 50,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("DRAGONAIR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PERSIAN,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_THUNDER, MOVE_FAKE_OUT, MOVE_WATER_PULSE, MOVE_RETURN},
+ .hpEV = 0,
+ .attackEV = 155,
+ .defenseEV = 0,
+ .speedEV = 200,
+ .spAttackEV = 155,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0B, // FEMALE HASTY
+ .nickname = _("PERSIAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_STARMIE,
+ .heldItem = ITEM_GANLON_BERRY,
+ .moves = {MOVE_THUNDER, MOVE_SURF, MOVE_RECOVER, MOVE_REFLECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 95,
+ .speedEV = 255,
+ .spAttackEV = 100,
+ .spDefenseEV = 60,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x05, // GENDERLESS BOLD
+ .nickname = _("STARMIE"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00015272
+};
+
+static const struct TrainerTowerFloor gUnknown_8481C0C = {
+ .id = 30,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_DOUBLE,
+ .prize = TTPRIZE_ZINC,
+ .trainers = {
+ {
+ .name = _("KATI & GEB"),
+ .facilityClass = FACILITY_CLASS_YOUNG_COUPLE_2,
+ .textColor = 2,
+ .speechBefore = {EC_WORD_WELCOME, EC_WORD_TO, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_MOVE2(THUNDER_WAVE), EC_MOVE(SANDSTORM)},
+ .speechWin = {EC_WORD_LALALA, EC_WORD_LALALA, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LALALA, EC_WORD_LIFE},
+ .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_MY, EC_MOVE2(FRUSTRATION)},
+ .speechAfter = {EC_WORD_YOU_RE, EC_WORD_JUST, EC_WORD_A_LITTLE, EC_WORD_KID, EC_WORD_AHAHA, EC_WORD_EXCL},
+ .mons = {
+ {
+ .species = SPECIES_FLAAFFY,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_ATTRACT, MOVE_PROTECT, MOVE_THUNDERBOLT, MOVE_REFLECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x84, // MALE RELAXED
+ .nickname = _("FLAAFFY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_QUAGSIRE,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_ATTRACT, MOVE_SURF, MOVE_AMNESIA, MOVE_BLIZZARD},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x93, // MALE SASSY
+ .nickname = _("QUAGSIRE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PIKACHU,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_ATTRACT, MOVE_REVERSAL, MOVE_THUNDERBOLT, MOVE_IRON_TAIL},
+ .hpEV = 0,
+ .attackEV = 155,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("PIKACHU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ELECTABUZZ,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_ATTRACT, MOVE_COUNTER, MOVE_ICE_PUNCH, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 150,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 105,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x46, // MALE CALM
+ .nickname = _("ELECTABUZZ"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOGETIC,
+ .heldItem = ITEM_KINGS_ROCK,
+ .moves = {MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_ANCIENT_POWER, MOVE_WATER_PULSE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x2D, // MALE CALM
+ .nickname = _("TOGETIC"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GOLDUCK,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_ATTRACT, MOVE_SURF, MOVE_DIG, MOVE_CROSS_CHOP},
+ .hpEV = 0,
+ .attackEV = 155,
+ .defenseEV = 50,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 50,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("GOLDUCK"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("KATI & GEB"),
+ .facilityClass = FACILITY_CLASS_YOUNG_COUPLE_2,
+ .textColor = 2,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_PLUS, EC_WORD_YOU_RE, EC_WORD_MINUS, EC_WORD_LOVEY_DOVEY, EC_WORD_MAGNET_PULL},
+ .speechWin = {EC_WORD_DON_T, EC_WORD_STOP, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LOCOMOTIVE, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_HIS, EC_WORD_CRY, EC_WORD_HAS, EC_WORD_CUTE_CHARM, EC_WORD_TOO, EC_WORD_EXCL},
+ .speechAfter = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TIME, EC_WORD_TO, EC_WORD_TALK, EC_WORD_QUES},
+ .mons = {
+ {
+ .species = SPECIES_PICHU,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_ATTRACT, MOVE_PROTECT, MOVE_SWEET_KISS, MOVE_REVERSAL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x03, // FEMALE ADAMANT
+ .nickname = _("PICHU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ELEKID,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_ATTRACT, MOVE_PROTECT, MOVE_DOUBLE_TEAM, MOVE_FOCUS_PUNCH},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 130,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 125,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("ELEKID"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_TOGEPI,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_ATTRACT, MOVE_PROTECT, MOVE_YAWN, MOVE_WATER_PULSE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("TOGEPI"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PSYDUCK,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_ATTRACT, MOVE_PROTECT, MOVE_DIG, MOVE_DIVE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("PSYDUCK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAREEP,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_ATTRACT, MOVE_PROTECT, MOVE_LIGHT_SCREEN, MOVE_THUNDERBOLT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("MAREEP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_WOOPER,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_ATTRACT, MOVE_PROTECT, MOVE_SURF, MOVE_YAWN},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 10,
+ .attackIV = 10,
+ .defenseIV = 10,
+ .speedIV = 10,
+ .spAttackIV = 10,
+ .spDefenseIV = 10,
+ .abilityNum = 1,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("WOOPER"),
+ .friendship = 255
+ },
+ }
+ },
+ DUMMY_TOWER_TEAM(0),
+ },
+ .checksum = 0x00015966
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Knockout_6 = {
+ .id = 31,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_KNOCKOUT,
+ .prize = TTPRIZE_WHITE_HERB,
+ .trainers = {
+ {
+ .name = _("BEN"),
+ .facilityClass = FACILITY_CLASS_ROCKER,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER},
+ .speechWin = {EC_WORD_STATIC, EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YES, EC_WORD_IT, EC_WORD_IS},
+ .speechLose = {EC_WORD_ELECTRIC, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_TELEVISION, EC_WORD_I_AM},
+ .speechAfter = {EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_A, EC_WORD_NATURAL, EC_WORD_POWER},
+ .mons = {
+ {
+ .species = SPECIES_ELECTRODE,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_MIRROR_COAT, MOVE_EXPLOSION, MOVE_THUNDER_WAVE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 55,
+ .speedEV = 255,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x14, // GENDERLESS CALM
+ .nickname = _("ELECTRODE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_ELECTABUZZ,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH, MOVE_PSYCHIC, MOVE_ICE_PUNCH},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 155,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0F, // FEMALE MODEST
+ .nickname = _("ELECTABUZZ"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_LANTURN,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_DOUBLE_EDGE, MOVE_ICE_BEAM, MOVE_HYDRO_PUMP},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 125,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 130,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x8E, // MALE QUIET
+ .nickname = _("LANTURN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAGNETON,
+ .heldItem = ITEM_LIECHI_BERRY,
+ .moves = {MOVE_ZAP_CANNON, MOVE_HYPER_BEAM, MOVE_LOCK_ON, MOVE_SUPERSONIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 55,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x14, // GENDERLESS CALM
+ .nickname = _("MAGNETON"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_DOUBLE_EDGE, MOVE_MEGA_KICK, MOVE_REVERSAL, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 80,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 75,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x8A, // MALE JOLLY
+ .nickname = _("RAICHU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_AMPHAROS,
+ .heldItem = ITEM_SHELL_BELL,
+ .moves = {MOVE_THUNDERBOLT, MOVE_MEGA_KICK, MOVE_COUNTER, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 200,
+ .defenseEV = 150,
+ .speedEV = 0,
+ .spAttackEV = 10,
+ .spDefenseEV = 150,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("AMPHAROS"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("CAMDEN"),
+ .facilityClass = FACILITY_CLASS_ENGINEER,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER},
+ .speechWin = {EC_WORD_A, EC_MOVE(THUNDERBOLT), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_TOO, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_WIRELESS, EC_WORD_LINK},
+ .speechAfter = {EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_A, EC_WORD_TREASURE, EC_WORD_EXCL},
+ .mons = {
+ {
+ .species = SPECIES_GRANBULL,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 55,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("GRANBULL"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PERSIAN,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_THUNDERBOLT, MOVE_WATER_PULSE, MOVE_HYPNOSIS, MOVE_SLASH},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 55,
+ .speedEV = 255,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("PERSIAN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_LICKITUNG,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_PROTECT, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL},
+ .hpEV = 200,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 55,
+ .spDefenseEV = 0,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("LICKITUNG"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RATICATE,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_HYPER_FANG, MOVE_SUPER_FANG, MOVE_REVERSAL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 100,
+ .speedEV = 50,
+ .spAttackEV = 0,
+ .spDefenseEV = 105,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x94, // MALE CAREFUL
+ .nickname = _("RATICATE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PRIMEAPE,
+ .heldItem = ITEM_SCOPE_LENS,
+ .moves = {MOVE_THUNDERBOLT, MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 130,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 125,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("PRIMEAPE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_KANGASKHAN,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_SURF, MOVE_CRUSH_CLAW, MOVE_REST},
+ .hpEV = 0,
+ .attackEV = 100,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("KANGASKHAN"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("ZACKERY"),
+ .facilityClass = FACILITY_CLASS_SCIENTIST,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER},
+ .speechWin = {EC_MOVE2(THUNDER_SHOCK), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES},
+ .speechLose = {EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_WORD_EXCL_EXCL},
+ .speechAfter = {EC_WORD_ALL, EC_WORD_TOGETHER, EC_WORD_NOW, EC_WORD_EXCL, EC_MOVE(SPARK), EC_MOVE(SPARK)},
+ .mons = {
+ {
+ .species = SPECIES_WEEZING,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_SHADOW_BALL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 0,
+ .speedEV = 0,
+ .spAttackEV = 155,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x02, // FEMALE BRAVE
+ .nickname = _("WEEZING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MUK,
+ .heldItem = ITEM_LEFTOVERS,
+ .moves = {MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_CURSE},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 150,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 105,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 1,
+ .personality = 0x84, // MALE RELAXED
+ .nickname = _("MUK"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_GENGAR,
+ .heldItem = ITEM_PETAYA_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_WILL_O_WISP},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 250,
+ .spAttackEV = 155,
+ .spDefenseEV = 105,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("GENGAR"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MISDREAVUS,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_PSYCHIC, MOVE_GRUDGE, MOVE_CONFUSE_RAY, MOVE_DESTINY_BOND},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 0,
+ .speedEV = 150,
+ .spAttackEV = 105,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x0A, // FEMALE TIMID
+ .nickname = _("MISDREAVUS"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CROBAT,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_SLUDGE_BOMB, MOVE_CONFUSE_RAY, MOVE_GIGA_DRAIN, MOVE_TOXIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 110,
+ .spAttackEV = 0,
+ .spDefenseEV = 200,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x87, // MALE TIMID
+ .nickname = _("CROBAT"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_HAUNTER,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_DESTINY_BOND, MOVE_HYPNOSIS, MOVE_CONFUSE_RAY, MOVE_TOXIC},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 20,
+ .attackIV = 20,
+ .defenseIV = 20,
+ .speedIV = 20,
+ .spAttackIV = 20,
+ .spDefenseIV = 20,
+ .abilityNum = 0,
+ .personality = 0x91, // MALE CALM
+ .nickname = _("HAUNTER"),
+ .friendship = 255
+ },
+ }
+ },
+ },
+ .checksum = 0x00014f49
+};
+
+static const struct TrainerTowerFloor sTrainerTowerFloor_Knockout_5 = {
+ .id = 32,
+ .floorIdx = MAX_TRAINER_TOWER_FLOORS,
+ .challengeType = CHALLENGE_TYPE_KNOCKOUT,
+ .prize = TTPRIZE_UP_GRADE,
+ .trainers = {
+ {
+ .name = _("MAURA"),
+ .facilityClass = FACILITY_CLASS_BEAUTY_2,
+ .textColor = 2,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_GROUP, EC_WORD_LEADER, EC_WORD_EXCL, 0xFFFF},
+ .speechWin = {EC_WORD_WHAT, EC_WORD_AM, EC_WORD_I, EC_WORD_LEADER, EC_WORD_OF, EC_WORD_QUES},
+ .speechLose = {EC_WORD_I_AM, EC_WORD_NO, EC_WORD_LEADER, EC_WORD_IT_S, EC_WORD_A_LITTLE, EC_WORD_LIE},
+ .speechAfter = {EC_WORD_HEY, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_GROUND, EC_WORD_IS, EC_WORD_SLIMY},
+ .mons = {
+ {
+ .species = SPECIES_PICHU,
+ .heldItem = ITEM_FOCUS_BAND,
+ .moves = {MOVE_THUNDER_SHOCK, MOVE_THUNDER_WAVE, MOVE_SWEET_KISS, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x05, // FEMALE BOLD
+ .nickname = _("PICHU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_MAREEP,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_THUNDER_SHOCK, MOVE_CHARGE, MOVE_PROTECT, MOVE_RETURN},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("MAREEP"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_IGGLYBUFF,
+ .heldItem = ITEM_QUICK_CLAW,
+ .moves = {MOVE_SING, MOVE_SWEET_KISS, MOVE_PRESENT, MOVE_PROTECT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("IGGLYBUFF"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CLEFFA,
+ .heldItem = ITEM_LAX_INCENSE,
+ .moves = {MOVE_SING, MOVE_SWEET_KISS, MOVE_ENCORE, MOVE_METRONOME},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("CLEFFA"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDORAN_F,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_CRUNCH, MOVE_DIG, MOVE_FLATTER, MOVE_ATTRACT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("NIDORAN♀"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDORAN_M,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = {MOVE_HORN_DRILL, MOVE_SLUDGE_BOMB, MOVE_FLATTER, MOVE_ATTRACT},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 255,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 255,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x07, // MALE RELAXED
+ .nickname = _("NIDORAN♂"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("MIKAELA"),
+ .facilityClass = FACILITY_CLASS_LASS_2,
+ .textColor = 1,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_THE, EC_WORD_NO_1, EC_WORD_TRAINER, EC_WORD_HERE},
+ .speechWin = {EC_WORD_NEVER, EC_WORD_SAID, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_AT},
+ .speechLose = {EC_WORD_NEXT, EC_WORD_TIME, EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_OVERWHELMING},
+ .speechAfter = {EC_WORD_YOU, EC_MOVE2(SPIT_UP), EC_WORD_ME, EC_WORD_AS_IF, EC_WORD_I_AM, EC_WORD_NOTHING},
+ .mons = {
+ {
+ .species = SPECIES_NIDORINO,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_SHOCK_WAVE, MOVE_HORN_DRILL, MOVE_ICE_BEAM, MOVE_IRON_TAIL},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x07, // MALE RELAXED
+ .nickname = _("NIDORINO"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDORINA,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_SHOCK_WAVE, MOVE_CRUNCH, MOVE_BODY_SLAM, MOVE_COUNTER},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("NIDORINA"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_PIKACHU,
+ .heldItem = ITEM_LIGHT_BALL,
+ .moves = {MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_COUNTER, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 200,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 55,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x11, // FEMALE QUIET
+ .nickname = _("PIKACHU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_FLAAFFY,
+ .heldItem = ITEM_BRIGHT_POWDER,
+ .moves = {MOVE_SHOCK_WAVE, MOVE_DOUBLE_TEAM, MOVE_SEISMIC_TOSS, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 150,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("FLAAFFY"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_JIGGLYPUFF,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_SHOCK_WAVE, MOVE_SHADOW_BALL, MOVE_FOCUS_PUNCH, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 150,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 105,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x16, // FEMALE SASSY
+ .nickname = _("JIGGLYPUFF"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CLEFAIRY,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_SHOCK_WAVE, MOVE_METEOR_MASH, MOVE_MOONLIGHT, MOVE_BODY_SLAM},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 155,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("CLEFAIRY"),
+ .friendship = 255
+ },
+ }
+ },
+ {
+ .name = _("FLINT"),
+ .facilityClass = FACILITY_CLASS_ENGINEER,
+ .textColor = 4,
+ .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(MILK_DRINK), EC_WORD_WORLD, EC_WORD_LEADER, EC_WORD_EXCL},
+ .speechWin = {EC_WORD_I_VE, EC_WORD_WON, EC_WORD_THIS, EC_MOVE2(MILK_DRINK), EC_WORD_MATCH, EC_WORD_EXCL},
+ .speechLose = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_DRINK, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_DRINKS},
+ .speechAfter = {EC_WORD_WHOAH, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_DROOLING, EC_WORD_ALL, EC_WORD_OVER},
+ .mons = {
+ {
+ .species = SPECIES_WIGGLYTUFF,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_WATER_PULSE, MOVE_FLAMETHROWER},
+ .hpEV = 0,
+ .attackEV = 0,
+ .defenseEV = 155,
+ .speedEV = 0,
+ .spAttackEV = 255,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0xCF, // MALE RELAXED
+ .nickname = _("WIGGLYTUFF"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_CLEFABLE,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_SOFT_BOILED, MOVE_METEOR_MASH, MOVE_DOUBLE_EDGE},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 100,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 150,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0xCF, // MALE RELAXED
+ .nickname = _("CLEFABLE"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDOQUEEN,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_SUPERPOWER, MOVE_SURF},
+ .hpEV = 0,
+ .attackEV = 200,
+ .defenseEV = 110,
+ .speedEV = 0,
+ .spAttackEV = 100,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x07, // FEMALE RELAXED
+ .nickname = _("NIDOQUEEN"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_NIDOKING,
+ .heldItem = ITEM_CHOICE_BAND,
+ .moves = {MOVE_THUNDERBOLT, MOVE_HYPER_BEAM, MOVE_MEGAHORN, MOVE_SHADOW_BALL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 150,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 100,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x02, // MALE BRAVE
+ .nickname = _("NIDOKING"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_RAICHU,
+ .heldItem = ITEM_SALAC_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_REVERSAL, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE},
+ .hpEV = 0,
+ .attackEV = 155,
+ .defenseEV = 150,
+ .speedEV = 100,
+ .spAttackEV = 0,
+ .spDefenseEV = 105,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("RAICHU"),
+ .friendship = 255
+ },
+ {
+ .species = SPECIES_AMPHAROS,
+ .heldItem = ITEM_LUM_BERRY,
+ .moves = {MOVE_THUNDERBOLT, MOVE_REST, MOVE_BODY_SLAM, MOVE_IRON_TAIL},
+ .hpEV = 0,
+ .attackEV = 255,
+ .defenseEV = 150,
+ .speedEV = 0,
+ .spAttackEV = 0,
+ .spDefenseEV = 105,
+ .otId = 0 | (4096 << 16),
+ .hpIV = 15,
+ .attackIV = 15,
+ .defenseIV = 15,
+ .speedIV = 15,
+ .spAttackIV = 15,
+ .spDefenseIV = 15,
+ .abilityNum = 0,
+ .personality = 0x80, // MALE ADAMANT
+ .nickname = _("AMPHAROS"),
+ .friendship = 255
+ },
+ }
+ },
+ },
+ .checksum = 0x00016b80
+};
+
+const struct EReaderTrainerTowerSetSubstruct gTrainerTowerLocalHeader = {
+ .numFloors = MAX_TRAINER_TOWER_FLOORS,
+ .id = 1
+};
+
+const struct TrainerTowerFloor *const gTrainerTowerFloors[NUM_TOWER_CHALLENGE_TYPES][MAX_TRAINER_TOWER_FLOORS] = {
+ [CHALLENGE_TYPE_SINGLE] = {
+ &sTrainerTowerFloor_Single_1,
+ &sTrainerTowerFloor_Single_2,
+ &sTrainerTowerFloor_Single_3,
+ &sTrainerTowerFloor_Single_4,
+ &sTrainerTowerFloor_Single_5,
+ &sTrainerTowerFloor_Single_6,
+ &sTrainerTowerFloor_Single_7,
+ &sTrainerTowerFloor_Single_8
+ },
+ [CHALLENGE_TYPE_DOUBLE] = {
+ &sTrainerTowerFloor_Double_1,
+ &sTrainerTowerFloor_Double_2,
+ &sTrainerTowerFloor_Double_3,
+ &sTrainerTowerFloor_Double_4,
+ &sTrainerTowerFloor_Double_5,
+ &sTrainerTowerFloor_Double_6,
+ &sTrainerTowerFloor_Double_7,
+ &sTrainerTowerFloor_Double_8
+ },
+ [CHALLENGE_TYPE_KNOCKOUT] = {
+ &sTrainerTowerFloor_Knockout_1,
+ &sTrainerTowerFloor_Knockout_2,
+ &sTrainerTowerFloor_Knockout_3,
+ &sTrainerTowerFloor_Knockout_4,
+ &sTrainerTowerFloor_Knockout_5,
+ &sTrainerTowerFloor_Knockout_6,
+ &sTrainerTowerFloor_Knockout_7,
+ &sTrainerTowerFloor_Knockout_8
+ },
+ [CHALLENGE_TYPE_MIXED] = {
+ &sTrainerTowerFloor_Mixed_1,
+ &sTrainerTowerFloor_Mixed_2,
+ &sTrainerTowerFloor_Mixed_3,
+ &sTrainerTowerFloor_Double_8,
+ &sTrainerTowerFloor_Mixed_5,
+ &sTrainerTowerFloor_Knockout_8,
+ &sTrainerTowerFloor_Double_3,
+ &sTrainerTowerFloor_Knockout_2
+ }
+};