summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bag.c2
-rw-r--r--src/battle_anim_effects_1.c6
-rw-r--r--src/battle_anim_effects_2.c1
-rw-r--r--src/battle_anim_sound_tasks.c4
-rw-r--r--src/battle_bg.c1076
-rw-r--r--src/battle_controller_link_opponent.c7
-rw-r--r--src/battle_controller_link_partner.c8
-rw-r--r--src/battle_controller_opponent.c8
-rw-r--r--src/battle_controller_player.c2
-rw-r--r--src/battle_controller_pokedude.c2
-rw-r--r--src/battle_controller_safari.c4
-rw-r--r--src/battle_gfx_sfx_util.c4
-rw-r--r--src/battle_interface.c1
-rw-r--r--src/battle_main.c10
-rw-r--r--src/battle_message.c7
-rw-r--r--src/battle_script_commands.c3
-rw-r--r--src/battle_setup.c5
-rw-r--r--src/battle_tower.c4
-rw-r--r--src/battle_transition.c6
-rw-r--r--src/battle_util2.c1
-rw-r--r--src/berry_fix_program.c5
-rw-r--r--src/credits.c2
-rw-r--r--src/data/graphics/battle_terrain.h30
-rw-r--r--src/data/graphics/interface_pokeballs.h37
-rw-r--r--src/data/graphics/items.h672
-rw-r--r--src/data/graphics/mail.h38
-rw-r--r--src/data/graphics/pokemon.h2833
-rw-r--r--src/data/graphics/trainers.h456
-rw-r--r--src/data/trainers.h1484
-rw-r--r--src/daycare.c3
-rw-r--r--src/decompress.c1
-rw-r--r--src/digit_obj_util.c1
-rw-r--r--src/diploma.c2
-rw-r--r--src/dynamic_placeholder_text_util.c155
-rw-r--r--src/easy_chat.c15
-rw-r--r--src/event_object_80688E4.c2
-rw-r--r--src/event_object_lock.c6
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/field_fadetransition.c12
-rw-r--r--src/field_specials.c8
-rw-r--r--src/fieldmap.c101
-rw-r--r--src/fldeff_cut.c299
-rw-r--r--src/fldeff_dig.c4
-rw-r--r--src/fldeff_rocksmash.c52
-rw-r--r--src/fldeff_softboiled.c1
-rw-r--r--src/fldeff_strength.c7
-rw-r--r--src/fldeff_sweetscent.c3
-rw-r--r--src/fldeff_teleport.c2
-rw-r--r--src/flying.c2
-rw-r--r--src/graphics.c1419
-rw-r--r--src/help_system.c2
-rw-r--r--src/hof_pc.c1
-rw-r--r--src/ice.c2
-rw-r--r--src/item_menu.c2
-rw-r--r--src/item_use.c2
-rw-r--r--src/itemfinder.c1
-rw-r--r--src/list_menu.c10
-rw-r--r--src/load_save.c1
-rw-r--r--src/main.c3
-rw-r--r--src/menu.c4
-rw-r--r--src/menu_indicators.c1
-rw-r--r--src/metatile_behavior.c41
-rw-r--r--src/mevent_server.c4
-rw-r--r--src/mevent_server_helpers.c7
-rw-r--r--src/mevent_show_card.c3
-rw-r--r--src/minigame_countdown.c2
-rw-r--r--src/mystery_event_script.c1
-rw-r--r--src/new_game.c1
-rw-r--r--src/new_menu_helpers.c2
-rw-r--r--src/oak_speech.c2
-rw-r--r--src/palette.c2
-rw-r--r--src/party_menu.c4
-rw-r--r--src/party_menu_specials.c1
-rw-r--r--src/pokeball.c1
-rw-r--r--src/pokemon_jump.c254
-rw-r--r--src/pokemon_jump_2.c2035
-rw-r--r--src/pokemon_jump_3.c167
-rw-r--r--src/pokemon_jump_4.c922
-rw-r--r--src/pokemon_jump_5.c637
-rw-r--r--src/pokemon_jump_6.c140
-rw-r--r--src/pokemon_size_record.c1
-rw-r--r--src/quest_log.c32
-rw-r--r--src/quest_log_objects.c47
-rw-r--r--src/quest_log_player.c18
-rw-r--r--src/random.c1
-rw-r--r--src/reshow_battle_screen.c3
-rw-r--r--src/rfu_union_tool.c38
-rw-r--r--src/roamer.c1
-rw-r--r--src/rock.c2
-rw-r--r--src/safari_zone.c1
-rw-r--r--src/save_failed_screen.c1
-rw-r--r--src/scanline_effect.c1
-rw-r--r--src/scrcmd.c6
-rw-r--r--src/script_movement.c226
-rw-r--r--src/script_pokemon_util.c2
-rw-r--r--src/sea_cottage_special_anim.c264
-rw-r--r--src/shop.c2
-rw-r--r--src/slot_machine.c1
-rw-r--r--src/sound.c1
-rw-r--r--src/special_field_anim.c341
-rw-r--r--src/start_menu.c2
-rw-r--r--src/text.c4
-rw-r--r--src/text_window.c1
-rw-r--r--src/tileset_anims.c6
-rw-r--r--src/tm_case.c1
-rw-r--r--src/trade.c3
-rw-r--r--src/trade_scene.c6
-rw-r--r--src/trainer_card.c2
-rw-r--r--src/trainer_pokemon_sprites.c3
-rw-r--r--src/trainer_see.c751
-rw-r--r--src/trainer_tower.c200
-rw-r--r--src/trig.c1
-rw-r--r--src/union_room_message.c1
-rw-r--r--src/util.c1
-rw-r--r--src/vs_seeker.c97
-rw-r--r--src/wild_encounter.c22
116 files changed, 13506 insertions, 1654 deletions
diff --git a/src/bag.c b/src/bag.c
index 049aa9f8f..2ca62a3b4 100644
--- a/src/bag.c
+++ b/src/bag.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "task.h"
#include "palette.h"
#include "item_menu.h"
#include "text.h"
@@ -9,7 +8,6 @@
#include "new_menu_helpers.h"
#include "menu.h"
#include "money.h"
-#include "bag.h"
#include "strings.h"
static const u16 sBagWindowPalF[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c
index 647d2f367..33b5ceacc 100644
--- a/src/battle_anim_effects_1.c
+++ b/src/battle_anim_effects_1.c
@@ -1,15 +1,9 @@
#include "global.h"
-#include "malloc.h"
#include "battle_anim.h"
#include "battle_interface.h"
-#include "decompress.h"
#include "gpu_regs.h"
-#include "graphics.h"
-#include "main.h"
-#include "math_util.h"
#include "palette.h"
#include "random.h"
-#include "scanline_effect.h"
#include "sound.h"
#include "trig.h"
#include "util.h"
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index 23be07785..093660389 100644
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -5,7 +5,6 @@
#include "decompress.h"
#include "gpu_regs.h"
#include "graphics.h"
-#include "main.h"
#include "math_util.h"
#include "palette.h"
#include "random.h"
diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c
index d74b743e8..f2740a1a5 100644
--- a/src/battle_anim_sound_tasks.c
+++ b/src/battle_anim_sound_tasks.c
@@ -178,7 +178,7 @@ void sub_80DD148(u8 taskId)
gTasks[taskId].data[2] = pan;
if (species != SPECIES_NONE)
{
- if (gBattleAnimArgs[1] == TASK_NONE)
+ if (gBattleAnimArgs[1] == TAIL_SENTINEL)
PlayCry3(species, pan, 9);
else
PlayCry3(species, pan, 7);
@@ -199,7 +199,7 @@ static void sub_80DD270(u8 taskId)
{
++gTasks[taskId].data[9];
}
- else if (gTasks[taskId].data[0] == TASK_NONE)
+ else if (gTasks[taskId].data[0] == TAIL_SENTINEL)
{
if (!IsCryPlaying())
{
diff --git a/src/battle_bg.c b/src/battle_bg.c
new file mode 100644
index 000000000..1c0b41bb4
--- /dev/null
+++ b/src/battle_bg.c
@@ -0,0 +1,1076 @@
+#include "global.h"
+#include "gflib.h"
+#include "battle.h"
+#include "battle_bg.h"
+#include "battle_message.h"
+#include "decompress.h"
+#include "graphics.h"
+#include "link.h"
+#include "new_menu_helpers.h"
+#include "overworld.h"
+#include "text_window.h"
+#include "trig.h"
+#include "constants/maps.h"
+#include "constants/songs.h"
+#include "constants/trainer_classes.h"
+
+#define TAG_VS_LETTERS 10000
+
+struct BattleBackground
+{
+ const void *tileset;
+ const void *tilemap;
+ const void *entryTileset;
+ const void *entryTilemap;
+ const void *palette;
+};
+
+static void CB2_unused(void);
+static u8 GetBattleTerrainOverride(void);
+
+static const u8 gUnknown_824829C[] = {1, 2};
+
+static const struct OamData gOamData_82482A0 = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(64x64),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(64x64),
+ .tileNum = 0x000,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData gOamData_82482A8 = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(64x64),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(64x64),
+ .tileNum = 0x040,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AffineAnimCmd gUnknown_82482B0[] = {
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_END
+};
+
+static const union AffineAnimCmd gUnknown_82482C0[] = {
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_FRAME(0x18, 0x18, 0x0, 0x80),
+ AFFINEANIMCMD_FRAME(0x18, 0x18, 0x0, 0x80),
+ AFFINEANIMCMD_END
+};
+
+static const union AffineAnimCmd *const gAffineAnimTable_82482E0[] = {
+ gUnknown_82482B0,
+ gUnknown_82482C0
+};
+
+static const struct SpriteTemplate sVsLetter_V_SpriteTemplate = {
+ .tileTag = TAG_VS_LETTERS,
+ .paletteTag = TAG_VS_LETTERS,
+ .oam = &gOamData_82482A0,
+ .anims = gDummySpriteAnimTable,
+ .affineAnims = gAffineAnimTable_82482E0,
+ .callback = nullsub_9
+};
+
+static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = {
+ .tileTag = TAG_VS_LETTERS,
+ .paletteTag = TAG_VS_LETTERS,
+ .oam = &gOamData_82482A8,
+ .anims = gDummySpriteAnimTable,
+ .affineAnims = gAffineAnimTable_82482E0,
+ .callback = nullsub_9
+};
+
+static const struct CompressedSpriteSheet sVsLettersSpriteSheet = {
+ gVsLettersGfx,
+ 0x1000,
+ TAG_VS_LETTERS
+};
+
+const struct BgTemplate gBattleBgTemplates[4] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 24,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 28,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 2,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 30,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x000
+ }, {
+ .bg = 3,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 26,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0x000
+ }
+};
+
+static const struct WindowTemplate gUnknown_8248330[] = {
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 0,
+ .baseBlock = 0x090
+ }, {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 35,
+ .width = 14,
+ .height = 4,
+ .paletteNum = 0,
+ .baseBlock = 0x1c0
+ }, {
+ .bg = 0,
+ .tilemapLeft = 17,
+ .tilemapTop = 35,
+ .width = 12,
+ .height = 4,
+ .paletteNum = 5,
+ .baseBlock = 0x190
+ }, {
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 55,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x300
+ }, {
+ .bg = 0,
+ .tilemapLeft = 11,
+ .tilemapTop = 55,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x310
+ }, {
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 57,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x320
+ }, {
+ .bg = 0,
+ .tilemapLeft = 11,
+ .tilemapTop = 57,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x330
+ }, {
+ .bg = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 55,
+ .width = 3,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x290
+ }, {
+ .bg = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 57,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x296
+ }, {
+ .bg = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 55,
+ .width = 5,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x2a6
+ }, {
+ .bg = 0,
+ .tilemapLeft = 25,
+ .tilemapTop = 57,
+ .width = 0,
+ .height = 0,
+ .paletteNum = 5,
+ .baseBlock = 0x2b0
+ }, {
+ .bg = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 55,
+ .width = 8,
+ .height = 4,
+ .paletteNum = 5,
+ .baseBlock = 0x2b0
+ }, {
+ .bg = 1,
+ .tilemapLeft = 19,
+ .tilemapTop = 8,
+ .width = 10,
+ .height = 11,
+ .paletteNum = 5,
+ .baseBlock = 0x100
+ }, {
+ .bg = 2,
+ .tilemapLeft = 18,
+ .tilemapTop = 0,
+ .width = 12,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0x16e
+ }, {
+ .bg = 0,
+ .tilemapLeft = 25,
+ .tilemapTop = 9,
+ .width = 4,
+ .height = 4,
+ .paletteNum = 5,
+ .baseBlock = 0x100
+ }, {
+ .bg = 1,
+ .tilemapLeft = 2,
+ .tilemapTop = 3,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x020
+ }, {
+ .bg = 2,
+ .tilemapLeft = 2,
+ .tilemapTop = 3,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x040
+ }, {
+ .bg = 1,
+ .tilemapLeft = 2,
+ .tilemapTop = 2,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x020
+ }, {
+ .bg = 2,
+ .tilemapLeft = 2,
+ .tilemapTop = 2,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x040
+ }, {
+ .bg = 1,
+ .tilemapLeft = 2,
+ .tilemapTop = 6,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x060
+ }, {
+ .bg = 2,
+ .tilemapLeft = 2,
+ .tilemapTop = 6,
+ .width = 7,
+ .height = 2,
+ .paletteNum = 5,
+ .baseBlock = 0x080
+ }, {
+ .bg = 0,
+ .tilemapLeft = 11,
+ .tilemapTop = 2,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 0,
+ .baseBlock = 0x0a0
+ }, {
+ .bg = 0,
+ .tilemapLeft = 4,
+ .tilemapTop = 2,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 0,
+ .baseBlock = 0x0a0
+ }, {
+ .bg = 0,
+ .tilemapLeft = 19,
+ .tilemapTop = 2,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 0,
+ .baseBlock = 0x0b0
+ }, {
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 15,
+ .width = 26,
+ .height = 4,
+ .paletteNum = 7,
+ .baseBlock = 0x090
+ }, DUMMY_WIN_TEMPLATE
+};
+
+static const u32 sBattleTerrainPalette_Grass[] = INCBIN_U32("graphics/battle/unk_8248400.gbapal.lz");
+static const u32 sBattleTerrainTiles_Grass[] = INCBIN_U32("graphics/battle/unk_824844C.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Grass[] = INCBIN_U32("graphics/battle/unk_82489A8.bin.lz");
+static const u32 sBattleTerrainAnimTiles_Grass[] = INCBIN_U32("graphics/battle/unk_8248C68.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_Grass[] = INCBIN_U32("graphics/battle/unk_8248F58.bin.lz");
+static const u32 sBattleTerrainPalette_LongGrass[] = INCBIN_U32("graphics/battle/unk_8249074.gbapal.lz");
+static const u32 sBattleTerrainTiles_LongGrass[] = INCBIN_U32("graphics/battle/unk_82490C4.4bpp.lz");
+static const u32 sBattleTerrainTilemap_LongGrass[] = INCBIN_U32("graphics/battle/unk_8249620.bin.lz");
+static const u32 sBattleTerrainAnimTiles_LongGrass[] = INCBIN_U32("graphics/battle/unk_82498DC.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_LongGrass[] = INCBIN_U32("graphics/battle/unk_8249E10.bin.lz");
+static const u32 sBattleTerrainPalette_Sand[] = INCBIN_U32("graphics/battle/unk_8249F98.gbapal.lz");
+static const u32 sBattleTerrainTiles_Sand[] = INCBIN_U32("graphics/battle/unk_8249FE4.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Sand[] = INCBIN_U32("graphics/battle/unk_824A37C.bin.lz");
+static const u32 sBattleTerrainAnimTiles_Sand[] = INCBIN_U32("graphics/battle/unk_824A618.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_Sand[] = INCBIN_U32("graphics/battle/unk_824A844.bin.lz");
+static const u32 sBattleTerrainPalette_Underwater[] = INCBIN_U32("graphics/battle/unk_824A940.gbapal.lz");
+static const u32 sBattleTerrainTiles_Underwater[] = INCBIN_U32("graphics/battle/unk_824A990.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Underwater[] = INCBIN_U32("graphics/battle/unk_824ACD0.bin.lz");
+static const u32 sBattleTerrainAnimTiles_Underwater[] = INCBIN_U32("graphics/battle/unk_824AF70.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_Underwater[] = INCBIN_U32("graphics/battle/unk_824B0DC.bin.lz");
+static const u32 sBattleTerrainPalette_Water[] = INCBIN_U32("graphics/battle/unk_824B19C.gbapal.lz");
+static const u32 sBattleTerrainTiles_Water[] = INCBIN_U32("graphics/battle/unk_824B1EC.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Water[] = INCBIN_U32("graphics/battle/unk_824B608.bin.lz");
+static const u32 sBattleTerrainAnimTiles_Water[] = INCBIN_U32("graphics/battle/unk_824B8A8.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_Water[] = INCBIN_U32("graphics/battle/unk_824BBE0.bin.lz");
+static const u32 sBattleTerrainPalette_Pond[] = INCBIN_U32("graphics/battle/unk_824BCE0.gbapal.lz");
+static const u32 sBattleTerrainTiles_Pond[] = INCBIN_U32("graphics/battle/unk_824BD38.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Pond[] = INCBIN_U32("graphics/battle/unk_824C07C.bin.lz");
+static const u32 sBattleTerrainAnimTiles_Pond[] = INCBIN_U32("graphics/battle/unk_824C314.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_Pond[] = INCBIN_U32("graphics/battle/unk_824C520.bin.lz");
+static const u32 sBattleTerrainPalette_Mountain[] = INCBIN_U32("graphics/battle/unk_824C5D8.gbapal.lz");
+static const u32 sBattleTerrainTiles_Mountain[] = INCBIN_U32("graphics/battle/unk_824C624.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Mountain[] = INCBIN_U32("graphics/battle/unk_824C958.bin.lz");
+static const u32 sBattleTerrainAnimTiles_Mountain[] = INCBIN_U32("graphics/battle/unk_824CBF8.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_Mountain[] = INCBIN_U32("graphics/battle/unk_824CEC8.bin.lz");
+static const u32 sBattleTerrainPalette_Cave[] = INCBIN_U32("graphics/battle/unk_824CF98.gbapal.lz");
+static const u32 sBattleTerrainTiles_Cave[] = INCBIN_U32("graphics/battle/unk_824CFEC.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Cave[] = INCBIN_U32("graphics/battle/unk_824D418.bin.lz");
+static const u32 sBattleTerrainAnimTiles_Cave[] = INCBIN_U32("graphics/battle/unk_824D6B8.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_Cave[] = INCBIN_U32("graphics/battle/unk_824DC98.bin.lz");
+static const u32 sBattleTerrainPalette_Building[] = INCBIN_U32("graphics/battle/unk_824DDF0.gbapal.lz");
+static const u32 sBattleTerrainTiles_Building[] = INCBIN_U32("graphics/battle/unk_824DE34.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Building[] = INCBIN_U32("graphics/battle/unk_824E16C.bin.lz");
+static const u32 sBattleTerrainAnimTiles_Building[] = INCBIN_U32("graphics/battle/unk_824E410.4bpp.lz");
+static const u32 sBattleTerrainAnimTilemap_Building[] = INCBIN_U32("graphics/battle/unk_824E490.bin.lz");
+static const u32 sBattleTerrainPalette_Link[] = INCBIN_U32("graphics/battle/unk_824E528.gbapal.lz");
+static const u32 sBattleTerrainPalette_Gym[] = INCBIN_U32("graphics/battle/unk_824E56C.gbapal.lz");
+static const u32 sBattleTerrainPalette_Leader[] = INCBIN_U32("graphics/battle/unk_824E5B8.gbapal.lz");
+static const u32 sBattleTerrainPalette_Indoor2[] = INCBIN_U32("graphics/battle/unk_824E604.gbapal.lz");
+static const u32 sBattleTerrainPalette_Indoor1[] = INCBIN_U32("graphics/battle/unk_824E650.gbapal.lz");
+static const u32 sBattleTerrainPalette_Lorelei[] = INCBIN_U32("graphics/battle/unk_824E6A4.gbapal.lz");
+static const u32 sBattleTerrainPalette_Bruno[] = INCBIN_U32("graphics/battle/unk_824E6F0.gbapal.lz");
+static const u32 sBattleTerrainPalette_Agatha[] = INCBIN_U32("graphics/battle/unk_824E740.gbapal.lz");
+static const u32 sBattleTerrainPalette_Lance[] = INCBIN_U32("graphics/battle/unk_824E78C.gbapal.lz");
+static const u32 sBattleTerrainPalette_Champion[] = INCBIN_U32("graphics/battle/unk_824E7DC.gbapal.lz");
+static const u32 sBattleTerrainPalette_Plain[] = INCBIN_U32("graphics/battle/unk_824E81C.gbapal.lz");
+static const u32 sBattleTerrainTiles_Indoor2[] = INCBIN_U32("graphics/battle/unk_824E858.4bpp.lz");
+static const u32 sBattleTerrainTilemap_Indoor2[] = INCBIN_U32("graphics/battle/unk_824EB90.bin.lz");
+
+static const struct BattleBackground sBattleTerrainTable[] = {
+ [BATTLE_TERRAIN_GRASS] =
+ {
+ .tileset = sBattleTerrainTiles_Grass,
+ .tilemap = sBattleTerrainTilemap_Grass,
+ .entryTileset = sBattleTerrainAnimTiles_Grass,
+ .entryTilemap = sBattleTerrainAnimTilemap_Grass,
+ .palette = sBattleTerrainPalette_Grass
+ },
+ [BATTLE_TERRAIN_LONG_GRASS] =
+ {
+ .tileset = sBattleTerrainTiles_LongGrass,
+ .tilemap = sBattleTerrainTilemap_LongGrass,
+ .entryTileset = sBattleTerrainAnimTiles_LongGrass,
+ .entryTilemap = sBattleTerrainAnimTilemap_LongGrass,
+ .palette = sBattleTerrainPalette_LongGrass
+ },
+ [BATTLE_TERRAIN_SAND] =
+ {
+ .tileset = sBattleTerrainTiles_Sand,
+ .tilemap = sBattleTerrainTilemap_Sand,
+ .entryTileset = sBattleTerrainAnimTiles_Sand,
+ .entryTilemap = sBattleTerrainAnimTilemap_Sand,
+ .palette = sBattleTerrainPalette_Sand
+ },
+ [BATTLE_TERRAIN_UNDERWATER] =
+ {
+ .tileset = sBattleTerrainTiles_Underwater,
+ .tilemap = sBattleTerrainTilemap_Underwater,
+ .entryTileset = sBattleTerrainAnimTiles_Underwater,
+ .entryTilemap = sBattleTerrainAnimTilemap_Underwater,
+ .palette = sBattleTerrainPalette_Underwater
+ },
+ [BATTLE_TERRAIN_WATER] =
+ {
+ .tileset = sBattleTerrainTiles_Water,
+ .tilemap = sBattleTerrainTilemap_Water,
+ .entryTileset = sBattleTerrainAnimTiles_Water,
+ .entryTilemap = sBattleTerrainAnimTilemap_Water,
+ .palette = sBattleTerrainPalette_Water
+ },
+ [BATTLE_TERRAIN_POND] =
+ {
+ .tileset = sBattleTerrainTiles_Pond,
+ .tilemap = sBattleTerrainTilemap_Pond,
+ .entryTileset = sBattleTerrainAnimTiles_Pond,
+ .entryTilemap = sBattleTerrainAnimTilemap_Pond,
+ .palette = sBattleTerrainPalette_Pond
+ },
+ [BATTLE_TERRAIN_MOUNTAIN] =
+ {
+ .tileset = sBattleTerrainTiles_Mountain,
+ .tilemap = sBattleTerrainTilemap_Mountain,
+ .entryTileset = sBattleTerrainAnimTiles_Mountain,
+ .entryTilemap = sBattleTerrainAnimTilemap_Mountain,
+ .palette = sBattleTerrainPalette_Mountain
+ },
+ [BATTLE_TERRAIN_CAVE] =
+ {
+ .tileset = sBattleTerrainTiles_Cave,
+ .tilemap = sBattleTerrainTilemap_Cave,
+ .entryTileset = sBattleTerrainAnimTiles_Cave,
+ .entryTilemap = sBattleTerrainAnimTilemap_Cave,
+ .palette = sBattleTerrainPalette_Cave
+ },
+ [BATTLE_TERRAIN_BUILDING] =
+ {
+ .tileset = sBattleTerrainTiles_Building,
+ .tilemap = sBattleTerrainTilemap_Building,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Building
+ },
+ [BATTLE_TERRAIN_PLAIN] =
+ {
+ .tileset = sBattleTerrainTiles_Building,
+ .tilemap = sBattleTerrainTilemap_Building,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Plain
+ },
+ [BATTLE_TERRAIN_LINK] =
+ {
+ .tileset = sBattleTerrainTiles_Building,
+ .tilemap = sBattleTerrainTilemap_Building,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Link
+ },
+ [BATTLE_TERRAIN_GYM] =
+ {
+ .tileset = sBattleTerrainTiles_Building,
+ .tilemap = sBattleTerrainTilemap_Building,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Gym
+ },
+ [BATTLE_TERRAIN_LEADER] =
+ {
+ .tileset = sBattleTerrainTiles_Building,
+ .tilemap = sBattleTerrainTilemap_Building,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Leader
+ },
+ [BATTLE_TERRAIN_INDOOR_2] =
+ {
+ .tileset = sBattleTerrainTiles_Indoor2,
+ .tilemap = sBattleTerrainTilemap_Indoor2,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Indoor2
+ },
+ [BATTLE_TERRAIN_INDOOR_1] =
+ {
+ .tileset = sBattleTerrainTiles_Indoor2,
+ .tilemap = sBattleTerrainTilemap_Indoor2,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Indoor1
+ },
+ [BATTLE_TERRAIN_LORELEI] =
+ {
+ .tileset = sBattleTerrainTiles_Indoor2,
+ .tilemap = sBattleTerrainTilemap_Indoor2,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Lorelei
+ },
+ [BATTLE_TERRAIN_BRUNO] =
+ {
+ .tileset = sBattleTerrainTiles_Indoor2,
+ .tilemap = sBattleTerrainTilemap_Indoor2,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Bruno
+ },
+ [BATTLE_TERRAIN_AGATHA] =
+ {
+ .tileset = sBattleTerrainTiles_Indoor2,
+ .tilemap = sBattleTerrainTilemap_Indoor2,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Agatha
+ },
+ [BATTLE_TERRAIN_LANCE] =
+ {
+ .tileset = sBattleTerrainTiles_Indoor2,
+ .tilemap = sBattleTerrainTilemap_Indoor2,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Lance
+ },
+ [BATTLE_TERRAIN_CHAMPION] =
+ {
+ .tileset = sBattleTerrainTiles_Indoor2,
+ .tilemap = sBattleTerrainTilemap_Indoor2,
+ .entryTileset = sBattleTerrainAnimTiles_Building,
+ .entryTilemap = sBattleTerrainAnimTilemap_Building,
+ .palette = sBattleTerrainPalette_Champion
+ }
+};
+
+static const struct {
+ u8 mapScene;
+ u8 battleTerrain;
+} sMapBattleSceneMapping[] = {
+ {MAP_BATTLE_SCENE_GYM, BATTLE_TERRAIN_GYM},
+ {MAP_BATTLE_SCENE_INDOOR_1, BATTLE_TERRAIN_INDOOR_1},
+ {MAP_BATTLE_SCENE_INDOOR_2, BATTLE_TERRAIN_INDOOR_2},
+ {MAP_BATTLE_SCENE_LORELEI, BATTLE_TERRAIN_LORELEI},
+ {MAP_BATTLE_SCENE_BRUNO, BATTLE_TERRAIN_BRUNO},
+ {MAP_BATTLE_SCENE_AGATHA, BATTLE_TERRAIN_AGATHA},
+ {MAP_BATTLE_SCENE_LANCE, BATTLE_TERRAIN_LANCE},
+ {MAP_BATTLE_SCENE_LINK, BATTLE_TERRAIN_LINK}
+};
+
+UNUSED void CreateUnknownDebugSprite(void)
+{
+ u8 spriteId;
+
+ ResetSpriteData();
+ spriteId = CreateSprite(&gUnknown_824EFF0, 0, 0, 0);
+ gSprites[spriteId].invisible = TRUE;
+ SetMainCallback2(CB2_unused);
+}
+
+static void CB2_unused(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+static u8 GetBattleTerrainByMapScene(u8 mapBattleScene)
+{
+ int i;
+ for (i = 0; i < NELEMS(sMapBattleSceneMapping); i++)
+ {
+ if (mapBattleScene == sMapBattleSceneMapping[i].mapScene)
+ return sMapBattleSceneMapping[i].battleTerrain;
+ }
+ return 9;
+}
+
+static void LoadBattleTerrainGfx(u16 terrain)
+{
+ if (terrain >= NELEMS(sBattleTerrainTable))
+ terrain = 9;
+ // Copy to bg3
+ LZDecompressVram(sBattleTerrainTable[terrain].tileset, (void *)BG_CHAR_ADDR(2));
+ LZDecompressVram(sBattleTerrainTable[terrain].tilemap, (void *)BG_SCREEN_ADDR(26));
+ LoadCompressedPalette(sBattleTerrainTable[terrain].palette, 0x20, 0x60);
+}
+
+static void LoadBattleTerrainEntryGfx(u16 terrain)
+{
+ if (terrain >= NELEMS(sBattleTerrainTable))
+ terrain = 9;
+ // Copy to bg1
+ LZDecompressVram(sBattleTerrainTable[terrain].entryTileset, (void *)BG_CHAR_ADDR(1));
+ LZDecompressVram(sBattleTerrainTable[terrain].entryTilemap, (void *)BG_SCREEN_ADDR(28));
+}
+
+UNUSED void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr)
+{
+ if (terrain > 9)
+ terrain = 9;
+ *tilesPtr = sBattleTerrainTable[terrain].tileset;
+ *mapPtr = sBattleTerrainTable[terrain].tilemap;
+ *palPtr = sBattleTerrainTable[terrain].palette;
+}
+
+void sub_800F324(void)
+{
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, gBattleBgTemplates, NELEMS(gBattleBgTemplates));
+ InitWindows(gUnknown_8248330);
+ DeactivateAllTextPrinters();
+}
+
+void InitBattleBgsVideo(void)
+{
+ EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL);
+ sub_800F324();
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_OBJWIN_ON);
+}
+
+void LoadBattleMenuWindowGfx(void)
+{
+ TextWindow_SetUserSelectedFrame(2, 0x012, 0x10);
+ TextWindow_SetUserSelectedFrame(2, 0x022, 0x10);
+ gPlttBufferUnfaded[0x5C] = RGB( 9, 9, 9);
+ gPlttBufferUnfaded[0x5D] = RGB( 9, 9, 9);
+ gPlttBufferUnfaded[0x5E] = RGB(31, 31, 31);
+ gPlttBufferUnfaded[0x5F] = RGB( 26, 26, 25);
+ CpuCopy16(&gPlttBufferUnfaded[0x5C], &gPlttBufferFaded[0x5C], 8);
+ if (gBattleTypeFlags & (BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_POKEDUDE))
+ {
+ Menu_LoadStdPalAt(0x70);
+ TextWindow_LoadResourcesStdFrame0(0, 0x030, 0x70);
+ gPlttBufferUnfaded[0x76] = RGB( 0, 0, 0);
+ CpuCopy16(&gPlttBufferUnfaded[0x76], &gPlttBufferFaded[0x76], 2);
+ }
+}
+
+void DrawMainBattleBackground(void)
+{
+ LoadBattleTerrainGfx(GetBattleTerrainOverride());
+}
+
+void LoadBattleTextboxAndBackground(void)
+{
+ LZDecompressVram(gBattleTextboxTiles, (void *)BG_CHAR_ADDR(0));
+ CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0x000);
+ CopyBgTilemapBufferToVram(0);
+ LoadCompressedPalette(gBattleTextboxPalette, 0x00, 0x40);
+ LoadBattleMenuWindowGfx();
+ DrawMainBattleBackground();
+}
+
+static void DrawLinkBattleParticipantPokeballs(u8 taskId, u8 multiplayerId, u8 bgId, u8 destX, u8 destY)
+{
+ s32 i;
+ u16 pokeballStatuses = 0;
+ u16 tiles[6];
+
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ if (gTasks[taskId].data[5] != 0)
+ {
+ switch (multiplayerId)
+ {
+ case 0:
+ pokeballStatuses = 0x3F & gTasks[taskId].data[3];
+ break;
+ case 1:
+ pokeballStatuses = (0xFC0 & gTasks[taskId].data[4]) >> 6;
+ break;
+ case 2:
+ pokeballStatuses = (0xFC0 & gTasks[taskId].data[3]) >> 6;
+ break;
+ case 3:
+ pokeballStatuses = 0x3F & gTasks[taskId].data[4];
+ break;
+ }
+ }
+ else
+ {
+ switch (multiplayerId)
+ {
+ case 0:
+ pokeballStatuses = 0x3F & gTasks[taskId].data[3];
+ break;
+ case 1:
+ pokeballStatuses = 0x3F & gTasks[taskId].data[4];
+ break;
+ case 2:
+ pokeballStatuses = (0xFC0 & gTasks[taskId].data[3]) >> 6;
+ break;
+ case 3:
+ pokeballStatuses = (0xFC0 & gTasks[taskId].data[4]) >> 6;
+ break;
+ }
+ }
+
+ for (i = 0; i < 3; i++)
+ tiles[i] = ((pokeballStatuses & (3 << (i * 2))) >> (i * 2)) + 0x6001;
+
+ CopyToBgTilemapBufferRect_ChangePalette(bgId, tiles, destX, destY, 3, 1, 0x11);
+ CopyBgTilemapBufferToVram(bgId);
+ }
+ else
+ {
+ if (multiplayerId == gBattleStruct->multiplayerId)
+ pokeballStatuses = gTasks[taskId].data[3];
+ else
+ pokeballStatuses = gTasks[taskId].data[4];
+
+ for (i = 0; i < 6; i++)
+ tiles[i] = ((pokeballStatuses & (3 << (i * 2))) >> (i * 2)) + 0x6001;
+
+ CopyToBgTilemapBufferRect_ChangePalette(bgId, tiles, destX, destY, 6, 1, 0x11);
+ CopyBgTilemapBufferToVram(bgId);
+ }
+}
+
+static void DrawLinkBattleVsScreenOutcomeText(void)
+{
+ if (gBattleOutcome == B_OUTCOME_DREW)
+ {
+ BattlePutTextOnWindow(gText_Draw, 0x15);
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ if (gBattleOutcome == B_OUTCOME_WON)
+ {
+ switch (gLinkPlayers[gBattleStruct->multiplayerId].id)
+ {
+ case 0:
+ BattlePutTextOnWindow(gText_Win, 0x16);
+ BattlePutTextOnWindow(gText_Loss, 0x17);
+ break;
+ case 1:
+ BattlePutTextOnWindow(gText_Win, 0x17);
+ BattlePutTextOnWindow(gText_Loss, 0x16);
+ break;
+ case 2:
+ BattlePutTextOnWindow(gText_Win, 0x16);
+ BattlePutTextOnWindow(gText_Loss, 0x17);
+ break;
+ case 3:
+ BattlePutTextOnWindow(gText_Win, 0x17);
+ BattlePutTextOnWindow(gText_Loss, 0x16);
+ break;
+ }
+ }
+ else
+ {
+ switch (gLinkPlayers[gBattleStruct->multiplayerId].id)
+ {
+ case 0:
+ BattlePutTextOnWindow(gText_Win, 0x17);
+ BattlePutTextOnWindow(gText_Loss, 0x16);
+ break;
+ case 1:
+ BattlePutTextOnWindow(gText_Win, 0x16);
+ BattlePutTextOnWindow(gText_Loss, 0x17);
+ break;
+ case 2:
+ BattlePutTextOnWindow(gText_Win, 0x17);
+ BattlePutTextOnWindow(gText_Loss, 0x16);
+ break;
+ case 3:
+ BattlePutTextOnWindow(gText_Win, 0x16);
+ BattlePutTextOnWindow(gText_Loss, 0x17);
+ break;
+ }
+ }
+ }
+ else if (gBattleOutcome == B_OUTCOME_WON)
+ {
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0)
+ {
+ BattlePutTextOnWindow(gText_Win, 0x17);
+ BattlePutTextOnWindow(gText_Loss, 0x16);
+ }
+ else
+ {
+ BattlePutTextOnWindow(gText_Win, 0x16);
+ BattlePutTextOnWindow(gText_Loss, 0x17);
+ }
+ }
+ else
+ {
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0)
+ {
+ BattlePutTextOnWindow(gText_Win, 0x16);
+ BattlePutTextOnWindow(gText_Loss, 0x17);
+ }
+ else
+ {
+ BattlePutTextOnWindow(gText_Win, 0x17);
+ BattlePutTextOnWindow(gText_Loss, 0x16);
+ }
+ }
+}
+
+void InitLinkBattleVsScreen(u8 taskId)
+{
+ struct LinkPlayer *linkPlayer;
+ u8 *name;
+ s32 i, palId;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
+ {
+ name = gLinkPlayers[i].name;
+ linkPlayer = &gLinkPlayers[i];
+
+ switch (linkPlayer->id)
+ {
+ case 0:
+ BattlePutTextOnWindow(name, 0x11);
+ DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 1, 2, 4);
+ break;
+ case 1:
+ BattlePutTextOnWindow(name, 0x12);
+ DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 2, 2, 4);
+ break;
+ case 2:
+ BattlePutTextOnWindow(name, 0x13);
+ DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 1, 2, 8);
+ break;
+ case 3:
+ BattlePutTextOnWindow(name, 0x14);
+ DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 2, 2, 8);
+ break;
+ }
+ }
+ }
+ else
+ {
+ u8 playerId = gBattleStruct->multiplayerId;
+ u8 opponentId = playerId ^ BIT_SIDE;
+ u8 opponentId_copy = opponentId;
+
+ if (gLinkPlayers[playerId].id != 0)
+ opponentId = playerId, playerId = opponentId_copy;
+
+ name = gLinkPlayers[playerId].name;
+ BattlePutTextOnWindow(name, 0xF);
+
+ name = gLinkPlayers[opponentId].name;
+ BattlePutTextOnWindow(name, 0x10);
+
+ DrawLinkBattleParticipantPokeballs(taskId, playerId, 1, 2, 7);
+ DrawLinkBattleParticipantPokeballs(taskId, opponentId, 2, 2, 7);
+ }
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ palId = AllocSpritePalette(TAG_VS_LETTERS);
+ gPlttBufferUnfaded[palId * 16 + 0x10F] = gPlttBufferFaded[palId * 16 + 0x10F] = RGB(31, 31, 31);
+ gBattleStruct->linkBattleVsSpriteId_V = CreateSprite(&sVsLetter_V_SpriteTemplate, 108, 80, 0);
+ gBattleStruct->linkBattleVsSpriteId_S = CreateSprite(&sVsLetter_S_SpriteTemplate, 132, 80, 0);
+ gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = TRUE;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = TRUE;
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ if (gTasks[taskId].data[5] != 0)
+ {
+ gBattle_BG1_X = -(20) - (Sin2(gTasks[taskId].data[1]) / 32);
+ gBattle_BG2_X = -(140) - (Sin2(gTasks[taskId].data[2]) / 32);
+ gBattle_BG1_Y = -36;
+ gBattle_BG2_Y = -36;
+ }
+ else
+ {
+ gBattle_BG1_X = -(20) - (Sin2(gTasks[taskId].data[1]) / 32);
+ gBattle_BG1_Y = (Cos2(gTasks[taskId].data[1]) / 32) - 164;
+ gBattle_BG2_X = -(140) - (Sin2(gTasks[taskId].data[2]) / 32);
+ gBattle_BG2_Y = (Cos2(gTasks[taskId].data[2]) / 32) - 164;
+ }
+
+ if (gTasks[taskId].data[2] != 0)
+ {
+ gTasks[taskId].data[2] -= 2;
+ gTasks[taskId].data[1] += 2;
+ }
+ else
+ {
+ if (gTasks[taskId].data[5] != 0)
+ DrawLinkBattleVsScreenOutcomeText();
+
+ PlaySE(SE_W231);
+ DestroyTask(taskId);
+ gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = FALSE;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = FALSE;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.tileNum += 0x40;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[0] = 0;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[0] = 1;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_V].pos1.x;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_S].pos1.x;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[2] = 0;
+ gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[2] = 0;
+ }
+ break;
+ }
+}
+
+void DrawBattleEntryBackground(void)
+{
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ LZDecompressVram(gFile_graphics_battle_transitions_vs_frame_sheet, (void*)(BG_CHAR_ADDR(1)));
+ LZDecompressVram(gVsLettersGfx, (void*)(VRAM + 0x10000));
+ LoadCompressedPalette(gFile_graphics_battle_transitions_vs_frame_palette, 0x60, 0x20);
+ SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1);
+ SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT512x256);
+ CopyToBgTilemapBuffer(1, gFile_graphics_battle_transitions_vs_frame_tilemap, 0, 0);
+ CopyToBgTilemapBuffer(2, gFile_graphics_battle_transitions_vs_frame_tilemap, 0, 0);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(2);
+ SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
+ gBattle_BG1_Y = -164;
+ gBattle_BG2_Y = -164;
+ LoadCompressedSpriteSheetUsingHeap(&sVsLettersSpriteSheet);
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)
+ {
+ LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_GRASS);
+ }
+ else if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))
+ {
+ LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
+ {
+ if (gGameVersion == VERSION_FIRE_RED)
+ {
+ LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_CAVE);
+ }
+ else
+ {
+ LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_WATER);
+ }
+ }
+ else
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ {
+ u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
+ if (trainerClass == CLASS_LEADER_2)
+ {
+ LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
+ return;
+ }
+ else if (trainerClass == CLASS_CHAMPION_2)
+ {
+ LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
+ return;
+ }
+ }
+
+ if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL)
+ {
+ LoadBattleTerrainEntryGfx(gBattleTerrain);
+ }
+ else
+ {
+ LoadBattleTerrainEntryGfx(BATTLE_TERRAIN_BUILDING);
+ }
+ }
+}
+
+static u8 GetBattleTerrainOverride(void)
+{
+ u8 battleScene;
+ if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))
+ {
+ return BATTLE_TERRAIN_LINK;
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)
+ {
+ gBattleTerrain = BATTLE_TERRAIN_GRASS;
+ return BATTLE_TERRAIN_GRASS;
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ {
+ if (gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_LEADER_2)
+ {
+ return BATTLE_TERRAIN_LEADER;
+ }
+ else if (gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_CHAMPION_2)
+ {
+ return BATTLE_TERRAIN_CHAMPION;
+ }
+ }
+ battleScene = GetCurrentMapBattleScene();
+ if (battleScene == MAP_BATTLE_SCENE_NORMAL)
+ {
+ return gBattleTerrain;
+ }
+ return GetBattleTerrainByMapScene(battleScene);
+}
+
+bool8 LoadChosenBattleElement(u8 caseId)
+{
+ bool8 ret = FALSE;
+ u8 battleScene;
+ switch (caseId)
+ {
+ case 0:
+ LZDecompressVram(gBattleTextboxTiles, (void *)BG_CHAR_ADDR(0));
+ break;
+ case 1:
+ CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0x000);
+ CopyBgTilemapBufferToVram(0);
+ break;
+ case 2:
+ LoadCompressedPalette(gBattleTextboxPalette, 0x00, 0x40);
+ break;
+ case 3:
+ battleScene = GetBattleTerrainOverride();
+ LZDecompressVram(sBattleTerrainTable[battleScene].tileset, (void *)BG_CHAR_ADDR(2));
+ // fallthrough
+ case 4:
+ battleScene = GetBattleTerrainOverride();
+ LZDecompressVram(sBattleTerrainTable[battleScene].tilemap, (void *)BG_SCREEN_ADDR(26));
+ break;
+ case 5:
+ battleScene = GetBattleTerrainOverride();
+ LoadCompressedPalette(sBattleTerrainTable[battleScene].palette, 0x20, 0x60);
+ break;
+ case 6:
+ LoadBattleMenuWindowGfx();
+ break;
+ default:
+ ret = TRUE;
+ break;
+ }
+ return ret;
+}
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index 7df93e170..3d8729824 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -1,27 +1,20 @@
#include "global.h"
-#include "bg.h"
#include "data.h"
#include "link.h"
-#include "main.h"
#include "m4a.h"
#include "palette.h"
#include "pokeball.h"
#include "pokemon.h"
-#include "reshow_battle_screen.h"
#include "sound.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
#include "util.h"
-#include "window.h"
#include "battle.h"
-#include "battle_ai_script_commands.h"
#include "battle_anim.h"
#include "battle_controllers.h"
#include "battle_interface.h"
#include "battle_message.h"
-#include "battle_setup.h"
-#include "battle_tower.h"
#include "constants/battle_anim.h"
#include "constants/songs.h"
#include "constants/facility_trainer_classes.h"
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index 96130f049..5ac4f1abc 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -1,9 +1,6 @@
#include "global.h"
-#include "bg.h"
#include "data.h"
#include "link.h"
-#include "main.h"
-#include "m4a.h"
#include "palette.h"
#include "pokeball.h"
#include "pokemon.h"
@@ -12,16 +9,11 @@
#include "task.h"
#include "text.h"
#include "util.h"
-#include "window.h"
#include "battle.h"
-#include "battle_ai_script_commands.h"
#include "battle_anim.h"
#include "battle_controllers.h"
#include "battle_interface.h"
#include "battle_message.h"
-#include "battle_setup.h"
-#include "battle_tower.h"
-#include "reshow_battle_screen.h"
#include "constants/battle_anim.h"
#include "constants/songs.h"
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 3cb6d1432..26e35ae65 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -1,15 +1,10 @@
#include "global.h"
-#include "bg.h"
#include "data.h"
-#include "item.h"
-#include "link.h"
#include "main.h"
#include "m4a.h"
#include "task.h"
#include "text.h"
#include "util.h"
-#include "window.h"
-#include "palette.h"
#include "pokeball.h"
#include "pokemon.h"
#include "random.h"
@@ -20,15 +15,12 @@
#include "battle_controllers.h"
#include "battle_message.h"
#include "battle_interface.h"
-#include "battle_setup.h"
#include "battle_tower.h"
#include "battle_gfx_sfx_util.h"
#include "battle_ai_script_commands.h"
#include "battle_ai_switch_items.h"
#include "trainer_tower.h"
-#include "reshow_battle_screen.h"
#include "constants/battle_anim.h"
-#include "constants/items.h"
#include "constants/moves.h"
#include "constants/songs.h"
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 7b0a8aa47..a751c0eea 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -10,7 +10,6 @@
#include "party_menu.h"
#include "pokeball.h"
#include "pokemon.h"
-#include "random.h"
#include "sound.h"
#include "strings.h"
#include "string_util.h"
@@ -24,7 +23,6 @@
#include "battle_controllers.h"
#include "battle_interface.h"
#include "battle_message.h"
-#include "battle_setup.h"
#include "battle_script_commands.h"
#include "reshow_battle_screen.h"
#include "constants/battle_anim.h"
diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c
index d8ebe5ba4..8737a3866 100644
--- a/src/battle_controller_pokedude.c
+++ b/src/battle_controller_pokedude.c
@@ -11,7 +11,6 @@
#include "link.h"
#include "sound.h"
#include "event_data.h"
-#include "item.h"
#include "item_menu.h"
#include "text.h"
#include "strings.h"
@@ -25,7 +24,6 @@
#include "reshow_battle_screen.h"
#include "teachy_tv.h"
#include "constants/songs.h"
-#include "constants/items.h"
#include "constants/moves.h"
#include "constants/pokemon.h"
#include "constants/trainers.h"
diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c
index 4b5153c7c..28ed4091e 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle_controller_safari.c
@@ -9,16 +9,12 @@
#include "item_menu.h"
#include "link.h"
#include "main.h"
-#include "m4a.h"
#include "palette.h"
#include "pokeball.h"
#include "pokemon.h"
-#include "reshow_battle_screen.h"
#include "sound.h"
-#include "task.h"
#include "text.h"
#include "util.h"
-#include "window.h"
#include "strings.h"
#include "constants/songs.h"
#include "constants/battle_anim.h"
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 60cff27be..127b0903b 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -13,8 +13,6 @@
#include "party_menu.h"
#include "battle.h"
#include "battle_main.h"
-#include "battle_controllers.h"
-#include "battle_ai_script_commands.h"
#include "battle_anim.h"
#include "battle_interface.h"
#include "constants/battle_anim.h"
@@ -546,7 +544,7 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state)
void LoadBattleBarGfx(u8 arg0)
{
- LZDecompressWram(gFile_graphics_interface_hp_numbers, gMonSpritesGfxPtr->barFontGfx);
+ LZDecompressWram(gInterfaceGfx_HPNumbers, gMonSpritesGfxPtr->barFontGfx);
}
bool8 BattleInitAllSprites(u8 *state, u8 *battlerId)
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 56e9e0fad..e5145adc0 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -12,7 +12,6 @@
#include "safari_zone.h"
#include "sound.h"
#include "string_util.h"
-#include "strings.h"
#include "text.h"
#include "window.h"
#include "constants/songs.h"
diff --git a/src/battle_main.c b/src/battle_main.c
index faad8bafb..e7d02c673 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -8,13 +8,11 @@
#include "battle_message.h"
#include "battle_scripts.h"
#include "battle_setup.h"
-#include "battle_tower.h"
#include "battle_string_ids.h"
#include "berry.h"
#include "bg.h"
#include "data.h"
#include "decompress.h"
-#include "dma3.h"
#include "event_data.h"
#include "evolution_scene.h"
#include "graphics.h"
@@ -40,14 +38,12 @@
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
-#include "strings.h"
#include "task.h"
#include "text.h"
#include "trig.h"
#include "vs_seeker.h"
#include "util.h"
#include "window.h"
-#include "cable_club.h"
#include "constants/abilities.h"
#include "constants/battle_move_effects.h"
#include "constants/battle_setup.h"
@@ -979,7 +975,7 @@ static void CB2_HandleStartBattle(void)
ResetBlockReceivedFlags();
sub_8010414(2, playerMultiplayerId);
SetAllPlayersBerryData();
- taskId = CreateTask(sub_800F6FC, 0);
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 270;
gTasks[taskId].data[2] = 90;
gTasks[taskId].data[5] = 0;
@@ -1227,7 +1223,7 @@ static void CB2_HandleStartMultiBattle(void)
SetAllPlayersBerryData();
SetDeoxysStats();
memcpy(gDecompressionBuffer, gPlayerParty, sizeof(struct Pokemon) * 3);
- taskId = CreateTask(sub_800F6FC, 0);
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 270;
gTasks[taskId].data[2] = 90;
gTasks[taskId].data[5] = 0;
@@ -1785,7 +1781,7 @@ void sub_8011A1C(void)
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
SetVBlankCallback(VBlankCB_Battle);
- taskId = CreateTask(sub_800F6FC, 0);
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 270;
gTasks[taskId].data[2] = 90;
gTasks[taskId].data[5] = 1;
diff --git a/src/battle_message.c b/src/battle_message.c
index d8367c75e..7ca47e6fb 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -22,7 +22,6 @@
#include "constants/moves.h"
#include "constants/items.h"
#include "constants/trainer_classes.h"
-#include "constants/trainer_tower.h"
struct BattleWindowText
{
@@ -1272,9 +1271,9 @@ const u8 gUnknown_83FE860[] = _(" is");
const u8 gUnknown_83FE864[] = _(" is");
const u8 gText_BadEgg[] = _("Bad EGG");
const u8 gUnknown_83FE870[] = _("ミツル");
-const u8 gUnknown_83FE874[] = _("{HIGHLIGHT 0}Win");
-const u8 gUnknown_83FE87B[] = _("{HIGHLIGHT 0}Loss");
-const u8 gUnknown_83FE883[] = _("{HIGHLIGHT 0}Draw");
+const u8 gText_Win[] = _("{HIGHLIGHT 0}Win");
+const u8 gText_Loss[] = _("{HIGHLIGHT 0}Loss");
+const u8 gText_Draw[] = _("{HIGHLIGHT 0}Draw");
static const u8 sText_SpaceIs[] = _(" is");
static const u8 sText_ApostropheS[] = _("'s");
const u8 gUnknown_83FE892[] = _("a NORMAL move");
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 4875a63f2..de505827f 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -3,7 +3,6 @@
#include "util.h"
#include "pokemon.h"
#include "random.h"
-#include "data.h"
#include "text.h"
#include "sound.h"
#include "pokedex.h"
@@ -14,7 +13,6 @@
#include "bg.h"
#include "string_util.h"
#include "pokemon_icon.h"
-#include "m4a.h"
#include "mail.h"
#include "event_data.h"
#include "strings.h"
@@ -30,7 +28,6 @@
#include "battle.h"
#include "battle_message.h"
#include "battle_anim.h"
-#include "battle_setup.h"
#include "battle_ai_script_commands.h"
#include "battle_scripts.h"
#include "battle_string_ids.h"
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 73e7acc1a..354487abd 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -13,7 +13,7 @@
#include "strings.h"
#include "string_util.h"
#include "event_data.h"
-#include "event_object_80688E4.h"
+#include "event_object_movement.h"
#include "metatile_behavior.h"
#include "event_scripts.h"
#include "fldeff.h"
@@ -22,10 +22,8 @@
#include "field_player_avatar.h"
#include "field_screen_effect.h"
#include "field_message_box.h"
-#include "event_object_movement.h"
#include "vs_seeker.h"
#include "battle.h"
-#include "battle_setup.h"
#include "battle_transition.h"
#include "battle_controllers.h"
#include "constants/battle_setup.h"
@@ -37,7 +35,6 @@
#include "constants/pokemon.h"
#include "constants/trainers.h"
#include "constants/trainer_classes.h"
-#include "constants/maps.h"
enum
{
diff --git a/src/battle_tower.c b/src/battle_tower.c
index cecc05e29..82d3c4d85 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -24,7 +24,7 @@
#include "constants/moves.h"
#include "constants/pokemon.h"
#include "constants/vars.h"
-#include "constants/object_events.h"
+#include "constants/event_objects.h"
static EWRAM_DATA u16 sSpecialVar_0x8004_Copy = 0;
@@ -389,7 +389,7 @@ void ChooseNextBattleTowerTrainer(void)
static void SetBattleTowerTrainerGfxId(u8 trainerClass)
{
- VarSet(VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_YOUNGSTER);
+ VarSet(VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_YOUNGSTER);
}
void SetEReaderTrainerGfxId(void)
diff --git a/src/battle_transition.c b/src/battle_transition.c
index 463a3d930..b33d72f15 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -644,7 +644,7 @@ static bool8 BT_Phase1Blink(struct Task *task)
static bool8 BT_WaitForPhase1(struct Task *task)
{
- if (FindTaskIdByFunc(sBT_Phase1Tasks[task->tTransitionId]) == TASK_NONE)
+ if (FindTaskIdByFunc(sBT_Phase1Tasks[task->tTransitionId]) == TAIL_SENTINEL)
{
++task->tState;
return TRUE;
@@ -665,7 +665,7 @@ static bool8 BT_Phase2LaunchAnimTask(struct Task *task)
static bool8 BT_WaitForPhase2(struct Task *task)
{
task->tTransitionDone = FALSE;
- if (FindTaskIdByFunc(sBT_Phase2Tasks[task->tTransitionId]) == TASK_NONE)
+ if (FindTaskIdByFunc(sBT_Phase2Tasks[task->tTransitionId]) == TAIL_SENTINEL)
task->tTransitionDone = TRUE;
return FALSE;
}
@@ -3432,7 +3432,7 @@ static void BT_CreatePhase1SubTask(s16 fadeOutDelay, s16 fadeInDelay, s16 blinkT
static bool8 BT_IsPhase1Done(void)
{
- if (FindTaskIdByFunc(BT_Phase1SubTask) == TASK_NONE)
+ if (FindTaskIdByFunc(BT_Phase1SubTask) == TAIL_SENTINEL)
return TRUE;
else
return FALSE;
diff --git a/src/battle_util2.c b/src/battle_util2.c
index a3a748767..6de4941cb 100644
--- a/src/battle_util2.c
+++ b/src/battle_util2.c
@@ -5,7 +5,6 @@
#include "pokemon.h"
#include "malloc.h"
#include "trainer_tower.h"
-#include "battle_util2.h"
void AllocateBattleResources(void)
{
diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c
index e60a53ef9..2e0bf8256 100644
--- a/src/berry_fix_program.c
+++ b/src/berry_fix_program.c
@@ -1,17 +1,12 @@
#include "global.h"
#include "gpu_regs.h"
#include "multiboot.h"
-#include "malloc.h"
-#include "bg.h"
#include "graphics.h"
#include "main.h"
#include "sprite.h"
#include "task.h"
#include "scanline_effect.h"
-#include "window.h"
-#include "text.h"
#include "help_system.h"
-#include "menu.h"
#include "m4a.h"
// Static type declarations
diff --git a/src/credits.c b/src/credits.c
index ceb2028f9..a53d72f31 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -11,8 +11,6 @@
#include "decompress.h"
#include "graphics.h"
#include "strings.h"
-#include "menu.h"
-#include "field_weather.h"
#include "trainer_pokemon_sprites.h"
#include "sound.h"
#include "constants/species.h"
diff --git a/src/data/graphics/battle_terrain.h b/src/data/graphics/battle_terrain.h
new file mode 100644
index 000000000..f91c2d0d9
--- /dev/null
+++ b/src/data/graphics/battle_terrain.h
@@ -0,0 +1,30 @@
+
+const u32 gFile_graphics_battle_terrain_plain_palette_palette[] = INCBIN_U32("graphics/battle_terrain/plain/palette.gbapal.lz");
+
+const u32 gFile_graphics_battle_terrain_building_tiles_sheet[] = INCBIN_U32("graphics/battle_terrain/building/tiles.4bpp.lz");
+
+const u32 gFile_graphics_battle_terrain_stadium_battle_frontier_palette[] = INCBIN_U32("graphics/battle_terrain/stadium/battle_frontier.gbapal.lz");
+
+const u32 gFile_graphics_battle_terrain_building_map_tilemap[] = INCBIN_U32("graphics/battle_terrain/building/map.bin.lz");
+
+const u32 gFile_graphics_battle_terrain_stadium_tiles_sheet[] = INCBIN_U32("graphics/battle_terrain/stadium/tiles.4bpp.lz");
+const u32 gFile_graphics_battle_terrain_stadium_map_tilemap[] = INCBIN_U32("graphics/battle_terrain/stadium/map.bin.lz");
+
+const u32 gFile_graphics_battle_terrain_building_palette_palette[] = INCBIN_U32("graphics/battle_terrain/building/palette.gbapal.lz");
+
+const u32 gFile_graphics_battle_terrain_water_kyogre_palette[] = INCBIN_U32("graphics/battle_terrain/water/kyogre.gbapal.lz");
+const u32 gFile_graphics_battle_terrain_cave_groudon_palette[] = INCBIN_U32("graphics/battle_terrain/cave/groudon.gbapal.lz");
+
+const u32 gFile_graphics_battle_terrain_building_palette2_palette[] = INCBIN_U32("graphics/battle_terrain/building/palette2.gbapal.lz");
+const u32 gFile_graphics_battle_terrain_building_palette3_palette[] = INCBIN_U32("graphics/battle_terrain/building/palette3.gbapal.lz");
+
+const u32 gFile_graphics_battle_terrain_stadium_palette1_palette[] = INCBIN_U32("graphics/battle_terrain/stadium/palette1.gbapal.lz");
+const u32 gFile_graphics_battle_terrain_stadium_palette2_palette[] = INCBIN_U32("graphics/battle_terrain/stadium/palette2.gbapal.lz");
+const u32 gFile_graphics_battle_terrain_stadium_palette3_palette[] = INCBIN_U32("graphics/battle_terrain/stadium/palette3.gbapal.lz");
+const u32 gFile_graphics_battle_terrain_stadium_palette4_palette[] = INCBIN_U32("graphics/battle_terrain/stadium/palette4.gbapal.lz");
+const u32 gFile_graphics_battle_terrain_stadium_palette5_palette[] = INCBIN_U32("graphics/battle_terrain/stadium/palette5.gbapal.lz");
+const u32 gFile_graphics_battle_terrain_stadium_palette6_palette[] = INCBIN_U32("graphics/battle_terrain/stadium/palette6.gbapal.lz");
+const u32 gFile_graphics_battle_terrain_stadium_palette7_palette[] = INCBIN_U32("graphics/battle_terrain/stadium/palette7.gbapal.lz");
+
+const u32 gFile_graphics_battle_terrain_building_anim_tiles_sheet[] = INCBIN_U32("graphics/battle_terrain/building/anim_tiles.4bpp.lz");
+const u32 gFile_graphics_battle_terrain_building_anim_map_tilemap[] = INCBIN_U32("graphics/battle_terrain/building/anim_map.bin.lz");
diff --git a/src/data/graphics/interface_pokeballs.h b/src/data/graphics/interface_pokeballs.h
new file mode 100644
index 000000000..fe9a4e5be
--- /dev/null
+++ b/src/data/graphics/interface_pokeballs.h
@@ -0,0 +1,37 @@
+const u32 gInterfaceGfx_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.4bpp.lz");
+const u32 gInterfacePal_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.gbapal.lz");
+
+const u32 gInterfaceGfx_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.4bpp.lz");
+const u32 gInterfacePal_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.gbapal.lz");
+
+const u32 gInterfaceGfx_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.4bpp.lz");
+const u32 gInterfacePal_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.gbapal.lz");
+
+const u32 gInterfaceGfx_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.4bpp.lz");
+const u32 gInterfacePal_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.gbapal.lz");
+
+const u32 gInterfaceGfx_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.4bpp.lz");
+const u32 gInterfacePal_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.gbapal.lz");
+
+const u32 gInterfaceGfx_NetBall[] = INCBIN_U32("graphics/interface/ball/net.4bpp.lz");
+const u32 gInterfacePal_NetBall[] = INCBIN_U32("graphics/interface/ball/net.gbapal.lz");
+
+const u32 gInterfaceGfx_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.4bpp.lz");
+const u32 gInterfacePal_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.gbapal.lz");
+
+const u32 gInterfaceGfx_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.4bpp.lz");
+const u32 gInterfacePal_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.gbapal.lz");
+
+const u32 gInterfaceGfx_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.4bpp.lz");
+const u32 gInterfacePal_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.gbapal.lz");
+
+const u32 gInterfaceGfx_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.4bpp.lz");
+const u32 gInterfacePal_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.gbapal.lz");
+
+const u32 gInterfaceGfx_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.4bpp.lz");
+const u32 gInterfacePal_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.gbapal.lz");
+
+const u32 gInterfaceGfx_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.4bpp.lz");
+const u32 gInterfacePal_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.gbapal.lz");
+
+const u32 gOpenPokeballGfx[] = INCBIN_U32("graphics/interface/ball_open.4bpp.lz");
diff --git a/src/data/graphics/items.h b/src/data/graphics/items.h
new file mode 100644
index 000000000..ee86b454c
--- /dev/null
+++ b/src/data/graphics/items.h
@@ -0,0 +1,672 @@
+const u32 gFile_graphics_items_icons_question_mark_sheet[] = INCBIN_U32("graphics/items/icons/question_mark.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_question_mark_palette[] = INCBIN_U32("graphics/items/icon_palettes/question_mark.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_return_to_field_arrow_sheet[] = INCBIN_U32("graphics/items/icons/return_to_field_arrow.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_return_to_field_arrow_palette[] = INCBIN_U32("graphics/items/icon_palettes/return_to_field_arrow.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_master_ball_sheet[] = INCBIN_U32("graphics/items/icons/master_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_master_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/master_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_ultra_ball_sheet[] = INCBIN_U32("graphics/items/icons/ultra_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_ultra_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/ultra_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_great_ball_sheet[] = INCBIN_U32("graphics/items/icons/great_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_great_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/great_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_poke_ball_sheet[] = INCBIN_U32("graphics/items/icons/poke_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_poke_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/poke_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_safari_ball_sheet[] = INCBIN_U32("graphics/items/icons/safari_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_safari_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/safari_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_net_ball_sheet[] = INCBIN_U32("graphics/items/icons/net_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_net_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/net_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_dive_ball_sheet[] = INCBIN_U32("graphics/items/icons/dive_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_dive_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/dive_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_nest_ball_sheet[] = INCBIN_U32("graphics/items/icons/nest_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_nest_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/nest_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_repeat_ball_sheet[] = INCBIN_U32("graphics/items/icons/repeat_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_repeat_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/repeat_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_timer_ball_sheet[] = INCBIN_U32("graphics/items/icons/timer_ball.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_luxury_ball_sheet[] = INCBIN_U32("graphics/items/icons/luxury_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_luxury_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/luxury_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_premier_ball_sheet[] = INCBIN_U32("graphics/items/icons/premier_ball.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_potion_sheet[] = INCBIN_U32("graphics/items/icons/potion.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_potion_palette[] = INCBIN_U32("graphics/items/icon_palettes/potion.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_antidote_sheet[] = INCBIN_U32("graphics/items/icons/antidote.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_antidote_palette[] = INCBIN_U32("graphics/items/icon_palettes/antidote.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_burn_heal_palette[] = INCBIN_U32("graphics/items/icon_palettes/burn_heal.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_ice_heal_palette[] = INCBIN_U32("graphics/items/icon_palettes/ice_heal.gbapal.lz");
+const u32 gFile_graphics_items_icons_status_heal_sheet[] = INCBIN_U32("graphics/items/icons/status_heal.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_awakening_palette[] = INCBIN_U32("graphics/items/icon_palettes/awakening.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_paralyze_heal_palette[] = INCBIN_U32("graphics/items/icon_palettes/paralyze_heal.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_large_potion_sheet[] = INCBIN_U32("graphics/items/icons/large_potion.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_full_restore_palette[] = INCBIN_U32("graphics/items/icon_palettes/full_restore.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_max_potion_palette[] = INCBIN_U32("graphics/items/icon_palettes/max_potion.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_hyper_potion_palette[] = INCBIN_U32("graphics/items/icon_palettes/hyper_potion.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_super_potion_palette[] = INCBIN_U32("graphics/items/icon_palettes/super_potion.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_full_heal_sheet[] = INCBIN_U32("graphics/items/icons/full_heal.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_full_heal_palette[] = INCBIN_U32("graphics/items/icon_palettes/full_heal.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_revive_sheet[] = INCBIN_U32("graphics/items/icons/revive.4bpp.lz");
+const u32 gFile_graphics_items_icons_max_revive_sheet[] = INCBIN_U32("graphics/items/icons/max_revive.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_revive_palette[] = INCBIN_U32("graphics/items/icon_palettes/revive.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_fresh_water_sheet[] = INCBIN_U32("graphics/items/icons/fresh_water.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_fresh_water_palette[] = INCBIN_U32("graphics/items/icon_palettes/fresh_water.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_soda_pop_sheet[] = INCBIN_U32("graphics/items/icons/soda_pop.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_soda_pop_palette[] = INCBIN_U32("graphics/items/icon_palettes/soda_pop.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_lemonade_sheet[] = INCBIN_U32("graphics/items/icons/lemonade.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_lemonade_palette[] = INCBIN_U32("graphics/items/icon_palettes/lemonade.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_moomoo_milk_sheet[] = INCBIN_U32("graphics/items/icons/moomoo_milk.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_moomoo_milk_palette[] = INCBIN_U32("graphics/items/icon_palettes/moomoo_milk.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_powder_sheet[] = INCBIN_U32("graphics/items/icons/powder.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_energy_powder_palette[] = INCBIN_U32("graphics/items/icon_palettes/energy_powder.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_energy_root_sheet[] = INCBIN_U32("graphics/items/icons/energy_root.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_energy_root_palette[] = INCBIN_U32("graphics/items/icon_palettes/energy_root.gbapal.lz");
+
+const u32 gFile_graphics_items_icon_palettes_heal_powder_palette[] = INCBIN_U32("graphics/items/icon_palettes/heal_powder.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_revival_herb_sheet[] = INCBIN_U32("graphics/items/icons/revival_herb.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_revival_herb_palette[] = INCBIN_U32("graphics/items/icon_palettes/revival_herb.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_ether_sheet[] = INCBIN_U32("graphics/items/icons/ether.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_ether_palette[] = INCBIN_U32("graphics/items/icon_palettes/ether.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_max_ether_palette[] = INCBIN_U32("graphics/items/icon_palettes/max_ether.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_elixir_palette[] = INCBIN_U32("graphics/items/icon_palettes/elixir.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_max_elixir_palette[] = INCBIN_U32("graphics/items/icon_palettes/max_elixir.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_lava_cookie_sheet[] = INCBIN_U32("graphics/items/icons/lava_cookie.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette[] = INCBIN_U32("graphics/items/icon_palettes/lava_cookie_and_letter.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_flute_sheet[] = INCBIN_U32("graphics/items/icons/flute.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_blue_flute_palette[] = INCBIN_U32("graphics/items/icon_palettes/blue_flute.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_yellow_flute_palette[] = INCBIN_U32("graphics/items/icon_palettes/yellow_flute.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_red_flute_palette[] = INCBIN_U32("graphics/items/icon_palettes/red_flute.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_black_flute_palette[] = INCBIN_U32("graphics/items/icon_palettes/black_flute.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_white_flute_palette[] = INCBIN_U32("graphics/items/icon_palettes/white_flute.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_berry_juice_sheet[] = INCBIN_U32("graphics/items/icons/berry_juice.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_berry_juice_palette[] = INCBIN_U32("graphics/items/icon_palettes/berry_juice.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_sacred_ash_sheet[] = INCBIN_U32("graphics/items/icons/sacred_ash.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_sacred_ash_palette[] = INCBIN_U32("graphics/items/icon_palettes/sacred_ash.gbapal.lz");
+
+const u32 gFile_graphics_items_icon_palettes_shoal_salt_palette[] = INCBIN_U32("graphics/items/icon_palettes/shoal_salt.gbapal.lz");
+const u32 gFile_graphics_items_icons_shoal_shell_sheet[] = INCBIN_U32("graphics/items/icons/shoal_shell.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_shell_palette[] = INCBIN_U32("graphics/items/icon_palettes/shell.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_shard_sheet[] = INCBIN_U32("graphics/items/icons/shard.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_red_shard_palette[] = INCBIN_U32("graphics/items/icon_palettes/red_shard.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_blue_shard_palette[] = INCBIN_U32("graphics/items/icon_palettes/blue_shard.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_yellow_shard_palette[] = INCBIN_U32("graphics/items/icon_palettes/yellow_shard.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_green_shard_palette[] = INCBIN_U32("graphics/items/icon_palettes/green_shard.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_hp_up_sheet[] = INCBIN_U32("graphics/items/icons/hp_up.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_hp_up_palette[] = INCBIN_U32("graphics/items/icon_palettes/hp_up.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_vitamin_sheet[] = INCBIN_U32("graphics/items/icons/vitamin.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_protein_palette[] = INCBIN_U32("graphics/items/icon_palettes/protein.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_iron_palette[] = INCBIN_U32("graphics/items/icon_palettes/iron.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_carbos_palette[] = INCBIN_U32("graphics/items/icon_palettes/carbos.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_calcium_palette[] = INCBIN_U32("graphics/items/icon_palettes/calcium.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_rare_candy_sheet[] = INCBIN_U32("graphics/items/icons/rare_candy.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_rare_candy_palette[] = INCBIN_U32("graphics/items/icon_palettes/rare_candy.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_pp_up_sheet[] = INCBIN_U32("graphics/items/icons/pp_up.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_pp_up_palette[] = INCBIN_U32("graphics/items/icon_palettes/pp_up.gbapal.lz");
+
+const u32 gFile_graphics_items_icon_palettes_zinc_palette[] = INCBIN_U32("graphics/items/icon_palettes/zinc.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_pp_max_sheet[] = INCBIN_U32("graphics/items/icons/pp_max.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_pp_max_palette[] = INCBIN_U32("graphics/items/icon_palettes/pp_max.gbapal.lz");
+
+const u32 gFile_graphics_items_icon_palettes_guard_spec_palette[] = INCBIN_U32("graphics/items/icon_palettes/guard_spec.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_dire_hit_palette[] = INCBIN_U32("graphics/items/icon_palettes/dire_hit.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_x_attack_palette[] = INCBIN_U32("graphics/items/icon_palettes/x_attack.gbapal.lz");
+const u32 gFile_graphics_items_icons_battle_stat_item_sheet[] = INCBIN_U32("graphics/items/icons/battle_stat_item.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_x_defend_palette[] = INCBIN_U32("graphics/items/icon_palettes/x_defend.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_x_speed_palette[] = INCBIN_U32("graphics/items/icon_palettes/x_speed.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_x_accuracy_palette[] = INCBIN_U32("graphics/items/icon_palettes/x_accuracy.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_x_special_palette[] = INCBIN_U32("graphics/items/icon_palettes/x_special.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_poke_doll_sheet[] = INCBIN_U32("graphics/items/icons/poke_doll.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_poke_doll_palette[] = INCBIN_U32("graphics/items/icon_palettes/poke_doll.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_fluffy_tail_sheet[] = INCBIN_U32("graphics/items/icons/fluffy_tail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_fluffy_tail_palette[] = INCBIN_U32("graphics/items/icon_palettes/fluffy_tail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_repel_sheet[] = INCBIN_U32("graphics/items/icons/repel.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_super_repel_palette[] = INCBIN_U32("graphics/items/icon_palettes/super_repel.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_max_repel_palette[] = INCBIN_U32("graphics/items/icon_palettes/max_repel.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_escape_rope_sheet[] = INCBIN_U32("graphics/items/icons/escape_rope.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_escape_rope_palette[] = INCBIN_U32("graphics/items/icon_palettes/escape_rope.gbapal.lz");
+
+const u32 gFile_graphics_items_icon_palettes_repel_palette[] = INCBIN_U32("graphics/items/icon_palettes/repel.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_sun_stone_sheet[] = INCBIN_U32("graphics/items/icons/sun_stone.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_sun_stone_palette[] = INCBIN_U32("graphics/items/icon_palettes/sun_stone.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_moon_stone_sheet[] = INCBIN_U32("graphics/items/icons/moon_stone.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_moon_stone_palette[] = INCBIN_U32("graphics/items/icon_palettes/moon_stone.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_fire_stone_sheet[] = INCBIN_U32("graphics/items/icons/fire_stone.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_fire_stone_palette[] = INCBIN_U32("graphics/items/icon_palettes/fire_stone.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_thunder_stone_sheet[] = INCBIN_U32("graphics/items/icons/thunder_stone.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_thunder_stone_palette[] = INCBIN_U32("graphics/items/icon_palettes/thunder_stone.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_water_stone_sheet[] = INCBIN_U32("graphics/items/icons/water_stone.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_water_stone_palette[] = INCBIN_U32("graphics/items/icon_palettes/water_stone.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_leaf_stone_sheet[] = INCBIN_U32("graphics/items/icons/leaf_stone.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_leaf_stone_palette[] = INCBIN_U32("graphics/items/icon_palettes/leaf_stone.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_tiny_mushroom_sheet[] = INCBIN_U32("graphics/items/icons/tiny_mushroom.4bpp.lz");
+const u32 gFile_graphics_items_icons_big_mushroom_sheet[] = INCBIN_U32("graphics/items/icons/big_mushroom.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_mushroom_palette[] = INCBIN_U32("graphics/items/icon_palettes/mushroom.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_pearl_sheet[] = INCBIN_U32("graphics/items/icons/pearl.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_pearl_palette[] = INCBIN_U32("graphics/items/icon_palettes/pearl.gbapal.lz");
+const u32 gFile_graphics_items_icons_big_pearl_sheet[] = INCBIN_U32("graphics/items/icons/big_pearl.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_stardust_sheet[] = INCBIN_U32("graphics/items/icons/stardust.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_star_palette[] = INCBIN_U32("graphics/items/icon_palettes/star.gbapal.lz");
+const u32 gFile_graphics_items_icons_star_piece_sheet[] = INCBIN_U32("graphics/items/icons/star_piece.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_nugget_sheet[] = INCBIN_U32("graphics/items/icons/nugget.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_nugget_palette[] = INCBIN_U32("graphics/items/icon_palettes/nugget.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_heart_scale_sheet[] = INCBIN_U32("graphics/items/icons/heart_scale.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_heart_scale_palette[] = INCBIN_U32("graphics/items/icon_palettes/heart_scale.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_orange_mail_sheet[] = INCBIN_U32("graphics/items/icons/orange_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_orange_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/orange_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_harbor_mail_sheet[] = INCBIN_U32("graphics/items/icons/harbor_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_harbor_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/harbor_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_glitter_mail_sheet[] = INCBIN_U32("graphics/items/icons/glitter_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_glitter_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/glitter_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_mech_mail_sheet[] = INCBIN_U32("graphics/items/icons/mech_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_mech_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/mech_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_wood_mail_sheet[] = INCBIN_U32("graphics/items/icons/wood_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_wood_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/wood_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_wave_mail_sheet[] = INCBIN_U32("graphics/items/icons/wave_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_wave_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/wave_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_bead_mail_sheet[] = INCBIN_U32("graphics/items/icons/bead_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_bead_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/bead_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_shadow_mail_sheet[] = INCBIN_U32("graphics/items/icons/shadow_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_shadow_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/shadow_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_tropic_mail_sheet[] = INCBIN_U32("graphics/items/icons/tropic_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_tropic_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/tropic_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_dream_mail_sheet[] = INCBIN_U32("graphics/items/icons/dream_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_dream_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/dream_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_fab_mail_sheet[] = INCBIN_U32("graphics/items/icons/fab_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_fab_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/fab_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_retro_mail_sheet[] = INCBIN_U32("graphics/items/icons/retro_mail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_retro_mail_palette[] = INCBIN_U32("graphics/items/icon_palettes/retro_mail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_cheri_berry_sheet[] = INCBIN_U32("graphics/items/icons/cheri_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_cheri_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/cheri_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_chesto_berry_sheet[] = INCBIN_U32("graphics/items/icons/chesto_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_chesto_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/chesto_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_pecha_berry_sheet[] = INCBIN_U32("graphics/items/icons/pecha_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_pecha_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/pecha_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_rawst_berry_sheet[] = INCBIN_U32("graphics/items/icons/rawst_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_rawst_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/rawst_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_aspear_berry_sheet[] = INCBIN_U32("graphics/items/icons/aspear_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_aspear_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/aspear_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_leppa_berry_sheet[] = INCBIN_U32("graphics/items/icons/leppa_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_leppa_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/leppa_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_oran_berry_sheet[] = INCBIN_U32("graphics/items/icons/oran_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_oran_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/oran_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_persim_berry_sheet[] = INCBIN_U32("graphics/items/icons/persim_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_persim_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/persim_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_lum_berry_sheet[] = INCBIN_U32("graphics/items/icons/lum_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_lum_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/lum_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_sitrus_berry_sheet[] = INCBIN_U32("graphics/items/icons/sitrus_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_sitrus_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/sitrus_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_figy_berry_sheet[] = INCBIN_U32("graphics/items/icons/figy_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_figy_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/figy_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_wiki_berry_sheet[] = INCBIN_U32("graphics/items/icons/wiki_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_wiki_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/wiki_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_mago_berry_sheet[] = INCBIN_U32("graphics/items/icons/mago_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_mago_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/mago_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_aguav_berry_sheet[] = INCBIN_U32("graphics/items/icons/aguav_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_aguav_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/aguav_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_iapapa_berry_sheet[] = INCBIN_U32("graphics/items/icons/iapapa_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_iapapa_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/iapapa_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_razz_berry_sheet[] = INCBIN_U32("graphics/items/icons/razz_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_razz_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/razz_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_bluk_berry_sheet[] = INCBIN_U32("graphics/items/icons/bluk_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_bluk_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/bluk_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_nanab_berry_sheet[] = INCBIN_U32("graphics/items/icons/nanab_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_nanab_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/nanab_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_wepear_berry_sheet[] = INCBIN_U32("graphics/items/icons/wepear_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_wepear_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/wepear_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_pinap_berry_sheet[] = INCBIN_U32("graphics/items/icons/pinap_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_pinap_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/pinap_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_pomeg_berry_sheet[] = INCBIN_U32("graphics/items/icons/pomeg_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_pomeg_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/pomeg_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_kelpsy_berry_sheet[] = INCBIN_U32("graphics/items/icons/kelpsy_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_kelpsy_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/kelpsy_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_qualot_berry_sheet[] = INCBIN_U32("graphics/items/icons/qualot_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_qualot_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/qualot_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_hondew_berry_sheet[] = INCBIN_U32("graphics/items/icons/hondew_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_hondew_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/hondew_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_grepa_berry_sheet[] = INCBIN_U32("graphics/items/icons/grepa_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_grepa_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/grepa_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_tamato_berry_sheet[] = INCBIN_U32("graphics/items/icons/tamato_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_tamato_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/tamato_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_cornn_berry_sheet[] = INCBIN_U32("graphics/items/icons/cornn_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_cornn_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/cornn_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_magost_berry_sheet[] = INCBIN_U32("graphics/items/icons/magost_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_magost_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/magost_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_rabuta_berry_sheet[] = INCBIN_U32("graphics/items/icons/rabuta_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_rabuta_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/rabuta_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_nomel_berry_sheet[] = INCBIN_U32("graphics/items/icons/nomel_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_nomel_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/nomel_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_spelon_berry_sheet[] = INCBIN_U32("graphics/items/icons/spelon_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_spelon_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/spelon_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_pamtre_berry_sheet[] = INCBIN_U32("graphics/items/icons/pamtre_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_pamtre_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/pamtre_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_watmel_berry_sheet[] = INCBIN_U32("graphics/items/icons/watmel_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_watmel_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/watmel_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_durin_berry_sheet[] = INCBIN_U32("graphics/items/icons/durin_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_durin_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/durin_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_belue_berry_sheet[] = INCBIN_U32("graphics/items/icons/belue_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_belue_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/belue_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_liechi_berry_sheet[] = INCBIN_U32("graphics/items/icons/liechi_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_liechi_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/liechi_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_ganlon_berry_sheet[] = INCBIN_U32("graphics/items/icons/ganlon_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_ganlon_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/ganlon_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_salac_berry_sheet[] = INCBIN_U32("graphics/items/icons/salac_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_salac_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/salac_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_petaya_berry_sheet[] = INCBIN_U32("graphics/items/icons/petaya_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_petaya_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/petaya_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_apicot_berry_sheet[] = INCBIN_U32("graphics/items/icons/apicot_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_apicot_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/apicot_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_lansat_berry_sheet[] = INCBIN_U32("graphics/items/icons/lansat_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_lansat_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/lansat_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_starf_berry_sheet[] = INCBIN_U32("graphics/items/icons/starf_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_starf_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/starf_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_enigma_berry_sheet[] = INCBIN_U32("graphics/items/icons/enigma_berry.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_enigma_berry_palette[] = INCBIN_U32("graphics/items/icon_palettes/enigma_berry.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_bright_powder_sheet[] = INCBIN_U32("graphics/items/icons/bright_powder.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_bright_powder_palette[] = INCBIN_U32("graphics/items/icon_palettes/bright_powder.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_in_battle_herb_sheet[] = INCBIN_U32("graphics/items/icons/in_battle_herb.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_white_herb_palette[] = INCBIN_U32("graphics/items/icon_palettes/white_herb.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_macho_brace_sheet[] = INCBIN_U32("graphics/items/icons/macho_brace.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_macho_brace_palette[] = INCBIN_U32("graphics/items/icon_palettes/macho_brace.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_exp_share_sheet[] = INCBIN_U32("graphics/items/icons/exp_share.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_exp_share_palette[] = INCBIN_U32("graphics/items/icon_palettes/exp_share.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_quick_claw_sheet[] = INCBIN_U32("graphics/items/icons/quick_claw.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_quick_claw_palette[] = INCBIN_U32("graphics/items/icon_palettes/quick_claw.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_soothe_bell_sheet[] = INCBIN_U32("graphics/items/icons/soothe_bell.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_soothe_bell_palette[] = INCBIN_U32("graphics/items/icon_palettes/soothe_bell.gbapal.lz");
+
+const u32 gFile_graphics_items_icon_palettes_mental_herb_palette[] = INCBIN_U32("graphics/items/icon_palettes/mental_herb.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_choice_band_sheet[] = INCBIN_U32("graphics/items/icons/choice_band.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_choice_band_palette[] = INCBIN_U32("graphics/items/icon_palettes/choice_band.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_kings_rock_sheet[] = INCBIN_U32("graphics/items/icons/kings_rock.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_kings_rock_palette[] = INCBIN_U32("graphics/items/icon_palettes/kings_rock.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_silver_powder_sheet[] = INCBIN_U32("graphics/items/icons/silver_powder.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_silver_powder_palette[] = INCBIN_U32("graphics/items/icon_palettes/silver_powder.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_amulet_coin_sheet[] = INCBIN_U32("graphics/items/icons/amulet_coin.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_amulet_coin_palette[] = INCBIN_U32("graphics/items/icon_palettes/amulet_coin.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_cleanse_tag_sheet[] = INCBIN_U32("graphics/items/icons/cleanse_tag.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_cleanse_tag_palette[] = INCBIN_U32("graphics/items/icon_palettes/cleanse_tag.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_soul_dew_sheet[] = INCBIN_U32("graphics/items/icons/soul_dew.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_soul_dew_palette[] = INCBIN_U32("graphics/items/icon_palettes/soul_dew.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_deep_sea_tooth_sheet[] = INCBIN_U32("graphics/items/icons/deep_sea_tooth.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_deep_sea_tooth_palette[] = INCBIN_U32("graphics/items/icon_palettes/deep_sea_tooth.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_deep_sea_scale_sheet[] = INCBIN_U32("graphics/items/icons/deep_sea_scale.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_deep_sea_scale_palette[] = INCBIN_U32("graphics/items/icon_palettes/deep_sea_scale.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_smoke_ball_sheet[] = INCBIN_U32("graphics/items/icons/smoke_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_smoke_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/smoke_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_everstone_sheet[] = INCBIN_U32("graphics/items/icons/everstone.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_everstone_palette[] = INCBIN_U32("graphics/items/icon_palettes/everstone.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_focus_band_sheet[] = INCBIN_U32("graphics/items/icons/focus_band.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_focus_band_palette[] = INCBIN_U32("graphics/items/icon_palettes/focus_band.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_lucky_egg_sheet[] = INCBIN_U32("graphics/items/icons/lucky_egg.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_lucky_egg_palette[] = INCBIN_U32("graphics/items/icon_palettes/lucky_egg.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_scope_lens_sheet[] = INCBIN_U32("graphics/items/icons/scope_lens.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_scope_lens_palette[] = INCBIN_U32("graphics/items/icon_palettes/scope_lens.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_metal_coat_sheet[] = INCBIN_U32("graphics/items/icons/metal_coat.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_metal_coat_palette[] = INCBIN_U32("graphics/items/icon_palettes/metal_coat.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_leftovers_sheet[] = INCBIN_U32("graphics/items/icons/leftovers.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_leftovers_palette[] = INCBIN_U32("graphics/items/icon_palettes/leftovers.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_dragon_scale_sheet[] = INCBIN_U32("graphics/items/icons/dragon_scale.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_dragon_scale_palette[] = INCBIN_U32("graphics/items/icon_palettes/dragon_scale.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_light_ball_sheet[] = INCBIN_U32("graphics/items/icons/light_ball.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_light_ball_palette[] = INCBIN_U32("graphics/items/icon_palettes/light_ball.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_soft_sand_sheet[] = INCBIN_U32("graphics/items/icons/soft_sand.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_soft_sand_palette[] = INCBIN_U32("graphics/items/icon_palettes/soft_sand.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_hard_stone_sheet[] = INCBIN_U32("graphics/items/icons/hard_stone.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_hard_stone_palette[] = INCBIN_U32("graphics/items/icon_palettes/hard_stone.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_miracle_seed_sheet[] = INCBIN_U32("graphics/items/icons/miracle_seed.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_miracle_seed_palette[] = INCBIN_U32("graphics/items/icon_palettes/miracle_seed.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_black_glasses_sheet[] = INCBIN_U32("graphics/items/icons/black_glasses.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette[] = INCBIN_U32("graphics/items/icon_palettes/black_type_enhancing_item.gbapal.lz");
+const u32 gFile_graphics_items_icons_black_belt_sheet[] = INCBIN_U32("graphics/items/icons/black_belt.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_magnet_sheet[] = INCBIN_U32("graphics/items/icons/magnet.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_magnet_palette[] = INCBIN_U32("graphics/items/icon_palettes/magnet.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_mystic_water_sheet[] = INCBIN_U32("graphics/items/icons/mystic_water.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_mystic_water_palette[] = INCBIN_U32("graphics/items/icon_palettes/mystic_water.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_sharp_beak_sheet[] = INCBIN_U32("graphics/items/icons/sharp_beak.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_sharp_beak_palette[] = INCBIN_U32("graphics/items/icon_palettes/sharp_beak.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_poison_barb_sheet[] = INCBIN_U32("graphics/items/icons/poison_barb.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_poison_barb_palette[] = INCBIN_U32("graphics/items/icon_palettes/poison_barb.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_never_melt_ice_sheet[] = INCBIN_U32("graphics/items/icons/never_melt_ice.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_never_melt_ice_palette[] = INCBIN_U32("graphics/items/icon_palettes/never_melt_ice.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_spell_tag_sheet[] = INCBIN_U32("graphics/items/icons/spell_tag.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_spell_tag_palette[] = INCBIN_U32("graphics/items/icon_palettes/spell_tag.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_twisted_spoon_sheet[] = INCBIN_U32("graphics/items/icons/twisted_spoon.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_twisted_spoon_palette[] = INCBIN_U32("graphics/items/icon_palettes/twisted_spoon.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_charcoal_sheet[] = INCBIN_U32("graphics/items/icons/charcoal.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_charcoal_palette[] = INCBIN_U32("graphics/items/icon_palettes/charcoal.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_dragon_fang_sheet[] = INCBIN_U32("graphics/items/icons/dragon_fang.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_dragon_fang_palette[] = INCBIN_U32("graphics/items/icon_palettes/dragon_fang.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_silk_scarf_sheet[] = INCBIN_U32("graphics/items/icons/silk_scarf.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_silk_scarf_palette[] = INCBIN_U32("graphics/items/icon_palettes/silk_scarf.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_up_grade_sheet[] = INCBIN_U32("graphics/items/icons/up_grade.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_up_grade_palette[] = INCBIN_U32("graphics/items/icon_palettes/up_grade.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_shell_bell_sheet[] = INCBIN_U32("graphics/items/icons/shell_bell.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_sea_incense_sheet[] = INCBIN_U32("graphics/items/icons/sea_incense.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_sea_incense_palette[] = INCBIN_U32("graphics/items/icon_palettes/sea_incense.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_lax_incense_sheet[] = INCBIN_U32("graphics/items/icons/lax_incense.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_lax_incense_palette[] = INCBIN_U32("graphics/items/icon_palettes/lax_incense.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_lucky_punch_sheet[] = INCBIN_U32("graphics/items/icons/lucky_punch.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_lucky_punch_palette[] = INCBIN_U32("graphics/items/icon_palettes/lucky_punch.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_metal_powder_sheet[] = INCBIN_U32("graphics/items/icons/metal_powder.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_metal_powder_palette[] = INCBIN_U32("graphics/items/icon_palettes/metal_powder.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_thick_club_sheet[] = INCBIN_U32("graphics/items/icons/thick_club.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_thick_club_palette[] = INCBIN_U32("graphics/items/icon_palettes/thick_club.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_stick_sheet[] = INCBIN_U32("graphics/items/icons/stick.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_stick_palette[] = INCBIN_U32("graphics/items/icon_palettes/stick.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_scarf_sheet[] = INCBIN_U32("graphics/items/icons/scarf.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_red_scarf_palette[] = INCBIN_U32("graphics/items/icon_palettes/red_scarf.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_blue_scarf_palette[] = INCBIN_U32("graphics/items/icon_palettes/blue_scarf.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_pink_scarf_palette[] = INCBIN_U32("graphics/items/icon_palettes/pink_scarf.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_green_scarf_palette[] = INCBIN_U32("graphics/items/icon_palettes/green_scarf.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_yellow_scarf_palette[] = INCBIN_U32("graphics/items/icon_palettes/yellow_scarf.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_mach_bike_sheet[] = INCBIN_U32("graphics/items/icons/mach_bike.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_mach_bike_palette[] = INCBIN_U32("graphics/items/icon_palettes/mach_bike.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_coin_case_sheet[] = INCBIN_U32("graphics/items/icons/coin_case.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_coin_case_palette[] = INCBIN_U32("graphics/items/icon_palettes/coin_case.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_itemfinder_sheet[] = INCBIN_U32("graphics/items/icons/itemfinder.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_itemfinder_palette[] = INCBIN_U32("graphics/items/icon_palettes/itemfinder.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_old_rod_sheet[] = INCBIN_U32("graphics/items/icons/old_rod.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_old_rod_palette[] = INCBIN_U32("graphics/items/icon_palettes/old_rod.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_good_rod_sheet[] = INCBIN_U32("graphics/items/icons/good_rod.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_good_rod_palette[] = INCBIN_U32("graphics/items/icon_palettes/good_rod.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_super_rod_sheet[] = INCBIN_U32("graphics/items/icons/super_rod.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_super_rod_palette[] = INCBIN_U32("graphics/items/icon_palettes/super_rod.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_ss_ticket_sheet[] = INCBIN_U32("graphics/items/icons/ss_ticket.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_ss_ticket_palette[] = INCBIN_U32("graphics/items/icon_palettes/ss_ticket.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_contest_pass_sheet[] = INCBIN_U32("graphics/items/icons/contest_pass.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_contest_pass_palette[] = INCBIN_U32("graphics/items/icon_palettes/contest_pass.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_wailmer_pail_sheet[] = INCBIN_U32("graphics/items/icons/wailmer_pail.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_wailmer_pail_palette[] = INCBIN_U32("graphics/items/icon_palettes/wailmer_pail.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_devon_goods_sheet[] = INCBIN_U32("graphics/items/icons/devon_goods.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_devon_goods_palette[] = INCBIN_U32("graphics/items/icon_palettes/devon_goods.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_soot_sack_sheet[] = INCBIN_U32("graphics/items/icons/soot_sack.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_soot_sack_palette[] = INCBIN_U32("graphics/items/icon_palettes/soot_sack.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_basement_key_sheet[] = INCBIN_U32("graphics/items/icons/basement_key.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_old_key_palette[] = INCBIN_U32("graphics/items/icon_palettes/old_key.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_acro_bike_sheet[] = INCBIN_U32("graphics/items/icons/acro_bike.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_acro_bike_palette[] = INCBIN_U32("graphics/items/icon_palettes/acro_bike.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_pokeblock_case_sheet[] = INCBIN_U32("graphics/items/icons/pokeblock_case.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_pokeblock_case_palette[] = INCBIN_U32("graphics/items/icon_palettes/pokeblock_case.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_letter_sheet[] = INCBIN_U32("graphics/items/icons/letter.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_eon_ticket_sheet[] = INCBIN_U32("graphics/items/icons/eon_ticket.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_eon_ticket_palette[] = INCBIN_U32("graphics/items/icon_palettes/eon_ticket.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_orb_sheet[] = INCBIN_U32("graphics/items/icons/orb.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_red_orb_palette[] = INCBIN_U32("graphics/items/icon_palettes/red_orb.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_blue_orb_palette[] = INCBIN_U32("graphics/items/icon_palettes/blue_orb.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_scanner_sheet[] = INCBIN_U32("graphics/items/icons/scanner.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_scanner_palette[] = INCBIN_U32("graphics/items/icon_palettes/scanner.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_go_goggles_sheet[] = INCBIN_U32("graphics/items/icons/go_goggles.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_go_goggles_palette[] = INCBIN_U32("graphics/items/icon_palettes/go_goggles.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_meteorite_sheet[] = INCBIN_U32("graphics/items/icons/meteorite.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_meteorite_palette[] = INCBIN_U32("graphics/items/icon_palettes/meteorite.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_room1_key_sheet[] = INCBIN_U32("graphics/items/icons/room1_key.4bpp.lz");
+const u32 gFile_graphics_items_icons_room2_key_sheet[] = INCBIN_U32("graphics/items/icons/room2_key.4bpp.lz");
+const u32 gFile_graphics_items_icons_room4_key_sheet[] = INCBIN_U32("graphics/items/icons/room4_key.4bpp.lz");
+const u32 gFile_graphics_items_icons_room6_key_sheet[] = INCBIN_U32("graphics/items/icons/room6_key.4bpp.lz");
+const u32 gFile_graphics_items_icons_storage_key_sheet[] = INCBIN_U32("graphics/items/icons/storage_key.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_root_fossil_sheet[] = INCBIN_U32("graphics/items/icons/root_fossil.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_hoenn_fossil_palette[] = INCBIN_U32("graphics/items/icon_palettes/hoenn_fossil.gbapal.lz");
+const u32 gFile_graphics_items_icons_claw_fossil_sheet[] = INCBIN_U32("graphics/items/icons/claw_fossil.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_devon_scope_sheet[] = INCBIN_U32("graphics/items/icons/devon_scope.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_devon_scope_palette[] = INCBIN_U32("graphics/items/icon_palettes/devon_scope.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_tm_sheet[] = INCBIN_U32("graphics/items/icons/tm.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_fighting_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/fighting_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_dragon_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/dragon_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_water_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/water_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_psychic_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/psychic_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/normal_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_poison_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/poison_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_ice_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/ice_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_grass_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/grass_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_fire_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/fire_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_dark_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/dark_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_steel_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/steel_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_electric_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/electric_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_ground_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/ground_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_ghost_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/ghost_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_rock_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/rock_tm_hm.gbapal.lz");
+const u32 gFile_graphics_items_icon_palettes_flying_tm_hm_palette[] = INCBIN_U32("graphics/items/icon_palettes/flying_tm_hm.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_oaks_parcel_sheet[] = INCBIN_U32("graphics/items/icons/oaks_parcel.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_oaks_parcel_palette[] = INCBIN_U32("graphics/items/icon_palettes/oaks_parcel.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_poke_flute_sheet[] = INCBIN_U32("graphics/items/icons/poke_flute.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_poke_flute_palette[] = INCBIN_U32("graphics/items/icon_palettes/poke_flute.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_secret_key_sheet[] = INCBIN_U32("graphics/items/icons/secret_key.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_secret_key_palette[] = INCBIN_U32("graphics/items/icon_palettes/secret_key.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_bike_voucher_sheet[] = INCBIN_U32("graphics/items/icons/bike_voucher.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_bike_voucher_palette[] = INCBIN_U32("graphics/items/icon_palettes/bike_voucher.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_gold_teeth_sheet[] = INCBIN_U32("graphics/items/icons/gold_teeth.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_gold_teeth_palette[] = INCBIN_U32("graphics/items/icon_palettes/gold_teeth.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_old_amber_sheet[] = INCBIN_U32("graphics/items/icons/old_amber.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_old_amber_palette[] = INCBIN_U32("graphics/items/icon_palettes/old_amber.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_card_key_sheet[] = INCBIN_U32("graphics/items/icons/card_key.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_card_key_palette[] = INCBIN_U32("graphics/items/icon_palettes/card_key.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_lift_key_sheet[] = INCBIN_U32("graphics/items/icons/lift_key.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_key_palette[] = INCBIN_U32("graphics/items/icon_palettes/key.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_helix_fossil_sheet[] = INCBIN_U32("graphics/items/icons/helix_fossil.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_kanto_fossil_palette[] = INCBIN_U32("graphics/items/icon_palettes/kanto_fossil.gbapal.lz");
+const u32 gFile_graphics_items_icons_dome_fossil_sheet[] = INCBIN_U32("graphics/items/icons/dome_fossil.4bpp.lz");
+
+const u32 gFile_graphics_items_icons_silph_scope_sheet[] = INCBIN_U32("graphics/items/icons/silph_scope.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_silph_scope_palette[] = INCBIN_U32("graphics/items/icon_palettes/silph_scope.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_bicycle_sheet[] = INCBIN_U32("graphics/items/icons/bicycle.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_bicycle_palette[] = INCBIN_U32("graphics/items/icon_palettes/bicycle.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_town_map_sheet[] = INCBIN_U32("graphics/items/icons/town_map.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_town_map_palette[] = INCBIN_U32("graphics/items/icon_palettes/town_map.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_vs_seeker_sheet[] = INCBIN_U32("graphics/items/icons/vs_seeker.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_vs_seeker_palette[] = INCBIN_U32("graphics/items/icon_palettes/vs_seeker.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_fame_checker_sheet[] = INCBIN_U32("graphics/items/icons/fame_checker.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_fame_checker_palette[] = INCBIN_U32("graphics/items/icon_palettes/fame_checker.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_tm_case_sheet[] = INCBIN_U32("graphics/items/icons/tm_case.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_tm_case_palette[] = INCBIN_U32("graphics/items/icon_palettes/tm_case.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_berry_pouch_sheet[] = INCBIN_U32("graphics/items/icons/berry_pouch.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_berry_pouch_palette[] = INCBIN_U32("graphics/items/icon_palettes/berry_pouch.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_teachy_tv_sheet[] = INCBIN_U32("graphics/items/icons/teachy_tv.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_teachy_tv_palette[] = INCBIN_U32("graphics/items/icon_palettes/teachy_tv.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_tri_pass_sheet[] = INCBIN_U32("graphics/items/icons/tri_pass.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_tri_pass_palette[] = INCBIN_U32("graphics/items/icon_palettes/tri_pass.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_rainbow_pass_sheet[] = INCBIN_U32("graphics/items/icons/rainbow_pass.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_rainbow_pass_palette[] = INCBIN_U32("graphics/items/icon_palettes/rainbow_pass.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_tea_sheet[] = INCBIN_U32("graphics/items/icons/tea.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_tea_palette[] = INCBIN_U32("graphics/items/icon_palettes/tea.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_mystic_ticket_sheet[] = INCBIN_U32("graphics/items/icons/mystic_ticket.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_mystic_ticket_palette[] = INCBIN_U32("graphics/items/icon_palettes/mystic_ticket.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_aurora_ticket_sheet[] = INCBIN_U32("graphics/items/icons/aurora_ticket.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_aurora_ticket_palette[] = INCBIN_U32("graphics/items/icon_palettes/aurora_ticket.gbapal.lz");
+
+const u32 gFile_graphics_items_icons_powder_jar_sheet[] = INCBIN_U32("graphics/items/icons/powder_jar.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_powder_jar_palette[] = INCBIN_U32("graphics/items/icon_palettes/powder_jar.gbapal.lz");
+
+const u32 gFile_graphics_items_icon_palettes_ruby_palette[] = INCBIN_U32("graphics/items/icon_palettes/ruby.gbapal.lz");
+const u32 gFile_graphics_items_icons_gem_sheet[] = INCBIN_U32("graphics/items/icons/gem.4bpp.lz");
+const u32 gFile_graphics_items_icon_palettes_sapphire_palette[] = INCBIN_U32("graphics/items/icon_palettes/sapphire.gbapal.lz");
diff --git a/src/data/graphics/mail.h b/src/data/graphics/mail.h
new file mode 100644
index 000000000..86d827b49
--- /dev/null
+++ b/src/data/graphics/mail.h
@@ -0,0 +1,38 @@
+const u16 gFile_graphics_mail_orange_palette_pal[] = INCBIN_U16("graphics/mail/orange/palette.gbapal");
+const u16 gFile_graphics_mail_harbor_palette_pal[] = INCBIN_U16("graphics/mail/harbor/palette.gbapal");
+const u16 gFile_graphics_mail_glitter_palette_pal[] = INCBIN_U16("graphics/mail/glitter/palette.gbapal");
+const u16 gFile_graphics_mail_mech_palette_pal[] = INCBIN_U16("graphics/mail/mech/palette.gbapal");
+const u16 gFile_graphics_mail_wood_palette_pal[] = INCBIN_U16("graphics/mail/wood/palette.gbapal");
+const u16 gFile_graphics_mail_wave_palette_pal[] = INCBIN_U16("graphics/mail/wave/palette.gbapal");
+const u16 gFile_graphics_mail_bead_palette_pal[] = INCBIN_U16("graphics/mail/bead/palette.gbapal");
+const u16 gFile_graphics_mail_shadow_palette_pal[] = INCBIN_U16("graphics/mail/shadow/palette.gbapal");
+const u16 gFile_graphics_mail_tropic_palette_pal[] = INCBIN_U16("graphics/mail/tropic/palette.gbapal");
+const u16 gFile_graphics_mail_dream_palette_pal[] = INCBIN_U16("graphics/mail/dream/palette.gbapal");
+const u16 gFile_graphics_mail_fab_palette_pal[] = INCBIN_U16("graphics/mail/fab/palette.gbapal");
+const u16 gFile_graphics_mail_retro_palette_pal[] = INCBIN_U16("graphics/mail/retro/palette.gbapal");
+
+const u32 gFile_graphics_mail_orange_tiles_sheet[] = INCBIN_U32("graphics/mail/orange/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_harbor_tiles_sheet[] = INCBIN_U32("graphics/mail/harbor/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_glitter_tiles_sheet[] = INCBIN_U32("graphics/mail/glitter/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_mech_tiles_sheet[] = INCBIN_U32("graphics/mail/mech/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_wood_tiles_sheet[] = INCBIN_U32("graphics/mail/wood/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_wave_tiles_sheet[] = INCBIN_U32("graphics/mail/wave/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_bead_tiles_sheet[] = INCBIN_U32("graphics/mail/bead/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_shadow_tiles_sheet[] = INCBIN_U32("graphics/mail/shadow/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_tropic_tiles_sheet[] = INCBIN_U32("graphics/mail/tropic/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_dream_tiles_sheet[] = INCBIN_U32("graphics/mail/dream/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_fab_tiles_sheet[] = INCBIN_U32("graphics/mail/fab/tiles.4bpp.lz");
+const u32 gFile_graphics_mail_retro_tiles_sheet[] = INCBIN_U32("graphics/mail/retro/tiles.4bpp.lz");
+
+const u32 gFile_graphics_mail_orange_map_tilemap[] = INCBIN_U32("graphics/mail/orange/map.bin.lz");
+const u32 gFile_graphics_mail_harbor_map_tilemap[] = INCBIN_U32("graphics/mail/harbor/map.bin.lz");
+const u32 gFile_graphics_mail_glitter_map_tilemap[] = INCBIN_U32("graphics/mail/glitter/map.bin.lz");
+const u32 gFile_graphics_mail_mech_map_tilemap[] = INCBIN_U32("graphics/mail/mech/map.bin.lz");
+const u32 gFile_graphics_mail_wood_map_tilemap[] = INCBIN_U32("graphics/mail/wood/map.bin.lz");
+const u32 gFile_graphics_mail_wave_map_tilemap[] = INCBIN_U32("graphics/mail/wave/map.bin.lz");
+const u32 gFile_graphics_mail_bead_map_tilemap[] = INCBIN_U32("graphics/mail/bead/map.bin.lz");
+const u32 gFile_graphics_mail_shadow_map_tilemap[] = INCBIN_U32("graphics/mail/shadow/map.bin.lz");
+const u32 gFile_graphics_mail_tropic_map_tilemap[] = INCBIN_U32("graphics/mail/tropic/map.bin.lz");
+const u32 gFile_graphics_mail_dream_map_tilemap[] = INCBIN_U32("graphics/mail/dream/map.bin.lz");
+const u32 gFile_graphics_mail_fab_map_tilemap[] = INCBIN_U32("graphics/mail/fab/map.bin.lz");
+const u32 gFile_graphics_mail_retro_map_tilemap[] = INCBIN_U32("graphics/mail/retro/map.bin.lz");
diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h
new file mode 100644
index 000000000..edb7e982d
--- /dev/null
+++ b/src/data/graphics/pokemon.h
@@ -0,0 +1,2833 @@
+const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/front.4bpp.lz");
+const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/normal.gbapal.lz");
+const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back.4bpp.lz");
+const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny.gbapal.lz");
+const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/icon.4bpp");
+const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/footprint.1bpp");
+
+const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/front.4bpp.lz");
+const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/normal.gbapal.lz");
+const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/back.4bpp.lz");
+const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/shiny.gbapal.lz");
+const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/icon.4bpp");
+const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/footprint.1bpp");
+
+const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/front.4bpp.lz");
+const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/normal.gbapal.lz");
+const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/back.4bpp.lz");
+const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/shiny.gbapal.lz");
+const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/icon.4bpp");
+const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/footprint.1bpp");
+
+const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/front.4bpp.lz");
+const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/normal.gbapal.lz");
+const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/back.4bpp.lz");
+const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/shiny.gbapal.lz");
+const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/icon.4bpp");
+const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/footprint.1bpp");
+
+const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/front.4bpp.lz");
+const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/normal.gbapal.lz");
+const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/back.4bpp.lz");
+const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/shiny.gbapal.lz");
+const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/icon.4bpp");
+const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/footprint.1bpp");
+
+const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/front.4bpp.lz");
+const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/normal.gbapal.lz");
+const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/back.4bpp.lz");
+const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/shiny.gbapal.lz");
+const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/icon.4bpp");
+const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/footprint.1bpp");
+
+const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/front.4bpp.lz");
+const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/normal.gbapal.lz");
+const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/back.4bpp.lz");
+const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/shiny.gbapal.lz");
+const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/icon.4bpp");
+const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/footprint.1bpp");
+
+const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/front.4bpp.lz");
+const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/normal.gbapal.lz");
+const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/back.4bpp.lz");
+const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/shiny.gbapal.lz");
+const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/icon.4bpp");
+const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/footprint.1bpp");
+
+const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/front.4bpp.lz");
+const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/normal.gbapal.lz");
+const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/back.4bpp.lz");
+const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/shiny.gbapal.lz");
+const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/icon.4bpp");
+const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/footprint.1bpp");
+
+const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/front.4bpp.lz");
+const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/normal.gbapal.lz");
+const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/back.4bpp.lz");
+const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/shiny.gbapal.lz");
+const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/icon.4bpp");
+const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/footprint.1bpp");
+
+const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/front.4bpp.lz");
+const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/normal.gbapal.lz");
+const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/back.4bpp.lz");
+const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/shiny.gbapal.lz");
+const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/metapod/icon.4bpp");
+const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/metapod/footprint.1bpp");
+
+const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/front.4bpp.lz");
+const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/normal.gbapal.lz");
+const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/back.4bpp.lz");
+const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/shiny.gbapal.lz");
+const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/icon.4bpp");
+const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/footprint.1bpp");
+
+const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/front.4bpp.lz");
+const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/normal.gbapal.lz");
+const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/back.4bpp.lz");
+const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/shiny.gbapal.lz");
+const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/icon.4bpp");
+const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/footprint.1bpp");
+
+const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/front.4bpp.lz");
+const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/normal.gbapal.lz");
+const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/back.4bpp.lz");
+const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/shiny.gbapal.lz");
+const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/icon.4bpp");
+const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/footprint.1bpp");
+
+const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/front.4bpp.lz");
+const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/normal.gbapal.lz");
+const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/back.4bpp.lz");
+const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/shiny.gbapal.lz");
+const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/icon.4bpp");
+const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/footprint.1bpp");
+
+const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/front.4bpp.lz");
+const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/normal.gbapal.lz");
+const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/back.4bpp.lz");
+const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/shiny.gbapal.lz");
+const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/icon.4bpp");
+const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/footprint.1bpp");
+
+const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/front.4bpp.lz");
+const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/normal.gbapal.lz");
+const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/back.4bpp.lz");
+const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/shiny.gbapal.lz");
+const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/icon.4bpp");
+const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/footprint.1bpp");
+
+const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/front.4bpp.lz");
+const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/normal.gbapal.lz");
+const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/back.4bpp.lz");
+const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/shiny.gbapal.lz");
+const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/icon.4bpp");
+const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/footprint.1bpp");
+
+const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/front.4bpp.lz");
+const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/normal.gbapal.lz");
+const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/back.4bpp.lz");
+const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/shiny.gbapal.lz");
+const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/icon.4bpp");
+const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/footprint.1bpp");
+
+const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/front.4bpp.lz");
+const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/normal.gbapal.lz");
+const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/back.4bpp.lz");
+const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/shiny.gbapal.lz");
+const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/icon.4bpp");
+const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/footprint.1bpp");
+
+const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/front.4bpp.lz");
+const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/normal.gbapal.lz");
+const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/back.4bpp.lz");
+const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/shiny.gbapal.lz");
+const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/icon.4bpp");
+const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/footprint.1bpp");
+
+const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/front.4bpp.lz");
+const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/normal.gbapal.lz");
+const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/back.4bpp.lz");
+const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/shiny.gbapal.lz");
+const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/icon.4bpp");
+const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/footprint.1bpp");
+
+const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/front.4bpp.lz");
+const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/normal.gbapal.lz");
+const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/back.4bpp.lz");
+const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/shiny.gbapal.lz");
+const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/icon.4bpp");
+const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/footprint.1bpp");
+
+const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/front.4bpp.lz");
+const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/normal.gbapal.lz");
+const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/back.4bpp.lz");
+const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/shiny.gbapal.lz");
+const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/icon.4bpp");
+const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/footprint.1bpp");
+
+const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/front.4bpp.lz");
+const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/normal.gbapal.lz");
+const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/back.4bpp.lz");
+const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/shiny.gbapal.lz");
+const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/icon.4bpp");
+const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/footprint.1bpp");
+
+const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/front.4bpp.lz");
+const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/normal.gbapal.lz");
+const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/back.4bpp.lz");
+const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/shiny.gbapal.lz");
+const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/icon.4bpp");
+const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/footprint.1bpp");
+
+const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/front.4bpp.lz");
+const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/normal.gbapal.lz");
+const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/back.4bpp.lz");
+const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/shiny.gbapal.lz");
+const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/icon.4bpp");
+const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/footprint.1bpp");
+
+const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/front.4bpp.lz");
+const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/normal.gbapal.lz");
+const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/back.4bpp.lz");
+const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/shiny.gbapal.lz");
+const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/icon.4bpp");
+const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/footprint.1bpp");
+
+const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/front.4bpp.lz");
+const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/normal.gbapal.lz");
+const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/back.4bpp.lz");
+const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/shiny.gbapal.lz");
+const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/icon.4bpp");
+const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/footprint.1bpp");
+
+const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/front.4bpp.lz");
+const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/normal.gbapal.lz");
+const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/back.4bpp.lz");
+const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/shiny.gbapal.lz");
+const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/icon.4bpp");
+const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/footprint.1bpp");
+
+const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/front.4bpp.lz");
+const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/normal.gbapal.lz");
+const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/back.4bpp.lz");
+const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/shiny.gbapal.lz");
+const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/icon.4bpp");
+const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/footprint.1bpp");
+
+const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/front.4bpp.lz");
+const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/normal.gbapal.lz");
+const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/back.4bpp.lz");
+const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/shiny.gbapal.lz");
+const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/icon.4bpp");
+const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/footprint.1bpp");
+
+const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/front.4bpp.lz");
+const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/normal.gbapal.lz");
+const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/back.4bpp.lz");
+const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/shiny.gbapal.lz");
+const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/icon.4bpp");
+const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/footprint.1bpp");
+
+const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/front.4bpp.lz");
+const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/normal.gbapal.lz");
+const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/back.4bpp.lz");
+const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/shiny.gbapal.lz");
+const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/icon.4bpp");
+const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/footprint.1bpp");
+
+const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/front.4bpp.lz");
+const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/normal.gbapal.lz");
+const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/back.4bpp.lz");
+const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/shiny.gbapal.lz");
+const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/icon.4bpp");
+const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/footprint.1bpp");
+
+const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/front.4bpp.lz");
+const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/normal.gbapal.lz");
+const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/back.4bpp.lz");
+const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/shiny.gbapal.lz");
+const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/icon.4bpp");
+const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/footprint.1bpp");
+
+const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/front.4bpp.lz");
+const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/normal.gbapal.lz");
+const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/back.4bpp.lz");
+const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/shiny.gbapal.lz");
+const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/icon.4bpp");
+const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/footprint.1bpp");
+
+const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/front.4bpp.lz");
+const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/normal.gbapal.lz");
+const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/back.4bpp.lz");
+const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/shiny.gbapal.lz");
+const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/icon.4bpp");
+const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/footprint.1bpp");
+
+const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/front.4bpp.lz");
+const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/normal.gbapal.lz");
+const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/back.4bpp.lz");
+const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/shiny.gbapal.lz");
+const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/icon.4bpp");
+const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/footprint.1bpp");
+
+const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/front.4bpp.lz");
+const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/normal.gbapal.lz");
+const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/back.4bpp.lz");
+const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/shiny.gbapal.lz");
+const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/icon.4bpp");
+const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/footprint.1bpp");
+
+const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/front.4bpp.lz");
+const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/normal.gbapal.lz");
+const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/back.4bpp.lz");
+const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/shiny.gbapal.lz");
+const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/icon.4bpp");
+const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/footprint.1bpp");
+
+const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/front.4bpp.lz");
+const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/normal.gbapal.lz");
+const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/back.4bpp.lz");
+const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/shiny.gbapal.lz");
+const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/icon.4bpp");
+const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/footprint.1bpp");
+
+const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/front.4bpp.lz");
+const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/normal.gbapal.lz");
+const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/back.4bpp.lz");
+const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/shiny.gbapal.lz");
+const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/icon.4bpp");
+const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/footprint.1bpp");
+
+const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/front.4bpp.lz");
+const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/normal.gbapal.lz");
+const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/back.4bpp.lz");
+const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/shiny.gbapal.lz");
+const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/icon.4bpp");
+const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/footprint.1bpp");
+
+const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/front.4bpp.lz");
+const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/normal.gbapal.lz");
+const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/back.4bpp.lz");
+const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/shiny.gbapal.lz");
+const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/icon.4bpp");
+const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/footprint.1bpp");
+
+const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/front.4bpp.lz");
+const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/normal.gbapal.lz");
+const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/back.4bpp.lz");
+const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/shiny.gbapal.lz");
+const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/paras/icon.4bpp");
+const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/paras/footprint.1bpp");
+
+const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/front.4bpp.lz");
+const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/normal.gbapal.lz");
+const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/back.4bpp.lz");
+const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/shiny.gbapal.lz");
+const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/icon.4bpp");
+const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/footprint.1bpp");
+
+const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/front.4bpp.lz");
+const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/normal.gbapal.lz");
+const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/back.4bpp.lz");
+const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/shiny.gbapal.lz");
+const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/icon.4bpp");
+const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/footprint.1bpp");
+
+const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/front.4bpp.lz");
+const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/normal.gbapal.lz");
+const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/back.4bpp.lz");
+const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/shiny.gbapal.lz");
+const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/icon.4bpp");
+const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/footprint.1bpp");
+
+const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/front.4bpp.lz");
+const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/normal.gbapal.lz");
+const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/back.4bpp.lz");
+const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/shiny.gbapal.lz");
+const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/icon.4bpp");
+const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/footprint.1bpp");
+
+const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/front.4bpp.lz");
+const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/normal.gbapal.lz");
+const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/back.4bpp.lz");
+const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/shiny.gbapal.lz");
+const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/icon.4bpp");
+const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/footprint.1bpp");
+
+const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/front.4bpp.lz");
+const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/normal.gbapal.lz");
+const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/back.4bpp.lz");
+const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/shiny.gbapal.lz");
+const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/icon.4bpp");
+const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/footprint.1bpp");
+
+const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/front.4bpp.lz");
+const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/normal.gbapal.lz");
+const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/back.4bpp.lz");
+const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/shiny.gbapal.lz");
+const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/persian/icon.4bpp");
+const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/persian/footprint.1bpp");
+
+const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/front.4bpp.lz");
+const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/normal.gbapal.lz");
+const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/back.4bpp.lz");
+const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/shiny.gbapal.lz");
+const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/icon.4bpp");
+const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/footprint.1bpp");
+
+const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/front.4bpp.lz");
+const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/normal.gbapal.lz");
+const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/back.4bpp.lz");
+const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/shiny.gbapal.lz");
+const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/icon.4bpp");
+const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/footprint.1bpp");
+
+const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/front.4bpp.lz");
+const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/normal.gbapal.lz");
+const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/back.4bpp.lz");
+const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/shiny.gbapal.lz");
+const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/icon.4bpp");
+const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/footprint.1bpp");
+
+const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/front.4bpp.lz");
+const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/normal.gbapal.lz");
+const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/back.4bpp.lz");
+const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/shiny.gbapal.lz");
+const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/icon.4bpp");
+const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/footprint.1bpp");
+
+const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/front.4bpp.lz");
+const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/normal.gbapal.lz");
+const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/back.4bpp.lz");
+const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/shiny.gbapal.lz");
+const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/icon.4bpp");
+const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/footprint.1bpp");
+
+const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/front.4bpp.lz");
+const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/normal.gbapal.lz");
+const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/back.4bpp.lz");
+const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/shiny.gbapal.lz");
+const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/icon.4bpp");
+const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/footprint.1bpp");
+
+const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/front.4bpp.lz");
+const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/normal.gbapal.lz");
+const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/back.4bpp.lz");
+const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/shiny.gbapal.lz");
+const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/icon.4bpp");
+const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/footprint.1bpp");
+
+const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/front.4bpp.lz");
+const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/normal.gbapal.lz");
+const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/back.4bpp.lz");
+const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/shiny.gbapal.lz");
+const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/icon.4bpp");
+const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/footprint.1bpp");
+
+const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/front.4bpp.lz");
+const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/normal.gbapal.lz");
+const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/back.4bpp.lz");
+const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/shiny.gbapal.lz");
+const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/icon.4bpp");
+const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/footprint.1bpp");
+
+const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/front.4bpp.lz");
+const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/normal.gbapal.lz");
+const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/back.4bpp.lz");
+const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/shiny.gbapal.lz");
+const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/abra/icon.4bpp");
+const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/abra/footprint.1bpp");
+
+const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/front.4bpp.lz");
+const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/normal.gbapal.lz");
+const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/back.4bpp.lz");
+const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/shiny.gbapal.lz");
+const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/icon.4bpp");
+const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/footprint.1bpp");
+
+const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/front.4bpp.lz");
+const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/normal.gbapal.lz");
+const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/back.4bpp.lz");
+const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/shiny.gbapal.lz");
+const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/icon.4bpp");
+const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/footprint.1bpp");
+
+const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/front.4bpp.lz");
+const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/normal.gbapal.lz");
+const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/back.4bpp.lz");
+const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/shiny.gbapal.lz");
+const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/machop/icon.4bpp");
+const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/machop/footprint.1bpp");
+
+const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/front.4bpp.lz");
+const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/normal.gbapal.lz");
+const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/back.4bpp.lz");
+const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/shiny.gbapal.lz");
+const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/icon.4bpp");
+const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/footprint.1bpp");
+
+const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/front.4bpp.lz");
+const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/normal.gbapal.lz");
+const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/back.4bpp.lz");
+const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/shiny.gbapal.lz");
+const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/icon.4bpp");
+const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/footprint.1bpp");
+
+const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/front.4bpp.lz");
+const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/normal.gbapal.lz");
+const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/back.4bpp.lz");
+const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/shiny.gbapal.lz");
+const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/icon.4bpp");
+const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/footprint.1bpp");
+
+const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/front.4bpp.lz");
+const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/normal.gbapal.lz");
+const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/back.4bpp.lz");
+const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/shiny.gbapal.lz");
+const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/icon.4bpp");
+const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/footprint.1bpp");
+
+const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/front.4bpp.lz");
+const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/normal.gbapal.lz");
+const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/back.4bpp.lz");
+const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/shiny.gbapal.lz");
+const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/icon.4bpp");
+const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/footprint.1bpp");
+
+const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/front.4bpp.lz");
+const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/normal.gbapal.lz");
+const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/back.4bpp.lz");
+const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/shiny.gbapal.lz");
+const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/icon.4bpp");
+const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/footprint.1bpp");
+
+const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/front.4bpp.lz");
+const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/normal.gbapal.lz");
+const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/back.4bpp.lz");
+const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/shiny.gbapal.lz");
+const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/icon.4bpp");
+const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/footprint.1bpp");
+
+const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/front.4bpp.lz");
+const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/normal.gbapal.lz");
+const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/back.4bpp.lz");
+const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/shiny.gbapal.lz");
+const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/icon.4bpp");
+const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/footprint.1bpp");
+
+const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/front.4bpp.lz");
+const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/normal.gbapal.lz");
+const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/back.4bpp.lz");
+const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/shiny.gbapal.lz");
+const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/icon.4bpp");
+const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/footprint.1bpp");
+
+const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/front.4bpp.lz");
+const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/normal.gbapal.lz");
+const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/back.4bpp.lz");
+const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/shiny.gbapal.lz");
+const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/golem/icon.4bpp");
+const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/golem/footprint.1bpp");
+
+const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/front.4bpp.lz");
+const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/normal.gbapal.lz");
+const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/back.4bpp.lz");
+const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/shiny.gbapal.lz");
+const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/icon.4bpp");
+const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/footprint.1bpp");
+
+const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/front.4bpp.lz");
+const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/normal.gbapal.lz");
+const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/back.4bpp.lz");
+const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/shiny.gbapal.lz");
+const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/icon.4bpp");
+const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/footprint.1bpp");
+
+const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/front.4bpp.lz");
+const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/normal.gbapal.lz");
+const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/back.4bpp.lz");
+const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/shiny.gbapal.lz");
+const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/icon.4bpp");
+const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/footprint.1bpp");
+
+const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/front.4bpp.lz");
+const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/normal.gbapal.lz");
+const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/back.4bpp.lz");
+const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/shiny.gbapal.lz");
+const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/icon.4bpp");
+const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/footprint.1bpp");
+
+const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/front.4bpp.lz");
+const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/normal.gbapal.lz");
+const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/back.4bpp.lz");
+const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/shiny.gbapal.lz");
+const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/icon.4bpp");
+const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/footprint.1bpp");
+
+const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/front.4bpp.lz");
+const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/normal.gbapal.lz");
+const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/back.4bpp.lz");
+const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/shiny.gbapal.lz");
+const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon.4bpp");
+const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/footprint.1bpp");
+
+const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/front.4bpp.lz");
+const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/normal.gbapal.lz");
+const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/back.4bpp.lz");
+const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/shiny.gbapal.lz");
+const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetch_d/icon.4bpp");
+const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetch_d/footprint.1bpp");
+
+const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/front.4bpp.lz");
+const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/normal.gbapal.lz");
+const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/back.4bpp.lz");
+const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/shiny.gbapal.lz");
+const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/icon.4bpp");
+const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/footprint.1bpp");
+
+const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/front.4bpp.lz");
+const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/normal.gbapal.lz");
+const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/back.4bpp.lz");
+const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/shiny.gbapal.lz");
+const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/icon.4bpp");
+const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/footprint.1bpp");
+
+const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/front.4bpp.lz");
+const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/normal.gbapal.lz");
+const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/back.4bpp.lz");
+const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/shiny.gbapal.lz");
+const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/seel/icon.4bpp");
+const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/seel/footprint.1bpp");
+
+const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/front.4bpp.lz");
+const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/normal.gbapal.lz");
+const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/back.4bpp.lz");
+const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/shiny.gbapal.lz");
+const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/icon.4bpp");
+const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/footprint.1bpp");
+
+const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/front.4bpp.lz");
+const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/normal.gbapal.lz");
+const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/back.4bpp.lz");
+const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/shiny.gbapal.lz");
+const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/icon.4bpp");
+const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/footprint.1bpp");
+
+const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/front.4bpp.lz");
+const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/normal.gbapal.lz");
+const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/back.4bpp.lz");
+const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/shiny.gbapal.lz");
+const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/muk/icon.4bpp");
+const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/muk/footprint.1bpp");
+
+const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/front.4bpp.lz");
+const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/normal.gbapal.lz");
+const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/back.4bpp.lz");
+const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/shiny.gbapal.lz");
+const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/icon.4bpp");
+const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/footprint.1bpp");
+
+const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/front.4bpp.lz");
+const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/normal.gbapal.lz");
+const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/back.4bpp.lz");
+const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/shiny.gbapal.lz");
+const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/icon.4bpp");
+const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/footprint.1bpp");
+
+const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/front.4bpp.lz");
+const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/normal.gbapal.lz");
+const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/back.4bpp.lz");
+const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/shiny.gbapal.lz");
+const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/icon.4bpp");
+const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/footprint.1bpp");
+
+const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/front.4bpp.lz");
+const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/normal.gbapal.lz");
+const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/back.4bpp.lz");
+const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/shiny.gbapal.lz");
+const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/icon.4bpp");
+const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/footprint.1bpp");
+
+const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/front.4bpp.lz");
+const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/normal.gbapal.lz");
+const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/back.4bpp.lz");
+const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/shiny.gbapal.lz");
+const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/icon.4bpp");
+const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/footprint.1bpp");
+
+const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/front.4bpp.lz");
+const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/normal.gbapal.lz");
+const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/back.4bpp.lz");
+const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/shiny.gbapal.lz");
+const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/onix/icon.4bpp");
+const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/onix/footprint.1bpp");
+
+const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/front.4bpp.lz");
+const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/normal.gbapal.lz");
+const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/back.4bpp.lz");
+const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/shiny.gbapal.lz");
+const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/icon.4bpp");
+const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/footprint.1bpp");
+
+const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/front.4bpp.lz");
+const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/normal.gbapal.lz");
+const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/back.4bpp.lz");
+const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/shiny.gbapal.lz");
+const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/icon.4bpp");
+const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/footprint.1bpp");
+
+const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/front.4bpp.lz");
+const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/normal.gbapal.lz");
+const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/back.4bpp.lz");
+const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/shiny.gbapal.lz");
+const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/icon.4bpp");
+const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/footprint.1bpp");
+
+const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/front.4bpp.lz");
+const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/normal.gbapal.lz");
+const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/back.4bpp.lz");
+const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/shiny.gbapal.lz");
+const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/icon.4bpp");
+const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/footprint.1bpp");
+
+const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/front.4bpp.lz");
+const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/normal.gbapal.lz");
+const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/back.4bpp.lz");
+const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/shiny.gbapal.lz");
+const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/icon.4bpp");
+const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/footprint.1bpp");
+
+const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/front.4bpp.lz");
+const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/normal.gbapal.lz");
+const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/back.4bpp.lz");
+const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/shiny.gbapal.lz");
+const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/icon.4bpp");
+const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/footprint.1bpp");
+
+const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/front.4bpp.lz");
+const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/normal.gbapal.lz");
+const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/back.4bpp.lz");
+const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/shiny.gbapal.lz");
+const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/icon.4bpp");
+const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/footprint.1bpp");
+
+const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/front.4bpp.lz");
+const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/normal.gbapal.lz");
+const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/back.4bpp.lz");
+const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/shiny.gbapal.lz");
+const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/icon.4bpp");
+const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/footprint.1bpp");
+
+const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/front.4bpp.lz");
+const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/normal.gbapal.lz");
+const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/back.4bpp.lz");
+const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/shiny.gbapal.lz");
+const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/icon.4bpp");
+const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/footprint.1bpp");
+
+const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/front.4bpp.lz");
+const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/normal.gbapal.lz");
+const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/back.4bpp.lz");
+const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/shiny.gbapal.lz");
+const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/icon.4bpp");
+const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/footprint.1bpp");
+
+const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/front.4bpp.lz");
+const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/normal.gbapal.lz");
+const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/back.4bpp.lz");
+const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/shiny.gbapal.lz");
+const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/icon.4bpp");
+const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/footprint.1bpp");
+
+const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/front.4bpp.lz");
+const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/normal.gbapal.lz");
+const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/back.4bpp.lz");
+const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/shiny.gbapal.lz");
+const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/icon.4bpp");
+const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/footprint.1bpp");
+
+const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/front.4bpp.lz");
+const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/normal.gbapal.lz");
+const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/back.4bpp.lz");
+const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/shiny.gbapal.lz");
+const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/icon.4bpp");
+const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/footprint.1bpp");
+
+const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/front.4bpp.lz");
+const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/normal.gbapal.lz");
+const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/back.4bpp.lz");
+const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/shiny.gbapal.lz");
+const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/icon.4bpp");
+const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/footprint.1bpp");
+
+const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/front.4bpp.lz");
+const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/normal.gbapal.lz");
+const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/back.4bpp.lz");
+const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/shiny.gbapal.lz");
+const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/icon.4bpp");
+const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/footprint.1bpp");
+
+const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/front.4bpp.lz");
+const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/normal.gbapal.lz");
+const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/back.4bpp.lz");
+const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/shiny.gbapal.lz");
+const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/icon.4bpp");
+const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/footprint.1bpp");
+
+const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/front.4bpp.lz");
+const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/normal.gbapal.lz");
+const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/back.4bpp.lz");
+const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/shiny.gbapal.lz");
+const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/icon.4bpp");
+const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/footprint.1bpp");
+
+const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/front.4bpp.lz");
+const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/normal.gbapal.lz");
+const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/back.4bpp.lz");
+const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/shiny.gbapal.lz");
+const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/icon.4bpp");
+const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/footprint.1bpp");
+
+const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/front.4bpp.lz");
+const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/normal.gbapal.lz");
+const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/back.4bpp.lz");
+const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/shiny.gbapal.lz");
+const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/icon.4bpp");
+const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/footprint.1bpp");
+
+const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/front.4bpp.lz");
+const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/normal.gbapal.lz");
+const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/back.4bpp.lz");
+const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/shiny.gbapal.lz");
+const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/icon.4bpp");
+const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/footprint.1bpp");
+
+const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/front.4bpp.lz");
+const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/normal.gbapal.lz");
+const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/back.4bpp.lz");
+const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/shiny.gbapal.lz");
+const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/icon.4bpp");
+const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/footprint.1bpp");
+
+const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/front.4bpp.lz");
+const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/normal.gbapal.lz");
+const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/back.4bpp.lz");
+const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/shiny.gbapal.lz");
+const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/icon.4bpp");
+const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/footprint.1bpp");
+
+const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/front.4bpp.lz");
+const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/normal.gbapal.lz");
+const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/back.4bpp.lz");
+const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/shiny.gbapal.lz");
+const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/icon.4bpp");
+const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/footprint.1bpp");
+
+const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/front.4bpp.lz");
+const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/normal.gbapal.lz");
+const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/back.4bpp.lz");
+const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/shiny.gbapal.lz");
+const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/icon.4bpp");
+const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/footprint.1bpp");
+
+const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/front.4bpp.lz");
+const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/normal.gbapal.lz");
+const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/back.4bpp.lz");
+const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/shiny.gbapal.lz");
+const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/icon.4bpp");
+const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/footprint.1bpp");
+
+const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/front.4bpp.lz");
+const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/normal.gbapal.lz");
+const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/back.4bpp.lz");
+const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/shiny.gbapal.lz");
+const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/icon.4bpp");
+const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/footprint.1bpp");
+
+const u32 gMonFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/front.4bpp.lz");
+const u32 gMonPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/normal.gbapal.lz");
+const u32 gMonBackPic_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/back.4bpp.lz");
+const u32 gMonShinyPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/shiny.gbapal.lz");
+const u8 gMonIcon_Mrmime[] = INCBIN_U8("graphics/pokemon/mr_mime/icon.4bpp");
+const u8 gMonFootprint_Mrmime[] = INCBIN_U8("graphics/pokemon/mr_mime/footprint.1bpp");
+
+const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/front.4bpp.lz");
+const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/normal.gbapal.lz");
+const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/back.4bpp.lz");
+const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/shiny.gbapal.lz");
+const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/icon.4bpp");
+const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/footprint.1bpp");
+
+const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/front.4bpp.lz");
+const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/normal.gbapal.lz");
+const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/back.4bpp.lz");
+const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/shiny.gbapal.lz");
+const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/icon.4bpp");
+const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/footprint.1bpp");
+
+const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/front.4bpp.lz");
+const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/normal.gbapal.lz");
+const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/back.4bpp.lz");
+const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/shiny.gbapal.lz");
+const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/icon.4bpp");
+const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/footprint.1bpp");
+
+const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/front.4bpp.lz");
+const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/normal.gbapal.lz");
+const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/back.4bpp.lz");
+const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/shiny.gbapal.lz");
+const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/icon.4bpp");
+const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/footprint.1bpp");
+
+const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/front.4bpp.lz");
+const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/normal.gbapal.lz");
+const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/back.4bpp.lz");
+const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/shiny.gbapal.lz");
+const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/icon.4bpp");
+const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/footprint.1bpp");
+
+const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/front.4bpp.lz");
+const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/normal.gbapal.lz");
+const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/back.4bpp.lz");
+const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/shiny.gbapal.lz");
+const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/icon.4bpp");
+const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/footprint.1bpp");
+
+const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/front.4bpp.lz");
+const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/normal.gbapal.lz");
+const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/back.4bpp.lz");
+const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/shiny.gbapal.lz");
+const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/icon.4bpp");
+const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/footprint.1bpp");
+
+const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/front.4bpp.lz");
+const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/normal.gbapal.lz");
+const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/back.4bpp.lz");
+const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/shiny.gbapal.lz");
+const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/icon.4bpp");
+const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/footprint.1bpp");
+
+const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/front.4bpp.lz");
+const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/normal.gbapal.lz");
+const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/back.4bpp.lz");
+const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/shiny.gbapal.lz");
+const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/icon.4bpp");
+const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/footprint.1bpp");
+
+const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/front.4bpp.lz");
+const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/normal.gbapal.lz");
+const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/back.4bpp.lz");
+const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/shiny.gbapal.lz");
+const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/icon.4bpp");
+const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/footprint.1bpp");
+
+const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/front.4bpp.lz");
+const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/normal.gbapal.lz");
+const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/back.4bpp.lz");
+const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/shiny.gbapal.lz");
+const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/icon.4bpp");
+const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/footprint.1bpp");
+
+const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/front.4bpp.lz");
+const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/normal.gbapal.lz");
+const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/back.4bpp.lz");
+const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/shiny.gbapal.lz");
+const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/icon.4bpp");
+const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/footprint.1bpp");
+
+const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/front.4bpp.lz");
+const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/normal.gbapal.lz");
+const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/back.4bpp.lz");
+const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/shiny.gbapal.lz");
+const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/icon.4bpp");
+const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/footprint.1bpp");
+
+const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/front.4bpp.lz");
+const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/normal.gbapal.lz");
+const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/back.4bpp.lz");
+const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/shiny.gbapal.lz");
+const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/icon.4bpp");
+const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/footprint.1bpp");
+
+const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/front.4bpp.lz");
+const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/normal.gbapal.lz");
+const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/back.4bpp.lz");
+const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/shiny.gbapal.lz");
+const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/icon.4bpp");
+const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/footprint.1bpp");
+
+const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/front.4bpp.lz");
+const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/normal.gbapal.lz");
+const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/back.4bpp.lz");
+const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/shiny.gbapal.lz");
+const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/icon.4bpp");
+const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/footprint.1bpp");
+
+const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/front.4bpp.lz");
+const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/normal.gbapal.lz");
+const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/back.4bpp.lz");
+const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/shiny.gbapal.lz");
+const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/icon.4bpp");
+const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/footprint.1bpp");
+
+const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/front.4bpp.lz");
+const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/normal.gbapal.lz");
+const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/back.4bpp.lz");
+const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/shiny.gbapal.lz");
+const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/icon.4bpp");
+const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/footprint.1bpp");
+
+const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/front.4bpp.lz");
+const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/normal.gbapal.lz");
+const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/back.4bpp.lz");
+const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/shiny.gbapal.lz");
+const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/icon.4bpp");
+const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/footprint.1bpp");
+
+const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/front.4bpp.lz");
+const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/normal.gbapal.lz");
+const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/back.4bpp.lz");
+const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/shiny.gbapal.lz");
+const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/icon.4bpp");
+const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/footprint.1bpp");
+
+const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/front.4bpp.lz");
+const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/normal.gbapal.lz");
+const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/back.4bpp.lz");
+const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/shiny.gbapal.lz");
+const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/icon.4bpp");
+const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/footprint.1bpp");
+
+const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/front.4bpp.lz");
+const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/normal.gbapal.lz");
+const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/back.4bpp.lz");
+const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/shiny.gbapal.lz");
+const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/icon.4bpp");
+const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/footprint.1bpp");
+
+const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/front.4bpp.lz");
+const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/normal.gbapal.lz");
+const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/back.4bpp.lz");
+const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/shiny.gbapal.lz");
+const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/icon.4bpp");
+const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/footprint.1bpp");
+
+const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/front.4bpp.lz");
+const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/normal.gbapal.lz");
+const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/back.4bpp.lz");
+const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/shiny.gbapal.lz");
+const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/icon.4bpp");
+const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/footprint.1bpp");
+
+const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/front.4bpp.lz");
+const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/normal.gbapal.lz");
+const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/back.4bpp.lz");
+const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/shiny.gbapal.lz");
+const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/icon.4bpp");
+const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/footprint.1bpp");
+
+const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/front.4bpp.lz");
+const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/normal.gbapal.lz");
+const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/back.4bpp.lz");
+const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/shiny.gbapal.lz");
+const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/icon.4bpp");
+const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/footprint.1bpp");
+
+const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/front.4bpp.lz");
+const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/normal.gbapal.lz");
+const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/back.4bpp.lz");
+const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/shiny.gbapal.lz");
+const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/icon.4bpp");
+const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/footprint.1bpp");
+
+const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/front.4bpp.lz");
+const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/normal.gbapal.lz");
+const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/back.4bpp.lz");
+const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/shiny.gbapal.lz");
+const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/icon.4bpp");
+const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/footprint.1bpp");
+
+const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/front.4bpp.lz");
+const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/normal.gbapal.lz");
+const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/back.4bpp.lz");
+const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/shiny.gbapal.lz");
+const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/mew/icon.4bpp");
+const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/mew/footprint.1bpp");
+
+const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/front.4bpp.lz");
+const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/normal.gbapal.lz");
+const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/back.4bpp.lz");
+const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/shiny.gbapal.lz");
+const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/icon.4bpp");
+const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/footprint.1bpp");
+
+const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/front.4bpp.lz");
+const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/normal.gbapal.lz");
+const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/back.4bpp.lz");
+const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/shiny.gbapal.lz");
+const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/icon.4bpp");
+const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/footprint.1bpp");
+
+const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/front.4bpp.lz");
+const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/normal.gbapal.lz");
+const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/back.4bpp.lz");
+const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/shiny.gbapal.lz");
+const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/icon.4bpp");
+const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/footprint.1bpp");
+
+const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/front.4bpp.lz");
+const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/normal.gbapal.lz");
+const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/back.4bpp.lz");
+const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/shiny.gbapal.lz");
+const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/icon.4bpp");
+const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/footprint.1bpp");
+
+const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/front.4bpp.lz");
+const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/normal.gbapal.lz");
+const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/back.4bpp.lz");
+const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/shiny.gbapal.lz");
+const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/icon.4bpp");
+const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/footprint.1bpp");
+
+const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/front.4bpp.lz");
+const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/normal.gbapal.lz");
+const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/back.4bpp.lz");
+const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/shiny.gbapal.lz");
+const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/icon.4bpp");
+const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/footprint.1bpp");
+
+const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/front.4bpp.lz");
+const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/normal.gbapal.lz");
+const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/back.4bpp.lz");
+const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/shiny.gbapal.lz");
+const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/icon.4bpp");
+const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/footprint.1bpp");
+
+const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/front.4bpp.lz");
+const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/normal.gbapal.lz");
+const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/back.4bpp.lz");
+const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/shiny.gbapal.lz");
+const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/icon.4bpp");
+const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/footprint.1bpp");
+
+const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/front.4bpp.lz");
+const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/normal.gbapal.lz");
+const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/back.4bpp.lz");
+const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/shiny.gbapal.lz");
+const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/icon.4bpp");
+const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/footprint.1bpp");
+
+const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/front.4bpp.lz");
+const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/normal.gbapal.lz");
+const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/back.4bpp.lz");
+const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/shiny.gbapal.lz");
+const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/icon.4bpp");
+const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/footprint.1bpp");
+
+const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/front.4bpp.lz");
+const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/normal.gbapal.lz");
+const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/back.4bpp.lz");
+const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/shiny.gbapal.lz");
+const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/furret/icon.4bpp");
+const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/furret/footprint.1bpp");
+
+const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/front.4bpp.lz");
+const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/normal.gbapal.lz");
+const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/back.4bpp.lz");
+const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/shiny.gbapal.lz");
+const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/icon.4bpp");
+const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/footprint.1bpp");
+
+const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/front.4bpp.lz");
+const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/normal.gbapal.lz");
+const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/back.4bpp.lz");
+const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/shiny.gbapal.lz");
+const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/icon.4bpp");
+const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/footprint.1bpp");
+
+const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/front.4bpp.lz");
+const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/normal.gbapal.lz");
+const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/back.4bpp.lz");
+const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/shiny.gbapal.lz");
+const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/icon.4bpp");
+const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/footprint.1bpp");
+
+const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/front.4bpp.lz");
+const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/normal.gbapal.lz");
+const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/back.4bpp.lz");
+const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/shiny.gbapal.lz");
+const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/icon.4bpp");
+const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/footprint.1bpp");
+
+const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/front.4bpp.lz");
+const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/normal.gbapal.lz");
+const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/back.4bpp.lz");
+const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/shiny.gbapal.lz");
+const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/icon.4bpp");
+const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/footprint.1bpp");
+
+const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/front.4bpp.lz");
+const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/normal.gbapal.lz");
+const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/back.4bpp.lz");
+const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/shiny.gbapal.lz");
+const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/icon.4bpp");
+const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/footprint.1bpp");
+
+const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/front.4bpp.lz");
+const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/normal.gbapal.lz");
+const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/back.4bpp.lz");
+const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/shiny.gbapal.lz");
+const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/icon.4bpp");
+const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/footprint.1bpp");
+
+const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/front.4bpp.lz");
+const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/normal.gbapal.lz");
+const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/back.4bpp.lz");
+const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/shiny.gbapal.lz");
+const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/icon.4bpp");
+const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/footprint.1bpp");
+
+const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/front.4bpp.lz");
+const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/normal.gbapal.lz");
+const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/back.4bpp.lz");
+const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/shiny.gbapal.lz");
+const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/icon.4bpp");
+const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/footprint.1bpp");
+
+const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/front.4bpp.lz");
+const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/normal.gbapal.lz");
+const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/back.4bpp.lz");
+const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/shiny.gbapal.lz");
+const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/icon.4bpp");
+const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/footprint.1bpp");
+
+const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/front.4bpp.lz");
+const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/normal.gbapal.lz");
+const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/back.4bpp.lz");
+const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/shiny.gbapal.lz");
+const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/icon.4bpp");
+const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/footprint.1bpp");
+
+const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/front.4bpp.lz");
+const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/normal.gbapal.lz");
+const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/back.4bpp.lz");
+const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/shiny.gbapal.lz");
+const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/icon.4bpp");
+const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/footprint.1bpp");
+
+const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/front.4bpp.lz");
+const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/normal.gbapal.lz");
+const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/back.4bpp.lz");
+const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/shiny.gbapal.lz");
+const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/icon.4bpp");
+const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/footprint.1bpp");
+
+const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/front.4bpp.lz");
+const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/normal.gbapal.lz");
+const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/back.4bpp.lz");
+const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/shiny.gbapal.lz");
+const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/icon.4bpp");
+const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/footprint.1bpp");
+
+const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/front.4bpp.lz");
+const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/normal.gbapal.lz");
+const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/back.4bpp.lz");
+const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/shiny.gbapal.lz");
+const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/natu/icon.4bpp");
+const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/natu/footprint.1bpp");
+
+const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/front.4bpp.lz");
+const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/normal.gbapal.lz");
+const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/back.4bpp.lz");
+const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/shiny.gbapal.lz");
+const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/icon.4bpp");
+const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/footprint.1bpp");
+
+const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/front.4bpp.lz");
+const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/normal.gbapal.lz");
+const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/back.4bpp.lz");
+const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/shiny.gbapal.lz");
+const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/icon.4bpp");
+const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/footprint.1bpp");
+
+const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/front.4bpp.lz");
+const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/normal.gbapal.lz");
+const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/back.4bpp.lz");
+const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/shiny.gbapal.lz");
+const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/icon.4bpp");
+const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/footprint.1bpp");
+
+const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/front.4bpp.lz");
+const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/normal.gbapal.lz");
+const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/back.4bpp.lz");
+const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/shiny.gbapal.lz");
+const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/icon.4bpp");
+const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/footprint.1bpp");
+
+const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/front.4bpp.lz");
+const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/normal.gbapal.lz");
+const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/back.4bpp.lz");
+const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/shiny.gbapal.lz");
+const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/icon.4bpp");
+const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/footprint.1bpp");
+
+const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/front.4bpp.lz");
+const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/normal.gbapal.lz");
+const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/back.4bpp.lz");
+const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/shiny.gbapal.lz");
+const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/marill/icon.4bpp");
+const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/marill/footprint.1bpp");
+
+const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/front.4bpp.lz");
+const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/normal.gbapal.lz");
+const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/back.4bpp.lz");
+const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/shiny.gbapal.lz");
+const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/icon.4bpp");
+const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/footprint.1bpp");
+
+const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/front.4bpp.lz");
+const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/normal.gbapal.lz");
+const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/back.4bpp.lz");
+const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/shiny.gbapal.lz");
+const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/icon.4bpp");
+const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/footprint.1bpp");
+
+const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/front.4bpp.lz");
+const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/normal.gbapal.lz");
+const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/back.4bpp.lz");
+const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/shiny.gbapal.lz");
+const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/icon.4bpp");
+const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/footprint.1bpp");
+
+const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/front.4bpp.lz");
+const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/normal.gbapal.lz");
+const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/back.4bpp.lz");
+const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/shiny.gbapal.lz");
+const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/icon.4bpp");
+const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/footprint.1bpp");
+
+const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/front.4bpp.lz");
+const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/normal.gbapal.lz");
+const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/back.4bpp.lz");
+const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/shiny.gbapal.lz");
+const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/icon.4bpp");
+const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/footprint.1bpp");
+
+const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/front.4bpp.lz");
+const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/normal.gbapal.lz");
+const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/back.4bpp.lz");
+const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/shiny.gbapal.lz");
+const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/icon.4bpp");
+const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/footprint.1bpp");
+
+const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/front.4bpp.lz");
+const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/normal.gbapal.lz");
+const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/back.4bpp.lz");
+const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/shiny.gbapal.lz");
+const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/icon.4bpp");
+const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/footprint.1bpp");
+
+const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/front.4bpp.lz");
+const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/normal.gbapal.lz");
+const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/back.4bpp.lz");
+const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/shiny.gbapal.lz");
+const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/icon.4bpp");
+const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/footprint.1bpp");
+
+const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/front.4bpp.lz");
+const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/normal.gbapal.lz");
+const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/back.4bpp.lz");
+const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/shiny.gbapal.lz");
+const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/icon.4bpp");
+const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/footprint.1bpp");
+
+const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/front.4bpp.lz");
+const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/normal.gbapal.lz");
+const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/back.4bpp.lz");
+const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/shiny.gbapal.lz");
+const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/icon.4bpp");
+const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/footprint.1bpp");
+
+const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/front.4bpp.lz");
+const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/normal.gbapal.lz");
+const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/back.4bpp.lz");
+const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/shiny.gbapal.lz");
+const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/icon.4bpp");
+const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/footprint.1bpp");
+
+const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/front.4bpp.lz");
+const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/normal.gbapal.lz");
+const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/back.4bpp.lz");
+const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/shiny.gbapal.lz");
+const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/icon.4bpp");
+const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/footprint.1bpp");
+
+const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/front.4bpp.lz");
+const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/normal.gbapal.lz");
+const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/back.4bpp.lz");
+const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/shiny.gbapal.lz");
+const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/icon.4bpp");
+const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/footprint.1bpp");
+
+const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/front.4bpp.lz");
+const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/normal.gbapal.lz");
+const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/back.4bpp.lz");
+const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/shiny.gbapal.lz");
+const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/icon.4bpp");
+const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/footprint.1bpp");
+
+const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/front.4bpp.lz");
+const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/normal.gbapal.lz");
+const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/back.4bpp.lz");
+const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/shiny.gbapal.lz");
+const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/icon.4bpp");
+const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/footprint.1bpp");
+
+const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/front.4bpp.lz");
+const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/normal.gbapal.lz");
+const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/back.4bpp.lz");
+const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/shiny.gbapal.lz");
+const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/icon.4bpp");
+const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/footprint.1bpp");
+
+const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/front.4bpp.lz");
+const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/normal.gbapal.lz");
+const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/back.4bpp.lz");
+const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/shiny.gbapal.lz");
+const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon.4bpp");
+const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/footprint.1bpp");
+
+const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/a/front.4bpp.lz");
+const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/normal.gbapal.lz");
+const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/a/back.4bpp.lz");
+const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/shiny.gbapal.lz");
+const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/unown/a/icon.4bpp");
+const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/unown/footprint.1bpp");
+
+const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/front.4bpp.lz");
+const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/normal.gbapal.lz");
+const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/back.4bpp.lz");
+const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/shiny.gbapal.lz");
+const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/icon.4bpp");
+const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/footprint.1bpp");
+
+const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/front.4bpp.lz");
+const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/normal.gbapal.lz");
+const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/back.4bpp.lz");
+const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/shiny.gbapal.lz");
+const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/icon.4bpp");
+const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/footprint.1bpp");
+
+const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/front.4bpp.lz");
+const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/normal.gbapal.lz");
+const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/back.4bpp.lz");
+const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/shiny.gbapal.lz");
+const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/icon.4bpp");
+const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/footprint.1bpp");
+
+const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/front.4bpp.lz");
+const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/normal.gbapal.lz");
+const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/back.4bpp.lz");
+const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/shiny.gbapal.lz");
+const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/icon.4bpp");
+const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/footprint.1bpp");
+
+const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/front.4bpp.lz");
+const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/normal.gbapal.lz");
+const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/back.4bpp.lz");
+const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/shiny.gbapal.lz");
+const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/icon.4bpp");
+const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/footprint.1bpp");
+
+const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/front.4bpp.lz");
+const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/normal.gbapal.lz");
+const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/back.4bpp.lz");
+const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/shiny.gbapal.lz");
+const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/icon.4bpp");
+const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/footprint.1bpp");
+
+const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/front.4bpp.lz");
+const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/normal.gbapal.lz");
+const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/back.4bpp.lz");
+const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/shiny.gbapal.lz");
+const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/icon.4bpp");
+const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/footprint.1bpp");
+
+const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/front.4bpp.lz");
+const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/normal.gbapal.lz");
+const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/back.4bpp.lz");
+const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/shiny.gbapal.lz");
+const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/icon.4bpp");
+const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/footprint.1bpp");
+
+const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/front.4bpp.lz");
+const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/normal.gbapal.lz");
+const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/back.4bpp.lz");
+const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/shiny.gbapal.lz");
+const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/icon.4bpp");
+const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/footprint.1bpp");
+
+const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/front.4bpp.lz");
+const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/normal.gbapal.lz");
+const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/back.4bpp.lz");
+const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/shiny.gbapal.lz");
+const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/icon.4bpp");
+const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/footprint.1bpp");
+
+const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/front.4bpp.lz");
+const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/normal.gbapal.lz");
+const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/back.4bpp.lz");
+const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/shiny.gbapal.lz");
+const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/icon.4bpp");
+const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/footprint.1bpp");
+
+const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/front.4bpp.lz");
+const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/normal.gbapal.lz");
+const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/back.4bpp.lz");
+const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/shiny.gbapal.lz");
+const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/icon.4bpp");
+const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/footprint.1bpp");
+
+const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/front.4bpp.lz");
+const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/normal.gbapal.lz");
+const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/back.4bpp.lz");
+const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/shiny.gbapal.lz");
+const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/icon.4bpp");
+const u8 gUnknown_heracross_icon[] = INCBIN_U8("graphics/pokemon/heracross/unk_icon.4bpp");
+const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/footprint.1bpp");
+
+const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/front.4bpp.lz");
+const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/normal.gbapal.lz");
+const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/back.4bpp.lz");
+const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/shiny.gbapal.lz");
+const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/icon.4bpp");
+const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/footprint.1bpp");
+
+const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/front.4bpp.lz");
+const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/normal.gbapal.lz");
+const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/back.4bpp.lz");
+const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/shiny.gbapal.lz");
+const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/icon.4bpp");
+const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/footprint.1bpp");
+
+const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/front.4bpp.lz");
+const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/normal.gbapal.lz");
+const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/back.4bpp.lz");
+const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/shiny.gbapal.lz");
+const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/icon.4bpp");
+const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/footprint.1bpp");
+
+const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/front.4bpp.lz");
+const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/normal.gbapal.lz");
+const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/back.4bpp.lz");
+const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/shiny.gbapal.lz");
+const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/icon.4bpp");
+const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/footprint.1bpp");
+
+const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/front.4bpp.lz");
+const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/normal.gbapal.lz");
+const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/back.4bpp.lz");
+const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/shiny.gbapal.lz");
+const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/icon.4bpp");
+const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/footprint.1bpp");
+
+const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/front.4bpp.lz");
+const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/normal.gbapal.lz");
+const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/back.4bpp.lz");
+const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/shiny.gbapal.lz");
+const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/icon.4bpp");
+const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/footprint.1bpp");
+
+const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/front.4bpp.lz");
+const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/normal.gbapal.lz");
+const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/back.4bpp.lz");
+const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/shiny.gbapal.lz");
+const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/icon.4bpp");
+const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/footprint.1bpp");
+
+const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/front.4bpp.lz");
+const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/normal.gbapal.lz");
+const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/back.4bpp.lz");
+const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/shiny.gbapal.lz");
+const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/icon.4bpp");
+const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/footprint.1bpp");
+
+const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/front.4bpp.lz");
+const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/normal.gbapal.lz");
+const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/back.4bpp.lz");
+const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/shiny.gbapal.lz");
+const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/icon.4bpp");
+const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/footprint.1bpp");
+
+const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/front.4bpp.lz");
+const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/normal.gbapal.lz");
+const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/back.4bpp.lz");
+const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/shiny.gbapal.lz");
+const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/icon.4bpp");
+const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/footprint.1bpp");
+
+const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/front.4bpp.lz");
+const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/normal.gbapal.lz");
+const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/back.4bpp.lz");
+const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/shiny.gbapal.lz");
+const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/icon.4bpp");
+const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/footprint.1bpp");
+
+const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/front.4bpp.lz");
+const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/normal.gbapal.lz");
+const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/back.4bpp.lz");
+const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/shiny.gbapal.lz");
+const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/icon.4bpp");
+const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/footprint.1bpp");
+
+const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/front.4bpp.lz");
+const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/normal.gbapal.lz");
+const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/back.4bpp.lz");
+const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/shiny.gbapal.lz");
+const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/icon.4bpp");
+const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/footprint.1bpp");
+
+const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/front.4bpp.lz");
+const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/normal.gbapal.lz");
+const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/back.4bpp.lz");
+const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/shiny.gbapal.lz");
+const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/icon.4bpp");
+const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/footprint.1bpp");
+
+const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/front.4bpp.lz");
+const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/normal.gbapal.lz");
+const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/back.4bpp.lz");
+const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/shiny.gbapal.lz");
+const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/icon.4bpp");
+const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/footprint.1bpp");
+
+const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/front.4bpp.lz");
+const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/normal.gbapal.lz");
+const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/back.4bpp.lz");
+const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/shiny.gbapal.lz");
+const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/icon.4bpp");
+const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/footprint.1bpp");
+
+const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/front.4bpp.lz");
+const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/normal.gbapal.lz");
+const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/back.4bpp.lz");
+const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/shiny.gbapal.lz");
+const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/icon.4bpp");
+const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/footprint.1bpp");
+
+const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/front.4bpp.lz");
+const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/normal.gbapal.lz");
+const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/back.4bpp.lz");
+const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shiny.gbapal.lz");
+const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp");
+const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp");
+
+const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/front.4bpp.lz");
+const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/normal.gbapal.lz");
+const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/back.4bpp.lz");
+const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/shiny.gbapal.lz");
+const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/icon.4bpp");
+const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/footprint.1bpp");
+
+const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/front.4bpp.lz");
+const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal.gbapal.lz");
+const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/back.4bpp.lz");
+const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/shiny.gbapal.lz");
+const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/icon.4bpp");
+const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/footprint.1bpp");
+
+const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/front.4bpp.lz");
+const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/normal.gbapal.lz");
+const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/back.4bpp.lz");
+const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/shiny.gbapal.lz");
+const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/icon.4bpp");
+const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/footprint.1bpp");
+
+const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/front.4bpp.lz");
+const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/normal.gbapal.lz");
+const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/back.4bpp.lz");
+const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/shiny.gbapal.lz");
+const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/icon.4bpp");
+const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/footprint.1bpp");
+
+const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/front.4bpp.lz");
+const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/normal.gbapal.lz");
+const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/back.4bpp.lz");
+const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/shiny.gbapal.lz");
+const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/icon.4bpp");
+
+// This might be undefined memory garbage. Its all 00s except for 1 0F. Its also not referenced.
+const u32 gUndefined_8DD1E90[] = INCBIN_U32("data/garbage_8DD2290.bin");
+
+const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/footprint.1bpp");
+
+const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/front.4bpp.lz");
+const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/normal.gbapal.lz");
+const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/back.4bpp.lz");
+const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/shiny.gbapal.lz");
+const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/icon.4bpp");
+const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/footprint.1bpp");
+
+const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/front.4bpp.lz");
+const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/normal.gbapal.lz");
+const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/back.4bpp.lz");
+const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/shiny.gbapal.lz");
+const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/icon.4bpp");
+const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/footprint.1bpp");
+
+const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/front.4bpp.lz");
+const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/normal.gbapal.lz");
+const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/back.4bpp.lz");
+const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/shiny.gbapal.lz");
+const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/magby/icon.4bpp");
+const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/magby/footprint.1bpp");
+
+const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/front.4bpp.lz");
+const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/normal.gbapal.lz");
+const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/back.4bpp.lz");
+const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/shiny.gbapal.lz");
+const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/icon.4bpp");
+const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/footprint.1bpp");
+
+const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/front.4bpp.lz");
+const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/normal.gbapal.lz");
+const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/back.4bpp.lz");
+const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/shiny.gbapal.lz");
+const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/icon.4bpp");
+const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/footprint.1bpp");
+
+const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/front.4bpp.lz");
+const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/normal.gbapal.lz");
+const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/back.4bpp.lz");
+const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/shiny.gbapal.lz");
+const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/icon.4bpp");
+const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/footprint.1bpp");
+
+const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/front.4bpp.lz");
+const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/normal.gbapal.lz");
+const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/back.4bpp.lz");
+const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/shiny.gbapal.lz");
+const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/entei/icon.4bpp");
+const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/entei/footprint.1bpp");
+
+const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/front.4bpp.lz");
+const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/normal.gbapal.lz");
+const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/back.4bpp.lz");
+const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/shiny.gbapal.lz");
+const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/icon.4bpp");
+const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/footprint.1bpp");
+
+const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/front.4bpp.lz");
+const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/normal.gbapal.lz");
+const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/back.4bpp.lz");
+const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/shiny.gbapal.lz");
+const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/icon.4bpp");
+const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/footprint.1bpp");
+
+const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/front.4bpp.lz");
+const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/normal.gbapal.lz");
+const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/back.4bpp.lz");
+const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/shiny.gbapal.lz");
+const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/icon.4bpp");
+const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/footprint.1bpp");
+
+const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/front.4bpp.lz");
+const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/normal.gbapal.lz");
+const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/back.4bpp.lz");
+const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/shiny.gbapal.lz");
+const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/icon.4bpp");
+const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/footprint.1bpp");
+
+const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/front.4bpp.lz");
+const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/normal.gbapal.lz");
+const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/back.4bpp.lz");
+const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/shiny.gbapal.lz");
+const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/icon.4bpp");
+const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/footprint.1bpp");
+
+const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/front.4bpp.lz");
+const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/normal.gbapal.lz");
+const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/back.4bpp.lz");
+const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/shiny.gbapal.lz");
+const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/icon.4bpp");
+const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/footprint.1bpp");
+
+const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/front.4bpp.lz");
+const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/normal.gbapal.lz");
+const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/back.4bpp.lz");
+const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny.gbapal.lz");
+const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon.4bpp");
+const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/footprint.1bpp");
+
+const u32 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/front.4bpp.lz");
+const u32 gMonPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/normal.gbapal.lz");
+const u32 gMonBackPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/back.4bpp.lz");
+const u32 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/shiny.gbapal.lz");
+
+const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/front.4bpp.lz");
+const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/normal.gbapal.lz");
+const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/back.4bpp.lz");
+const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/shiny.gbapal.lz");
+const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/icon.4bpp");
+const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/footprint.1bpp");
+
+const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/front.4bpp.lz");
+const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/normal.gbapal.lz");
+const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/back.4bpp.lz");
+const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/shiny.gbapal.lz");
+const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/icon.4bpp");
+const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/footprint.1bpp");
+
+const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/front.4bpp.lz");
+const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/normal.gbapal.lz");
+const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/back.4bpp.lz");
+const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/shiny.gbapal.lz");
+const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/icon.4bpp");
+const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/footprint.1bpp");
+
+const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/front.4bpp.lz");
+const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/normal.gbapal.lz");
+const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/back.4bpp.lz");
+const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/shiny.gbapal.lz");
+const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/icon.4bpp");
+const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/footprint.1bpp");
+
+const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/front.4bpp.lz");
+const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/normal.gbapal.lz");
+const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/back.4bpp.lz");
+const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/shiny.gbapal.lz");
+const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/icon.4bpp");
+const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/footprint.1bpp");
+
+const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/front.4bpp.lz");
+const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/normal.gbapal.lz");
+const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/back.4bpp.lz");
+const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/shiny.gbapal.lz");
+const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/icon.4bpp");
+const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/footprint.1bpp");
+
+const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/front.4bpp.lz");
+const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/normal.gbapal.lz");
+const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/back.4bpp.lz");
+const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/shiny.gbapal.lz");
+const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/icon.4bpp");
+const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/footprint.1bpp");
+
+const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/front.4bpp.lz");
+const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/normal.gbapal.lz");
+const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/back.4bpp.lz");
+const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/shiny.gbapal.lz");
+const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/icon.4bpp");
+const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/footprint.1bpp");
+
+const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/front.4bpp.lz");
+const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/normal.gbapal.lz");
+const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/back.4bpp.lz");
+const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/shiny.gbapal.lz");
+const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/icon.4bpp");
+const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/footprint.1bpp");
+
+const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/front.4bpp.lz");
+const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/normal.gbapal.lz");
+const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/back.4bpp.lz");
+const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/shiny.gbapal.lz");
+const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/icon.4bpp");
+const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/footprint.1bpp");
+
+const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/front.4bpp.lz");
+const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/normal.gbapal.lz");
+const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/back.4bpp.lz");
+const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/shiny.gbapal.lz");
+const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/icon.4bpp");
+const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/footprint.1bpp");
+
+const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/front.4bpp.lz");
+const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/normal.gbapal.lz");
+const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/back.4bpp.lz");
+const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/shiny.gbapal.lz");
+const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/icon.4bpp");
+const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/footprint.1bpp");
+
+const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/front.4bpp.lz");
+const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/normal.gbapal.lz");
+const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/back.4bpp.lz");
+const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/shiny.gbapal.lz");
+const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/icon.4bpp");
+const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/footprint.1bpp");
+
+const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/front.4bpp.lz");
+const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/normal.gbapal.lz");
+const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/back.4bpp.lz");
+const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/shiny.gbapal.lz");
+const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/icon.4bpp");
+const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/footprint.1bpp");
+
+const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/front.4bpp.lz");
+const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/normal.gbapal.lz");
+const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/back.4bpp.lz");
+const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/shiny.gbapal.lz");
+const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/icon.4bpp");
+const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/footprint.1bpp");
+
+const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/front.4bpp.lz");
+const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/normal.gbapal.lz");
+const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/back.4bpp.lz");
+const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/shiny.gbapal.lz");
+const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/icon.4bpp");
+const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/footprint.1bpp");
+
+const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/front.4bpp.lz");
+const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/normal.gbapal.lz");
+const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/back.4bpp.lz");
+const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/shiny.gbapal.lz");
+const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/icon.4bpp");
+const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/footprint.1bpp");
+
+const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/front.4bpp.lz");
+const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/normal.gbapal.lz");
+const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/back.4bpp.lz");
+const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/shiny.gbapal.lz");
+const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/icon.4bpp");
+const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/footprint.1bpp");
+
+const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/front.4bpp.lz");
+const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/normal.gbapal.lz");
+const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/back.4bpp.lz");
+const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/shiny.gbapal.lz");
+const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/icon.4bpp");
+const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/footprint.1bpp");
+
+const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/front.4bpp.lz");
+const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/normal.gbapal.lz");
+const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/back.4bpp.lz");
+const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/shiny.gbapal.lz");
+const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/icon.4bpp");
+const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/footprint.1bpp");
+
+const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/front.4bpp.lz");
+const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/normal.gbapal.lz");
+const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/back.4bpp.lz");
+const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/shiny.gbapal.lz");
+const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/icon.4bpp");
+const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/footprint.1bpp");
+
+const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/front.4bpp.lz");
+const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/normal.gbapal.lz");
+const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/back.4bpp.lz");
+const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/shiny.gbapal.lz");
+const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/icon.4bpp");
+const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/footprint.1bpp");
+
+const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/front.4bpp.lz");
+const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/normal.gbapal.lz");
+const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/back.4bpp.lz");
+const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/shiny.gbapal.lz");
+const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/icon.4bpp");
+const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/footprint.1bpp");
+
+const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/front.4bpp.lz");
+const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/normal.gbapal.lz");
+const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/back.4bpp.lz");
+const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/shiny.gbapal.lz");
+const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/icon.4bpp");
+const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/footprint.1bpp");
+
+const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/front.4bpp.lz");
+const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/normal.gbapal.lz");
+const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/back.4bpp.lz");
+const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/shiny.gbapal.lz");
+const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/icon.4bpp");
+const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/footprint.1bpp");
+
+const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/front.4bpp.lz");
+const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/normal.gbapal.lz");
+const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/back.4bpp.lz");
+const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/shiny.gbapal.lz");
+const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/icon.4bpp");
+const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/footprint.1bpp");
+
+const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/front.4bpp.lz");
+const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/normal.gbapal.lz");
+const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/back.4bpp.lz");
+const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/shiny.gbapal.lz");
+const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/icon.4bpp");
+const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/footprint.1bpp");
+
+const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/front.4bpp.lz");
+const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/normal.gbapal.lz");
+const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/back.4bpp.lz");
+const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/shiny.gbapal.lz");
+const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/icon.4bpp");
+const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/footprint.1bpp");
+
+const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/front.4bpp.lz");
+const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/normal.gbapal.lz");
+const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/back.4bpp.lz");
+const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/shiny.gbapal.lz");
+const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/icon.4bpp");
+const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/footprint.1bpp");
+
+const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/front.4bpp.lz");
+const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/normal.gbapal.lz");
+const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/back.4bpp.lz");
+const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/shiny.gbapal.lz");
+const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/icon.4bpp");
+const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/footprint.1bpp");
+
+const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/front.4bpp.lz");
+const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/normal.gbapal.lz");
+const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/back.4bpp.lz");
+const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/shiny.gbapal.lz");
+const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/icon.4bpp");
+const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/footprint.1bpp");
+
+const u32 gMonFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/front.4bpp.lz");
+const u32 gMonPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/normal.gbapal.lz");
+const u32 gMonBackPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/back.4bpp.lz");
+const u32 gMonShinyPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/shiny.gbapal.lz");
+const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/icon.4bpp");
+const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/footprint.1bpp");
+
+const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/front.4bpp.lz");
+const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/normal.gbapal.lz");
+const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/back.4bpp.lz");
+const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/shiny.gbapal.lz");
+const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/icon.4bpp");
+const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/footprint.1bpp");
+
+const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/front.4bpp.lz");
+const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/normal.gbapal.lz");
+const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/back.4bpp.lz");
+const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/shiny.gbapal.lz");
+const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/icon.4bpp");
+const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/footprint.1bpp");
+
+const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/front.4bpp.lz");
+const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/normal.gbapal.lz");
+const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/back.4bpp.lz");
+const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/shiny.gbapal.lz");
+const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/icon.4bpp");
+const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/footprint.1bpp");
+
+const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/front.4bpp.lz");
+const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/normal.gbapal.lz");
+const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/back.4bpp.lz");
+const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/shiny.gbapal.lz");
+const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/icon.4bpp");
+const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/footprint.1bpp");
+
+const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/front.4bpp.lz");
+const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/normal.gbapal.lz");
+const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/back.4bpp.lz");
+const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/shiny.gbapal.lz");
+const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/icon.4bpp");
+const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/footprint.1bpp");
+
+const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/front.4bpp.lz");
+const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/normal.gbapal.lz");
+const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/back.4bpp.lz");
+const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/shiny.gbapal.lz");
+const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/icon.4bpp");
+const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/footprint.1bpp");
+
+const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/front.4bpp.lz");
+const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/normal.gbapal.lz");
+const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/back.4bpp.lz");
+const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/shiny.gbapal.lz");
+const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/icon.4bpp");
+const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/footprint.1bpp");
+
+const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/front.4bpp.lz");
+const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/normal.gbapal.lz");
+const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/back.4bpp.lz");
+const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/shiny.gbapal.lz");
+const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/icon.4bpp");
+const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/footprint.1bpp");
+
+const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/front.4bpp.lz");
+const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/normal.gbapal.lz");
+const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/back.4bpp.lz");
+const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/shiny.gbapal.lz");
+const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/icon.4bpp");
+const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/footprint.1bpp");
+
+const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/front.4bpp.lz");
+const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/normal.gbapal.lz");
+const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/back.4bpp.lz");
+const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/shiny.gbapal.lz");
+const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/icon.4bpp");
+const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/footprint.1bpp");
+
+const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/front.4bpp.lz");
+const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/normal.gbapal.lz");
+const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/back.4bpp.lz");
+const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/shiny.gbapal.lz");
+const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/icon.4bpp");
+const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/footprint.1bpp");
+
+const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/front.4bpp.lz");
+const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/normal.gbapal.lz");
+const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/back.4bpp.lz");
+const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/shiny.gbapal.lz");
+const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/icon.4bpp");
+const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/footprint.1bpp");
+
+const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/front.4bpp.lz");
+const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/normal.gbapal.lz");
+const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/back.4bpp.lz");
+const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/shiny.gbapal.lz");
+const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/icon.4bpp");
+const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/footprint.1bpp");
+
+const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/front.4bpp.lz");
+const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/normal.gbapal.lz");
+const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/back.4bpp.lz");
+const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/shiny.gbapal.lz");
+const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/icon.4bpp");
+const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/footprint.1bpp");
+
+const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/front.4bpp.lz");
+const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/normal.gbapal.lz");
+const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/back.4bpp.lz");
+const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/shiny.gbapal.lz");
+const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/icon.4bpp");
+const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/footprint.1bpp");
+
+const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/front.4bpp.lz");
+const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/normal.gbapal.lz");
+const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/back.4bpp.lz");
+const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/shiny.gbapal.lz");
+const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/icon.4bpp");
+const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/footprint.1bpp");
+
+const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/front.4bpp.lz");
+const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/normal.gbapal.lz");
+const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/back.4bpp.lz");
+const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/shiny.gbapal.lz");
+const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/icon.4bpp");
+const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/footprint.1bpp");
+
+const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/front.4bpp.lz");
+const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/normal.gbapal.lz");
+const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/back.4bpp.lz");
+const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/shiny.gbapal.lz");
+const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/icon.4bpp");
+const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/footprint.1bpp");
+
+const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/front.4bpp.lz");
+const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/normal.gbapal.lz");
+const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/back.4bpp.lz");
+const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/shiny.gbapal.lz");
+const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/icon.4bpp");
+const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/footprint.1bpp");
+
+const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/front.4bpp.lz");
+const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/normal.gbapal.lz");
+const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/back.4bpp.lz");
+const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/shiny.gbapal.lz");
+const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/icon.4bpp");
+const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/footprint.1bpp");
+
+const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/front.4bpp.lz");
+const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/normal.gbapal.lz");
+const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/back.4bpp.lz");
+const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/shiny.gbapal.lz");
+const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/icon.4bpp");
+const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/footprint.1bpp");
+
+const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/front.4bpp.lz");
+const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/normal.gbapal.lz");
+const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/back.4bpp.lz");
+const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/shiny.gbapal.lz");
+const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/icon.4bpp");
+const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/footprint.1bpp");
+
+const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/front.4bpp.lz");
+const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/normal.gbapal.lz");
+const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/back.4bpp.lz");
+const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/shiny.gbapal.lz");
+const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/icon.4bpp");
+const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/footprint.1bpp");
+
+const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/front.4bpp.lz");
+const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/normal.gbapal.lz");
+const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/back.4bpp.lz");
+const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/shiny.gbapal.lz");
+const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/icon.4bpp");
+const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/footprint.1bpp");
+
+const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/front.4bpp.lz");
+const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/normal.gbapal.lz");
+const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/back.4bpp.lz");
+const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/shiny.gbapal.lz");
+const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/icon.4bpp");
+const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/footprint.1bpp");
+
+const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/front.4bpp.lz");
+const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/normal.gbapal.lz");
+const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/back.4bpp.lz");
+const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/shiny.gbapal.lz");
+const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/icon.4bpp");
+const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/footprint.1bpp");
+
+const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/front.4bpp.lz");
+const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/normal.gbapal.lz");
+const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/back.4bpp.lz");
+const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/shiny.gbapal.lz");
+const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/icon.4bpp");
+const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/footprint.1bpp");
+
+const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/front.4bpp.lz");
+const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/normal.gbapal.lz");
+const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/back.4bpp.lz");
+const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/shiny.gbapal.lz");
+const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/icon.4bpp");
+const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/footprint.1bpp");
+
+const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/front.4bpp.lz");
+const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/normal.gbapal.lz");
+const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/back.4bpp.lz");
+const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/shiny.gbapal.lz");
+const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/icon.4bpp");
+const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/footprint.1bpp");
+
+const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/front.4bpp.lz");
+const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/normal.gbapal.lz");
+const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/back.4bpp.lz");
+const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/shiny.gbapal.lz");
+const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/icon.4bpp");
+const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/footprint.1bpp");
+
+const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/front.4bpp.lz");
+const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/normal.gbapal.lz");
+const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/back.4bpp.lz");
+const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/shiny.gbapal.lz");
+const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/numel/icon.4bpp");
+const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/numel/footprint.1bpp");
+
+const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/front.4bpp.lz");
+const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/normal.gbapal.lz");
+const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/back.4bpp.lz");
+const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/shiny.gbapal.lz");
+const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/icon.4bpp");
+const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/footprint.1bpp");
+
+const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/front.4bpp.lz");
+const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/normal.gbapal.lz");
+const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/back.4bpp.lz");
+const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/shiny.gbapal.lz");
+const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/icon.4bpp");
+const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/footprint.1bpp");
+
+const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/front.4bpp.lz");
+const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/normal.gbapal.lz");
+const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/back.4bpp.lz");
+const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/shiny.gbapal.lz");
+const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/icon.4bpp");
+const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/footprint.1bpp");
+
+const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/front.4bpp.lz");
+const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/normal.gbapal.lz");
+const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/back.4bpp.lz");
+const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/shiny.gbapal.lz");
+const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/icon.4bpp");
+const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/footprint.1bpp");
+
+const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/front.4bpp.lz");
+const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/normal.gbapal.lz");
+const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/back.4bpp.lz");
+const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/shiny.gbapal.lz");
+const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/icon.4bpp");
+const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/footprint.1bpp");
+
+const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/front.4bpp.lz");
+const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/normal.gbapal.lz");
+const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/back.4bpp.lz");
+const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/shiny.gbapal.lz");
+const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/icon.4bpp");
+const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/footprint.1bpp");
+
+const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/front.4bpp.lz");
+const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/normal.gbapal.lz");
+const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/back.4bpp.lz");
+const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/shiny.gbapal.lz");
+const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/icon.4bpp");
+const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/footprint.1bpp");
+
+const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/front.4bpp.lz");
+const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/normal.gbapal.lz");
+const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/back.4bpp.lz");
+const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/shiny.gbapal.lz");
+const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/icon.4bpp");
+const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/footprint.1bpp");
+
+const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/front.4bpp.lz");
+const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/normal.gbapal.lz");
+const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/back.4bpp.lz");
+const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/shiny.gbapal.lz");
+const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/icon.4bpp");
+const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/footprint.1bpp");
+
+const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/front.4bpp.lz");
+const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/normal.gbapal.lz");
+const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/back.4bpp.lz");
+const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/shiny.gbapal.lz");
+const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/icon.4bpp");
+const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/footprint.1bpp");
+
+const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/front.4bpp.lz");
+const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/normal.gbapal.lz");
+const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/back.4bpp.lz");
+const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/shiny.gbapal.lz");
+const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/icon.4bpp");
+const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/footprint.1bpp");
+
+const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/front.4bpp.lz");
+const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/normal.gbapal.lz");
+const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/back.4bpp.lz");
+const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/shiny.gbapal.lz");
+const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/icon.4bpp");
+const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/footprint.1bpp");
+
+const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/front.4bpp.lz");
+const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/normal.gbapal.lz");
+const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/back.4bpp.lz");
+const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/shiny.gbapal.lz");
+const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/icon.4bpp");
+const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/footprint.1bpp");
+
+const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/front.4bpp.lz");
+const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/normal.gbapal.lz");
+const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/back.4bpp.lz");
+const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/shiny.gbapal.lz");
+const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/icon.4bpp");
+const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/footprint.1bpp");
+
+const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/front.4bpp.lz");
+const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/normal.gbapal.lz");
+const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/back.4bpp.lz");
+const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/shiny.gbapal.lz");
+const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/minun/icon.4bpp");
+const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/minun/footprint.1bpp");
+
+const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/front.4bpp.lz");
+const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/normal.gbapal.lz");
+const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/back.4bpp.lz");
+const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/shiny.gbapal.lz");
+const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/icon.4bpp");
+const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/footprint.1bpp");
+
+const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/front.4bpp.lz");
+const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/normal.gbapal.lz");
+const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/back.4bpp.lz");
+const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/shiny.gbapal.lz");
+const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/icon.4bpp");
+const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/footprint.1bpp");
+
+const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/front.4bpp.lz");
+const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/normal.gbapal.lz");
+const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/back.4bpp.lz");
+const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/shiny.gbapal.lz");
+const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/icon.4bpp");
+const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/footprint.1bpp");
+
+const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/front.4bpp.lz");
+const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/normal.gbapal.lz");
+const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/back.4bpp.lz");
+const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/shiny.gbapal.lz");
+const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/icon.4bpp");
+const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/footprint.1bpp");
+
+const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/front.4bpp.lz");
+const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/normal.gbapal.lz");
+const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/back.4bpp.lz");
+const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/shiny.gbapal.lz");
+const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/icon.4bpp");
+const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/footprint.1bpp");
+
+const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/front.4bpp.lz");
+const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/normal.gbapal.lz");
+const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/back.4bpp.lz");
+const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/shiny.gbapal.lz");
+const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/icon.4bpp");
+const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/footprint.1bpp");
+
+const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/front.4bpp.lz");
+const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/normal.gbapal.lz");
+const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/back.4bpp.lz");
+const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/shiny.gbapal.lz");
+const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/icon.4bpp");
+const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/footprint.1bpp");
+
+const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/front.4bpp.lz");
+const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/normal.gbapal.lz");
+const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/back.4bpp.lz");
+const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/shiny.gbapal.lz");
+const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/icon.4bpp");
+const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/footprint.1bpp");
+
+const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/front.4bpp.lz");
+const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/normal.gbapal.lz");
+const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/back.4bpp.lz");
+const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/shiny.gbapal.lz");
+const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/icon.4bpp");
+const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/footprint.1bpp");
+
+const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/front.4bpp.lz");
+const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/normal.gbapal.lz");
+const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/back.4bpp.lz");
+const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/shiny.gbapal.lz");
+const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/icon.4bpp");
+const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/footprint.1bpp");
+
+const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/front.4bpp.lz");
+const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/normal.gbapal.lz");
+const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/back.4bpp.lz");
+const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/shiny.gbapal.lz");
+const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/icon.4bpp");
+const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/footprint.1bpp");
+
+const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/front.4bpp.lz");
+const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/normal.gbapal.lz");
+const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/back.4bpp.lz");
+const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/shiny.gbapal.lz");
+const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/icon.4bpp");
+const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/footprint.1bpp");
+
+const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/front.4bpp.lz");
+const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/normal.gbapal.lz");
+const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/back.4bpp.lz");
+const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/shiny.gbapal.lz");
+const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/icon.4bpp");
+const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/footprint.1bpp");
+
+const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/front.4bpp.lz");
+const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/normal.gbapal.lz");
+const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/back.4bpp.lz");
+const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/shiny.gbapal.lz");
+const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/icon.4bpp");
+const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/footprint.1bpp");
+
+const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/front.4bpp.lz");
+const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/normal.gbapal.lz");
+const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/back.4bpp.lz");
+const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/shiny.gbapal.lz");
+const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/icon.4bpp");
+const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/footprint.1bpp");
+
+const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/front.4bpp.lz");
+const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/normal.gbapal.lz");
+const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/back.4bpp.lz");
+const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/shiny.gbapal.lz");
+const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/icon.4bpp");
+const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/footprint.1bpp");
+
+const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/front.4bpp.lz");
+const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/normal.gbapal.lz");
+const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/back.4bpp.lz");
+const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/shiny.gbapal.lz");
+const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/icon.4bpp");
+const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/footprint.1bpp");
+
+const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/front.4bpp.lz");
+const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/normal.gbapal.lz");
+const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/back.4bpp.lz");
+const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/shiny.gbapal.lz");
+const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/icon.4bpp");
+const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/footprint.1bpp");
+
+const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/front.4bpp.lz");
+const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/normal.gbapal.lz");
+const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/back.4bpp.lz");
+const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/shiny.gbapal.lz");
+const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/icon.4bpp");
+const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/footprint.1bpp");
+
+const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/front.4bpp.lz");
+const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/normal.gbapal.lz");
+const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/back.4bpp.lz");
+const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/shiny.gbapal.lz");
+const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/icon.4bpp");
+const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/footprint.1bpp");
+
+const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/front.4bpp.lz");
+const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/normal.gbapal.lz");
+const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/back.4bpp.lz");
+const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/shiny.gbapal.lz");
+const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/icon.4bpp");
+const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/footprint.1bpp");
+
+const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/front.4bpp.lz");
+const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/normal.gbapal.lz");
+const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/back.4bpp.lz");
+const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/shiny.gbapal.lz");
+const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/absol/icon.4bpp");
+const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/absol/footprint.1bpp");
+
+const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/front.4bpp.lz");
+const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/normal.gbapal.lz");
+const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/back.4bpp.lz");
+const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/shiny.gbapal.lz");
+const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/icon.4bpp");
+const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/footprint.1bpp");
+
+const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/front.4bpp.lz");
+const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/normal.gbapal.lz");
+const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/back.4bpp.lz");
+const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/shiny.gbapal.lz");
+const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/banette/icon.4bpp");
+const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/banette/footprint.1bpp");
+
+const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/front.4bpp.lz");
+const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/normal.gbapal.lz");
+const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/back.4bpp.lz");
+const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/shiny.gbapal.lz");
+const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/icon.4bpp");
+const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/footprint.1bpp");
+
+const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/front.4bpp.lz");
+const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/normal.gbapal.lz");
+const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/back.4bpp.lz");
+const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/shiny.gbapal.lz");
+const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/icon.4bpp");
+const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/footprint.1bpp");
+
+const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/front.4bpp.lz");
+const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/normal.gbapal.lz");
+const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/back.4bpp.lz");
+const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/shiny.gbapal.lz");
+const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/icon.4bpp");
+const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/footprint.1bpp");
+
+const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/front.4bpp.lz");
+const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/normal.gbapal.lz");
+const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/back.4bpp.lz");
+const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/shiny.gbapal.lz");
+const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/aron/icon.4bpp");
+const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/aron/footprint.1bpp");
+
+const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/front.4bpp.lz");
+const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/normal.gbapal.lz");
+const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/back.4bpp.lz");
+const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/shiny.gbapal.lz");
+const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/icon.4bpp");
+const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/footprint.1bpp");
+
+const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/front.4bpp.lz");
+const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/normal.gbapal.lz");
+const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/back.4bpp.lz");
+const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/shiny.gbapal.lz");
+const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/icon.4bpp");
+const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/footprint.1bpp");
+
+const u32 gMonFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/castform/front.4bpp.lz");
+const u32 gMonPalette_Castform[] = INCBIN_U32("graphics/pokemon/castform/normal.gbapal.lz");
+const u32 gMonBackPic_Castform[] = INCBIN_U32("graphics/pokemon/castform/back.4bpp.lz");
+const u32 gMonShinyPalette_Castform[] = INCBIN_U32("graphics/pokemon/castform/shiny.gbapal.lz");
+const u8 gMonIcon_Castform[] = INCBIN_U8("graphics/pokemon/castform/icon.4bpp");
+const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/castform/footprint.1bpp");
+
+const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/front.4bpp.lz");
+const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/normal.gbapal.lz");
+const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/back.4bpp.lz");
+const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/shiny.gbapal.lz");
+const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/icon.4bpp");
+const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/footprint.1bpp");
+
+const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/front.4bpp.lz");
+const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/normal.gbapal.lz");
+const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/back.4bpp.lz");
+const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/shiny.gbapal.lz");
+const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/icon.4bpp");
+const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/footprint.1bpp");
+
+const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/front.4bpp.lz");
+const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/normal.gbapal.lz");
+const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/back.4bpp.lz");
+const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/shiny.gbapal.lz");
+const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/icon.4bpp");
+const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/footprint.1bpp");
+
+const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/front.4bpp.lz");
+const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/normal.gbapal.lz");
+const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/back.4bpp.lz");
+const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/shiny.gbapal.lz");
+const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/icon.4bpp");
+const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/footprint.1bpp");
+
+const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/front.4bpp.lz");
+const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/normal.gbapal.lz");
+const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/back.4bpp.lz");
+const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/shiny.gbapal.lz");
+const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/icon.4bpp");
+const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/footprint.1bpp");
+
+const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/front.4bpp.lz");
+const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/normal.gbapal.lz");
+const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/back.4bpp.lz");
+const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/shiny.gbapal.lz");
+const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/icon.4bpp");
+const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/footprint.1bpp");
+
+const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/front.4bpp.lz");
+const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/normal.gbapal.lz");
+const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/back.4bpp.lz");
+const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/shiny.gbapal.lz");
+const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/icon.4bpp");
+const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/footprint.1bpp");
+
+const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/front.4bpp.lz");
+const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/normal.gbapal.lz");
+const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/back.4bpp.lz");
+const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/shiny.gbapal.lz");
+const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/icon.4bpp");
+const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/footprint.1bpp");
+
+const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/front.4bpp.lz");
+const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/normal.gbapal.lz");
+const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/back.4bpp.lz");
+const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/shiny.gbapal.lz");
+const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/icon.4bpp");
+const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/footprint.1bpp");
+
+const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/front.4bpp.lz");
+const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/normal.gbapal.lz");
+const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/back.4bpp.lz");
+const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/shiny.gbapal.lz");
+const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/icon.4bpp");
+const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/footprint.1bpp");
+
+const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/front.4bpp.lz");
+const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/normal.gbapal.lz");
+const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/back.4bpp.lz");
+const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/shiny.gbapal.lz");
+const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/icon.4bpp");
+const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/footprint.1bpp");
+
+const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/front.4bpp.lz");
+const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/normal.gbapal.lz");
+const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/back.4bpp.lz");
+const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/shiny.gbapal.lz");
+const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/icon.4bpp");
+const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/footprint.1bpp");
+
+const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/front.4bpp.lz");
+const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/normal.gbapal.lz");
+const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/back.4bpp.lz");
+const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/shiny.gbapal.lz");
+const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/icon.4bpp");
+const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/footprint.1bpp");
+
+const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/front.4bpp.lz");
+const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/normal.gbapal.lz");
+const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/back.4bpp.lz");
+const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/shiny.gbapal.lz");
+const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/metang/icon.4bpp");
+const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/metang/footprint.1bpp");
+
+const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/front.4bpp.lz");
+const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/normal.gbapal.lz");
+const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/back.4bpp.lz");
+const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/shiny.gbapal.lz");
+const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/icon.4bpp");
+const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/footprint.1bpp");
+
+const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/front.4bpp.lz");
+const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/normal.gbapal.lz");
+const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/back.4bpp.lz");
+const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/shiny.gbapal.lz");
+const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/icon.4bpp");
+const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/footprint.1bpp");
+
+const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/front.4bpp.lz");
+const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/normal.gbapal.lz");
+const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/back.4bpp.lz");
+const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/shiny.gbapal.lz");
+const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/regice/icon.4bpp");
+const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/regice/footprint.1bpp");
+
+const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/front.4bpp.lz");
+const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/normal.gbapal.lz");
+const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/back.4bpp.lz");
+const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/shiny.gbapal.lz");
+const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/icon.4bpp");
+const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/footprint.1bpp");
+
+const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/front.4bpp.lz");
+const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/normal.gbapal.lz");
+const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/back.4bpp.lz");
+const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/shiny.gbapal.lz");
+const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/icon.4bpp");
+const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/footprint.1bpp");
+
+const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/front.4bpp.lz");
+const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/normal.gbapal.lz");
+const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/back.4bpp.lz");
+const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/shiny.gbapal.lz");
+const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/icon.4bpp");
+const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/footprint.1bpp");
+
+const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/front.4bpp.lz");
+const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/normal.gbapal.lz");
+const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/back.4bpp.lz");
+const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/shiny.gbapal.lz");
+const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/icon.4bpp");
+const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/footprint.1bpp");
+
+const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/front.4bpp.lz");
+const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/normal.gbapal.lz");
+const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/back.4bpp.lz");
+const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/shiny.gbapal.lz");
+const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/latias/icon.4bpp");
+const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/latias/footprint.1bpp");
+
+const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/front.4bpp.lz");
+const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/normal.gbapal.lz");
+const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/back.4bpp.lz");
+const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/shiny.gbapal.lz");
+const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/latios/icon.4bpp");
+const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/latios/footprint.1bpp");
+
+const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/front.4bpp.lz");
+const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/normal.gbapal.lz");
+const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/back.4bpp.lz");
+const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/shiny.gbapal.lz");
+const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/icon.4bpp");
+const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/footprint.1bpp");
+
+#ifdef FIRERED
+const u32 gMonFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/front.4bpp.lz");
+const u32 gMonPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbapal.lz");
+const u32 gMonBackPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz");
+const u32 gMonShinyPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz");
+const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp", "graphics/pokemon/deoxys/icon_attack.4bpp");
+const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/footprint.1bpp");
+#endif
+
+#ifdef LEAFGREEN
+const u32 gMonFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/front_def.4bpp.lz");
+const u32 gMonPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbapal.lz");
+const u32 gMonBackPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/back_def.4bpp.lz");
+const u32 gMonShinyPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz");
+const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp", "graphics/pokemon/deoxys/icon_defense.4bpp");
+const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/footprint.1bpp");
+#endif
+
+const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/front.4bpp.lz");
+const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/normal.gbapal.lz");
+const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/back.4bpp.lz");
+const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/shiny.gbapal.lz");
+const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/icon.4bpp");
+const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footprint.1bpp");
+
+const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/front.4bpp.lz");
+const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz");
+
+const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/front.4bpp.lz");
+const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/back.4bpp.lz");
+const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/unown/b/icon.4bpp");
+
+const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/front.4bpp.lz");
+const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/back.4bpp.lz");
+const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/unown/c/icon.4bpp");
+
+const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/front.4bpp.lz");
+const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/back.4bpp.lz");
+const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/unown/d/icon.4bpp");
+
+const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/front.4bpp.lz");
+const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/back.4bpp.lz");
+const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/unown/e/icon.4bpp");
+
+const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/front.4bpp.lz");
+const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/back.4bpp.lz");
+const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/unown/f/icon.4bpp");
+
+const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/front.4bpp.lz");
+const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/back.4bpp.lz");
+const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/unown/g/icon.4bpp");
+
+const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/front.4bpp.lz");
+const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/back.4bpp.lz");
+const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/unown/h/icon.4bpp");
+
+const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/front.4bpp.lz");
+const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/back.4bpp.lz");
+const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/unown/i/icon.4bpp");
+
+const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/front.4bpp.lz");
+const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/back.4bpp.lz");
+const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/unown/j/icon.4bpp");
+
+const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/front.4bpp.lz");
+const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/back.4bpp.lz");
+const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/unown/k/icon.4bpp");
+
+const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/front.4bpp.lz");
+const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/back.4bpp.lz");
+const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/unown/l/icon.4bpp");
+
+const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/front.4bpp.lz");
+const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/back.4bpp.lz");
+const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/unown/m/icon.4bpp");
+
+const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/front.4bpp.lz");
+const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/back.4bpp.lz");
+const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/unown/n/icon.4bpp");
+
+const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/front.4bpp.lz");
+const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/back.4bpp.lz");
+const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/unown/o/icon.4bpp");
+
+const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/front.4bpp.lz");
+const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/back.4bpp.lz");
+const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/unown/p/icon.4bpp");
+
+const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/front.4bpp.lz");
+const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/back.4bpp.lz");
+const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/unown/q/icon.4bpp");
+
+const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/front.4bpp.lz");
+const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/back.4bpp.lz");
+const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/unown/r/icon.4bpp");
+
+const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/front.4bpp.lz");
+const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/back.4bpp.lz");
+const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/unown/s/icon.4bpp");
+
+const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/front.4bpp.lz");
+const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/back.4bpp.lz");
+const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/unown/t/icon.4bpp");
+
+const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/front.4bpp.lz");
+const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/back.4bpp.lz");
+const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/unown/u/icon.4bpp");
+
+const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/front.4bpp.lz");
+const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/back.4bpp.lz");
+const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/unown/v/icon.4bpp");
+
+const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/front.4bpp.lz");
+const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/back.4bpp.lz");
+const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/unown/w/icon.4bpp");
+
+const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/front.4bpp.lz");
+const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/back.4bpp.lz");
+const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/unown/x/icon.4bpp");
+
+const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/front.4bpp.lz");
+const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/back.4bpp.lz");
+const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/unown/y/icon.4bpp");
+
+const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/front.4bpp.lz");
+const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/back.4bpp.lz");
+const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/unown/z/icon.4bpp");
+
+const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/front.4bpp.lz");
+const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/back.4bpp.lz");
+const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/exclamation_mark/icon.4bpp");
+
+const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/front.4bpp.lz");
+const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/back.4bpp.lz");
+const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/question_mark/icon.4bpp");
diff --git a/src/data/graphics/trainers.h b/src/data/graphics/trainers.h
new file mode 100644
index 000000000..07183e288
--- /dev/null
+++ b/src/data/graphics/trainers.h
@@ -0,0 +1,456 @@
+const u32 gTrainerFrontPic_AquaLeaderArchie[] = INCBIN_U32("graphics/trainers/front_pics/aqua_leader_archie_front_pic.4bpp.lz");
+const u32 gTrainerPalette_AquaLeaderArchie[] = INCBIN_U32("graphics/trainers/palettes/aqua_leader_archie.gbapal.lz");
+
+const u32 gTrainerFrontPic_AquaGruntM[] = INCBIN_U32("graphics/trainers/front_pics/aqua_grunt_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_AquaGruntM[] = INCBIN_U32("graphics/trainers/palettes/aqua_grunt_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_AquaGruntF[] = INCBIN_U32("graphics/trainers/front_pics/aqua_grunt_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_AquaGruntF[] = INCBIN_U32("graphics/trainers/palettes/aqua_grunt_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSAromaLady[] = INCBIN_U32("graphics/trainers/front_pics/rs_aroma_lady_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSAromaLady[] = INCBIN_U32("graphics/trainers/palettes/rs_aroma_lady.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSRuinManiac[] = INCBIN_U32("graphics/trainers/front_pics/rs_ruin_maniac_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSRuinManiac[] = INCBIN_U32("graphics/trainers/palettes/rs_ruin_maniac.gbapal.lz");
+
+const u32 gTrainerFrontPic_Interviewer[] = INCBIN_U32("graphics/trainers/front_pics/interviewer_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Interviewer[] = INCBIN_U32("graphics/trainers/palettes/interviewer.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSTuberF[] = INCBIN_U32("graphics/trainers/front_pics/rs_tuber_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSTuberF[] = INCBIN_U32("graphics/trainers/palettes/rs_tuber_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_TuberM[] = INCBIN_U32("graphics/trainers/front_pics/tuber_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_TuberM[] = INCBIN_U32("graphics/trainers/palettes/tuber_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSCooltrainerM[] = INCBIN_U32("graphics/trainers/front_pics/rs_cool_trainer_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSCooltrainerM[] = INCBIN_U32("graphics/trainers/palettes/rs_cool_trainer_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSCooltrainerF[] = INCBIN_U32("graphics/trainers/front_pics/rs_cool_trainer_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSCooltrainerF[] = INCBIN_U32("graphics/trainers/palettes/rs_cool_trainer_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_HexManiac[] = INCBIN_U32("graphics/trainers/front_pics/hex_maniac_front_pic.4bpp.lz");
+const u32 gTrainerPalette_HexManiac[] = INCBIN_U32("graphics/trainers/palettes/hex_maniac.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSLady[] = INCBIN_U32("graphics/trainers/front_pics/rs_lady_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSLady[] = INCBIN_U32("graphics/trainers/palettes/rs_lady.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSBeauty[] = INCBIN_U32("graphics/trainers/front_pics/rs_beauty_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSBeauty[] = INCBIN_U32("graphics/trainers/palettes/rs_beauty.gbapal.lz");
+
+const u32 gTrainerFrontPic_RichBoy[] = INCBIN_U32("graphics/trainers/front_pics/rich_boy_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RichBoy[] = INCBIN_U32("graphics/trainers/palettes/rich_boy.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSPokeManiac[] = INCBIN_U32("graphics/trainers/front_pics/rs_pokemaniac_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSPokeManiac[] = INCBIN_U32("graphics/trainers/palettes/rs_pokemaniac.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSSwimmerM[] = INCBIN_U32("graphics/trainers/front_pics/rs_swimmer_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSSwimmerM[] = INCBIN_U32("graphics/trainers/palettes/rs_swimmer_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSBlackBelt[] = INCBIN_U32("graphics/trainers/front_pics/rs_black_belt_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSBlackBelt[] = INCBIN_U32("graphics/trainers/palettes/rs_black_belt.gbapal.lz");
+
+const u32 gTrainerFrontPic_Guitarist[] = INCBIN_U32("graphics/trainers/front_pics/guitarist_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Guitarist[] = INCBIN_U32("graphics/trainers/palettes/guitarist.gbapal.lz");
+
+const u32 gTrainerFrontPic_Kindler[] = INCBIN_U32("graphics/trainers/front_pics/kindler_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Kindler[] = INCBIN_U32("graphics/trainers/palettes/kindler.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSCamper[] = INCBIN_U32("graphics/trainers/front_pics/rs_camper_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSCamper[] = INCBIN_U32("graphics/trainers/palettes/rs_camper.gbapal.lz");
+
+const u32 gTrainerFrontPic_BugManiac[] = INCBIN_U32("graphics/trainers/front_pics/bug_maniac_front_pic.4bpp.lz");
+const u32 gTrainerPalette_BugManiac[] = INCBIN_U32("graphics/trainers/palettes/bug_maniac.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSPsychicM[] = INCBIN_U32("graphics/trainers/front_pics/rs_psychic_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSPsychicM[] = INCBIN_U32("graphics/trainers/palettes/rs_psychic_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSPsychicF[] = INCBIN_U32("graphics/trainers/front_pics/rs_psychic_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSPsychicF[] = INCBIN_U32("graphics/trainers/palettes/rs_psychic_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSGentleman[] = INCBIN_U32("graphics/trainers/front_pics/rs_gentleman_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSGentleman[] = INCBIN_U32("graphics/trainers/palettes/rs_gentleman.gbapal.lz");
+
+const u32 gTrainerFrontPic_EliteFourSidney[] = INCBIN_U32("graphics/trainers/front_pics/elite_four_sidney_front_pic.4bpp.lz");
+const u32 gTrainerPalette_EliteFourSidney[] = INCBIN_U32("graphics/trainers/palettes/elite_four_sidney.gbapal.lz");
+
+const u32 gTrainerFrontPic_EliteFourPhoebe[] = INCBIN_U32("graphics/trainers/front_pics/elite_four_phoebe_front_pic.4bpp.lz");
+const u32 gTrainerPalette_EliteFourPhoebe[] = INCBIN_U32("graphics/trainers/palettes/elite_four_phoebe.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderRoxanne[] = INCBIN_U32("graphics/trainers/front_pics/leader_roxanne_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderRoxanne[] = INCBIN_U32("graphics/trainers/palettes/leader_roxanne.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderBrawly[] = INCBIN_U32("graphics/trainers/front_pics/leader_brawly_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderBrawly[] = INCBIN_U32("graphics/trainers/palettes/leader_brawly.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderTateAndLiza[] = INCBIN_U32("graphics/trainers/front_pics/leader_tate_and_liza_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderTateAndLiza[] = INCBIN_U32("graphics/trainers/palettes/leader_tate_and_liza.gbapal.lz");
+
+const u32 gTrainerFrontPic_SchoolKidM[] = INCBIN_U32("graphics/trainers/front_pics/school_kid_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SchoolKidM[] = INCBIN_U32("graphics/trainers/palettes/school_kid_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_SchoolKidF[] = INCBIN_U32("graphics/trainers/front_pics/school_kid_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SchoolKidF[] = INCBIN_U32("graphics/trainers/palettes/school_kid_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_SrAndJr[] = INCBIN_U32("graphics/trainers/front_pics/sr_and_jr_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SrAndJr[] = INCBIN_U32("graphics/trainers/palettes/sr_and_jr.gbapal.lz");
+
+const u32 gTrainerFrontPic_PokefanM[] = INCBIN_U32("graphics/trainers/front_pics/pokefan_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PokefanM[] = INCBIN_U32("graphics/trainers/palettes/pokefan_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_PokefanF[] = INCBIN_U32("graphics/trainers/front_pics/pokefan_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PokefanF[] = INCBIN_U32("graphics/trainers/palettes/pokefan_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_ExpertM[] = INCBIN_U32("graphics/trainers/front_pics/expert_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_ExpertM[] = INCBIN_U32("graphics/trainers/palettes/expert_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_ExpertF[] = INCBIN_U32("graphics/trainers/front_pics/expert_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_ExpertF[] = INCBIN_U32("graphics/trainers/palettes/expert_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSYoungster[] = INCBIN_U32("graphics/trainers/front_pics/rs_youngster_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSYoungster[] = INCBIN_U32("graphics/trainers/palettes/rs_youngster.gbapal.lz");
+
+const u32 gTrainerFrontPic_ChampionSteven[] = INCBIN_U32("graphics/trainers/front_pics/champion_steven_front_pic.4bpp.lz");
+const u32 gTrainerPalette_ChampionSteven[] = INCBIN_U32("graphics/trainers/palettes/champion_steven.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSFisherman[] = INCBIN_U32("graphics/trainers/front_pics/rs_fisherman_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSFisherman[] = INCBIN_U32("graphics/trainers/palettes/rs_fisherman.gbapal.lz");
+
+const u32 gTrainerFrontPic_CyclingTriathleteM[] = INCBIN_U32("graphics/trainers/front_pics/cycling_triathlete_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CyclingTriathleteM[] = INCBIN_U32("graphics/trainers/palettes/cycling_triathlete_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_CyclingTriathleteF[] = INCBIN_U32("graphics/trainers/front_pics/cycling_triathlete_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CyclingTriathleteF[] = INCBIN_U32("graphics/trainers/palettes/cycling_triathlete_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_RunningTriathleteM[] = INCBIN_U32("graphics/trainers/front_pics/running_triathlete_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RunningTriathleteM[] = INCBIN_U32("graphics/trainers/palettes/running_triathlete_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_RunningTriathleteF[] = INCBIN_U32("graphics/trainers/front_pics/running_triathlete_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RunningTriathleteF[] = INCBIN_U32("graphics/trainers/palettes/running_triathlete_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_SwimmingTriathleteM[] = INCBIN_U32("graphics/trainers/front_pics/swimming_triathlete_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SwimmingTriathleteM[] = INCBIN_U32("graphics/trainers/palettes/swimming_triathlete_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_SwimmingTriathleteF[] = INCBIN_U32("graphics/trainers/front_pics/swimming_triathlete_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SwimmingTriathleteF[] = INCBIN_U32("graphics/trainers/palettes/swimming_triathlete_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_DragonTamer[] = INCBIN_U32("graphics/trainers/front_pics/dragon_tamer_front_pic.4bpp.lz");
+const u32 gTrainerPalette_DragonTamer[] = INCBIN_U32("graphics/trainers/palettes/dragon_tamer.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSBirdKeeper[] = INCBIN_U32("graphics/trainers/front_pics/rs_bird_keeper_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSBirdKeeper[] = INCBIN_U32("graphics/trainers/palettes/rs_bird_keeper.gbapal.lz");
+
+const u32 gTrainerFrontPic_NinjaBoy[] = INCBIN_U32("graphics/trainers/front_pics/ninja_boy_front_pic.4bpp.lz");
+const u32 gTrainerPalette_NinjaBoy[] = INCBIN_U32("graphics/trainers/palettes/ninja_boy.gbapal.lz");
+
+const u32 gTrainerFrontPic_BattleGirl[] = INCBIN_U32("graphics/trainers/front_pics/battle_girl_front_pic.4bpp.lz");
+const u32 gTrainerPalette_BattleGirl[] = INCBIN_U32("graphics/trainers/palettes/battle_girl.gbapal.lz");
+
+const u32 gTrainerFrontPic_ParasolLady[] = INCBIN_U32("graphics/trainers/front_pics/parasol_lady_front_pic.4bpp.lz");
+const u32 gTrainerPalette_ParasolLady[] = INCBIN_U32("graphics/trainers/palettes/parasol_lady.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSSwimmerF[] = INCBIN_U32("graphics/trainers/front_pics/rs_swimmer_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSSwimmerF[] = INCBIN_U32("graphics/trainers/palettes/rs_swimmer_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSPicnicker[] = INCBIN_U32("graphics/trainers/front_pics/rs_picnicker_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSPicnicker[] = INCBIN_U32("graphics/trainers/palettes/rs_picnicker.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSTwins[] = INCBIN_U32("graphics/trainers/front_pics/rs_twins_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSTwins[] = INCBIN_U32("graphics/trainers/palettes/rs_twins.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSSailor[] = INCBIN_U32("graphics/trainers/front_pics/rs_sailor_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSSailor[] = INCBIN_U32("graphics/trainers/palettes/rs_sailor.gbapal.lz");
+
+const u32 gTrainerFrontPic_Collector[] = INCBIN_U32("graphics/trainers/front_pics/collector_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Collector[] = INCBIN_U32("graphics/trainers/palettes/collector.gbapal.lz");
+
+const u32 gTrainerFrontPic_Wally[] = INCBIN_U32("graphics/trainers/front_pics/wally_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Wally[] = INCBIN_U32("graphics/trainers/palettes/wally.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSBrendan1[] = INCBIN_U32("graphics/trainers/front_pics/ruby_sapphire_brendan_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSBrendan1[] = INCBIN_U32("graphics/trainers/palettes/ruby_sapphire_brendan.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSMay1[] = INCBIN_U32("graphics/trainers/front_pics/ruby_sapphire_may_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSMay1[] = INCBIN_U32("graphics/trainers/palettes/ruby_sapphire_may.gbapal.lz");
+
+const u32 gTrainerFrontPic_PokemonBreederM[] = INCBIN_U32("graphics/trainers/front_pics/pokemon_breeder_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PokemonBreederM[] = INCBIN_U32("graphics/trainers/palettes/pokemon_breeder_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSPokemonBreederF[] = INCBIN_U32("graphics/trainers/front_pics/rs_pokemon_breeder_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSPokemonBreederF[] = INCBIN_U32("graphics/trainers/palettes/rs_pokemon_breeder_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSPokemonRangerM[] = INCBIN_U32("graphics/trainers/front_pics/rs_pokemon_ranger_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSPokemonRangerM[] = INCBIN_U32("graphics/trainers/palettes/rs_pokemon_ranger_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSPokemonRangerF[] = INCBIN_U32("graphics/trainers/front_pics/rs_pokemon_ranger_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSPokemonRangerF[] = INCBIN_U32("graphics/trainers/palettes/rs_pokemon_ranger_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_MagmaLeaderMaxie[] = INCBIN_U32("graphics/trainers/front_pics/magma_leader_maxie_front_pic.4bpp.lz");
+const u32 gTrainerPalette_MagmaLeaderMaxie[] = INCBIN_U32("graphics/trainers/palettes/magma_leader_maxie.gbapal.lz");
+
+const u32 gTrainerFrontPic_MagmaGruntM[] = INCBIN_U32("graphics/trainers/front_pics/magma_grunt_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_MagmaGruntM[] = INCBIN_U32("graphics/trainers/palettes/magma_grunt_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_MagmaGruntF[] = INCBIN_U32("graphics/trainers/front_pics/magma_grunt_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_MagmaGruntF[] = INCBIN_U32("graphics/trainers/palettes/magma_grunt_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSLass[] = INCBIN_U32("graphics/trainers/front_pics/rs_lass_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSLass[] = INCBIN_U32("graphics/trainers/palettes/rs_lass.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSBugCatcher[] = INCBIN_U32("graphics/trainers/front_pics/rs_bug_catcher_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSBugCatcher[] = INCBIN_U32("graphics/trainers/palettes/rs_bug_catcher.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSHiker[] = INCBIN_U32("graphics/trainers/front_pics/rs_hiker_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSHiker[] = INCBIN_U32("graphics/trainers/palettes/rs_hiker.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSYoungCouple[] = INCBIN_U32("graphics/trainers/front_pics/rs_young_couple_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSYoungCouple[] = INCBIN_U32("graphics/trainers/palettes/rs_young_couple.gbapal.lz");
+
+const u32 gTrainerFrontPic_OldCouple[] = INCBIN_U32("graphics/trainers/front_pics/old_couple_front_pic.4bpp.lz");
+const u32 gTrainerPalette_OldCouple[] = INCBIN_U32("graphics/trainers/palettes/old_couple.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSSisAndBro[] = INCBIN_U32("graphics/trainers/front_pics/rs_sis_and_bro_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSSisAndBro[] = INCBIN_U32("graphics/trainers/palettes/rs_sis_and_bro.gbapal.lz");
+
+const u32 gTrainerFrontPic_AquaAdminM[] = INCBIN_U32("graphics/trainers/front_pics/aqua_admin_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_AquaAdminM[] = INCBIN_U32("graphics/trainers/palettes/aqua_admin_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_AquaAdminF[] = INCBIN_U32("graphics/trainers/front_pics/aqua_admin_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_AquaAdminF[] = INCBIN_U32("graphics/trainers/palettes/aqua_admin_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_MagmaAdminM[] = INCBIN_U32("graphics/trainers/front_pics/magma_admin_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_MagmaAdminM[] = INCBIN_U32("graphics/trainers/palettes/magma_admin_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_MagmaAdminF[] = INCBIN_U32("graphics/trainers/front_pics/magma_admin_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_MagmaAdminF[] = INCBIN_U32("graphics/trainers/palettes/magma_admin_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderWattson[] = INCBIN_U32("graphics/trainers/front_pics/leader_wattson_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderWattson[] = INCBIN_U32("graphics/trainers/palettes/leader_wattson.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderFlannery[] = INCBIN_U32("graphics/trainers/front_pics/leader_flannery_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderFlannery[] = INCBIN_U32("graphics/trainers/palettes/leader_flannery.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderNorman[] = INCBIN_U32("graphics/trainers/front_pics/leader_norman_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderNorman[] = INCBIN_U32("graphics/trainers/palettes/leader_norman.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderWinona[] = INCBIN_U32("graphics/trainers/front_pics/leader_winona_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderWinona[] = INCBIN_U32("graphics/trainers/palettes/leader_winona.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderWallace[] = INCBIN_U32("graphics/trainers/front_pics/leader_wallace_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderWallace[] = INCBIN_U32("graphics/trainers/palettes/leader_wallace.gbapal.lz");
+
+const u32 gTrainerFrontPic_EliteFourGlacia[] = INCBIN_U32("graphics/trainers/front_pics/elite_four_glacia_front_pic.4bpp.lz");
+const u32 gTrainerPalette_EliteFourGlacia[] = INCBIN_U32("graphics/trainers/palettes/elite_four_glacia.gbapal.lz");
+
+const u32 gTrainerFrontPic_EliteFourDrake[] = INCBIN_U32("graphics/trainers/front_pics/elite_four_drake_front_pic.4bpp.lz");
+const u32 gTrainerPalette_EliteFourDrake[] = INCBIN_U32("graphics/trainers/palettes/elite_four_drake.gbapal.lz");
+
+const u32 gTrainerFrontPic_Youngster[] = INCBIN_U32("graphics/trainers/front_pics/youngster_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Youngster[] = INCBIN_U32("graphics/trainers/palettes/youngster.gbapal.lz");
+
+const u32 gTrainerFrontPic_BugCatcher[] = INCBIN_U32("graphics/trainers/front_pics/bug_catcher_front_pic.4bpp.lz");
+const u32 gTrainerPalette_BugCatcher[] = INCBIN_U32("graphics/trainers/palettes/bug_catcher.gbapal.lz");
+
+const u32 gTrainerFrontPic_Lass[] = INCBIN_U32("graphics/trainers/front_pics/lass_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Lass[] = INCBIN_U32("graphics/trainers/palettes/lass.gbapal.lz");
+
+const u32 gTrainerFrontPic_Sailor[] = INCBIN_U32("graphics/trainers/front_pics/sailor_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Sailor[] = INCBIN_U32("graphics/trainers/palettes/sailor.gbapal.lz");
+
+const u32 gTrainerFrontPic_Camper[] = INCBIN_U32("graphics/trainers/front_pics/camper_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Camper[] = INCBIN_U32("graphics/trainers/palettes/camper.gbapal.lz");
+
+const u32 gTrainerFrontPic_Picnicker[] = INCBIN_U32("graphics/trainers/front_pics/picnicker_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Picnicker[] = INCBIN_U32("graphics/trainers/palettes/picnicker.gbapal.lz");
+
+const u32 gTrainerFrontPic_PokeManiac[] = INCBIN_U32("graphics/trainers/front_pics/pokemaniac_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PokeManiac[] = INCBIN_U32("graphics/trainers/palettes/pokemaniac.gbapal.lz");
+
+const u32 gTrainerFrontPic_SuperNerd[] = INCBIN_U32("graphics/trainers/front_pics/super_nerd_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SuperNerd[] = INCBIN_U32("graphics/trainers/palettes/super_nerd.gbapal.lz");
+
+const u32 gTrainerFrontPic_Hiker[] = INCBIN_U32("graphics/trainers/front_pics/hiker_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Hiker[] = INCBIN_U32("graphics/trainers/palettes/hiker.gbapal.lz");
+
+const u32 gTrainerFrontPic_Biker[] = INCBIN_U32("graphics/trainers/front_pics/biker_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Biker[] = INCBIN_U32("graphics/trainers/palettes/biker.gbapal.lz");
+
+const u32 gTrainerFrontPic_Burglar[] = INCBIN_U32("graphics/trainers/front_pics/burglar_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Burglar[] = INCBIN_U32("graphics/trainers/palettes/burglar.gbapal.lz");
+
+const u32 gTrainerFrontPic_Engineer[] = INCBIN_U32("graphics/trainers/front_pics/engineer_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Engineer[] = INCBIN_U32("graphics/trainers/palettes/engineer.gbapal.lz");
+
+const u32 gTrainerFrontPic_Fisherman[] = INCBIN_U32("graphics/trainers/front_pics/fisherman_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Fisherman[] = INCBIN_U32("graphics/trainers/palettes/fisherman.gbapal.lz");
+
+const u32 gTrainerFrontPic_SwimmerM[] = INCBIN_U32("graphics/trainers/front_pics/swimmer_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SwimmerM[] = INCBIN_U32("graphics/trainers/palettes/swimmer_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_CueBall[] = INCBIN_U32("graphics/trainers/front_pics/cue_ball_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CueBall[] = INCBIN_U32("graphics/trainers/palettes/cue_ball.gbapal.lz");
+
+const u32 gTrainerFrontPic_Gamer[] = INCBIN_U32("graphics/trainers/front_pics/gamer_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Gamer[] = INCBIN_U32("graphics/trainers/palettes/gamer.gbapal.lz");
+
+const u32 gTrainerFrontPic_Beauty[] = INCBIN_U32("graphics/trainers/front_pics/beauty_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Beauty[] = INCBIN_U32("graphics/trainers/palettes/beauty.gbapal.lz");
+
+const u32 gTrainerFrontPic_SwimmerF[] = INCBIN_U32("graphics/trainers/front_pics/swimmer_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SwimmerF[] = INCBIN_U32("graphics/trainers/palettes/swimmer_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_PsychicM[] = INCBIN_U32("graphics/trainers/front_pics/psychic_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PsychicM[] = INCBIN_U32("graphics/trainers/palettes/psychic_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_Rocker[] = INCBIN_U32("graphics/trainers/front_pics/rocker_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Rocker[] = INCBIN_U32("graphics/trainers/palettes/rocker.gbapal.lz");
+
+const u32 gTrainerFrontPic_Juggler[] = INCBIN_U32("graphics/trainers/front_pics/juggler_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Juggler[] = INCBIN_U32("graphics/trainers/palettes/juggler.gbapal.lz");
+
+const u32 gTrainerFrontPic_Tamer[] = INCBIN_U32("graphics/trainers/front_pics/tamer_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Tamer[] = INCBIN_U32("graphics/trainers/palettes/tamer.gbapal.lz");
+
+const u32 gTrainerFrontPic_BirdKeeper[] = INCBIN_U32("graphics/trainers/front_pics/bird_keeper_front_pic.4bpp.lz");
+const u32 gTrainerPalette_BirdKeeper[] = INCBIN_U32("graphics/trainers/palettes/bird_keeper.gbapal.lz");
+
+const u32 gTrainerFrontPic_BlackBelt[] = INCBIN_U32("graphics/trainers/front_pics/black_belt_front_pic.4bpp.lz");
+const u32 gTrainerPalette_BlackBelt[] = INCBIN_U32("graphics/trainers/palettes/black_belt.gbapal.lz");
+
+const u32 gTrainerFrontPic_Rival1[] = INCBIN_U32("graphics/trainers/front_pics/rival_1_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Rival1[] = INCBIN_U32("graphics/trainers/palettes/rival_1.gbapal.lz");
+
+const u32 gTrainerFrontPic_Scientist[] = INCBIN_U32("graphics/trainers/front_pics/scientist_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Scientist[] = INCBIN_U32("graphics/trainers/palettes/scientist.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderGiovanni[] = INCBIN_U32("graphics/trainers/front_pics/leader_giovanni_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderGiovanni[] = INCBIN_U32("graphics/trainers/palettes/leader_giovanni.gbapal.lz");
+
+const u32 gTrainerFrontPic_RocketGruntM[] = INCBIN_U32("graphics/trainers/front_pics/rocket_grunt_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RocketGruntM[] = INCBIN_U32("graphics/trainers/palettes/rocket_grunt_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_CooltrainerM[] = INCBIN_U32("graphics/trainers/front_pics/cool_trainer_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CooltrainerM[] = INCBIN_U32("graphics/trainers/palettes/cool_trainer_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_CooltrainerF[] = INCBIN_U32("graphics/trainers/front_pics/cool_trainer_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CooltrainerF[] = INCBIN_U32("graphics/trainers/palettes/cool_trainer_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_EliteFourLorelei[] = INCBIN_U32("graphics/trainers/front_pics/elite_four_lorelei_front_pic.4bpp.lz");
+const u32 gTrainerPalette_EliteFourLorelei[] = INCBIN_U32("graphics/trainers/palettes/elite_four_lorelei.gbapal.lz");
+
+const u32 gTrainerFrontPic_EliteFourBruno[] = INCBIN_U32("graphics/trainers/front_pics/elite_four_bruno_front_pic.4bpp.lz");
+const u32 gTrainerPalette_EliteFourBruno[] = INCBIN_U32("graphics/trainers/palettes/elite_four_bruno.gbapal.lz");
+
+const u32 gTrainerFrontPic_EliteFourAgatha[] = INCBIN_U32("graphics/trainers/front_pics/elite_four_agatha_front_pic.4bpp.lz");
+const u32 gTrainerPalette_EliteFourAgatha[] = INCBIN_U32("graphics/trainers/palettes/elite_four_agatha.gbapal.lz");
+
+const u32 gTrainerFrontPic_EliteFourLance[] = INCBIN_U32("graphics/trainers/front_pics/elite_four_lance_front_pic.4bpp.lz");
+const u32 gTrainerPalette_EliteFourLance[] = INCBIN_U32("graphics/trainers/palettes/elite_four_lance.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderBrock[] = INCBIN_U32("graphics/trainers/front_pics/leader_brock_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderBrock[] = INCBIN_U32("graphics/trainers/palettes/leader_brock.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderMisty[] = INCBIN_U32("graphics/trainers/front_pics/leader_misty_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderMisty[] = INCBIN_U32("graphics/trainers/palettes/leader_misty.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderLtSurge[] = INCBIN_U32("graphics/trainers/front_pics/leader_lt_surge_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderLtSurge[] = INCBIN_U32("graphics/trainers/palettes/leader_lt_surge.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderErika[] = INCBIN_U32("graphics/trainers/front_pics/leader_erika_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderErika[] = INCBIN_U32("graphics/trainers/palettes/leader_erika.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderKoga[] = INCBIN_U32("graphics/trainers/front_pics/leader_koga_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderKoga[] = INCBIN_U32("graphics/trainers/palettes/leader_koga.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderBlaine[] = INCBIN_U32("graphics/trainers/front_pics/leader_blaine_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderBlaine[] = INCBIN_U32("graphics/trainers/palettes/leader_blaine.gbapal.lz");
+
+const u32 gTrainerFrontPic_LeaderSabrina[] = INCBIN_U32("graphics/trainers/front_pics/leader_sabrina_front_pic.4bpp.lz");
+const u32 gTrainerPalette_LeaderSabrina[] = INCBIN_U32("graphics/trainers/palettes/leader_sabrina.gbapal.lz");
+
+const u32 gTrainerFrontPic_Gentleman[] = INCBIN_U32("graphics/trainers/front_pics/gentleman_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Gentleman[] = INCBIN_U32("graphics/trainers/palettes/gentleman.gbapal.lz");
+
+const u32 gTrainerFrontPic_Rival2[] = INCBIN_U32("graphics/trainers/front_pics/rival_2_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Rival2[] = INCBIN_U32("graphics/trainers/palettes/rival_2.gbapal.lz");
+
+const u32 gTrainerFrontPic_ChampionRival[] = INCBIN_U32("graphics/trainers/front_pics/champion_rival_front_pic.4bpp.lz");
+const u32 gTrainerPalette_ChampionRival[] = INCBIN_U32("graphics/trainers/palettes/champion_rival.gbapal.lz");
+
+const u32 gTrainerFrontPic_Channeler[] = INCBIN_U32("graphics/trainers/front_pics/channeler_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Channeler[] = INCBIN_U32("graphics/trainers/palettes/channeler.gbapal.lz");
+
+const u32 gTrainerFrontPic_Twins[] = INCBIN_U32("graphics/trainers/front_pics/twins_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Twins[] = INCBIN_U32("graphics/trainers/palettes/twins.gbapal.lz");
+
+const u32 gTrainerFrontPic_CoolCouple[] = INCBIN_U32("graphics/trainers/front_pics/cool_couple_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CoolCouple[] = INCBIN_U32("graphics/trainers/palettes/cool_couple.gbapal.lz");
+
+const u32 gTrainerFrontPic_YoungCouple[] = INCBIN_U32("graphics/trainers/front_pics/young_couple_front_pic.4bpp.lz");
+const u32 gTrainerPalette_YoungCouple[] = INCBIN_U32("graphics/trainers/palettes/young_couple.gbapal.lz");
+
+const u32 gTrainerFrontPic_CrushKin[] = INCBIN_U32("graphics/trainers/front_pics/crush_kin_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CrushKin[] = INCBIN_U32("graphics/trainers/palettes/crush_kin.gbapal.lz");
+
+const u32 gTrainerFrontPic_SisAndBro[] = INCBIN_U32("graphics/trainers/front_pics/sis_and_bro_front_pic.4bpp.lz");
+const u32 gTrainerPalette_SisAndBro[] = INCBIN_U32("graphics/trainers/palettes/sis_and_bro.gbapal.lz");
+
+const u32 gTrainerFrontPic_ProfessorOak[] = INCBIN_U32("graphics/trainers/front_pics/professor_oak_front_pic.4bpp.lz");
+const u32 gTrainerPalette_ProfessorOak[] = INCBIN_U32("graphics/trainers/palettes/professor_oak.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSBrendan2[] = INCBIN_U32("graphics/trainers/front_pics/ruby_sapphire_brendan_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSBrendan2[] = INCBIN_U32("graphics/trainers/palettes/ruby_sapphire_brendan.gbapal.lz");
+
+const u32 gTrainerFrontPic_RSMay2[] = INCBIN_U32("graphics/trainers/front_pics/ruby_sapphire_may_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RSMay2[] = INCBIN_U32("graphics/trainers/palettes/ruby_sapphire_may.gbapal.lz");
+
+const u32 gTrainerFrontPic_Red[] = INCBIN_U32("graphics/trainers/front_pics/red_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Red[] = INCBIN_U32("graphics/trainers/palettes/red.gbapal.lz");
+
+const u32 gTrainerFrontPic_Leaf[] = INCBIN_U32("graphics/trainers/front_pics/leaf_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Leaf[] = INCBIN_U32("graphics/trainers/palettes/leaf.gbapal.lz");
+
+const u32 gTrainerFrontPic_RocketGruntF[] = INCBIN_U32("graphics/trainers/front_pics/rocket_grunt_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RocketGruntF[] = INCBIN_U32("graphics/trainers/palettes/rocket_grunt_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_PsychicF[] = INCBIN_U32("graphics/trainers/front_pics/psychic_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PsychicF[] = INCBIN_U32("graphics/trainers/palettes/psychic_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_CrushGirl[] = INCBIN_U32("graphics/trainers/front_pics/crush_girl_front_pic.4bpp.lz");
+const u32 gTrainerPalette_CrushGirl[] = INCBIN_U32("graphics/trainers/palettes/crush_girl.gbapal.lz");
+
+const u32 gTrainerFrontPic_TuberF[] = INCBIN_U32("graphics/trainers/front_pics/tuber_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_TuberF[] = INCBIN_U32("graphics/trainers/palettes/tuber_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_PokemonBreederF[] = INCBIN_U32("graphics/trainers/front_pics/pokemon_breeder_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PokemonBreederF[] = INCBIN_U32("graphics/trainers/palettes/pokemon_breeder_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_PokemonRangerM[] = INCBIN_U32("graphics/trainers/front_pics/pokemon_ranger_m_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PokemonRangerM[] = INCBIN_U32("graphics/trainers/palettes/pokemon_ranger_m.gbapal.lz");
+
+const u32 gTrainerFrontPic_PokemonRangerF[] = INCBIN_U32("graphics/trainers/front_pics/pokemon_ranger_f_front_pic.4bpp.lz");
+const u32 gTrainerPalette_PokemonRangerF[] = INCBIN_U32("graphics/trainers/palettes/pokemon_ranger_f.gbapal.lz");
+
+const u32 gTrainerFrontPic_AromaLady[] = INCBIN_U32("graphics/trainers/front_pics/aroma_lady_front_pic.4bpp.lz");
+const u32 gTrainerPalette_AromaLady[] = INCBIN_U32("graphics/trainers/palettes/aroma_lady.gbapal.lz");
+
+const u32 gTrainerFrontPic_RuinManiac[] = INCBIN_U32("graphics/trainers/front_pics/ruin_maniac_front_pic.4bpp.lz");
+const u32 gTrainerPalette_RuinManiac[] = INCBIN_U32("graphics/trainers/palettes/ruin_maniac.gbapal.lz");
+
+const u32 gTrainerFrontPic_Lady[] = INCBIN_U32("graphics/trainers/front_pics/lady_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Lady[] = INCBIN_U32("graphics/trainers/palettes/lady.gbapal.lz");
+
+const u32 gTrainerFrontPic_Painter[] = INCBIN_U32("graphics/trainers/front_pics/painter_front_pic.4bpp.lz");
+const u32 gTrainerPalette_Painter[] = INCBIN_U32("graphics/trainers/palettes/painter.gbapal.lz");
+
+const u8 gTrainerBackPic_Red[] = INCBIN_U8("graphics/trainers/back_pics/red_back_pic.4bpp");
+const u8 gTrainerBackPic_Leaf[] = INCBIN_U8("graphics/trainers/back_pics/leaf_back_pic.4bpp");
+const u8 gTrainerBackPic_Pokedude[] = INCBIN_U8("graphics/trainers/back_pics/pokedude_back_pic.4bpp");
+const u8 gTrainerBackPic_OldMan[] = INCBIN_U8("graphics/trainers/back_pics/old_man_back_pic.4bpp");
+
+const u8 gTrainerBackPic_RSBrendan[] = INCBIN_U8("graphics/trainers/back_pics/ruby_sapphire_brendan_back_pic.4bpp");
+const u8 gTrainerBackPic_RSMay[] = INCBIN_U8("graphics/trainers/back_pics/ruby_sapphire_may_back_pic.4bpp");
+
+const u32 gTrainerPalette_RedBackPic[] = INCBIN_U32("graphics/trainers/palettes/leaf_back_pic.gbapal.lz");
+const u32 gTrainerPalette_LeafBackPic[] = INCBIN_U32("graphics/trainers/palettes/red_back_pic.gbapal.lz");
+const u32 gTrainerPalette_PokedudeBackPic[] = INCBIN_U32("graphics/trainers/palettes/pokedude_back_pic.gbapal.lz");
+const u32 gTrainerPalette_OldManBackPic[] = INCBIN_U32("graphics/trainers/palettes/old_man_back_pic.gbapal.lz");
diff --git a/src/data/trainers.h b/src/data/trainers.h
index 4cb0b8443..0c3a3f1ee 100644
--- a/src/data/trainers.h
+++ b/src/data/trainers.h
@@ -22,7 +22,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1A0}
},
[TRAINER_TEAM_AQUA_1] = {
@@ -34,7 +34,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1A8}
},
[TRAINER_TEAM_AQUA_2] = {
@@ -46,7 +46,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1B0}
},
[TRAINER_AROMA_LADY_1] = {
@@ -58,7 +58,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1B8}
},
[TRAINER_RUIN_MANIAC_1] = {
@@ -70,7 +70,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1C0}
},
[TRAINER_INTERVIEWER_1] = {
@@ -82,7 +82,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1C8}
},
[TRAINER_TUBER_1] = {
@@ -94,7 +94,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1D0}
},
[TRAINER_TUBER_2] = {
@@ -106,7 +106,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1D8}
},
[TRAINER_COOLTRAINER_1] = {
@@ -118,7 +118,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1E0}
},
[TRAINER_COOLTRAINER_2] = {
@@ -130,7 +130,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1E8}
},
[TRAINER_HEX_MANIAC_1] = {
@@ -142,7 +142,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1F0}
},
[TRAINER_LADY_1] = {
@@ -154,7 +154,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A1F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A1F8}
},
[TRAINER_BEAUTY_1] = {
@@ -166,7 +166,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A200),
.party = {.NoItemDefaultMoves = sTrainerMons_823A200}
},
[TRAINER_RICH_BOY_1] = {
@@ -178,7 +178,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A208),
.party = {.NoItemDefaultMoves = sTrainerMons_823A208}
},
[TRAINER_POKEMANIAC_1] = {
@@ -190,7 +190,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A210),
.party = {.NoItemDefaultMoves = sTrainerMons_823A210}
},
[TRAINER_SWIMMER_MALE_1] = {
@@ -202,7 +202,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A218),
.party = {.NoItemDefaultMoves = sTrainerMons_823A218}
},
[TRAINER_BLACK_BELT_1] = {
@@ -214,7 +214,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A220),
.party = {.NoItemDefaultMoves = sTrainerMons_823A220}
},
[TRAINER_GUITARIST_1] = {
@@ -226,7 +226,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A228),
.party = {.NoItemDefaultMoves = sTrainerMons_823A228}
},
[TRAINER_KINDLER_1] = {
@@ -238,7 +238,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A230),
.party = {.NoItemDefaultMoves = sTrainerMons_823A230}
},
[TRAINER_CAMPER_1] = {
@@ -250,7 +250,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A238),
.party = {.NoItemDefaultMoves = sTrainerMons_823A238}
},
[TRAINER_BUG_MANIAC_1] = {
@@ -262,7 +262,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A240),
.party = {.NoItemDefaultMoves = sTrainerMons_823A240}
},
[TRAINER_PSYCHIC_1] = {
@@ -274,7 +274,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A248),
.party = {.NoItemDefaultMoves = sTrainerMons_823A248}
},
[TRAINER_PSYCHIC_2] = {
@@ -286,7 +286,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A250),
.party = {.NoItemDefaultMoves = sTrainerMons_823A250}
},
[TRAINER_GENTLEMAN_1] = {
@@ -298,7 +298,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A258),
.party = {.NoItemDefaultMoves = sTrainerMons_823A258}
},
[TRAINER_ELITE_FOUR_SIDNEY] = {
@@ -310,7 +310,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A260),
.party = {.NoItemDefaultMoves = sTrainerMons_823A260}
},
[TRAINER_ELITE_FOUR_PHOEBE] = {
@@ -322,7 +322,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A268),
.party = {.NoItemDefaultMoves = sTrainerMons_823A268}
},
[TRAINER_LEADER_ROXANNE] = {
@@ -334,7 +334,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A270),
.party = {.NoItemDefaultMoves = sTrainerMons_823A270}
},
[TRAINER_LEADER_BRAWLY] = {
@@ -346,7 +346,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A278),
.party = {.NoItemDefaultMoves = sTrainerMons_823A278}
},
[TRAINER_LEADER_TATE_LIZA] = {
@@ -358,7 +358,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A280),
.party = {.NoItemDefaultMoves = sTrainerMons_823A280}
},
[TRAINER_SCHOOL_KID_1] = {
@@ -370,7 +370,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A288),
.party = {.NoItemDefaultMoves = sTrainerMons_823A288}
},
[TRAINER_SCHOOL_KID_2] = {
@@ -382,7 +382,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A290),
.party = {.NoItemDefaultMoves = sTrainerMons_823A290}
},
[TRAINER_SR_AND_JR_1] = {
@@ -394,7 +394,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A298),
.party = {.NoItemDefaultMoves = sTrainerMons_823A298}
},
[TRAINER_POKEFAN_1] = {
@@ -406,7 +406,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2A0}
},
[TRAINER_POKEFAN_2] = {
@@ -418,7 +418,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2A8}
},
[TRAINER_EXPERT_1] = {
@@ -430,7 +430,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2B0}
},
[TRAINER_EXPERT_2] = {
@@ -442,7 +442,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2B8}
},
[TRAINER_YOUNGSTER_1] = {
@@ -454,7 +454,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2C0}
},
[TRAINER_CHAMPION_1] = {
@@ -466,7 +466,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2C8}
},
[TRAINER_FISHERMAN_1] = {
@@ -478,7 +478,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2D0}
},
[TRAINER_TRIATHLETE_1] = {
@@ -490,7 +490,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2D8}
},
[TRAINER_TRIATHLETE_2] = {
@@ -502,7 +502,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2E0}
},
[TRAINER_TRIATHLETE_3] = {
@@ -514,7 +514,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2E8}
},
[TRAINER_TRIATHLETE_4] = {
@@ -526,7 +526,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2F0}
},
[TRAINER_TRIATHLETE_5] = {
@@ -538,7 +538,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A2F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A2F8}
},
[TRAINER_TRIATHLETE_6] = {
@@ -550,7 +550,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A300),
.party = {.NoItemDefaultMoves = sTrainerMons_823A300}
},
[TRAINER_DRAGON_TAMER_1] = {
@@ -562,7 +562,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A308),
.party = {.NoItemDefaultMoves = sTrainerMons_823A308}
},
[TRAINER_BIRD_KEEPER_1] = {
@@ -574,7 +574,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A310),
.party = {.NoItemDefaultMoves = sTrainerMons_823A310}
},
[TRAINER_NINJA_BOY_1] = {
@@ -586,7 +586,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A318),
.party = {.NoItemDefaultMoves = sTrainerMons_823A318}
},
[TRAINER_BATTLE_GIRL_1] = {
@@ -598,7 +598,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A320),
.party = {.NoItemDefaultMoves = sTrainerMons_823A320}
},
[TRAINER_PARASOL_LADY_1] = {
@@ -610,7 +610,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A328),
.party = {.NoItemDefaultMoves = sTrainerMons_823A328}
},
[TRAINER_SWIMMER_FEMALE_1] = {
@@ -622,7 +622,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A330),
.party = {.NoItemDefaultMoves = sTrainerMons_823A330}
},
[TRAINER_PICNICKER_1] = {
@@ -634,7 +634,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A338),
.party = {.NoItemDefaultMoves = sTrainerMons_823A338}
},
[TRAINER_TWINS_1] = {
@@ -646,7 +646,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A340),
.party = {.NoItemDefaultMoves = sTrainerMons_823A340}
},
[TRAINER_SAILOR_1] = {
@@ -658,7 +658,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A348),
.party = {.NoItemDefaultMoves = sTrainerMons_823A348}
},
[TRAINER_BOARDER_1] = {
@@ -670,7 +670,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A350),
.party = {.NoItemDefaultMoves = sTrainerMons_823A350}
},
[TRAINER_BOARDER_2] = {
@@ -682,7 +682,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A358),
.party = {.NoItemDefaultMoves = sTrainerMons_823A358}
},
[TRAINER_COLLECTOR_1] = {
@@ -694,7 +694,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A360),
.party = {.NoItemDefaultMoves = sTrainerMons_823A360}
},
[TRAINER_PKMN_TRAINER_2] = {
@@ -706,7 +706,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A368),
.party = {.NoItemDefaultMoves = sTrainerMons_823A368}
},
[TRAINER_PKMN_TRAINER_3] = {
@@ -718,7 +718,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A370),
.party = {.NoItemDefaultMoves = sTrainerMons_823A370}
},
[TRAINER_PKMN_TRAINER_4] = {
@@ -730,7 +730,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A378),
.party = {.NoItemDefaultMoves = sTrainerMons_823A378}
},
[TRAINER_PKMN_TRAINER_5] = {
@@ -742,7 +742,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A380),
.party = {.NoItemDefaultMoves = sTrainerMons_823A380}
},
[TRAINER_PKMN_TRAINER_6] = {
@@ -754,7 +754,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A388),
.party = {.NoItemDefaultMoves = sTrainerMons_823A388}
},
[TRAINER_PKMN_TRAINER_7] = {
@@ -766,7 +766,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A390),
.party = {.NoItemDefaultMoves = sTrainerMons_823A390}
},
[TRAINER_PKMN_TRAINER_8] = {
@@ -778,7 +778,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A398),
.party = {.NoItemDefaultMoves = sTrainerMons_823A398}
},
[TRAINER_PKMN_BREEDER_1] = {
@@ -790,7 +790,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3A0}
},
[TRAINER_PKMN_BREEDER_2] = {
@@ -802,7 +802,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3A8}
},
[TRAINER_PKMN_RANGER_1] = {
@@ -814,7 +814,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3B0}
},
[TRAINER_PKMN_RANGER_2] = {
@@ -826,7 +826,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3B8}
},
[TRAINER_MAGMA_LEADER_1] = {
@@ -838,7 +838,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3C0}
},
[TRAINER_TEAM_MAGMA_1] = {
@@ -850,7 +850,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3C8}
},
[TRAINER_TEAM_MAGMA_2] = {
@@ -862,7 +862,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3D0}
},
[TRAINER_LASS_1] = {
@@ -874,7 +874,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3D8}
},
[TRAINER_BUG_CATCHER_1] = {
@@ -886,7 +886,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3E0}
},
[TRAINER_HIKER_1] = {
@@ -898,7 +898,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A3E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3E8}
},
[TRAINER_YOUNG_COUPLE_1] = {
@@ -910,7 +910,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A3F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A3F0}
},
[TRAINER_OLD_COUPLE_1] = {
@@ -922,7 +922,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A400),
.party = {.NoItemDefaultMoves = sTrainerMons_823A400}
},
[TRAINER_SIS_AND_BRO_1] = {
@@ -934,7 +934,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A408),
.party = {.NoItemDefaultMoves = sTrainerMons_823A408}
},
[TRAINER_AQUA_ADMIN_MATT] = {
@@ -946,7 +946,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A410),
.party = {.NoItemDefaultMoves = sTrainerMons_823A410}
},
[TRAINER_AQUA_ADMIN_SHELLY] = {
@@ -958,7 +958,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A418),
.party = {.NoItemDefaultMoves = sTrainerMons_823A418}
},
[TRAINER_MAGMA_ADMIN_TABITHA] = {
@@ -970,7 +970,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A420),
.party = {.NoItemDefaultMoves = sTrainerMons_823A420}
},
[TRAINER_MAGMA_ADMIN_COURTNEY] = {
@@ -982,7 +982,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A428),
.party = {.NoItemDefaultMoves = sTrainerMons_823A428}
},
[TRAINER_LEADER_WATTSON] = {
@@ -994,7 +994,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A430),
.party = {.NoItemDefaultMoves = sTrainerMons_823A430}
},
[TRAINER_LEADER_FLANNERY] = {
@@ -1006,7 +1006,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A438),
.party = {.NoItemDefaultMoves = sTrainerMons_823A438}
},
[TRAINER_LEADER_NORMAN] = {
@@ -1018,7 +1018,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A440),
.party = {.NoItemDefaultMoves = sTrainerMons_823A440}
},
[TRAINER_LEADER_WINONA] = {
@@ -1030,7 +1030,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A448),
.party = {.NoItemDefaultMoves = sTrainerMons_823A448}
},
[TRAINER_LEADER_WALLACE] = {
@@ -1042,7 +1042,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A450),
.party = {.NoItemDefaultMoves = sTrainerMons_823A450}
},
[TRAINER_ELITE_FOUR_GLACIA] = {
@@ -1054,7 +1054,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A458),
.party = {.NoItemDefaultMoves = sTrainerMons_823A458}
},
[TRAINER_ELITE_FOUR_DRAKE] = {
@@ -1066,7 +1066,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A460),
.party = {.NoItemDefaultMoves = sTrainerMons_823A460}
},
[TRAINER_YOUNGSTER_BEN] = {
@@ -1078,7 +1078,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A468),
.party = {.NoItemDefaultMoves = sTrainerMons_823A468}
},
[TRAINER_YOUNGSTER_CALVIN] = {
@@ -1090,7 +1090,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A478),
.party = {.NoItemDefaultMoves = sTrainerMons_823A478}
},
[TRAINER_YOUNGSTER_JOSH] = {
@@ -1102,7 +1102,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A480),
.party = {.NoItemDefaultMoves = sTrainerMons_823A480}
},
[TRAINER_YOUNGSTER_TIMMY] = {
@@ -1114,7 +1114,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A498),
.party = {.NoItemDefaultMoves = sTrainerMons_823A498}
},
[TRAINER_YOUNGSTER_JOEY] = {
@@ -1126,7 +1126,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A4A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A4A8}
},
[TRAINER_YOUNGSTER_DAN] = {
@@ -1138,7 +1138,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A4B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A4B8}
},
[TRAINER_YOUNGSTER_CHAD] = {
@@ -1150,7 +1150,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A4C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A4C0}
},
[TRAINER_YOUNGSTER_TYLER] = {
@@ -1162,7 +1162,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A4D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A4D0}
},
[TRAINER_YOUNGSTER_EDDIE] = {
@@ -1174,7 +1174,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A4D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A4D8}
},
[TRAINER_YOUNGSTER_DILLON] = {
@@ -1186,7 +1186,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A4E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A4E0}
},
[TRAINER_YOUNGSTER_YASU] = {
@@ -1198,7 +1198,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A4F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A4F0}
},
[TRAINER_YOUNGSTER_DAVE] = {
@@ -1210,7 +1210,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A508),
.party = {.NoItemDefaultMoves = sTrainerMons_823A508}
},
[TRAINER_YOUNGSTER_BEN_2] = {
@@ -1222,7 +1222,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A518),
.party = {.NoItemDefaultMoves = sTrainerMons_823A518}
},
[TRAINER_BUG_CATCHER_RICK] = {
@@ -1234,7 +1234,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A528),
.party = {.NoItemDefaultMoves = sTrainerMons_823A528}
},
[TRAINER_BUG_CATCHER_DOUG] = {
@@ -1246,7 +1246,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A538),
.party = {.NoItemDefaultMoves = sTrainerMons_823A538}
},
[TRAINER_BUG_CATCHER_SAMMY] = {
@@ -1258,7 +1258,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A550),
.party = {.NoItemDefaultMoves = sTrainerMons_823A550}
},
[TRAINER_BUG_CATCHER_COLTON] = {
@@ -1270,7 +1270,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A558),
.party = {.NoItemDefaultMoves = sTrainerMons_823A558}
},
[TRAINER_BUG_CATCHER_GREG] = {
@@ -1282,7 +1282,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823A570),
.party = {.NoItemDefaultMoves = sTrainerMons_823A570}
},
[TRAINER_BUG_CATCHER_JAMES] = {
@@ -1294,7 +1294,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A590),
.party = {.NoItemDefaultMoves = sTrainerMons_823A590}
},
[TRAINER_BUG_CATCHER_KENT] = {
@@ -1306,7 +1306,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A5A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A5A0}
},
[TRAINER_BUG_CATCHER_ROBBY] = {
@@ -1318,7 +1318,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A5B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A5B0}
},
[TRAINER_BUG_CATCHER_CALE] = {
@@ -1330,7 +1330,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823A5C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A5C8}
},
[TRAINER_BUG_CATCHER_KEIGO] = {
@@ -1342,7 +1342,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A5E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A5E8}
},
[TRAINER_BUG_CATCHER_ELIJAH] = {
@@ -1354,7 +1354,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A600),
.party = {.NoItemDefaultMoves = sTrainerMons_823A600}
},
[TRAINER_BUG_CATCHER_2] = {
@@ -1366,7 +1366,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A608),
.party = {.NoItemDefaultMoves = sTrainerMons_823A608}
},
[TRAINER_BUG_CATCHER_BRENT] = {
@@ -1378,7 +1378,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A620),
.party = {.NoItemDefaultMoves = sTrainerMons_823A620}
},
[TRAINER_BUG_CATCHER_CONNER] = {
@@ -1390,7 +1390,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A630),
.party = {.NoItemDefaultMoves = sTrainerMons_823A630}
},
[TRAINER_LASS_JANICE] = {
@@ -1402,7 +1402,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A648),
.party = {.NoItemDefaultMoves = sTrainerMons_823A648}
},
[TRAINER_LASS_SALLY] = {
@@ -1414,7 +1414,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A658),
.party = {.NoItemDefaultMoves = sTrainerMons_823A658}
},
[TRAINER_LASS_ROBIN] = {
@@ -1426,7 +1426,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A668),
.party = {.NoItemDefaultMoves = sTrainerMons_823A668}
},
[TRAINER_LASS_CRISSY] = {
@@ -1438,7 +1438,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A670),
.party = {.NoItemDefaultMoves = sTrainerMons_823A670}
},
[TRAINER_LASS_MIRIAM] = {
@@ -1450,7 +1450,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A688),
.party = {.NoItemDefaultMoves = sTrainerMons_823A688}
},
[TRAINER_LASS_IRIS] = {
@@ -1462,7 +1462,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A698),
.party = {.NoItemDefaultMoves = sTrainerMons_823A698}
},
[TRAINER_LASS_RELI] = {
@@ -1474,7 +1474,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A6A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A6A0}
},
[TRAINER_LASS_ALI] = {
@@ -1486,7 +1486,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A6B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A6B0}
},
[TRAINER_LASS_2] = {
@@ -1498,7 +1498,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A6C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A6C8}
},
[TRAINER_LASS_HALEY] = {
@@ -1510,7 +1510,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A6D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A6D8}
},
[TRAINER_LASS_ANN] = {
@@ -1522,7 +1522,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A6F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A6F0}
},
[TRAINER_LASS_DAWN] = {
@@ -1534,7 +1534,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A700),
.party = {.NoItemDefaultMoves = sTrainerMons_823A700}
},
[TRAINER_LASS_PAIGE] = {
@@ -1546,7 +1546,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A710),
.party = {.NoItemDefaultMoves = sTrainerMons_823A710}
},
[TRAINER_LASS_ANDREA] = {
@@ -1558,7 +1558,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A720),
.party = {.NoItemDefaultMoves = sTrainerMons_823A720}
},
[TRAINER_LASS_MEGAN] = {
@@ -1570,7 +1570,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823A738),
.party = {.NoItemDefaultMoves = sTrainerMons_823A738}
},
[TRAINER_LASS_JULIA] = {
@@ -1582,7 +1582,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A760),
.party = {.NoItemDefaultMoves = sTrainerMons_823A760}
},
[TRAINER_LASS_KAY] = {
@@ -1594,7 +1594,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A770),
.party = {.NoItemDefaultMoves = sTrainerMons_823A770}
},
[TRAINER_LASS_LISA] = {
@@ -1606,7 +1606,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A780),
.party = {.NoItemDefaultMoves = sTrainerMons_823A780}
},
[TRAINER_SAILOR_EDMOND] = {
@@ -1618,7 +1618,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A790),
.party = {.NoItemDefaultMoves = sTrainerMons_823A790}
},
[TRAINER_SAILOR_TREVOR] = {
@@ -1630,7 +1630,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A7A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A7A0}
},
[TRAINER_SAILOR_LEONARD] = {
@@ -1642,7 +1642,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A7B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A7B0}
},
[TRAINER_SAILOR_DUNCAN] = {
@@ -1654,7 +1654,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A7B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A7B8}
},
[TRAINER_SAILOR_HUEY] = {
@@ -1666,7 +1666,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A7D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A7D0}
},
[TRAINER_SAILOR_DYLAN] = {
@@ -1678,7 +1678,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A7E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A7E0}
},
[TRAINER_SAILOR_PHILLIP] = {
@@ -1690,7 +1690,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A7F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A7F8}
},
[TRAINER_SAILOR_DWAYNE] = {
@@ -1702,7 +1702,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A800),
.party = {.NoItemDefaultMoves = sTrainerMons_823A800}
},
[TRAINER_CAMPER_LIAM] = {
@@ -1714,7 +1714,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A810),
.party = {.NoItemCustomMoves = sTrainerMons_823A810}
},
[TRAINER_CAMPER_SHANE] = {
@@ -1726,7 +1726,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A830),
.party = {.NoItemDefaultMoves = sTrainerMons_823A830}
},
[TRAINER_CAMPER_ETHAN] = {
@@ -1738,7 +1738,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A840),
.party = {.NoItemDefaultMoves = sTrainerMons_823A840}
},
[TRAINER_CAMPER_RICKY] = {
@@ -1750,7 +1750,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A848),
.party = {.NoItemDefaultMoves = sTrainerMons_823A848}
},
[TRAINER_CAMPER_JEFF] = {
@@ -1762,7 +1762,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A850),
.party = {.NoItemDefaultMoves = sTrainerMons_823A850}
},
[TRAINER_CAMPER_2] = {
@@ -1774,7 +1774,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A860),
.party = {.NoItemDefaultMoves = sTrainerMons_823A860}
},
[TRAINER_CAMPER_CHRIS] = {
@@ -1786,7 +1786,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A868),
.party = {.NoItemDefaultMoves = sTrainerMons_823A868}
},
[TRAINER_CAMPER_DREW] = {
@@ -1798,7 +1798,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823A878),
.party = {.NoItemDefaultMoves = sTrainerMons_823A878}
},
[TRAINER_PICNICKER_DIANA] = {
@@ -1810,7 +1810,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A898),
.party = {.NoItemDefaultMoves = sTrainerMons_823A898}
},
[TRAINER_PICNICKER_NANCY] = {
@@ -1822,7 +1822,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A8A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A8A0}
},
[TRAINER_PICNICKER_ISABELLE] = {
@@ -1834,7 +1834,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A8B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A8B0}
},
[TRAINER_PICNICKER_KELSEY] = {
@@ -1846,7 +1846,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A8C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A8C8}
},
[TRAINER_PICNICKER_ALICIA] = {
@@ -1858,7 +1858,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823A8D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A8D8}
},
[TRAINER_PICNICKER_CAITLIN] = {
@@ -1870,7 +1870,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A8F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A8F8}
},
[TRAINER_PICNICKER_HEIDI] = {
@@ -1882,7 +1882,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A900),
.party = {.NoItemDefaultMoves = sTrainerMons_823A900}
},
[TRAINER_PICNICKER_CAROL] = {
@@ -1894,7 +1894,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A910),
.party = {.NoItemDefaultMoves = sTrainerMons_823A910}
},
[TRAINER_PICNICKER_SOFIA] = {
@@ -1906,7 +1906,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A920),
.party = {.NoItemDefaultMoves = sTrainerMons_823A920}
},
[TRAINER_PICNICKER_MARTHA] = {
@@ -1918,7 +1918,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A938),
.party = {.NoItemDefaultMoves = sTrainerMons_823A938}
},
[TRAINER_PICNICKER_TINA] = {
@@ -1930,7 +1930,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A948),
.party = {.NoItemDefaultMoves = sTrainerMons_823A948}
},
[TRAINER_PICNICKER_HANNAH] = {
@@ -1942,7 +1942,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823A958),
.party = {.NoItemDefaultMoves = sTrainerMons_823A958}
},
[TRAINER_POKEMANIAC_MARK] = {
@@ -1954,7 +1954,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A980),
.party = {.NoItemDefaultMoves = sTrainerMons_823A980}
},
[TRAINER_POKEMANIAC_HERMAN] = {
@@ -1966,7 +1966,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A990),
.party = {.NoItemDefaultMoves = sTrainerMons_823A990}
},
[TRAINER_POKEMANIAC_COOPER] = {
@@ -1978,7 +1978,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A9A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A9A0}
},
[TRAINER_POKEMANIAC_STEVE] = {
@@ -1990,7 +1990,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A9B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A9B8}
},
[TRAINER_POKEMANIAC_WINSTON] = {
@@ -2002,7 +2002,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823A9C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A9C8}
},
[TRAINER_POKEMANIAC_DAWSON] = {
@@ -2014,7 +2014,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823A9D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823A9D0}
},
[TRAINER_POKEMANIAC_ASHTON] = {
@@ -2026,7 +2026,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A9E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A9E8}
},
[TRAINER_SUPER_NERD_JOVAN] = {
@@ -2038,7 +2038,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823A9F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823A9F8}
},
[TRAINER_SUPER_NERD_MIGUEL] = {
@@ -2050,7 +2050,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AA08),
.party = {.NoItemDefaultMoves = sTrainerMons_823AA08}
},
[TRAINER_SUPER_NERD_AIDAN] = {
@@ -2062,7 +2062,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823AA20),
.party = {.NoItemCustomMoves = sTrainerMons_823AA20}
},
[TRAINER_SUPER_NERD_GLENN] = {
@@ -2074,7 +2074,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AA60),
.party = {.NoItemDefaultMoves = sTrainerMons_823AA60}
},
[TRAINER_SUPER_NERD_LESLIE] = {
@@ -2086,7 +2086,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AA78),
.party = {.NoItemCustomMoves = sTrainerMons_823AA78}
},
[TRAINER_SUPER_NERD_1] = {
@@ -2098,7 +2098,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AA88),
.party = {.NoItemDefaultMoves = sTrainerMons_823AA88}
},
[TRAINER_SUPER_NERD_2] = {
@@ -2110,7 +2110,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823AAA0),
.party = {.NoItemDefaultMoves = sTrainerMons_823AAA0}
},
[TRAINER_SUPER_NERD_3] = {
@@ -2122,7 +2122,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AAC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823AAC0}
},
[TRAINER_SUPER_NERD_ERIK] = {
@@ -2134,7 +2134,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AAD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823AAD0}
},
[TRAINER_SUPER_NERD_AVERY] = {
@@ -2146,7 +2146,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823AAE8),
.party = {.NoItemDefaultMoves = sTrainerMons_823AAE8}
},
[TRAINER_SUPER_NERD_DEREK] = {
@@ -2158,7 +2158,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AB08),
.party = {.NoItemDefaultMoves = sTrainerMons_823AB08}
},
[TRAINER_SUPER_NERD_ZAC] = {
@@ -2170,7 +2170,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AB10),
.party = {.NoItemDefaultMoves = sTrainerMons_823AB10}
},
[TRAINER_HIKER_MARCOS] = {
@@ -2182,7 +2182,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AB20),
.party = {.NoItemDefaultMoves = sTrainerMons_823AB20}
},
[TRAINER_HIKER_FRANKLIN] = {
@@ -2194,7 +2194,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AB38),
.party = {.NoItemDefaultMoves = sTrainerMons_823AB38}
},
[TRAINER_HIKER_NOB] = {
@@ -2206,7 +2206,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823AB48),
.party = {.NoItemDefaultMoves = sTrainerMons_823AB48}
},
[TRAINER_HIKER_WAYNE] = {
@@ -2218,7 +2218,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AB68),
.party = {.NoItemDefaultMoves = sTrainerMons_823AB68}
},
[TRAINER_HIKER_ALAN] = {
@@ -2230,7 +2230,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AB70),
.party = {.NoItemCustomMoves = sTrainerMons_823AB70}
},
[TRAINER_HIKER_BRICE] = {
@@ -2242,7 +2242,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AB90),
.party = {.NoItemDefaultMoves = sTrainerMons_823AB90}
},
[TRAINER_HIKER_CLARK] = {
@@ -2254,7 +2254,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823ABA8),
.party = {.NoItemCustomMoves = sTrainerMons_823ABA8}
},
[TRAINER_HIKER_TRENT] = {
@@ -2266,7 +2266,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823ABC8),
.party = {.NoItemDefaultMoves = sTrainerMons_823ABC8}
},
[TRAINER_HIKER_DUDLEY] = {
@@ -2278,7 +2278,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823ABD8),
.party = {.NoItemCustomMoves = sTrainerMons_823ABD8}
},
[TRAINER_HIKER_ALLEN] = {
@@ -2290,7 +2290,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AC08),
.party = {.NoItemCustomMoves = sTrainerMons_823AC08}
},
[TRAINER_HIKER_ERIC] = {
@@ -2302,7 +2302,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AC18),
.party = {.NoItemDefaultMoves = sTrainerMons_823AC18}
},
[TRAINER_HIKER_LENNY] = {
@@ -2314,7 +2314,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823AC28),
.party = {.NoItemDefaultMoves = sTrainerMons_823AC28}
},
[TRAINER_HIKER_OLIVER] = {
@@ -2326,7 +2326,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AC48),
.party = {.NoItemDefaultMoves = sTrainerMons_823AC48}
},
[TRAINER_HIKER_LUCAS] = {
@@ -2338,7 +2338,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AC60),
.party = {.NoItemCustomMoves = sTrainerMons_823AC60}
},
[TRAINER_BIKER_JARED] = {
@@ -2350,7 +2350,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AC80),
.party = {.NoItemCustomMoves = sTrainerMons_823AC80}
},
[TRAINER_BIKER_MALIK] = {
@@ -2362,7 +2362,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823ACB0),
.party = {.NoItemCustomMoves = sTrainerMons_823ACB0}
},
[TRAINER_BIKER_ERNEST] = {
@@ -2374,7 +2374,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823ACD0),
.party = {.NoItemCustomMoves = sTrainerMons_823ACD0}
},
[TRAINER_BIKER_ALEX] = {
@@ -2386,7 +2386,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AD20),
.party = {.NoItemCustomMoves = sTrainerMons_823AD20}
},
[TRAINER_BIKER_LAO] = {
@@ -2398,7 +2398,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AD50),
.party = {.NoItemCustomMoves = sTrainerMons_823AD50}
},
[TRAINER_BIKER_1] = {
@@ -2410,7 +2410,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AD70),
.party = {.NoItemDefaultMoves = sTrainerMons_823AD70}
},
[TRAINER_BIKER_HIDEO] = {
@@ -2422,7 +2422,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AD78),
.party = {.NoItemDefaultMoves = sTrainerMons_823AD78}
},
[TRAINER_BIKER_RUBEN] = {
@@ -2434,7 +2434,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AD80),
.party = {.NoItemCustomMoves = sTrainerMons_823AD80}
},
[TRAINER_BIKER_BILLY] = {
@@ -2446,7 +2446,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823ADB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823ADB0}
},
[TRAINER_BIKER_NIKOLAS] = {
@@ -2458,7 +2458,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823ADB8),
.party = {.NoItemCustomMoves = sTrainerMons_823ADB8}
},
[TRAINER_BIKER_JAXON] = {
@@ -2470,7 +2470,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823ADD8),
.party = {.NoItemCustomMoves = sTrainerMons_823ADD8}
},
[TRAINER_BIKER_WILLIAM] = {
@@ -2482,7 +2482,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823ADF8),
.party = {.NoItemCustomMoves = sTrainerMons_823ADF8}
},
[TRAINER_BIKER_LUKAS] = {
@@ -2494,7 +2494,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823AE48),
.party = {.NoItemCustomMoves = sTrainerMons_823AE48}
},
[TRAINER_BIKER_ISAAC] = {
@@ -2506,7 +2506,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AE88),
.party = {.NoItemCustomMoves = sTrainerMons_823AE88}
},
[TRAINER_BIKER_GERALD] = {
@@ -2518,7 +2518,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AEB8),
.party = {.NoItemCustomMoves = sTrainerMons_823AEB8}
},
[TRAINER_BURGLAR_1] = {
@@ -2530,7 +2530,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AED8),
.party = {.NoItemDefaultMoves = sTrainerMons_823AED8}
},
[TRAINER_BURGLAR_2] = {
@@ -2542,7 +2542,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AEE8),
.party = {.NoItemDefaultMoves = sTrainerMons_823AEE8}
},
[TRAINER_BURGLAR_3] = {
@@ -2554,7 +2554,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AEF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823AEF0}
},
[TRAINER_BURGLAR_QUINN] = {
@@ -2566,7 +2566,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AF08),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF08}
},
[TRAINER_BURGLAR_RAMON] = {
@@ -2578,7 +2578,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AF20),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF20}
},
[TRAINER_BURGLAR_DUSTY] = {
@@ -2590,7 +2590,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AF28),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF28}
},
[TRAINER_BURGLAR_ARNIE] = {
@@ -2602,7 +2602,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AF38),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF38}
},
[TRAINER_BURGLAR_4] = {
@@ -2614,7 +2614,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AF48),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF48}
},
[TRAINER_BURGLAR_SIMON] = {
@@ -2626,7 +2626,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AF58),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF58}
},
[TRAINER_BURGLAR_LEWIS] = {
@@ -2638,7 +2638,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AF60),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF60}
},
[TRAINER_ENGINEER_BAILY] = {
@@ -2650,7 +2650,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AF70),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF70}
},
[TRAINER_ENGINEER_BRAXTON] = {
@@ -2662,7 +2662,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AF80),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF80}
},
[TRAINER_ENGINEER_BERNIE] = {
@@ -2674,7 +2674,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AF88),
.party = {.NoItemDefaultMoves = sTrainerMons_823AF88}
},
[TRAINER_FISHERMAN_DALE] = {
@@ -2686,7 +2686,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AFA0),
.party = {.NoItemDefaultMoves = sTrainerMons_823AFA0}
},
[TRAINER_FISHERMAN_BARNY] = {
@@ -2698,7 +2698,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AFB8),
.party = {.NoItemDefaultMoves = sTrainerMons_823AFB8}
},
[TRAINER_FISHERMAN_NED] = {
@@ -2710,7 +2710,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823AFD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823AFD0}
},
[TRAINER_FISHERMAN_CHIP] = {
@@ -2722,7 +2722,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823AFE8),
.party = {.NoItemDefaultMoves = sTrainerMons_823AFE8}
},
[TRAINER_FISHERMAN_HANK] = {
@@ -2734,7 +2734,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823AFF8),
.party = {.NoItemDefaultMoves = sTrainerMons_823AFF8}
},
[TRAINER_FISHERMAN_ELLIOT] = {
@@ -2746,7 +2746,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B000),
.party = {.NoItemDefaultMoves = sTrainerMons_823B000}
},
[TRAINER_FISHERMAN_RONALD] = {
@@ -2758,7 +2758,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B020),
.party = {.NoItemDefaultMoves = sTrainerMons_823B020}
},
[TRAINER_FISHERMAN_CLAUDE] = {
@@ -2770,7 +2770,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B040),
.party = {.NoItemDefaultMoves = sTrainerMons_823B040}
},
[TRAINER_FISHERMAN_WADE] = {
@@ -2782,7 +2782,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823B050),
.party = {.NoItemDefaultMoves = sTrainerMons_823B050}
},
[TRAINER_FISHERMAN_NOLAN] = {
@@ -2794,7 +2794,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B080),
.party = {.NoItemDefaultMoves = sTrainerMons_823B080}
},
[TRAINER_FISHERMAN_ANDREW] = {
@@ -2806,7 +2806,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B090),
.party = {.NoItemDefaultMoves = sTrainerMons_823B090}
},
[TRAINER_SWIMMER_MALE_LUIS] = {
@@ -2818,7 +2818,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B0A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B0A0}
},
[TRAINER_SWIMMER_MALE_RICHARD] = {
@@ -2830,7 +2830,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B0B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B0B0}
},
[TRAINER_SWIMMER_MALE_REECE] = {
@@ -2842,7 +2842,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B0C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B0C0}
},
[TRAINER_SWIMMER_MALE_MATTHEW] = {
@@ -2854,7 +2854,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B0D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B0D8}
},
[TRAINER_SWIMMER_MALE_DOUGLAS] = {
@@ -2866,7 +2866,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B0E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B0E8}
},
[TRAINER_SWIMMER_MALE_DAVID] = {
@@ -2878,7 +2878,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B108),
.party = {.NoItemDefaultMoves = sTrainerMons_823B108}
},
[TRAINER_SWIMMER_MALE_TONY] = {
@@ -2890,7 +2890,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B120),
.party = {.NoItemDefaultMoves = sTrainerMons_823B120}
},
[TRAINER_SWIMMER_MALE_AXLE] = {
@@ -2902,7 +2902,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823B130),
.party = {.NoItemDefaultMoves = sTrainerMons_823B130}
},
[TRAINER_SWIMMER_MALE_BARRY] = {
@@ -2914,7 +2914,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B158),
.party = {.NoItemDefaultMoves = sTrainerMons_823B158}
},
[TRAINER_SWIMMER_MALE_DEAN] = {
@@ -2926,7 +2926,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B168),
.party = {.NoItemDefaultMoves = sTrainerMons_823B168}
},
[TRAINER_SWIMMER_MALE_DARRIN] = {
@@ -2938,7 +2938,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B170),
.party = {.NoItemDefaultMoves = sTrainerMons_823B170}
},
[TRAINER_SWIMMER_MALE_SPENCER] = {
@@ -2950,7 +2950,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B190),
.party = {.NoItemDefaultMoves = sTrainerMons_823B190}
},
[TRAINER_SWIMMER_MALE_JACK] = {
@@ -2962,7 +2962,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B1A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B1A0}
},
[TRAINER_SWIMMER_MALE_JEROME] = {
@@ -2974,7 +2974,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B1A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B1A8}
},
[TRAINER_SWIMMER_MALE_ROLAND] = {
@@ -2986,7 +2986,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B1B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B1B8}
},
[TRAINER_CUE_BALL_KOJI] = {
@@ -2998,7 +2998,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B1D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B1D0}
},
[TRAINER_CUE_BALL_LUKE] = {
@@ -3010,7 +3010,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B1E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B1E8}
},
[TRAINER_CUE_BALL_CAMRON] = {
@@ -3022,7 +3022,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B1F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B1F8}
},
[TRAINER_CUE_BALL_RAUL] = {
@@ -3034,7 +3034,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B208),
.party = {.NoItemDefaultMoves = sTrainerMons_823B208}
},
[TRAINER_CUE_BALL_ISAIAH] = {
@@ -3046,7 +3046,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B218),
.party = {.NoItemDefaultMoves = sTrainerMons_823B218}
},
[TRAINER_CUE_BALL_ZEEK] = {
@@ -3058,7 +3058,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B228),
.party = {.NoItemDefaultMoves = sTrainerMons_823B228}
},
[TRAINER_CUE_BALL_JAMAL] = {
@@ -3070,7 +3070,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B230),
.party = {.NoItemDefaultMoves = sTrainerMons_823B230}
},
[TRAINER_CUE_BALL_COREY] = {
@@ -3082,7 +3082,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B250),
.party = {.NoItemDefaultMoves = sTrainerMons_823B250}
},
[TRAINER_CUE_BALL_CHASE] = {
@@ -3094,7 +3094,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B260),
.party = {.NoItemDefaultMoves = sTrainerMons_823B260}
},
[TRAINER_GAMER_HUGO] = {
@@ -3106,7 +3106,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B278),
.party = {.NoItemDefaultMoves = sTrainerMons_823B278}
},
[TRAINER_GAMER_JASPER] = {
@@ -3118,7 +3118,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B288),
.party = {.NoItemDefaultMoves = sTrainerMons_823B288}
},
[TRAINER_GAMER_DIRK] = {
@@ -3130,7 +3130,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B298),
.party = {.NoItemDefaultMoves = sTrainerMons_823B298}
},
[TRAINER_GAMER_DARIAN] = {
@@ -3142,7 +3142,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B2A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B2A8}
},
[TRAINER_GAMER_STAN] = {
@@ -3154,7 +3154,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B2B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B2B8}
},
[TRAINER_GAMER_1] = {
@@ -3166,7 +3166,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B2D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B2D0}
},
[TRAINER_GAMER_RICH] = {
@@ -3178,7 +3178,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B2D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B2D8}
},
[TRAINER_BEAUTY_BRIDGET] = {
@@ -3190,7 +3190,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B2E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B2E8}
},
[TRAINER_BEAUTY_TAMIA] = {
@@ -3202,7 +3202,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B308),
.party = {.NoItemDefaultMoves = sTrainerMons_823B308}
},
[TRAINER_BEAUTY_LORI] = {
@@ -3214,7 +3214,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B318),
.party = {.NoItemDefaultMoves = sTrainerMons_823B318}
},
[TRAINER_BEAUTY_LOLA] = {
@@ -3226,7 +3226,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B320),
.party = {.NoItemDefaultMoves = sTrainerMons_823B320}
},
[TRAINER_BEAUTY_SHEILA] = {
@@ -3238,7 +3238,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B338),
.party = {.NoItemDefaultMoves = sTrainerMons_823B338}
},
[TRAINER_SWIMMER_FEMALE_TIFFANY] = {
@@ -3250,7 +3250,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B348),
.party = {.NoItemDefaultMoves = sTrainerMons_823B348}
},
[TRAINER_SWIMMER_FEMALE_NORA] = {
@@ -3262,7 +3262,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B350),
.party = {.NoItemDefaultMoves = sTrainerMons_823B350}
},
[TRAINER_SWIMMER_FEMALE_MELISSA] = {
@@ -3274,7 +3274,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B368),
.party = {.NoItemDefaultMoves = sTrainerMons_823B368}
},
[TRAINER_BEAUTY_GRACE] = {
@@ -3286,7 +3286,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B378),
.party = {.NoItemDefaultMoves = sTrainerMons_823B378}
},
[TRAINER_BEAUTY_OLIVIA] = {
@@ -3298,7 +3298,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B388),
.party = {.NoItemDefaultMoves = sTrainerMons_823B388}
},
[TRAINER_BEAUTY_LAUREN] = {
@@ -3310,7 +3310,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B398),
.party = {.NoItemDefaultMoves = sTrainerMons_823B398}
},
[TRAINER_SWIMMER_FEMALE_ANYA] = {
@@ -3322,7 +3322,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823B3B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B3B0}
},
[TRAINER_SWIMMER_FEMALE_ALICE] = {
@@ -3334,7 +3334,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B3D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B3D8}
},
[TRAINER_SWIMMER_FEMALE_CONNIE] = {
@@ -3346,7 +3346,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B3E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B3E8}
},
[TRAINER_SWIMMER_FEMALE_SHIRLEY] = {
@@ -3358,7 +3358,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B400),
.party = {.NoItemDefaultMoves = sTrainerMons_823B400}
},
[TRAINER_PSYCHIC_JOHAN] = {
@@ -3370,7 +3370,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B418),
.party = {.NoItemDefaultMoves = sTrainerMons_823B418}
},
[TRAINER_PSYCHIC_TYRON] = {
@@ -3382,7 +3382,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B438),
.party = {.NoItemDefaultMoves = sTrainerMons_823B438}
},
[TRAINER_PSYCHIC_CAMERON] = {
@@ -3394,7 +3394,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B448),
.party = {.NoItemDefaultMoves = sTrainerMons_823B448}
},
[TRAINER_PSYCHIC_PRESTON] = {
@@ -3406,7 +3406,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B460),
.party = {.NoItemDefaultMoves = sTrainerMons_823B460}
},
[TRAINER_ROCKER_RANDALL] = {
@@ -3418,7 +3418,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B468),
.party = {.NoItemDefaultMoves = sTrainerMons_823B468}
},
[TRAINER_ROCKER_LUCA] = {
@@ -3430,7 +3430,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B480),
.party = {.NoItemDefaultMoves = sTrainerMons_823B480}
},
[TRAINER_JUGGLER_DALTON] = {
@@ -3442,7 +3442,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B490),
.party = {.NoItemDefaultMoves = sTrainerMons_823B490}
},
[TRAINER_JUGGLER_NELSON] = {
@@ -3454,7 +3454,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B4A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B4A0}
},
[TRAINER_JUGGLER_KIRK] = {
@@ -3466,7 +3466,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B4C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B4C0}
},
[TRAINER_JUGGLER_SHAWN] = {
@@ -3478,7 +3478,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B4E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B4E0}
},
[TRAINER_JUGGLER_GREGORY] = {
@@ -3490,7 +3490,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B4F0),
.party = {.NoItemCustomMoves = sTrainerMons_823B4F0}
},
[TRAINER_JUGGLER_EDWARD] = {
@@ -3502,7 +3502,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B500),
.party = {.NoItemCustomMoves = sTrainerMons_823B500}
},
[TRAINER_JUGGLER_KAYDEN] = {
@@ -3514,7 +3514,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B540),
.party = {.NoItemDefaultMoves = sTrainerMons_823B540}
},
[TRAINER_JUGGLER_NATE] = {
@@ -3526,7 +3526,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B548),
.party = {.NoItemDefaultMoves = sTrainerMons_823B548}
},
[TRAINER_TAMER_PHIL] = {
@@ -3538,7 +3538,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B558),
.party = {.NoItemDefaultMoves = sTrainerMons_823B558}
},
[TRAINER_TAMER_EDGAR] = {
@@ -3550,7 +3550,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B568),
.party = {.NoItemDefaultMoves = sTrainerMons_823B568}
},
[TRAINER_TAMER_JASON] = {
@@ -3562,7 +3562,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B580),
.party = {.NoItemDefaultMoves = sTrainerMons_823B580}
},
[TRAINER_TAMER_COLE] = {
@@ -3574,7 +3574,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B588),
.party = {.NoItemDefaultMoves = sTrainerMons_823B588}
},
[TRAINER_TAMER_VINCENT] = {
@@ -3586,7 +3586,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B598),
.party = {.NoItemDefaultMoves = sTrainerMons_823B598}
},
[TRAINER_TAMER_JOHN] = {
@@ -3598,7 +3598,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B5A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B5A8}
},
[TRAINER_BIRD_KEEPER_SEBASTIAN] = {
@@ -3610,7 +3610,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B5C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B5C8}
},
[TRAINER_BIRD_KEEPER_PERRY] = {
@@ -3622,7 +3622,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823B5D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B5D8}
},
[TRAINER_BIRD_KEEPER_ROBERT] = {
@@ -3634,7 +3634,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B600),
.party = {.NoItemDefaultMoves = sTrainerMons_823B600}
},
[TRAINER_BIRD_KEEPER_DONALD] = {
@@ -3646,7 +3646,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B620),
.party = {.NoItemDefaultMoves = sTrainerMons_823B620}
},
[TRAINER_BIRD_KEEPER_BENNY] = {
@@ -3658,7 +3658,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B628),
.party = {.NoItemDefaultMoves = sTrainerMons_823B628}
},
[TRAINER_BIRD_KEEPER_EDWIN] = {
@@ -3670,7 +3670,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B638),
.party = {.NoItemDefaultMoves = sTrainerMons_823B638}
},
[TRAINER_BIRD_KEEPER_CHESTER] = {
@@ -3682,7 +3682,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B658),
.party = {.NoItemDefaultMoves = sTrainerMons_823B658}
},
[TRAINER_BIRD_KEEPER_WILTON] = {
@@ -3694,7 +3694,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B670),
.party = {.NoItemDefaultMoves = sTrainerMons_823B670}
},
[TRAINER_BIRD_KEEPER_RAMIRO] = {
@@ -3706,7 +3706,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B680),
.party = {.NoItemDefaultMoves = sTrainerMons_823B680}
},
[TRAINER_BIRD_KEEPER_JACOB] = {
@@ -3718,7 +3718,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B688),
.party = {.NoItemDefaultMoves = sTrainerMons_823B688}
},
[TRAINER_BIRD_KEEPER_ROGER] = {
@@ -3730,7 +3730,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B6A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B6A8}
},
[TRAINER_BIRD_KEEPER_REED] = {
@@ -3742,7 +3742,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B6C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B6C0}
},
[TRAINER_BIRD_KEEPER_KEITH] = {
@@ -3754,7 +3754,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B6E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B6E0}
},
[TRAINER_BIRD_KEEPER_CARTER] = {
@@ -3766,7 +3766,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B6F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B6F0}
},
[TRAINER_BIRD_KEEPER_MITCH] = {
@@ -3778,7 +3778,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B708),
.party = {.NoItemDefaultMoves = sTrainerMons_823B708}
},
[TRAINER_BIRD_KEEPER_BECK] = {
@@ -3790,7 +3790,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B728),
.party = {.NoItemDefaultMoves = sTrainerMons_823B728}
},
[TRAINER_BIRD_KEEPER_MARLON] = {
@@ -3802,7 +3802,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B738),
.party = {.NoItemDefaultMoves = sTrainerMons_823B738}
},
[TRAINER_BLACK_BELT_KOICHI] = {
@@ -3814,7 +3814,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B750),
.party = {.ItemDefaultMoves = sTrainerMons_823B750}
},
[TRAINER_BLACK_BELT_MIKE] = {
@@ -3826,7 +3826,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B760),
.party = {.ItemDefaultMoves = sTrainerMons_823B760}
},
[TRAINER_BLACK_BELT_HIDEKI] = {
@@ -3838,7 +3838,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B778),
.party = {.ItemDefaultMoves = sTrainerMons_823B778}
},
[TRAINER_BLACK_BELT_AARON] = {
@@ -3850,7 +3850,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B788),
.party = {.ItemDefaultMoves = sTrainerMons_823B788}
},
[TRAINER_BLACK_BELT_HITOSHI] = {
@@ -3862,7 +3862,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B790),
.party = {.ItemDefaultMoves = sTrainerMons_823B790}
},
[TRAINER_BLACK_BELT_ATSUSHI] = {
@@ -3874,7 +3874,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B7A8),
.party = {.ItemDefaultMoves = sTrainerMons_823B7A8}
},
[TRAINER_BLACK_BELT_KIYO] = {
@@ -3886,7 +3886,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B7B8),
.party = {.ItemDefaultMoves = sTrainerMons_823B7B8}
},
[TRAINER_BLACK_BELT_TAKASHI] = {
@@ -3898,7 +3898,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B7C0),
.party = {.ItemDefaultMoves = sTrainerMons_823B7C0}
},
[TRAINER_BLACK_BELT_DAISUKE] = {
@@ -3910,7 +3910,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B7D8),
.party = {.ItemDefaultMoves = sTrainerMons_823B7D8}
},
[TRAINER_RIVAL_OAKS_LAB_SQUIRTLE] = {
@@ -3922,7 +3922,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B7F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B7F0}
},
[TRAINER_RIVAL_OAKS_LAB_BULBASAUR] = {
@@ -3934,7 +3934,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B7F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823B7F8}
},
[TRAINER_RIVAL_OAKS_LAB_CHARMANDER] = {
@@ -3946,7 +3946,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B800),
.party = {.NoItemDefaultMoves = sTrainerMons_823B800}
},
[TRAINER_RIVAL_ROUTE22_EARLY_SQUIRTLE] = {
@@ -3958,7 +3958,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B808),
.party = {.NoItemCustomMoves = sTrainerMons_823B808}
},
[TRAINER_RIVAL_ROUTE22_EARLY_BULBASAUR] = {
@@ -3970,7 +3970,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B828),
.party = {.NoItemCustomMoves = sTrainerMons_823B828}
},
[TRAINER_RIVAL_ROUTE22_EARLY_CHARMANDER] = {
@@ -3982,7 +3982,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B848),
.party = {.NoItemCustomMoves = sTrainerMons_823B848}
},
[TRAINER_RIVAL_CERULEAN_SQUIRTLE] = {
@@ -3994,7 +3994,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B868),
.party = {.NoItemCustomMoves = sTrainerMons_823B868}
},
[TRAINER_RIVAL_CERULEAN_BULBASAUR] = {
@@ -4006,7 +4006,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B8A8),
.party = {.NoItemCustomMoves = sTrainerMons_823B8A8}
},
[TRAINER_RIVAL_CERULEAN_CHARMANDER] = {
@@ -4018,7 +4018,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B8E8),
.party = {.NoItemCustomMoves = sTrainerMons_823B8E8}
},
[TRAINER_SCIENTIST_TED] = {
@@ -4030,7 +4030,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B928),
.party = {.NoItemDefaultMoves = sTrainerMons_823B928}
},
[TRAINER_SCIENTIST_CONNOR] = {
@@ -4042,7 +4042,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B938),
.party = {.NoItemCustomMoves = sTrainerMons_823B938}
},
[TRAINER_SCIENTIST_JERRY] = {
@@ -4054,7 +4054,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823B978),
.party = {.NoItemDefaultMoves = sTrainerMons_823B978}
},
[TRAINER_SCIENTIST_JOSE] = {
@@ -4066,7 +4066,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823B990),
.party = {.NoItemCustomMoves = sTrainerMons_823B990}
},
[TRAINER_SCIENTIST_RODNEY] = {
@@ -4078,7 +4078,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823B9B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823B9B0}
},
[TRAINER_SCIENTIST_BEAU] = {
@@ -4090,7 +4090,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823B9B8),
.party = {.NoItemCustomMoves = sTrainerMons_823B9B8}
},
[TRAINER_SCIENTIST_TAYLOR] = {
@@ -4102,7 +4102,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823B9F8),
.party = {.NoItemCustomMoves = sTrainerMons_823B9F8}
},
[TRAINER_SCIENTIST_JOSHUA] = {
@@ -4114,7 +4114,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BA48),
.party = {.NoItemDefaultMoves = sTrainerMons_823BA48}
},
[TRAINER_SCIENTIST_PARKER] = {
@@ -4126,7 +4126,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BA58),
.party = {.NoItemDefaultMoves = sTrainerMons_823BA58}
},
[TRAINER_SCIENTIST_ED] = {
@@ -4138,7 +4138,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BA68),
.party = {.NoItemCustomMoves = sTrainerMons_823BA68}
},
[TRAINER_SCIENTIST_TRAVIS] = {
@@ -4150,7 +4150,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BA98),
.party = {.NoItemDefaultMoves = sTrainerMons_823BA98}
},
[TRAINER_SCIENTIST_BRAYDON] = {
@@ -4162,7 +4162,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BAA8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BAA8}
},
[TRAINER_SCIENTIST_IVAN] = {
@@ -4174,7 +4174,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BAC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BAC0}
},
[TRAINER_BOSS_GIOVANNI] = {
@@ -4186,7 +4186,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BAD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BAD0}
},
[TRAINER_BOSS_GIOVANNI_2] = {
@@ -4198,7 +4198,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823BAE8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BAE8}
},
[TRAINER_LEADER_GIOVANNI] = {
@@ -4210,7 +4210,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_FULL_HEAL},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823BB08),
.party = {.NoItemCustomMoves = sTrainerMons_823BB08}
},
[TRAINER_TEAM_ROCKET_GRUNT] = {
@@ -4222,7 +4222,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BB58),
.party = {.NoItemDefaultMoves = sTrainerMons_823BB58}
},
[TRAINER_TEAM_ROCKET_GRUNT_2] = {
@@ -4234,7 +4234,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BB68),
.party = {.NoItemDefaultMoves = sTrainerMons_823BB68}
},
[TRAINER_TEAM_ROCKET_GRUNT_3] = {
@@ -4246,7 +4246,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BB80),
.party = {.NoItemDefaultMoves = sTrainerMons_823BB80}
},
[TRAINER_TEAM_ROCKET_GRUNT_4] = {
@@ -4258,7 +4258,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BB90),
.party = {.NoItemDefaultMoves = sTrainerMons_823BB90}
},
[TRAINER_TEAM_ROCKET_GRUNT_5] = {
@@ -4270,7 +4270,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BBA0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BBA0}
},
[TRAINER_TEAM_ROCKET_GRUNT_6] = {
@@ -4282,7 +4282,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BBB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BBB0}
},
[TRAINER_TEAM_ROCKET_GRUNT_7] = {
@@ -4294,7 +4294,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BBC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BBC0}
},
[TRAINER_TEAM_ROCKET_GRUNT_8] = {
@@ -4306,7 +4306,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BBD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BBD0}
},
[TRAINER_TEAM_ROCKET_GRUNT_9] = {
@@ -4318,7 +4318,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BBE0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BBE0}
},
[TRAINER_TEAM_ROCKET_GRUNT_10] = {
@@ -4330,7 +4330,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BBF0),
.party = {.NoItemCustomMoves = sTrainerMons_823BBF0}
},
[TRAINER_TEAM_ROCKET_GRUNT_11] = {
@@ -4342,7 +4342,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823BC20),
.party = {.NoItemDefaultMoves = sTrainerMons_823BC20}
},
[TRAINER_TEAM_ROCKET_GRUNT_12] = {
@@ -4354,7 +4354,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BC40),
.party = {.NoItemCustomMoves = sTrainerMons_823BC40}
},
[TRAINER_TEAM_ROCKET_GRUNT_13] = {
@@ -4366,7 +4366,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823BC60),
.party = {.NoItemCustomMoves = sTrainerMons_823BC60}
},
[TRAINER_TEAM_ROCKET_GRUNT_14] = {
@@ -4378,7 +4378,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BCB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BCB0}
},
[TRAINER_TEAM_ROCKET_GRUNT_15] = {
@@ -4390,7 +4390,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BCC8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BCC8}
},
[TRAINER_TEAM_ROCKET_GRUNT_16] = {
@@ -4402,7 +4402,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BCD8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BCD8}
},
[TRAINER_TEAM_ROCKET_GRUNT_17] = {
@@ -4414,7 +4414,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BCF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BCF0}
},
[TRAINER_TEAM_ROCKET_GRUNT_18] = {
@@ -4426,7 +4426,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BD08),
.party = {.NoItemDefaultMoves = sTrainerMons_823BD08}
},
[TRAINER_TEAM_ROCKET_GRUNT_19] = {
@@ -4438,7 +4438,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BD18),
.party = {.NoItemDefaultMoves = sTrainerMons_823BD18}
},
[TRAINER_TEAM_ROCKET_GRUNT_20] = {
@@ -4450,7 +4450,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BD30),
.party = {.NoItemDefaultMoves = sTrainerMons_823BD30}
},
[TRAINER_TEAM_ROCKET_GRUNT_21] = {
@@ -4462,7 +4462,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823BD40),
.party = {.NoItemDefaultMoves = sTrainerMons_823BD40}
},
[TRAINER_TEAM_ROCKET_GRUNT_22] = {
@@ -4474,7 +4474,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BD60),
.party = {.NoItemDefaultMoves = sTrainerMons_823BD60}
},
[TRAINER_TEAM_ROCKET_GRUNT_23] = {
@@ -4486,7 +4486,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BD70),
.party = {.NoItemDefaultMoves = sTrainerMons_823BD70}
},
[TRAINER_TEAM_ROCKET_GRUNT_24] = {
@@ -4498,7 +4498,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823BD80),
.party = {.NoItemDefaultMoves = sTrainerMons_823BD80}
},
[TRAINER_TEAM_ROCKET_GRUNT_25] = {
@@ -4510,7 +4510,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BDA8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BDA8}
},
[TRAINER_TEAM_ROCKET_GRUNT_26] = {
@@ -4522,7 +4522,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BDC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BDC0}
},
[TRAINER_TEAM_ROCKET_GRUNT_27] = {
@@ -4534,7 +4534,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BDD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BDD0}
},
[TRAINER_TEAM_ROCKET_GRUNT_28] = {
@@ -4546,7 +4546,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823BDE8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BDE8}
},
[TRAINER_TEAM_ROCKET_GRUNT_29] = {
@@ -4558,7 +4558,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823BDF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BDF0}
},
[TRAINER_TEAM_ROCKET_GRUNT_30] = {
@@ -4570,7 +4570,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BDF8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BDF8}
},
[TRAINER_TEAM_ROCKET_GRUNT_31] = {
@@ -4582,7 +4582,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BE08),
.party = {.NoItemDefaultMoves = sTrainerMons_823BE08}
},
[TRAINER_TEAM_ROCKET_GRUNT_32] = {
@@ -4594,7 +4594,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823BE20),
.party = {.NoItemCustomMoves = sTrainerMons_823BE20}
},
[TRAINER_TEAM_ROCKET_GRUNT_33] = {
@@ -4606,7 +4606,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BE60),
.party = {.NoItemDefaultMoves = sTrainerMons_823BE60}
},
[TRAINER_TEAM_ROCKET_GRUNT_34] = {
@@ -4618,7 +4618,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823BE70),
.party = {.NoItemDefaultMoves = sTrainerMons_823BE70}
},
[TRAINER_TEAM_ROCKET_GRUNT_35] = {
@@ -4630,7 +4630,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823BE80),
.party = {.NoItemDefaultMoves = sTrainerMons_823BE80}
},
[TRAINER_TEAM_ROCKET_GRUNT_36] = {
@@ -4642,7 +4642,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BEA0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BEA0}
},
[TRAINER_TEAM_ROCKET_GRUNT_37] = {
@@ -4654,7 +4654,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BEB8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BEB8}
},
[TRAINER_TEAM_ROCKET_GRUNT_38] = {
@@ -4666,7 +4666,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BED0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BED0}
},
[TRAINER_TEAM_ROCKET_GRUNT_39] = {
@@ -4678,7 +4678,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823BEE8),
.party = {.NoItemDefaultMoves = sTrainerMons_823BEE8}
},
[TRAINER_TEAM_ROCKET_GRUNT_40] = {
@@ -4690,7 +4690,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823BEF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823BEF0}
},
[TRAINER_TEAM_ROCKET_GRUNT_41] = {
@@ -4702,7 +4702,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823BF18),
.party = {.NoItemDefaultMoves = sTrainerMons_823BF18}
},
[TRAINER_COOLTRAINER_SAMUEL] = {
@@ -4714,7 +4714,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_SUPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823BF30),
.party = {.NoItemCustomMoves = sTrainerMons_823BF30}
},
[TRAINER_COOLTRAINER_GEORGE] = {
@@ -4726,7 +4726,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823BF80),
.party = {.NoItemCustomMoves = sTrainerMons_823BF80}
},
[TRAINER_COOLTRAINER_COLBY] = {
@@ -4738,7 +4738,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823BFD0),
.party = {.NoItemCustomMoves = sTrainerMons_823BFD0}
},
[TRAINER_COOLTRAINER_PAUL] = {
@@ -4750,7 +4750,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C020),
.party = {.NoItemCustomMoves = sTrainerMons_823C020}
},
[TRAINER_COOLTRAINER_ROLANDO] = {
@@ -4762,7 +4762,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C070),
.party = {.NoItemCustomMoves = sTrainerMons_823C070}
},
[TRAINER_COOLTRAINER_GILBERT] = {
@@ -4774,7 +4774,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C0C0),
.party = {.NoItemCustomMoves = sTrainerMons_823C0C0}
},
[TRAINER_COOLTRAINER_OWEN] = {
@@ -4786,7 +4786,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C110),
.party = {.NoItemCustomMoves = sTrainerMons_823C110}
},
[TRAINER_COOLTRAINER_BERKE] = {
@@ -4798,7 +4798,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C160),
.party = {.NoItemCustomMoves = sTrainerMons_823C160}
},
[TRAINER_COOLTRAINER_YUJI] = {
@@ -4810,7 +4810,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C1B0),
.party = {.NoItemCustomMoves = sTrainerMons_823C1B0}
},
[TRAINER_COOLTRAINER_WARREN] = {
@@ -4822,7 +4822,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C200),
.party = {.NoItemCustomMoves = sTrainerMons_823C200}
},
[TRAINER_COOLTRAINER_MARY] = {
@@ -4834,7 +4834,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_SUPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C250),
.party = {.NoItemCustomMoves = sTrainerMons_823C250}
},
[TRAINER_COOLTRAINER_CAROLINE] = {
@@ -4846,7 +4846,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C2A0),
.party = {.NoItemCustomMoves = sTrainerMons_823C2A0}
},
[TRAINER_COOLTRAINER_ALEXA] = {
@@ -4858,7 +4858,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C2F0),
.party = {.NoItemCustomMoves = sTrainerMons_823C2F0}
},
[TRAINER_COOLTRAINER_SHANNON] = {
@@ -4870,7 +4870,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C340),
.party = {.NoItemCustomMoves = sTrainerMons_823C340}
},
[TRAINER_COOLTRAINER_NAOMI] = {
@@ -4882,7 +4882,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C390),
.party = {.NoItemCustomMoves = sTrainerMons_823C390}
},
[TRAINER_COOLTRAINER_BROOKE] = {
@@ -4894,7 +4894,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C3E0),
.party = {.NoItemCustomMoves = sTrainerMons_823C3E0}
},
[TRAINER_COOLTRAINER_AUSTINA] = {
@@ -4906,7 +4906,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C430),
.party = {.NoItemCustomMoves = sTrainerMons_823C430}
},
[TRAINER_COOLTRAINER_JULIE] = {
@@ -4918,7 +4918,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C480),
.party = {.NoItemCustomMoves = sTrainerMons_823C480}
},
[TRAINER_ELITE_FOUR_LORELEI] = {
@@ -4930,7 +4930,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C4D0),
.party = {.ItemCustomMoves = sTrainerMons_823C4D0}
},
[TRAINER_ELITE_FOUR_BRUNO] = {
@@ -4942,7 +4942,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C520),
.party = {.ItemCustomMoves = sTrainerMons_823C520}
},
[TRAINER_ELITE_FOUR_AGATHA] = {
@@ -4954,7 +4954,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C570),
.party = {.ItemCustomMoves = sTrainerMons_823C570}
},
[TRAINER_ELITE_FOUR_LANCE] = {
@@ -4966,7 +4966,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C5C0),
.party = {.ItemCustomMoves = sTrainerMons_823C5C0}
},
[TRAINER_LEADER_BROCK] = {
@@ -4978,7 +4978,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823C610),
.party = {.NoItemCustomMoves = sTrainerMons_823C610}
},
[TRAINER_LEADER_MISTY] = {
@@ -4990,7 +4990,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_SUPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823C630),
.party = {.NoItemCustomMoves = sTrainerMons_823C630}
},
[TRAINER_LEADER_LT_SURGE] = {
@@ -5002,7 +5002,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_SUPER_POTION, ITEM_FULL_HEAL},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823C650),
.party = {.NoItemCustomMoves = sTrainerMons_823C650}
},
[TRAINER_LEADER_ERIKA] = {
@@ -5014,7 +5014,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION, ITEM_FULL_HEAL},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823C680),
.party = {.NoItemCustomMoves = sTrainerMons_823C680}
},
[TRAINER_LEADER_KOGA] = {
@@ -5026,7 +5026,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_FULL_HEAL},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823C6B0),
.party = {.NoItemCustomMoves = sTrainerMons_823C6B0}
},
[TRAINER_LEADER_BLAINE] = {
@@ -5038,7 +5038,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_FULL_HEAL},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823C6F0),
.party = {.NoItemCustomMoves = sTrainerMons_823C6F0}
},
[TRAINER_LEADER_SABRINA] = {
@@ -5050,7 +5050,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_FULL_HEAL},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823C730),
.party = {.NoItemCustomMoves = sTrainerMons_823C730}
},
[TRAINER_GENTLEMAN_THOMAS] = {
@@ -5062,7 +5062,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823C770),
.party = {.NoItemDefaultMoves = sTrainerMons_823C770}
},
[TRAINER_GENTLEMAN_ARTHUR] = {
@@ -5074,7 +5074,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823C780),
.party = {.NoItemDefaultMoves = sTrainerMons_823C780}
},
[TRAINER_GENTLEMAN_TUCKER] = {
@@ -5086,7 +5086,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823C790),
.party = {.NoItemDefaultMoves = sTrainerMons_823C790}
},
[TRAINER_GENTLEMAN_NORTON] = {
@@ -5098,7 +5098,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823C798),
.party = {.NoItemDefaultMoves = sTrainerMons_823C798}
},
[TRAINER_GENTLEMAN_WALTER] = {
@@ -5110,7 +5110,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823C7A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823C7A0}
},
[TRAINER_RIVAL_SS_ANNE_SQUIRTLE] = {
@@ -5122,7 +5122,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823C7B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823C7B0}
},
[TRAINER_RIVAL_SS_ANNE_BULBASAUR] = {
@@ -5134,7 +5134,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823C7D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823C7D0}
},
[TRAINER_RIVAL_SS_ANNE_CHARMANDER] = {
@@ -5146,7 +5146,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823C7F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823C7F0}
},
[TRAINER_RIVAL_POKENON_TOWER_SQUIRTLE] = {
@@ -5158,7 +5158,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C810),
.party = {.NoItemDefaultMoves = sTrainerMons_823C810}
},
[TRAINER_RIVAL_POKENON_TOWER_BULBASAUR] = {
@@ -5170,7 +5170,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C838),
.party = {.NoItemDefaultMoves = sTrainerMons_823C838}
},
[TRAINER_RIVAL_POKENON_TOWER_CHARMANDER] = {
@@ -5182,7 +5182,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C860),
.party = {.NoItemDefaultMoves = sTrainerMons_823C860}
},
[TRAINER_RIVAL_SILPH_SQUIRTLE] = {
@@ -5194,7 +5194,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C888),
.party = {.NoItemDefaultMoves = sTrainerMons_823C888}
},
[TRAINER_RIVAL_SILPH_BULBASAUR] = {
@@ -5206,7 +5206,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C8B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823C8B0}
},
[TRAINER_RIVAL_SILPH_CHARMANDER] = {
@@ -5218,7 +5218,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823C8D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823C8D8}
},
[TRAINER_RIVAL_ROUTE22_LATE_SQUIRTLE] = {
@@ -5230,7 +5230,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823C900),
.party = {.NoItemCustomMoves = sTrainerMons_823C900}
},
[TRAINER_RIVAL_ROUTE22_LATE_BULBASAUR] = {
@@ -5242,7 +5242,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823C960),
.party = {.NoItemCustomMoves = sTrainerMons_823C960}
},
[TRAINER_RIVAL_ROUTE22_LATE_CHARMANDER] = {
@@ -5254,7 +5254,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823C9C0),
.party = {.NoItemCustomMoves = sTrainerMons_823C9C0}
},
[TRAINER_CHAMPION_FIRST_SQUIRTLE] = {
@@ -5266,7 +5266,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823CA20),
.party = {.ItemCustomMoves = sTrainerMons_823CA20}
},
[TRAINER_CHAMPION_FIRST_BULBASAUR] = {
@@ -5278,7 +5278,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823CA80),
.party = {.ItemCustomMoves = sTrainerMons_823CA80}
},
[TRAINER_CHAMPION_FIRST_CHARMANDER] = {
@@ -5290,7 +5290,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823CAE0),
.party = {.ItemCustomMoves = sTrainerMons_823CAE0}
},
[TRAINER_CHANNELER_PATRICIA] = {
@@ -5302,7 +5302,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB40),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB40}
},
[TRAINER_CHANNELER_CARLY] = {
@@ -5314,7 +5314,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB48),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB48}
},
[TRAINER_CHANNELER_HOPE] = {
@@ -5326,7 +5326,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB50),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB50}
},
[TRAINER_CHANNELER_PAULA] = {
@@ -5338,7 +5338,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB58),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB58}
},
[TRAINER_CHANNELER_LAUREL] = {
@@ -5350,7 +5350,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CB60),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB60}
},
[TRAINER_CHANNELER_JODY] = {
@@ -5362,7 +5362,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB70),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB70}
},
[TRAINER_CHANNELER_TAMMY] = {
@@ -5374,7 +5374,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB78),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB78}
},
[TRAINER_CHANNELER_RUTH] = {
@@ -5386,7 +5386,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB80),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB80}
},
[TRAINER_CHANNELER_KARINA] = {
@@ -5398,7 +5398,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB88),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB88}
},
[TRAINER_CHANNELER_JANAE] = {
@@ -5410,7 +5410,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CB90),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB90}
},
[TRAINER_CHANNELER_ANGELICA] = {
@@ -5422,7 +5422,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CB98),
.party = {.NoItemDefaultMoves = sTrainerMons_823CB98}
},
[TRAINER_CHANNELER_EMILIA] = {
@@ -5434,7 +5434,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CBB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CBB0}
},
[TRAINER_CHANNELER_JENNIFER] = {
@@ -5446,7 +5446,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CBB8),
.party = {.NoItemDefaultMoves = sTrainerMons_823CBB8}
},
[TRAINER_CHANNELER_1] = {
@@ -5458,7 +5458,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CBC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CBC0}
},
[TRAINER_CHANNELER_2] = {
@@ -5470,7 +5470,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CBC8),
.party = {.NoItemDefaultMoves = sTrainerMons_823CBC8}
},
[TRAINER_CHANNELER_3] = {
@@ -5482,7 +5482,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CBD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CBD0}
},
[TRAINER_CHANNELER_4] = {
@@ -5494,7 +5494,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CBD8),
.party = {.NoItemDefaultMoves = sTrainerMons_823CBD8}
},
[TRAINER_CHANNELER_5] = {
@@ -5506,7 +5506,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CBE0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CBE0}
},
[TRAINER_CHANNELER_6] = {
@@ -5518,7 +5518,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CBE8),
.party = {.NoItemDefaultMoves = sTrainerMons_823CBE8}
},
[TRAINER_CHANNELER_7] = {
@@ -5530,7 +5530,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CC00),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC00}
},
[TRAINER_CHANNELER_8] = {
@@ -5542,7 +5542,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CC08),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC08}
},
[TRAINER_CHANNELER_AMANDA] = {
@@ -5554,7 +5554,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CC10),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC10}
},
[TRAINER_CHANNELER_STACY] = {
@@ -5566,7 +5566,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CC20),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC20}
},
[TRAINER_CHANNELER_TASHA] = {
@@ -5578,7 +5578,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CC28),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC28}
},
[TRAINER_HIKER_JEREMY] = {
@@ -5590,7 +5590,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CC40),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC40}
},
[TRAINER_PICNICKER_ALMA] = {
@@ -5602,7 +5602,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CC50),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC50}
},
[TRAINER_PICNICKER_SUSIE] = {
@@ -5614,7 +5614,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823CC68),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC68}
},
[TRAINER_PICNICKER_VALERIE] = {
@@ -5626,7 +5626,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CC90),
.party = {.NoItemDefaultMoves = sTrainerMons_823CC90}
},
[TRAINER_PICNICKER_GWEN] = {
@@ -5638,7 +5638,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823CCA0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CCA0}
},
[TRAINER_BIKER_VIRGIL] = {
@@ -5650,7 +5650,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CCC0),
.party = {.NoItemCustomMoves = sTrainerMons_823CCC0}
},
[TRAINER_CAMPER_FLINT] = {
@@ -5662,7 +5662,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CCF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CCF0}
},
[TRAINER_PICNICKER_MISSY] = {
@@ -5674,7 +5674,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CD00),
.party = {.NoItemDefaultMoves = sTrainerMons_823CD00}
},
[TRAINER_PICNICKER_IRENE] = {
@@ -5686,7 +5686,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CD10),
.party = {.NoItemDefaultMoves = sTrainerMons_823CD10}
},
[TRAINER_PICNICKER_DANA] = {
@@ -5698,7 +5698,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CD28),
.party = {.NoItemDefaultMoves = sTrainerMons_823CD28}
},
[TRAINER_PICNICKER_ARIANA] = {
@@ -5710,7 +5710,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823CD40),
.party = {.NoItemDefaultMoves = sTrainerMons_823CD40}
},
[TRAINER_PICNICKER_LEAH] = {
@@ -5722,7 +5722,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CD60),
.party = {.NoItemDefaultMoves = sTrainerMons_823CD60}
},
[TRAINER_CAMPER_JUSTIN] = {
@@ -5734,7 +5734,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CD70),
.party = {.NoItemDefaultMoves = sTrainerMons_823CD70}
},
[TRAINER_PICNICKER_YAZMIN] = {
@@ -5746,7 +5746,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CD80),
.party = {.NoItemDefaultMoves = sTrainerMons_823CD80}
},
[TRAINER_PICNICKER_KINDRA] = {
@@ -5758,7 +5758,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CD98),
.party = {.NoItemDefaultMoves = sTrainerMons_823CD98}
},
[TRAINER_PICNICKER_BECKY] = {
@@ -5770,7 +5770,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CDB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CDB0}
},
[TRAINER_PICNICKER_CELIA] = {
@@ -5782,7 +5782,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CDC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CDC0}
},
[TRAINER_GENTLEMAN_BROOKS] = {
@@ -5794,7 +5794,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CDC8),
.party = {.NoItemDefaultMoves = sTrainerMons_823CDC8}
},
[TRAINER_GENTLEMAN_LAMAR] = {
@@ -5806,7 +5806,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CDD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CDD0}
},
[TRAINER_TWINS_ELI_ANNE] = {
@@ -5818,7 +5818,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CDE0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CDE0}
},
[TRAINER_COOL_COUPLE_RAY_TYRA] = {
@@ -5830,7 +5830,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CDF0),
.party = {.NoItemCustomMoves = sTrainerMons_823CDF0}
},
[TRAINER_YOUNG_COUPLE_GIA_JES] = {
@@ -5842,7 +5842,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CE10),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE10}
},
[TRAINER_TWINS_KIRI_JAN] = {
@@ -5854,7 +5854,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CE20),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE20}
},
[TRAINER_CRUSH_KIN_RON_MYA] = {
@@ -5866,7 +5866,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CE30),
.party = {.ItemDefaultMoves = sTrainerMons_823CE30}
},
[TRAINER_YOUNG_COUPLE_LEA_JED] = {
@@ -5878,7 +5878,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CE40),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE40}
},
[TRAINER_SIS_AND_BRO_LIA_LUC] = {
@@ -5890,7 +5890,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CE50),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE50}
},
[TRAINER_SIS_AND_BRO_LIL_IAN] = {
@@ -5902,7 +5902,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CE60),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE60}
},
[TRAINER_BUG_CATCHER_3] = {
@@ -5914,7 +5914,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CE70),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE70}
},
[TRAINER_BUG_CATCHER_4] = {
@@ -5926,7 +5926,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CE78),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE78}
},
[TRAINER_BUG_CATCHER_5] = {
@@ -5938,7 +5938,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CE80),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE80}
},
[TRAINER_BUG_CATCHER_6] = {
@@ -5950,7 +5950,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CE88),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE88}
},
[TRAINER_BUG_CATCHER_7] = {
@@ -5962,7 +5962,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CE90),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE90}
},
[TRAINER_BUG_CATCHER_8] = {
@@ -5974,7 +5974,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CE98),
.party = {.NoItemDefaultMoves = sTrainerMons_823CE98}
},
[TRAINER_YOUNGSTER_BEN_3] = {
@@ -5986,7 +5986,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CEA0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CEA0}
},
[TRAINER_YOUNGSTER_BEN_4] = {
@@ -5998,7 +5998,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CEB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CEB0}
},
[TRAINER_YOUNGSTER_CHAD_2] = {
@@ -6010,7 +6010,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CEC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CEC0}
},
[TRAINER_LASS_RELI_2] = {
@@ -6022,7 +6022,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CED0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CED0}
},
[TRAINER_LASS_RELI_3] = {
@@ -6034,7 +6034,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CEE0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CEE0}
},
[TRAINER_YOUNGSTER_TIMMY_2] = {
@@ -6046,7 +6046,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CEF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CEF0}
},
[TRAINER_YOUNGSTER_TIMMY_3] = {
@@ -6058,7 +6058,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CF08),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF08}
},
[TRAINER_YOUNGSTER_TIMMY_4] = {
@@ -6070,7 +6070,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CF20),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF20}
},
[TRAINER_YOUNGSTER_CHAD_3] = {
@@ -6082,7 +6082,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CF38),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF38}
},
[TRAINER_LASS_JANICE_2] = {
@@ -6094,7 +6094,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CF48),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF48}
},
[TRAINER_LASS_JANICE_3] = {
@@ -6106,7 +6106,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CF58),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF58}
},
[TRAINER_YOUNGSTER_CHAD_4] = {
@@ -6118,7 +6118,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CF68),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF68}
},
[TRAINER_HIKER_FRANKLIN_2] = {
@@ -6130,7 +6130,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CF78),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF78}
},
[TRAINER_PKMN_PROF_PROF_OAK] = {
@@ -6142,7 +6142,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CF88),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF88}
},
[TRAINER_PLAYER_BRENDAN] = {
@@ -6154,7 +6154,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CF90),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF90}
},
[TRAINER_PLAYER_MAY] = {
@@ -6166,7 +6166,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CF98),
.party = {.NoItemDefaultMoves = sTrainerMons_823CF98}
},
[TRAINER_PLAYER_RED] = {
@@ -6178,7 +6178,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CFA0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CFA0}
},
[TRAINER_PLAYER_LEAF] = {
@@ -6190,7 +6190,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823CFA8),
.party = {.NoItemDefaultMoves = sTrainerMons_823CFA8}
},
[TRAINER_TEAM_ROCKET_GRUNT_42] = {
@@ -6202,7 +6202,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CFB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823CFB0}
},
[TRAINER_PSYCHIC_JACLYN] = {
@@ -6214,7 +6214,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823CFC0),
.party = {.NoItemCustomMoves = sTrainerMons_823CFC0}
},
[TRAINER_CRUSH_GIRL_SHARON] = {
@@ -6226,7 +6226,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823CFF0),
.party = {.ItemDefaultMoves = sTrainerMons_823CFF0}
},
[TRAINER_TUBER_AMIRA] = {
@@ -6238,7 +6238,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D000),
.party = {.NoItemDefaultMoves = sTrainerMons_823D000}
},
[TRAINER_PKMN_BREEDER_ALIZE] = {
@@ -6250,7 +6250,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D018),
.party = {.NoItemDefaultMoves = sTrainerMons_823D018}
},
[TRAINER_PKMN_RANGER_NICOLAS] = {
@@ -6262,7 +6262,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D030),
.party = {.NoItemCustomMoves = sTrainerMons_823D030}
},
[TRAINER_PKMN_RANGER_MADELINE] = {
@@ -6274,7 +6274,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D050),
.party = {.NoItemCustomMoves = sTrainerMons_823D050}
},
[TRAINER_AROMA_LADY_NIKKI] = {
@@ -6286,7 +6286,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D070),
.party = {.NoItemDefaultMoves = sTrainerMons_823D070}
},
[TRAINER_RUIN_MANIAC_STANLY] = {
@@ -6298,7 +6298,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D080),
.party = {.NoItemDefaultMoves = sTrainerMons_823D080}
},
[TRAINER_LADY_JACKI] = {
@@ -6310,7 +6310,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D098),
.party = {.ItemDefaultMoves = sTrainerMons_823D098}
},
[TRAINER_PAINTER_DAISY] = {
@@ -6322,7 +6322,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D0A8),
.party = {.NoItemCustomMoves = sTrainerMons_823D0A8}
},
[TRAINER_BIKER_GOON] = {
@@ -6334,7 +6334,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D0B8),
.party = {.NoItemCustomMoves = sTrainerMons_823D0B8}
},
[TRAINER_BIKER_GOON_2] = {
@@ -6346,7 +6346,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D0D8),
.party = {.NoItemCustomMoves = sTrainerMons_823D0D8}
},
[TRAINER_BIKER_GOON_3] = {
@@ -6358,7 +6358,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D0E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D0E8}
},
[TRAINER_BIKER_2] = {
@@ -6370,7 +6370,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D0F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D0F0}
},
[TRAINER_BUG_CATCHER_ANTHONY] = {
@@ -6382,7 +6382,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D0F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D0F8}
},
[TRAINER_BUG_CATCHER_CHARLIE] = {
@@ -6394,7 +6394,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D108),
.party = {.NoItemDefaultMoves = sTrainerMons_823D108}
},
[TRAINER_TWINS_ELI_ANNE_2] = {
@@ -6406,7 +6406,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D120),
.party = {.NoItemDefaultMoves = sTrainerMons_823D120}
},
[TRAINER_YOUNGSTER_JOHNSON] = {
@@ -6418,7 +6418,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D130),
.party = {.NoItemDefaultMoves = sTrainerMons_823D130}
},
[TRAINER_BIKER_RICARDO] = {
@@ -6430,7 +6430,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D148),
.party = {.NoItemCustomMoves = sTrainerMons_823D148}
},
[TRAINER_BIKER_JAREN] = {
@@ -6442,7 +6442,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D178),
.party = {.NoItemDefaultMoves = sTrainerMons_823D178}
},
[TRAINER_TEAM_ROCKET_GRUNT_43] = {
@@ -6454,7 +6454,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D188),
.party = {.NoItemDefaultMoves = sTrainerMons_823D188}
},
[TRAINER_TEAM_ROCKET_GRUNT_44] = {
@@ -6466,7 +6466,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823D198),
.party = {.NoItemDefaultMoves = sTrainerMons_823D198}
},
[TRAINER_TEAM_ROCKET_GRUNT_45] = {
@@ -6478,7 +6478,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D1B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D1B8}
},
[TRAINER_TEAM_ROCKET_GRUNT_46] = {
@@ -6490,7 +6490,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D1D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D1D0}
},
[TRAINER_TEAM_ROCKET_GRUNT_47] = {
@@ -6502,7 +6502,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D1E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D1E8}
},
[TRAINER_TEAM_ROCKET_GRUNT_48] = {
@@ -6514,7 +6514,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D200),
.party = {.NoItemDefaultMoves = sTrainerMons_823D200}
},
[TRAINER_TEAM_ROCKET_ADMIN] = {
@@ -6526,7 +6526,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D210),
.party = {.NoItemCustomMoves = sTrainerMons_823D210}
},
[TRAINER_TEAM_ROCKET_ADMIN_2] = {
@@ -6538,7 +6538,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D240),
.party = {.NoItemCustomMoves = sTrainerMons_823D240}
},
[TRAINER_SCIENTIST_GIDEON] = {
@@ -6550,7 +6550,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823D270),
.party = {.NoItemCustomMoves = sTrainerMons_823D270}
},
[TRAINER_SWIMMER_FEMALE_AMARA] = {
@@ -6562,7 +6562,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D2C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D2C0}
},
[TRAINER_SWIMMER_FEMALE_MARIA] = {
@@ -6574,7 +6574,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D2D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D2D8}
},
[TRAINER_SWIMMER_FEMALE_ABIGAIL] = {
@@ -6586,7 +6586,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D2E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D2E8}
},
[TRAINER_SWIMMER_MALE_FINN] = {
@@ -6598,7 +6598,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D300),
.party = {.NoItemDefaultMoves = sTrainerMons_823D300}
},
[TRAINER_SWIMMER_MALE_GARRETT] = {
@@ -6610,7 +6610,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D308),
.party = {.NoItemDefaultMoves = sTrainerMons_823D308}
},
[TRAINER_FISHERMAN_TOMMY] = {
@@ -6622,7 +6622,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823D320),
.party = {.NoItemDefaultMoves = sTrainerMons_823D320}
},
[TRAINER_CRUSH_GIRL_TANYA] = {
@@ -6634,7 +6634,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D348),
.party = {.ItemDefaultMoves = sTrainerMons_823D348}
},
[TRAINER_BLACK_BELT_SHEA] = {
@@ -6646,7 +6646,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D358),
.party = {.ItemDefaultMoves = sTrainerMons_823D358}
},
[TRAINER_BLACK_BELT_HUGH] = {
@@ -6658,7 +6658,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D368),
.party = {.ItemDefaultMoves = sTrainerMons_823D368}
},
[TRAINER_CAMPER_BRYCE] = {
@@ -6670,7 +6670,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D378),
.party = {.NoItemDefaultMoves = sTrainerMons_823D378}
},
[TRAINER_PICNICKER_CLAIRE] = {
@@ -6682,7 +6682,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823D390),
.party = {.NoItemDefaultMoves = sTrainerMons_823D390}
},
[TRAINER_CRUSH_KIN_MIK_KIA] = {
@@ -6694,7 +6694,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D3B0),
.party = {.ItemDefaultMoves = sTrainerMons_823D3B0}
},
[TRAINER_AROMA_LADY_VIOLET] = {
@@ -6706,7 +6706,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D3C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D3C0}
},
[TRAINER_TUBER_ALEXIS] = {
@@ -6718,7 +6718,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823D3D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D3D8}
},
[TRAINER_TWINS_JOY_MEG] = {
@@ -6730,7 +6730,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D3F8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D3F8}
},
[TRAINER_SWIMMER_FEMALE_TISHA] = {
@@ -6742,7 +6742,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D408),
.party = {.NoItemDefaultMoves = sTrainerMons_823D408}
},
[TRAINER_PAINTER_CELINA] = {
@@ -6754,7 +6754,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D410),
.party = {.NoItemCustomMoves = sTrainerMons_823D410}
},
[TRAINER_PAINTER_RAYNA] = {
@@ -6766,7 +6766,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D420),
.party = {.NoItemCustomMoves = sTrainerMons_823D420}
},
[TRAINER_LADY_GILLIAN] = {
@@ -6778,7 +6778,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D430),
.party = {.ItemDefaultMoves = sTrainerMons_823D430}
},
[TRAINER_YOUNGSTER_DESTIN] = {
@@ -6790,7 +6790,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D448),
.party = {.NoItemDefaultMoves = sTrainerMons_823D448}
},
[TRAINER_SWIMMER_MALE_TOBY] = {
@@ -6802,7 +6802,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D458),
.party = {.NoItemDefaultMoves = sTrainerMons_823D458}
},
[TRAINER_TEAM_ROCKET_GRUNT_49] = {
@@ -6814,7 +6814,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D470),
.party = {.NoItemDefaultMoves = sTrainerMons_823D470}
},
[TRAINER_TEAM_ROCKET_GRUNT_50] = {
@@ -6826,7 +6826,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D488),
.party = {.NoItemCustomMoves = sTrainerMons_823D488}
},
[TRAINER_TEAM_ROCKET_GRUNT_51] = {
@@ -6838,7 +6838,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D4A8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D4A8}
},
[TRAINER_BIRD_KEEPER_MILO] = {
@@ -6850,7 +6850,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D4C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D4C0}
},
[TRAINER_BIRD_KEEPER_CHAZ] = {
@@ -6862,7 +6862,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D4D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D4D0}
},
[TRAINER_BIRD_KEEPER_HAROLD] = {
@@ -6874,7 +6874,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D4E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D4E0}
},
[TRAINER_FISHERMAN_TYLOR] = {
@@ -6886,7 +6886,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D4F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D4F0}
},
[TRAINER_SWIMMER_MALE_MYMO] = {
@@ -6898,7 +6898,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D500),
.party = {.NoItemDefaultMoves = sTrainerMons_823D500}
},
[TRAINER_SWIMMER_FEMALE_NICOLE] = {
@@ -6910,7 +6910,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D510),
.party = {.NoItemDefaultMoves = sTrainerMons_823D510}
},
[TRAINER_SIS_AND_BRO_AVA_GEB] = {
@@ -6922,7 +6922,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D518),
.party = {.NoItemDefaultMoves = sTrainerMons_823D518}
},
[TRAINER_AROMA_LADY_ROSE] = {
@@ -6934,7 +6934,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D528),
.party = {.NoItemDefaultMoves = sTrainerMons_823D528}
},
[TRAINER_SWIMMER_MALE_SAMIR] = {
@@ -6946,7 +6946,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D538),
.party = {.NoItemDefaultMoves = sTrainerMons_823D538}
},
[TRAINER_SWIMMER_FEMALE_DENISE] = {
@@ -6958,7 +6958,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D540),
.party = {.NoItemDefaultMoves = sTrainerMons_823D540}
},
[TRAINER_TWINS_MIU_MIA] = {
@@ -6970,7 +6970,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D550),
.party = {.NoItemDefaultMoves = sTrainerMons_823D550}
},
[TRAINER_HIKER_EARL] = {
@@ -6982,7 +6982,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D560),
.party = {.NoItemDefaultMoves = sTrainerMons_823D560}
},
[TRAINER_RUIN_MANIAC_FOSTER] = {
@@ -6994,7 +6994,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D570),
.party = {.NoItemDefaultMoves = sTrainerMons_823D570}
},
[TRAINER_RUIN_MANIAC_LARRY] = {
@@ -7006,7 +7006,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D578),
.party = {.NoItemDefaultMoves = sTrainerMons_823D578}
},
[TRAINER_HIKER_DARYL] = {
@@ -7018,7 +7018,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D588),
.party = {.NoItemDefaultMoves = sTrainerMons_823D588}
},
[TRAINER_POKEMANIAC_HECTOR] = {
@@ -7030,7 +7030,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D590),
.party = {.NoItemDefaultMoves = sTrainerMons_823D590}
},
[TRAINER_PSYCHIC_DARIO] = {
@@ -7042,7 +7042,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D5A0),
.party = {.NoItemCustomMoves = sTrainerMons_823D5A0}
},
[TRAINER_PSYCHIC_RODETTE] = {
@@ -7054,7 +7054,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D5B0),
.party = {.NoItemCustomMoves = sTrainerMons_823D5B0}
},
[TRAINER_AROMA_LADY_MIAH] = {
@@ -7066,7 +7066,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D5E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D5E0}
},
[TRAINER_YOUNG_COUPLE_EVE_JON] = {
@@ -7078,7 +7078,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D5F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D5F0}
},
[TRAINER_JUGGLER_MASON] = {
@@ -7090,7 +7090,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823D600),
.party = {.NoItemCustomMoves = sTrainerMons_823D600}
},
[TRAINER_CRUSH_GIRL_CYNDY] = {
@@ -7102,7 +7102,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D640),
.party = {.ItemDefaultMoves = sTrainerMons_823D640}
},
[TRAINER_CRUSH_GIRL_JOCELYN] = {
@@ -7114,7 +7114,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D658),
.party = {.ItemDefaultMoves = sTrainerMons_823D658}
},
[TRAINER_TAMER_EVAN] = {
@@ -7126,7 +7126,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D668),
.party = {.NoItemDefaultMoves = sTrainerMons_823D668}
},
[TRAINER_POKEMANIAC_MARK_2] = {
@@ -7138,7 +7138,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D680),
.party = {.NoItemDefaultMoves = sTrainerMons_823D680}
},
[TRAINER_PKMN_RANGER_LOGAN] = {
@@ -7150,7 +7150,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D690),
.party = {.NoItemCustomMoves = sTrainerMons_823D690}
},
[TRAINER_PKMN_RANGER_JACKSON] = {
@@ -7162,7 +7162,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D6B0),
.party = {.NoItemCustomMoves = sTrainerMons_823D6B0}
},
[TRAINER_PKMN_RANGER_BETH] = {
@@ -7174,7 +7174,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D6E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D6E0}
},
[TRAINER_PKMN_RANGER_KATELYN] = {
@@ -7186,7 +7186,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D6F8),
.party = {.NoItemCustomMoves = sTrainerMons_823D6F8}
},
[TRAINER_COOLTRAINER_LEROY] = {
@@ -7198,7 +7198,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823D708),
.party = {.NoItemCustomMoves = sTrainerMons_823D708}
},
[TRAINER_COOLTRAINER_MICHELLE] = {
@@ -7210,7 +7210,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823D758),
.party = {.NoItemCustomMoves = sTrainerMons_823D758}
},
[TRAINER_COOL_COUPLE_LEX_NYA] = {
@@ -7222,7 +7222,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D7A8),
.party = {.NoItemCustomMoves = sTrainerMons_823D7A8}
},
[TRAINER_RUIN_MANIAC_BRANDON] = {
@@ -7234,7 +7234,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D7C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D7C8}
},
[TRAINER_RUIN_MANIAC_BENJAMIN] = {
@@ -7246,7 +7246,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D7D0),
.party = {.NoItemCustomMoves = sTrainerMons_823D7D0}
},
[TRAINER_PAINTER_EDNA] = {
@@ -7258,7 +7258,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D800),
.party = {.NoItemCustomMoves = sTrainerMons_823D800}
},
[TRAINER_GENTLEMAN_CLIFFORD] = {
@@ -7270,7 +7270,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D810),
.party = {.NoItemDefaultMoves = sTrainerMons_823D810}
},
[TRAINER_LADY_SELPHY] = {
@@ -7282,7 +7282,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D820),
.party = {.ItemCustomMoves = sTrainerMons_823D820}
},
[TRAINER_RUIN_MANIAC_LAWSON] = {
@@ -7294,7 +7294,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D840),
.party = {.NoItemDefaultMoves = sTrainerMons_823D840}
},
[TRAINER_PSYCHIC_LAURA] = {
@@ -7306,7 +7306,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D858),
.party = {.NoItemDefaultMoves = sTrainerMons_823D858}
},
[TRAINER_PKMN_BREEDER_BETHANY] = {
@@ -7318,7 +7318,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D870),
.party = {.NoItemDefaultMoves = sTrainerMons_823D870}
},
[TRAINER_PKMN_BREEDER_ALLISON] = {
@@ -7330,7 +7330,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D878),
.party = {.NoItemDefaultMoves = sTrainerMons_823D878}
},
[TRAINER_BUG_CATCHER_GARRET] = {
@@ -7342,7 +7342,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D890),
.party = {.NoItemDefaultMoves = sTrainerMons_823D890}
},
[TRAINER_BUG_CATCHER_JONAH] = {
@@ -7354,7 +7354,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823D898),
.party = {.NoItemDefaultMoves = sTrainerMons_823D898}
},
[TRAINER_BUG_CATCHER_VANCE] = {
@@ -7366,7 +7366,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D8B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D8B8}
},
[TRAINER_YOUNGSTER_NASH] = {
@@ -7378,7 +7378,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D8C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D8C8}
},
[TRAINER_YOUNGSTER_CORDELL] = {
@@ -7390,7 +7390,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D8E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D8E0}
},
[TRAINER_LASS_DALIA] = {
@@ -7402,7 +7402,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823D8F0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D8F0}
},
[TRAINER_LASS_JOANA] = {
@@ -7414,7 +7414,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D910),
.party = {.NoItemDefaultMoves = sTrainerMons_823D910}
},
[TRAINER_CAMPER_RILEY] = {
@@ -7426,7 +7426,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D918),
.party = {.NoItemDefaultMoves = sTrainerMons_823D918}
},
[TRAINER_PICNICKER_MARCY] = {
@@ -7438,7 +7438,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D928),
.party = {.NoItemDefaultMoves = sTrainerMons_823D928}
},
[TRAINER_RUIN_MANIAC_LAYTON] = {
@@ -7450,7 +7450,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D940),
.party = {.NoItemDefaultMoves = sTrainerMons_823D940}
},
[TRAINER_PICNICKER_KELSEY_2] = {
@@ -7462,7 +7462,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D958),
.party = {.NoItemDefaultMoves = sTrainerMons_823D958}
},
[TRAINER_PICNICKER_KELSEY_3] = {
@@ -7474,7 +7474,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D968),
.party = {.NoItemDefaultMoves = sTrainerMons_823D968}
},
[TRAINER_PICNICKER_KELSEY_4] = {
@@ -7486,7 +7486,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D978),
.party = {.NoItemDefaultMoves = sTrainerMons_823D978}
},
[TRAINER_CAMPER_RICKY_2] = {
@@ -7498,7 +7498,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D988),
.party = {.NoItemDefaultMoves = sTrainerMons_823D988}
},
[TRAINER_CAMPER_RICKY_3] = {
@@ -7510,7 +7510,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D990),
.party = {.NoItemDefaultMoves = sTrainerMons_823D990}
},
[TRAINER_CAMPER_RICKY_4] = {
@@ -7522,7 +7522,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823D998),
.party = {.NoItemDefaultMoves = sTrainerMons_823D998}
},
[TRAINER_CAMPER_JEFF_2] = {
@@ -7534,7 +7534,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D9A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D9A0}
},
[TRAINER_CAMPER_JEFF_3] = {
@@ -7546,7 +7546,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D9B0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D9B0}
},
[TRAINER_CAMPER_JEFF_4] = {
@@ -7558,7 +7558,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823D9C0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D9C0}
},
[TRAINER_PICNICKER_ISABELLE_2] = {
@@ -7570,7 +7570,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D9D0),
.party = {.NoItemDefaultMoves = sTrainerMons_823D9D0}
},
[TRAINER_PICNICKER_ISABELLE_3] = {
@@ -7582,7 +7582,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823D9E8),
.party = {.NoItemDefaultMoves = sTrainerMons_823D9E8}
},
[TRAINER_PICNICKER_ISABELLE_4] = {
@@ -7594,7 +7594,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DA00),
.party = {.NoItemDefaultMoves = sTrainerMons_823DA00}
},
[TRAINER_YOUNGSTER_YASU_2] = {
@@ -7606,7 +7606,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DA18),
.party = {.NoItemDefaultMoves = sTrainerMons_823DA18}
},
[TRAINER_YOUNGSTER_YASU_3] = {
@@ -7618,7 +7618,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DA30),
.party = {.NoItemDefaultMoves = sTrainerMons_823DA30}
},
[TRAINER_ENGINEER_BERNIE_2] = {
@@ -7630,7 +7630,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DA48),
.party = {.NoItemDefaultMoves = sTrainerMons_823DA48}
},
[TRAINER_GAMER_DARIAN_2] = {
@@ -7642,7 +7642,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DA60),
.party = {.NoItemDefaultMoves = sTrainerMons_823DA60}
},
[TRAINER_CAMPER_CHRIS_2] = {
@@ -7654,7 +7654,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DA70),
.party = {.NoItemDefaultMoves = sTrainerMons_823DA70}
},
[TRAINER_CAMPER_CHRIS_3] = {
@@ -7666,7 +7666,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DA80),
.party = {.NoItemDefaultMoves = sTrainerMons_823DA80}
},
[TRAINER_CAMPER_CHRIS_4] = {
@@ -7678,7 +7678,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DA90),
.party = {.NoItemDefaultMoves = sTrainerMons_823DA90}
},
[TRAINER_PICNICKER_ALICIA_2] = {
@@ -7690,7 +7690,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823DAA0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DAA0}
},
[TRAINER_PICNICKER_ALICIA_3] = {
@@ -7702,7 +7702,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823DAA8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DAA8}
},
[TRAINER_PICNICKER_ALICIA_4] = {
@@ -7714,7 +7714,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823DAB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DAB0}
},
[TRAINER_HIKER_JEREMY_2] = {
@@ -7726,7 +7726,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DAB8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DAB8}
},
[TRAINER_POKEMANIAC_MARK_3] = {
@@ -7738,7 +7738,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DAC8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DAC8}
},
[TRAINER_POKEMANIAC_HERMAN_2] = {
@@ -7750,7 +7750,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DAD8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DAD8}
},
[TRAINER_POKEMANIAC_HERMAN_3] = {
@@ -7762,7 +7762,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DAE8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DAE8}
},
[TRAINER_HIKER_TRENT_2] = {
@@ -7774,7 +7774,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DAF8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DAF8}
},
[TRAINER_LASS_MEGAN_2] = {
@@ -7786,7 +7786,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823DB08),
.party = {.NoItemDefaultMoves = sTrainerMons_823DB08}
},
[TRAINER_LASS_MEGAN_3] = {
@@ -7798,7 +7798,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823DB30),
.party = {.NoItemDefaultMoves = sTrainerMons_823DB30}
},
[TRAINER_SUPER_NERD_GLENN_2] = {
@@ -7810,7 +7810,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DB58),
.party = {.NoItemDefaultMoves = sTrainerMons_823DB58}
},
[TRAINER_GAMER_RICH_2] = {
@@ -7822,7 +7822,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DB70),
.party = {.NoItemDefaultMoves = sTrainerMons_823DB70}
},
[TRAINER_BIKER_JAREN_2] = {
@@ -7834,7 +7834,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DB80),
.party = {.NoItemDefaultMoves = sTrainerMons_823DB80}
},
[TRAINER_FISHERMAN_ELLIOT_2] = {
@@ -7846,7 +7846,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823DB90),
.party = {.NoItemDefaultMoves = sTrainerMons_823DB90}
},
[TRAINER_ROCKER_LUCA_2] = {
@@ -7858,7 +7858,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DBB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DBB0}
},
[TRAINER_BEAUTY_SHEILA_2] = {
@@ -7870,7 +7870,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DBC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DBC0}
},
[TRAINER_BIRD_KEEPER_ROBERT_2] = {
@@ -7882,7 +7882,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823DBD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DBD0}
},
[TRAINER_BIRD_KEEPER_ROBERT_3] = {
@@ -7894,7 +7894,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823DBF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DBF0}
},
[TRAINER_PICNICKER_SUSIE_2] = {
@@ -7906,7 +7906,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823DC10),
.party = {.NoItemDefaultMoves = sTrainerMons_823DC10}
},
[TRAINER_PICNICKER_SUSIE_3] = {
@@ -7918,7 +7918,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823DC38),
.party = {.NoItemDefaultMoves = sTrainerMons_823DC38}
},
[TRAINER_PICNICKER_SUSIE_4] = {
@@ -7930,7 +7930,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823DC60),
.party = {.NoItemDefaultMoves = sTrainerMons_823DC60}
},
[TRAINER_BIKER_LUKAS_2] = {
@@ -7942,7 +7942,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823DC88),
.party = {.NoItemDefaultMoves = sTrainerMons_823DC88}
},
[TRAINER_BIRD_KEEPER_BENNY_2] = {
@@ -7954,7 +7954,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DCA8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DCA8}
},
[TRAINER_BIRD_KEEPER_BENNY_3] = {
@@ -7966,7 +7966,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DCB8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DCB8}
},
[TRAINER_BIRD_KEEPER_MARLON_2] = {
@@ -7978,7 +7978,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DCC8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DCC8}
},
[TRAINER_BIRD_KEEPER_MARLON_3] = {
@@ -7990,7 +7990,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DCE0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DCE0}
},
[TRAINER_BEAUTY_GRACE_2] = {
@@ -8002,7 +8002,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DCF8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DCF8}
},
[TRAINER_BIRD_KEEPER_CHESTER_2] = {
@@ -8014,7 +8014,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DD08),
.party = {.NoItemDefaultMoves = sTrainerMons_823DD08}
},
[TRAINER_BIRD_KEEPER_CHESTER_3] = {
@@ -8026,7 +8026,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DD20),
.party = {.NoItemDefaultMoves = sTrainerMons_823DD20}
},
[TRAINER_PICNICKER_BECKY_2] = {
@@ -8038,7 +8038,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DD38),
.party = {.NoItemDefaultMoves = sTrainerMons_823DD38}
},
[TRAINER_PICNICKER_BECKY_3] = {
@@ -8050,7 +8050,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DD48),
.party = {.NoItemDefaultMoves = sTrainerMons_823DD48}
},
[TRAINER_PICNICKER_BECKY_4] = {
@@ -8062,7 +8062,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DD58),
.party = {.NoItemDefaultMoves = sTrainerMons_823DD58}
},
[TRAINER_CRUSH_KIN_RON_MYA_2] = {
@@ -8074,7 +8074,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DD68),
.party = {.ItemDefaultMoves = sTrainerMons_823DD68}
},
[TRAINER_CRUSH_KIN_RON_MYA_3] = {
@@ -8086,7 +8086,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DD78),
.party = {.ItemDefaultMoves = sTrainerMons_823DD78}
},
[TRAINER_CRUSH_KIN_RON_MYA_4] = {
@@ -8098,7 +8098,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DD88),
.party = {.ItemDefaultMoves = sTrainerMons_823DD88}
},
[TRAINER_BIKER_RUBEN_2] = {
@@ -8110,7 +8110,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DD98),
.party = {.NoItemDefaultMoves = sTrainerMons_823DD98}
},
[TRAINER_CUE_BALL_CAMRON_2] = {
@@ -8122,7 +8122,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DDB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DDB0}
},
[TRAINER_BIKER_JAXON_2] = {
@@ -8134,7 +8134,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DDC0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DDC0}
},
[TRAINER_CUE_BALL_ISAIAH_2] = {
@@ -8146,7 +8146,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DDD0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DDD0}
},
[TRAINER_CUE_BALL_COREY_2] = {
@@ -8158,7 +8158,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DDE0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DDE0}
},
[TRAINER_BIRD_KEEPER_JACOB_2] = {
@@ -8170,7 +8170,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823DDF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DDF0}
},
[TRAINER_BIRD_KEEPER_JACOB_3] = {
@@ -8182,7 +8182,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823DE10),
.party = {.NoItemDefaultMoves = sTrainerMons_823DE10}
},
[TRAINER_SWIMMER_FEMALE_ALICE_2] = {
@@ -8194,7 +8194,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DE30),
.party = {.NoItemDefaultMoves = sTrainerMons_823DE30}
},
[TRAINER_SWIMMER_MALE_DARRIN_2] = {
@@ -8206,7 +8206,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823DE40),
.party = {.NoItemDefaultMoves = sTrainerMons_823DE40}
},
[TRAINER_PICNICKER_MISSY_2] = {
@@ -8218,7 +8218,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DE60),
.party = {.NoItemDefaultMoves = sTrainerMons_823DE60}
},
[TRAINER_PICNICKER_MISSY_3] = {
@@ -8230,7 +8230,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DE70),
.party = {.NoItemDefaultMoves = sTrainerMons_823DE70}
},
[TRAINER_FISHERMAN_WADE_2] = {
@@ -8242,7 +8242,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823DE80),
.party = {.NoItemDefaultMoves = sTrainerMons_823DE80}
},
[TRAINER_SWIMMER_MALE_JACK_2] = {
@@ -8254,7 +8254,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823DEB0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DEB0}
},
[TRAINER_SIS_AND_BRO_LIL_IAN_2] = {
@@ -8266,7 +8266,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DEB8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DEB8}
},
[TRAINER_SIS_AND_BRO_LIL_IAN_3] = {
@@ -8278,7 +8278,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DEC8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DEC8}
},
[TRAINER_SWIMMER_MALE_FINN_2] = {
@@ -8290,7 +8290,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823DED8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DED8}
},
[TRAINER_CRUSH_GIRL_SHARON_2] = {
@@ -8302,7 +8302,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DEE0),
.party = {.ItemDefaultMoves = sTrainerMons_823DEE0}
},
[TRAINER_CRUSH_GIRL_SHARON_3] = {
@@ -8314,7 +8314,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DEF0),
.party = {.ItemDefaultMoves = sTrainerMons_823DEF0}
},
[TRAINER_CRUSH_GIRL_TANYA_2] = {
@@ -8326,7 +8326,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF00),
.party = {.ItemDefaultMoves = sTrainerMons_823DF00}
},
[TRAINER_CRUSH_GIRL_TANYA_3] = {
@@ -8338,7 +8338,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF10),
.party = {.ItemDefaultMoves = sTrainerMons_823DF10}
},
[TRAINER_BLACK_BELT_SHEA_2] = {
@@ -8350,7 +8350,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF20),
.party = {.ItemDefaultMoves = sTrainerMons_823DF20}
},
[TRAINER_BLACK_BELT_SHEA_3] = {
@@ -8362,7 +8362,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF30),
.party = {.ItemDefaultMoves = sTrainerMons_823DF30}
},
[TRAINER_BLACK_BELT_HUGH_2] = {
@@ -8374,7 +8374,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF40),
.party = {.ItemDefaultMoves = sTrainerMons_823DF40}
},
[TRAINER_BLACK_BELT_HUGH_3] = {
@@ -8386,7 +8386,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF50),
.party = {.ItemDefaultMoves = sTrainerMons_823DF50}
},
[TRAINER_CRUSH_KIN_MIK_KIA_2] = {
@@ -8398,7 +8398,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF60),
.party = {.ItemDefaultMoves = sTrainerMons_823DF60}
},
[TRAINER_CRUSH_KIN_MIK_KIA_3] = {
@@ -8410,7 +8410,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF70),
.party = {.ItemDefaultMoves = sTrainerMons_823DF70}
},
[TRAINER_TUBER_AMIRA_2] = {
@@ -8422,7 +8422,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DF80),
.party = {.NoItemDefaultMoves = sTrainerMons_823DF80}
},
[TRAINER_TWINS_JOY_MEG_2] = {
@@ -8434,7 +8434,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DF98),
.party = {.NoItemDefaultMoves = sTrainerMons_823DF98}
},
[TRAINER_PAINTER_RAYNA_2] = {
@@ -8446,7 +8446,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823DFA8),
.party = {.NoItemCustomMoves = sTrainerMons_823DFA8}
},
[TRAINER_YOUNGSTER_DESTIN_2] = {
@@ -8458,7 +8458,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DFB8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DFB8}
},
[TRAINER_PKMN_BREEDER_ALIZE_2] = {
@@ -8470,7 +8470,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823DFC8),
.party = {.NoItemDefaultMoves = sTrainerMons_823DFC8}
},
[TRAINER_YOUNG_COUPLE_GIA_JES_2] = {
@@ -8482,7 +8482,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DFE0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DFE0}
},
[TRAINER_YOUNG_COUPLE_GIA_JES_3] = {
@@ -8494,7 +8494,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823DFF0),
.party = {.NoItemDefaultMoves = sTrainerMons_823DFF0}
},
[TRAINER_BIRD_KEEPER_MILO_2] = {
@@ -8506,7 +8506,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E000),
.party = {.NoItemDefaultMoves = sTrainerMons_823E000}
},
[TRAINER_BIRD_KEEPER_CHAZ_2] = {
@@ -8518,7 +8518,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E010),
.party = {.NoItemDefaultMoves = sTrainerMons_823E010}
},
[TRAINER_BIRD_KEEPER_HAROLD_2] = {
@@ -8530,7 +8530,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E020),
.party = {.NoItemDefaultMoves = sTrainerMons_823E020}
},
[TRAINER_SWIMMER_FEMALE_NICOLE_2] = {
@@ -8542,7 +8542,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823E030),
.party = {.NoItemDefaultMoves = sTrainerMons_823E030}
},
[TRAINER_PSYCHIC_JACLYN_2] = {
@@ -8554,7 +8554,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823E038),
.party = {.NoItemCustomMoves = sTrainerMons_823E038}
},
[TRAINER_SWIMMER_MALE_SAMIR_2] = {
@@ -8566,7 +8566,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823E068),
.party = {.NoItemDefaultMoves = sTrainerMons_823E068}
},
[TRAINER_HIKER_EARL_2] = {
@@ -8578,7 +8578,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E070),
.party = {.NoItemDefaultMoves = sTrainerMons_823E070}
},
[TRAINER_RUIN_MANIAC_LARRY_2] = {
@@ -8590,7 +8590,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E080),
.party = {.NoItemDefaultMoves = sTrainerMons_823E080}
},
[TRAINER_POKEMANIAC_HECTOR_2] = {
@@ -8602,7 +8602,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E090),
.party = {.NoItemDefaultMoves = sTrainerMons_823E090}
},
[TRAINER_PSYCHIC_DARIO_2] = {
@@ -8614,7 +8614,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823E0A0),
.party = {.NoItemCustomMoves = sTrainerMons_823E0A0}
},
[TRAINER_PSYCHIC_RODETTE_2] = {
@@ -8626,7 +8626,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823E0B0),
.party = {.NoItemCustomMoves = sTrainerMons_823E0B0}
},
[TRAINER_JUGGLER_MASON_2] = {
@@ -8638,7 +8638,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 4,
+ .partySize = NELEMS(sTrainerMons_823E0E0),
.party = {.NoItemDefaultMoves = sTrainerMons_823E0E0}
},
[TRAINER_PKMN_RANGER_NICOLAS_2] = {
@@ -8650,7 +8650,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E100),
.party = {.NoItemCustomMoves = sTrainerMons_823E100}
},
[TRAINER_PKMN_RANGER_MADELINE_2] = {
@@ -8662,7 +8662,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E120),
.party = {.NoItemCustomMoves = sTrainerMons_823E120}
},
[TRAINER_CRUSH_GIRL_CYNDY_2] = {
@@ -8674,7 +8674,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823E140),
.party = {.ItemDefaultMoves = sTrainerMons_823E140}
},
[TRAINER_TAMER_EVAN_2] = {
@@ -8686,7 +8686,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823E158),
.party = {.NoItemDefaultMoves = sTrainerMons_823E158}
},
[TRAINER_PKMN_RANGER_JACKSON_2] = {
@@ -8698,7 +8698,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823E170),
.party = {.NoItemCustomMoves = sTrainerMons_823E170}
},
[TRAINER_PKMN_RANGER_KATELYN_2] = {
@@ -8710,7 +8710,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 1,
+ .partySize = NELEMS(sTrainerMons_823E1A0),
.party = {.NoItemCustomMoves = sTrainerMons_823E1A0}
},
[TRAINER_COOLTRAINER_LEROY_2] = {
@@ -8722,7 +8722,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823E1B0),
.party = {.NoItemCustomMoves = sTrainerMons_823E1B0}
},
[TRAINER_COOLTRAINER_MICHELLE_2] = {
@@ -8734,7 +8734,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_HYPER_POTION},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823E200),
.party = {.NoItemCustomMoves = sTrainerMons_823E200}
},
[TRAINER_COOL_COUPLE_LEX_NYA_2] = {
@@ -8746,7 +8746,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = TRUE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E250),
.party = {.NoItemCustomMoves = sTrainerMons_823E250}
},
[TRAINER_BUG_CATCHER_COLTON_2] = {
@@ -8758,7 +8758,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823E270),
.party = {.NoItemDefaultMoves = sTrainerMons_823E270}
},
[TRAINER_BUG_CATCHER_COLTON_3] = {
@@ -8770,7 +8770,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823E288),
.party = {.NoItemDefaultMoves = sTrainerMons_823E288}
},
[TRAINER_BUG_CATCHER_COLTON_4] = {
@@ -8782,7 +8782,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 3,
+ .partySize = NELEMS(sTrainerMons_823E2A0),
.party = {.NoItemDefaultMoves = sTrainerMons_823E2A0}
},
[TRAINER_SWIMMER_MALE_MATTHEW_2] = {
@@ -8794,7 +8794,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E2B8),
.party = {.NoItemDefaultMoves = sTrainerMons_823E2B8}
},
[TRAINER_SWIMMER_MALE_TONY_2] = {
@@ -8806,7 +8806,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E2C8),
.party = {.NoItemDefaultMoves = sTrainerMons_823E2C8}
},
[TRAINER_SWIMMER_FEMALE_MELISSA_2] = {
@@ -8818,7 +8818,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E2D8),
.party = {.NoItemDefaultMoves = sTrainerMons_823E2D8}
},
[TRAINER_ELITE_FOUR_LORELEI_2] = {
@@ -8830,7 +8830,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823E2E8),
.party = {.ItemCustomMoves = sTrainerMons_823E2E8}
},
[TRAINER_ELITE_FOUR_BRUNO_2] = {
@@ -8842,7 +8842,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823E338),
.party = {.ItemCustomMoves = sTrainerMons_823E338}
},
[TRAINER_ELITE_FOUR_AGATHA_2] = {
@@ -8854,7 +8854,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823E388),
.party = {.ItemCustomMoves = sTrainerMons_823E388}
},
[TRAINER_ELITE_FOUR_LANCE_2] = {
@@ -8866,7 +8866,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 5,
+ .partySize = NELEMS(sTrainerMons_823E3D8),
.party = {.ItemCustomMoves = sTrainerMons_823E3D8}
},
[TRAINER_CHAMPION_REMATCH_SQUIRTLE] = {
@@ -8878,7 +8878,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823E428),
.party = {.ItemCustomMoves = sTrainerMons_823E428}
},
[TRAINER_CHAMPION_REMATCH_BULBASAUR] = {
@@ -8890,7 +8890,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823E488),
.party = {.ItemCustomMoves = sTrainerMons_823E488}
},
[TRAINER_CHAMPION_REMATCH_CHARMANDER] = {
@@ -8902,7 +8902,7 @@ const struct Trainer gTrainers[] = {
.items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY,
- .partySize = 6,
+ .partySize = NELEMS(sTrainerMons_823E4E8),
.party = {.ItemCustomMoves = sTrainerMons_823E4E8}
},
[TRAINER_CUE_BALL_PAXTON] = {
@@ -8914,7 +8914,7 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = 2,
+ .partySize = NELEMS(sTrainerMons_823E548),
.party = {.NoItemDefaultMoves = sTrainerMons_823E548}
},
};
diff --git a/src/daycare.c b/src/daycare.c
index 277a382c7..36fb34c79 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "gflib.h"
#include "battle.h"
-#include "daycare.h"
#include "constants/species.h"
#include "constants/items.h"
#include "mail_data.h"
@@ -1816,7 +1815,7 @@ static void CB2_EggHatch_0(void)
break;
case 2:
DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0);
- CopyToBgTilemapBuffer(0, gFile_graphics_interface_menu_map_tilemap, 0, 0);
+ CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0);
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20);
gMain.state++;
break;
diff --git a/src/decompress.c b/src/decompress.c
index caeda738a..3f0c82bce 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -2,7 +2,6 @@
#include "malloc.h"
#include "decompress.h"
#include "pokemon.h"
-#include "text.h"
#include "constants/species.h"
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
diff --git a/src/digit_obj_util.c b/src/digit_obj_util.c
index af2618615..ed762c3c3 100644
--- a/src/digit_obj_util.c
+++ b/src/digit_obj_util.c
@@ -3,7 +3,6 @@
#include "decompress.h"
#include "digit_obj_util.h"
#include "main.h"
-#include "battle.h"
struct DigitPrinterAlloc
{
diff --git a/src/diploma.c b/src/diploma.c
index afb22400b..f702eebd5 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -4,7 +4,6 @@
#include "dynamic_placeholder_text_util.h"
#include "gba/macro.h"
#include "gpu_regs.h"
-#include "gpu_regs.h"
#include "main.h"
#include "malloc.h"
#include "menu.h"
@@ -19,7 +18,6 @@
#include "task.h"
#include "text.h"
#include "window.h"
-#include "diploma.h"
struct Diploma
{
diff --git a/src/dynamic_placeholder_text_util.c b/src/dynamic_placeholder_text_util.c
index a2622bf02..921612cfc 100644
--- a/src/dynamic_placeholder_text_util.c
+++ b/src/dynamic_placeholder_text_util.c
@@ -1,90 +1,89 @@
#include "global.h"
#include "text.h"
-#include "dynamic_placeholder_text_util.h"
#include "string_util.h"
-#include "constants/object_events.h"
+#include "constants/event_objects.h"
static EWRAM_DATA const u8 *sStringPointers[8] = {0};
static const u8 sTextColorTable[] =
{
// [LOW_NYBBLE / 2] = 0xXY, // HIGH_NYBBLE
- [OBJECT_EVENT_GFX_RED_NORMAL / 2] = 0x00, // OBJECT_EVENT_GFX_RED_BIKE
- [OBJECT_EVENT_GFX_RED_RUN / 2] = 0x00, // OBJECT_EVENT_GFX_RED_ITEM
- [OBJECT_EVENT_GFX_RED_FISH / 2] = 0x00, // OBJECT_EVENT_GFX_RED_ITEM_COPY
- [OBJECT_EVENT_GFX_RED_VS_SEEKER / 2] = 0x10, // OBJECT_EVENT_GFX_GREEN_NORMAL
- [OBJECT_EVENT_GFX_GREEN_BIKE / 2] = 0x11, // OBJECT_EVENT_GFX_GREEN_RUN
- [OBJECT_EVENT_GFX_GREEN_ITEM / 2] = 0x11, // OBJECT_EVENT_GFX_GREEN_FISH
- [OBJECT_EVENT_GFX_GREEN_ITEM_COPY / 2] = 0x11, // OBJECT_EVENT_GFX_GREEN_VS_SEEKER
- [OBJECT_EVENT_GFX_RS_BRENDAN / 2] = 0x10, // OBJECT_EVENT_GFX_RS_MAY
- [OBJECT_EVENT_GFX_LITTLE_BOY / 2] = 0x10, // OBJECT_EVENT_GFX_LITTLE_GIRL
- [OBJECT_EVENT_GFX_YOUNGSTER / 2] = 0x00, // OBJECT_EVENT_GFX_BOY
- [OBJECT_EVENT_GFX_BUG_CATCHER / 2] = 0x00, // OBJECT_EVENT_GFX_SITTING_BOY
- [OBJECT_EVENT_GFX_LASS / 2] = 0x11, // OBJECT_EVENT_GFX_WOMAN_1
- [OBJECT_EVENT_GFX_BATTLE_GIRL / 2] = 0x01, // OBJECT_EVENT_GFX_MAN
- [OBJECT_EVENT_GFX_ROCKER / 2] = 0x00, // OBJECT_EVENT_GFX_FAT_MAN
- [OBJECT_EVENT_GFX_WOMAN_2 / 2] = 0x11, // OBJECT_EVENT_GFX_BEAUTY
- [OBJECT_EVENT_GFX_BALDING_MAN / 2] = 0x10, // OBJECT_EVENT_GFX_WOMAN_3
- [OBJECT_EVENT_GFX_OLD_MAN_1 / 2] = 0x00, // OBJECT_EVENT_GFX_OLD_MAN_2
- [OBJECT_EVENT_GFX_OLD_MAN_LYING_DOWN / 2] = 0x10, // OBJECT_EVENT_GFX_OLD_WOMAN
- [OBJECT_EVENT_GFX_TUBER_M_1 / 2] = 0x10, // OBJECT_EVENT_GFX_TUBER_F
- [OBJECT_EVENT_GFX_TUBER_M_2 / 2] = 0x00, // OBJECT_EVENT_GFX_CAMPER
- [OBJECT_EVENT_GFX_PICNICKER / 2] = 0x01, // OBJECT_EVENT_GFX_COOLTRAINER_M
- [OBJECT_EVENT_GFX_COOLTRAINER_F / 2] = 0x01, // OBJECT_EVENT_GFX_SWIMMER_M_WATER
- [OBJECT_EVENT_GFX_SWIMMER_F_WATER / 2] = 0x01, // OBJECT_EVENT_GFX_SWIMMER_M_LAND
- [OBJECT_EVENT_GFX_SWIMMER_F_LAND / 2] = 0x01, // OBJECT_EVENT_GFX_WORKER_M
- [OBJECT_EVENT_GFX_WORKER_F / 2] = 0x01, // OBJECT_EVENT_GFX_ROCKET_M
- [OBJECT_EVENT_GFX_ROCKET_F / 2] = 0x01, // OBJECT_EVENT_GFX_GBA_KID
- [OBJECT_EVENT_GFX_SUPER_NERD / 2] = 0x00, // OBJECT_EVENT_GFX_BIKER
- [OBJECT_EVENT_GFX_BLACKBELT / 2] = 0x00, // OBJECT_EVENT_GFX_SCIENTIST
- [OBJECT_EVENT_GFX_HIKER / 2] = 0x00, // OBJECT_EVENT_GFX_FISHER
- [OBJECT_EVENT_GFX_CHANNELER / 2] = 0x01, // OBJECT_EVENT_GFX_CHEF
- [OBJECT_EVENT_GFX_POLICEMAN / 2] = 0x00, // OBJECT_EVENT_GFX_GENTLEMAN
- [OBJECT_EVENT_GFX_SAILOR / 2] = 0x00, // OBJECT_EVENT_GFX_CAPTAIN
- [OBJECT_EVENT_GFX_NURSE / 2] = 0x11, // OBJECT_EVENT_GFX_CABLE_CLUB_RECEPTIONIST
- [OBJECT_EVENT_GFX_UNION_ROOM_RECEPTIONIST / 2] = 0x01, // OBJECT_EVENT_GFX_UNUSED_MALE_RECEPTIONIST
- [OBJECT_EVENT_GFX_CLERK / 2] = 0x00, // OBJECT_EVENT_GFX_MG_DELIVERYMAN
- [OBJECT_EVENT_GFX_TRAINER_TOWER_DUDE / 2] = 0x00, // OBJECT_EVENT_GFX_PROF_OAK
- [OBJECT_EVENT_GFX_BLUE / 2] = 0x00, // OBJECT_EVENT_GFX_BILL
- [OBJECT_EVENT_GFX_LANCE / 2] = 0x10, // OBJECT_EVENT_GFX_AGATHA
- [OBJECT_EVENT_GFX_DAISY / 2] = 0x11, // OBJECT_EVENT_GFX_LORELEI
- [OBJECT_EVENT_GFX_MR_FUJI / 2] = 0x00, // OBJECT_EVENT_GFX_BRUNO
- [OBJECT_EVENT_GFX_BROCK / 2] = 0x10, // OBJECT_EVENT_GFX_MISTY
- [OBJECT_EVENT_GFX_LT_SURGE / 2] = 0x10, // OBJECT_EVENT_GFX_ERIKA
- [OBJECT_EVENT_GFX_KOGA / 2] = 0x10, // OBJECT_EVENT_GFX_SABRINA
- [OBJECT_EVENT_GFX_BLAINE / 2] = 0x00, // OBJECT_EVENT_GFX_GIOVANNI
- [OBJECT_EVENT_GFX_MOM / 2] = 0x01, // OBJECT_EVENT_GFX_CELIO
- [OBJECT_EVENT_GFX_TEACHY_TV_HOST / 2] = 0x00, // OBJECT_EVENT_GFX_GYM_GUY
- [OBJECT_EVENT_GFX_ITEM_BALL / 2] = 0x33, // OBJECT_EVENT_GFX_TOWN_MAP
- [OBJECT_EVENT_GFX_POKEDEX / 2] = 0x33, // OBJECT_EVENT_GFX_CUT_TREE
- [OBJECT_EVENT_GFX_ROCK_SMASH_ROCK / 2] = 0x33, // OBJECT_EVENT_GFX_STRENGTH_BOULDER
- [OBJECT_EVENT_GFX_FOSSIL / 2] = 0x33, // OBJECT_EVENT_GFX_RUBY
- [OBJECT_EVENT_GFX_SAPPHIRE / 2] = 0x33, // OBJECT_EVENT_GFX_OLD_AMBER
- [OBJECT_EVENT_GFX_GYM_SIGN / 2] = 0x33, // OBJECT_EVENT_GFX_SIGN
- [OBJECT_EVENT_GFX_TRAINER_TIPS / 2] = 0x33, // OBJECT_EVENT_GFX_CLIPBOARD
- [OBJECT_EVENT_GFX_METEORITE / 2] = 0x33, // OBJECT_EVENT_GFX_LAPRAS_DOLL
- [OBJECT_EVENT_GFX_SEAGALLOP / 2] = 0x23, // OBJECT_EVENT_GFX_SNORLAX
- [OBJECT_EVENT_GFX_SPEAROW / 2] = 0x22, // OBJECT_EVENT_GFX_CUBONE
- [OBJECT_EVENT_GFX_POLIWRATH / 2] = 0x22, // OBJECT_EVENT_GFX_CLEFAIRY
- [OBJECT_EVENT_GFX_PIDGEOT / 2] = 0x22, // OBJECT_EVENT_GFX_JIGGLYPUFF
- [OBJECT_EVENT_GFX_PIDGEY / 2] = 0x22, // OBJECT_EVENT_GFX_CHANSEY
- [OBJECT_EVENT_GFX_OMANYTE / 2] = 0x22, // OBJECT_EVENT_GFX_KANGASKHAN
- [OBJECT_EVENT_GFX_PIKACHU / 2] = 0x22, // OBJECT_EVENT_GFX_PSYDUCK
- [OBJECT_EVENT_GFX_NIDORAN_F / 2] = 0x22, // OBJECT_EVENT_GFX_NIDORAN_M
- [OBJECT_EVENT_GFX_NIDORINO / 2] = 0x22, // OBJECT_EVENT_GFX_MEOWTH
- [OBJECT_EVENT_GFX_SEEL / 2] = 0x22, // OBJECT_EVENT_GFX_VOLTORB
- [OBJECT_EVENT_GFX_SLOWPOKE / 2] = 0x22, // OBJECT_EVENT_GFX_SLOWBRO
- [OBJECT_EVENT_GFX_MACHOP / 2] = 0x22, // OBJECT_EVENT_GFX_WIGGLYTUFF
- [OBJECT_EVENT_GFX_DODUO / 2] = 0x22, // OBJECT_EVENT_GFX_FEAROW
- [OBJECT_EVENT_GFX_MACHOKE / 2] = 0x22, // OBJECT_EVENT_GFX_LAPRAS
- [OBJECT_EVENT_GFX_ZAPDOS / 2] = 0x22, // OBJECT_EVENT_GFX_MOLTRES
- [OBJECT_EVENT_GFX_ARTICUNO / 2] = 0x22, // OBJECT_EVENT_GFX_MEWTWO
- [OBJECT_EVENT_GFX_MEW / 2] = 0x22, // OBJECT_EVENT_GFX_ENTEI
- [OBJECT_EVENT_GFX_SUICUNE / 2] = 0x22, // OBJECT_EVENT_GFX_RAIKOU
- [OBJECT_EVENT_GFX_LUGIA / 2] = 0x22, // OBJECT_EVENT_GFX_HO_OH
- [OBJECT_EVENT_GFX_CELEBI / 2] = 0x22, // OBJECT_EVENT_GFX_KABUTO
- [OBJECT_EVENT_GFX_DEOXYS_D / 2] = 0x22, // OBJECT_EVENT_GFX_DEOXYS_A
- [OBJECT_EVENT_GFX_DEOXYS_N / 2] = 0x32, // OBJECT_EVENT_GFX_SS_ANNE
+ [OBJ_EVENT_GFX_RED_NORMAL / 2] = 0x00, // OBJ_EVENT_GFX_RED_BIKE
+ [OBJ_EVENT_GFX_RED_SURF / 2] = 0x00, // OBJ_EVENT_GFX_RED_ITEM
+ [OBJ_EVENT_GFX_RED_FISH / 2] = 0x00, // OBJ_EVENT_GFX_RED_ITEM_COPY
+ [OBJ_EVENT_GFX_RED_VS_SEEKER / 2] = 0x10, // OBJ_EVENT_GFX_GREEN_NORMAL
+ [OBJ_EVENT_GFX_GREEN_BIKE / 2] = 0x11, // OBJ_EVENT_GFX_GREEN_SURF
+ [OBJ_EVENT_GFX_GREEN_ITEM / 2] = 0x11, // OBJ_EVENT_GFX_GREEN_FISH
+ [OBJ_EVENT_GFX_GREEN_ITEM_COPY / 2] = 0x11, // OBJ_EVENT_GFX_GREEN_VS_SEEKER
+ [OBJ_EVENT_GFX_RS_BRENDAN / 2] = 0x10, // OBJ_EVENT_GFX_RS_MAY
+ [OBJ_EVENT_GFX_LITTLE_BOY / 2] = 0x10, // OBJ_EVENT_GFX_LITTLE_GIRL
+ [OBJ_EVENT_GFX_YOUNGSTER / 2] = 0x00, // OBJ_EVENT_GFX_BOY
+ [OBJ_EVENT_GFX_BUG_CATCHER / 2] = 0x00, // OBJ_EVENT_GFX_SITTING_BOY
+ [OBJ_EVENT_GFX_LASS / 2] = 0x11, // OBJ_EVENT_GFX_WOMAN_1
+ [OBJ_EVENT_GFX_BATTLE_GIRL / 2] = 0x01, // OBJ_EVENT_GFX_MAN
+ [OBJ_EVENT_GFX_ROCKER / 2] = 0x00, // OBJ_EVENT_GFX_FAT_MAN
+ [OBJ_EVENT_GFX_WOMAN_2 / 2] = 0x11, // OBJ_EVENT_GFX_BEAUTY
+ [OBJ_EVENT_GFX_BALDING_MAN / 2] = 0x10, // OBJ_EVENT_GFX_WOMAN_3
+ [OBJ_EVENT_GFX_OLD_MAN_1 / 2] = 0x00, // OBJ_EVENT_GFX_OLD_MAN_2
+ [OBJ_EVENT_GFX_OLD_MAN_LYING_DOWN / 2] = 0x10, // OBJ_EVENT_GFX_OLD_WOMAN
+ [OBJ_EVENT_GFX_TUBER_M_1 / 2] = 0x10, // OBJ_EVENT_GFX_TUBER_F
+ [OBJ_EVENT_GFX_TUBER_M_2 / 2] = 0x00, // OBJ_EVENT_GFX_CAMPER
+ [OBJ_EVENT_GFX_PICNICKER / 2] = 0x01, // OBJ_EVENT_GFX_COOLTRAINER_M
+ [OBJ_EVENT_GFX_COOLTRAINER_F / 2] = 0x01, // OBJ_EVENT_GFX_SWIMMER_M_WATER
+ [OBJ_EVENT_GFX_SWIMMER_F_WATER / 2] = 0x01, // OBJ_EVENT_GFX_SWIMMER_M_LAND
+ [OBJ_EVENT_GFX_SWIMMER_F_LAND / 2] = 0x01, // OBJ_EVENT_GFX_WORKER_M
+ [OBJ_EVENT_GFX_WORKER_F / 2] = 0x01, // OBJ_EVENT_GFX_ROCKET_M
+ [OBJ_EVENT_GFX_ROCKET_F / 2] = 0x01, // OBJ_EVENT_GFX_GBA_KID
+ [OBJ_EVENT_GFX_SUPER_NERD / 2] = 0x00, // OBJ_EVENT_GFX_BIKER
+ [OBJ_EVENT_GFX_BLACKBELT / 2] = 0x00, // OBJ_EVENT_GFX_SCIENTIST
+ [OBJ_EVENT_GFX_HIKER / 2] = 0x00, // OBJ_EVENT_GFX_FISHER
+ [OBJ_EVENT_GFX_CHANNELER / 2] = 0x01, // OBJ_EVENT_GFX_CHEF
+ [OBJ_EVENT_GFX_POLICEMAN / 2] = 0x00, // OBJ_EVENT_GFX_GENTLEMAN
+ [OBJ_EVENT_GFX_SAILOR / 2] = 0x00, // OBJ_EVENT_GFX_CAPTAIN
+ [OBJ_EVENT_GFX_NURSE / 2] = 0x11, // OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST
+ [OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST / 2] = 0x01, // OBJ_EVENT_GFX_UNUSED_MALE_RECEPTIONIST
+ [OBJ_EVENT_GFX_CLERK / 2] = 0x00, // OBJ_EVENT_GFX_MG_DELIVERYMAN
+ [OBJ_EVENT_GFX_TRAINER_TOWER_DUDE / 2] = 0x00, // OBJ_EVENT_GFX_PROF_OAK
+ [OBJ_EVENT_GFX_BLUE / 2] = 0x00, // OBJ_EVENT_GFX_BILL
+ [OBJ_EVENT_GFX_LANCE / 2] = 0x10, // OBJ_EVENT_GFX_AGATHA
+ [OBJ_EVENT_GFX_DAISY / 2] = 0x11, // OBJ_EVENT_GFX_LORELEI
+ [OBJ_EVENT_GFX_MR_FUJI / 2] = 0x00, // OBJ_EVENT_GFX_BRUNO
+ [OBJ_EVENT_GFX_BROCK / 2] = 0x10, // OBJ_EVENT_GFX_MISTY
+ [OBJ_EVENT_GFX_LT_SURGE / 2] = 0x10, // OBJ_EVENT_GFX_ERIKA
+ [OBJ_EVENT_GFX_KOGA / 2] = 0x10, // OBJ_EVENT_GFX_SABRINA
+ [OBJ_EVENT_GFX_BLAINE / 2] = 0x00, // OBJ_EVENT_GFX_GIOVANNI
+ [OBJ_EVENT_GFX_MOM / 2] = 0x01, // OBJ_EVENT_GFX_CELIO
+ [OBJ_EVENT_GFX_TEACHY_TV_HOST / 2] = 0x00, // OBJ_EVENT_GFX_GYM_GUY
+ [OBJ_EVENT_GFX_ITEM_BALL / 2] = 0x33, // OBJ_EVENT_GFX_TOWN_MAP
+ [OBJ_EVENT_GFX_POKEDEX / 2] = 0x33, // OBJ_EVENT_GFX_CUT_TREE
+ [OBJ_EVENT_GFX_ROCK_SMASH_ROCK / 2] = 0x33, // OBJ_EVENT_GFX_STRENGTH_BOULDER
+ [OBJ_EVENT_GFX_FOSSIL / 2] = 0x33, // OBJ_EVENT_GFX_RUBY
+ [OBJ_EVENT_GFX_SAPPHIRE / 2] = 0x33, // OBJ_EVENT_GFX_OLD_AMBER
+ [OBJ_EVENT_GFX_GYM_SIGN / 2] = 0x33, // OBJ_EVENT_GFX_SIGN
+ [OBJ_EVENT_GFX_TRAINER_TIPS / 2] = 0x33, // OBJ_EVENT_GFX_CLIPBOARD
+ [OBJ_EVENT_GFX_METEORITE / 2] = 0x33, // OBJ_EVENT_GFX_LAPRAS_DOLL
+ [OBJ_EVENT_GFX_SEAGALLOP / 2] = 0x23, // OBJ_EVENT_GFX_SNORLAX
+ [OBJ_EVENT_GFX_SPEAROW / 2] = 0x22, // OBJ_EVENT_GFX_CUBONE
+ [OBJ_EVENT_GFX_POLIWRATH / 2] = 0x22, // OBJ_EVENT_GFX_CLEFAIRY
+ [OBJ_EVENT_GFX_PIDGEOT / 2] = 0x22, // OBJ_EVENT_GFX_JIGGLYPUFF
+ [OBJ_EVENT_GFX_PIDGEY / 2] = 0x22, // OBJ_EVENT_GFX_CHANSEY
+ [OBJ_EVENT_GFX_OMANYTE / 2] = 0x22, // OBJ_EVENT_GFX_KANGASKHAN
+ [OBJ_EVENT_GFX_PIKACHU / 2] = 0x22, // OBJ_EVENT_GFX_PSYDUCK
+ [OBJ_EVENT_GFX_NIDORAN_F / 2] = 0x22, // OBJ_EVENT_GFX_NIDORAN_M
+ [OBJ_EVENT_GFX_NIDORINO / 2] = 0x22, // OBJ_EVENT_GFX_MEOWTH
+ [OBJ_EVENT_GFX_SEEL / 2] = 0x22, // OBJ_EVENT_GFX_VOLTORB
+ [OBJ_EVENT_GFX_SLOWPOKE / 2] = 0x22, // OBJ_EVENT_GFX_SLOWBRO
+ [OBJ_EVENT_GFX_MACHOP / 2] = 0x22, // OBJ_EVENT_GFX_WIGGLYTUFF
+ [OBJ_EVENT_GFX_DODUO / 2] = 0x22, // OBJ_EVENT_GFX_FEAROW
+ [OBJ_EVENT_GFX_MACHOKE / 2] = 0x22, // OBJ_EVENT_GFX_LAPRAS
+ [OBJ_EVENT_GFX_ZAPDOS / 2] = 0x22, // OBJ_EVENT_GFX_MOLTRES
+ [OBJ_EVENT_GFX_ARTICUNO / 2] = 0x22, // OBJ_EVENT_GFX_MEWTWO
+ [OBJ_EVENT_GFX_MEW / 2] = 0x22, // OBJ_EVENT_GFX_ENTEI
+ [OBJ_EVENT_GFX_SUICUNE / 2] = 0x22, // OBJ_EVENT_GFX_RAIKOU
+ [OBJ_EVENT_GFX_LUGIA / 2] = 0x22, // OBJ_EVENT_GFX_HO_OH
+ [OBJ_EVENT_GFX_CELEBI / 2] = 0x22, // OBJ_EVENT_GFX_KABUTO
+ [OBJ_EVENT_GFX_DEOXYS_D / 2] = 0x22, // OBJ_EVENT_GFX_DEOXYS_A
+ [OBJ_EVENT_GFX_DEOXYS_N / 2] = 0x32, // OBJ_EVENT_GFX_SS_ANNE
};
void DynamicPlaceholderTextUtil_Reset(void)
diff --git a/src/easy_chat.c b/src/easy_chat.c
index 1d2873fc2..14662b660 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -1,33 +1,18 @@
#include "global.h"
#include "malloc.h"
-#include "bg.h"
#include "data.h"
-#include "decompress.h"
-#include "dynamic_placeholder_text_util.h"
#include "easy_chat.h"
#include "event_data.h"
#include "field_message_box.h"
-#include "field_weather.h"
-#include "gpu_regs.h"
-#include "graphics.h"
-#include "main.h"
#include "mevent.h"
#include "menu.h"
#include "mail.h"
-#include "overworld.h"
-#include "palette.h"
#include "pokedex.h"
#include "random.h"
-#include "sound.h"
#include "string_util.h"
#include "strings.h"
-#include "task.h"
-#include "text_window.h"
-#include "window.h"
#include "constants/easy_chat.h"
-#include "constants/object_events.h"
#include "constants/flags.h"
-#include "constants/songs.h"
#include "constants/species.h"
struct Unk203A120
diff --git a/src/event_object_80688E4.c b/src/event_object_80688E4.c
index 2d79c4f7b..de4cf358a 100644
--- a/src/event_object_80688E4.c
+++ b/src/event_object_80688E4.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "event_object_80688E4.h"
#include "event_object_movement.h"
#include "field_effect.h"
#include "field_ground_effect.h"
@@ -204,6 +203,7 @@ void sub_8068BBC(struct Sprite *sprite, u8 direction)
sprite->tStepNo = 0;
}
+// used by an_walk_any_2
bool8 sub_8068BCC(struct Sprite *sprite)
{
if (!(sprite->tDelay & 1))
diff --git a/src/event_object_lock.c b/src/event_object_lock.c
index 304b71c28..02f0557f2 100644
--- a/src/event_object_lock.c
+++ b/src/event_object_lock.c
@@ -3,9 +3,7 @@
#include "field_player_avatar.h"
#include "event_object_movement.h"
#include "script_movement.h"
-#include "event_object_80688E4.h"
#include "event_data.h"
-#include "event_object_lock.h"
bool8 walkrun_is_standing_still(void)
{
@@ -89,7 +87,7 @@ void sub_80696C0(void)
{
u8 objectEventId = GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0);
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[objectEventId]);
- sub_80974D8();
+ ScriptMovement_UnfreezeObjectEvents();
UnfreezeObjectEvents();
}
@@ -100,7 +98,7 @@ void UnionRoom_UnlockPlayerAndChatPartner(void)
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gSelectedObjectEvent]);
objectEventId = GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0);
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[objectEventId]);
- sub_80974D8();
+ ScriptMovement_UnfreezeObjectEvents();
UnfreezeObjectEvents();
}
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index f3b05b32c..71eb3fc36 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -31,8 +31,6 @@
#include "text.h"
#include "text_window.h"
#include "trig.h"
-#include "trade.h"
-#include "util.h"
#include "battle_string_ids.h"
#include "constants/species.h"
#include "constants/songs.h"
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index 2e1dcd919..16f691a2d 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -13,16 +13,16 @@
#include "metatile_behavior.h"
#include "quest_log.h"
#include "link.h"
-#include "event_object_80688E4.h"
+#include "event_object_movement.h"
#include "sound.h"
#include "field_door.h"
#include "field_effect.h"
#include "field_screen_effect.h"
-#include "event_object_movement.h"
#include "field_specials.h"
#include "event_object_lock.h"
#include "start_menu.h"
#include "constants/songs.h"
+#include "constants/event_object_movement.h"
static void sub_807DF4C(u8 a0);
static void sub_807DFBC(u8 taskId);
@@ -349,7 +349,7 @@ static void sub_807DFBC(u8 taskId)
{
PlayerGetDestCoords(&task->data[12], &task->data[13]);
sub_807DCB0(TRUE);
- ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], 16);
+ ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], MOVEMENT_ACTION_WALK_NORMAL_DOWN);
task->data[0] = 8;
}
break;
@@ -373,7 +373,7 @@ static void sub_807DFBC(u8 taskId)
if (sub_807E418())
{
sub_807DCB0(TRUE);
- ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], 16);
+ ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], MOVEMENT_ACTION_WALK_NORMAL_DOWN);
task->data[0] = 2;
}
break;
@@ -415,7 +415,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId)
if (sub_807E418())
{
sub_807DCB0(TRUE);
- ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], sub_8063F84(GetPlayerFacingDirection()));
+ ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], GetWalkNormalMovementAction(GetPlayerFacingDirection()));
task->data[0] = 2;
}
break;
@@ -753,7 +753,7 @@ static void sub_807E80C(u8 taskId)
if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE)
{
ObjectEventClearAnimIfSpecialAnimActive(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
- ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], 17);
+ ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], MOVEMENT_ACTION_WALK_NORMAL_UP);
task->data[0] = 2;
}
break;
diff --git a/src/field_specials.c b/src/field_specials.c
index a1de82c0f..6554f6116 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -41,11 +41,11 @@
#include "constants/songs.h"
#include "constants/species.h"
#include "constants/items.h"
-#include "constants/object_events.h"
#include "constants/maps.h"
#include "constants/region_map.h"
#include "constants/moves.h"
#include "constants/menu.h"
+#include "constants/event_objects.h"
static EWRAM_DATA u8 sElevatorCurrentFloorWindowId = 0;
static EWRAM_DATA u16 sElevatorScroll = 0;
@@ -315,7 +315,7 @@ void Special_AnimatePcTurnOff()
void SpawnCameraObject(void)
{
- u8 objectEventId = SpawnSpecialObjectEventParameterized(OBJECT_EVENT_GFX_YOUNGSTER, 8, 127, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
+ u8 objectEventId = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_YOUNGSTER, 8, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
gObjectEvents[objectEventId].invisible = TRUE;
CameraObjectSetFollowedObjectId(gObjectEvents[objectEventId].spriteId);
}
@@ -1528,8 +1528,8 @@ u8 ContextNpcGetTextColor(void)
else
{
gfxId = gObjectEvents[gSelectedObjectEvent].graphicsId;
- if (gfxId >= OBJECT_EVENT_GFX_VAR_0)
- gfxId = VarGetObjectEventGraphicsId(gfxId - OBJECT_EVENT_GFX_VAR_0);
+ if (gfxId >= OBJ_EVENT_GFX_VAR_0)
+ gfxId = VarGetObjectEventGraphicsId(gfxId - OBJ_EVENT_GFX_VAR_0);
return GetColorFromTextColorTable(gfxId);
}
}
diff --git a/src/fieldmap.c b/src/fieldmap.c
index 90682da10..60ff70f10 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -3,7 +3,6 @@
#include "palette.h"
#include "overworld.h"
#include "script.h"
-#include "menu.h"
#include "new_menu_helpers.h"
#include "quest_log.h"
#include "fieldmap.h"
@@ -17,37 +16,37 @@ struct ConnectionFlags
};
static void InitMapLayoutData(struct MapHeader *mapHeader);
-void map_copy_with_padding(u16 *map, u16 width, u16 height);
-void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader);
-void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
-void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
-void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
-void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
-void LoadSavedMapView(void);
-struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y);
-bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection);
-bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset);
+static void map_copy_with_padding(u16 *map, u16 width, u16 height);
+static void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader);
+static void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
+static void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
+static void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
+static void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset);
+static void LoadSavedMapView(void);
+static struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y);
+static bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection);
+static bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset);
struct BackupMapLayout VMap;
-EWRAM_DATA u16 gBackupMapLayout[VIRTUAL_MAP_SIZE] = {};
+static EWRAM_DATA u16 gBackupMapLayout[VIRTUAL_MAP_SIZE] = {};
EWRAM_DATA struct MapHeader gMapHeader = {};
EWRAM_DATA struct Camera gCamera = {};
-EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {};
+static EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {};
-const struct ConnectionFlags sDummyConnectionFlags = {};
+static const struct ConnectionFlags sDummyConnectionFlags = {};
-const u32 gUnknown_8352EF0[] = {
- 0x1ff,
- 0x3e00,
- 0x3c000,
- 0xfc0000,
- 0x7000000,
+static const u32 sMetatileAttrMasks[] = {
+ 0x000001ff,
+ 0x00003e00,
+ 0x0003c000,
+ 0x00fc0000,
+ 0x07000000,
0x18000000,
0x60000000,
0x80000000
};
-const u8 gUnknown_8352F10[] = {
+static const u8 sMetatileAttrShifts[] = {
0,
9,
14,
@@ -88,7 +87,7 @@ static void InitMapLayoutData(struct MapHeader * mapHeader)
mapheader_copy_mapdata_of_adjacent_maps(mapHeader);
}
-void map_copy_with_padding(u16 *map, u16 width, u16 height)
+static void map_copy_with_padding(u16 *map, u16 width, u16 height)
{
s32 y;
u16 *dest = VMap.map;
@@ -102,7 +101,7 @@ void map_copy_with_padding(u16 *map, u16 width, u16 height)
}
}
-void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader)
+static void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader)
{
s32 count;
struct MapConnection *connection;
@@ -148,7 +147,7 @@ void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader)
}
}
-void sub_8058B54(s32 x, s32 y, const struct MapHeader *connectedMapHeader, s32 x2, s32 y2, s32 width, s32 height)
+static void sub_8058B54(s32 x, s32 y, const struct MapHeader *connectedMapHeader, s32 x2, s32 y2, s32 width, s32 height)
{
s32 i;
u16 *src;
@@ -167,7 +166,7 @@ void sub_8058B54(s32 x, s32 y, const struct MapHeader *connectedMapHeader, s32 x
}
}
-void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
+static void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
{
s32 x, y;
s32 x2;
@@ -214,7 +213,7 @@ void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader con
}
}
-void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
+static void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
{
s32 x;
s32 x2, y2;
@@ -263,7 +262,7 @@ void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader con
}
}
-void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
+static void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
{
s32 y;
s32 x2, y2;
@@ -309,7 +308,7 @@ void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader cons
}
}
-void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
+static void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset)
{
s32 x, y;
s32 y2;
@@ -444,28 +443,28 @@ u32 MapGridGetMetatileIdAt(s32 x, s32 y)
return block & 0x3FF;
}
-u32 sub_8058F1C(u32 original, u8 bit)
+u32 GetMetatileAttributeFromRawMetatileBehavior(u32 original, u8 bit)
{
if (bit >= 8)
return original;
- return (original & gUnknown_8352EF0[bit]) >> gUnknown_8352F10[bit];
+ return (original & sMetatileAttrMasks[bit]) >> sMetatileAttrShifts[bit];
}
-u32 sub_8058F48(s16 x, s16 y, u8 z)
+u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr)
{
u16 metatileId = MapGridGetMetatileIdAt(x, y);
- return GetBehaviorByMetatileIdAndMapLayout(gMapHeader.mapLayout, metatileId, z);
+ return GetBehaviorByMetatileIdAndMapLayout(gMapHeader.mapLayout, metatileId, attr);
}
u32 MapGridGetMetatileBehaviorAt(s32 x, s32 y)
{
- return sub_8058F48(x, y, 0);
+ return MapGridGetMetatileAttributeAt(x, y, 0);
}
u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y)
{
- return sub_8058F48(x, y, 6);
+ return MapGridGetMetatileAttributeAt(x, y, 6);
}
void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile)
@@ -513,12 +512,12 @@ u32 GetBehaviorByMetatileIdAndMapLayout(struct MapLayout *mapLayout, u16 metatil
if (metatile < NUM_METATILES_IN_PRIMARY)
{
attributes = mapLayout->primaryTileset->metatileAttributes;
- return sub_8058F1C(attributes[metatile], attr);
+ return GetMetatileAttributeFromRawMetatileBehavior(attributes[metatile], attr);
}
else if (metatile < 0x400)
{
attributes = mapLayout->secondaryTileset->metatileAttributes;
- return sub_8058F1C(attributes[metatile - NUM_METATILES_IN_PRIMARY], attr);
+ return GetMetatileAttributeFromRawMetatileBehavior(attributes[metatile - NUM_METATILES_IN_PRIMARY], attr);
}
else
{
@@ -545,7 +544,7 @@ void save_serialize_map(void)
}
}
-bool32 SavedMapViewIsEmpty(void)
+static bool32 SavedMapViewIsEmpty(void)
{
u16 i;
u32 marker = 0;
@@ -560,12 +559,12 @@ bool32 SavedMapViewIsEmpty(void)
return FALSE;
}
-void ClearSavedMapView(void)
+static void ClearSavedMapView(void)
{
CpuFill16(0, gSaveBlock2Ptr->mapView, sizeof(gSaveBlock2Ptr->mapView));
}
-void LoadSavedMapView(void)
+static void LoadSavedMapView(void)
{
s32 i, j;
s32 x, y;
@@ -589,7 +588,7 @@ void LoadSavedMapView(void)
}
}
-void sub_8059250(u8 a1)
+static void sub_8059250(u8 a1)
{
s32 width;
u16 *mapView;
@@ -691,7 +690,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y)
return 0;
}
-s32 GetPostCameraMoveMapBorderId(s32 x, s32 y)
+static s32 GetPostCameraMoveMapBorderId(s32 x, s32 y)
{
return GetMapBorderIdAt(7 + gSaveBlock1Ptr->pos.x + x, 7 + gSaveBlock1Ptr->pos.y + y);
}
@@ -709,7 +708,7 @@ bool32 CanCameraMoveInDirection(s32 direction)
return TRUE;
}
-void sub_80594AC(struct MapConnection *connection, int direction, s32 x, s32 y)
+static void sub_80594AC(struct MapConnection *connection, int direction, s32 x, s32 y)
{
struct MapHeader const *mapHeader;
mapHeader = mapconnection_get_mapheader(connection);
@@ -780,7 +779,7 @@ struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y)
}
-bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection)
+static bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection)
{
struct MapHeader const *mapHeader;
mapHeader = mapconnection_get_mapheader(connection);
@@ -796,7 +795,7 @@ bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection)
return FALSE;
}
-bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset)
+static bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset)
{
s32 offset2 = max(offset, 0);
@@ -809,7 +808,7 @@ bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset)
return FALSE;
}
-bool32 sub_80596E8(s32 x, s32 width)
+static bool32 sub_80596E8(s32 x, s32 width)
{
if (x >= 0 && x < width)
return TRUE;
@@ -817,7 +816,7 @@ bool32 sub_80596E8(s32 x, s32 width)
return FALSE;
}
-s32 sub_80596FC(struct MapConnection *connection, s32 x, s32 y)
+static s32 sub_80596FC(struct MapConnection *connection, s32 x, s32 y)
{
struct MapHeader const *mapHeader;
mapHeader = mapconnection_get_mapheader(connection);
@@ -879,7 +878,7 @@ void GetCameraFocusCoords(u16 *x, u16 *y)
*y = gSaveBlock1Ptr->pos.y + 7;
}
-void SetCameraCoords(u16 x, u16 y)
+static void SetCameraCoords(u16 x, u16 y)
{
gSaveBlock1Ptr->pos.x = x;
gSaveBlock1Ptr->pos.y = y;
@@ -890,7 +889,7 @@ void GetCameraCoords(u16 *x, u16 *y)
*x = gSaveBlock1Ptr->pos.x;
*y = gSaveBlock1Ptr->pos.y;
}
-void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, u16 offset)
+static void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, u16 offset)
{
if (tileset)
{
@@ -901,7 +900,7 @@ void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles,
}
}
-void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, u16 offset)
+static void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, u16 offset)
{
if (tileset)
{
@@ -912,7 +911,7 @@ void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles,
}
}
-void sub_80598CC(u16 a0, u16 a1)
+static void sub_80598CC(u16 a0, u16 a1)
{
switch (gUnknown_2036E28)
{
@@ -956,7 +955,7 @@ void sub_8059948(u8 a0, u8 a1)
CpuFastCopy(gPlttBufferUnfaded + a0 * 16, gPlttBufferFaded + a0 * 16, a1 * 16 * sizeof(u16));
}
-void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u16 size)
+static void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u16 size)
{
u16 black = RGB_BLACK;
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
new file mode 100644
index 000000000..8617a1aaa
--- /dev/null
+++ b/src/fldeff_cut.c
@@ -0,0 +1,299 @@
+#include "global.h"
+#include "gflib.h"
+#include "event_object_lock.h"
+#include "event_object_movement.h"
+#include "event_scripts.h"
+#include "fieldmap.h"
+#include "field_camera.h"
+#include "field_specials.h"
+#include "fldeff.h"
+#include "field_effect.h"
+#include "field_player_avatar.h"
+#include "metatile_behavior.h"
+#include "overworld.h"
+#include "party_menu.h"
+#include "script.h"
+#include "trig.h"
+#include "constants/event_objects.h"
+#include "constants/songs.h"
+#include "constants/metatile_labels.h"
+
+#define CUT_GRASS_SPRITE_COUNT 8
+
+static EWRAM_DATA u8 *sCutGrassSpriteArrayPtr = NULL;
+static EWRAM_DATA bool8 sScheduleOpenDottedHole = FALSE;
+
+static void FieldCallback_CutGrass(void);
+static void FieldCallback_CutTree(void);
+static void FieldMoveCallback_CutGrass(void);
+static void SetCutGrassMetatileAt(s16 x, s16 y);
+static void SpriteCallback_CutGrass_Init(struct Sprite * sprite);
+static void SpriteCallback_CutGrass_Run(struct Sprite * sprite);
+static void SpriteCallback_CutGrass_Cleanup(struct Sprite * sprite);
+static void FieldMoveCallback_CutTree(void);
+
+static const u16 sCutGrassMetatileMapping[][2] = {
+ {
+ METATILE_ID(General, Plain_Grass),
+ METATILE_ID(General, Plain_Mowed)
+ }, {
+ METATILE_ID(General, ThinTreeTop_Grass),
+ METATILE_ID(General, ThinTreeTop_Mowed)
+ }, {
+ METATILE_ID(General, WideTreeTopLeft_Grass),
+ METATILE_ID(General, WideTreeTopLeft_Mowed)
+ }, {
+ METATILE_ID(General, WideTreeTopRight_Grass),
+ METATILE_ID(General, WideTreeTopRight_Mowed)
+ }, {
+ METATILE_ID(CeladonCity, CyclingRoad_Grass),
+ METATILE_ID(CeladonCity, CyclingRoad_Mowed)
+ }, {
+ METATILE_ID(FuchsiaCity, SafariZoneTreeTopLeft_Grass),
+ METATILE_ID(FuchsiaCity, SafariZoneTreeTopLeft_Mowed)
+ }, {
+ METATILE_ID(FuchsiaCity, SafariZoneTreeTopMiddle_Grass),
+ METATILE_ID(FuchsiaCity, SafariZoneTreeTopMiddle_Mowed)
+ }, {
+ METATILE_ID(FuchsiaCity, SafariZoneTreeTopRight_Grass),
+ METATILE_ID(FuchsiaCity, SafariZoneTreeTopRight_Mowed)
+ }, {
+ METATILE_ID(ViridianForest, HugeTreeTopMiddle_Grass),
+ METATILE_ID(ViridianForest, HugeTreeTopMiddle_Mowed)
+ }, {
+ 0xffff,
+ 0xffff
+ }
+};
+
+static const struct OamData sOamData_FldEff_CutGrass = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(8x8),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(8x8),
+ .tileNum = 0x001,
+ .priority = 1,
+ .paletteNum = 0x1,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_Fldeff_CutGrass_0[] = {
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd *const sSpriteAnimTable_FldEff_CutGrass[] = {
+ sSpriteAnim_Fldeff_CutGrass_0
+};
+
+static const struct SpriteFrameImage sSpriteFrameImages_FldEff_CutGrass[] = {
+ {gUnknown_8398648, 0x20}
+};
+
+const struct SpritePalette gFldEffPalette_CutGrass[] = {
+ gUnknown_8398688, 4096
+};
+
+static const struct SpriteTemplate sSpriteTemplate_FldEff_CutGrass = {
+ .tileTag = 0xFFFF,
+ .paletteTag = 4096,
+ .oam = &sOamData_FldEff_CutGrass,
+ .anims = sSpriteAnimTable_FldEff_CutGrass,
+ .images = sSpriteFrameImages_FldEff_CutGrass,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallback_CutGrass_Init
+};
+
+static u8 MetatileAtCoordsIsGrassTile(s16 x, s16 y)
+{
+ return TestMetatileAttributeBit(MapGridGetMetatileAttributeAt(x, y, 1), 1);
+}
+
+bool8 SetUpFieldMove_Cut(void)
+{
+ s16 x, y;
+ u8 i, j;
+ sScheduleOpenDottedHole = FALSE;
+ if (CutMoveRuinValleyCheck() == TRUE)
+ {
+ sScheduleOpenDottedHole = TRUE;
+ gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
+ gPostMenuFieldCallback = FieldCallback_CutGrass;
+ return TRUE;
+ }
+
+ if (CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_CUT_TREE) == TRUE)
+ {
+ gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
+ gPostMenuFieldCallback = FieldCallback_CutTree;
+ return TRUE;
+ }
+ else
+ {
+ // FIXME: this fakematch
+ register s32 neg1 asm("r8");
+ struct MapPosition *pos;
+ PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
+
+ for (i = 0, pos = &gPlayerFacingPosition, neg1 = 0xFFFF; i < 3; i++)
+ {
+
+ y = i + neg1 + pos->y;
+ for (j = 0; j < 3; j++)
+ {
+ x = j + neg1 + pos->x;
+ if (MapGridGetZCoordAt(x, y) == pos->height)
+ {
+ if (MetatileAtCoordsIsGrassTile(x, y) == TRUE)
+ {
+ gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
+ gPostMenuFieldCallback = FieldCallback_CutGrass;
+ return TRUE;
+ }
+ }
+ }
+ }
+ return FALSE;
+ }
+}
+
+static void FieldCallback_CutGrass(void)
+{
+ FieldEffectStart(FLDEFF_USE_CUT_ON_GRASS);
+ gFieldEffectArguments[0] = GetCursorSelectionMonId();
+}
+
+bool8 FldEff_UseCutOnGrass(void)
+{
+ u8 taskId = CreateFieldEffectShowMon();
+ FLDEFF_SET_FUNC_TO_DATA(FieldMoveCallback_CutGrass);
+ IncrementGameStat(GAME_STAT_USED_CUT);
+ return FALSE;
+}
+
+static void FieldCallback_CutTree(void)
+{
+ gFieldEffectArguments[0] = GetCursorSelectionMonId();
+ ScriptContext1_SetupScript(EventScript_FldEffCut);
+}
+
+bool8 FldEff_UseCutOnTree(void)
+{
+ u8 taskId = CreateFieldEffectShowMon();
+ FLDEFF_SET_FUNC_TO_DATA(FieldMoveCallback_CutTree);
+ IncrementGameStat(GAME_STAT_USED_CUT);
+ return FALSE;
+}
+
+static void FieldMoveCallback_CutGrass(void)
+{
+ FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_GRASS);
+ if (sScheduleOpenDottedHole == TRUE)
+ CutMoveOpenDottedHoleDoor();
+ else
+ FieldEffectStart(FLDEFF_CUT_GRASS);
+}
+
+bool8 FldEff_CutGrass(void)
+{
+ u8 i, j;
+ s16 x, y;
+ // FIXME: this fakematch
+ register s32 neg1 asm("r9");
+ struct MapPosition *pos;
+
+ i = 0;
+ PlaySE(SE_W015);
+ PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
+
+ for (i = 0, pos = &gPlayerFacingPosition, neg1 = 0xFFFF; i < 3; i++)
+ {
+
+ y = i + neg1 + pos->y;
+ for (j = 0; j < 3; j++)
+ {
+ x = j + neg1 + pos->x;
+ if (MapGridGetZCoordAt(x, y) == pos->height)
+ {
+ if (MetatileAtCoordsIsGrassTile(x, y) == TRUE)
+ {
+ SetCutGrassMetatileAt(x, y);
+ sub_805F378(x, y);
+ }
+ }
+ }
+ }
+ DrawWholeMapView();
+ sCutGrassSpriteArrayPtr = Alloc(CUT_GRASS_SPRITE_COUNT);
+ for (i = 0; i < 8; i++)
+ {
+ sCutGrassSpriteArrayPtr[i] = CreateSprite(&sSpriteTemplate_FldEff_CutGrass, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 20, 0);
+ gSprites[sCutGrassSpriteArrayPtr[i]].data[2] = i * (0x100 / CUT_GRASS_SPRITE_COUNT);
+ }
+ return FALSE;
+}
+
+static void SetCutGrassMetatileAt(s16 x, s16 y)
+{
+ u16 i = 0;
+ u16 metatileId = MapGridGetMetatileIdAt(x, y);
+ while (1)
+ {
+ if (sCutGrassMetatileMapping[i][0] == 0xFFFF)
+ return;
+ if (sCutGrassMetatileMapping[i][0] == metatileId)
+ {
+ MapGridSetMetatileIdAt(x, y, sCutGrassMetatileMapping[i][1]);
+ break;
+ }
+ i++;
+ }
+}
+
+static void SpriteCallback_CutGrass_Init(struct Sprite * sprite)
+{
+ sprite->data[0] = 8;
+ sprite->data[1] = 0;
+ sprite->data[3] = 0;
+ sprite->callback = SpriteCallback_CutGrass_Run;
+}
+
+static void SpriteCallback_CutGrass_Run(struct Sprite * sprite)
+{
+ sprite->pos2.x = Sin(sprite->data[2], sprite->data[0]);
+ sprite->pos2.y = Cos(sprite->data[2], sprite->data[0]);
+ sprite->data[2] += 8;
+ sprite->data[2] &= 0xFF;
+ sprite->data[0]++;
+ sprite->data[0] += sprite->data[3] >> 2;
+ sprite->data[3]++;
+ if (sprite->data[1] != 28)
+ sprite->data[1]++;
+ else
+ sprite->callback = SpriteCallback_CutGrass_Cleanup;
+}
+
+static void SpriteCallback_CutGrass_Cleanup(struct Sprite * sprite)
+{
+ u8 i;
+ for (i = 1; i < CUT_GRASS_SPRITE_COUNT; i++)
+ {
+ DestroySprite(&gSprites[sCutGrassSpriteArrayPtr[i]]);
+ }
+ FieldEffectStop(&gSprites[sCutGrassSpriteArrayPtr[0]], FLDEFF_CUT_GRASS);
+ Free(sCutGrassSpriteArrayPtr);
+ sub_80696C0();
+ ScriptContext2_Disable();
+}
+
+static void FieldMoveCallback_CutTree(void)
+{
+ PlaySE(SE_W015);
+ FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE);
+ EnableBothScriptContexts();
+}
diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c
index 7d229ce3f..0eb0d3c1e 100644
--- a/src/fldeff_dig.c
+++ b/src/fldeff_dig.c
@@ -5,8 +5,6 @@
#include "item_use.h"
#include "overworld.h"
#include "party_menu.h"
-#include "sprite.h"
-#include "constants/object_events.h"
static void FieldCallback_Dig(void);
static void sub_80C9AFC(void);
@@ -31,7 +29,7 @@ static void FieldCallback_Dig(void)
bool8 FldEff_UseDig(void)
{
- u8 taskId = oei_task_add();
+ u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC);
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c
index 00f17a16d..397741806 100644
--- a/src/fldeff_rocksmash.c
+++ b/src/fldeff_rocksmash.c
@@ -3,25 +3,22 @@
#include "field_player_avatar.h"
#include "field_effect.h"
#include "party_menu.h"
-#include "malloc.h"
#include "event_data.h"
#include "script.h"
#include "fldeff.h"
#include "event_scripts.h"
-#include "field_weather.h"
#include "sound.h"
-#include "palette.h"
#include "overworld.h"
-#include "wild_encounter.h"
#include "event_object_movement.h"
#include "constants/songs.h"
-#include "constants/object_events.h"
+#include "constants/event_objects.h"
+#include "constants/event_object_movement.h"
#include "constants/maps.h"
-static void task08_080C9820(u8 taskId);
-static void sub_80C98FC(u8 taskId);
-static void sub_80C98B0(u8 taskId);
-static void sub_80C99A0(u8 taskId);
+static void Task_FieldEffectShowMon_Init(u8 taskId);
+static void Task_FieldEffectShowMon_WaitFldeff(u8 taskId);
+static void Task_FieldEffectShowMon_WaitPlayerAnim(u8 taskId);
+static void Task_FieldEffectShowMon_Cleanup(u8 taskId);
static void sub_80C9A10(void);
static void sub_80C9A60(void);
@@ -40,13 +37,13 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId)
return TRUE;
}
-u8 oei_task_add(void)
+u8 CreateFieldEffectShowMon(void)
{
GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
- return CreateTask(task08_080C9820, 8);
+ return CreateTask(Task_FieldEffectShowMon_Init, 8);
}
-static void task08_080C9820(u8 taskId)
+static void Task_FieldEffectShowMon_Init(u8 taskId)
{
u8 mapObjId;
@@ -58,48 +55,49 @@ static void task08_080C9820(u8 taskId)
{
if (gMapHeader.mapType == MAP_TYPE_UNDERWATER)
{
+ // Leftover from RS, inhibits the player anim while underwater.
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
- gTasks[taskId].func = sub_80C98FC;
+ gTasks[taskId].func = Task_FieldEffectShowMon_WaitFldeff;
}
else
{
sub_805CB70();
- ObjectEventSetHeldMovement(&gObjectEvents[mapObjId], 0x45);
- gTasks[taskId].func = sub_80C98B0;
+ ObjectEventSetHeldMovement(&gObjectEvents[mapObjId], MOVEMENT_ACTION_UNKNOWN_STEP_45);
+ gTasks[taskId].func = Task_FieldEffectShowMon_WaitPlayerAnim;
}
}
}
-static void sub_80C98B0(u8 taskId)
+static void Task_FieldEffectShowMon_WaitPlayerAnim(u8 taskId)
{
if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.objectEventId]) == TRUE)
{
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
- gTasks[taskId].func = sub_80C98FC;
+ gTasks[taskId].func = Task_FieldEffectShowMon_WaitFldeff;
}
}
-static void sub_80C98FC(u8 taskId)
+static void Task_FieldEffectShowMon_WaitFldeff(u8 taskId)
{
if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
{
gFieldEffectArguments[1] = GetPlayerFacingDirection();
- if (gFieldEffectArguments[1] == 1)
+ if (gFieldEffectArguments[1] == DIR_SOUTH)
gFieldEffectArguments[2] = 0;
- if (gFieldEffectArguments[1] == 2)
+ if (gFieldEffectArguments[1] == DIR_NORTH)
gFieldEffectArguments[2] = 1;
- if (gFieldEffectArguments[1] == 3)
+ if (gFieldEffectArguments[1] == DIR_WEST)
gFieldEffectArguments[2] = 2;
- if (gFieldEffectArguments[1] == 4)
+ if (gFieldEffectArguments[1] == DIR_EAST)
gFieldEffectArguments[2] = 3;
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByCurrentState());
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]);
- FieldEffectActiveListRemove(6);
- gTasks[taskId].func = sub_80C99A0;
+ FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON);
+ gTasks[taskId].func = Task_FieldEffectShowMon_Cleanup;
}
}
-static void sub_80C99A0(u8 taskId)
+static void Task_FieldEffectShowMon_Cleanup(u8 taskId)
{
FLDEFF_CALL_FUNC_IN_DATA();
gPlayerAvatar.unk6 = FALSE;
@@ -108,7 +106,7 @@ static void sub_80C99A0(u8 taskId)
bool8 SetUpFieldMove_RockSmash(void)
{
- if (CheckObjectGraphicsInFrontOfPlayer(OBJECT_EVENT_GFX_ROCK_SMASH_ROCK) == TRUE)
+ if (CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_ROCK_SMASH_ROCK) == TRUE)
{
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
gPostMenuFieldCallback = sub_80C9A10;
@@ -125,7 +123,7 @@ static void sub_80C9A10(void)
bool8 FldEff_UseRockSmash(void)
{
- u8 taskId = oei_task_add();
+ u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(sub_80C9A60);
IncrementGameStat(GAME_STAT_USED_ROCK_SMASH);
diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c
index 60437c125..966a7934c 100644
--- a/src/fldeff_softboiled.c
+++ b/src/fldeff_softboiled.c
@@ -5,7 +5,6 @@
#include "menu.h"
#include "new_menu_helpers.h"
#include "constants/songs.h"
-#include "fldeff.h"
static void sub_80E57E8(u8 taskId);
static void sub_80E583C(u8 taskId);
diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c
index b8d5af31d..712d9f1c6 100644
--- a/src/fldeff_strength.c
+++ b/src/fldeff_strength.c
@@ -6,15 +6,14 @@
#include "script.h"
#include "fldeff.h"
#include "event_scripts.h"
-#include "constants/songs.h"
-#include "constants/object_events.h"
+#include "constants/event_objects.h"
static void FldEff_UseStrength(void);
static void sub_80D08A8(void);
bool8 SetUpFieldMove_Strength(void)
{
- if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(OBJECT_EVENT_GFX_STRENGTH_BOULDER) != TRUE)
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_STRENGTH_BOULDER) != TRUE)
{
return FALSE;
}
@@ -34,7 +33,7 @@ static void FldEff_UseStrength(void)
bool8 sub_80D0860(void)
{
- u8 taskId = oei_task_add();
+ u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(sub_80D08A8);
GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1);
return FALSE;
diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c
index 943d8504c..d827aff4d 100644
--- a/src/fldeff_sweetscent.c
+++ b/src/fldeff_sweetscent.c
@@ -3,7 +3,6 @@
#include "field_effect.h"
#include "party_menu.h"
#include "malloc.h"
-#include "event_data.h"
#include "script.h"
#include "fldeff.h"
#include "event_scripts.h"
@@ -44,7 +43,7 @@ bool8 FldEff_SweetScent(void)
u8 taskId;
SetWeatherScreenFadeOut();
- taskId = oei_task_add();
+ taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(StartSweetScentFieldEffect);
return FALSE;
}
diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c
index a66a332bf..44a7af732 100644
--- a/src/fldeff_teleport.c
+++ b/src/fldeff_teleport.c
@@ -28,7 +28,7 @@ static void FieldCallback_Teleport(void)
bool8 FldEff_UseTeleport(void)
{
- u8 taskId = oei_task_add();
+ u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(StartTeleportFieldEffect);
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
return FALSE;
diff --git a/src/flying.c b/src/flying.c
index 6d4a1eb56..4ecfa2899 100644
--- a/src/flying.c
+++ b/src/flying.c
@@ -178,7 +178,7 @@ const struct SpriteTemplate gUnknown_83E6C00 =
};
// not used
-static const u16 gUnknown_83E6C18[] = INCBIN_U16("graphics/battle_anims/sprites/unk_83E6C18.gbapal");
+static const u16 gUnknown_83E6C18[] = INCBIN_U16("graphics/battle_anims/unk_83E6C18.gbapal");
const struct SpriteTemplate gUnknown_83E6C38 =
{
diff --git a/src/graphics.c b/src/graphics.c
new file mode 100644
index 000000000..47d699fdd
--- /dev/null
+++ b/src/graphics.c
@@ -0,0 +1,1419 @@
+#include "global.h"
+
+const u32 gBattleTextboxTiles[] = INCBIN_U32("graphics/battle_interface/window.4bpp.lz");
+const u32 gBattleTextboxPalette[] = INCBIN_U32("graphics/battle_interface/window.gbapal.lz");
+const u32 gBattleTextboxTilemap[] = INCBIN_U32("graphics/interface/menu_map.bin.lz");
+
+const u32 gMonFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/front.4bpp.lz");
+const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/back.4bpp.lz");
+const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/normal.gbapal.lz");
+const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/shiny.gbapal.lz");
+
+// From Ruby.
+const u32 gUnusedGfx_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.4bpp.lz");
+const u32 gUnusedTimemap_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.bin.lz");
+const u32 gUnusedPal_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.gbapal.lz");
+
+const u32 gSmokescreenImpactTiles[] = INCBIN_U32("graphics/battle_anims/sprites/smokescreen_impact.4bpp.lz");
+const u32 gSmokescreenImpactPalette[] = INCBIN_U32("graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz");
+
+#include "data/graphics/interface_pokeballs.h"
+
+const u32 gBlankGfxCompressed[] = INCBIN_U32("graphics/interface/blank.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Bubble[] = INCBIN_U32("graphics/battle_anims/sprites/bubble.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_AirWave[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Orb[] = INCBIN_U32("graphics/battle_anims/sprites/orb.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Sword[] = INCBIN_U32("graphics/battle_anims/sprites/sword.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Seed[] = INCBIN_U32("graphics/battle_anims/sprites/seed.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_RainDrops[] = INCBIN_U32("graphics/battle_anims/sprites/rain_drops.gbapal.lz");
+const u32 gBattleAnimSpritePal_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.gbapal.lz");
+const u32 gBattleAnimSpritePal_AirWave[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave.gbapal.lz");
+const u32 gBattleAnimSpritePal_Orb[] = INCBIN_U32("graphics/battle_anims/sprites/orb.gbapal.lz");
+const u32 gBattleAnimSpritePal_Sword[] = INCBIN_U32("graphics/battle_anims/sprites/sword.gbapal.lz");
+const u32 gBattleAnimSpritePal_Seed[] = INCBIN_U32("graphics/battle_anims/sprites/seed.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Needle[] = INCBIN_U32("graphics/battle_anims/sprites/needle.4bpp.lz");
+const u32 gBattleAnimSpritePal_Needle[] = INCBIN_U32("graphics/battle_anims/sprites/needle.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Explosion6[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_6.4bpp.lz");
+const u32 gBattleAnimSpritePal_Explosion6[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_6.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PinkOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pink_orb.4bpp.lz");
+const u32 gBattleAnimSpritePal_PinkOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pink_orb.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_IceCube[] = INCBIN_U32("graphics/battle_anims/sprites/ice_cube.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_IceCube[] = INCBIN_U32("graphics/battle_anims/sprites/ice_cube.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Gust[] = INCBIN_U32("graphics/battle_anims/sprites/gust.4bpp.lz");
+const u32 gBattleAnimSpritePal_Gust[] = INCBIN_U32("graphics/battle_anims/sprites/gust.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Spark2[] = INCBIN_U32("graphics/battle_anims/sprites/spark_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_Spark2[] = INCBIN_U32("graphics/battle_anims/sprites/spark_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Orange[] = INCBIN_U32("graphics/battle_anims/sprites/orange.4bpp.lz");
+const u32 gBattleAnimSpritePal_Orange[] = INCBIN_U32("graphics/battle_anims/sprites/orange.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Spikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes.4bpp.lz");
+const u32 gBattleAnimSpritePal_Spikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_YellowBall[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_ball.4bpp.lz");
+const u32 gBattleAnimSpritePal_YellowBall[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_ball.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_TiedBag[] = INCBIN_U32("graphics/battle_anims/sprites/tied_bag.4bpp.lz");
+const u32 gBattleAnimSpritePal_TiedBag[] = INCBIN_U32("graphics/battle_anims/sprites/tied_bag.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_BlackSmoke[] = INCBIN_U32("graphics/battle_anims/sprites/black_smoke.4bpp.lz");
+const u32 gBattleAnimSpritePal_BlackSmoke[] = INCBIN_U32("graphics/battle_anims/sprites/black_smoke.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_BlackBall[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball.4bpp.lz");
+
+const u32 gUnknownGfx_8D035A0[] = INCBIN_U32("graphics/unknown/unknown_D035A0.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_Glass[] = INCBIN_U32("graphics/battle_anims/sprites/glass.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Glass[] = INCBIN_U32("graphics/battle_anims/sprites/glass.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_HornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit.4bpp.lz");
+const u32 gBattleAnimSpritePal_HornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_BlueShards[] = INCBIN_U32("graphics/battle_anims/sprites/blue_shards.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_BlueShards[] = INCBIN_U32("graphics/battle_anims/sprites/blue_shards.4bpp.lz");
+
+const u32 gUnused_BattleSpritePalette_023[] = INCBIN_U32("graphics/unused/battle_anim_023.gbapal.lz");
+
+const u32 gUnusedGfx_MusicNotes[] = INCBIN_U32("graphics/unused/music_notes.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_Hit[] = INCBIN_U32("graphics/battle_anims/sprites/hit.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Hit[] = INCBIN_U32("graphics/battle_anims/sprites/hit.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_Hit2[] = INCBIN_U32("graphics/battle_anims/sprites/hit_2.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_WavingHand[] = INCBIN_U32("graphics/battle_anims/sprites/waving_hand.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_WavingHand[] = INCBIN_U32("graphics/battle_anims/sprites/waving_hand.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_ClosingEye[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye.4bpp.lz");
+const u32 gBattleAnimSpritePal_ClosingEye[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_BlueStar[] = INCBIN_U32("graphics/battle_anims/sprites/blue_star.4bpp.lz");
+const u32 gBattleAnimSpritePal_BlueStar[] = INCBIN_U32("graphics/battle_anims/sprites/blue_star.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_BubbleBurst[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_BubbleBurst[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_HitDuplicate[] = INCBIN_U32("graphics/battle_anims/sprites/hit_duplicate.4bpp.lz");
+const u32 gBattleAnimSpritePal_HitDuplicate[] = INCBIN_U32("graphics/battle_anims/sprites/hit_duplicate.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_Leer[] = INCBIN_U32("graphics/battle_anims/sprites/leer.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Leer[] = INCBIN_U32("graphics/battle_anims/sprites/leer.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_BlueBurst[] = INCBIN_U32("graphics/battle_anims/sprites/blue_burst.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_BlueBurst[] = INCBIN_U32("graphics/battle_anims/sprites/blue_burst.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_SmallEmber[] = INCBIN_U32("graphics/battle_anims/sprites/small_ember.4bpp.lz");
+const u32 gBattleAnimSpritePal_SmallEmber[] = INCBIN_U32("graphics/battle_anims/sprites/small_ember.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_GraySmoke[] = INCBIN_U32("graphics/battle_anims/sprites/gray_smoke.4bpp.lz");
+const u32 gBattleAnimSpritePal_GraySmoke[] = INCBIN_U32("graphics/battle_anims/sprites/gray_smoke.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_Fire[] = INCBIN_U32("graphics/battle_anims/sprites/fire.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Fire[] = INCBIN_U32("graphics/battle_anims/sprites/fire.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_SpinningFire[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_fire.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_FirePlume[] = INCBIN_U32("graphics/battle_anims/sprites/fire_plume.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_Lightning2[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_2.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Lightning2[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_2.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Lightning[] = INCBIN_U32("graphics/battle_anims/sprites/lightning.4bpp.lz");
+
+const u32 gUnknownGfx_D06D80[] = INCBIN_U32("graphics/unknown/unknown_D06D80.4bpp.lz");
+const u32 gUnknownPal_D06DC4[] = INCBIN_U32("graphics/unknown/unknown_D06D80.gbapal.lz");
+const u32 gUnknownPal_D06DD8[] = INCBIN_U32("graphics/unknown/unknown_D06D80_2.gbapal.lz");
+
+// old battle interface data, unused
+const u32 gOldBattleInterfaceGfx[] = INCBIN_U32("graphics/unused/obi1.4bpp.lz");
+const u32 gOldBattleInterfacePal_1_2_3[] = INCBIN_U32("graphics/unused/obi_palpak1.gbapal.lz"); // palettes 1-3
+const u32 gOldBattleInterfacePal4[] = INCBIN_U32("graphics/unused/old_pal4.gbapal.lz"); // 4 is by itself
+const u32 gOldBattleInterfacePal_5_6_7[] = INCBIN_U32("graphics/unused/obi_palpak3.gbapal.lz"); // palettes 5-7
+const u32 gOldBattleInterfaceGfx2[] = INCBIN_U32("graphics/unused/obi2.4bpp.lz");
+const u32 gOldBattleInterfaceTilemap[] = INCBIN_U32("graphics/unused/old_battle_interface_tilemap.bin.lz");
+
+const u32 gBattleAnimSpritePal_ClawSlash2[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash_2.gbapal.lz");
+const u32 gBattleAnimSpritePal_ClawSlash[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_ClawSlash2[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash_2.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_ClawSlash[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Scratch3[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_3.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Scratch2[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_2.4bpp.lz");
+
+const u32 gPartyMenuHpBar_Gfx[] = INCBIN_U32("graphics/interface/party_menu_hpbar.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_IceChunk[] = INCBIN_U32("graphics/battle_anims/sprites/ice_chunk.4bpp.lz");
+const u32 gBattleAnimSpritePal_IceChunk[] = INCBIN_U32("graphics/battle_anims/sprites/ice_chunk.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_Glass2[] = INCBIN_U32("graphics/battle_anims/sprites/glass_2.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Glass2[] = INCBIN_U32("graphics/battle_anims/sprites/glass_2.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart_2.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart_2.4bpp.lz");
+
+const u32 gInterfaceGfx_UnusedWindow[] = INCBIN_U32("graphics/battle_interface/unused_window.4bpp.lz");
+const u32 gInterfacePal_UnusedWindow[] = INCBIN_U32("graphics/battle_interface/unused_window.gbapal.lz");
+
+const u32 gInterfaceGfx_HPNumbers[] = INCBIN_U32("graphics/interface/hp_numbers.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.4bpp.lz");
+const u32 gBattleAnimSpritePal_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_SapDrip2[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip_2.gbapal.lz");
+
+const u32 gUnusedGfx_Window2[] = INCBIN_U32("graphics/battle_interface/unused_window2.4bpp.lz");
+const u32 gUnusedGfx_Window2Bar[] = INCBIN_U32("graphics/battle_interface/unused_window2bar.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Sparkle1[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_1.4bpp.lz");
+const u32 gBattleAnimSpritePal_Sparkle1[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_1.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_Sparkle2[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_2.gbapal.lz");
+const u32 gBattleAnimSpritePal_HumanoidFoot[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_foot.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_HumanoidFoot[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_foot.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_MonsterFoot[] = INCBIN_U32("graphics/battle_anims/sprites/monster_foot.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_HumanoidHand[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_hand.4bpp.lz");
+
+const u32 gUnusedGfx_LineSketch[] = INCBIN_U32("graphics/unused/line_sketch.4bpp.lz");
+const u32 gUnusedPal_LineSketch[] = INCBIN_U32("graphics/unused/line_sketch.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_YellowUnk[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk.4bpp.lz");
+const u32 gBattleAnimSpritePal_YellowUnk[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SlamHit[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit.4bpp.lz");
+const u32 gBattleAnimSpritePal_SlamHit[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_RedFist[] = INCBIN_U32("graphics/battle_anims/sprites/red_fist.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Ring[] = INCBIN_U32("graphics/battle_anims/sprites/ring.4bpp.lz");
+const u32 gBattleAnimSpritePal_Ring[] = INCBIN_U32("graphics/battle_anims/sprites/ring.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Rocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks.4bpp.lz");
+const u32 gBattleAnimSpritePal_Rocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Z[] = INCBIN_U32("graphics/battle_anims/sprites/z.4bpp.lz");
+const u32 gBattleAnimSpritePal_Z[] = INCBIN_U32("graphics/battle_anims/sprites/z.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_YellowUnk2[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_YellowUnk2[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_AirSlash[] = INCBIN_U32("graphics/battle_anims/sprites/air_slash.4bpp.lz");
+const u32 gBattleAnimSpritePal_AirSlash[] = INCBIN_U32("graphics/battle_anims/sprites/air_slash.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SpinningGreenOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_green_orbs.4bpp.lz");
+const u32 gBattleAnimSpritePal_SpinningGreenOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_green_orbs.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Leaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaf.4bpp.lz");
+const u32 gBattleAnimSpritePal_Leaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaf.gbapal.lz");
+
+const u32 gUnusedGfx_Metronome[] = INCBIN_U32("graphics/unused/metronome_hand_small.4bpp.lz"); // unused, was for metronome at one point
+
+const u32 gBattleAnimSpritePal_Clapping[] = INCBIN_U32("graphics/battle_anims/sprites/clapping.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PoisonPowder[] = INCBIN_U32("graphics/battle_anims/sprites/poison_powder.4bpp.lz");
+const u32 gBattleAnimSpritePal_PoisonPowder[] = INCBIN_U32("graphics/battle_anims/sprites/poison_powder.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_BrownTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/brown_triangle.4bpp.lz");
+const u32 gBattleAnimSpritePal_BrownTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/brown_triangle.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Sparkle3[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_3.4bpp.lz");
+const u32 gBattleAnimSpritePal_Sparkle3[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_3.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Sparkle4[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_4.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_MusicNotes[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes.4bpp.lz");
+const u32 gBattleAnimSpritePal_MusicNotes[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Duck[] = INCBIN_U32("graphics/battle_anims/sprites/duck.4bpp.lz");
+const u32 gBattleAnimSpritePal_Duck[] = INCBIN_U32("graphics/battle_anims/sprites/duck.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Alert[] = INCBIN_U32("graphics/battle_anims/sprites/alert.4bpp.lz");
+const u32 gBattleAnimSpritePal_Alert[] = INCBIN_U32("graphics/battle_anims/sprites/alert.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Shock4[] = INCBIN_U32("graphics/battle_anims/sprites/shock_4.4bpp.lz");
+const u32 gBattleAnimSpritePal_Shock4[] = INCBIN_U32("graphics/battle_anims/sprites/shock_4.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Shock[] = INCBIN_U32("graphics/battle_anims/sprites/shock.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Bell2[] = INCBIN_U32("graphics/battle_anims/sprites/bell_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_Bell2[] = INCBIN_U32("graphics/battle_anims/sprites/bell_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PinkGlove[] = INCBIN_U32("graphics/battle_anims/sprites/pink_glove.4bpp.lz");
+const u32 gBattleAnimSpritePal_PinkGlove[] = INCBIN_U32("graphics/battle_anims/sprites/pink_glove.gbapal.lz");
+
+const u16 gUnknown_D0CA04[] = INCBIN_U16("graphics/unknown/unknown_D0CA04.bin");
+const u16 gUnknown_D0CA28[] = INCBIN_U16("graphics/unknown/unknown_D0CA28.bin");
+const u16 gUnknown_D0CA4C[] = INCBIN_U16("graphics/unknown/unknown_D0CA4C.bin");
+const u32 gUnusedGfx8bpp_LineSketch2[] = INCBIN_U32("graphics/unused/line_sketch_2.8bpp.lz");
+const u16 gUnknown_D0CAC8[] = INCBIN_U16("graphics/unknown/unknown_D0CAC8.bin");
+const u32 gUnusedTilemap_LineSketch2[] = INCBIN_U32("graphics/unused/line_sketch_2.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_BlueLines[] = INCBIN_U32("graphics/battle_anims/sprites/blue_lines.4bpp.lz");
+const u32 gBattleAnimSpritePal_BlueLines[] = INCBIN_U32("graphics/battle_anims/sprites/blue_lines.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_Impact3[] = INCBIN_U32("graphics/battle_anims/sprites/impact_3.gbapal.lz");
+const u32 gBattleAnimSpritePal_Impact2[] = INCBIN_U32("graphics/battle_anims/sprites/impact_2.gbapal.lz");
+const u32 gBattleAnimSpritePal_Reticle[] = INCBIN_U32("graphics/battle_anims/sprites/reticle.gbapal.lz");
+const u32 gBattleAnimSpritePal_Breath[] = INCBIN_U32("graphics/battle_anims/sprites/breath.gbapal.lz");
+const u32 gBattleAnimSpritePal_Snowball[] = INCBIN_U32("graphics/battle_anims/sprites/snowball.gbapal.lz");
+const u32 gBattleAnimSpritePal_Vine[] = INCBIN_U32("graphics/battle_anims/sprites/vine.gbapal.lz");
+const u32 gBattleAnimSpritePal_Sword2[] = INCBIN_U32("graphics/battle_anims/sprites/sword_2.gbapal.lz");
+const u32 gBattleAnimSpritePal_RedTube[] = INCBIN_U32("graphics/battle_anims/sprites/red_tube.gbapal.lz");
+const u32 gBattleAnimSpritePal_Amnesia[] = INCBIN_U32("graphics/battle_anims/sprites/amnesia.gbapal.lz");
+const u32 gBattleAnimSpritePal_String2[] = INCBIN_U32("graphics/battle_anims/sprites/string_2.gbapal.lz");
+
+const u32 gFile_graphics_unknown_unknown_D0CD0C[] = INCBIN_U32("graphics/unknown/unknown_D0CD0C.bin.lz");
+
+const u32 gBattleAnimSpritePal_Pencil2[] = INCBIN_U32("graphics/battle_anims/sprites/pencil_2.gbapal.lz");
+const u32 gBattleAnimSpritePal_Petal[] = INCBIN_U32("graphics/battle_anims/sprites/petal.gbapal.lz");
+const u32 gBattleAnimSpritePal_BentSpoon[] = INCBIN_U32("graphics/battle_anims/sprites/bent_spoon.gbapal.lz");
+const u32 gBattleAnimSpritePal_Coin[] = INCBIN_U32("graphics/battle_anims/sprites/coin.gbapal.lz");
+const u32 gBattleAnimSpritePal_CrackedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/cracked_egg.gbapal.lz");
+const u32 gBattleAnimSpritePal_FreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/fresh_egg.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Impact3[] = INCBIN_U32("graphics/battle_anims/sprites/impact_3.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Impact2[] = INCBIN_U32("graphics/battle_anims/sprites/impact_2.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Reticle[] = INCBIN_U32("graphics/battle_anims/sprites/reticle.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Breath[] = INCBIN_U32("graphics/battle_anims/sprites/breath.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Snowball[] = INCBIN_U32("graphics/battle_anims/sprites/snowball.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Vine[] = INCBIN_U32("graphics/battle_anims/sprites/vine.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Sword2[] = INCBIN_U32("graphics/battle_anims/sprites/sword_2.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Clapping[] = INCBIN_U32("graphics/battle_anims/sprites/clapping.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_RedTube[] = INCBIN_U32("graphics/battle_anims/sprites/red_tube.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Amnesia[] = INCBIN_U32("graphics/battle_anims/sprites/amnesia.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_String2[] = INCBIN_U32("graphics/battle_anims/sprites/string_2.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Pencil2[] = INCBIN_U32("graphics/battle_anims/sprites/pencil_2.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Petal[] = INCBIN_U32("graphics/battle_anims/sprites/petal.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_BentSpoon[] = INCBIN_U32("graphics/battle_anims/sprites/bent_spoon.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Web[] = INCBIN_U32("graphics/battle_anims/sprites/web.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Coin[] = INCBIN_U32("graphics/battle_anims/sprites/coin.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_CrackedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/cracked_egg.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_HatchedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/hatched_egg.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_FreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/fresh_egg.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Fangs[] = INCBIN_U32("graphics/battle_anims/sprites/fangs.4bpp.lz");
+const u32 gBattleAnimSpritePal_Fangs[] = INCBIN_U32("graphics/battle_anims/sprites/fangs.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Explosion2[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_Explosion2[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Explosion3[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_3.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_WaterDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet.4bpp.lz");
+const u32 gBattleAnimSpritePal_WaterDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_WaterDroplet2[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet_2.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Seed2[] = INCBIN_U32("graphics/battle_anims/sprites/seed_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_Seed2[] = INCBIN_U32("graphics/battle_anims/sprites/seed_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Sprout[] = INCBIN_U32("graphics/battle_anims/sprites/sprout.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_RedWand[] = INCBIN_U32("graphics/battle_anims/sprites/red_wand.4bpp.lz");
+const u32 gBattleAnimSpritePal_RedWand[] = INCBIN_U32("graphics/battle_anims/sprites/red_wand.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PurpleGreenUnk[] = INCBIN_U32("graphics/battle_anims/sprites/purple_green_unk.4bpp.lz");
+const u32 gBattleAnimSpritePal_PurpleGreenUnk[] = INCBIN_U32("graphics/battle_anims/sprites/purple_green_unk.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_WaterColumn[] = INCBIN_U32("graphics/battle_anims/sprites/water_column.4bpp.lz");
+const u32 gBattleAnimSpritePal_WaterColumn[] = INCBIN_U32("graphics/battle_anims/sprites/water_column.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MudUnk[] = INCBIN_U32("graphics/battle_anims/sprites/mud_unk.4bpp.lz");
+const u32 gBattleAnimSpritePal_MudUnk[] = INCBIN_U32("graphics/battle_anims/sprites/mud_unk.gbapal.lz");
+
+const u32 gUnusedTilemap_BlueFrame[] = INCBIN_U32("graphics/unused/blue_frame.bin.lz"); // P1, P2, P3 and P4 tilemaps?
+const u32 gUnusedTilemap_RedYellowGreenFrame[] = INCBIN_U32("graphics/unused/redyellowgreen_frame.bin.lz");
+const u32 gUnusedGfx_ColorFrames[] = INCBIN_U32("graphics/unused/color_frames.4bpp.lz");
+const u32 gUnusedPal_ColorFrames[] = INCBIN_U32("graphics/unused/color_frames.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_RainDrops[] = INCBIN_U32("graphics/battle_anims/sprites/rain_drops.4bpp.lz");
+
+const u32 gUnusedGfx8bpp_WaterSplash [] = INCBIN_U32("graphics/unused/water_splash.8bpp.lz");
+const u32 gUnusedTilemap_WaterSplash[] = INCBIN_U32("graphics/unused/water_splash.bin.lz");
+const u32 gUnusedPalette_WaterSplash[] = INCBIN_U32("graphics/unused/water_splash.gbapal.lz");
+
+const u32 gUnusedGfx_BasicFrame[] = INCBIN_U32("graphics/unused/basic_frame.4bpp.lz");
+const u32 gUnusedPal_BasicFrame[] = INCBIN_U32("graphics/unused/basic_frame.gbapal.lz");
+const u32 gUnusedTilemap_BasicFrame[] = INCBIN_U32("graphics/unused/basic_frame.bin.lz");
+
+// Battle Interface
+
+const u16 gBattleInterface_BallStatusBarPal[] = INCBIN_U16("graphics/battle_interface/ball_status_bar.gbapal");
+
+const u16 gBattleInterface_BallDisplayPal[] = INCBIN_U16("graphics/battle_interface/ball_display.gbapal");
+
+//Originally an array?
+const u8 gHealthboxElementsGfxTable[] = INCBIN_U8("graphics/battle_interface/hp_bar.4bpp");
+const u8 gHealthboxElementsGfxTable_ExpBar[] = INCBIN_U8("graphics/battle_interface/exp_bar.4bpp");
+const u8 gHealthboxElementsGfxTable_StatusPsn[] = INCBIN_U8("graphics/battle_interface/status_psn.4bpp");
+const u8 gHealthboxElementsGfxTable_StatusPar[] = INCBIN_U8("graphics/battle_interface/status_par.4bpp");
+const u8 gHealthboxElementsGfxTable_StatusSlp[] = INCBIN_U8("graphics/battle_interface/status_slp.4bpp");
+const u8 gHealthboxElementsGfxTable_StatusFrz[] = INCBIN_U8("graphics/battle_interface/status_frz.4bpp");
+const u8 gHealthboxElementsGfxTable_StatusBrn[] = INCBIN_U8("graphics/battle_interface/status_brn.4bpp");
+const u8 gHealthboxElementsGfxTable_Misc[] = INCBIN_U8("graphics/battle_interface/misc.4bpp");
+const u8 gHealthboxElementsGfxTable_HpBarAnim[] = INCBIN_U8("graphics/battle_interface/hp_bar_anim.4bpp");
+const u8 gHealthboxElementsGfxTable_MiscFrameEnd[] = INCBIN_U8("graphics/battle_interface/misc_frame_end.4bpp");
+
+const u8 gUnknown_8D12404[] = INCBIN_U8("graphics/battle_interface/ball_display.4bpp");
+
+//Originally an array?
+const u8 gUnknown_08C1249C[] = INCBIN_U8("graphics/battle_interface/ball_display_unused_extra.4bpp");
+const u8 gBattleInterfaceGfx_Status2[] = INCBIN_U8("graphics/battle_interface/status2.4bpp"); // these three duplicate sets of graphics are for the opponent pokemon
+const u8 gBattleInterfaceGfx_Status3[] = INCBIN_U8("graphics/battle_interface/status3.4bpp"); // and are also for use in double battles. they use dynamic palettes so
+const u8 gBattleInterfaceGfx_Status4[] = INCBIN_U8("graphics/battle_interface/status4.4bpp"); // coloring them is an extreme headache and wont be done for now
+const u8 gUnknown_8D12A44[] = INCBIN_U8("graphics/unknown/unknown_D12A44.4bpp");
+const u8 gUnknown_8D12A64[] = INCBIN_U8("graphics/unknown/unknown_D12A64.4bpp");
+const u32 gBattleInterfaceGfx_UnusedWindow3[] = INCBIN_U32("graphics/battle_interface/unused_window3.4bpp.lz");
+const u32 gBattleInterfaceGfx_UnusedWindow4[] = INCBIN_U32("graphics/battle_interface/unused_window4.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_FurySwipes[] = INCBIN_U32("graphics/battle_anims/sprites/fury_swipes.4bpp.lz");
+const u32 gBattleAnimSpritePal_FurySwipes[] = INCBIN_U32("graphics/battle_anims/sprites/fury_swipes.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Vine2[] = INCBIN_U32("graphics/battle_anims/sprites/vine_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_Vine2[] = INCBIN_U32("graphics/battle_anims/sprites/vine_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Teeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth.4bpp.lz");
+const u32 gBattleAnimSpritePal_Teeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Bone2[] = INCBIN_U32("graphics/battle_anims/sprites/bone_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_Bone2[] = INCBIN_U32("graphics/battle_anims/sprites/bone_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_WhiteBag[] = INCBIN_U32("graphics/battle_anims/sprites/white_bag.4bpp.lz");
+const u32 gBattleAnimSpritePal_WhiteBag[] = INCBIN_U32("graphics/battle_anims/sprites/white_bag.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Unknown[] = INCBIN_U32("graphics/battle_anims/sprites/unknown.4bpp.lz");
+const u32 gBattleAnimSpritePal_Unknown[] = INCBIN_U32("graphics/battle_anims/sprites/unknown.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PurpleCoral[] = INCBIN_U32("graphics/battle_anims/sprites/purple_coral.4bpp.lz");
+const u32 gBattleAnimSpritePal_PurpleCoral[] = INCBIN_U32("graphics/battle_anims/sprites/purple_coral.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PurpleDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/purple_droplet.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Shock2[] = INCBIN_U32("graphics/battle_anims/sprites/shock_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_Shock2[] = INCBIN_U32("graphics/battle_anims/sprites/shock_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_ClosingEye2[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_ClosingEye2[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MetalBall[] = INCBIN_U32("graphics/battle_anims/sprites/metal_ball.4bpp.lz");
+const u32 gBattleAnimSpritePal_MetalBall[] = INCBIN_U32("graphics/battle_anims/sprites/metal_ball.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MonsterDoll[] = INCBIN_U32("graphics/battle_anims/sprites/monster_doll.4bpp.lz");
+const u32 gBattleAnimSpritePal_MonsterDoll[] = INCBIN_U32("graphics/battle_anims/sprites/monster_doll.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Whirlwind[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind.4bpp.lz");
+const u32 gBattleAnimSpritePal_Whirlwind[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Whirlwind2[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_2.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Explosion4[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_4.4bpp.lz");
+const u32 gBattleAnimSpritePal_Explosion4[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_4.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Explosion5[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_5.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Tongue[] = INCBIN_U32("graphics/battle_anims/sprites/tongue.4bpp.lz");
+const u32 gBattleAnimSpritePal_Tongue[] = INCBIN_U32("graphics/battle_anims/sprites/tongue.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Smoke[] = INCBIN_U32("graphics/battle_anims/sprites/smoke.4bpp.lz");
+const u32 gBattleAnimSpritePal_Smoke[] = INCBIN_U32("graphics/battle_anims/sprites/smoke.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Smoke2[] = INCBIN_U32("graphics/battle_anims/sprites/smoke_2.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_BlueFlames[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames.4bpp.lz");
+const u32 gBattleAnimSpritePal_BlueFlames[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_BlueFlames2[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames_2.4bpp.lz");
+
+// Contest
+
+const u32 gUnusedGfx_OldContest[] = INCBIN_U32("graphics/unused/old_contest.4bpp.lz");
+const u32 gUnusedPal_OldContest[] = INCBIN_U32("graphics/unused/old_contest.gbapal.lz");
+const u32 gUnusedTilemap_OldContest[] = INCBIN_U32("graphics/unused/old_contest.bin.lz");
+
+const u32 gFile_graphics_unknown_unknown_D15BE8_tilemap[] = INCBIN_U32("graphics/unknown/unknown_D15BE8.bin.lz");
+
+const u32 gFile_graphics_unused_numbers_sheet[] = INCBIN_U32("graphics/unused/numbers.4bpp.lz"); // From ruby
+const u32 gFile_graphics_unused_numbers_palette[] = INCBIN_U32("graphics/unused/numbers.gbapal.lz"); // From ruby
+
+const u32 gUnusedGfx_OldContest2[] = INCBIN_U32("graphics/unused/old_contest_2.4bpp.lz");
+const u32 gOldContestPalette[] = INCBIN_U32("graphics/unused/old_contest_2.gbapal.lz");
+const u32 gOldContestGfx[] = INCBIN_U32("graphics/unused/old_contest_2.bin.lz");
+
+const u32 gFile_graphics_unknown_unknown_D172A8_tilemap[] = INCBIN_U32("graphics/unknown/unknown_D172A8.bin.lz");
+
+const u32 gFile_graphics_unknown_unknown_D17548_tilemap[] = INCBIN_U32("graphics/unknown/unknown_D17548.bin.lz");
+
+const u32 gFile_graphics_unknown_unknown_D17654_tilemap[] = INCBIN_U32("graphics/unknown/unknown_D17654.bin.lz");
+
+const u32 gFile_graphics_unknown_unknown_D17AB8_tilemap[] = INCBIN_U32("graphics/unknown/unknown_D17AB8.bin.lz");
+
+const u32 gContestMiscGfx[] = INCBIN_U32("graphics/contest/misc.4bpp.lz");
+
+const u32 gFile_graphics_contest_audience_sheet[] = INCBIN_U32("graphics/contest/audience.4bpp.lz");
+
+const u32 gFile_graphics_contest_faces_sheet[] = INCBIN_U32("graphics/contest/faces.4bpp.lz");
+
+const u32 gFile_graphics_contest_judge_symbols_sheet[] = INCBIN_U32("graphics/contest/judge_symbols.4bpp.lz");
+const u32 gFile_graphics_contest_judge_symbols_palette[] = INCBIN_U32("graphics/contest/judge_symbols.gbapal.lz");
+
+const u8 gFile_graphics_contest_heart[] = INCBIN_U8("graphics/contest/heart.4bpp");
+
+const u32 gFile_graphics_unknown_unknown_D196E4_sheet[] = INCBIN_U32("graphics/unknown/unknown_D196E4.4bpp.lz");
+const u32 gFile_graphics_unknown_unknown_D196E4_palette[] = INCBIN_U32("graphics/unknown/unknown_D196E4.gbapal.lz");
+
+const u32 gUnknown_8D197FC[] = INCBIN_U32("graphics/contest/misc_2.4bpp.lz");
+
+const u32 gFile_graphics_contest_misc_2_tilemap_1_tilemap[] = INCBIN_U32("graphics/contest/misc_2_tilemap_1.bin.lz");
+const u32 gFile_graphics_contest_misc_2_tilemap_2_tilemap[] = INCBIN_U32("graphics/contest/misc_2_tilemap_2.bin.lz");
+const u32 gFile_graphics_contest_misc_2_tilemap_3_tilemap[] = INCBIN_U32("graphics/contest/misc_2_tilemap_3.bin.lz");
+
+const u32 gFile_graphics_contest_misc_2_palette[] = INCBIN_U32("graphics/contest/misc_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.4bpp.lz");
+const u32 gBattleAnimSpritePal_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Particles[] = INCBIN_U32("graphics/battle_anims/sprites/particles.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_CircleImpact[] = INCBIN_U32("graphics/battle_anims/sprites/circle_impact.4bpp.lz");
+const u32 gBattleAnimSpritePal_CircleImpact[] = INCBIN_U32("graphics/battle_anims/sprites/circle_impact.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Scratch[] = INCBIN_U32("graphics/battle_anims/sprites/scratch.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_SharpTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/sharp_teeth.4bpp.lz");
+const u32 gBattleAnimSpritePal_SharpTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/sharp_teeth.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Clamp[] = INCBIN_U32("graphics/battle_anims/sprites/clamp.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Cut[] = INCBIN_U32("graphics/battle_anims/sprites/cut.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_RainbowRings[] = INCBIN_U32("graphics/battle_anims/sprites/rainbow_rings.4bpp.lz");
+const u32 gBattleAnimSpritePal_RainbowRings[] = INCBIN_U32("graphics/battle_anims/sprites/rainbow_rings.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_IceCrystals[] = INCBIN_U32("graphics/battle_anims/sprites/ice_crystals.4bpp.lz");
+const u32 gBattleAnimSpritePal_IceCrystals[] = INCBIN_U32("graphics/battle_anims/sprites/ice_crystals.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_IceSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/ice_spikes.4bpp.lz");
+
+const u32 gUnusedGfx_OldBeatUp[] = INCBIN_U32("graphics/unused/old_beatup.4bpp.lz");
+const u32 gUnusedPal_OldBeatUp[] = INCBIN_U32("graphics/unused/old_beatup.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Orbs[] = INCBIN_U32("graphics/battle_anims/sprites/orbs.4bpp.lz");
+const u32 gBattleAnimSpritePal_Orbs[] = INCBIN_U32("graphics/battle_anims/sprites/orbs.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_WaterOrb[] = INCBIN_U32("graphics/battle_anims/sprites/water_orb.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_WaterImpact[] = INCBIN_U32("graphics/battle_anims/sprites/water_impact.4bpp.lz");
+const u32 gBattleAnimSpritePal_WaterImpact[] = INCBIN_U32("graphics/battle_anims/sprites/water_impact.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_BrownOrb[] = INCBIN_U32("graphics/battle_anims/sprites/brown_orb.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MudSand[] = INCBIN_U32("graphics/battle_anims/sprites/mud_sand.4bpp.lz");
+const u32 gBattleAnimSpritePal_MudSand[] = INCBIN_U32("graphics/battle_anims/sprites/mud_sand.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PoisonBubble[] = INCBIN_U32("graphics/battle_anims/sprites/poison_bubble.4bpp.lz");
+const u32 gBattleAnimSpritePal_PoisonBubble[] = INCBIN_U32("graphics/battle_anims/sprites/poison_bubble.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_ToxicBubble[] = INCBIN_U32("graphics/battle_anims/sprites/toxic_bubble.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_HornHit2[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_HornHit2[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_AirWave2[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_AirWave2[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SmallBubbles[] = INCBIN_U32("graphics/battle_anims/sprites/small_bubbles.4bpp.lz");
+const u32 gBattleAnimSpritePal_SmallBubbles[] = INCBIN_U32("graphics/battle_anims/sprites/small_bubbles.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_RoundShadow[] = INCBIN_U32("graphics/battle_anims/sprites/round_shadow.4bpp.lz");
+const u32 gBattleAnimSpritePal_RoundShadow[] = INCBIN_U32("graphics/battle_anims/sprites/round_shadow.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Sunlight[] = INCBIN_U32("graphics/battle_anims/sprites/sunlight.4bpp.lz");
+const u32 gBattleAnimSpritePal_Sunlight[] = INCBIN_U32("graphics/battle_anims/sprites/sunlight.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Spore[] = INCBIN_U32("graphics/battle_anims/sprites/spore.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_Spore[] = INCBIN_U32("graphics/battle_anims/sprites/spore.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Flower[] = INCBIN_U32("graphics/battle_anims/sprites/flower.4bpp.lz");
+const u32 gBattleAnimSpritePal_Flower[] = INCBIN_U32("graphics/battle_anims/sprites/flower.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_RazorLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/razor_leaf.4bpp.lz");
+const u32 gBattleAnimSpritePal_RazorLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/razor_leaf.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MistCloud[] = INCBIN_U32("graphics/battle_anims/sprites/mist_cloud.4bpp.lz");
+const u32 gBattleAnimSpritePal_MistCloud[] = INCBIN_U32("graphics/battle_anims/sprites/mist_cloud.gbapal.lz");
+
+const u32 gFile_graphics_unknown_unknown_D1BE74_sheet[] = INCBIN_U32("graphics/unknown/unknown_D1BE74.4bpp.lz");
+const u32 gFile_graphics_unknown_unknown_D1BE74_palette[] = INCBIN_U32("graphics/unknown/unknown_D1BE74.gbapal.lz");
+const u32 gFile_graphics_unknown_unknown_D1BE74_tilemap[] = INCBIN_U32("graphics/unknown/unknown_D1BE74.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_WhirlwindLines[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_lines.4bpp.lz");
+const u32 gBattleAnimSpritePal_WhirlwindLines[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_lines.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_GoldRing[] = INCBIN_U32("graphics/battle_anims/sprites/gold_ring.4bpp.lz");
+const u32 gBattleAnimSpritePal_GoldRing[] = INCBIN_U32("graphics/battle_anims/sprites/gold_ring.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_BlueRing2[] = INCBIN_U32("graphics/battle_anims/sprites/blue_ring_2.gbapal.lz");
+const u32 gBattleAnimSpritePal_PurpleRing[] = INCBIN_U32("graphics/battle_anims/sprites/purple_ring.gbapal.lz");
+const u32 gBattleAnimSpritePal_BlueRing[] = INCBIN_U32("graphics/battle_anims/sprites/blue_ring.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_GreenLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/green_light_wall.4bpp.lz");
+const u32 gBattleAnimSpritePal_GreenLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/green_light_wall.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_BlueLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/blue_light_wall.gbapal.lz");
+const u32 gBattleAnimSpritePal_RedLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/red_light_wall.gbapal.lz");
+const u32 gBattleAnimSpritePal_GrayLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/gray_light_wall.gbapal.lz");
+const u32 gBattleAnimSpritePal_OrangeLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/orange_light_wall.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_BlackBall2[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_BlackBall2[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball_2.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_PurpleGasCloud[] = INCBIN_U32("graphics/battle_anims/sprites/purple_gas_cloud.gbapal.lz");
+
+const u32 gFile_graphics_contest_judge_sheet[] = INCBIN_U32("graphics/contest/judge.4bpp.lz");
+const u32 gFile_graphics_contest_judge_palette[] = INCBIN_U32("graphics/contest/judge.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Spark[] = INCBIN_U32("graphics/battle_anims/sprites/spark.4bpp.lz");
+const u32 gBattleAnimSpritePal_Spark[] = INCBIN_U32("graphics/battle_anims/sprites/spark.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SparkH[] = INCBIN_U32("graphics/battle_anims/sprites/spark_h.4bpp.lz");
+
+const u32 gBattleAnimBgImage_Dark[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark.4bpp.lz");
+const u32 gBattleAnimBgPalette_Dark[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark.gbapal.lz");
+const u32 gBattleAnimBgTilemap_Dark[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark.bin.lz");
+
+const u32 gMetalShineGfx[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.4bpp.lz");
+const u32 gMetalShinePalette[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.gbapal.lz");
+const u32 gMetalShineTilemap[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.bin.lz");
+
+const u32 gUnusedGfx_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.4bpp.lz"); // ghost
+const u32 gUnusedPal_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.gbapal.lz");
+const u32 gUnusedTilemap_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_YellowStar[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_star.4bpp.lz");
+const u32 gBattleAnimSpritePal_YellowStar[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_star.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_LargeFreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/large_fresh_egg.4bpp.lz");
+const u32 gBattleAnimSpritePal_LargeFreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/large_fresh_egg.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_ShadowBall[] = INCBIN_U32("graphics/battle_anims/sprites/shadow_ball.4bpp.lz");
+const u32 gBattleAnimSpritePal_ShadowBall[] = INCBIN_U32("graphics/battle_anims/sprites/shadow_ball.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Lick[] = INCBIN_U32("graphics/battle_anims/sprites/lick.4bpp.lz");
+const u32 gBattleAnimSpritePal_Lick[] = INCBIN_U32("graphics/battle_anims/sprites/lick.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_VoidLines[] = INCBIN_U32("graphics/battle_anims/sprites/void_lines.4bpp.lz");
+const u32 gBattleAnimSpritePal_VoidLines[] = INCBIN_U32("graphics/battle_anims/sprites/void_lines.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_String[] = INCBIN_U32("graphics/battle_anims/sprites/string.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_String[] = INCBIN_U32("graphics/battle_anims/sprites/string.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_WebThread[] = INCBIN_U32("graphics/battle_anims/sprites/web_thread.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_SpiderWeb[] = INCBIN_U32("graphics/battle_anims/sprites/spider_web.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Lightbulb[] = INCBIN_U32("graphics/battle_anims/sprites/lightbulb.4bpp.lz");
+const u32 gBattleAnimSpritePal_Lightbulb[] = INCBIN_U32("graphics/battle_anims/sprites/lightbulb.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Slash[] = INCBIN_U32("graphics/battle_anims/sprites/slash.4bpp.lz");
+const u32 gBattleAnimSpritePal_Slash[] = INCBIN_U32("graphics/battle_anims/sprites/slash.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_FocusEnergy[] = INCBIN_U32("graphics/battle_anims/sprites/focus_energy.4bpp.lz");
+const u32 gBattleAnimSpritePal_FocusEnergy[] = INCBIN_U32("graphics/battle_anims/sprites/focus_energy.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.4bpp.lz");
+const u32 gBattleAnimSpritePal_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.gbapal.lz");
+
+const u32 gBattleAnimBgImage_Psychic[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic.4bpp.lz");
+const u32 gBattleAnimBgPalette_Psychic[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic.gbapal.lz");
+const u32 gBattleAnimBgTilemap_Psychic[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.4bpp.lz");
+const u32 gBattleAnimSpritePal_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Tendrils[] = INCBIN_U32("graphics/battle_anims/sprites/tendrils.4bpp.lz");
+const u32 gBattleAnimSpritePal_Tendrils[] = INCBIN_U32("graphics/battle_anims/sprites/tendrils.gbapal.lz");
+
+const u32 gHealthboxSinglesPlayerGfx[] = INCBIN_U32("graphics/battle_interface/healthbox_singles_player.4bpp.lz");
+const u32 gHealthboxSinglesOpponentGfx[] = INCBIN_U32("graphics/battle_interface/healthbox_singles_opponent.4bpp.lz");
+const u32 gHealthboxDoublesPlayerGfx[] = INCBIN_U32( "graphics/battle_interface/healthbox_doubles_player.4bpp.lz");
+const u32 gHealthboxDoublesOpponentGfx[] = INCBIN_U32("graphics/battle_interface/healthbox_doubles_opponent.4bpp.lz");
+const u32 gHealthboxSafariGfx[] = INCBIN_U32("graphics/battle_interface/healthbox_safari.4bpp.lz");
+
+const u32 gUnusedGfx_Shadow[] = INCBIN_U32("graphics/unused/shadow.4bpp.lz");
+const u32 gUnusedPal_Shadow[] = INCBIN_U32("graphics/unused/shadow.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_LockOn[] = INCBIN_U32("graphics/battle_anims/sprites/lock_on.4bpp.lz");
+const u32 gBattleAnimSpritePal_LockOn[] = INCBIN_U32("graphics/battle_anims/sprites/lock_on.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_OpeningEye[] = INCBIN_U32("graphics/battle_anims/sprites/opening_eye.4bpp.lz");
+const u32 gBattleAnimSpritePal_OpeningEye[] = INCBIN_U32("graphics/battle_anims/sprites/opening_eye.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_RoundWhiteHalo[] = INCBIN_U32("graphics/battle_anims/sprites/round_white_halo.4bpp.lz");
+const u32 gBattleAnimSpritePal_RoundWhiteHalo[] = INCBIN_U32("graphics/battle_anims/sprites/round_white_halo.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_TealAlert[] = INCBIN_U32("graphics/battle_anims/sprites/teal_alert.4bpp.lz");
+const u32 gBattleAnimSpritePal_TealAlert[] = INCBIN_U32("graphics/battle_anims/sprites/teal_alert.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_FangAttack[] = INCBIN_U32("graphics/battle_anims/sprites/fang_attack.4bpp.lz");
+const u32 gBattleAnimSpritePal_FangAttack[] = INCBIN_U32("graphics/battle_anims/sprites/fang_attack.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.4bpp.lz");
+const u32 gBattleAnimSpritePal_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.gbapal.lz");
+
+const u32 gFile_graphics_battle_anims_masks_curse_sheet[] = INCBIN_U32("graphics/battle_anims/masks/curse.4bpp.lz");
+const u32 gFile_graphics_battle_anims_masks_curse_tilemap[] = INCBIN_U32("graphics/battle_anims/masks/curse.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.4bpp.lz");
+const u32 gBattleAnimSpritePal_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Spiral[] = INCBIN_U32("graphics/battle_anims/sprites/spiral.4bpp.lz");
+const u32 gBattleAnimSpritePal_Spiral[] = INCBIN_U32("graphics/battle_anims/sprites/spiral.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Moon[] = INCBIN_U32("graphics/battle_anims/sprites/moon.4bpp.lz");
+const u32 gBattleAnimSpritePal_Moon[] = INCBIN_U32("graphics/battle_anims/sprites/moon.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_GreenSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/green_sparkle.4bpp.lz");
+const u32 gBattleAnimSpritePal_GreenSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/green_sparkle.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SnoreZ[] = INCBIN_U32("graphics/battle_anims/sprites/snore_z.4bpp.lz");
+const u32 gBattleAnimSpritePal_SnoreZ[] = INCBIN_U32("graphics/battle_anims/sprites/snore_z.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Explosion[] = INCBIN_U32("graphics/battle_anims/sprites/explosion.4bpp.lz");
+const u32 gBattleAnimSpritePal_Explosion[] = INCBIN_U32("graphics/battle_anims/sprites/explosion.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Nail[] = INCBIN_U32("graphics/battle_anims/sprites/nail.4bpp.lz");
+const u32 gBattleAnimSpritePal_Nail[] = INCBIN_U32("graphics/battle_anims/sprites/nail.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_GhostlySpirit[] = INCBIN_U32("graphics/battle_anims/sprites/ghostly_spirit.4bpp.lz");
+const u32 gBattleAnimSpritePal_GhostlySpirit[] = INCBIN_U32("graphics/battle_anims/sprites/ghostly_spirit.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_WarmRock[] = INCBIN_U32("graphics/battle_anims/sprites/warm_rock.4bpp.lz");
+const u32 gBattleAnimSpritePal_WarmRock[] = INCBIN_U32("graphics/battle_anims/sprites/warm_rock.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PunchImpact[] = INCBIN_U32("graphics/battle_anims/sprites/punch_impact.4bpp.lz");
+const u32 gBattleAnimSpritePal_PunchImpact[] = INCBIN_U32("graphics/battle_anims/sprites/punch_impact.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_BreakingEgg[] = INCBIN_U32("graphics/battle_anims/sprites/breaking_egg.4bpp.lz");
+const u32 gBattleAnimSpritePal_BreakingEgg[] = INCBIN_U32("graphics/battle_anims/sprites/breaking_egg.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_ThinRing[] = INCBIN_U32("graphics/battle_anims/sprites/thin_ring.4bpp.lz");
+const u32 gBattleAnimSpritePal_ThinRing[] = INCBIN_U32("graphics/battle_anims/sprites/thin_ring.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MusicNotes2[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes_2.4bpp.lz");
+const u32 gBattleAnimSpritePal_MusicNotes2[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Bell[] = INCBIN_U32("graphics/battle_anims/sprites/bell.4bpp.lz");
+const u32 gBattleAnimSpritePal_Bell[] = INCBIN_U32("graphics/battle_anims/sprites/bell.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SpeedDust[] = INCBIN_U32("graphics/battle_anims/sprites/speed_dust.4bpp.lz");
+const u32 gBattleAnimSpritePal_SpeedDust[] = INCBIN_U32("graphics/battle_anims/sprites/speed_dust.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_TornMetal[] = INCBIN_U32("graphics/battle_anims/sprites/torn_metal.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_ThoughtBubble[] = INCBIN_U32("graphics/battle_anims/sprites/thought_bubble.4bpp.lz");
+const u32 gBattleAnimSpritePal_ThoughtBubble[] = INCBIN_U32("graphics/battle_anims/sprites/thought_bubble.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Finger[] = INCBIN_U32("graphics/battle_anims/sprites/finger.4bpp.lz");
+const u32 gBattleAnimSpritePal_Finger[] = INCBIN_U32("graphics/battle_anims/sprites/finger.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_PinkHeart[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart.gbapal.lz");
+const u32 gBattleAnimSpritePal_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.gbapal.lz");
+const u32 gBattleAnimSpritePal_RedHeart[] = INCBIN_U32("graphics/battle_anims/sprites/red_heart.gbapal.lz");
+
+const u32 gBattleAnimBg_AttractGfx[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.4bpp.lz");
+const u32 gBattleAnimBg_AttractPal[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.gbapal.lz");
+const u32 gBattleAnimBg_AttractTilemap[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.4bpp.lz");
+const u32 gBattleAnimSpritePal_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_CircleOfLight[] = INCBIN_U32("graphics/battle_anims/sprites/circle_of_light.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_ElectricOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/electric_orbs.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Electricity[] = INCBIN_U32("graphics/battle_anims/sprites/electricity.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_ElectricOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/electric_orbs.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Finger2[] = INCBIN_U32("graphics/battle_anims/sprites/finger_2.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.4bpp.lz");
+const u32 gBattleAnimSpritePal_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.gbapal.lz");
+
+const u32 gBattleAnim_ScaryFacePal[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.gbapal.lz");
+const u32 gBattleAnim_ScaryFaceGfx[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Anger[] = INCBIN_U32("graphics/battle_anims/sprites/anger.4bpp.lz");
+const u32 gBattleAnimSpritePal_Anger[] = INCBIN_U32("graphics/battle_anims/sprites/anger.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Conversion[] = INCBIN_U32("graphics/battle_anims/sprites/conversion.4bpp.lz");
+const u32 gBattleAnimSpritePal_Conversion[] = INCBIN_U32("graphics/battle_anims/sprites/conversion.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_Angel[] = INCBIN_U32("graphics/battle_anims/sprites/angel.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Angel[] = INCBIN_U32("graphics/battle_anims/sprites/angel.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_Devil[] = INCBIN_U32("graphics/battle_anims/sprites/devil.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Devil[] = INCBIN_U32("graphics/battle_anims/sprites/devil.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Swipe[] = INCBIN_U32("graphics/battle_anims/sprites/swipe.4bpp.lz");
+const u32 gBattleAnimSpritePal_Swipe[] = INCBIN_U32("graphics/battle_anims/sprites/swipe.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_Roots[] = INCBIN_U32("graphics/battle_anims/sprites/roots.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Roots[] = INCBIN_U32("graphics/battle_anims/sprites/roots.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz");
+
+const u32 gBattleAnimBgPalette_Impact[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact.gbapal.lz");
+const u32 gBattleAnimBgImage_Impact[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact.4bpp.lz");
+const u32 gBattleAnimBgTilemap_ImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact_opponent.bin.lz");
+
+const u32 gBattleAnimBgTilemap_ImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact_player.bin.lz");
+const u32 gBattleAnimBgTilemap_ImpactContests[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact_contests.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.4bpp.lz");
+const u32 gBattleAnimSpritePal_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Spotlight[] = INCBIN_U32("graphics/battle_anims/sprites/spotlight.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Pokeball[] = INCBIN_U32("graphics/battle_anims/sprites/pokeball.4bpp.lz");
+const u32 gBattleAnimSpritePal_Pokeball[] = INCBIN_U32("graphics/battle_anims/sprites/pokeball.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_RapidSpin[] = INCBIN_U32("graphics/battle_anims/sprites/rapid_spin.4bpp.lz");
+const u32 gBattleAnimSpritePal_RapidSpin[] = INCBIN_U32("graphics/battle_anims/sprites/rapid_spin.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MilkBottle[] = INCBIN_U32("graphics/battle_anims/sprites/milk_bottle.4bpp.lz");
+const u32 gBattleAnimSpritePal_MilkBottle[] = INCBIN_U32("graphics/battle_anims/sprites/milk_bottle.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_WispFire[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_fire.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_WispOrb[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_orb.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_WispOrb[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_orb.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_GoldStars[] = INCBIN_U32("graphics/battle_anims/sprites/gold_stars.4bpp.lz");
+const u32 gBattleAnimSpritePal_GoldStars[] = INCBIN_U32("graphics/battle_anims/sprites/gold_stars.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_EclipsingOrb[] = INCBIN_U32("graphics/battle_anims/sprites/eclipsing_orb.4bpp.lz");
+const u32 gBattleAnimSpritePal_EclipsingOrb[] = INCBIN_U32("graphics/battle_anims/sprites/eclipsing_orb.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PinkPetal[] = INCBIN_U32("graphics/battle_anims/sprites/pink_petal.4bpp.lz");
+const u32 gBattleAnimSpritePal_PinkPetal[] = INCBIN_U32("graphics/battle_anims/sprites/pink_petal.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_GrayOrb[] = INCBIN_U32("graphics/battle_anims/sprites/gray_orb.4bpp.lz");
+const u32 gBattleAnimSpritePal_GrayOrb[] = INCBIN_U32("graphics/battle_anims/sprites/gray_orb.gbapal.lz");
+
+const u32 gBattleAnimSpritePal_BlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/blue_orb.gbapal.lz");
+const u32 gBattleAnimSpritePal_RedOrb2[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb_2.gbapal.lz");
+
+const u32 gBattleAnimBgImage_Drill[] = INCBIN_U32("graphics/battle_anims/backgrounds/drill.4bpp.lz");
+const u32 gBattleAnimBgPalette_Drill[] = INCBIN_U32("graphics/battle_anims/backgrounds/drill.gbapal.lz");
+
+const u32 gBattleAnimBgPalette_Sky[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky.gbapal.lz");
+
+const u32 gBattleAnimBgTilemap_Drill[] = INCBIN_U32("graphics/battle_anims/backgrounds/drill.bin.lz");
+const u32 gBattleAnimBgTilemap_DrillContests[] = INCBIN_U32("graphics/battle_anims/backgrounds/drill_contests.bin.lz");
+
+const u32 gBattleAnimBgImage_Aurora[] = INCBIN_U32("graphics/battle_anims/backgrounds/aurora.4bpp.lz");
+const u32 gBattleAnimBgPalette_Aurora[] = INCBIN_U32("graphics/battle_anims/backgrounds/aurora.gbapal.lz");
+const u32 gBattleAnimBgTilemap_Aurora[] = INCBIN_U32("graphics/battle_anims/backgrounds/aurora.bin.lz");
+
+const u32 gBattleAnimBgTilemap_HighspeedOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed_opponent.bin.lz");
+const u32 gBattleAnimBgPalette_Highspeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed.gbapal.lz");
+
+const u32 gBattleAnimBgPalette_Bug[] = INCBIN_U32("graphics/battle_anims/backgrounds/bug.gbapal.lz");
+
+const u32 gBattleAnimBgImage_Highspeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed.4bpp.lz");
+const u32 gBattleAnimBgTilemap_HighspeedPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed_player.bin.lz");
+
+const u32 gBattleAnim_MorningSunGfx[] = INCBIN_U32("graphics/battle_anims/masks/light_beam.4bpp.lz");
+const u32 gBattleAnim_MorningSunPal[] = INCBIN_U32("graphics/battle_anims/masks/light_beam.gbapal.lz");
+const u32 gBattleAnim_MorningSunTilemap[] = INCBIN_U32("graphics/battle_anims/masks/light_beam.bin.lz");
+
+const u32 gBattleAnimBgTilemap_GuillotineOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine_opponent.bin.lz");
+const u32 gBattleAnimBgTilemap_GuillotinePlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine_player.bin.lz");
+const u32 gBattleAnimBgTilemap_GuillotineContests[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine_contests.bin.lz");
+
+const u32 gBattleAnimBgImage_Guillotine[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine.4bpp.lz");
+const u32 gBattleAnimBgPalette_Guillotine[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine.gbapal.lz");
+
+const u32 gBattleAnimBgImage_Thunder[] = INCBIN_U32("graphics/battle_anims/backgrounds/thunder.4bpp.lz");
+const u32 gBattleAnimBgPalette_Thunder[] = INCBIN_U32("graphics/battle_anims/backgrounds/thunder.gbapal.lz");
+const u32 gBattleAnimBgTilemap_Thunder[] = INCBIN_U32("graphics/battle_anims/backgrounds/thunder.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.4bpp.lz");
+const u32 gBattleAnimSpritePal_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_HandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet.4bpp.lz");
+const u32 gBattleAnimSpritePal_HandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.4bpp.lz");
+const u32 gBattleAnimSpritePal_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.gbapal.lz");
+
+const u32 gSubstituteDollPal[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.gbapal.lz");
+const u32 gSubstituteDollGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.4bpp.lz");
+const u32 gSubstituteDollTilemap[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.4bpp.lz");
+const u32 gBattleAnimSpritePal_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.gbapal.lz");
+
+const u32 gFile_graphics_misc_confetti_sheet[] = INCBIN_U32("graphics/misc/confetti.4bpp.lz");
+const u32 gFile_graphics_misc_confetti_palette[] = INCBIN_U32("graphics/misc/confetti.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PinkCloud[] = INCBIN_U32("graphics/battle_anims/sprites/pink_cloud.4bpp.lz");
+const u32 gBattleAnimSpritePal_PinkCloud[] = INCBIN_U32("graphics/battle_anims/sprites/pink_cloud.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.4bpp.lz");
+const u32 gBattleAnimSpritePal_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.gbapal.lz");
+
+const u32 gBattleStatMask_Gfx[] = INCBIN_U32("graphics/battle_anims/masks/stat.4bpp.lz");
+const u32 gBattleStatMask1_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/stat_tilemap_1.bin.lz");
+const u32 gBattleStatMask2_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/stat_tilemap_2.bin.lz");
+
+const u32 gBattleStatMask1_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat1.gbapal.lz");
+const u32 gBattleStatMask2_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat2.gbapal.lz");
+const u32 gBattleStatMask3_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat3.gbapal.lz");
+const u32 gBattleStatMask4_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat4.gbapal.lz");
+const u32 gBattleStatMask5_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat5.gbapal.lz");
+const u32 gBattleStatMask6_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat6.gbapal.lz");
+const u32 gBattleStatMask7_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat7.gbapal.lz");
+const u32 gBattleStatMask8_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat8.gbapal.lz");
+
+const u32 gCureBubblesGfx[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
+const u32 gCureBubblesPal[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
+const u32 gCureBubblesTilemap[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.bin.lz");
+
+const u32 gBattleAnimSpritePal_PurpleScratch[] = INCBIN_U32("graphics/battle_anims/sprites/purple_scratch.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_PurpleScratch[] = INCBIN_U32("graphics/battle_anims/sprites/purple_scratch.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_PurpleSwipe[] = INCBIN_U32("graphics/battle_anims/sprites/purple_swipe.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_GuardRing[] = INCBIN_U32("graphics/battle_anims/sprites/guard_ring.4bpp.lz");
+const u32 gBattleAnimSpritePal_GuardRing[] = INCBIN_U32("graphics/battle_anims/sprites/guard_ring.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_TagHand[] = INCBIN_U32("graphics/battle_anims/sprites/tag_hand.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz");
+
+const u32 gUnknown_D2EC24_Gfx[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.4bpp.lz");
+const u32 gUnknown_D2EC24_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz");
+const u32 gBattleAnimSpritePal_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_HollowOrb[] = INCBIN_U32("graphics/battle_anims/sprites/hollow_orb.4bpp.lz");
+const u32 gBattleAnimSpritePal_HollowOrb[] = INCBIN_U32("graphics/battle_anims/sprites/hollow_orb.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_XSign[] = INCBIN_U32("graphics/battle_anims/sprites/x_sign.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.4bpp.lz");
+const u32 gBattleAnimSpritePal_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.4bpp.lz");
+const u32 gBattleAnimSpritePal_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_PurpleFlame[] = INCBIN_U32("graphics/battle_anims/sprites/purple_flame.4bpp.lz");
+const u32 gBattleAnimSpritePal_PurpleFlame[] = INCBIN_U32("graphics/battle_anims/sprites/purple_flame.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_RedBall[] = INCBIN_U32("graphics/battle_anims/sprites/red_ball.4bpp.lz");
+const u32 gBattleAnimSpritePal_RedBall[] = INCBIN_U32("graphics/battle_anims/sprites/red_ball.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SmellingsaltEffect[] = INCBIN_U32("graphics/battle_anims/sprites/smellingsalt_effect.4bpp.lz");
+const u32 gBattleAnimSpritePal_SmellingsaltEffect[] = INCBIN_U32("graphics/battle_anims/sprites/smellingsalt_effect.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MagnifyingGlass[] = INCBIN_U32("graphics/battle_anims/sprites/magnifying_glass.4bpp.lz");
+const u32 gBattleAnimSpritePal_MagnifyingGlass[] = INCBIN_U32("graphics/battle_anims/sprites/magnifying_glass.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Meteor[] = INCBIN_U32("graphics/battle_anims/sprites/meteor.4bpp.lz");
+const u32 gBattleAnimSpritePal_Meteor[] = INCBIN_U32("graphics/battle_anims/sprites/meteor.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.4bpp.lz");
+const u32 gBattleAnimSpritePal_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.gbapal.lz");
+
+const u16 gUnknown_8D2FBB4[] = INCBIN_U16("graphics/interface/unk_8D2FBB4.gbapal");
+
+#include "data/graphics/pokemon.h"
+#include "data/graphics/trainers.h"
+
+const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/icon.4bpp");
+const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp");
+
+const u32 gFile_graphics_battle_transitions_vs_frame_sheet[] = INCBIN_U32("graphics/battle_transitions/vs_frame.4bpp.lz");
+const u32 gFile_graphics_battle_transitions_vs_frame_tilemap[] = INCBIN_U32("graphics/battle_transitions/vs_frame.bin.lz");
+const u32 gFile_graphics_battle_transitions_vs_frame_palette[] = INCBIN_U32("graphics/battle_transitions/vs_frame.gbapal.lz");
+
+const u32 gVsLettersGfx[] = INCBIN_U32("graphics/battle_transitions/vs.4bpp.lz");
+
+#include "data/graphics/battle_terrain.h"
+
+const u32 gBattleAnimSpriteGfx_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.4bpp.lz");
+
+const u32 gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.bin.lz");
+const u32 gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.4bpp.lz");
+const u32 gBattleAnimSpritePal_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.gbapal.lz");
+
+const u32 gBattleAnimBgImage_Ice[] = INCBIN_U32("graphics/battle_anims/backgrounds/ice.4bpp.lz");
+const u32 gBattleAnimBgPalette_Ice[] = INCBIN_U32("graphics/battle_anims/backgrounds/ice.gbapal.lz");
+const u32 gBattleAnimBgTilemap_Ice[] = INCBIN_U32("graphics/battle_anims/backgrounds/ice.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.4bpp.lz");
+const u32 gBattleAnimSpritePal_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.gbapal.lz");
+
+const u32 gContestNextTurnGfx[] = INCBIN_U32("graphics/contest/next_turn.4bpp.lz");
+const u8 gFile_graphics_contest_nextturn_numbers[] = INCBIN_U8("graphics/contest/next_turn_numbers.4bpp");
+const u8 gFile_graphics_contest_nextturn_random[] = INCBIN_U8("graphics/contest/next_turn_random.4bpp");
+
+const u32 gBattleAnimSpriteGfx_GlowyRedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_red_orb.4bpp.lz");
+const u32 gBattleAnimSpritePal_GlowyRedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_red_orb.gbapal.lz");
+const u32 gBattleAnimSpritePal_GlowyGreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_green_orb.gbapal.lz");
+const u32 gBattleAnimSpritePal_SleepPowder[] = INCBIN_U32("graphics/battle_anims/sprites/sleep_powder.gbapal.lz");
+const u32 gBattleAnimSpritePal_StunSpore[] = INCBIN_U32("graphics/battle_anims/sprites/stun_spore.gbapal.lz");
+
+const u32 gContestApplauseGfx[] = INCBIN_U32("graphics/contest/applause.4bpp.lz");
+const u8 gFile_graphics_contest_applause_meter[] = INCBIN_U8("graphics/contest/applause_meter.4bpp");
+
+const u16 gFile_graphics_contest_nextturn[] = INCBIN_U16("graphics/contest/next_turn.gbapal");
+
+const u32 gBattleAnimSpriteGfx_Splash[] = INCBIN_U32("graphics/battle_anims/sprites/splash.4bpp.lz");
+const u32 gBattleAnimSpritePal_Splash[] = INCBIN_U32("graphics/battle_anims/sprites/splash.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_SweatBead[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_bead.4bpp.lz");
+
+const u32 gBattleAnimSpriteGfx_Pokeblock[] = INCBIN_U32("graphics/battle_anims/sprites/pokeblock.4bpp.lz");
+const u32 gBattleAnimSpritePal_Pokeblock[] = INCBIN_U32("graphics/battle_anims/sprites/pokeblock.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Gem2[] = INCBIN_U32("graphics/battle_anims/sprites/gem_2.4bpp.lz");
+const u32 gBattleAnimSpriteGfx_Gem3[] = INCBIN_U32("graphics/battle_anims/sprites/gem_3.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.gbapal.lz");
+
+const u32 gBattleAnimBgImage_InAir[] = INCBIN_U32("graphics/battle_anims/backgrounds/in_air.4bpp.lz");
+const u32 gBattleAnimBgPalette_InAir[] = INCBIN_U32("graphics/battle_anims/backgrounds/in_air.gbapal.lz");
+const u32 gBattleAnimBgTilemap_InAir[] = INCBIN_U32("graphics/battle_anims/backgrounds/in_air.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.4bpp.lz");
+const u32 gBattleAnimSpritePal_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.gbapal.lz");
+
+const u32 gFile_graphics_battle_anims_backgrounds_water_muddy_palette[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz");
+
+const u32 gFile_graphics_battle_interface_enemy_mon_shadow_sheet[] = INCBIN_U32("graphics/battle_interface/enemy_mon_shadow.4bpp.lz");
+
+const u32 gFile_graphics_battle_interface_ball_status_bar_sheet[] = INCBIN_U32("graphics/battle_interface/ball_status_bar.4bpp.lz");
+
+const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp");
+
+const u32 gBattleAnimBgImage_Ghost[] = INCBIN_U32("graphics/battle_anims/backgrounds/ghost.4bpp.lz");
+const u32 gBattleAnimBgPalette_Ghost[] = INCBIN_U32("graphics/battle_anims/backgrounds/ghost.gbapal.lz");
+const u32 gBattleAnimBgTilemap_Ghost[] = INCBIN_U32("graphics/battle_anims/backgrounds/ghost.bin.lz");
+
+const u32 gBattleAnimSpritePal_WhipHit[] = INCBIN_U32("graphics/battle_anims/sprites/whip_hit.gbapal.lz");
+
+const u32 gBattleAnimBgPalette_Solarbeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/solarbeam.gbapal.lz");
+
+const u32 gFile_graphics_unknown_unknown_E7CFB0_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E7CFB0.bin.lz");
+
+const u32 gFile_graphics_berry_blender_center_sheet[] = INCBIN_U32("graphics/berry_blender/center.8bpp.lz");
+
+const u32 gFile_graphics_berry_blender_outer_sheet[] = INCBIN_U32("graphics/berry_blender/outer.4bpp.lz");
+const u32 gFile_graphics_berry_blender_outer_map_tilemap[] = INCBIN_U32("graphics/berry_blender/outer_map.bin.lz");
+
+const u32 gBattleAnimBgPalette_Cosmic[] = INCBIN_U32("graphics/battle_anims/backgrounds/cosmic.gbapal.lz");
+const u32 gBattleAnimBgImage_Cosmic[] = INCBIN_U32("graphics/battle_anims/backgrounds/cosmic.4bpp.lz");
+const u32 gBattleAnimBgTilemap_Cosmic[] = INCBIN_U32("graphics/battle_anims/backgrounds/cosmic.bin.lz");
+
+const u32 gBattleAnimSpritePal_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.4bpp.lz");
+
+const u32 gBattleAnimFogTilemap[] = INCBIN_U32("graphics/battle_anims/backgrounds/fog.bin.lz");
+
+const u32 gBattleAnimSpritePal_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.4bpp.lz");
+
+const u32 gBattleAnimBgTilemap_ScaryFacePlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_player.bin.lz");
+const u32 gBattleAnimBgTilemap_ScaryFaceOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_opponent.bin.lz");
+const u32 gBattleAnimBgTilemap_ScaryFaceContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_contest.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.4bpp.lz");
+const u32 gBattleAnimSpritePal_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_GreenSpike[] = INCBIN_U32("graphics/battle_anims/sprites/green_spike.4bpp.lz");
+const u32 gBattleAnimSpritePal_GreenSpike[] = INCBIN_U32("graphics/battle_anims/sprites/green_spike.gbapal.lz");
+const u32 gBattleAnimSpritePal_WhiteCircleOfLight[] = INCBIN_U32("graphics/battle_anims/sprites/white_circle_of_light.gbapal.lz");
+const u32 gBattleAnimSpritePal_GlowyBlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_blue_orb.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_Recycle[] = INCBIN_U32("graphics/battle_anims/sprites/recycle.4bpp.lz");
+const u32 gBattleAnimSpritePal_Recycle[] = INCBIN_U32("graphics/battle_anims/sprites/recycle.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_RedParticles[] = INCBIN_U32("graphics/battle_anims/sprites/red_particles.4bpp.lz");
+const u32 gBattleAnimSpritePal_RedParticles[] = INCBIN_U32("graphics/battle_anims/sprites/red_particles.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.4bpp.lz");
+const u32 gBattleAnimSpritePal_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.gbapal.lz");
+
+const u32 gBattleAnimBgImage_Fissure[] = INCBIN_U32("graphics/battle_anims/backgrounds/fissure.4bpp.lz");
+const u32 gBattleAnimBgPalette_Fissure[] = INCBIN_U32("graphics/battle_anims/backgrounds/fissure.gbapal.lz");
+const u32 gBattleAnimBgTilemap_Fissure[] = INCBIN_U32("graphics/battle_anims/backgrounds/fissure.bin.lz");
+
+const u32 gBattleAnimSpriteGfx_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.4bpp.lz");
+const u32 gBattleAnimSpritePal_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.4bpp.lz");
+const u32 gBattleAnimSpritePal_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.gbapal.lz");
+
+const u32 gFile_graphics_battle_anims_backgrounds_water_sheet[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz");
+const u32 gFile_graphics_battle_anims_backgrounds_water_palette[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz");
+const u32 gFile_graphics_unknown_unknown_E81D14_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E81D14.bin.lz");
+const u32 gFile_graphics_unknown_unknown_E81FE4_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E81FE4.bin.lz");
+const u32 gFile_graphics_unknown_unknown_E822B8_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E822B8.bin.lz");
+
+const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/sprites/slash_2.gbapal.lz");
+
+const u32 gBattleAnimSpriteGfx_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz");
+const u32 gBattleAnimSpritePal_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz");
+
+const u32 gPartyMenuBg_Gfx[] = INCBIN_U32("graphics/interface/party_menu_misc.4bpp.lz");
+const u32 gPartyMenuBg_Pal[] = INCBIN_U32("graphics/interface/party_menu_misc.gbapal.lz");
+const u32 gPartyMenuBg_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_misc.bin.lz");
+
+const u32 gPartyMenuPokeball_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball.4bpp.lz");
+const u32 gPartyMenuPokeballSmall_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball_small.4bpp.lz"); //unused
+const u32 gPartyMenuPokeball_Pal[] = INCBIN_U32("graphics/interface/party_menu_pokeball.gbapal.lz");
+
+const u32 gStatusGfx_Icons[] = INCBIN_U32("graphics/interface/status_icons.4bpp.lz");
+const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapal.lz");
+
+const u32 gUnknown_8E830CC[] = INCBIN_U32("graphics/item_menu/bag_tiles.4bpp.lz");
+
+const u32 gUnknown_8E832C0[] = INCBIN_U32("graphics/item_menu/bag_tilemap1.bin.lz"); // bag menu
+const u32 gUnknown_8E83444[] = INCBIN_U32("graphics/item_menu/bag_tilemap2.bin.lz"); // PC deposit items
+
+const u32 gBagBgPalette[] = INCBIN_U32("graphics/item_menu/bag_pal1.gbapal.lz"); // palette 1 (Boy + misc Pal)
+const u32 gBagBgPalette_FemaleOverride[] = INCBIN_U32("graphics/item_menu/bag_pal2.gbapal.lz"); // palette 2 (Girl)
+
+const u32 gUnknown_8E8362C[] = INCBIN_U32("graphics/interface/unk_8E8362C.4bpp.lz");
+const u32 gUnknown_8E83DBC[] = INCBIN_U32("graphics/interface/unk_8E83DBC.4bpp.lz");
+const u32 gUnknown_8E84560[] = INCBIN_U32("graphics/interface/unk_8E84560.gbapal.lz");
+
+const u32 gFile_graphics_interface_bag_swap_sheet[] = INCBIN_U32("graphics/interface/bag_swap.4bpp.lz");
+const u32 gFile_graphics_interface_bag_swap_palette[] = INCBIN_U32("graphics/interface/bag_swap.gbapal.lz");
+
+const u32 gUnknown_8E845D8[] = INCBIN_U32("graphics/tm_case/unk_8E845D8.4bpp.lz");
+const u32 gUnknown_8E84A24[] = INCBIN_U32("graphics/tm_case/unk_8E84A24.bin.lz");
+const u32 gUnknown_8E84B70[] = INCBIN_U32("graphics/tm_case/unk_8E84B70.bin.lz");
+const u32 gUnknown_8E84CB0[] = INCBIN_U32("graphics/tm_case/unk_8E84CB0.gbapal.lz");
+const u32 gUnknown_8E84D20[] = INCBIN_U32("graphics/tm_case/unk_8E84D20.gbapal.lz");
+const u32 gTMCase_TMSpriteGfx[] = INCBIN_U32("graphics/tm_case/unk_8E84D90.4bpp.lz");
+const u32 gUnknown_8E84F20[] = INCBIN_U32("graphics/tm_case/unk_8E84F20.gbapal.lz");
+const u32 gUnknown_8E85068[] = INCBIN_U32("graphics/tm_case/unk_8E85068.gbapal.lz");
+
+const u8 gItemPcTiles[] = INCBIN_U8("graphics/item_pc/unk_8E85090.4bpp.lz");
+const u32 gItemPcBgPals[] = INCBIN_U32("graphics/item_pc/unk_8E85408.gbapal.lz");
+const u8 gItemPcTilemap[] = INCBIN_U8("graphics/item_pc/unk_8E85458.bin.lz");
+
+const u32 gBerryPouchSpriteTiles[] = INCBIN_U32("graphics/berry_pouch/unk_8E8560C.4bpp.lz");
+const u8 gBerryPouchBgGfx[] = INCBIN_U8("graphics/berry_pouch/unk_8E859D0.4bpp.lz");
+const u32 gBerryPouchBgPals[] = INCBIN_U32("graphics/berry_pouch/unk_8E85BA4.gbapal.lz");
+const u32 gBerryPouchBgPal0FemaleOverride[] = INCBIN_U32("graphics/berry_pouch/unk_8E85BF4.gbapal.lz");
+const u32 gBerryPouchSpritePalette[] = INCBIN_U32("graphics/berry_pouch/unk_8E85C1C.gbapal.lz");
+const u8 gBerryPouchBg1Tilemap[] = INCBIN_U8("graphics/berry_pouch/unk_8E85C44.bin.lz");
+
+const u32 gBuyMenuFrame_Gfx[] = INCBIN_U32("graphics/shop_menu/shop_menu.4bpp.lz");
+const u32 gBuyMenuFrame_Tilemap[] = INCBIN_U32("graphics/shop_menu/shop_tilemap.bin");
+const u32 gBuyMenuFrame_TmHmTilemap[] = INCBIN_U32("graphics/shop_menu/shop_tm_hm_tilemap.bin");
+const u32 gBuyMenuFrame_Pal[] = INCBIN_U32("graphics/shop_menu/shop_menu.gbapal.lz");
+
+const u32 gUnknown_8E861A8[] = INCBIN_U32("graphics/unknown/unknown_E861A8.bin.lz");
+
+const u8 gUnknown_8E86240[] = INCBIN_U8("graphics/teachy_tv/tiles.4bpp.lz");
+const u8 gUnknown_8E86BE8[] = INCBIN_U8("graphics/teachy_tv/bg1_tilemap.bin.lz");
+const u8 gUnknown_8E86D6C[] = INCBIN_U8("graphics/teachy_tv/bg2_tilemap.bin.lz");
+const u32 gUnknown_8E86F98[] = INCBIN_U32("graphics/teachy_tv/palettes.gbapal.lz");
+
+const u32 gUnknown_8E87010[] = INCBIN_U32("graphics/unknown/unknown_E87010.gbapal.lz");
+
+#include "data/graphics/items.h"
+
+const u32 gBattleAnimSpritePal_Shock3[] = INCBIN_U32("graphics/battle_anims/sprites/shock_3.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Shock3[] = INCBIN_U32("graphics/battle_anims/sprites/shock_3.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_WhiteFeather[] = INCBIN_U32("graphics/battle_anims/sprites/white_feather.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_WhiteFeather[] = INCBIN_U32("graphics/battle_anims/sprites/white_feather.4bpp.lz");
+
+const u32 gBattleAnimSpritePal_Sparkle6[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_6.gbapal.lz");
+const u32 gBattleAnimSpriteGfx_Sparkle6[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_6.4bpp.lz");
+
+const u32 gGhostPalette[] = INCBIN_U32("graphics/pokemon/ghost/front.gbapal.lz");
+const u32 gGhostFrontPic[] = INCBIN_U32("graphics/pokemon/ghost/front.4bpp.lz");
+
+#include "data/graphics/mail.h"
+
+const u16 gFireRedMenuElements1_Pal[] = INCBIN_U16("graphics/interface/dex_caught_pokeball.gbapal");
+const u16 gFireRedMenuElements2_Pal[] = INCBIN_U16("graphics/interface/pokemon_types.gbapal");
+const u8 gFireRedMenuElements_Gfx[] = INCBIN_U8("graphics/interface/dex_caught_pokeball_and_pokemon_types.4bpp");
+
+const u16 gUnknown_8E97DDC[] = INCBIN_U16("graphics/interface/learn_move.gbapal");
+const u32 gUnknown_8E97DFC[] = INCBIN_U32("graphics/interface/learn_move.4bpp.lz");
+const u32 gUnknown_8E97EC4[] = INCBIN_U32("graphics/interface/learn_move.bin.lz");
+
+const u16 gUnknown_8E97FE4[] = INCBIN_U16("graphics/interface/naming_screen_8E97FE4.gbapal");
+const u16 gUnknown_8E98004[] = INCBIN_U16("graphics/interface/naming_screen_8E98004.gbapal");
+const u16 gUnknown_8E98024[] = INCBIN_U16("graphics/interface/naming_screen_8E98024.gbapal");
+const u16 gUnknown_8E98044[] = INCBIN_U16("graphics/interface/naming_screen_8E98044.gbapal");
+const u16 gUnknown_8E98064[] = INCBIN_U16("graphics/interface/naming_screen_8E98064.gbapal");
+const u16 gUnknown_8E98084[] = INCBIN_U16("graphics/interface/naming_screen_8E98084.gbapal");
+const u16 gUnknown_8E980A4[] = INCBIN_U16("graphics/interface/naming_screen_8E980A4.gbapal");
+const u16 gUnknown_8E980C4[] = INCBIN_U16("graphics/interface/naming_screen_8E980C4.gbapal");
+
+const u32 gUnknown_8E980E4[] = INCBIN_U32("graphics/interface/naming_screen_menu.4bpp.lz");
+const u32 gUnknown_8E982BC[] = INCBIN_U32("graphics/interface/naming_screen_menu.bin.lz");
+const u32 gUnknown_8E98398[] = INCBIN_U32("graphics/interface/naming_screen_E98398.bin.lz");
+const u32 gUnknown_8E98458[] = INCBIN_U32("graphics/interface/naming_screen_E98458.bin.lz");
+const u32 gUnknown_8E98518[] = INCBIN_U32("graphics/interface/naming_screen_E98518.bin.lz");
+
+const u32 gUnknown_8E985D8[] = INCBIN_U32("graphics/interface/naming_screen_8E985D8.4bpp");
+const u32 gUnknown_8E98858[] = INCBIN_U32("graphics/interface/naming_screen_8E98858.4bpp");
+const u32 gUnknown_8E98A38[] = INCBIN_U32("graphics/interface/naming_screen_8E98A38.4bpp");
+const u32 gUnknown_8E98C18[] = INCBIN_U32("graphics/interface/naming_screen_8E98C18.4bpp");
+const u32 gUnknown_8E98CB8[] = INCBIN_U32("graphics/interface/naming_screen_8E98CB8.4bpp");
+const u32 gUnknown_8E98D58[] = INCBIN_U32("graphics/interface/naming_screen_8E98D58.4bpp");
+const u32 gUnknown_8E98DF8[] = INCBIN_U32("graphics/interface/naming_screen_8E98DF8.4bpp");
+const u32 gUnknown_8E98E98[] = INCBIN_U32("graphics/interface/naming_screen_8E98E98.4bpp");
+const u32 gUnknown_8E98F38[] = INCBIN_U32("graphics/interface/naming_screen_8E98F38.4bpp");
+const u32 gUnknown_8E98FD8[] = INCBIN_U32("graphics/interface/naming_screen_8E98FD8.4bpp");
+const u32 gUnknown_8E990D8[] = INCBIN_U32("graphics/interface/naming_screen_8E990D8.4bpp");
+const u32 gUnknown_8E990F8[] = INCBIN_U32("graphics/interface/naming_screen_8E990F8.4bpp");
+
+const u8 gUnknown_8E99118[] = INCBIN_U8("graphics/tm_case/unk_8E99118.4bpp");
+
+const u16 gFireRedTrainerCard_Pal[] = INCBIN_U16("graphics/trainer_card/0star.gbapal");
+const u32 gFireRedTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card.4bpp.lz");
+const u16 gEmeraldTrainerCard_Pal[] = INCBIN_U16("graphics/trainer_card/0star_em.gbapal");
+const u32 gEmeraldTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card_em.4bpp.lz");
+
+const u16 gUnknown_8E99D8C[] = INCBIN_U16("graphics/link_rfu/unk_8E99DAC.gbapal");
+const u32 gUnknown_8E99DAC[] = INCBIN_U32("graphics/link_rfu/unk_8E99DAC.4bpp.lz");
+const u32 gUnknown_8E99E74[] = INCBIN_U32("graphics/link_rfu/unk_8E99E74.bin.lz");
+
+const u16 gUnknown_8E99F24[] = INCBIN_U16("graphics/link_rfu/unk_8E9A168.gbapal");
+const u32 gUnknown_8E99F44[] = INCBIN_U32("graphics/link_rfu/unk_8E99F44.4bpp.lz");
+const u32 gUnknown_8E9A168[] = INCBIN_U32("graphics/link_rfu/unk_8E9A168.4bpp.lz");
+
+const u32 gUnknown_8E9A460[] = INCBIN_U32("graphics/interface/trainer_memo.4bpp.lz");
+const u32 gUnknown_8E9B310[] = INCBIN_U32("graphics/interface/trainer_memo_pal1.gbapal");
+const u32 gUnknown_8E9B3B0[] = INCBIN_U32("graphics/interface/trainer_memo_pal2.gbapal");
+const u32 gUnknown_8E9B3D0[] = INCBIN_U32("graphics/interface/trainer_memo_pal3.gbapal");
+
+const u32 gUnknown_8E9B3F0[] = INCBIN_U32("graphics/interface/summary_exp_bar.4bpp.lz");
+const u32 gUnknown_8E9B4B8[] = INCBIN_U32("graphics/interface/summary_hp_bar.4bpp.lz");
+const u16 gUnknown_8E9B578[] = INCBIN_U16("graphics/interface/summary_exp_bar.gbapal"); // hp bar uses this too
+
+const u32 gUnknown_8E9B598[] = INCBIN_U32("graphics/interface/trainer_memo.bin.lz");
+const u32 gUnknown_8E9B750[] = INCBIN_U32("graphics/interface/trainer_memo_2.bin.lz");
+const u32 gUnknown_8E9B950[] = INCBIN_U32("graphics/interface/trainer_memo_3.bin.lz");
+const u32 gUnknown_8E9BA9C[] = INCBIN_U32("graphics/interface/trainer_memo_4.bin.lz");
+const u32 gUnknown_8E9BBCC[] = INCBIN_U32("graphics/interface/trainer_memo_5.bin.lz");
+
+const u16 gUnknown_8E9BD08[] = INCBIN_U16("graphics/unknown/unknown_E9BD08.gbapal"); // might be an alternate unused palette of the link_rfu gfx below.
+
+const u32 gUnknown_8E9BD28[] = INCBIN_U32("graphics/interface/link_rfu_frame.4bpp.lz");
+const u16 gUnknown_8E9BF28[] = INCBIN_U16("graphics/interface/link_rfu_frame.gbapal");
+const u32 gUnknown_8E9BF48[] = INCBIN_U32("graphics/interface/link_rfu_status.4bpp.lz");
+
+const u16 gUnknown_8E9C14C[] = INCBIN_U16("graphics/interface/pokedex_abc.gbapal");
+const u32 gUnknown_8E9C16C[] = INCBIN_U32("graphics/interface/pokedex_abc.4bpp.lz");
+
+const u16 gUnknown_8E9C3D8[] = INCBIN_U16("graphics/interface/box_tiles_pal1.gbapal");
+const u16 gUnknown_8E9C3F8[] = INCBIN_U16("graphics/interface/box_tiles_pal2.gbapal");
+const u16 gUnknown_8E9C418[] = INCBIN_U16("graphics/interface/box_tiles_pal3.gbapal");
+const u32 gUnknown_8E9C438[] = INCBIN_U32("graphics/interface/box_tiles.4bpp.lz");
+
+const u32 gUnknown_8E9CAEC[] = INCBIN_U32("graphics/unknown/unknown_E9CAEC.bin.lz");
+
+const u16 gUnknown_8E9CB9C[] = INCBIN_U16("graphics/misc/markings2.gbapal");
+const u16 gUnknown_8E9CBBC[] = INCBIN_U16("graphics/misc/markings2.4bpp");
+
+const u16 gTradeMenu_Pal[] = INCBIN_U16("graphics/trade/menu.gbapal");
+const u16 gTradeButtons_Pal[] = INCBIN_U16("graphics/trade/unknown_DDB444.gbapal");
+const u16 gTradeMenu_Gfx[] = INCBIN_U16("graphics/trade/menu.4bpp");
+const u16 gTradeButtons_Gfx[] = INCBIN_U16("graphics/trade/buttons.4bpp");
+const u16 gUnknown_8E9E9DC[] = INCBIN_U16("graphics/unused/unused_DDCEE4.bin");
+const u16 gUnknown_8E9E9FC[] = INCBIN_U16("graphics/trade/unknown_DDCF04.bin");
+const u16 gTradeMenuMonBox_Tilemap[] = INCBIN_U16("graphics/trade/menu_mon_box.bin");
+
+const u16 gFameCheckerBgPals[] = INCBIN_U16("data/graphics/fame_checker_bg.gbapal");
+const u16 gFameCheckerBgTiles[] = INCBIN_U16("data/graphics/fame_checker_bg.4bpp");
+const u16 gFameCheckerBg3Tilemap[] = INCBIN_U16("data/graphics/fame_checker_tilemap3.bin");
+const u16 gFameCheckerBg2Tilemap[] = INCBIN_U16("data/graphics/fame_checker_tilemap2.bin");
+
+const u16 gLinkMiscMenu_Pal[] = INCBIN_U16("graphics/interface/union_room_chat.gbapal");
+const u32 gLinkMiscMenu_Gfx[] = INCBIN_U32("graphics/interface/union_room_chat.4bpp.lz");
+const u32 gLinkMiscMenu_Tilemap[] = INCBIN_U32("graphics/interface/union_room_chat.bin.lz");
+const u32 gUnionRoomChatIcons[] = INCBIN_U32("graphics/interface/union_room_chat_icons.4bpp.lz");
+
+const u16 gTilesetPalettes_General[][16] =
+{
+ INCBIN_U16("data/tilesets/primary/general/palettes/00.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/01.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/02.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/03.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/04.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/05.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/06.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/07.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/08.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/09.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/10.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/11.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/12.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/13.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/14.gbapal"),
+ INCBIN_U16("data/tilesets/primary/general/palettes/15.gbapal"),
+};
+
+const u32 gTilesetTiles_General[] = INCBIN_U32("data/tilesets/primary/general/tiles.4bpp.lz");
+
+const u8 gBerryFixGameboy_Pal[] = INCBIN_U8("graphics/berry_fix/gba_small.gbapal");
+const u8 gBerryFixGameboy_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_small.4bpp.lz");
+const u8 gBerryFixGameboy_Tilemap[] = INCBIN_U8("graphics/berry_fix/gba_small.bin.lz");
+const u8 gBerryFixGameboyLogo_Pal[] = INCBIN_U8("graphics/berry_fix/logo.gbapal");
+const u8 gBerryFixGameboyLogo_Gfx[] = INCBIN_U8("graphics/berry_fix/logo.4bpp.lz");
+const u8 gBerryFixGameboyLogo_Tilemap[] = INCBIN_U8("graphics/berry_fix/logo.bin.lz");
+const u8 gBerryFixGbaTransfer_Pal[] = INCBIN_U8("graphics/berry_fix/gba_transfer.gbapal");
+const u8 gBerryFixGbaTransfer_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer.4bpp.lz");
+const u8 gBerryFixGbaTransfer_Tilemap[] = INCBIN_U8("graphics/berry_fix/gba_transfer.bin.lz");
+const u8 gBerryFixGbaTransferHighlight_Pal[] = INCBIN_U8("graphics/berry_fix/gba_transfer_highlight.gbapal");
+const u8 gBerryFixGbaTransferHighlight_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer_highlight.4bpp.lz");
+const u8 gBerryFixGbaTransferHighlight_Tilemap[] = INCBIN_U8("graphics/berry_fix/gba_transfer_highlight.bin.lz");
+const u8 gBerryFixGbaTransferError_Pal[] = INCBIN_U8("graphics/berry_fix/gba_transfer_error.gbapal");
+const u8 gBerryFixGbaTransferError_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer_error.4bpp.lz");
+const u8 gBerryFixGbaTransferError_Tilemap[] = INCBIN_U8("graphics/berry_fix/gba_transfer_error.bin.lz");
+const u8 gBerryFixWindow_Pal[] = INCBIN_U8("graphics/berry_fix/window.gbapal");
+const u8 gBerryFixWindow_Gfx[] = INCBIN_U8("graphics/berry_fix/window.4bpp.lz");
+const u8 gBerryFixWindow_Tilemap[] = INCBIN_U8("graphics/berry_fix/window.bin.lz");
+
+const u16 gTilesetPalettes_GenericBuilding1[][16] =
+{
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/00.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/01.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/02.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/03.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/04.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/05.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/06.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/07.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/08.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/09.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/10.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/11.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/12.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/13.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/14.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/generic_building1/palettes/15.gbapal"),
+};
+
+const u32 gTilesetTiles_GenericBuilding1[] = INCBIN_U32("data/tilesets/secondary/generic_building1/tiles.4bpp.lz");
+
+const u16 gTilesetPalettes_DepartmentStore[][16] =
+{
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/00.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/01.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/02.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/03.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/04.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/05.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/06.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/07.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/08.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/09.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/10.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/11.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/12.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/13.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/14.gbapal"),
+ INCBIN_U16("data/tilesets/secondary/department_store/palettes/15.gbapal"),
+};
+
+const u32 gTilesetTiles_DepartmentStore[] = INCBIN_U32("data/tilesets/secondary/department_store/tiles.4bpp.lz");
+
+const u16 gUnionRoomChatPanelBgPal_7[] = INCBIN_U16("graphics/interface/union_room_chat_panel.gbapal");
+const u32 gUnionRoomChatPanelBgTiles[] = INCBIN_U32("graphics/interface/union_room_chat_panel.4bpp.lz");
+const u32 gUnionRoomChatPanelBgMap[] = INCBIN_U32("graphics/interface/union_room_chat_panel.bin.lz");
+
+const u16 gCreditsMonBackdropPals[][16] =
+{
+ INCBIN_U16("graphics/credits/charizard.gbapal"),
+ INCBIN_U16("graphics/credits/venusaur.gbapal"),
+ INCBIN_U16("graphics/credits/blastoise.gbapal"),
+ INCBIN_U16("graphics/credits/pikachu.gbapal"),
+};
+
+const u32 gCreditsPokeballBgGfxTiles[] = INCBIN_U32("graphics/credits/unk_8EAAB98.4bpp.lz");
+const u32 gCreditsPokeballBgGfxMap[] = INCBIN_U32("graphics/credits/unk_8EAB30C.bin.lz");
+
+#ifdef FIRERED
+const u16 gGraphics_TitleScreen_GameTitleLogoPals[] = INCBIN_U16("graphics/title_screen/unk_8eab6c4.gbapal");
+const u8 gGraphics_TitleScreen_GameTitleLogoTiles[] = INCBIN_U8("graphics/title_screen/unk_8eab8c4.8bpp.lz");
+const u8 gGraphics_TitleScreen_GameTitleLogoMap[] = INCBIN_U8("graphics/title_screen/unk_8ead390.bin.lz");
+const u16 gGraphics_TitleScreen_BoxArtMonPals[] = INCBIN_U16("graphics/title_screen/unk_8ead5e8.gbapal");
+const u8 gGraphics_TitleScreen_BoxArtMonTiles[] = INCBIN_U8("graphics/title_screen/unk_8ead608.4bpp.lz");
+const u8 gGraphics_TitleScreen_BoxArtMonMap[] = INCBIN_U8("graphics/title_screen/unk_8eadee4.bin.lz");
+const u16 gGraphics_TitleScreen_BackgroundPals[] = INCBIN_U16("graphics/title_screen/unk_8eae094.gbapal");
+const u8 gGraphics_TitleScreen_CopyrightPressStartTiles[] = INCBIN_U8("graphics/title_screen/unk_8eae0b4.4bpp.lz");
+const u8 gGraphics_TitleScreen_CopyrightPressStartMap[] = INCBIN_U8("graphics/title_screen/unk_8eae374.bin.lz");
+const u16 gGraphics_TitleScreen_FireOrLeafPals[] = INCBIN_U16("graphics/title_screen/unk_8eae488.gbapal");
+const u32 gGraphics_TitleScreen_BlankObjTiles[] = INCBIN_U32("graphics/title_screen/unk_8eae4a8.4bpp.lz");
+#endif
+
+#ifdef LEAFGREEN
+const u16 gGraphics_TitleScreen_GameTitleLogoPals[] = INCBIN_U16("graphics/title_screen/unk_lg_8eab744.gbapal");
+const u8 gGraphics_TitleScreen_GameTitleLogoTiles[] = INCBIN_U8("graphics/title_screen/unk_lg_8eab944.8bpp.lz");
+const u8 gGraphics_TitleScreen_GameTitleLogoMap[] = INCBIN_U8("graphics/title_screen/unk_lg_8ead508.bin.lz");
+const u16 gGraphics_TitleScreen_BoxArtMonPals[] = INCBIN_U16("graphics/title_screen/unk_lg_8ead768.gbapal");
+const u8 gGraphics_TitleScreen_BoxArtMonTiles[] = INCBIN_U8("graphics/title_screen/unk_lg_8ead788.4bpp.lz");
+const u8 gGraphics_TitleScreen_BoxArtMonMap[] = INCBIN_U8("graphics/title_screen/unk_lg_8eae1ec.bin.lz");
+const u16 gGraphics_TitleScreen_BackgroundPals[] = INCBIN_U16("graphics/title_screen/unk_lg_8eae388.gbapal");
+const u8 gGraphics_TitleScreen_CopyrightPressStartTiles[] = INCBIN_U8("graphics/title_screen/unk_8eae0b4.4bpp.lz");
+const u8 gGraphics_TitleScreen_CopyrightPressStartMap[] = INCBIN_U8("graphics/title_screen/unk_8eae374.bin.lz");
+const u16 gGraphics_TitleScreen_FireOrLeafPals[] = INCBIN_U16("graphics/title_screen/unk_lg_8eae77c.gbapal");
+const u32 gGraphics_TitleScreen_BlankObjTiles[] = INCBIN_U32("graphics/title_screen/unk_8eae4a8.4bpp.lz");
+#endif
+
+const u16 gCreditsAllRightsReservedGfxPal[] = INCBIN_U16("graphics/credits/unk_8EAE548.gbapal");
+const u8 gCreditsAllRightsReservedGfxTiles[] = INCBIN_U8("graphics/credits/unk_8EAE548.4bpp.lz");
+const u8 gCreditsAllRightsReservedGfxMap[] = INCBIN_U8("graphics/credits/unk_8EAE548.bin.lz");
+
+const u32 gUnknown_8EAEA00[] = INCBIN_U32("graphics/link/gba.gbapal");
+const u32 gTradeGba2_Pal[] = INCBIN_U32("graphics/link/gba_pal2.gbapal");
+const u32 gTradeGba_Gfx[] = INCBIN_U32("graphics/link/gba.4bpp");
+
+const u16 gUnknown_8EAFE80[] = INCBIN_U16("graphics/interface/blank2.gbapal");
+
+const u16 gUnknown_8EAFEA0[] = INCBIN_U16("graphics/berry_crush/berry_crush.gbapal");
+const u16 gUnknown_8EAFF60[] = INCBIN_U16("graphics/unknown/unknown_EAFF60.gbapal");
+const u32 gUnknown_8EAFFC0[] = INCBIN_U32("graphics/berry_crush/berry_crush.4bpp.lz");
+const u32 gUnknown_8EB0ADC[] = INCBIN_U32("graphics/berry_crush/data_EB0ADC.bin.lz");
diff --git a/src/help_system.c b/src/help_system.c
index bb3135260..d68acbaa1 100644
--- a/src/help_system.c
+++ b/src/help_system.c
@@ -10,9 +10,7 @@
#include "strings.h"
#include "text.h"
#include "blit.h"
-#include "event_data.h"
#include "constants/songs.h"
-#include "constants/flags.h"
extern u8 gGlyphInfo[];
diff --git a/src/hof_pc.c b/src/hof_pc.c
index 76fd06abf..353c067c2 100644
--- a/src/hof_pc.c
+++ b/src/hof_pc.c
@@ -5,7 +5,6 @@
#include "script.h"
#include "script_menu.h"
#include "task.h"
-#include "hall_of_fame.h"
#include "bg.h"
#include "window.h"
diff --git a/src/ice.c b/src/ice.c
index 4ed6e0ece..6843538f9 100644
--- a/src/ice.c
+++ b/src/ice.c
@@ -1,10 +1,8 @@
#include "global.h"
#include "battle_anim.h"
#include "bg.h"
-#include "field_weather.h"
#include "gpu_regs.h"
#include "graphics.h"
-#include "main.h"
#include "palette.h"
#include "random.h"
#include "sprite.h"
diff --git a/src/item_menu.c b/src/item_menu.c
index ffba2eae9..a407c582f 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -5,7 +5,7 @@
#include "berry_pouch.h"
#include "decompress.h"
#include "event_scripts.h"
-#include "event_object_80688E4.h"
+#include "event_object_movement.h"
#include "field_player_avatar.h"
#include "graphics.h"
#include "help_system.h"
diff --git a/src/item_use.c b/src/item_use.c
index 022be5b2b..f5e880f98 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -19,7 +19,6 @@
#include "mail.h"
#include "main.h"
#include "malloc.h"
-#include "event_object_80688E4.h"
#include "event_object_lock.h"
#include "metatile_behavior.h"
#include "new_menu_helpers.h"
@@ -42,7 +41,6 @@
#include "constants/maps.h"
#include "constants/moves.h"
#include "constants/songs.h"
-#include "constants/maps.h"
static EWRAM_DATA void (*sItemUseOnFieldCB)(u8 taskId) = NULL;
diff --git a/src/itemfinder.c b/src/itemfinder.c
index 370fce841..5d6950acc 100644
--- a/src/itemfinder.c
+++ b/src/itemfinder.c
@@ -10,7 +10,6 @@
#include "field_player_avatar.h"
#include "field_specials.h"
#include "fieldmap.h"
-#include "itemfinder.h"
#include "constants/songs.h"
static void Task_NoResponse_CleanUp(u8 taskId);
diff --git a/src/list_menu.c b/src/list_menu.c
index 706c1679b..21ef40fbe 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -8,9 +8,7 @@
#include "main.h"
#include "task.h"
#include "graphics.h"
-#include "decompress.h"
#include "palette.h"
-#include "malloc.h"
#include "strings.h"
#include "sound.h"
#include "pokemon_icon.h"
@@ -258,7 +256,7 @@ void DestroyListMenuTask(u8 listTaskId, u16 *cursorPos, u16 *itemsAbove)
if (itemsAbove != NULL)
*itemsAbove = list->itemsAbove;
- if (list->taskId != TASK_NONE)
+ if (list->taskId != TAIL_SENTINEL)
ListMenuRemoveCursorObject(list->taskId, list->template.cursorKind - 2);
DestroyTask(listTaskId);
@@ -348,7 +346,7 @@ static u8 ListMenuInitInternal(const struct ListMenuTemplate *listMenuTemplate,
list->itemsAbove = itemsAbove;
list->unk_1C = 0;
list->unk_1D = 0;
- list->taskId = TASK_NONE;
+ list->taskId = TAIL_SENTINEL;
list->unk_1F = 0;
gListMenuOverride.cursorPal = list->template.cursorPal;
gListMenuOverride.fillValue = list->template.fillValue;
@@ -420,12 +418,12 @@ static void ListMenuDrawCursor(struct ListMenu *list)
case 1:
break;
case 2:
- if (list->taskId == TASK_NONE)
+ if (list->taskId == TAIL_SENTINEL)
list->taskId = ListMenuAddCursorObject(list, 0);
ListMenuUpdateCursorObject(list->taskId, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT) * 8 - 1, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP) * 8 + y - 1, 0);
break;
case 3:
- if (list->taskId == TASK_NONE)
+ if (list->taskId == TAIL_SENTINEL)
list->taskId = ListMenuAddCursorObject(list, 1);
ListMenuUpdateCursorObject(list->taskId, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT) * 8 + x, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP) * 8 + y, 1);
break;
diff --git a/src/load_save.c b/src/load_save.c
index 7f16f74a5..7ab28ffc3 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -8,7 +8,6 @@
#include "item.h"
#include "save_location.h"
#include "berry_powder.h"
-#include "item.h"
#include "overworld.h"
#include "quest_log.h"
diff --git a/src/main.c b/src/main.c
index b88326cda..a67c71746 100644
--- a/src/main.c
+++ b/src/main.c
@@ -9,7 +9,6 @@
#include "random.h"
#include "dma3.h"
#include "gba/flash_internal.h"
-#include "battle.h"
#include "help_system.h"
#include "sound.h"
#include "new_menu_helpers.h"
@@ -17,12 +16,10 @@
#include "overworld.h"
#include "sprite.h"
#include "play_time.h"
-#include "pokemon.h"
#include "intro.h"
#include "battle_controllers.h"
#include "scanline_effect.h"
#include "save_failed_screen.h"
-#include "battle.h"
extern u32 intr_main[];
diff --git a/src/menu.c b/src/menu.c
index 5a0da28b9..2f5b1a5db 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1,12 +1,8 @@
#include "global.h"
#include "bg.h"
-#include "malloc.h"
#include "menu.h"
#include "menu_helpers.h"
-#include "new_menu_helpers.h"
-#include "string_util.h"
#include "strings.h"
-#include "task.h"
#include "text_window.h"
#include "window.h"
#include "sound.h"
diff --git a/src/menu_indicators.c b/src/menu_indicators.c
index c07aaf772..3044fb8b4 100644
--- a/src/menu_indicators.c
+++ b/src/menu_indicators.c
@@ -3,7 +3,6 @@
#include "task.h"
#include "decompress.h"
#include "palette.h"
-#include "strings.h"
#include "sprite.h"
#include "trig.h"
#include "list_menu.h"
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index 8e07c1c97..7c05d1dde 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -16,39 +16,12 @@ static const bool8 sTileSurfable[METATILE_COUNT] = {
[MB_SOUTHWARD_CURRENT] = TRUE
};
-static const u8 sTileBitAttributes[] = {
- 0x00,
- 0x01,
- 0x02,
- 0x04,
- 0x08,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00
+static const u8 sTileBitAttributes[32] = {
+ [0] = 0x00,
+ [1] = 0x01,
+ [2] = 0x02,
+ [3] = 0x04,
+ [4] = 0x08,
};
bool8 MetatileBehavior_UnusedReturnTrue(u8 metatileBehavior)
@@ -769,7 +742,7 @@ bool8 MetatileBehavior_UnusedReturnFalse_11(u8 metatileBehavior) { return FALSE;
bool8 MetatileBehavior_UnusedReturnFalse_12(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_UnusedReturnFalse_13(u8 metatileBehavior) { return FALSE; }
-bool8 sub_805A2BC(u8 arg1, u8 arg2)
+bool8 TestMetatileAttributeBit(u8 arg1, u8 arg2)
{
if(sTileBitAttributes[arg1] & arg2)
return TRUE;
diff --git a/src/mevent_server.c b/src/mevent_server.c
index 3b1762540..f1505fcbc 100644
--- a/src/mevent_server.c
+++ b/src/mevent_server.c
@@ -1,10 +1,6 @@
#include "global.h"
#include "malloc.h"
-#include "decompress.h"
-#include "overworld.h"
#include "script.h"
-#include "battle_tower.h"
-#include "mystery_event_script.h"
#include "mevent.h"
#include "mevent_server.h"
diff --git a/src/mevent_server_helpers.c b/src/mevent_server_helpers.c
index 94c01c081..234064afc 100644
--- a/src/mevent_server_helpers.c
+++ b/src/mevent_server_helpers.c
@@ -1,14 +1,7 @@
#include "global.h"
-#include "malloc.h"
-#include "decompress.h"
#include "util.h"
#include "link.h"
#include "link_rfu.h"
-#include "overworld.h"
-#include "script.h"
-#include "battle_tower.h"
-#include "mystery_event_script.h"
-#include "mevent.h"
#include "mevent_server.h"
static u32 mevent_receive_func(struct mevent_srv_sub *);
diff --git a/src/mevent_show_card.c b/src/mevent_show_card.c
index 3eeafa4b5..d2df613ae 100644
--- a/src/mevent_show_card.c
+++ b/src/mevent_show_card.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "constants/species.h"
#include "bg.h"
-#include "gpu_regs.h"
#include "palette.h"
#include "decompress.h"
#include "malloc.h"
@@ -9,9 +8,7 @@
#include "new_menu_helpers.h"
#include "pokemon_icon.h"
#include "mystery_gift_menu.h"
-#include "menu_indicators.h"
#include "string_util.h"
-#include "link_rfu.h"
#include "mevent.h"
#include "battle_anim.h"
diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c
index d100caea1..5911676bb 100644
--- a/src/minigame_countdown.c
+++ b/src/minigame_countdown.c
@@ -34,7 +34,7 @@ void StartMinigameCountdown(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriori
gTasks[taskId].tSubpriority = subpriority;
}
-bool8 IsMinigameCountdownRunning(void)
+bool32 IsMinigameCountdownRunning(void)
{
return FuncIsActiveTask(Task_MinigameCountdown);
}
diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c
index 7b25cc5ff..5a105bae9 100644
--- a/src/mystery_event_script.c
+++ b/src/mystery_event_script.c
@@ -3,7 +3,6 @@
#include "battle_tower.h"
#include "easy_chat.h"
#include "event_data.h"
-#include "mail.h"
#include "mail_data.h"
#include "mystery_event_script.h"
#include "pokedex.h"
diff --git a/src/new_game.c b/src/new_game.c
index 9aea0b3aa..d03e83b34 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "new_game.h"
#include "random.h"
#include "main.h"
#include "overworld.h"
diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c
index 39340ca55..11b353b8c 100644
--- a/src/new_menu_helpers.c
+++ b/src/new_menu_helpers.c
@@ -3,7 +3,6 @@
#include "dma3.h"
#include "task.h"
#include "bg.h"
-#include "gpu_regs.h"
#include "window.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -13,7 +12,6 @@
#include "field_specials.h"
#include "text_window.h"
#include "script.h"
-#include "graphics.h"
#include "palette.h"
#define DLG_WINDOW_PALETTE_NUM 15
diff --git a/src/oak_speech.c b/src/oak_speech.c
index 6887ff85a..f7ec9a531 100644
--- a/src/oak_speech.c
+++ b/src/oak_speech.c
@@ -4,7 +4,6 @@
#include "task.h"
#include "malloc.h"
#include "gpu_regs.h"
-#include "wild_encounter.h"
#include "palette.h"
#include "blend_palette.h"
#include "text.h"
@@ -25,7 +24,6 @@
#include "overworld.h"
#include "random.h"
#include "data.h"
-#include "oak_speech.h"
#include "constants/species.h"
#include "constants/songs.h"
diff --git a/src/palette.c b/src/palette.c
index 6609c9baa..04638f6d1 100644
--- a/src/palette.c
+++ b/src/palette.c
@@ -948,7 +948,7 @@ void sub_8071898(void)
while (TRUE)
{
taskId = FindTaskIdByFunc(sub_80718B8);
- if (taskId == TASK_NONE)
+ if (taskId == TAIL_SENTINEL)
break;
DestroyTask(taskId);
}
diff --git a/src/party_menu.c b/src/party_menu.c
index 600350ca9..6f2feaaad 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -13,11 +13,9 @@
#include "easy_chat.h"
#include "event_data.h"
#include "evolution_scene.h"
-#include "field_control_avatar.h"
#include "field_effect.h"
#include "field_player_avatar.h"
#include "field_screen_effect.h"
-#include "field_specials.h"
#include "field_weather.h"
#include "fieldmap.h"
#include "fldeff.h"
@@ -46,7 +44,6 @@
#include "pokemon_icon.h"
#include "pokemon_jump.h"
#include "pokemon_special_anim.h"
-#include "pokemon_storage_system.h"
#include "pokemon_summary_screen.h"
#include "quest_log.h"
#include "region_map.h"
@@ -78,7 +75,6 @@
#include "constants/quest_log.h"
#include "constants/songs.h"
#include "constants/species.h"
-#include "constants/vars.h"
#define PARTY_PAL_SELECTED (1 << 0)
#define PARTY_PAL_FAINTED (1 << 1)
diff --git a/src/party_menu_specials.c b/src/party_menu_specials.c
index 751684bd5..242422f7b 100644
--- a/src/party_menu_specials.c
+++ b/src/party_menu_specials.c
@@ -2,7 +2,6 @@
#include "data.h"
#include "script.h"
#include "overworld.h"
-#include "battle.h"
#include "palette.h"
#include "pokemon.h"
#include "party_menu.h"
diff --git a/src/pokeball.c b/src/pokeball.c
index aeaba08ab..92b22abe6 100644
--- a/src/pokeball.c
+++ b/src/pokeball.c
@@ -15,7 +15,6 @@
#include "link.h"
#include "battle_gfx_sfx_util.h"
#include "constants/songs.h"
-#include "constants/species.h"
#define tFrames data[0]
#define tPan data[1]
diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c
new file mode 100644
index 000000000..063176151
--- /dev/null
+++ b/src/pokemon_jump.c
@@ -0,0 +1,254 @@
+#include "global.h"
+#include "gflib.h"
+#include "battle_anim.h"
+#include "decompress.h"
+#include "link.h"
+#include "link_rfu.h"
+#include "task.h"
+#include "constants/songs.h"
+
+static void sub_8147654(u8 taskId);
+static void sub_81477C0(u8 taskId);
+static void sub_814784C(u8 taskId);
+static void sub_81479D4(u8 taskId);
+static void sub_8147A34(u8 taskId);
+
+static const u16 gUnknown_846AFE8[] = INCBIN_U16("graphics/misc/unk_846B008.gbapal");
+static const u32 gUnknown_846B008[] = INCBIN_U32("graphics/misc/unk_846B008.4bpp.lz");
+
+static const struct CompressedSpriteSheet gUnknown_846B42C[] = {
+ {gUnknown_846B008, 0x0C00, 0x2000},
+ {}
+};
+
+static const struct SpritePalette gUnknown_846B43C[] = {
+ {gUnknown_846AFE8, 0x2000},
+ {}
+};
+
+static const union AnimCmd gUnknown_846B44C[] = {
+ ANIMCMD_FRAME(0x00, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B454[] = {
+ ANIMCMD_FRAME(0x10, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B45C[] = {
+ ANIMCMD_FRAME(0x20, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B464[] = {
+ ANIMCMD_FRAME(0x40, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B46C[] = {
+ ANIMCMD_FRAME(0x30, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B474[] = {
+ ANIMCMD_FRAME(0x50, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gUnknown_846B47C[] = {
+ gUnknown_846B44C,
+ gUnknown_846B454,
+ gUnknown_846B45C,
+ gUnknown_846B464,
+ gUnknown_846B46C,
+ gUnknown_846B474
+};
+
+static const struct SpriteTemplate gUnknown_846B494[] = {
+ {
+ .tileTag = 0x2000,
+ .paletteTag = 0x2000,
+ .oam = &gOamData_AffineOff_ObjNormal_32x32,
+ .anims = gUnknown_846B47C,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+ },
+};
+
+static const TaskFunc gUnknown_846B4AC[][4] = {
+ { sub_81477C0, sub_814784C, sub_81479D4, sub_8147A34 }
+};
+
+// Unused, but looks like it was intended to be a hook
+UNUSED u8 sub_81475C0(u8 data1, u8 priority)
+{
+ u8 taskId;
+ struct Task * task;
+
+ taskId = CreateTask(sub_8147654, priority);
+ task = &gTasks[taskId];
+ task->data[0] = 1;
+ task->data[1] = data1;
+ gUnknown_846B4AC[data1][0](taskId);
+ return taskId;
+}
+
+// Unused, but looks like it was intended to be a hook
+UNUSED bool32 sub_814760C(void)
+{
+ u8 taskId;
+
+ taskId = FindTaskIdByFunc(sub_8147654);
+ if (taskId == 0xFF)
+ return FALSE;
+ gTasks[taskId].data[0] = 2;
+ return TRUE;
+}
+
+// Unused, but looks like it was intended to be a hook
+UNUSED bool32 sub_8147640(void)
+{
+ return FuncIsActiveTask(sub_8147654);
+}
+
+static void sub_8147654(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 2:
+ gUnknown_846B4AC[data[1]][2](taskId);
+ data[0] = 3;
+ break;
+ case 3:
+ gUnknown_846B4AC[data[1]][3](taskId);
+ break;
+ case 4:
+ gUnknown_846B4AC[data[1]][1](taskId);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static void sub_81476E0(u8 taskId, s16 *data)
+{
+ u8 i;
+ struct Sprite *sprite;
+
+ LoadCompressedSpriteSheet(&gUnknown_846B42C[data[3]]);
+ LoadSpritePalette(&gUnknown_846B43C[data[4]]);
+ for (i = 0; i < data[8]; i++)
+ data[13 + i] = CreateSprite(&gUnknown_846B494[data[2]], data[9], data[10], data[7]);
+ for (i = 0; i < data[8]; i++)
+ {
+ sprite = &gSprites[data[13 + i]];
+ sprite->oam.priority = data[6];
+ sprite->invisible = TRUE;
+ sprite->data[1] = data[5];
+ sprite->data[3] = taskId;
+ sprite->data[4] = i;
+ sprite->data[5] = data[13];
+ }
+}
+
+static void sub_81477C0(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[2] = 0;
+ data[3] = 0;
+ data[4] = 0;
+ data[5] = 60;
+ data[6] = 0;
+ data[7] = 0;
+ data[8] = 3;
+ data[9] = 120;
+ data[10] = 88;
+ sub_81476E0(taskId, data);
+
+ StartSpriteAnim(&gSprites[data[14]], 4);
+ gSprites[data[14]].pos2.x = -32;
+
+ StartSpriteAnim(&gSprites[data[15]], 5);
+ gSprites[data[15]].pos2.x = 32;
+}
+
+static void sub_814784C(u8 taskId)
+{
+ u8 i = 0;
+ s16 *data = gTasks[taskId].data;
+
+ for (i = 0; i < data[8]; i++)
+ DestroySprite(&gSprites[data[13 + i]]);
+ FreeSpriteTilesByTag(gUnknown_846B42C[data[3]].tag);
+ FreeSpritePaletteByTag(gUnknown_846B43C[data[4]].tag);
+}
+
+static void sub_81478BC(struct Sprite *sprite)
+{
+ s16 *data = gTasks[sprite->data[3]].data;
+
+ if (data[11] % data[5] != 0)
+ return;
+ if (data[11] == data[10])
+ return;
+
+ data[10] = data[11];
+ switch (sprite->data[2])
+ {
+ case 0:
+ sprite->invisible = FALSE;
+ case 1:
+ case 2:
+ PlaySE(SE_KON);
+ StartSpriteAnim(sprite, sprite->data[2]);
+ break;
+ case 3:
+ PlaySE(SE_PIN);
+ StartSpriteAnim(sprite, sprite->data[2]);
+ gSprites[data[14]].invisible = FALSE;
+ gSprites[data[15]].invisible = FALSE;
+ break;
+ case 4:
+ sprite->invisible = TRUE;
+ gSprites[data[14]].invisible = TRUE;
+ gSprites[data[15]].invisible = TRUE;
+ data[0] = 4;
+ return;
+ }
+ sprite->data[2]++;
+}
+
+static void sub_81479D4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ PlaySE(SE_KON);
+ gSprites[data[13]].callback = sub_81478BC;
+ gSprites[data[13]].invisible = FALSE;
+ gTasks[taskId].data[0] = 3;
+}
+
+static void sub_8147A34(u8 taskId)
+{
+ u16 packet[6];
+ s16 *data = gTasks[taskId].data;
+
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ if (gRecvCmds[0][1] == 0x7FFF)
+ data[11] = gRecvCmds[0][2];
+ if (GetMultiplayerId() == 0)
+ {
+ data[12]++;
+ memset(packet, 0, sizeof(packet));
+ packet[0] = 0x7FFF;
+ packet[1] = data[12];
+ RfuPrepareSend0x2f00(packet);
+ }
+ }
+ else
+ {
+ data[11]++;
+ }
+}
diff --git a/src/pokemon_jump_2.c b/src/pokemon_jump_2.c
new file mode 100644
index 000000000..aa1238e3f
--- /dev/null
+++ b/src/pokemon_jump_2.c
@@ -0,0 +1,2035 @@
+#include "global.h"
+#include "gflib.h"
+#include "event_data.h"
+#include "item.h"
+#include "link_rfu.h"
+#include "menu.h"
+#include "random.h"
+#include "save.h"
+#include "task.h"
+#include "pokemon_jump.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+
+struct PokemonJump1
+{
+ MainCallback returnCallback;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ u16 unk8;
+ u16 unkA;
+ u16 unkC;
+ u16 unkE;
+ int unk10;
+ u32 unk14;
+ u32 unk18;
+ int unk1C;
+ u32 unk20;
+ u32 unk24;
+ u32 unk28;
+ int unk2C;
+ u32 unk30;
+ u16 unk34;
+ u16 unk36;
+ u8 filler38[0x2];
+ u16 unk3A;
+ u16 unk3C;
+ u16 unk3E;
+ u16 unk40;
+ u16 unk42;
+ u8 unk44;
+ u8 unk45;
+ u8 unk46;
+ u8 isLeader;
+ u8 unk48;
+ u8 unk49;
+ u16 unk4A;
+ u8 unk4C;
+ u8 unk4D;
+ u16 unk4E;
+ u8 unk50;
+ u8 unk51;
+ u8 filler52[0x2];
+ int unk54;
+ int unk58;
+ int unk5C;
+ int unk60;
+ int unk64;
+ int unk68;
+ int unk6C;
+ struct PokemonJump1Sub unk70;
+ u8 unk7C[MAX_RFU_PLAYERS];
+ u8 unk81[MAX_RFU_PLAYERS];
+ u8 unk86[MAX_RFU_PLAYERS];
+ u8 unk8B[MAX_RFU_PLAYERS];
+ u16 unk90[MAX_RFU_PLAYERS];
+ u16 unk9A[MAX_RFU_PLAYERS];
+ struct PokemonJump2 unkA4;
+ struct PokemonJump1_MonInfo unk82A8[MAX_RFU_PLAYERS];
+ struct PokemonJump1_82E4 unk82E4[MAX_RFU_PLAYERS];
+ struct PokemonJump1_82E4 *unk83AC;
+};
+
+static void sub_8147B60(struct PokemonJump1 *);
+static void sub_8147B94(struct PokemonJump1 *);
+static void sub_8147C20(void);
+static void sub_8147C98(void);
+static s16 GetPokemonJumpSpeciesIdx(u16 species);
+static void sub_8147D2C(struct PokemonJump1_MonInfo *monInfo, struct Pokemon *mon);
+static void sub_8147D6C(void);
+static void sub_8147DA0(u8 taskId);
+static void sub_814807C(u8 taskId);
+static void sub_8148104(void);
+static void sub_8148290(u8 taskId);
+static void sub_81482F8(void);
+static bool32 sub_8148344(void);
+static bool32 sub_81483D0(void);
+static bool32 sub_8148464(void);
+static bool32 sub_81484D0(void);
+static bool32 sub_814856C(void);
+static bool32 sub_81485C8(void);
+static bool32 sub_8148664(void);
+static bool32 sub_81486C4(void);
+static bool32 sub_8148724(void);
+static bool32 sub_8148760(void);
+static bool32 sub_81487B4(void);
+static bool32 sub_8148800(void);
+static bool32 sub_814881C(void);
+static bool32 sub_81488DC(void);
+static bool32 sub_81489C8(void);
+static bool32 sub_8148A60(void);
+static bool32 sub_8148398(void);
+static bool32 sub_8148418(void);
+static bool32 sub_81484B0(void);
+static bool32 sub_8148B54(void);
+static bool32 sub_8148C80(void);
+static bool32 sub_8148D5C(void);
+static bool32 sub_8148E2C(void);
+static void sub_8148E80(u8 taskId);
+static void sub_8148F5C(TaskFunc func, u8 taskPriority);
+static void sub_8148F7C(void);
+static void sub_8148F9C(void);
+static void sub_8148FE0(void);
+static int sub_8149044(void);
+static void sub_8149078(void);
+static int sub_8149194(void);
+static void sub_81491B4(void);
+static void sub_81491E4(void);
+static void sub_8149210(void);
+static bool32 sub_814922C(u16);
+static void sub_8149260(void);
+static void sub_81492D8(void);
+static void sub_814933C(void);
+static void sub_814935C(void);
+static void sub_814936C(void);
+static void sub_814937C(void);
+static void sub_8149490(int);
+static void sub_8149534(void);
+static bool32 sub_8149630(void);
+static bool32 sub_81496D4(void);
+static bool32 sub_8149710(void);
+static bool32 sub_8149748(void);
+static void sub_8149780(int);
+static int sub_81497A8(void);
+static bool32 sub_8149804(void);
+static int sub_8149834(u8 *);
+static void sub_8149878(void);
+static int sub_8149888(int);
+static void sub_8149898(u16);
+static bool32 sub_81498B4(void);
+static u16 sub_81498D8(void);
+static void sub_8149900(u16, u16 *, u16 *);
+static u16 sub_8149910(void);
+static u16 sub_8149930(void);
+static u16 sub_8149978(u16 item, u16 quantity);
+
+EWRAM_DATA static struct PokemonJump1 *gUnknown_203F3D4 = NULL;
+
+static const struct PokemonJumpMons
+{
+ u16 species;
+ u16 unk2;
+} sPkmnJumpSpecies[] =
+{
+ { .species = SPECIES_BULBASAUR, .unk2 = 2, },
+ { .species = SPECIES_CHARMANDER, .unk2 = 1, },
+ { .species = SPECIES_SQUIRTLE, .unk2 = 0, },
+ { .species = SPECIES_CATERPIE, .unk2 = 1, },
+ { .species = SPECIES_METAPOD, .unk2 = 1, },
+ { .species = SPECIES_WEEDLE, .unk2 = 1, },
+ { .species = SPECIES_KAKUNA, .unk2 = 1, },
+ { .species = SPECIES_RATTATA, .unk2 = 1, },
+ { .species = SPECIES_RATICATE, .unk2 = 1, },
+ { .species = SPECIES_PIKACHU, .unk2 = 0, },
+ { .species = SPECIES_SANDSHREW, .unk2 = 0, },
+ { .species = SPECIES_NIDORAN_F, .unk2 = 0, },
+ { .species = SPECIES_NIDORAN_M, .unk2 = 0, },
+ { .species = SPECIES_CLEFAIRY, .unk2 = 0, },
+ { .species = SPECIES_VULPIX, .unk2 = 0, },
+ { .species = SPECIES_JIGGLYPUFF, .unk2 = 2, },
+ { .species = SPECIES_ODDISH, .unk2 = 2, },
+ { .species = SPECIES_PARAS, .unk2 = 1, },
+ { .species = SPECIES_MEOWTH, .unk2 = 0, },
+ { .species = SPECIES_PSYDUCK, .unk2 = 2, },
+ { .species = SPECIES_MANKEY, .unk2 = 1, },
+ { .species = SPECIES_GROWLITHE, .unk2 = 1, },
+ { .species = SPECIES_POLIWAG, .unk2 = 2, },
+ { .species = SPECIES_BELLSPROUT, .unk2 = 2, },
+ { .species = SPECIES_SHELLDER, .unk2 = 1, },
+ { .species = SPECIES_KRABBY, .unk2 = 1, },
+ { .species = SPECIES_EXEGGCUTE, .unk2 = 2, },
+ { .species = SPECIES_CUBONE, .unk2 = 0, },
+ { .species = SPECIES_DITTO, .unk2 = 2, },
+ { .species = SPECIES_EEVEE, .unk2 = 0, },
+ { .species = SPECIES_OMANYTE, .unk2 = 1, },
+ { .species = SPECIES_KABUTO, .unk2 = 1, },
+ { .species = SPECIES_CHIKORITA, .unk2 = 2, },
+ { .species = SPECIES_CYNDAQUIL, .unk2 = 1, },
+ { .species = SPECIES_TOTODILE, .unk2 = 0, },
+ { .species = SPECIES_SPINARAK, .unk2 = 1, },
+ { .species = SPECIES_PICHU, .unk2 = 0, },
+ { .species = SPECIES_CLEFFA, .unk2 = 0, },
+ { .species = SPECIES_IGGLYBUFF, .unk2 = 2, },
+ { .species = SPECIES_TOGEPI, .unk2 = 2, },
+ { .species = SPECIES_MAREEP, .unk2 = 0, },
+ { .species = SPECIES_BELLOSSOM, .unk2 = 2, },
+ { .species = SPECIES_MARILL, .unk2 = 2, },
+ { .species = SPECIES_SUNKERN, .unk2 = 2, },
+ { .species = SPECIES_WOOPER, .unk2 = 2, },
+ { .species = SPECIES_PINECO, .unk2 = 2, },
+ { .species = SPECIES_SNUBBULL, .unk2 = 0, },
+ { .species = SPECIES_SHUCKLE, .unk2 = 2, },
+ { .species = SPECIES_TEDDIURSA, .unk2 = 0, },
+ { .species = SPECIES_SLUGMA, .unk2 = 2, },
+ { .species = SPECIES_SWINUB, .unk2 = 0, },
+ { .species = SPECIES_HOUNDOUR, .unk2 = 1, },
+ { .species = SPECIES_PHANPY, .unk2 = 0, },
+ { .species = SPECIES_PORYGON2, .unk2 = 0, },
+ { .species = SPECIES_TYROGUE, .unk2 = 1, },
+ { .species = SPECIES_SMOOCHUM, .unk2 = 2, },
+ { .species = SPECIES_ELEKID, .unk2 = 1, },
+ { .species = SPECIES_MAGBY, .unk2 = 1, },
+ { .species = SPECIES_LARVITAR, .unk2 = 1, },
+ { .species = SPECIES_TREECKO, .unk2 = 1, },
+ { .species = SPECIES_TORCHIC, .unk2 = 2, },
+ { .species = SPECIES_MUDKIP, .unk2 = 0, },
+ { .species = SPECIES_MARSHTOMP, .unk2 = 0, },
+ { .species = SPECIES_POOCHYENA, .unk2 = 1, },
+ { .species = SPECIES_ZIGZAGOON, .unk2 = 0, },
+ { .species = SPECIES_LINOONE, .unk2 = 0, },
+ { .species = SPECIES_WURMPLE, .unk2 = 1, },
+ { .species = SPECIES_SILCOON, .unk2 = 2, },
+ { .species = SPECIES_CASCOON, .unk2 = 2, },
+ { .species = SPECIES_LOTAD, .unk2 = 2, },
+ { .species = SPECIES_SEEDOT, .unk2 = 1, },
+ { .species = SPECIES_RALTS, .unk2 = 0, },
+ { .species = SPECIES_KIRLIA, .unk2 = 0, },
+ { .species = SPECIES_SURSKIT, .unk2 = 2, },
+ { .species = SPECIES_SHROOMISH, .unk2 = 2, },
+ { .species = SPECIES_NINCADA, .unk2 = 1, },
+ { .species = SPECIES_WHISMUR, .unk2 = 0, },
+ { .species = SPECIES_AZURILL, .unk2 = 2, },
+ { .species = SPECIES_SKITTY, .unk2 = 0, },
+ { .species = SPECIES_SABLEYE, .unk2 = 0, },
+ { .species = SPECIES_MAWILE, .unk2 = 0, },
+ { .species = SPECIES_ARON, .unk2 = 1, },
+ { .species = SPECIES_MEDITITE, .unk2 = 2, },
+ { .species = SPECIES_ELECTRIKE, .unk2 = 1, },
+ { .species = SPECIES_PLUSLE, .unk2 = 1, },
+ { .species = SPECIES_MINUN, .unk2 = 1, },
+ { .species = SPECIES_VOLBEAT, .unk2 = 0, },
+ { .species = SPECIES_ILLUMISE, .unk2 = 0, },
+ { .species = SPECIES_ROSELIA, .unk2 = 2, },
+ { .species = SPECIES_GULPIN, .unk2 = 2, },
+ { .species = SPECIES_NUMEL, .unk2 = 2, },
+ { .species = SPECIES_TORKOAL, .unk2 = 2, },
+ { .species = SPECIES_SPOINK, .unk2 = 0, },
+ { .species = SPECIES_TRAPINCH, .unk2 = 2, },
+ { .species = SPECIES_CACNEA, .unk2 = 2, },
+ { .species = SPECIES_ANORITH, .unk2 = 1, },
+ { .species = SPECIES_WYNAUT, .unk2 = 0, },
+ { .species = SPECIES_SNORUNT, .unk2 = 0, },
+ { .species = SPECIES_CLAMPERL, .unk2 = 1, },
+ { .species = SPECIES_BAGON, .unk2 = 1, },
+};
+
+void StartPokemonJump(u16 partyIndex, MainCallback callback)
+{
+ u8 taskId;
+
+ if (gReceivedRemoteLinkPlayers)
+ {
+ gUnknown_203F3D4 = Alloc(sizeof(*gUnknown_203F3D4));
+ if (gUnknown_203F3D4 != NULL)
+ {
+ ResetTasks();
+ taskId = CreateTask(sub_8147DA0, 1);
+ gUnknown_203F3D4->unk8 = 0;
+ gUnknown_203F3D4->returnCallback = callback;
+ gUnknown_203F3D4->unk4 = taskId;
+ gUnknown_203F3D4->unk6 = GetMultiplayerId();
+ sub_8147D2C(&gUnknown_203F3D4->unk82A8[gUnknown_203F3D4->unk6], &gPlayerParty[partyIndex]);
+ sub_8147B60(gUnknown_203F3D4);
+ SetWordTaskArg(taskId, 2, (uintptr_t)gUnknown_203F3D4);
+ SetMainCallback2(sub_8147D6C);
+ return;
+ }
+ }
+
+ SetMainCallback2(callback);
+}
+
+static void sub_8147B48(void)
+{
+ sub_8149D24();
+ Free(gUnknown_203F3D4);
+}
+
+static void sub_8147B60(struct PokemonJump1 *arg0)
+{
+ arg0->unk5 = GetLinkPlayerCount();
+ arg0->unk70.unk0 = 5;
+ arg0->unk70.unk2 = 0;
+ sub_8147C20();
+ sub_8147B94(arg0);
+ if (arg0->unk5 == MAX_RFU_PLAYERS)
+ sub_814B4E8();
+}
+
+static void sub_8147B94(struct PokemonJump1 *arg0)
+{
+ int i;
+
+ arg0->unk14 = 6;
+ arg0->unk18 = 6;
+ arg0->unk4A = 0;
+ arg0->unk1C = 0;
+ arg0->unk5C = 0;
+ arg0->isLeader = GetMultiplayerId() == 0;
+ arg0->unk8 = 0;
+ arg0->unkA = 0;
+ arg0->unkC = 0;
+ arg0->unkE = 0;
+ arg0->unk58 = 0;
+ arg0->unk3A = 0;
+ arg0->unk44 = 0;
+ arg0->unk54 = 0;
+ arg0->unk46 = 0;
+ arg0->unk49 = 0;
+ arg0->unk48 = 1;
+ arg0->unk70.unk8 = 0;
+ arg0->unk70.unk1 = 0;
+ arg0->unk70.unk4 = 0;
+ arg0->unk60 = 1;
+ arg0->unk4D = 0;
+ arg0->unk68 = 0;
+ arg0->unk64 = 0;
+ arg0->unk2C = 0;
+ arg0->unk30 = 0;
+ sub_8147C98();
+ sub_81491E4();
+
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ arg0->unk7C[i] = 0;
+ arg0->unk9A[i] = 0;
+ }
+}
+
+static void sub_8147C20(void)
+{
+ int i, index;
+
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ index = GetPokemonJumpSpeciesIdx(gUnknown_203F3D4->unk82A8[i].species);
+ gUnknown_203F3D4->unk82E4[i].unkC = sPkmnJumpSpecies[index].unk2;
+ }
+
+ gUnknown_203F3D4->unk83AC = &gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6];
+}
+
+static void sub_8147C98(void)
+{
+ int i;
+
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ gUnknown_203F3D4->unk82E4[i].unkE = 0;
+ gUnknown_203F3D4->unk82E4[i].unk10 = 0;
+ gUnknown_203F3D4->unk82E4[i].unk12 = 0;
+ gUnknown_203F3D4->unk82E4[i].unk0 = 0;
+ gUnknown_203F3D4->unk82E4[i].unk4 = 0x7FFFFFFF;
+ gUnknown_203F3D4->unk82E4[i].unk14 = 0;
+ gUnknown_203F3D4->unk8B[i] = 9;
+ }
+}
+
+static s16 GetPokemonJumpSpeciesIdx(u16 species)
+{
+ u32 i;
+ for (i = 0; i < NELEMS(sPkmnJumpSpecies); i++)
+ {
+ if (sPkmnJumpSpecies[i].species == species)
+ return i;
+ }
+
+ return -1; // species isnt allowed
+}
+
+static void sub_8147D2C(struct PokemonJump1_MonInfo *monInfo, struct Pokemon *mon)
+{
+ monInfo->species = GetMonData(mon, MON_DATA_SPECIES);
+ monInfo->otId = GetMonData(mon, MON_DATA_OT_ID);
+ monInfo->personality = GetMonData(mon, MON_DATA_PERSONALITY);
+}
+
+static void sub_8147D58(void)
+{
+ TransferPlttBuffer();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+}
+
+static void sub_8147D6C(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+static void sub_8147D84(TaskFunc func)
+{
+ gUnknown_203F3D4->unk4 = CreateTask(func, 1);
+ gUnknown_203F3D4->unk8 = 0;
+}
+
+static void sub_8147DA0(u8 taskId)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ sub_8148F5C(sub_8148E80, 5);
+ FadeOutMapMusic(4);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!FuncIsActiveTask(sub_8148E80))
+ {
+ sub_8149CEC(&gUnknown_203F3D4->unkA4);
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 2:
+ if (!sub_8149D68() && IsNotWaitingForBGMStop() == TRUE)
+ {
+ FadeOutAndPlayNewMapMusic(MUS_JUMP, 8);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 3:
+ if (IsLinkTaskFinished())
+ {
+ BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
+ SetVBlankCallback(sub_8147D58);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 4:
+ UpdatePaletteFade();
+ if (!gPaletteFade.active)
+ {
+ gUnknown_203F3D4->unk7 = 0;
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 5:
+ gUnknown_203F3D4->unk7++;
+ if (gUnknown_203F3D4->unk7 >= 20)
+ {
+ if (gUnknown_203F3D4->isLeader)
+ sub_8147D84(sub_814807C);
+ else
+ sub_8147D84(sub_8148290);
+
+ sub_8148F7C();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void sub_8147F10(int arg0)
+{
+ if (arg0 == 0)
+ {
+ gUnknown_203F3D4->unk30 = 0x1111;
+ gUnknown_203F3D4->unk2C = 1;
+ }
+ else
+ {
+ gUnknown_203F3D4->unk30 = (1 << (arg0 - 1)) - 1;
+ gUnknown_203F3D4->unk2C = 0;
+ }
+}
+
+static void sub_8147F4C(u8 arg0)
+{
+ int i;
+
+ gUnknown_203F3D4->unk70.unk0 = arg0;
+ gUnknown_203F3D4->unk8 = 0;
+ gUnknown_203F3D4->unkA = 0;
+ gUnknown_203F3D4->unk48 = 1;
+ gUnknown_203F3D4->unk49 = 0;
+ for (i = 1; i < gUnknown_203F3D4->unk5; i++)
+ gUnknown_203F3D4->unk82E4[i].unk18 = 0;
+}
+
+static void sub_8147FA0(void)
+{
+ int i;
+ int count;
+ u16 var0;
+ u8 var1;
+ u16 var2;
+
+ for (i = 1, count = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ var0 = gUnknown_203F3D4->unk82E4[i].unk10;
+ if (sub_8149C24(&gUnknown_203F3D4->unk82E4[i], i, &var1, &var2))
+ {
+ gUnknown_203F3D4->unk90[i] = var2;
+ gUnknown_203F3D4->unk8B[i] = var1;
+ gUnknown_203F3D4->unk82E4[i].unk12 = var0;
+ }
+
+ if (gUnknown_203F3D4->unk82E4[i].unk18 && gUnknown_203F3D4->unk8B[i] == gUnknown_203F3D4->unk70.unk0)
+ count++;
+ }
+
+ if (count == gUnknown_203F3D4->unk5 - 1)
+ gUnknown_203F3D4->unk49 = 1;
+}
+
+static bool32 (* const gUnknown_846B64C[])(void) =
+{
+ sub_8148344,
+ sub_81483D0,
+ sub_8148464,
+ sub_81484D0,
+ sub_81485C8,
+ sub_81486C4,
+ sub_8148760,
+ sub_81487B4,
+ sub_814881C,
+};
+
+static void sub_814807C(u8 taskId)
+{
+ sub_8147FA0();
+ sub_8149534();
+ if (!gUnknown_203F3D4->unk48 && gUnknown_203F3D4->unk49)
+ {
+ sub_8147F4C(gUnknown_203F3D4->unk4C);
+ sub_8147F10(3);
+ }
+
+ if (gUnknown_203F3D4->unk48 == 1)
+ {
+ if (!gUnknown_846B64C[gUnknown_203F3D4->unk70.unk0]())
+ {
+ gUnknown_203F3D4->unk48 = 0;
+ gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk18 = 1;
+ }
+ }
+
+ sub_81492D8();
+ sub_8148104();
+}
+
+static void sub_8148104(void)
+{
+ if (!gUnknown_203F3D4->unk2C)
+ sub_8149AF8(gUnknown_203F3D4->unk82E4, &gUnknown_203F3D4->unk70);
+
+ if (gUnknown_203F3D4->unk30 != 0x1111)
+ {
+ gUnknown_203F3D4->unk2C++;
+ gUnknown_203F3D4->unk2C &= gUnknown_203F3D4->unk30;
+ }
+}
+
+static void sub_8148140(u8 arg0)
+{
+ gUnknown_203F3D4->unk70.unk0 = arg0;
+ gUnknown_203F3D4->unk8 = 0;
+ gUnknown_203F3D4->unkA = 0;
+ gUnknown_203F3D4->unk48 = 1;
+ gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk18 = 0;
+}
+
+static void sub_8148174(void)
+{
+ int i;
+ u16 var0;
+ struct PokemonJump1Sub sp0;
+
+ var0 = gUnknown_203F3D4->unk82E4[0].unk10;
+ if (sub_8149B7C(gUnknown_203F3D4->unk82E4, &sp0))
+ {
+ if (gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk18 == 1
+ && sp0.unk0 != gUnknown_203F3D4->unk70.unk0)
+ {
+ sub_8148140(sp0.unk0);
+ }
+
+ if (gUnknown_203F3D4->unk70.unk8 != sp0.unk8)
+ {
+ gUnknown_203F3D4->unk70.unk8 = sp0.unk8;
+ gUnknown_203F3D4->unk5C = 1;
+ gUnknown_203F3D4->unk70.unk1 = sp0.unk1;
+ if (gUnknown_203F3D4->unk70.unk1)
+ gUnknown_203F3D4->unk4D = 1;
+ else
+ gUnknown_203F3D4->unk4D = 0;
+ }
+
+ gUnknown_203F3D4->unk70.unk2 = sp0.unk2;
+ gUnknown_203F3D4->unk70.unk4 = sp0.unk4;
+ gUnknown_203F3D4->unk82E4[0].unk12 = var0;
+ }
+
+ for (i = 1; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (i != gUnknown_203F3D4->unk6)
+ {
+ var0 = gUnknown_203F3D4->unk82E4[i].unk10;
+ if (sub_8149C90(&gUnknown_203F3D4->unk82E4[i], i))
+ gUnknown_203F3D4->unk82E4[i].unk12 = var0;
+ }
+ }
+}
+
+static bool32 (* const gUnknown_846B670[])(void) =
+{
+ sub_8148398,
+ sub_8148418,
+ sub_81484B0,
+ sub_814856C,
+ sub_8148664,
+ sub_8148724,
+ sub_8148760,
+ sub_8148800,
+ sub_814881C,
+};
+
+static void sub_8148290(u8 taskId)
+{
+ sub_8148174();
+ if (gUnknown_203F3D4->unk48)
+ {
+ if (!gUnknown_846B670[gUnknown_203F3D4->unk70.unk0]())
+ {
+ gUnknown_203F3D4->unk48 = 0;
+ gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk18 = 1;
+ sub_8147F10(3);
+ }
+ }
+
+ sub_81492D8();
+ sub_81482F8();
+}
+
+static void sub_81482F8(void)
+{
+ if (!gUnknown_203F3D4->unk2C)
+ sub_8149BF4(&gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6], gUnknown_203F3D4->unk70.unk0, gUnknown_203F3D4->unk42);
+
+ if (gUnknown_203F3D4->unk30 != 0x1111)
+ {
+ gUnknown_203F3D4->unk2C++;
+ gUnknown_203F3D4->unk2C &= gUnknown_203F3D4->unk30;
+ }
+}
+
+static bool32 sub_8148344(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(3);
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ if (!sub_81488DC())
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unk4A;
+ gUnknown_203F3D4->unk4C = 1;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148398(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk24 = gUnknown_203F3D4->unk70.unk2;
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ return sub_81488DC();
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81483D0(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_81491E4();
+ sub_8147F10(5);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (gUnknown_203F3D4->unk49)
+ {
+ gUnknown_203F3D4->unk4C = 2;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148418(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_81491E4();
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk4A = gUnknown_203F3D4->unk70.unk2;
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ if (sub_8149804())
+ return FALSE;
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148464(void)
+{
+ if (!sub_81489C8())
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unk4A;
+ gUnknown_203F3D4->unk4C = 1;
+ }
+ else if (sub_8149630())
+ {
+ return TRUE;
+ }
+ else
+ {
+ sub_81491B4();
+ gUnknown_203F3D4->unk4C = 3;
+ }
+
+ return FALSE;
+}
+
+static bool32 sub_81484B0(void)
+{
+ if (!sub_81489C8())
+ ;
+ else if (sub_8149630())
+ return TRUE;
+ else
+ sub_81491B4();
+
+ return FALSE;
+}
+
+static bool32 sub_81484D0(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8149630();
+ if (sub_81496D4())
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!sub_8148A60())
+ {
+ if (sub_81498B4())
+ {
+ gUnknown_203F3D4->unk70.unk2 = sub_81498D8();
+ gUnknown_203F3D4->unk4C = 7;
+ }
+ else if (gUnknown_203F3D4->unk70.unk4 >= 200)
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unkE;
+ gUnknown_203F3D4->unk4C = 8;
+ }
+ else
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unkE;
+ gUnknown_203F3D4->unk4C = 4;
+ }
+
+ gUnknown_203F3D4->unk8++;
+ return FALSE;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_814856C(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ if (!sub_8149630())
+ sub_81491B4();
+ if (sub_81496D4())
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!sub_8148A60())
+ {
+ gUnknown_203F3D4->unk8++;
+ return FALSE;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81485C8(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(4);
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ if (!sub_8148C80())
+ {
+ sub_814B494(gUnknown_203F3D4->unk70.unk8, gUnknown_203F3D4->unk70.unk4, gUnknown_203F3D4->unk70.unk2);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 2:
+ if (gUnknown_203F3D4->unk49)
+ {
+ if (sub_8149748())
+ gUnknown_203F3D4->unk4C = 5;
+ else
+ gUnknown_203F3D4->unk4C = 6;
+
+ gUnknown_203F3D4->unk8++;
+ return FALSE;
+ }
+ break;
+ case 3:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148664(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ if (!sub_8148C80())
+ {
+ sub_814B494(gUnknown_203F3D4->unk70.unk8, gUnknown_203F3D4->unk70.unk4, gUnknown_203F3D4->unk70.unk2);
+ gUnknown_203F3D4->unk42 = gUnknown_203F3D4->unk45;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81486C4(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ if (!sub_8148E2C())
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (gUnknown_203F3D4->unk49)
+ {
+ sub_8147B94(gUnknown_203F3D4);
+ gUnknown_203F3D4->unk24 = Random();
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unk24;
+ gUnknown_203F3D4->unk4C = 0;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148724(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ if (!sub_8148E2C())
+ {
+ sub_8147B94(gUnknown_203F3D4);
+ gUnknown_203F3D4->unk8++;
+ return FALSE;
+ }
+ break;
+ case 1:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148760(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ gUnknown_203F3D4->unk8 = 1;
+ break;
+ case 1:
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 2:
+ if (!sub_8148D5C())
+ {
+ SetMainCallback2(gUnknown_203F3D4->returnCallback);
+ sub_8147B48();
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81487B4(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(4);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!sub_8148B54())
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unkE;
+ gUnknown_203F3D4->unk4C = 8;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148800(void)
+{
+ sub_8147F10(0);
+ if (!sub_8148B54())
+ return FALSE;
+ else
+ return TRUE;
+}
+
+static bool32 sub_814881C(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_814B494(gUnknown_203F3D4->unk70.unk8, gUnknown_203F3D4->unk70.unk4, gUnknown_203F3D4->unk70.unk2);
+ sub_8149D40(5);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!sub_8149D68())
+ {
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 2:
+ if (sub_8149804())
+ {
+ CreateTask(sub_80DA634, 6);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 3:
+ if (!FuncIsActiveTask(sub_80DA634))
+ {
+ sub_814A6CC();
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 4:
+ if (!sub_814A6FC())
+ {
+ gUnknown_203F3D4->unk4C = 4;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81488DC(void)
+{
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_8149D40(2);
+ sub_814AAA0();
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ if (!sub_8149D68())
+ {
+ sub_814AAB4(gUnknown_203F3D4->unk6);
+ gUnknown_203F3D4->unk3C = 0;
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 2:
+ if (++gUnknown_203F3D4->unk3C > 120)
+ {
+ sub_8149D40(3);
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 3:
+ if (sub_8149D68() != 1 && sub_814AAC8() != 1)
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 4:
+ sub_8149D40(9);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 5:
+ if (!sub_8149D68())
+ {
+ sub_814935C();
+ sub_814A3E4();
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 6:
+ if (!sub_814A408())
+ {
+ sub_814936C();
+ sub_8148F9C();
+ gUnknown_203F3D4->unkA++;
+ return FALSE;
+ }
+ break;
+ case 7:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81489C8(void)
+{
+ sub_8148FE0();
+ if (gUnknown_203F3D4->unk36)
+ {
+ gUnknown_203F3D4->unk36 = 0;
+ return FALSE;
+ }
+
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ if (sub_814922C(0))
+ gUnknown_203F3D4->unkA++;
+ else
+ break;
+ // fall through
+ case 1:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ sub_8149260();
+ sub_8147F10(3);
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 2:
+ if (sub_814922C(1) == TRUE)
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 3:
+ if (sub_814922C(0) == TRUE)
+ gUnknown_203F3D4->unkA = 0;
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148A60(void)
+{
+ int i;
+
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ for (i = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (sub_814AA78(i) == 1)
+ return TRUE;
+ }
+
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ for (i = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk10 == 2)
+ sub_814AA60(i);
+ }
+
+ sub_8149D40(1);
+ gUnknown_203F3D4->unk3C = 0;
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 2:
+ if (++gUnknown_203F3D4->unk3C > 100)
+ {
+ sub_8149D40(3);
+ gUnknown_203F3D4->unk3C = 0;
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 3:
+ if (!sub_8149D68())
+ {
+ sub_814AA8C();
+ gUnknown_203F3D4->unk70.unk1 = 0;
+ sub_8149210();
+ gUnknown_203F3D4->unkA++;
+ return FALSE;
+ }
+ break;
+ case 4:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148B54(void)
+{
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_8149900(gUnknown_203F3D4->unk70.unk2, &gUnknown_203F3D4->unk3E, &gUnknown_203F3D4->unk40);
+ sub_814A468(gUnknown_203F3D4->unk3E, gUnknown_203F3D4->unk40);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ case 4:
+ if (!sub_814A62C())
+ {
+ gUnknown_203F3D4->unk3C = 0;
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 2:
+ case 5:
+ gUnknown_203F3D4->unk3C++;
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON) || gUnknown_203F3D4->unk3C > 180)
+ {
+ sub_814A6CC();
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 3:
+ if (!sub_814A6FC())
+ {
+ gUnknown_203F3D4->unk40 = sub_8149978(gUnknown_203F3D4->unk3E, gUnknown_203F3D4->unk40);
+ if (gUnknown_203F3D4->unk40 && AddBagItem(gUnknown_203F3D4->unk3E, gUnknown_203F3D4->unk40))
+ {
+ if (!CheckBagHasSpace(gUnknown_203F3D4->unk3E, 1))
+ {
+ sub_814A53C(gUnknown_203F3D4->unk3E);
+ gUnknown_203F3D4->unkA = 4;
+ }
+ else
+ {
+ gUnknown_203F3D4->unkA = 6;
+ break;
+ }
+ }
+ else
+ {
+ sub_814A5B4(gUnknown_203F3D4->unk3E);
+ gUnknown_203F3D4->unkA = 4;
+ }
+ }
+ break;
+ case 6:
+ if (!sub_814A6FC())
+ return FALSE;
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148C80(void)
+{
+ s8 input;
+
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_8149D40(4);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ if (!sub_8149D68())
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 2:
+ input = sub_814A744();
+ switch (input)
+ {
+ case MENU_B_PRESSED:
+ case 1:
+ gUnknown_203F3D4->unk45 = 1;
+ sub_8149D40(6);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 0:
+ gUnknown_203F3D4->unk45 = 2;
+ sub_8149D40(6);
+ gUnknown_203F3D4->unkA++;
+ break;
+ }
+ break;
+ case 3:
+ if (!sub_8149D68())
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 4:
+ sub_8149D40(8);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 5:
+ if (!sub_8149D68())
+ {
+ gUnknown_203F3D4->unkA++;
+ return FALSE;
+ }
+ break;
+ case 6:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148D5C(void)
+{
+ int var0;
+
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_814A6CC();
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ if (!sub_814A6FC())
+ {
+ sub_8149D40(7);
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 2:
+ var0 = sub_8149D68();
+ if (!var0)
+ {
+ gUnknown_203F3D4->unk3C = var0;
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 3:
+ if (++gUnknown_203F3D4->unk3C > 120)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ Link_TryStartSend5FFF();
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 5:
+ if (!gReceivedRemoteLinkPlayers)
+ return FALSE;
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148E2C(void)
+{
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_814A6CC();
+ sub_814AA24(0);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ if (!sub_814A6FC())
+ {
+ gUnknown_203F3D4->unkA++;
+ return FALSE;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void sub_8148E80(u8 taskId)
+{
+ int i;
+ s16 *taskData = gTasks[taskId].data;
+ struct PokemonJump1 *ptr = (struct PokemonJump1 *)GetWordTaskArg(taskId, 14);
+
+ switch (taskData[0])
+ {
+ case 0:
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ taskData[i + 2] = 0;
+
+ taskData[0]++;
+ // fall through
+ case 1:
+ sub_8149A6C(&ptr->unk82A8[ptr->unk6]);
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ if (!taskData[i + 2] && sub_8149A90(i, &ptr->unk82A8[i]))
+ {
+ StringCopy(ptr->unk82E4[i].unk1C, gLinkPlayers[i].name);
+ taskData[i + 2] = 1;
+ taskData[1]++;
+ if (taskData[1] == ptr->unk5)
+ {
+ sub_8147C20();
+ DestroyTask(taskId);
+ break;
+ }
+ }
+ }
+ break;
+ }
+}
+
+static void sub_8148F5C(TaskFunc func, u8 taskPriority)
+{
+ u8 taskId = CreateTask(func, taskPriority);
+ SetWordTaskArg(taskId, 14, (uintptr_t)gUnknown_203F3D4);
+}
+
+static void sub_8148F7C(void)
+{
+ gUnknown_203F3D4->unk4A = 0;
+ gUnknown_203F3D4->unk14 = 6;
+ gUnknown_203F3D4->unk34 = 0;
+ gUnknown_203F3D4->unk1C = 0;
+ gUnknown_203F3D4->unk36 = 0;
+ gUnknown_203F3D4->unk10 = 0;
+}
+
+static void sub_8148F9C(void)
+{
+ gUnknown_203F3D4->unk4A = 0;
+ gUnknown_203F3D4->unk34 = 0x6FF;
+ gUnknown_203F3D4->unk14 = 7;
+ gUnknown_203F3D4->unk36 = 0;
+ gUnknown_203F3D4->unk10 = 0;
+ gUnknown_203F3D4->unk51 = 0;
+ gUnknown_203F3D4->unk50 = 0;
+ gUnknown_203F3D4->unk20 = 0;
+ gUnknown_203F3D4->unk4E = 0;
+ gUnknown_203F3D4->unk6C = 0;
+ sub_8149078();
+}
+
+static void sub_8148FE0(void)
+{
+ if (gUnknown_203F3D4->unk46)
+ {
+ gUnknown_203F3D4->unk4A++;
+ gUnknown_203F3D4->unk34 += sub_8149044();
+ if (gUnknown_203F3D4->unk34 >= 0x9FF)
+ gUnknown_203F3D4->unk34 -= 0x9FF;
+
+ gUnknown_203F3D4->unk18 = gUnknown_203F3D4->unk14;
+ gUnknown_203F3D4->unk14 = gUnknown_203F3D4->unk34 >> 8;
+ if (gUnknown_203F3D4->unk14 > 6 && gUnknown_203F3D4->unk18 < 7)
+ {
+ gUnknown_203F3D4->unk36++;
+ sub_8149078();
+ }
+ }
+}
+
+static int sub_8149044(void)
+{
+ int result;
+
+ if (gUnknown_203F3D4->unk10)
+ return 0;
+
+ result = gUnknown_203F3D4->unk1C;
+ if (gUnknown_203F3D4->unk34 <= 0x5FF)
+ {
+ gUnknown_203F3D4->unk20 += 80;
+ result += gUnknown_203F3D4->unk20 >> 8;
+ }
+
+ return result;
+}
+
+static const u16 gUnknown_846B694[] = {0x1a, 0x1f, 0x24, 0x29, 0x2e, 0x33, 0x38, 0x3d};
+static const u16 gUnknown_846B6A4[] = {0, 1, 1, 2};
+
+static void sub_8149078(void)
+{
+ int var0;
+
+ gUnknown_203F3D4->unk20 = 0;
+ if (gUnknown_203F3D4->unk4E)
+ {
+ gUnknown_203F3D4->unk4E--;
+ if (gUnknown_203F3D4->unk6C)
+ {
+ if (sub_8149194() % 4 != 0)
+ {
+ gUnknown_203F3D4->unk1C = gUnknown_203F3D4->unk28;
+ }
+ else
+ {
+ if (gUnknown_203F3D4->unk28 > 54)
+ gUnknown_203F3D4->unk1C = 30;
+ else
+ gUnknown_203F3D4->unk1C = 82;
+ }
+ }
+ }
+ else
+ {
+ if (!(gUnknown_203F3D4->unk50 & 8))
+ {
+ gUnknown_203F3D4->unk28 = gUnknown_846B694[gUnknown_203F3D4->unk50] + (gUnknown_203F3D4->unk51 * 7);
+ gUnknown_203F3D4->unk4E = gUnknown_846B6A4[sub_8149194() % NELEMS(gUnknown_846B6A4)] + 2;
+ gUnknown_203F3D4->unk50++;
+ }
+ else
+ {
+ if (gUnknown_203F3D4->unk50 == 8)
+ {
+ if (gUnknown_203F3D4->unk51 < 3)
+ gUnknown_203F3D4->unk51++;
+ else
+ gUnknown_203F3D4->unk6C = 1;
+ }
+
+ var0 = gUnknown_846B694[15 - gUnknown_203F3D4->unk50];
+ gUnknown_203F3D4->unk28 = var0 + (gUnknown_203F3D4->unk51 * 7);
+ if (++gUnknown_203F3D4->unk50 > 15)
+ {
+ if (sub_8149194() % 4 == 0)
+ gUnknown_203F3D4->unk28 -= 5;
+
+ gUnknown_203F3D4->unk50 = 0;
+ }
+ }
+
+ gUnknown_203F3D4->unk1C = gUnknown_203F3D4->unk28;
+ }
+}
+
+static int sub_8149194(void)
+{
+ // The number 1103515245 comes from the example implementation of rand and srand
+ gUnknown_203F3D4->unk24 = gUnknown_203F3D4->unk24 * 1103515245 + 24691;
+ return gUnknown_203F3D4->unk24 >> 16;
+}
+
+static void sub_81491B4(void)
+{
+ gUnknown_203F3D4->unk10 = 1;
+ gUnknown_203F3D4->unk14 = 6;
+ gUnknown_203F3D4->unk34 = 0x5FF;
+ sub_814936C();
+}
+
+static int sub_81491D8(void)
+{
+ return gUnknown_203F3D4->unk10;
+}
+
+static void sub_81491E4(void)
+{
+ int i;
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ gUnknown_203F3D4->unk82E4[i].unk14 = 0;
+}
+
+static void sub_8149210(void)
+{
+ gUnknown_203F3D4->unk83AC->unk10 = 0;
+ gUnknown_203F3D4->unk83AC->unk12 = 0;
+}
+
+static bool32 sub_814922C(u16 arg0)
+{
+ if (gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk10 == arg0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void sub_8149260(void)
+{
+ gUnknown_203F3D4->unk83AC->unkE = gUnknown_203F3D4->unk4A;
+ gUnknown_203F3D4->unk83AC->unk12 = gUnknown_203F3D4->unk83AC->unk10;
+ gUnknown_203F3D4->unk83AC->unk10 = 1;
+}
+
+static void sub_8149288(void)
+{
+ gUnknown_203F3D4->unk83AC->unk12 = gUnknown_203F3D4->unk83AC->unk10;
+ gUnknown_203F3D4->unk83AC->unk10 = 2;
+ gUnknown_203F3D4->unk83AC->unkE = gUnknown_203F3D4->unk4A;
+ gUnknown_203F3D4->unk83AC->unk14 = 2;
+}
+
+static void sub_81492B8(void)
+{
+ gUnknown_203F3D4->unk83AC->unk12 = gUnknown_203F3D4->unk83AC->unk10;
+ gUnknown_203F3D4->unk83AC->unk10 = 0;
+}
+
+static const u16 gUnknown_846B6AC[] = {SE_REGI, SE_REAPOKE, SE_W234, SE_EXCELLENT};
+
+static void sub_81492D8(void)
+{
+ if (gUnknown_203F3D4->unk5C)
+ {
+ sub_814AA24(gUnknown_203F3D4->unk70.unk8);
+ gUnknown_203F3D4->unk5C = 0;
+ if (gUnknown_203F3D4->unk4D)
+ {
+ int index = sub_814A98C(gUnknown_203F3D4->unk70.unk1);
+ PlaySE(gUnknown_846B6AC[index - 2]);
+ gUnknown_203F3D4->unk4D = 0;
+ }
+ }
+
+ sub_814AA34(gUnknown_203F3D4->unk70.unk4);
+ sub_814937C();
+ sub_814933C();
+}
+
+static void sub_814933C(void)
+{
+ if (gUnknown_203F3D4->unk46)
+ sub_814A95C(gUnknown_203F3D4->unk14);
+}
+
+static void sub_814935C(void)
+{
+ gUnknown_203F3D4->unk46 = 0;
+}
+
+static void sub_814936C(void)
+{
+ gUnknown_203F3D4->unk46 = 1;
+}
+
+static void sub_814937C(void)
+{
+ int i;
+ int whichSound = 0;
+ int numLinkPlayers = gUnknown_203F3D4->unk5;
+
+ for (i = 0; i < numLinkPlayers; i++)
+ {
+ switch (gUnknown_203F3D4->unk82E4[i].unk10)
+ {
+ case 0:
+ sub_814A940(i, 0);
+ break;
+ case 1:
+ if (gUnknown_203F3D4->unk82E4[i].unk12 != 1 || gUnknown_203F3D4->unk82E4[i].unkE != gUnknown_203F3D4->unk9A[i])
+ {
+ if (i == gUnknown_203F3D4->unk6)
+ gUnknown_203F3D4->unk82E4[i].unk12 = 1;
+
+ whichSound |= 0x1;
+ gUnknown_203F3D4->unk82E4[i].unk4 = 0x7FFFFFFF;
+ gUnknown_203F3D4->unk9A[i] = gUnknown_203F3D4->unk82E4[i].unkE;
+ }
+
+ sub_8149490(i);
+ break;
+ case 2:
+ if (gUnknown_203F3D4->unk82E4[i].unk12 != 2)
+ {
+ if (i == gUnknown_203F3D4->unk6)
+ gUnknown_203F3D4->unk82E4[i].unk12 = 2;
+
+ whichSound |= 0x2;
+ sub_814AA48(i);
+ }
+ break;
+ }
+ }
+
+ if (whichSound & 0x2)
+ PlaySE(SE_NAWAMISS);
+ else if (whichSound & 0x1)
+ PlaySE(SE_DANSA);
+}
+
+static const s8 gUnknown_846B6B4[][48] =
+{
+ {-3, -6, -8, -10, -13, -15, -17, -19, -21, -23, -25, -27, -28, -29, -30, -30, -30, -28, -27,
+ -26, -25, -23, -22, -20, -18, -17, -15, -13, -11, -8, -6, -4, -1},
+
+ {-3, -6, -9, -11, -14, -16, -18, -20, -22, -24, -26, -28, -29, -30, -30, -28, -26, -24, -22,
+ -20, -18, -16, -14, -11, -9, -6, -4, -1},
+
+ {-3, -6, -9, -11, -13, -15, -17, -19, -21, -23, -25, -27, -28, -29, -30, -30, -30, -30, -29,
+ -29, -28, -28, -27, -27, -26, -25, -24, -22, -20, -18, -16, -14,
+ -12, -11, -9, -6, -4, -1},
+};
+
+static void sub_8149490(int multiplayerId)
+{
+ int var0;
+ int var1;
+ struct PokemonJump1_82E4 *player;
+
+ if (gUnknown_203F3D4->unk68)
+ return;
+
+ player = &gUnknown_203F3D4->unk82E4[multiplayerId];
+ if (player->unk4 != 0x7FFFFFFF)
+ {
+ player->unk4++;
+ var0 = player->unk4;
+ }
+ else
+ {
+ var0 = gUnknown_203F3D4->unk4A - player->unkE;
+ if (var0 >= 65000)
+ {
+ var0 -= 65000;
+ var0 += gUnknown_203F3D4->unk4A;
+ }
+
+ player->unk4 = var0;
+ }
+
+ if (var0 < 4)
+ return;
+
+ var0 -= 4;
+ if (var0 < 48)
+ var1 = gUnknown_846B6B4[player->unkC][var0];
+ else
+ var1 = 0;
+
+ sub_814A940(multiplayerId, var1);
+ if (!var1 && multiplayerId == gUnknown_203F3D4->unk6)
+ sub_81492B8();
+
+ player->unk0 = var1;
+}
+
+static void sub_8149534(void)
+{
+ if (gUnknown_203F3D4->unk14 == 8 && gUnknown_203F3D4->unk18 == 7)
+ {
+ if (gUnknown_203F3D4->unk58 == 0)
+ {
+ sub_8149878();
+ gUnknown_203F3D4->unk54 = 0;
+ gUnknown_203F3D4->unk58 = 1;
+ gUnknown_203F3D4->unk70.unk1 = 0;
+ }
+ else
+ {
+ if (gUnknown_203F3D4->unk54 == 5)
+ {
+ gUnknown_203F3D4->unkC++;
+ sub_8149898(gUnknown_203F3D4->unkC);
+ }
+ else
+ {
+ gUnknown_203F3D4->unkC = 0;
+ }
+
+ if (gUnknown_203F3D4->unk54 > 1)
+ {
+ gUnknown_203F3D4->unk64 = 1;
+ memcpy(gUnknown_203F3D4->unk86, gUnknown_203F3D4->unk81, sizeof(u8) * MAX_RFU_PLAYERS);
+ }
+
+ sub_8149878();
+ gUnknown_203F3D4->unk54 = 0;
+ gUnknown_203F3D4->unk58 = 1;
+ gUnknown_203F3D4->unk70.unk1 = 0;
+ if (gUnknown_203F3D4->unk70.unk4 < 9999)
+ gUnknown_203F3D4->unk70.unk4++;
+
+ sub_8149780(10);
+ sub_8147F10(3);
+ }
+ }
+
+ if (gUnknown_203F3D4->unk64 && (sub_8149710() == TRUE || !gUnknown_203F3D4->unk14))
+ {
+ int var0 = sub_8149834(gUnknown_203F3D4->unk86);
+ sub_8149780(sub_8149888(var0));
+ sub_8147F10(3);
+ gUnknown_203F3D4->unk64 = 0;
+ }
+
+ if (gUnknown_203F3D4->unk58)
+ {
+ int var1 = sub_81497A8();
+ if (var1 > gUnknown_203F3D4->unk54)
+ {
+ gUnknown_203F3D4->unk54 = var1;
+ memcpy(gUnknown_203F3D4->unk81, gUnknown_203F3D4->unk7C, sizeof(u8) * MAX_RFU_PLAYERS);
+ }
+ }
+}
+
+static bool32 sub_8149630(void)
+{
+ int i;
+
+ if (gUnknown_203F3D4->unk14 == 6 && !gUnknown_203F3D4->unk83AC->unk0)
+ {
+ if (gUnknown_203F3D4->unk83AC->unk12 == 1 && sub_81491D8() == 1)
+ {
+ gUnknown_203F3D4->unk83AC->unk14 = 1;
+ }
+ else
+ {
+ sub_8149288();
+ sub_8147F10(3);
+ }
+ }
+
+ if (gUnknown_203F3D4->unk14 == 7
+ && gUnknown_203F3D4->unk18 == 6
+ && gUnknown_203F3D4->unk83AC->unk10 != 2)
+ {
+ gUnknown_203F3D4->unk83AC->unk14 = 1;
+ sub_8147F10(3);
+ }
+
+ for (i = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk10 == 2)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81496D4(void)
+{
+ int i;
+ int numPlayers = gUnknown_203F3D4->unk5;
+ int count = 0;
+ for (i = 0; i < numPlayers; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk14)
+ count++;
+ }
+
+ return count == numPlayers;
+}
+
+static bool32 sub_8149710(void)
+{
+ int i;
+ for (i = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk14 != 1)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8149748(void)
+{
+ int i;
+
+ if (gUnknown_203F3D4->unk45 == 1)
+ return FALSE;
+
+ for (i = 1; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (gUnknown_203F3D4->unk90[i] == 1)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void sub_8149780(int arg0)
+{
+ gUnknown_203F3D4->unk70.unk8 += arg0;
+ gUnknown_203F3D4->unk5C = 1;
+ if (gUnknown_203F3D4->unk70.unk8 >= 99990)
+ gUnknown_203F3D4->unk70.unk8 = 99990;
+}
+
+static int sub_81497A8(void)
+{
+ int i;
+ int count = 0;
+ int numPlayers = gUnknown_203F3D4->unk5;
+
+ for (i = 0; i < numPlayers; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk0 == -30)
+ {
+ gUnknown_203F3D4->unk7C[i] = 1;
+ count++;
+ }
+ else
+ {
+ gUnknown_203F3D4->unk7C[i] = 0;
+ }
+ }
+
+ return count;
+}
+
+static bool32 sub_8149804(void)
+{
+ return !Rfu.unk_124.count && !Rfu.unk_9e8.count;
+}
+
+static int sub_8149834(u8 *arg0)
+{
+ int i;
+ int flags;
+ int count;
+
+ for (i = 0, flags = 0, count = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ if (arg0[i])
+ {
+ flags |= 1 << i;
+ count++;
+ }
+ }
+
+ gUnknown_203F3D4->unk70.unk1 = flags;
+ if (flags)
+ gUnknown_203F3D4->unk4D = 1;
+
+ return count;
+}
+
+static void sub_8149878(void)
+{
+ gUnknown_203F3D4->unk44 = 0;
+}
+
+static const int gUnknown_846B74C[] = {0, 0, 50, 100, 200, 500};
+
+static int sub_8149888(int arg0)
+{
+ return gUnknown_846B74C[arg0];
+}
+
+static void sub_8149898(u16 arg0)
+{
+ if (arg0 > gUnknown_203F3D4->unkE)
+ gUnknown_203F3D4->unkE = arg0;
+}
+
+static const u16 gUnknown_846B764[] = {0x8a, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93};
+static const u32 gUnknown_846B76C[][2] =
+{
+ {0x1388, 1},
+ {0x1f40, 2},
+ {0x2ee0, 3},
+ {0x3e80, 4},
+ {0x4e20, 5},
+};
+
+static bool32 sub_81498B4(void)
+{
+ if (gUnknown_203F3D4->unk70.unk8 >= gUnknown_846B76C[0][0])
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static u16 sub_81498D8(void)
+{
+ u16 lo = sub_8149910();
+ u16 hi = sub_8149930();
+ return (hi << 12) | (lo & 0xFFF);
+}
+
+static void sub_8149900(u16 arg0, u16 *arg1, u16 *arg2)
+{
+ *arg2 = arg0 >> 12;
+ *arg1 = arg0 & 0xFFF;
+}
+
+static u16 sub_8149910(void)
+{
+ u16 index = Random() % NELEMS(gUnknown_846B764);
+ return gUnknown_846B764[index];
+}
+
+static u16 sub_8149930(void)
+{
+ u32 val, i;
+
+ val = 0;
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_203F3D4->unk70.unk8 < gUnknown_846B76C[i][0])
+ break;
+ else if (1) // required to match, see pret/pokeemerald#982
+ val = gUnknown_846B76C[i][1];
+ else
+ break;
+ }
+
+ return val;
+}
+
+static u16 sub_8149978(u16 item, u16 quantity)
+{
+ while (quantity && !CheckBagHasSpace(item, quantity))
+ quantity--;
+
+ return quantity;
+}
+
+u16 sub_81499A4(void)
+{
+ return GetLinkPlayerCount();
+}
+
+u16 sub_81499B4(void)
+{
+ return gUnknown_203F3D4->unk6;
+}
+
+struct PokemonJump1_MonInfo *sub_81499C0(u8 multiplayerId)
+{
+ return &gUnknown_203F3D4->unk82A8[multiplayerId];
+}
+
+u8 *sub_81499E0(u8 multiplayerId)
+{
+ return gUnknown_203F3D4->unk82E4[multiplayerId].unk1C;
+}
+
+bool32 IsSpeciesAllowedInPokemonJump(u16 species)
+{
+ return GetPokemonJumpSpeciesIdx(species) > -1;
+}
+
+void IsPokemonJumpSpeciesInParty(void)
+{
+ int i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES))
+ {
+ u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ if (IsSpeciesAllowedInPokemonJump(species))
+ {
+ gSpecialVar_Result = TRUE;
+ return;
+ }
+ }
+ }
+
+ gSpecialVar_Result = FALSE;
+}
diff --git a/src/pokemon_jump_3.c b/src/pokemon_jump_3.c
new file mode 100644
index 000000000..04d9ad439
--- /dev/null
+++ b/src/pokemon_jump_3.c
@@ -0,0 +1,167 @@
+#include "global.h"
+#include "link_rfu.h"
+#include "pokemon_jump.h"
+
+struct MonInfoPacket
+{
+ u8 id; // packet id
+ u16 species;
+ u32 personality;
+ u32 otId;
+};
+
+void sub_8149A6C(struct PokemonJump1_MonInfo *arg0)
+{
+ struct MonInfoPacket packet;
+ packet.id = 1;
+ packet.species = arg0->species;
+ packet.otId = arg0->otId;
+ packet.personality = arg0->personality;
+ RfuPrepareSend0x2f00(&packet);
+}
+
+bool32 sub_8149A90(int multiplayerId, struct PokemonJump1_MonInfo *arg0)
+{
+ struct MonInfoPacket packet;
+
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ return FALSE;
+
+ memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
+ if (packet.id == 1)
+ {
+ arg0->species = packet.species;
+ arg0->otId = packet.otId;
+ arg0->personality = packet.personality;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+struct UnkPacket2
+{
+ u8 id; // packet id
+ u32 unk4;
+ u32 unk8;
+};
+
+void sub_8149AE0(u32 arg0)
+{
+ struct UnkPacket2 packet;
+ packet.id = 2;
+ packet.unk4 = arg0;
+ RfuPrepareSend0x2f00(&packet);
+}
+
+struct UnkPacket3
+{
+ u8 id; // packet id
+ u8 unk1;
+ u8 unk2;
+ u8 unk3_0:5;
+ u8 unk3_1:3;
+ u16 unk4;
+ u16 unk6;
+ u32 unk8_0:15;
+ u32 unk8_1:17;
+};
+
+void sub_8149AF8(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1)
+{
+ struct UnkPacket3 packet;
+ packet.id = 3;
+ packet.unk8_1 = arg1->unk8;
+ packet.unk3_0 = arg1->unk1;
+ packet.unk1 = arg1->unk0;
+ packet.unk6 = arg1->unk2;
+ packet.unk8_0 = arg1->unk4;
+ packet.unk2 = arg0->unk10;
+ packet.unk3_1 = arg0->unk14;
+ packet.unk4 = arg0->unkE;
+ RfuPrepareSend0x2f00(&packet);
+}
+
+bool32 sub_8149B7C(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1)
+{
+ struct UnkPacket3 packet;
+
+ if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
+ return FALSE;
+
+ memcpy(&packet, &gRecvCmds[0][1], sizeof(packet));
+ if (packet.id != 3)
+ return FALSE;
+
+ arg1->unk8 = packet.unk8_1;
+ arg1->unk1 = packet.unk3_0;
+ arg1->unk0 = packet.unk1;
+ arg1->unk2 = packet.unk6;
+ arg1->unk4 = packet.unk8_0;
+ arg0->unk10 = packet.unk2;
+ arg0->unk14 = packet.unk3_1;
+ arg0->unkE = packet.unk4;
+ return TRUE;
+}
+
+struct UnkPacket4
+{
+ u8 id; // packet id
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u16 unk4;
+ u8 unk6;
+ u16 unk8;
+};
+
+void sub_8149BF4(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2)
+{
+ struct UnkPacket4 packet;
+ packet.id = 4;
+ packet.unk1 = arg0->unk10;
+ packet.unk2 = arg0->unk14;
+ packet.unk3 = arg0->unk18;
+ packet.unk4 = arg0->unkE;
+ packet.unk6 = arg1;
+ packet.unk8 = arg2;
+ RfuPrepareSend0x2f00(&packet);
+}
+
+bool32 sub_8149C24(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3)
+{
+ struct UnkPacket4 packet;
+
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ return FALSE;
+
+ memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
+ if (packet.id != 4)
+ return FALSE;
+
+ arg0->unk10 = packet.unk1;
+ arg0->unk14 = packet.unk2;
+ arg0->unk18 = packet.unk3;
+ arg0->unkE = packet.unk4;
+ *arg2 = packet.unk6;
+ *arg3 = packet.unk8;
+ return TRUE;
+}
+
+bool32 sub_8149C90(struct PokemonJump1_82E4 *arg0, int multiplayerId)
+{
+ struct UnkPacket4 packet;
+
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ return FALSE;
+
+ memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
+ if (packet.id != 4)
+ return FALSE;
+
+ arg0->unk10 = packet.unk1;
+ arg0->unk14 = packet.unk2;
+ arg0->unk18 = packet.unk3;
+ arg0->unkE = packet.unk4;
+ return TRUE;
+}
diff --git a/src/pokemon_jump_4.c b/src/pokemon_jump_4.c
new file mode 100644
index 000000000..d1c049e7a
--- /dev/null
+++ b/src/pokemon_jump_4.c
@@ -0,0 +1,922 @@
+#include "global.h"
+#include "gflib.h"
+#include "data.h"
+#include "digit_obj_util.h"
+#include "dynamic_placeholder_text_util.h"
+#include "item.h"
+#include "menu.h"
+#include "new_menu_helpers.h"
+#include "pokemon_jump.h"
+#include "strings.h"
+#include "task.h"
+#include "text_window.h"
+#include "constants/songs.h"
+#include "constants/items.h"
+
+EWRAM_DATA static struct PokemonJump2 *gUnknown_203F3D8 = NULL;
+
+static void sub_8149D80(void (*func)(void));
+static void sub_8149DA4(u8 taskId);
+static void sub_8149DC8(void);
+static void sub_8149F64(void);
+static void sub_8149FD0(void);
+static void sub_814A03C(void);
+static void sub_814A0C8(void);
+static void sub_814A174(void);
+static void sub_814A218(void);
+static void sub_814A264(void);
+static void sub_814A308(void);
+static void sub_814A3AC(void);
+static u32 sub_814A754(u32 left, u32 top, u32 width, u32 height);
+static void sub_814A7D0(u16 left, u16 top, u8 cursorPos);
+static void sub_814A84C(void);
+static void sub_814A8B8(void);
+static void sub_814A9C8(void);
+static void sub_814AADC(void);
+static void sub_814AC30(bool32 arg0);
+static void sub_814AC94(void);
+static void sub_814ACCC(u8 arg0);
+static void sub_814AD50(u8 taskId);
+
+static void sub_8149D34(struct PokemonJump2 *);
+
+void sub_8149CEC(struct PokemonJump2 *arg0)
+{
+ u8 taskId;
+
+ gUnknown_203F3D8 = arg0;
+ sub_8149D34(gUnknown_203F3D8);
+ taskId = CreateTask(sub_8149DA4, 3);
+ gUnknown_203F3D8->unk6 = taskId;
+ SetWordTaskArg(gUnknown_203F3D8->unk6, 2, (uintptr_t)gUnknown_203F3D8);
+ sub_8149D80(sub_8149DC8);
+}
+
+void sub_8149D24(void)
+{
+ FreeAllWindowBuffers();
+ DigitObjUtil_Teardown();
+}
+
+static void sub_8149D34(struct PokemonJump2 *arg0)
+{
+ arg0->unk4 = 0;
+ arg0->unk0 = 0;
+ arg0->unk12 = 0xFF;
+}
+
+// Gfx
+static const u16 sPkmnJumpPal3[] = INCBIN_U16("graphics/link_games/pkmnjump_pal3.gbapal");
+
+static const u16 sPkmnJumpBgPal[] = INCBIN_U16("graphics/link_games/pkmnjump_bg.gbapal");
+static const u32 sPkmnJumpBgGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_bg.4bpp.lz");
+static const u32 sPkmnJumpBgTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_bg.bin.lz");
+
+static const u16 sPkmnJumpVenusaurPal[] = INCBIN_U16("graphics/link_games/pkmnjump_venusaur.gbapal");
+static const u32 sPkmnJumpVenusaurGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_venusaur.4bpp.lz");
+static const u32 sPkmnJumpVenusaurTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_venusaur.bin.lz");
+
+static const u16 sPkmnJumpResultsPal[] = INCBIN_U16("graphics/link_games/pkmnjump_results.gbapal");
+static const u32 sPkmnJumpResultsGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_results.4bpp.lz");
+static const u32 sPkmnJumpResultsTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_results.bin.lz");
+
+static const struct BgTemplate gUnknown_846D8D4[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 27,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 30,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 12,
+ .screenSize = 3,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+ },
+};
+
+static const struct WindowTemplate gUnknown_846D8E4[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 19,
+ .tilemapTop = 0,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 2,
+ .baseBlock = 0x13,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 8,
+ .tilemapTop = 0,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 2,
+ .baseBlock = 0x1F,
+ },
+ DUMMY_WIN_TEMPLATE,
+};
+
+struct
+{
+ int id;
+ void (*func)(void);
+} static const gUnknown_846D8FC[] =
+{
+ {0x00, sub_8149DC8},
+ {0x01, sub_8149F64},
+ {0x02, sub_8149FD0},
+ {0x03, sub_814A03C},
+ {0x04, sub_814A0C8},
+ {0x05, sub_814A174},
+ {0x06, sub_814A218},
+ {0x07, sub_814A264},
+ {0x09, sub_814A3AC},
+ {0x08, sub_814A308},
+};
+
+void sub_8149D40(int arg0)
+{
+ int i;
+
+ for (i = 0; i < NELEMS(gUnknown_846D8FC); i++)
+ {
+ if (gUnknown_846D8FC[i].id == arg0)
+ sub_8149D80(gUnknown_846D8FC[i].func);
+ }
+}
+
+bool32 sub_8149D68(void)
+{
+ return (gUnknown_203F3D8->unk0 != 1);
+}
+
+static void sub_8149D80(void (*func)(void))
+{
+ SetWordTaskArg(gUnknown_203F3D8->unk6, 0, (uintptr_t)func);
+ gUnknown_203F3D8->unk4 = 0;
+ gUnknown_203F3D8->unk0 = 0;
+}
+
+static void sub_8149DA4(u8 taskId)
+{
+ if (!gUnknown_203F3D8->unk0)
+ {
+ void (*func)(void) = (void *)(GetWordTaskArg(taskId, 0));
+
+ func();
+ }
+}
+
+static void sub_8149DC8(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, gUnknown_846D8D4, NELEMS(gUnknown_846D8D4));
+ InitWindows(gUnknown_846D8E4);
+ ResetBgPositions();
+ ResetTempTileDataBuffers();
+ sub_814AD6C(gUnknown_203F3D8);
+ sub_814A9C8();
+ LoadPalette(sPkmnJumpBgPal, 0, 0x20);
+ DecompressAndCopyTileDataToVram(3, sPkmnJumpBgGfx, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(3, sPkmnJumpBgTilemap, 0, 0, 1);
+ LoadPalette(sPkmnJumpVenusaurPal, 0x30, 0x20);
+ DecompressAndCopyTileDataToVram(2, sPkmnJumpVenusaurGfx, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(2, sPkmnJumpVenusaurTilemap, 0, 0, 1);
+ LoadPalette(sPkmnJumpResultsPal, 0x10, 0x20);
+ DecompressAndCopyTileDataToVram(1, sPkmnJumpResultsGfx, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(1, sPkmnJumpResultsTilemap, 0, 0, 1);
+ LoadPalette(sPkmnJumpPal3, 0x20, 0x20);
+ SetBgTilemapBuffer(0, gUnknown_203F3D8->tilemapBuffer);
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20);
+ sub_814A84C();
+ sub_814AA24(0);
+ sub_814FDA0(0, 1, 0xE0);
+ LoadUserWindowBorderGfx(0, 0x00A, 0xD0);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!FreeTempTileDataBuffersIfPossible())
+ {
+ sub_814A8B8();
+ sub_814B294(gUnknown_203F3D8);
+ sub_814B348(gUnknown_203F3D8, 6);
+ ShowBg(3);
+ ShowBg(0);
+ ShowBg(2);
+ HideBg(1);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_8149F64(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ sub_814AADC();
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_814AC30(FALSE);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_814AC94();
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 3:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_8149FD0(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ sub_814AADC();
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_814AC30(TRUE);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_814AC94();
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 3:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A03C(void)
+{
+ int i, numPlayers;
+
+ numPlayers = sub_81499A4();
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ for (i = 0; i < numPlayers; i++)
+ ClearWindowTilemap(gUnknown_203F3D8->unk1C[i]);
+
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ for (i = 0; i < numPlayers; i++)
+ RemoveWindow(gUnknown_203F3D8->unk1C[i]);
+
+ gUnknown_203F3D8->unk0 = 1;
+ }
+ break;
+ }
+}
+
+static void sub_814A0C8(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ gUnknown_203F3D8->unk12 = sub_814A754(1, 8, 20, 2);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_WantToPlayAgain2, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ sub_814A7D0(23, 7, 0);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A174(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ gUnknown_203F3D8->unk12 = sub_814A754(2, 7, 26, 4);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SavingDontTurnOffPower, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A218(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ sub_814A6CC();
+ DestroyYesNoMenu();
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!sub_814A6FC() && !IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A264(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ gUnknown_203F3D8->unk12 = sub_814A754(2, 8, 22, 4);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SomeoneDroppedOut2, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A308(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ gUnknown_203F3D8->unk12 = sub_814A754(7, 10, 16, 2);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_CommunicationStandby4, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A3AC(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ sub_814B43C(gUnknown_203F3D8);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!sub_814B460())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+void sub_814A3E4(void)
+{
+ gUnknown_203F3D8->unkA = 0;
+ gUnknown_203F3D8->unkB = 0;
+ gUnknown_203F3D8->unkC = 6;
+ sub_814A95C(gUnknown_203F3D8->unkC);
+}
+
+bool32 sub_814A408(void)
+{
+ switch (gUnknown_203F3D8->unkA)
+ {
+ case 0:
+ gUnknown_203F3D8->unkB++;
+ if (gUnknown_203F3D8->unkB > 10)
+ {
+ gUnknown_203F3D8->unkB = 0;
+ gUnknown_203F3D8->unkC++;
+ if (gUnknown_203F3D8->unkC >= 10)
+ {
+ gUnknown_203F3D8->unkC = 0;
+ gUnknown_203F3D8->unkA++;
+ }
+ }
+ sub_814A95C(gUnknown_203F3D8->unkC);
+ if (gUnknown_203F3D8->unkC != 7)
+ break;
+ case 1:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static const u8 sPluralTxt[] = _("IES");
+
+void sub_814A468(u16 itemId, u16 quantity)
+{
+ CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]);
+ ConvertIntToDecimalStringN(gUnknown_203F3D8->txtBuff[1], quantity, STR_CONV_MODE_LEFT_ALIGN, 1);
+ if (itemId >= FIRST_BERRY_INDEX && itemId < LAST_BERRY_INDEX)
+ {
+ if (quantity > 1)
+ {
+ int endi = StringLength(gUnknown_203F3D8->txtBuff[0]);
+ if (endi != 0)
+ {
+ endi--;
+ endi[gUnknown_203F3D8->txtBuff[0]] = EOS;
+ StringAppend(gUnknown_203F3D8->txtBuff[0], sPluralTxt);
+ }
+ }
+ }
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_203F3D8->txtBuff[1]);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_AwesomeWonF701F700);
+ gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk14 = MUS_FANFA1;
+ gUnknown_203F3D8->unkD = 0;
+}
+
+void sub_814A53C(u16 itemId)
+{
+ CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_FilledStorageSpace2);
+ gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk14 = 0;
+ gUnknown_203F3D8->unkD = 0;
+}
+
+void sub_814A5B4(u16 itemId)
+{
+ CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_CantHoldMore);
+ gUnknown_203F3D8->unk12 = sub_814A754(4, 9, 22, 2);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk14 = 0;
+ gUnknown_203F3D8->unkD = 0;
+}
+
+bool32 sub_814A62C(void)
+{
+ switch (gUnknown_203F3D8->unkD)
+ {
+ case 0:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unkD++;
+ }
+ break;
+ case 1:
+ if (IsDma3ManagerBusyWithBgCopy())
+ break;
+ if (gUnknown_203F3D8->unk14 == 0)
+ {
+ gUnknown_203F3D8->unkD += 2;
+ return FALSE;
+ }
+ PlayFanfare(gUnknown_203F3D8->unk14);
+ gUnknown_203F3D8->unkD++;
+ case 2:
+ if (!IsFanfareTaskInactive())
+ break;
+ gUnknown_203F3D8->unkD++;
+ case 3:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void sub_814A6CC(void)
+{
+ if (gUnknown_203F3D8->unk12 != 0xFF)
+ {
+ rbox_fill_rectangle(gUnknown_203F3D8->unk12);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 1);
+ gUnknown_203F3D8->unkD = 0;
+ }
+}
+
+// Can't match this without the ugly GOTO, oh well.
+bool32 sub_814A6FC(void)
+{
+ if (gUnknown_203F3D8->unk12 == 0xFF)
+ {
+ RET_FALSE:
+ return FALSE;
+ }
+
+ if (gUnknown_203F3D8->unkD == 0)
+ {
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ RemoveWindow(gUnknown_203F3D8->unk12);
+ gUnknown_203F3D8->unk12 = 0xFF;
+ gUnknown_203F3D8->unkD++;
+ goto RET_FALSE;
+ }
+ }
+ else if (gUnknown_203F3D8->unkD == 1)
+ goto RET_FALSE;
+
+ return TRUE;
+}
+
+s8 sub_814A744(void)
+{
+ return Menu_ProcessInputNoWrapClearOnChoose();
+}
+
+static u32 sub_814A754(u32 left, u32 top, u32 width, u32 height)
+{
+ u32 windowId;
+ struct WindowTemplate window;
+
+ window.bg = 0;
+ window.tilemapLeft = left;
+ window.tilemapTop = top;
+ window.width = width;
+ window.height = height;
+ window.paletteNum = 0xF;
+ window.baseBlock = 0x43;
+
+ windowId = AddWindow(&window);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ return windowId;
+}
+
+static void sub_814A7D0(u16 left, u16 top, u8 cursorPos)
+{
+ struct WindowTemplate window;
+ u8 a = cursorPos;
+
+ window.bg = 0;
+ window.tilemapLeft = left;
+ window.tilemapTop = top;
+ window.width = 6;
+ window.height = 4;
+ window.paletteNum = 2;
+ window.baseBlock = 0x2B;
+
+ CreateYesNoMenu(&window, 2, 0, 2, 0x00a, 0xD, a);
+}
+
+static void sub_814A84C(void)
+{
+ u8 color[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
+
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ FillWindowPixelBuffer(0, PIXEL_FILL(0));
+ FillWindowPixelBuffer(1, PIXEL_FILL(0));
+ AddTextPrinterParameterized3(0, 0, 0, 2, color, 0, gText_SpacePoints2);
+ AddTextPrinterParameterized3(1, 0, 0, 2, color, 0, gText_SpaceTimes3);
+}
+
+static const u8 gUnknown_846D953[] = {2, 2, 0, 0, 1, 1, 1, 0, 0, 2, 0, 0, 0};
+
+static const struct CompressedSpriteSheet gUnknown_846D960 = {gUnknown_8479688, 0, 0x320};
+static const struct SpritePalette gUnknown_846D968 = {gUnknown_8479668, 0x320};
+
+static const u16 gUnknown_846D970[] = {0x06, 0x08, 0x10, 0x08};
+static const u16 gUnknown_846D978[] = {0x06, 0x08, 0x0b, 0x06, 0x10, 0x08};
+static const u16 gUnknown_846D984[] = {0x02, 0x06, 0x06, 0x08, 0x10, 0x08, 0x14, 0x06};
+static const u16 gUnknown_846D994[] = {0x02, 0x06, 0x06, 0x08, 0x0b, 0x06, 0x10, 0x08, 0x14, 0x06};
+
+static const u16 *const gUnknown_846D9A8[] =
+{
+ gUnknown_846D970,
+ gUnknown_846D978,
+ gUnknown_846D984,
+ gUnknown_846D994,
+};
+
+static const s16 gUnknown_846D9B8[] = {0x0058, 0x0098};
+static const s16 gUnknown_846D9BC[] = {0x0058, 0x0078, 0x0098};
+static const s16 gUnknown_846D9C2[] = {0x0038, 0x0058, 0x0098, 0x00b8};
+static const s16 gUnknown_846D9CA[] = {0x0038, 0x0058, 0x0078, 0x0098, 0x00b8};
+
+static const s16 *const gUnknown_846D9D4[] =
+{
+ gUnknown_846D9B8,
+ gUnknown_846D9BC,
+ gUnknown_846D9C2,
+ gUnknown_846D9CA,
+};
+
+static void sub_814A8B8(void)
+{
+ int i, y, playersCount = sub_81499A4();
+ const s16 *xCoords = gUnknown_846D9D4[playersCount - 2];
+
+ for (i = 0; i < playersCount; i++)
+ {
+ struct PokemonJump1_MonInfo *info = sub_81499C0(i);
+
+ y = gMonFrontPicCoords[info->species].y_offset;
+ sub_814ADCC(gUnknown_203F3D8, info, *xCoords, y + 112, i);
+ sub_814B240(gUnknown_203F3D8, *xCoords, 112, i);
+ xCoords++;
+ }
+}
+
+void sub_814A940(u32 id, s16 y)
+{
+ gUnknown_203F3D8->unk81A8[id]->pos2.y = y;
+}
+
+void sub_814A95C(int id)
+{
+ sub_814B348(gUnknown_203F3D8, id);
+ ChangeBgY(2, (gUnknown_846D953[id] * 5) << 0xD, 0);
+}
+
+int sub_814A98C(u8 flags)
+{
+ int i, count;
+
+ for (i = 0, count = 0; i < 5; i++)
+ {
+ if (flags & 1)
+ {
+ sub_814AF0C(gUnknown_203F3D8, i);
+ count++;
+ }
+ flags >>= 1;
+ }
+
+ sub_814ACCC(count - 2);
+ return count;
+}
+
+static void sub_814A9C8(void)
+{
+ struct DigitObjUtilTemplate unkStruct;
+ struct DigitObjUtilTemplate *ptr = &unkStruct; // This temp variable is needed to match, don't ask me why.
+
+ ptr->shape = SPRITE_SHAPE(8x8);
+ ptr->size = SPRITE_SIZE(8x8);
+ ptr->strConvMode = 0;
+ ptr->priority = 1;
+ ptr->oamCount = 5;
+ ptr->xDelta = 8;
+ ptr->x = 108;
+ ptr->y = 6;
+ ptr->spriteSheet = (void*) &gUnknown_846D960;
+ ptr->spritePal = &gUnknown_846D968;
+
+ DigitObjUtil_Init(2);
+ DigitObjUtil_CreatePrinter(0, 0, ptr);
+
+ unkStruct.oamCount = 4;
+ unkStruct.x = 30;
+ unkStruct.y = 6;
+ DigitObjUtil_CreatePrinter(1, 0, &unkStruct);
+}
+
+void sub_814AA24(int arg0)
+{
+ DigitObjUtil_PrintNumOn(0, arg0);
+}
+
+void sub_814AA34(u16 arg0)
+{
+ DigitObjUtil_PrintNumOn(1, arg0);
+}
+
+void sub_814AA48(u8 multiplayerId)
+{
+ sub_814AFE8(gUnknown_203F3D8, multiplayerId);
+}
+
+void sub_814AA60(u8 multiplayerId)
+{
+ sub_814B080(gUnknown_203F3D8, multiplayerId);
+}
+
+int sub_814AA78(int multiplayerId)
+{
+ return sub_814B010(gUnknown_203F3D8, multiplayerId);
+}
+
+void sub_814AA8C(void)
+{
+ sub_814B0A8(gUnknown_203F3D8);
+}
+
+void sub_814AAA0(void)
+{
+ sub_814B134(gUnknown_203F3D8);
+}
+
+void sub_814AAB4(int multiplayerId)
+{
+ sub_814B168(gUnknown_203F3D8, multiplayerId);
+}
+
+int sub_814AAC8(void)
+{
+ return sub_814B190(gUnknown_203F3D8);
+}
+
+static void sub_814AADC(void)
+{
+ struct WindowTemplate window;
+ int i, playersCount = sub_81499A4();
+ const u16 *winCoords = gUnknown_846D9A8[playersCount - 2];
+
+ window.bg = 0;
+ window.width = 8;
+ window.height = 2;
+ window.paletteNum = 2;
+ window.baseBlock = 0x2B;
+
+ for (i = 0; i < playersCount; i++)
+ {
+ window.tilemapLeft = winCoords[0];
+ window.tilemapTop = winCoords[1];
+ gUnknown_203F3D8->unk1C[i] = AddWindow(&window);
+ ClearWindowTilemap(gUnknown_203F3D8->unk1C[i]);
+ window.baseBlock += 0x10;
+ winCoords += 2;
+ }
+
+ CopyBgTilemapBufferToVram(0);
+}
+
+static void sub_814AB98(int multiplayerId, u8 clr1, u8 clr2, u8 clr3)
+{
+ u32 x;
+ u8 colors[3] = {clr1, clr2, clr3};
+
+ FillWindowPixelBuffer(gUnknown_203F3D8->unk1C[multiplayerId], PIXEL_FILL(0));
+ x = 64 - GetStringWidth(0, sub_81499E0(multiplayerId), -1);
+ x /= 2;
+ AddTextPrinterParameterized3(gUnknown_203F3D8->unk1C[multiplayerId], 0, x, 2, colors, -1, sub_81499E0(multiplayerId));
+ CopyWindowToVram(gUnknown_203F3D8->unk1C[multiplayerId], 2);
+}
+
+static void sub_814AC30(bool32 arg0)
+{
+ int i, var, playersCount = sub_81499A4();
+
+ if (!arg0)
+ {
+ for (i = 0; i < playersCount; i++)
+ sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ }
+ else
+ {
+ var = sub_81499B4();
+ for (i = 0; i < playersCount; i++)
+ {
+ if (var != i)
+ sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ else
+ sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED);
+ }
+ }
+}
+
+static void sub_814AC94(void)
+{
+ int i, playersCount = sub_81499A4();
+
+ for (i = 0; i < playersCount; i++)
+ PutWindowTilemap(gUnknown_203F3D8->unk1C[i]);
+ CopyBgTilemapBufferToVram(0);
+}
+
+static void sub_814ACCC(u8 arg0)
+{
+ gUnknown_203F3D8->unk18 = 0;
+ ChangeBgX(1, (arg0 / 2) << 16, 0);
+ ChangeBgY(1, (((arg0 % 2) << 8) - 40) << 8, 0);
+ ShowBg(1);
+ CreateTask(sub_814AD50, 4);
+}
+
+static bool32 sub_814AD18(void)
+{
+ if (gUnknown_203F3D8->unk18 >= 32)
+ {
+ return FALSE;
+ }
+ else
+ {
+ ChangeBgY(1, 128, 1);
+ if (++gUnknown_203F3D8->unk18 >= 32)
+ HideBg(1);
+ return TRUE;
+ }
+}
+
+static void sub_814AD50(u8 taskId)
+{
+ if (!sub_814AD18())
+ DestroyTask(taskId);
+}
diff --git a/src/pokemon_jump_5.c b/src/pokemon_jump_5.c
new file mode 100644
index 000000000..f8abb2a1f
--- /dev/null
+++ b/src/pokemon_jump_5.c
@@ -0,0 +1,637 @@
+#include "global.h"
+#include "gflib.h"
+#include "decompress.h"
+#include "minigame_countdown.h"
+#include "pokemon_jump.h"
+#include "data.h"
+#include "trig.h"
+#include "constants/songs.h"
+
+static void sub_814AF74(struct Sprite *sprite);
+static void sub_814B038(struct Sprite *sprite);
+static void sub_814B100(struct Sprite *sprite);
+static void sub_814B1CC(struct Sprite *sprite);
+
+static const u16 sPkmnJumpPal1[] = INCBIN_U16("graphics/link_games/pkmnjump_pal1.gbapal");
+static const u16 sPkmnJumpPal2[] = INCBIN_U16("graphics/link_games/pkmnjump_pal2.gbapal");
+
+static const u32 sPkmnJumpRopeGfx1[] = INCBIN_U32("graphics/link_games/pkmnjump_rope1.4bpp.lz");
+static const u32 sPkmnJumpRopeGfx2[] = INCBIN_U32("graphics/link_games/pkmnjump_rope2.4bpp.lz");
+static const u32 sPkmnJumpRopeGfx3[] = INCBIN_U32("graphics/link_games/pkmnjump_rope3.4bpp.lz");
+static const u32 sPkmnJumpRopeGfx4[] = INCBIN_U32("graphics/link_games/pkmnjump_rope4.4bpp.lz");
+
+static const u32 sPkmnJumpStarGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_star.4bpp.lz");
+
+static const struct CompressedSpriteSheet gUnknown_846E0B0[] =
+{
+ {sPkmnJumpRopeGfx1, 0x600, 5},
+ {sPkmnJumpRopeGfx2, 0x0c00, 6},
+ {sPkmnJumpRopeGfx3, 0x0600, 7},
+ {sPkmnJumpRopeGfx4, 0x0600, 8},
+ {sPkmnJumpStarGfx, 0x0200, 10},
+};
+
+static const struct SpritePalette gUnknown_846E0D8[] =
+{
+ {sPkmnJumpPal1, 5},
+ {sPkmnJumpPal2, 6},
+};
+
+// Forward declarations.
+static const struct OamData sOamData_846E170;
+static const struct SpriteTemplate gUnknown_846E220;
+static const struct SpriteTemplate gUnknown_846E238;
+static const struct SpriteTemplate gUnknown_846E250;
+static const struct SpriteTemplate gUnknown_846E268;
+
+static const struct SpriteTemplate gUnknown_846E0E8 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &sOamData_846E170,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const s16 gUnknown_846E100[][10] =
+{
+ {0x60, 0x60, 0x60, 0x72, 0x78, 0x78, 0x78, 0x72, 0x60, 0x60},
+ {0x46, 0x50, 0x60, 0x72, 0x78, 0x80, 0x78, 0x72, 0x60, 0x50},
+ {0x32, 0x48, 0x60, 0x72, 0x80, 0x88, 0x80, 0x72, 0x60, 0x48},
+ {0x2a, 0x48, 0x60, 0x72, 0x80, 0x88, 0x80, 0x72, 0x60, 0x48},
+};
+
+static const s16 gUnknown_846E150[] = {0x10, 0x28, 0x48, 0x68, 0x88, 0xa8, 0xc8, 0xe0};
+
+static const struct SpriteTemplate *const gUnknown_846E160[] =
+{
+ &gUnknown_846E220,
+ &gUnknown_846E238,
+ &gUnknown_846E250,
+ &gUnknown_846E268,
+};
+
+static const struct OamData sOamData_846E170 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(64x64),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(64x64),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData sOamData_846E178 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(16x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(16x32),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData sOamData_846E180 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(32x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(32x32),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData sOamData_846E188 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(32x16),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(32x16),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_846E190[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E198[] =
+{
+ ANIMCMD_FRAME(8, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1A0[] =
+{
+ ANIMCMD_FRAME(16, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1A8[] =
+{
+ ANIMCMD_FRAME(24, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1B0[] =
+{
+ ANIMCMD_FRAME(32, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1B8[] =
+{
+ ANIMCMD_FRAME(40, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1C0[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1C8[] =
+{
+ ANIMCMD_FRAME(16, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1D0[] =
+{
+ ANIMCMD_FRAME(32, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1D8[] =
+{
+ ANIMCMD_FRAME(48, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1E0[] =
+{
+ ANIMCMD_FRAME(64, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1E8[] =
+{
+ ANIMCMD_FRAME(80, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_846E1F0[] =
+{
+ sSpriteAnim_846E190,
+ sSpriteAnim_846E198,
+ sSpriteAnim_846E1A0,
+ sSpriteAnim_846E1A8,
+ sSpriteAnim_846E1B0,
+ sSpriteAnim_846E1B8
+};
+
+static const union AnimCmd *const sSpriteAnimTable_846E208[] =
+{
+ sSpriteAnim_846E1C0,
+ sSpriteAnim_846E1C8,
+ sSpriteAnim_846E1D0,
+ sSpriteAnim_846E1D8,
+ sSpriteAnim_846E1E0,
+ sSpriteAnim_846E1E8
+};
+
+static const struct SpriteTemplate gUnknown_846E220 =
+{
+ .tileTag = 5,
+ .paletteTag = 5,
+ .oam = &sOamData_846E178,
+ .anims = sSpriteAnimTable_846E1F0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct SpriteTemplate gUnknown_846E238 =
+{
+ .tileTag = 6,
+ .paletteTag = 5,
+ .oam = &sOamData_846E180,
+ .anims = sSpriteAnimTable_846E208,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct SpriteTemplate gUnknown_846E250 =
+{
+ .tileTag = 7,
+ .paletteTag = 5,
+ .oam = &sOamData_846E188,
+ .anims = sSpriteAnimTable_846E1F0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct SpriteTemplate gUnknown_846E268 =
+{
+ .tileTag = 8,
+ .paletteTag = 5,
+ .oam = &sOamData_846E188,
+ .anims = sSpriteAnimTable_846E1F0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct OamData sOamData_846E280 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(16x16),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(16x16),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_846E288[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E290[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(8, 4),
+ ANIMCMD_FRAME(12, 4),
+ ANIMCMD_LOOP(1),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_846E2AC[] =
+{
+ sSpriteAnim_846E288,
+ sSpriteAnim_846E290
+};
+
+static const struct SpriteTemplate gUnknown_846E2B4 =
+{
+ .tileTag = 10,
+ .paletteTag = 5,
+ .oam = &sOamData_846E280,
+ .anims = sSpriteAnimTable_846E2AC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+void sub_814AD6C(struct PokemonJump2 *arg0)
+{
+ int i;
+
+ for (i = 0; i < NELEMS(gUnknown_846E0B0); i++)
+ LoadCompressedSpriteSheet(&gUnknown_846E0B0[i]);
+
+ for (i = 0; i < NELEMS(gUnknown_846E0D8); i++)
+ LoadSpritePalette(&gUnknown_846E0D8[i]);
+
+ arg0->unkE = IndexOfSpritePaletteTag(5);
+ arg0->unkF = IndexOfSpritePaletteTag(6);
+}
+
+static void sub_814ADB4(struct Sprite *sprite)
+{
+ int i;
+ for (i = 0; i < 8; i++)
+ sprite->data[i] = 0;
+}
+
+void sub_814ADCC(struct PokemonJump2 *arg0, struct PokemonJump1_MonInfo *jumpMon, s16 x, s16 y, u8 multiplayerId)
+{
+ struct SpriteTemplate spriteTemplate;
+ struct SpriteSheet spriteSheet;
+ struct CompressedSpritePalette spritePalette;
+ u8 *buffer;
+ u8 *unusedBuffer;
+ u8 subpriority;
+ u8 spriteId;
+
+ spriteTemplate = gUnknown_846E0E8;
+ buffer = Alloc(0x2000);
+ unusedBuffer = Alloc(0x800);
+ if (multiplayerId == sub_81499B4())
+ subpriority = 3;
+ else
+ subpriority = multiplayerId + 4;
+
+ if (buffer && unusedBuffer)
+ {
+ HandleLoadSpecialPokePic(
+ &gMonFrontPicTable[jumpMon->species],
+ buffer,
+ jumpMon->species,
+ jumpMon->personality);
+
+ spriteSheet.data = buffer;
+ spriteSheet.tag = multiplayerId;
+ spriteSheet.size = 0x800;
+ LoadSpriteSheet(&spriteSheet);
+
+ spritePalette.data = GetMonSpritePalFromSpeciesAndPersonality(jumpMon->species, jumpMon->otId, jumpMon->personality);
+ spritePalette.tag = multiplayerId;
+ LoadCompressedSpritePalette(&spritePalette);
+
+ Free(buffer);
+ Free(unusedBuffer);
+
+ spriteTemplate.tileTag += multiplayerId;
+ spriteTemplate.paletteTag += multiplayerId;
+ spriteId = CreateSprite(&spriteTemplate, x, y, subpriority);
+ if (spriteId != MAX_SPRITES)
+ {
+ arg0->unk81A8[multiplayerId] = &gSprites[spriteId];
+ arg0->unk81FC[multiplayerId] = subpriority;
+ return;
+ }
+ }
+
+ arg0->unk81A8[multiplayerId] = NULL;
+}
+
+void sub_814AF0C(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ sub_814ADB4(arg0->unk81BC[multiplayerId]);
+ arg0->unk81BC[multiplayerId]->data[7] = arg0->unk81A8[multiplayerId] - gSprites;
+ arg0->unk81BC[multiplayerId]->invisible = FALSE;
+ arg0->unk81BC[multiplayerId]->pos1.y = 96;
+ arg0->unk81BC[multiplayerId]->callback = sub_814AF74;
+ StartSpriteAnim(arg0->unk81BC[multiplayerId], 1);
+}
+
+static void sub_814AF74(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (sprite->animEnded)
+ {
+ sprite->invisible = TRUE;
+ sprite->callback = SpriteCallbackDummy;
+ }
+ break;
+ case 1:
+ sprite->pos1.y--;
+ sprite->data[1]++;
+ if (sprite->pos1.y <= 72)
+ {
+ sprite->pos1.y = 72;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ if (++sprite->data[1] >= 48)
+ {
+ sprite->invisible = TRUE;
+ sprite->callback = SpriteCallbackDummy;
+ }
+ break;
+ }
+}
+
+void sub_814AFE8(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ arg0->unk81A8[multiplayerId]->callback = sub_814B038;
+ arg0->unk81A8[multiplayerId]->pos2.y = 0;
+ sub_814ADB4(arg0->unk81A8[multiplayerId]);
+}
+
+bool32 sub_814B010(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ return arg0->unk81A8[multiplayerId]->callback == sub_814B038;
+}
+
+static void sub_814B038(struct Sprite *sprite)
+{
+ if (++sprite->data[1] > 1)
+ {
+ if (++sprite->data[2] & 1)
+ sprite->pos2.y = 2;
+ else
+ sprite->pos2.y = -2;
+
+ sprite->data[1] = 0;
+ }
+
+ if (sprite->data[2] > 12)
+ {
+ sprite->pos2.y = 0;
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+void sub_814B080(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ sub_814ADB4(arg0->unk81A8[multiplayerId]);
+ arg0->unk81A8[multiplayerId]->callback = sub_814B100;
+}
+
+void sub_814B0A8(struct PokemonJump2 *arg0)
+{
+ int i;
+ u16 numPlayers = sub_81499A4();
+ for (i = 0; i < numPlayers; i++)
+ {
+ if (arg0->unk81A8[i]->callback == sub_814B100)
+ {
+ arg0->unk81A8[i]->invisible = FALSE;
+ arg0->unk81A8[i]->callback = SpriteCallbackDummy;
+ arg0->unk81A8[i]->subpriority = 10;
+ }
+ }
+}
+
+static void sub_814B100(struct Sprite *sprite)
+{
+ if (++sprite->data[0] > 3)
+ {
+ sprite->data[0] = 0;
+ sprite->invisible ^= 1;
+ }
+}
+
+void sub_814B134(struct PokemonJump2 *arg0)
+{
+ int i;
+ u16 numPlayers = sub_81499A4();
+ for (i = 0; i < numPlayers; i++)
+ arg0->unk81A8[i]->subpriority = arg0->unk81FC[i];
+}
+
+void sub_814B168(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ sub_814ADB4(arg0->unk81A8[multiplayerId]);
+ arg0->unk81A8[multiplayerId]->callback = sub_814B1CC;
+}
+
+bool32 sub_814B190(struct PokemonJump2 *arg0)
+{
+ int i;
+ u16 numPlayers = sub_81499A4();
+ for (i = 0; i < numPlayers; i++)
+ {
+ if (arg0->unk81A8[i]->callback == sub_814B1CC)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void sub_814B1CC(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ PlaySE(SE_JITE_PYOKO);
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ // fall through
+ case 1:
+ sprite->data[1] += 4;
+ if (sprite->data[1] > 0x7F)
+ sprite->data[1] = 0;
+
+ sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 3);
+ if (sprite->data[1] == 0)
+ {
+ if (++sprite->data[2] < 2)
+ sprite->data[0] = 0;
+ else
+ sprite->callback = SpriteCallbackDummy;
+ }
+ break;
+ }
+}
+
+void sub_814B240(struct PokemonJump2 *arg0, s16 x, s16 y, u8 multiplayerId)
+{
+ u8 spriteId = CreateSprite(&gUnknown_846E2B4, x, y, 1);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].invisible = TRUE;
+ arg0->unk81BC[multiplayerId] = &gSprites[spriteId];
+ }
+}
+
+void sub_814B294(struct PokemonJump2 *arg0)
+{
+ int i;
+ int count;
+ u8 spriteId;
+
+ count = 0;
+ for (i = 0; i < 4; i++)
+ {
+ spriteId = CreateSprite(gUnknown_846E160[i], gUnknown_846E150[count], gUnknown_846E100[i][0], 2);
+ arg0->unk81D0[count] = &gSprites[spriteId];
+ count++;
+ }
+
+ for (i = 3; i >= 0; i--)
+ {
+ spriteId = CreateSprite(gUnknown_846E160[i], gUnknown_846E150[count], gUnknown_846E100[i][0], 2);
+ arg0->unk81D0[count] = &gSprites[spriteId];
+ arg0->unk81D0[count]->hFlip = 1;
+ count++;
+ }
+}
+
+void sub_814B348(struct PokemonJump2 *arg0, int arg1)
+{
+ int i, count, palNum;
+ int priority;
+
+ if (arg1 > 5)
+ {
+ arg1 = 10 - arg1;
+ priority = 3;
+ palNum = arg0->unkF;
+ }
+ else
+ {
+ priority = 2;
+ palNum = arg0->unkE;
+ }
+
+ count = 0;
+ for (i = 0; i < 4; i++)
+ {
+ arg0->unk81D0[count]->pos1.y = gUnknown_846E100[i][arg1];
+ arg0->unk81D0[count]->oam.priority = priority;
+ arg0->unk81D0[count]->oam.paletteNum = palNum;
+ StartSpriteAnim(arg0->unk81D0[count], arg1);
+ count++;
+ }
+
+ for (i = 3; i >= 0; i--)
+ {
+ arg0->unk81D0[count]->pos1.y = gUnknown_846E100[i][arg1];
+ arg0->unk81D0[count]->oam.priority = priority;
+ arg0->unk81D0[count]->oam.paletteNum = palNum;
+ StartSpriteAnim(arg0->unk81D0[count], arg1);
+ count++;
+ }
+}
+
+void sub_814B43C(struct PokemonJump2 *arg0)
+{
+ StartMinigameCountdown(9, 7, 120, 80, 0);
+ sub_814B134(arg0);
+}
+
+bool32 sub_814B460(void)
+{
+ return IsMinigameCountdownRunning();
+}
diff --git a/src/pokemon_jump_6.c b/src/pokemon_jump_6.c
new file mode 100644
index 000000000..1e213ad75
--- /dev/null
+++ b/src/pokemon_jump_6.c
@@ -0,0 +1,140 @@
+#include "global.h"
+#include "gflib.h"
+#include "menu.h"
+#include "script.h"
+#include "strings.h"
+#include "task.h"
+#include "text_window.h"
+
+static void Task_ShowPokemonJumpRecords(u8 taskId);
+static void TruncateToFirstWordOnly(u8 *str);
+static void sub_814B5C4(u16 windowId);
+
+static struct PokemonJumpResults *sub_814B46C(void)
+{
+ return &gSaveBlock2Ptr->pokeJump;
+}
+
+void ResetPokeJumpResults(void)
+{
+ struct PokemonJumpResults *pokeJump = sub_814B46C();
+ pokeJump->jumpsInRow = 0;
+ pokeJump->bestJumpScore = 0;
+ pokeJump->excellentsInRow = 0;
+ pokeJump->field6 = 0;
+ pokeJump->field8 = 0;
+ pokeJump->field2 = 0;
+}
+
+bool32 sub_814B494(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow)
+{
+ struct PokemonJumpResults *pokeJump = sub_814B46C();
+ bool32 ret = FALSE;
+
+ if (pokeJump->bestJumpScore < jumpScore && jumpScore <= 99990)
+ pokeJump->bestJumpScore = jumpScore, ret = TRUE;
+ if (pokeJump->jumpsInRow < jumpsInRow && jumpsInRow <= 9999)
+ pokeJump->jumpsInRow = jumpsInRow, ret = TRUE;
+ if (pokeJump->excellentsInRow < excellentsInRow && excellentsInRow <= 9999)
+ pokeJump->excellentsInRow = excellentsInRow, ret = TRUE;
+
+ return ret;
+}
+
+void sub_814B4E8(void)
+{
+ struct PokemonJumpResults *pokeJump = sub_814B46C();
+ if (pokeJump->field6 < 9999)
+ pokeJump->field6++;
+}
+
+void ShowPokemonJumpRecords(void)
+{
+ u8 taskId = CreateTask(Task_ShowPokemonJumpRecords, 0);
+ Task_ShowPokemonJumpRecords(taskId);
+}
+
+static const struct WindowTemplate gUnknown_846E2CC =
+{
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 28,
+ .height = 9,
+ .paletteNum = 15,
+ .baseBlock = 0x1,
+};
+
+static const u8 *const gUnknown_846E2D4[] = {gText_JumpsInARow, gText_BestScore2, gText_ExcellentsInARow};
+
+static void Task_ShowPokemonJumpRecords(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ data[1] = AddWindow(&gUnknown_846E2CC);
+ sub_814B5C4(data[1]);
+ CopyWindowToVram(data[1], 3);
+ data[0]++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ data[0]++;
+ break;
+ case 2:
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ rbox_fill_rectangle(data[1]);
+ CopyWindowToVram(data[1], 1);
+ data[0]++;
+ }
+ break;
+ case 3:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ RemoveWindow(data[1]);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ break;
+ }
+}
+
+static void sub_814B5C4(u16 windowId)
+{
+ int i, x;
+ int results[3];
+ struct PokemonJumpResults *pokeJump = sub_814B46C();
+ u8 strbuf[8];
+ results[0] = pokeJump->jumpsInRow;
+ results[1] = pokeJump->bestJumpScore;
+ results[2] = pokeJump->excellentsInRow;
+
+ TextWindow_SetStdFrame0_WithPal(windowId, 0x21D, 0xD0);
+ DrawTextBorderOuter(windowId, 0x21D, 0xD);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ AddTextPrinterParameterized5(windowId, 2, gText_PkmnJumpRecords, 0, 0, TEXT_SPEED_FF, NULL, 1, 0);
+ for (i = 0; i < NELEMS(gUnknown_846E2D4); i++)
+ {
+ AddTextPrinterParameterized5(windowId, 2, gUnknown_846E2D4[i], 0, 20 + (i * 14), TEXT_SPEED_FF, NULL, 1, 0);
+ ConvertIntToDecimalStringN(strbuf, results[i], STR_CONV_MODE_LEFT_ALIGN, 5);
+ TruncateToFirstWordOnly(strbuf);
+ x = 0xDE - GetStringWidth(2, strbuf, 0);
+ AddTextPrinterParameterized5(windowId, 2, strbuf, x, 20 + (i * 14), TEXT_SPEED_FF, NULL, 0, 0);
+ }
+ PutWindowTilemap(windowId);
+}
+
+static void TruncateToFirstWordOnly(u8 *str)
+{
+ for (;*str != EOS; str++)
+ {
+ if (*str == CHAR_SPACE)
+ {
+ *str = EOS;
+ break;
+ }
+ }
+}
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index 6eff367c5..66bdb9194 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -3,7 +3,6 @@
#include "event_data.h"
#include "pokedex.h"
#include "pokemon.h"
-#include "pokemon_size_record.h"
#include "string_util.h"
#include "text.h"
#include "strings.h"
diff --git a/src/quest_log.c b/src/quest_log.c
index 2ae5e9cfe..6e70ceea8 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -18,10 +18,8 @@
#include "field_fadetransition.h"
#include "field_weather.h"
#include "event_object_movement.h"
-#include "event_object_80688E4.h"
#include "event_object_lock.h"
#include "field_player_avatar.h"
-#include "field_control_avatar.h"
#include "battle.h"
#include "item.h"
#include "region_map.h"
@@ -115,7 +113,7 @@ static EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
static EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
static EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
static EWRAM_DATA u16 sQuestLogIdx = 0;
-static EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}};
+static EWRAM_DATA u8 sMovementScripts[64][2] = {{0}};
static EWRAM_DATA u16 gUnknown_203B01A = 0;
static EWRAM_DATA u16 gUnknown_203B01C = 0;
static EWRAM_DATA u16 sFlagOrVarPlayhead = 0;
@@ -1553,24 +1551,24 @@ void sub_811246C(struct Sprite *sprite)
struct ObjectEvent *objectEvent = &gObjectEvents[sprite->data[0]];
if (objectEvent->localId == OBJ_EVENT_ID_PLAYER)
{
- if (gUnknown_203AF9A[0][0] != OBJ_EVENT_ID_PLAYER)
+ if (sMovementScripts[0][0] != 0xFF)
{
- ObjectEventSetHeldMovement(objectEvent, gUnknown_203AF9A[0][0]);
- gUnknown_203AF9A[0][0] = OBJ_EVENT_ID_PLAYER;
+ ObjectEventSetHeldMovement(objectEvent, sMovementScripts[0][0]);
+ sMovementScripts[0][0] = 0xFF;
}
- if (gUnknown_203AF9A[0][1] != OBJ_EVENT_ID_PLAYER)
+ if (sMovementScripts[0][1] != OBJ_EVENT_ID_PLAYER)
{
sub_8150454();
- gUnknown_203AF9A[0][1] = OBJ_EVENT_ID_PLAYER;
+ sMovementScripts[0][1] = OBJ_EVENT_ID_PLAYER;
}
sub_8063E28(objectEvent, sprite);
}
else
{
- if (gUnknown_203AF9A[objectEvent->localId][0] != OBJ_EVENT_ID_PLAYER)
+ if (sMovementScripts[objectEvent->localId][0] != 0xFF)
{
- ObjectEventSetHeldMovement(objectEvent, gUnknown_203AF9A[objectEvent->localId][0]);
- gUnknown_203AF9A[objectEvent->localId][0] = OBJ_EVENT_ID_PLAYER;
+ ObjectEventSetHeldMovement(objectEvent, sMovementScripts[objectEvent->localId][0]);
+ sMovementScripts[objectEvent->localId][0] = 0xFF;
}
sub_8063E28(objectEvent, sprite);
}
@@ -1738,15 +1736,15 @@ static void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
sNumQuestLogs = a2 / 8;
for (i = 0; i < 0x40; i++)
{
- gUnknown_203AF9A[i][0] |= 0xFF;
- gUnknown_203AF9A[i][1] |= 0xFF;
+ sMovementScripts[i][0] |= 0xFF;
+ sMovementScripts[i][1] |= 0xFF;
}
sQuestLogIdx = 0;
gUnknown_203B01C = 0;
gUnknown_3005E90 = (struct UnkStruct_3005E90){};
gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4;
- gUnknown_203AF9A[0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
- gUnknown_203AF9A[0][1] = 0xFF;
+ sMovementScripts[0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
+ sMovementScripts[0][1] = 0xFF;
gUnknown_3005E88 = 1;
break;
case 2:
@@ -1809,10 +1807,10 @@ void sub_8112B3C(void)
switch (gUnknown_3005E94[sQuestLogIdx].unk_6)
{
case 0:
- gUnknown_203AF9A[gUnknown_3005E94[sQuestLogIdx].unk_0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
+ sMovementScripts[gUnknown_3005E94[sQuestLogIdx].unk_0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
break;
case 1:
- gUnknown_203AF9A[gUnknown_3005E94[sQuestLogIdx].unk_0][1] = gUnknown_3005E94[sQuestLogIdx].unk_3;
+ sMovementScripts[gUnknown_3005E94[sQuestLogIdx].unk_0][1] = gUnknown_3005E94[sQuestLogIdx].unk_3;
break;
case 2:
*(u32 *)&gUnknown_3005E90 = ((gUnknown_3005E94[sQuestLogIdx].unk_3 << 24) | (gUnknown_3005E94[sQuestLogIdx].unk_2 << 16) | (gUnknown_3005E94[sQuestLogIdx].unk_1 << 8) | (gUnknown_3005E94[sQuestLogIdx].unk_0 << 0));
diff --git a/src/quest_log_objects.c b/src/quest_log_objects.c
index aecc5fd68..5676c20fc 100644
--- a/src/quest_log_objects.c
+++ b/src/quest_log_objects.c
@@ -1,11 +1,8 @@
#include "global.h"
-#include "event_data.h"
#include "quest_log.h"
#include "fieldmap.h"
#include "field_player_avatar.h"
#include "metatile_behavior.h"
-#include "link.h"
-#include "link_rfu.h"
void SetQuestLogObjectEventsData(struct QuestLog * questLog)
{
@@ -39,8 +36,8 @@ void SetQuestLogObjectEventsData(struct QuestLog * questLog)
questLog->unk_008[i].localId = gObjectEvents[i].localId;
questLog->unk_008[i].mapNum = gObjectEvents[i].mapNum;
questLog->unk_008[i].mapGroup = gObjectEvents[i].mapGroup;
- questLog->unk_008[i].x = gObjectEvents[i].coords2.x;
- questLog->unk_008[i].y = gObjectEvents[i].coords2.y;
+ questLog->unk_008[i].x = gObjectEvents[i].currentCoords.x;
+ questLog->unk_008[i].y = gObjectEvents[i].currentCoords.y;
questLog->unk_008[i].trainerRange_berryTreeId = gObjectEvents[i].trainerRange_berryTreeId;
questLog->unk_008[i].mapobj_unk_1F = gObjectEvents[i].mapobj_unk_1F;
questLog->unk_008[i].mapobj_unk_21 = gObjectEvents[i].mapobj_unk_21;
@@ -83,8 +80,8 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTempl
gObjectEvents[i].localId = questLogObjectEvents[i].localId;
gObjectEvents[i].mapNum = questLogObjectEvents[i].mapNum;
gObjectEvents[i].mapGroup = questLogObjectEvents[i].mapGroup;
- gObjectEvents[i].coords2.x = questLogObjectEvents[i].x;
- gObjectEvents[i].coords2.y = questLogObjectEvents[i].y;
+ gObjectEvents[i].currentCoords.x = questLogObjectEvents[i].x;
+ gObjectEvents[i].currentCoords.y = questLogObjectEvents[i].y;
gObjectEvents[i].trainerRange_berryTreeId = questLogObjectEvents[i].trainerRange_berryTreeId;
gObjectEvents[i].mapobj_unk_1F = questLogObjectEvents[i].mapobj_unk_1F;
gObjectEvents[i].mapobj_unk_21 = questLogObjectEvents[i].mapobj_unk_21;
@@ -94,38 +91,38 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTempl
{
if (gObjectEvents[i].localId == templates[j].localId)
{
- gObjectEvents[i].coords1.x = templates[j].x + 7;
- gObjectEvents[i].coords1.y = templates[j].y + 7;
+ gObjectEvents[i].initialCoords.x = templates[j].x + 7;
+ gObjectEvents[i].initialCoords.y = templates[j].y + 7;
gObjectEvents[i].range.as_nybbles.x = templates[j].movementRangeX;
gObjectEvents[i].range.as_nybbles.y = templates[j].movementRangeY;
}
}
- gObjectEvents[i].mapobj_unk_1E = MapGridGetMetatileBehaviorAt(gObjectEvents[i].coords2.x, gObjectEvents[i].coords2.y);
- if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y)))
+ gObjectEvents[i].mapobj_unk_1E = MapGridGetMetatileBehaviorAt(gObjectEvents[i].currentCoords.x, gObjectEvents[i].currentCoords.y);
+ if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x), (s16)(gObjectEvents[i].currentCoords.y)))
{
- gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
- gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
+ gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x;
+ gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y;
}
- else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x - 1), (s16)(gObjectEvents[i].coords2.y)))
+ else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x - 1), (s16)(gObjectEvents[i].currentCoords.y)))
{
- gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x - 1;
- gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
+ gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x - 1;
+ gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y;
}
- else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x + 1), (s16)(gObjectEvents[i].coords2.y)))
+ else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x + 1), (s16)(gObjectEvents[i].currentCoords.y)))
{
- gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x + 1;
- gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
+ gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x + 1;
+ gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y;
}
- else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y - 1)))
+ else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x), (s16)(gObjectEvents[i].currentCoords.y - 1)))
{
- gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
- gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y - 1;
+ gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x;
+ gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y - 1;
}
- else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y + 1)))
+ else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].currentCoords.x), (s16)(gObjectEvents[i].currentCoords.y + 1)))
{
- gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
- gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y + 1;
+ gObjectEvents[i].previousCoords.x = gObjectEvents[i].currentCoords.x;
+ gObjectEvents[i].previousCoords.y = gObjectEvents[i].currentCoords.y + 1;
}
}
diff --git a/src/quest_log_player.c b/src/quest_log_player.c
index 0d7a2bb50..b6167a7bf 100644
--- a/src/quest_log_player.c
+++ b/src/quest_log_player.c
@@ -57,7 +57,7 @@ void sub_8150498(u8 a0)
static void sub_81504A8(void)
{
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
- sub_81507BC(objectEvent, sub_805C808(0));
+ sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(0));
ObjectEventTurn(objectEvent, objectEvent->placeholder18);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT);
}
@@ -65,7 +65,7 @@ static void sub_81504A8(void)
static void sub_81504E8(void)
{
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
- sub_81507BC(objectEvent, sub_805C808(1));
+ sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(1));
ObjectEventTurn(objectEvent, objectEvent->placeholder18);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_MACH_BIKE);
sub_80BD620(0, 0);
@@ -86,7 +86,7 @@ static void sub_8150530(void)
}
else
{
- sub_81507BC(objectEvent, sub_805C808(4));
+ sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(4));
StartSpriteAnim(sprite, sub_80634F0(objectEvent->facingDirection));
}
}
@@ -101,7 +101,7 @@ static void sub_81505C4(u8 taskId)
case 0:
ObjectEventClearAnimIfSpecialAnimActive(objectEvent);
objectEvent->enableAnim = TRUE;
- sub_81507BC(objectEvent, sub_805C808(4));
+ sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(4));
StartSpriteAnim(sprite, sub_80634F0(objectEvent->facingDirection));
gTasks[taskId].data[0]++;
gTasks[taskId].data[1] = 0;
@@ -122,9 +122,9 @@ static void sub_81505C4(u8 taskId)
if (sprite->animEnded)
{
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
- sub_81507BC(objectEvent, sub_805C808(0));
+ sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(0));
else
- sub_81507BC(objectEvent, sub_805C808(2));
+ sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2));
ObjectEventTurn(objectEvent, objectEvent->placeholder18);
sprite->pos2.x = 0;
sprite->pos2.y = 0;
@@ -142,11 +142,11 @@ static void sub_8150708(void)
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
{
- sub_81507BC(objectEvent, sub_805C808(2));
+ sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2));
ObjectEventTurn(objectEvent, objectEvent->placeholder18);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING);
- gFieldEffectArguments[0] = objectEvent->coords2.x;
- gFieldEffectArguments[1] = objectEvent->coords2.y;
+ gFieldEffectArguments[0] = objectEvent->currentCoords.x;
+ gFieldEffectArguments[1] = objectEvent->currentCoords.y;
gFieldEffectArguments[2] = gPlayerAvatar.objectEventId;
fieldEffectId = FieldEffectStart(FLDEFF_SURF_BLOB);
objectEvent->mapobj_unk_1A = fieldEffectId;
diff --git a/src/random.c b/src/random.c
index f6c49971d..cb12ec805 100644
--- a/src/random.c
+++ b/src/random.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "random.h"
// The number 1103515245 comes from the example implementation
// of rand and srand in the ISO C standard.
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index ebfd18493..8eeb3bb55 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -6,7 +6,6 @@
#include "link.h"
#include "data.h"
#include "sprite.h"
-#include "text.h"
#include "gpu_regs.h"
#include "scanline_effect.h"
#include "help_system.h"
@@ -14,8 +13,6 @@
#include "battle_interface.h"
#include "battle_anim.h"
#include "battle_controllers.h"
-#include "reshow_battle_screen.h"
-#include "constants/species.h"
static void CB2_ReshowBattleScreenAfterMenu(void);
static void sub_8077AAC(void);
diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c
index 1d33fb7d1..132ac7b85 100644
--- a/src/rfu_union_tool.c
+++ b/src/rfu_union_tool.c
@@ -1,8 +1,6 @@
#include "global.h"
#include "event_data.h"
#include "event_object_movement.h"
-#include "event_object_80688E4.h"
-#include "event_object_8097404.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
#include "rfu_union_tool.h"
@@ -11,7 +9,7 @@
#include "constants/flags.h"
#include "constants/event_object_movement.h"
#include "constants/union_room.h"
-#include "constants/object_events.h"
+#include "constants/event_objects.h"
static EWRAM_DATA struct UnionObj * UnionObjWork = NULL;
static EWRAM_DATA u32 sUnionObjRefreshTimer = 0;
@@ -22,24 +20,24 @@ static void UnionPartnerObjectSetFacing(s32 member, s32 group, u8 direction);
static const u8 sUnionObjectEventGfxIds[][10] = {
[MALE] = {
- OBJECT_EVENT_GFX_COOLTRAINER_M,
- OBJECT_EVENT_GFX_BLACKBELT,
- OBJECT_EVENT_GFX_CAMPER,
- OBJECT_EVENT_GFX_YOUNGSTER,
- OBJECT_EVENT_GFX_BOY,
- OBJECT_EVENT_GFX_BUG_CATCHER,
- OBJECT_EVENT_GFX_MAN,
- OBJECT_EVENT_GFX_ROCKER
+ OBJ_EVENT_GFX_COOLTRAINER_M,
+ OBJ_EVENT_GFX_BLACKBELT,
+ OBJ_EVENT_GFX_CAMPER,
+ OBJ_EVENT_GFX_YOUNGSTER,
+ OBJ_EVENT_GFX_BOY,
+ OBJ_EVENT_GFX_BUG_CATCHER,
+ OBJ_EVENT_GFX_MAN,
+ OBJ_EVENT_GFX_ROCKER
},
[FEMALE] = {
- OBJECT_EVENT_GFX_COOLTRAINER_F,
- OBJECT_EVENT_GFX_CHANNELER,
- OBJECT_EVENT_GFX_PICNICKER,
- OBJECT_EVENT_GFX_LASS,
- OBJECT_EVENT_GFX_WOMAN_1,
- OBJECT_EVENT_GFX_BATTLE_GIRL,
- OBJECT_EVENT_GFX_WOMAN_2,
- OBJECT_EVENT_GFX_BEAUTY
+ OBJ_EVENT_GFX_COOLTRAINER_F,
+ OBJ_EVENT_GFX_CHANNELER,
+ OBJ_EVENT_GFX_PICNICKER,
+ OBJ_EVENT_GFX_LASS,
+ OBJ_EVENT_GFX_WOMAN_1,
+ OBJ_EVENT_GFX_BATTLE_GIRL,
+ OBJ_EVENT_GFX_WOMAN_2,
+ OBJ_EVENT_GFX_BEAUTY
}
};
@@ -442,7 +440,7 @@ void CreateGroupMemberObjectsInvisible(u8 * sprite_ids, s32 group)
for (i = 0; i < 5; i++)
{
s32 obj_id = 5 * group + i;
- sprite_ids[obj_id] = sprite_new(OBJECT_EVENT_GFX_MAN, obj_id - 0x38, sUnionPartnerCoords[group][0] + sFacingDirectionOffsets[i][0], sUnionPartnerCoords[group][1] + sFacingDirectionOffsets[i][1], 3, 1);
+ sprite_ids[obj_id] = sprite_new(OBJ_EVENT_GFX_MAN, obj_id - 0x38, sUnionPartnerCoords[group][0] + sFacingDirectionOffsets[i][0], sUnionPartnerCoords[group][1] + sFacingDirectionOffsets[i][1], 3, 1);
RfuUnionObjectToggleInvisibility(obj_id - 0x38, TRUE);
}
}
diff --git a/src/roamer.c b/src/roamer.c
index b3cc67f85..cf30dc3d2 100644
--- a/src/roamer.c
+++ b/src/roamer.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "roamer.h"
#include "random.h"
#include "overworld.h"
#include "field_specials.h"
diff --git a/src/rock.c b/src/rock.c
index 082f3b655..3ec9cec04 100644
--- a/src/rock.c
+++ b/src/rock.c
@@ -704,7 +704,7 @@ static void sub_80B4F78(struct Sprite *sprite)
{
u8 taskId = FindTaskIdByFunc(sub_80B4D00);
- if (taskId != TASK_NONE)
+ if (taskId != TAIL_SENTINEL)
--gTasks[taskId].data[11];
DestroySprite(sprite);
}
diff --git a/src/safari_zone.c b/src/safari_zone.c
index 65fb89bca..29e436d35 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -2,7 +2,6 @@
#include "battle.h"
#include "event_scripts.h"
#include "overworld.h"
-#include "battle.h"
#include "script.h"
#include "event_data.h"
#include "field_screen_effect.h"
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index b6cce890a..09e49a1bb 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -6,7 +6,6 @@
#include "help_system.h"
#include "m4a.h"
#include "save.h"
-#include "save_failed_screen.h"
#include "strings.h"
#include "text.h"
diff --git a/src/scanline_effect.c b/src/scanline_effect.c
index 22699b96d..e664945cd 100644
--- a/src/scanline_effect.c
+++ b/src/scanline_effect.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "battle.h"
#include "task.h"
#include "trig.h"
#include "scanline_effect.h"
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 1ff3eb954..77b87aaa8 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -21,7 +21,6 @@
#include "field_message_box.h"
#include "new_menu_helpers.h"
#include "window.h"
-#include "start_menu.h"
#include "script_menu.h"
#include "string_util.h"
#include "data.h"
@@ -38,7 +37,6 @@
#include "field_effect.h"
#include "fieldmap.h"
#include "field_door.h"
-#include "scrcmd.h"
extern u16 (*const gSpecials[])(void);
extern u16 (*const gSpecialsEnd[])(void);
@@ -1240,7 +1238,7 @@ bool8 ScrCmd_releaseall(struct ScriptContext *ctx)
HideFieldMessageBox();
playerObjectId = GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0);
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[playerObjectId]);
- sub_80974D8();
+ ScriptMovement_UnfreezeObjectEvents();
UnfreezeObjectEvents();
return FALSE;
}
@@ -1254,7 +1252,7 @@ bool8 ScrCmd_release(struct ScriptContext *ctx)
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gSelectedObjectEvent]);
playerObjectId = GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0);
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[playerObjectId]);
- sub_80974D8();
+ ScriptMovement_UnfreezeObjectEvents();
UnfreezeObjectEvents();
return FALSE;
}
diff --git a/src/script_movement.c b/src/script_movement.c
new file mode 100644
index 000000000..7503e8f44
--- /dev/null
+++ b/src/script_movement.c
@@ -0,0 +1,226 @@
+#include "global.h"
+#include "task.h"
+#include "util.h"
+#include "event_object_movement.h"
+#include "constants/event_objects.h"
+#include "constants/event_object_movement.h"
+
+static EWRAM_DATA const u8 (*sMovementScripts[OBJECT_EVENTS_COUNT]) = {};
+
+static void ScriptMovement_StartMoveObjects(u8 priority);
+static u8 GetMoveObjectsTaskId(void);
+static u8 ScriptMovement_TryAddNewMovement(u8 taskId, u8 objEventId, const u8 *movementScript);
+static u8 GetMovementScriptIdFromObjectEventId(u8 taskId, u8 objEventId);
+static bool8 IsMovementScriptFinished(u8 taskId, u8 moveScrId);
+static void ScriptMovement_MoveObjects(u8 taskId);
+static void ScriptMovement_AddNewMovement(u8 taskId, u8 moveScrId, u8 objEventId, const u8 *movementScript);
+static void ScriptMovement_UnfreezeActiveObjects(u8 taskId);
+static void ScriptMovement_TakeStep(u8 taskId, u8 moveScrId, u8 objEventId, const u8 *movementScript);
+
+bool8 ScriptMovement_StartObjectMovementScript(u8 localId, u8 mapNum, u8 mapGroup, const u8 *movementScript)
+{
+ u8 objEventId;
+ if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objEventId))
+ return TRUE;
+
+ if (!FuncIsActiveTask(ScriptMovement_MoveObjects))
+ ScriptMovement_StartMoveObjects(50);
+ return ScriptMovement_TryAddNewMovement(GetMoveObjectsTaskId(), objEventId, movementScript);
+}
+
+bool8 ScriptMovement_IsObjectMovementFinished(u8 localId, u8 mapNum, u8 mapGroup)
+{
+ u8 objEventId;
+ u8 taskId;
+ u8 moveScrId;
+ if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objEventId))
+ return TRUE;
+ taskId = GetMoveObjectsTaskId();
+ moveScrId = GetMovementScriptIdFromObjectEventId(taskId, objEventId);
+ if (moveScrId == OBJECT_EVENTS_COUNT)
+ return TRUE;
+ return IsMovementScriptFinished(taskId, moveScrId);
+}
+
+void ScriptMovement_UnfreezeObjectEvents(void)
+{
+ u8 taskId = GetMoveObjectsTaskId();
+ if (taskId != TAIL_SENTINEL)
+ {
+ ScriptMovement_UnfreezeActiveObjects(taskId);
+ DestroyTask(taskId);
+ }
+}
+
+void ScriptMovement_StartMoveObjects(u8 priority)
+{
+ u8 i;
+ u8 taskId = CreateTask(ScriptMovement_MoveObjects, priority);
+ for (i = 1; i < NUM_TASK_DATA; i++)
+ {
+ gTasks[taskId].data[i] = -1;
+ }
+}
+
+u8 GetMoveObjectsTaskId(void)
+{
+ return FindTaskIdByFunc(ScriptMovement_MoveObjects);
+}
+
+bool8 ScriptMovement_TryAddNewMovement(u8 taskId, u8 objEventId, const u8 *movementScript)
+{
+ u8 moveScrId;
+
+ moveScrId = GetMovementScriptIdFromObjectEventId(taskId, objEventId);
+ if (moveScrId != OBJECT_EVENTS_COUNT)
+ {
+ if (IsMovementScriptFinished(taskId, moveScrId) == FALSE)
+ {
+ return TRUE;
+ }
+ else
+ {
+ ScriptMovement_AddNewMovement(taskId, moveScrId, objEventId, movementScript);
+ return FALSE;
+ }
+ }
+ moveScrId = GetMovementScriptIdFromObjectEventId(taskId, OBJ_EVENT_ID_PLAYER);
+ if (moveScrId == OBJECT_EVENTS_COUNT)
+ {
+ return TRUE;
+ }
+ else
+ {
+ ScriptMovement_AddNewMovement(taskId, moveScrId, objEventId, movementScript);
+ return FALSE;
+ }
+}
+
+u8 GetMovementScriptIdFromObjectEventId(u8 taskId, u8 objEventId)
+{
+ u8 i;
+ u8 *moveScriptId = (u8 *)&gTasks[taskId].data[1];
+ for (i = 0; i < OBJECT_EVENTS_COUNT; i++, moveScriptId++)
+ {
+ if (*moveScriptId == objEventId)
+ return i;
+ }
+ return OBJECT_EVENTS_COUNT;
+}
+
+void LoadObjectEventIdPtrFromMovementScript(u8 taskId, u8 moveScrId, u8 **pObjEventId)
+{
+ u8 i;
+
+ *pObjEventId = (u8 *)&gTasks[taskId].data[1];
+ for (i = 0; i < moveScrId; i++, (*pObjEventId)++)
+ ;
+}
+
+void SetObjectEventIdAtMovementScript(u8 taskId, u8 moveScrId, u8 objEventId)
+{
+ u8 *ptr;
+
+ LoadObjectEventIdPtrFromMovementScript(taskId, moveScrId, &ptr);
+ *ptr = objEventId;
+}
+
+void LoadObjectEventIdFromMovementScript(u8 taskId, u8 moveScrId, u8 *objEventId)
+{
+ u8 *ptr;
+
+ LoadObjectEventIdPtrFromMovementScript(taskId, moveScrId, &ptr);
+ *objEventId = *ptr;
+}
+
+
+static void ClearMovementScriptFinished(u8 taskId, u8 moveScrId)
+{
+ u16 mask = ~gBitTable[moveScrId];
+
+ gTasks[taskId].data[0] &= mask;
+}
+
+static void SetMovementScriptFinished(u8 taskId, u8 moveScrId)
+{
+ gTasks[taskId].data[0] |= gBitTable[moveScrId];
+}
+
+static bool8 IsMovementScriptFinished(u8 taskId, u8 moveScrId)
+{
+ u16 moveScriptFinished = (u16)gTasks[taskId].data[0] & gBitTable[moveScrId];
+
+ if (moveScriptFinished != 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void SetMovementScript(u8 moveScrId, const u8 *movementScript)
+{
+ sMovementScripts[moveScrId] = movementScript;
+}
+
+static const u8 *GetMovementScript(u8 moveScrId)
+{
+ return sMovementScripts[moveScrId];
+}
+
+static void ScriptMovement_AddNewMovement(u8 taskId, u8 moveScrId, u8 objEventId, const u8 *movementScript)
+{
+ ClearMovementScriptFinished(taskId, moveScrId);
+ SetMovementScript(moveScrId, movementScript);
+ SetObjectEventIdAtMovementScript(taskId, moveScrId, objEventId);
+}
+
+static void ScriptMovement_UnfreezeActiveObjects(u8 taskId)
+{
+ u8 *pObjEventId;
+ u8 i;
+
+ pObjEventId = (u8 *)&gTasks[taskId].data[1];
+ for (i = 0; i < OBJECT_EVENTS_COUNT; i++, pObjEventId++)
+ {
+ if (*pObjEventId != 0xFF)
+ UnfreezeObjectEvent(&gObjectEvents[*pObjEventId]);
+ }
+}
+
+static void ScriptMovement_MoveObjects(u8 taskId)
+{
+ u8 i;
+ u8 objEventId;
+
+ for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
+ {
+ LoadObjectEventIdFromMovementScript(taskId, i, &objEventId);
+ if (objEventId != 0xFF)
+ ScriptMovement_TakeStep(taskId, i, objEventId, GetMovementScript(i));
+ }
+}
+
+static void ScriptMovement_TakeStep(u8 taskId, u8 moveScrId, u8 objEventId, const u8 *movementScript)
+{
+ u8 nextMoveActionId;
+
+ if (IsMovementScriptFinished(taskId, moveScrId) == TRUE)
+ return;
+ if (ObjectEventIsSpecialAnimActive(&gObjectEvents[objEventId])
+ && !ObjectEventClearHeldMovementIfFinished(&gObjectEvents[objEventId]))
+ return;
+
+ nextMoveActionId = *movementScript;
+ if (nextMoveActionId == MOVEMENT_ACTION_STEP_END)
+ {
+ SetMovementScriptFinished(taskId, moveScrId);
+ FreezeObjectEvent(&gObjectEvents[objEventId]);
+ }
+ else
+ {
+ if (!ObjectEventSetHeldMovement(&gObjectEvents[objEventId], nextMoveActionId))
+ {
+ movementScript++;
+ SetMovementScript(moveScrId, movementScript);
+ }
+ }
+}
diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c
index e12b809c6..7c8604b8e 100644
--- a/src/script_pokemon_util.c
+++ b/src/script_pokemon_util.c
@@ -1,9 +1,7 @@
#include "global.h"
-#include "battle.h"
#include "berry.h"
#include "daycare.h"
#include "event_data.h"
-#include "event_object_movement.h"
#include "load_save.h"
#include "malloc.h"
#include "overworld.h"
diff --git a/src/sea_cottage_special_anim.c b/src/sea_cottage_special_anim.c
deleted file mode 100644
index 56d01ca29..000000000
--- a/src/sea_cottage_special_anim.c
+++ /dev/null
@@ -1,264 +0,0 @@
-#include "global.h"
-#include "event_data.h"
-#include "task.h"
-#include "menu.h"
-#include "field_player_avatar.h"
-#include "fieldmap.h"
-#include "event_object_movement.h"
-#include "field_camera.h"
-
-static EWRAM_DATA u8 gUnknown_2039984 = 0;
-
-static void sub_809C1D8(u8 taskId, const s16 *a1, u16 a2);
-static void sub_809C334(u8 taskId);
-static void sub_809C500(u8 taskId);
-static void sub_809C640(u8 taskId);
-
-static const u16 gUnknown_83DF0D4[] = {0x0308, 0x030a, 0x02d0};
-static const u16 gUnknown_83DF0DA[] = {0x0309, 0x030b, 0x02d1};
-static const u16 gUnknown_83DF0E0[] = {0x0310, 0x0312, 0x02d8};
-static const u16 gUnknown_83DF0E6[] = {0x0311, 0x0313, 0x02d9};
-static const u16 gUnknown_83DF0EC[] = {0x02e3, 0x0316, 0x0314};
-static const u16 gUnknown_83DF0F2[] = {0x02e4, 0x0317, 0x0315};
-static const u16 gUnknown_83DF0F8[] = {0x02eb, 0x031e, 0x031c};
-
-// Functions
-static void sub_809C1D8(u8 taskId, const s16 *a1, u16 a2)
-{
- s16 r5, r3, r4;
- s16 i, j;
-
- r5 = gTasks[taskId].data[4] - 1;
- r3 = gTasks[taskId].data[5] - 1;
- r4 = gTasks[taskId].data[1];
-
- if (gTasks[taskId].data[2] == 0)
- {
- for (i = 0; i < 3; i++)
- {
- for (j = 0; j < 3; j++)
- {
- s32 id = MapGridGetMetatileIdAt(r5 + j, r3 + i);
-
- if (a1[r4] == (s16)id)
- {
- if (r4 != 2)
- MapGridSetMetatileIdAt(r5 + j, r3 + i, a2 | a1[r4 + 1]);
- else
- MapGridSetMetatileIdAt(r5 + j, r3 + i, a2 | a1[0]);
- }
- }
- }
- }
- else
- {
- for (i = 0; i < 3; i++)
- {
- for (j = 0; j < 3; j++)
- {
- s32 id = MapGridGetMetatileIdAt(r5 + j, r3 + i);
-
- if (a1[2 - r4] == (s16)id)
- {
- if (r4 != 2)
- MapGridSetMetatileIdAt(r5 + j, r3 + i, a2 | a1[1 - r4]);
- else
- MapGridSetMetatileIdAt(r5 + j, r3 + i, a2 | a1[2]);
- }
- }
- }
- }
-}
-
-static void sub_809C334(u8 taskId)
-{
- s16 *data = gTasks[taskId].data;
- u16 v1;
-
- data[3] = 1;
- switch (data[0])
- {
- case 0:
- sub_809C1D8(taskId, gUnknown_83DF0D4, 0);
- break;
- case 1:
- sub_809C1D8(taskId, gUnknown_83DF0DA, 0);
- break;
- case 2:
- sub_809C1D8(taskId, gUnknown_83DF0E0, 0xC00);
- break;
- case 3:
- sub_809C1D8(taskId, gUnknown_83DF0E6, 0);
- break;
- case 4:
- sub_809C1D8(taskId, gUnknown_83DF0EC, 0xC00);
- break;
- case 5:
- sub_809C1D8(taskId, gUnknown_83DF0F2, 0);
- break;
- case 6:
- sub_809C1D8(taskId, gUnknown_83DF0F8, 0);
- default:
- break;
- }
-
- data[0] = (data[0] + 1) & 7;
- v1 = data[0] & 7;
- if (v1 == 0)
- {
- DrawWholeMapView();
- data[1] = (data[1] + 1) % 3;
- data[3] = v1;
- }
-}
-
-static u8 sub_809C3FC(u16 a0)
-{
- u8 taskId;
- s16 *data;
-
- taskId = CreateTask(sub_809C334, 0);
- data = gTasks[taskId].data;
- PlayerGetDestCoords(&data[4], &data[5]);
- data[0] = 0;
- data[1] = 0;
- data[2] = a0;
- sub_809C334(taskId);
- return taskId;
-}
-
-void sub_809C448(u8 a0)
-{
- u8 taskId;
-
- taskId = sub_809C3FC(a0);
- gUnknown_2039984 = taskId;
-}
-
-void sub_809C460(void)
-{
- DestroyTask(gUnknown_2039984);
-}
-
-bool8 sub_809C474(void)
-{
- if (gTasks[gUnknown_2039984].data[3] == 0)
- {
- if (gTasks[gUnknown_2039984].data[1] != 2)
- return TRUE;
- return FALSE;
- }
- else
- {
- return TRUE;
- }
-}
-
-// special 0x1b5 - creates a tile animaiton one block left two-four up the player
-void sub_809C4A8(void)
-{
- u8 taskId;
- s16 *data;
-
- taskId = CreateTask(sub_809C500, 0);
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
- data = gTasks[taskId].data;
- PlayerGetDestCoords(&data[2], &data[3]);
- if (gSpecialVar_0x8004 == 0)
- {
- gTasks[taskId].data[2] += 6;
- gTasks[taskId].data[3] -= 5;
- }
- else
- {
- gTasks[taskId].data[2]--;
- gTasks[taskId].data[3] -= 5;
- }
-}
-
-static void sub_809C500(u8 taskId)
-{
- s16 *data = gTasks[taskId].data;
-
- if (data[0] == 0)
- {
- if ((data[1] & 1) == 0)
- {
- MapGridSetMetatileIdAt(data[2], data[3], 0xEB5);
- MapGridSetMetatileIdAt(data[2], data[3] + 2, 0xEB7);
- }
- else
- {
- MapGridSetMetatileIdAt(data[2], data[3], 0xEB6);
- MapGridSetMetatileIdAt(data[2], data[3] + 2, 0xEB8);
- }
- CurrentMapDrawMetatileAt(data[2], data[3]);
- CurrentMapDrawMetatileAt(data[2], data[3] + 2);
- }
-
- data[0]++;
- if (data[0] != 0x10)
- return;
-
- data[0] = 0;
- data[1]++;
- if (data[1] != 0xD)
- return;
-
- MapGridSetMetatileIdAt(data[2], data[3], 0xE8A);
- MapGridSetMetatileIdAt(data[2], data[3] + 2, 0xE96);
- CurrentMapDrawMetatileAt(data[2], data[3]);
- CurrentMapDrawMetatileAt(data[2], data[3] + 2);
- DestroyTask(taskId);
-}
-
-// special 0x1B7 - creates a tile animation two-six blocks right from the top-left corner of the screen
-void sub_809C5FC(void)
-{
- u8 taskId;
- s16 *data;
-
- taskId = CreateTask(sub_809C640, 0);
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
- data = gTasks[taskId].data;
- PlayerGetDestCoords(&data[2], &data[3]);
- gTasks[taskId].data[2] += 4;
- gTasks[taskId].data[3] -= 5;
-}
-
-static void sub_809C640(u8 taskId)
-{
- s16 *data = gTasks[taskId].data;
-
- if (data[0] == 0)
- {
- if (data[1] != 0)
- {
- MapGridSetMetatileIdAt(data[2], data[3], 0xE85);
- MapGridSetMetatileIdAt(data[2], data[3] + 1, 0xEB4);
- CurrentMapDrawMetatileAt(data[2], data[3]);
- CurrentMapDrawMetatileAt(data[2], data[3] + 1);
- if (data[1] == 4)
- {
- DestroyTask(taskId);
- return;
- }
-
- data[2]--;
- }
- MapGridSetMetatileIdAt(data[2], data[3], 0xEB9);
- MapGridSetMetatileIdAt(data[2], data[3] + 1, 0xEBA);
- CurrentMapDrawMetatileAt(data[2], data[3]);
- CurrentMapDrawMetatileAt(data[2], data[3] + 1);
- }
-
- data[0]++;
- if (data[0] == 4)
- {
- data[0] = 0;
- data[1]++;
- }
-}
-
diff --git a/src/shop.c b/src/shop.c
index 97061f8c0..efbbbd979 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -10,7 +10,6 @@
#include "window.h"
#include "field_specials.h"
#include "field_weather.h"
-#include "field_camera.h"
#include "task.h"
#include "text.h"
#include "item.h"
@@ -19,7 +18,6 @@
#include "sound.h"
#include "string_util.h"
#include "overworld.h"
-#include "window.h"
#include "palette.h"
#include "field_fadetransition.h"
#include "scanline_effect.h"
diff --git a/src/slot_machine.c b/src/slot_machine.c
index 651465ddb..d0422ab99 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -11,7 +11,6 @@
#include "coins.h"
#include "quest_log.h"
#include "overworld.h"
-#include "slot_machine.h"
#include "menu.h"
#include "new_menu_helpers.h"
#include "text_window.h"
diff --git a/src/sound.c b/src/sound.c
index ebd755838..b88d3b642 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -5,7 +5,6 @@
#include "quest_log.h"
#include "m4a.h"
#include "main.h"
-#include "pokemon.h"
#include "constants/songs.h"
#include "task.h"
diff --git a/src/special_field_anim.c b/src/special_field_anim.c
new file mode 100644
index 000000000..4193f0b5a
--- /dev/null
+++ b/src/special_field_anim.c
@@ -0,0 +1,341 @@
+#include "global.h"
+#include "event_data.h"
+#include "task.h"
+#include "field_player_avatar.h"
+#include "fieldmap.h"
+#include "field_camera.h"
+#include "constants/metatile_labels.h"
+
+static EWRAM_DATA u8 sEscalatorTaskId = 0;
+
+static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks);
+static void Task_DrawEscalator(u8 taskId);
+static void Task_DrawTeleporterHousing(u8 taskId);
+static void Task_DrawTeleporterCable(u8 taskId);
+
+#define ESCALATOR_STAGES 3
+#define LAST_ESCALATOR_STAGE (ESCALATOR_STAGES - 1)
+
+static const u16 sEscalatorMetatiles_BottomNextRail[ESCALATOR_STAGES] =
+{
+ METATILE_PokemonCenter_Escalator_BottomNextRail_Transition2,
+ METATILE_PokemonCenter_Escalator_BottomNextRail_Transition1,
+ METATILE_PokemonCenter_Escalator_BottomNextRail_Normal
+};
+
+static const u16 sEscalatorMetatiles_BottomRail[ESCALATOR_STAGES] =
+{
+ METATILE_PokemonCenter_Escalator_BottomRail_Transition2,
+ METATILE_PokemonCenter_Escalator_BottomRail_Transition1,
+ METATILE_PokemonCenter_Escalator_BottomRail_Normal
+};
+
+static const u16 sEscalatorMetatiles_BottomNext[ESCALATOR_STAGES] =
+{
+ METATILE_PokemonCenter_Escalator_BottomNext_Transition2,
+ METATILE_PokemonCenter_Escalator_BottomNext_Transition1,
+ METATILE_PokemonCenter_Escalator_BottomNext_Normal
+};
+
+static const u16 sEscalatorMetatiles_Bottom[ESCALATOR_STAGES] =
+{
+ METATILE_PokemonCenter_Escalator_Bottom_Transition2,
+ METATILE_PokemonCenter_Escalator_Bottom_Transition1,
+ METATILE_PokemonCenter_Escalator_Bottom_Normal
+};
+
+static const u16 sEscalatorMetatiles_TopNext[ESCALATOR_STAGES] =
+{
+ METATILE_PokemonCenter_Escalator_TopNext_Normal,
+ METATILE_PokemonCenter_Escalator_TopNext_Transition1,
+ METATILE_PokemonCenter_Escalator_TopNext_Transition2
+};
+
+static const u16 sEscalatorMetatiles_Top[ESCALATOR_STAGES] =
+{
+ METATILE_PokemonCenter_Escalator_Top_Normal,
+ METATILE_PokemonCenter_Escalator_Top_Transition1,
+ METATILE_PokemonCenter_Escalator_Top_Transition2
+};
+
+static const u16 sEscalatorMetatiles_TopNextRail[ESCALATOR_STAGES] =
+{
+ METATILE_PokemonCenter_Escalator_TopNextRail_Normal,
+ METATILE_PokemonCenter_Escalator_TopNextRail_Transition1,
+ METATILE_PokemonCenter_Escalator_TopNextRail_Transition2
+};
+
+#define tState data[0]
+#define tTransitionStage data[1]
+#define tGoingUp data[2]
+#define tDrawingEscalator data[3]
+#define tPlayerX data[4]
+#define tPlayerY data[5]
+
+static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks)
+{
+ s16 x, y, transitionStage;
+ s16 i, j;
+
+ x = gTasks[taskId].tPlayerX - 1;
+ y = gTasks[taskId].tPlayerY - 1;
+ transitionStage = gTasks[taskId].tTransitionStage;
+
+ // Check all the escalator sections and only progress the selected one to the next stage
+ if (!gTasks[taskId].tGoingUp)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ s32 id = MapGridGetMetatileIdAt(x + j, y + i);
+
+ if (metatileIds[transitionStage] == (s16)id)
+ {
+ if (transitionStage != LAST_ESCALATOR_STAGE)
+ MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[transitionStage + 1]);
+ else
+ MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[0]);
+ }
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ s32 id = MapGridGetMetatileIdAt(x + j, y + i);
+
+ if (metatileIds[LAST_ESCALATOR_STAGE - transitionStage] == (s16)id)
+ {
+ if (transitionStage != LAST_ESCALATOR_STAGE)
+ MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[1 - transitionStage]);
+ else
+ MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[LAST_ESCALATOR_STAGE]);
+ }
+ }
+ }
+ }
+}
+
+static void Task_DrawEscalator(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 state;
+
+ tDrawingEscalator = TRUE;
+
+ // Set tile for each section of the escalator in sequence for current transition stage
+ switch (tState)
+ {
+ case 0:
+ SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomNextRail, 0);
+ break;
+ case 1:
+ SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomRail, 0);
+ break;
+ case 2:
+ SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomNext, METATILE_COLLISION_MASK);
+ break;
+ case 3:
+ SetEscalatorMetatile(taskId, sEscalatorMetatiles_Bottom, 0);
+ break;
+ case 4:
+ SetEscalatorMetatile(taskId, sEscalatorMetatiles_TopNext, METATILE_COLLISION_MASK);
+ break;
+ case 5:
+ SetEscalatorMetatile(taskId, sEscalatorMetatiles_Top, 0);
+ break;
+ case 6:
+ SetEscalatorMetatile(taskId, sEscalatorMetatiles_TopNextRail, 0);
+ default:
+ break;
+ }
+
+ tState = (tState + 1) & 7;
+ state = tState & 7;
+
+ // If all sections of the escalator have been set, draw map and progress to next stage
+ if (state == 0)
+ {
+ DrawWholeMapView();
+ tTransitionStage = (tTransitionStage + 1) % ESCALATOR_STAGES;
+ tDrawingEscalator = FALSE;
+ }
+}
+
+static u8 CreateEscalatorTask(bool16 goingUp)
+{
+ u8 taskId;
+ s16 *data;
+
+ taskId = CreateTask(Task_DrawEscalator, 0);
+ data = gTasks[taskId].data;
+ PlayerGetDestCoords(&tPlayerX, &tPlayerY);
+ tState = 0;
+ tTransitionStage = 0;
+ tGoingUp = goingUp;
+ Task_DrawEscalator(taskId);
+ return taskId;
+}
+
+void StartEscalator(bool8 goingUp)
+{
+ u8 taskId;
+
+ taskId = CreateEscalatorTask(goingUp);
+ sEscalatorTaskId = taskId;
+}
+
+void StopEscalator(void)
+{
+ DestroyTask(sEscalatorTaskId);
+}
+
+bool8 IsEscalatorMoving(void)
+{
+ if (gTasks[sEscalatorTaskId].tDrawingEscalator == FALSE)
+ {
+ if (gTasks[sEscalatorTaskId].tTransitionStage != LAST_ESCALATOR_STAGE)
+ return TRUE;
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+#undef tState
+#undef tTransitionStage
+#undef tGoingUp
+#undef tDrawingEscalator
+#undef tPlayerX
+#undef tPlayerY
+
+#define tTimer data[0]
+#define tState data[1]
+#define tX data[2]
+#define tY data[3]
+
+void AnimateTeleporterHousing(void)
+{
+ u8 taskId;
+ s16 *data;
+
+ taskId = CreateTask(Task_DrawTeleporterHousing, 0);
+ gTasks[taskId].tTimer = 0;
+ gTasks[taskId].tState = 0;
+ data = gTasks[taskId].data;
+ PlayerGetDestCoords(&tX, &tY);
+
+ // Set the coords of whichever teleporter is being animated
+ // 0 for the right teleporter, 1 for the left teleporter
+ if (gSpecialVar_0x8004 == 0)
+ {
+ gTasks[taskId].tX += 6;
+ gTasks[taskId].tY -= 5;
+ }
+ else
+ {
+ gTasks[taskId].tX -= 1;
+ gTasks[taskId].tY -= 5;
+ }
+}
+
+static void Task_DrawTeleporterHousing(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (tTimer == 0)
+ {
+ // Alternate the teleporter light / brightness of the teleporter door
+ if ((tState & 1) == 0)
+ {
+ MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Yellow | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_HalfGlowing | METATILE_COLLISION_MASK);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Red | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_FullGlowing | METATILE_COLLISION_MASK);
+ }
+ CurrentMapDrawMetatileAt(tX, tY);
+ CurrentMapDrawMetatileAt(tX, tY + 2);
+ }
+
+ tTimer++;
+ if (tTimer != 16)
+ return;
+
+ tTimer = 0;
+ tState++;
+ if (tState != 13)
+ return;
+
+ MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Green | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door | METATILE_COLLISION_MASK);
+ CurrentMapDrawMetatileAt(tX, tY);
+ CurrentMapDrawMetatileAt(tX, tY + 2);
+ DestroyTask(taskId);
+}
+
+void AnimateTeleporterCable(void)
+{
+ u8 taskId;
+ s16 *data;
+
+ taskId = CreateTask(Task_DrawTeleporterCable, 0);
+ gTasks[taskId].tTimer = 0;
+ gTasks[taskId].tState = 0;
+ data = gTasks[taskId].data;
+ PlayerGetDestCoords(&tX, &tY);
+ gTasks[taskId].tX += 4;
+ gTasks[taskId].tY -= 5;
+}
+
+static void Task_DrawTeleporterCable(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (tTimer == 0)
+ {
+ if (tState != 0)
+ {
+ // Set default cable tiles to clear the ball
+ MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Cable_Top | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_Cable_Bottom | METATILE_COLLISION_MASK);
+ CurrentMapDrawMetatileAt(tX, tY);
+ CurrentMapDrawMetatileAt(tX, tY + 1);
+
+ // End after drawing 4 times (length of the cable)
+ if (tState == 4)
+ {
+ DestroyTask(taskId);
+ return;
+ }
+
+ tX--;
+ }
+
+ // Draw the cable ball
+ MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_CableBall_Top | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_CableBall_Bottom | METATILE_COLLISION_MASK);
+ CurrentMapDrawMetatileAt(tX, tY);
+ CurrentMapDrawMetatileAt(tX, tY + 1);
+ }
+
+ tTimer++;
+ if (tTimer == 4)
+ {
+ tTimer = 0;
+ tState++;
+ }
+}
+
+#undef tTimer
+#undef tState
+#undef tX
+#undef tY
diff --git a/src/start_menu.c b/src/start_menu.c
index b159f0375..bdcf68b51 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -23,7 +23,7 @@
#include "field_fadetransition.h"
#include "field_player_avatar.h"
#include "new_menu_helpers.h"
-#include "event_object_80688E4.h"
+#include "event_object_movement.h"
#include "event_object_lock.h"
#include "script.h"
#include "sound.h"
diff --git a/src/text.c b/src/text.c
index 83f089c12..2d4d4a9b0 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1,15 +1,11 @@
#include "global.h"
#include "main.h"
-#include "palette.h"
-#include "string_util.h"
#include "window.h"
#include "text.h"
#include "sprite.h"
-#include "blit.h"
#include "sound.h"
#include "m4a.h"
#include "quest_log.h"
-#include "window.h"
#include "graphics.h"
#include "dynamic_placeholder_text_util.h"
#include "constants/songs.h"
diff --git a/src/text_window.c b/src/text_window.c
index 98f82e818..6fde39078 100644
--- a/src/text_window.c
+++ b/src/text_window.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "bg.h"
#include "palette.h"
-#include "text.h"
#include "window.h"
#include "text_window.h"
#include "text_window_graphics.h"
diff --git a/src/tileset_anims.c b/src/tileset_anims.c
index dd0fe453d..04e129049 100644
--- a/src/tileset_anims.c
+++ b/src/tileset_anims.c
@@ -1,10 +1,4 @@
#include "global.h"
-#include "graphics.h"
-#include "palette.h"
-#include "util.h"
-#include "battle_transition.h"
-#include "task.h"
-#include "fieldmap.h"
static EWRAM_DATA struct {
const u16 *src;
diff --git a/src/tm_case.c b/src/tm_case.c
index ac4134029..f631e1604 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -25,7 +25,6 @@
#include "scanline_effect.h"
#include "sound.h"
#include "strings.h"
-#include "tm_case.h"
#include "menu_indicators.h"
#include "constants/items.h"
#include "constants/songs.h"
diff --git a/src/trade.c b/src/trade.c
index 1872e98ee..30bfa8389 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -6,7 +6,6 @@
#include "pokemon_icon.h"
#include "graphics.h"
#include "link.h"
-#include "load_save.h"
#include "link_rfu.h"
#include "cable_club.h"
#include "data.h"
@@ -14,7 +13,6 @@
#include "menu.h"
#include "overworld.h"
#include "battle_anim.h"
-#include "pokeball.h"
#include "party_menu.h"
#include "daycare.h"
#include "event_data.h"
@@ -22,7 +20,6 @@
#include "pokemon_summary_screen.h"
#include "pokemon_storage_system.h"
#include "new_menu_helpers.h"
-#include "trade.h"
#include "trade_scene.h"
#include "constants/songs.h"
#include "constants/moves.h"
diff --git a/src/trade_scene.c b/src/trade_scene.c
index 601d7ae2b..9f0b83ec9 100644
--- a/src/trade_scene.c
+++ b/src/trade_scene.c
@@ -10,7 +10,6 @@
#include "palette.h"
#include "trade.h"
#include "link.h"
-#include "librfu.h"
#include "link_rfu.h"
#include "text.h"
#include "mevent.h"
@@ -31,7 +30,6 @@
#include "quest_log.h"
#include "help_system.h"
#include "new_menu_helpers.h"
-#include "battle_interface.h"
#include "pokedex.h"
#include "save.h"
#include "load_save.h"
@@ -948,13 +946,13 @@ static void TradeAnimInit_LoadGfx(void)
DeactivateAllTextPrinters();
// Doing the graphics load...
DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0);
- LZDecompressWram(gFile_graphics_interface_menu_map_tilemap, gDecompressionBuffer);
+ LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer);
CopyToBgTilemapBuffer(0, gDecompressionBuffer, BG_SCREEN_SIZE, 0);
LoadCompressedPalette(gBattleTextboxPalette, 0x000, 0x20);
InitWindows(gUnknown_826D1BC);
// ... and doing the same load again
DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0);
- LZDecompressWram(gFile_graphics_interface_menu_map_tilemap, gDecompressionBuffer);
+ LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer);
CopyToBgTilemapBuffer(0, gDecompressionBuffer, BG_SCREEN_SIZE, 0);
LoadCompressedPalette(gBattleTextboxPalette, 0x000, 0x20);
}
diff --git a/src/trainer_card.c b/src/trainer_card.c
index f29c9c71c..d60738ee6 100644
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -14,7 +14,6 @@
#include "event_data.h"
#include "easy_chat.h"
#include "money.h"
-#include "window.h"
#include "strings.h"
#include "string_util.h"
#include "trainer_card.h"
@@ -22,7 +21,6 @@
#include "pokedex.h"
#include "pokemon_icon.h"
#include "graphics.h"
-#include "pokemon_icon.h"
#include "help_system.h"
#include "trainer_pokemon_sprites.h"
#include "new_menu_helpers.h"
diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c
index 7262954c9..9f706c6d5 100644
--- a/src/trainer_pokemon_sprites.c
+++ b/src/trainer_pokemon_sprites.c
@@ -2,12 +2,9 @@
#include "sprite.h"
#include "window.h"
#include "malloc.h"
-#include "constants/species.h"
#include "palette.h"
#include "decompress.h"
-#include "trainer_pokemon_sprites.h"
#include "pokemon.h"
-#include "constants/trainer_classes.h"
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
extern const struct CompressedSpriteSheet gMonBackPicTable[];
diff --git a/src/trainer_see.c b/src/trainer_see.c
new file mode 100644
index 000000000..06fd60442
--- /dev/null
+++ b/src/trainer_see.c
@@ -0,0 +1,751 @@
+#include "global.h"
+#include "battle_setup.h"
+#include "event_object_movement.h"
+#include "field_effect.h"
+#include "field_player_avatar.h"
+#include "quest_log.h"
+#include "script.h"
+#include "task.h"
+#include "util.h"
+#include "constants/battle_setup.h"
+#include "constants/event_object_movement.h"
+#include "constants/event_objects.h"
+
+typedef u8 (*TrainerApproachFunc)(struct ObjectEvent *, s16, s16, s16);
+typedef bool8 (*TrainerSeeFunc)(u8, struct Task *, struct ObjectEvent *);
+
+static bool8 CheckTrainer(u8 trainerObjId);
+static u8 GetTrainerApproachDistance(struct ObjectEvent * trainerObj);
+static u8 GetTrainerApproachDistanceSouth(struct ObjectEvent * trainerObj, s16 range, s16 x, s16 y);
+static u8 GetTrainerApproachDistanceNorth(struct ObjectEvent * trainerObj, s16 range, s16 x, s16 y);
+static u8 GetTrainerApproachDistanceWest(struct ObjectEvent * trainerObj, s16 range, s16 x, s16 y);
+static u8 GetTrainerApproachDistanceEast(struct ObjectEvent * trainerObj, s16 range, s16 x, s16 y);
+static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent * trainerObj, u8 approachDistance, u8 facingDirection);
+static void TrainerApproachPlayer(struct ObjectEvent * trainerObj, u8 approachDistance);
+static void Task_RunTrainerSeeFuncList(u8 taskId);
+static bool8 TrainerSeeFunc_Dummy(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_StartExclMark(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_WaitExclMark(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_TrainerApproach(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_PrepareToEngage(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_End(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_BeginRemoveDisguise(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_WaitRemoveDisguise(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_TrainerInAshFacesPlayer(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_BeginJumpOutOfAsh(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_WaitJumpOutOfAsh(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_EndJumpOutOfAsh(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_OffscreenAboveTrainerCreateCameraObj(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveUp(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static bool8 TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveDown(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
+static void Task_DestroyTrainerApproachTask(u8 taskId);
+static void SpriteCB_TrainerIcons(struct Sprite * sprite);
+static void SetIconSpriteData(struct Sprite *sprite, u16 fldEffId, u8 spriteAnimNum);
+
+static const u16 sGfx_Emoticons[] = INCBIN_U16("graphics/object_events/emoticons.4bpp");
+
+// u8 func(struct ObjectEvent * trainerObj, s16 range, s16 x, s16 y)
+// range is the maximum distance the trainer can see
+// x and y are the player's coordinates
+// Returns distance to walk if trainer has unobstructed view of player
+// Returns 0 if trainer can't see player
+static const TrainerApproachFunc sDirectionalApproachDistanceFuncs[] = {
+ GetTrainerApproachDistanceSouth,
+ GetTrainerApproachDistanceNorth,
+ GetTrainerApproachDistanceWest,
+ GetTrainerApproachDistanceEast
+};
+
+// bool8 func(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+// Returns TRUE to run the next func immediately
+// Returns FALSE to delay the next func to the next frame
+static const TrainerSeeFunc sTrainerSeeFuncList[] = {
+ TrainerSeeFunc_Dummy,
+ TrainerSeeFunc_StartExclMark,
+ TrainerSeeFunc_WaitExclMark,
+ TrainerSeeFunc_TrainerApproach,
+ TrainerSeeFunc_PrepareToEngage,
+ TrainerSeeFunc_End,
+ TrainerSeeFunc_BeginRemoveDisguise,
+ TrainerSeeFunc_WaitRemoveDisguise,
+ TrainerSeeFunc_TrainerInAshFacesPlayer,
+ TrainerSeeFunc_BeginJumpOutOfAsh,
+ TrainerSeeFunc_WaitJumpOutOfAsh,
+ TrainerSeeFunc_EndJumpOutOfAsh,
+ TrainerSeeFunc_OffscreenAboveTrainerCreateCameraObj,
+ TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveUp,
+ TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveDown
+};
+
+static const TrainerSeeFunc sTrainerSeeFuncList2[] = {
+ TrainerSeeFunc_TrainerInAshFacesPlayer,
+ TrainerSeeFunc_BeginJumpOutOfAsh,
+ TrainerSeeFunc_WaitJumpOutOfAsh,
+ TrainerSeeFunc_EndJumpOutOfAsh
+};
+
+bool8 CheckForTrainersWantingBattle(void)
+{
+ u8 i;
+ if (sub_8111C2C() == TRUE)
+ return FALSE;
+
+ for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
+ {
+ if (gObjectEvents[i].active
+ && (
+ gObjectEvents[i].trainerType == 1
+ || gObjectEvents[i].trainerType == 3
+ )
+ && CheckTrainer(i)
+ )
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 CheckTrainer(u8 trainerObjId)
+{
+ const u8 *script = GetObjectEventScriptPointerByObjectEventId(trainerObjId);
+ u8 approachDistance;
+ if (GetTrainerFlagFromScriptPointer(script))
+ return FALSE;
+ approachDistance = GetTrainerApproachDistance(&gObjectEvents[trainerObjId]);
+ if (approachDistance != 0)
+ {
+ if (script[1] == TRAINER_BATTLE_DOUBLE && GetMonsStateToDoubles())
+ return FALSE;
+ ConfigureAndSetUpOneTrainerBattle(trainerObjId, script);
+ TrainerApproachPlayer(&gObjectEvents[trainerObjId], approachDistance - 1);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static u8 GetTrainerApproachDistance(struct ObjectEvent *trainerObj)
+{
+ s16 x, y;
+ u8 i;
+ u8 approachDistance;
+
+ PlayerGetDestCoords(&x, &y);
+ if (trainerObj->trainerType == 1) // can only see in one direction
+ {
+ approachDistance = sDirectionalApproachDistanceFuncs[trainerObj->facingDirection - 1](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
+ return CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, trainerObj->facingDirection);
+ }
+ else // can see in all directions
+ {
+ for (i = 0; i < 4; i++)
+ {
+ approachDistance = sDirectionalApproachDistanceFuncs[i](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
+ if (CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, i + 1)) // directions are 1-4 instead of 0-3. south north west east
+ return approachDistance;
+ }
+ }
+
+ return 0;
+}
+
+// Returns how far south the player is from trainer. 0 if out of trainer's sight.
+static u8 GetTrainerApproachDistanceSouth(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y)
+{
+ if (trainerObj->currentCoords.x == x
+ && y > trainerObj->currentCoords.y
+ && y <= trainerObj->currentCoords.y + range)
+ {
+ if (range > 3 && GetIndexOfFirstInactiveObjectEvent() == OBJECT_EVENTS_COUNT)
+ return 0;
+ return (y - trainerObj->currentCoords.y);
+ }
+ else
+ return 0;
+}
+
+// Returns how far north the player is from trainer. 0 if out of trainer's sight.
+static u8 GetTrainerApproachDistanceNorth(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y)
+{
+ if (trainerObj->currentCoords.x == x
+ && y < trainerObj->currentCoords.y
+ && y >= trainerObj->currentCoords.y - range)
+ return (trainerObj->currentCoords.y - y);
+ else
+ return 0;
+}
+
+// Returns how far west the player is from trainer. 0 if out of trainer's sight.
+static u8 GetTrainerApproachDistanceWest(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y)
+{
+ if (trainerObj->currentCoords.y == y
+ && x < trainerObj->currentCoords.x
+ && x >= trainerObj->currentCoords.x - range)
+ return (trainerObj->currentCoords.x - x);
+ else
+ return 0;
+}
+
+// Returns how far east the player is from trainer. 0 if out of trainer's sight.
+static u8 GetTrainerApproachDistanceEast(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y)
+{
+ if (trainerObj->currentCoords.y == y
+ && x > trainerObj->currentCoords.x
+ && x <= trainerObj->currentCoords.x + range)
+ return (x - trainerObj->currentCoords.x);
+ else
+ return 0;
+}
+
+#define COLLISION_MASK (~1)
+
+static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent *trainerObj, u8 approachDistance, u8 direction)
+{
+ s16 x, y;
+ u8 unk19_temp;
+ u8 unk19b_temp;
+ u8 i;
+ u8 collision;
+
+ if (approachDistance == 0)
+ return 0;
+
+ x = trainerObj->currentCoords.x;
+ y = trainerObj->currentCoords.y;
+
+ for (i = 0; i <= approachDistance - 1; i++, MoveCoords(direction, &x, &y))
+ {
+ collision = GetCollisionFlagsAtCoords(trainerObj, x, y, direction);
+ if (collision != 0 && (collision & COLLISION_MASK))
+ return 0;
+ }
+
+ // preserve mapobj_unk_19 before clearing.
+ unk19_temp = trainerObj->range.as_nybbles.x;
+ unk19b_temp = trainerObj->range.as_nybbles.y;
+ trainerObj->range.as_nybbles.x = 0;
+ trainerObj->range.as_nybbles.y = 0;
+
+ collision = GetCollisionAtCoords(trainerObj, x, y, direction);
+
+ trainerObj->range.as_nybbles.x = unk19_temp;
+ trainerObj->range.as_nybbles.y = unk19b_temp;
+ if (collision == 4)
+ return approachDistance;
+
+ return 0;
+}
+
+#define tFuncId data[0]
+#define tTrainerObjHi data[1]
+#define tTrainerObjLo data[2]
+#define tTrainerRange data[3]
+#define tOutOfAshSpriteId data[4]
+#define tData5 data[5]
+
+#define TaskGetTrainerObj(dest, task) do { \
+ (dest) = (struct ObjectEvent *)(((task)->tTrainerObjHi << 16) | ((u16)(task)->tTrainerObjLo)); \
+} while (0)
+
+static void TrainerApproachPlayer(struct ObjectEvent * trainerObj, u8 approachDistance)
+{
+ u8 taskId = CreateTask(Task_RunTrainerSeeFuncList, 80);
+ struct Task * task = &gTasks[taskId];
+ task->tTrainerObjHi = ((uintptr_t)trainerObj) >> 16;
+ task->tTrainerObjLo = (uintptr_t)trainerObj;
+ task->tTrainerRange = approachDistance;
+}
+
+static void StartTrainerApproachWithFollowupTask(TaskFunc taskFunc)
+{
+ u8 taskId = FindTaskIdByFunc(Task_RunTrainerSeeFuncList);
+ SetTaskFuncWithFollowupFunc(taskId, Task_RunTrainerSeeFuncList, taskFunc);
+ gTasks[taskId].tFuncId = 1;
+ Task_RunTrainerSeeFuncList(taskId);
+}
+
+static void Task_RunTrainerSeeFuncList(u8 taskId)
+{
+ struct Task * task = &gTasks[taskId];
+ struct ObjectEvent * trainerObj;
+ TaskGetTrainerObj(trainerObj, task);
+
+ if (!trainerObj->active)
+ {
+ SwitchTaskToFollowupFunc(taskId);
+ }
+ else
+ {
+ while (sTrainerSeeFuncList[task->tFuncId](taskId, task, trainerObj))
+ ;
+ }
+}
+
+// TrainerSeeFuncs
+
+static bool8 TrainerSeeFunc_Dummy(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_StartExclMark(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ u8 action;
+ // FRLG introduces trainers who can see the player from offscreen above.
+ // Handle this case here.
+ if (trainerObj->facingDirection == DIR_SOUTH && task->tTrainerRange > 2)
+ {
+ task->tFuncId = 12;
+ }
+ else
+ {
+ ObjectEventGetLocalIdAndMap(trainerObj, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON);
+ action = GetFaceDirectionMovementAction(trainerObj->facingDirection);
+ ObjectEventSetHeldMovement(trainerObj, action);
+ task->tFuncId++;
+ }
+ return TRUE;
+}
+
+static bool8 TrainerSeeFunc_WaitExclMark(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ if (FieldEffectActiveListContains(FLDEFF_EXCLAMATION_MARK_ICON))
+ {
+ return FALSE;
+ }
+ else
+ {
+ task->tFuncId++;
+ if (trainerObj->animPattern == MOVEMENT_TYPE_TREE_DISGUISE || trainerObj->animPattern == MOVEMENT_TYPE_MOUNTAIN_DISGUISE)
+ task->tFuncId = 6;
+ if (trainerObj->animPattern == MOVEMENT_TYPE_HIDDEN)
+ task->tFuncId = 8;
+ return TRUE;
+ }
+}
+
+static bool8 TrainerSeeFunc_TrainerApproach(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ if (!ObjectEventIsMovementOverridden(trainerObj) || ObjectEventClearHeldMovementIfFinished(trainerObj))
+ {
+ if (task->tTrainerRange)
+ {
+ ObjectEventSetHeldMovement(trainerObj, GetWalkNormalMovementAction(trainerObj->facingDirection));
+ task->tTrainerRange--;
+ }
+ else
+ {
+ ObjectEventSetHeldMovement(trainerObj, MOVEMENT_ACTION_FACE_PLAYER);
+ task->tFuncId++;
+ }
+ }
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_PrepareToEngage(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ struct ObjectEvent *playerObj;
+
+ if (ObjectEventIsMovementOverridden(trainerObj) && !ObjectEventClearHeldMovementIfFinished(trainerObj))
+ return FALSE;
+
+ SetTrainerMovementType(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
+ TryOverrideTemplateCoordsForObjectEvent(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
+ OverrideTemplateCoordsForObjectEvent(trainerObj);
+
+ playerObj = &gObjectEvents[gPlayerAvatar.objectEventId];
+ if (ObjectEventIsMovementOverridden(playerObj) && !ObjectEventClearHeldMovementIfFinished(playerObj))
+ return FALSE;
+
+ sub_805C774();
+ // Uncomment to have player turn to face their opponent
+ // ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetFaceDirectionMovementAction(GetOppositeDirection(trainerObj->facingDirection)));
+ task->tFuncId++;
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_End(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ struct ObjectEvent *playerObj = &gObjectEvents[gPlayerAvatar.objectEventId];
+
+ if (!ObjectEventIsMovementOverridden(playerObj)
+ || ObjectEventClearHeldMovementIfFinished(playerObj))
+ SwitchTaskToFollowupFunc(taskId); // This ends the trainer walk routine.
+ return FALSE;
+}
+
+// Jumps here if disguised. Not used in FRLG.
+static bool8 TrainerSeeFunc_BeginRemoveDisguise(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ if (!ObjectEventIsMovementOverridden(trainerObj)
+ || ObjectEventClearHeldMovementIfFinished(trainerObj))
+ {
+ ObjectEventSetHeldMovement(trainerObj, MOVEMENT_ACTION_REVEAL_TRAINER);
+ task->tFuncId++;
+ }
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_WaitRemoveDisguise(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ if (ObjectEventClearHeldMovementIfFinished(trainerObj))
+ task->tFuncId = 3;
+
+ return FALSE;
+}
+
+// Jump here if hidden in ash. Not used in FRLG.
+static bool8 TrainerSeeFunc_TrainerInAshFacesPlayer(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ if (!ObjectEventIsMovementOverridden(trainerObj)
+ || ObjectEventClearHeldMovementIfFinished(trainerObj))
+ {
+ ObjectEventSetHeldMovement(trainerObj, MOVEMENT_ACTION_FACE_PLAYER);
+ task->tFuncId++;
+ }
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_BeginJumpOutOfAsh(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ if (ObjectEventCheckHeldMovementStatus(trainerObj))
+ {
+ gFieldEffectArguments[0] = trainerObj->currentCoords.x;
+ gFieldEffectArguments[1] = trainerObj->currentCoords.y;
+ gFieldEffectArguments[2] = gSprites[trainerObj->spriteId].subpriority - 1;
+ gFieldEffectArguments[3] = 2;
+ task->tOutOfAshSpriteId = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH);
+ task->tFuncId++;
+ }
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_WaitJumpOutOfAsh(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ struct Sprite *sprite;
+
+ if (gSprites[task->tOutOfAshSpriteId].animCmdIndex == 2)
+ {
+ trainerObj->fixedPriority = FALSE;
+ trainerObj->triggerGroundEffectsOnMove = TRUE;
+
+ sprite = &gSprites[trainerObj->spriteId];
+ sprite->oam.priority = 2;
+ ObjectEventClearHeldMovementIfFinished(trainerObj);
+ ObjectEventSetHeldMovement(trainerObj, GetJumpInPlaceMovementAction(trainerObj->facingDirection));
+ task->tFuncId++;
+ }
+
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_EndJumpOutOfAsh(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
+{
+ if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
+ task->tFuncId = 3;
+
+ return FALSE;
+}
+
+// FRLG exclusive: Scroll the camera up to reveal an offscreen above trainer
+static bool8 TrainerSeeFunc_OffscreenAboveTrainerCreateCameraObj(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
+{
+ int specialObjectId;
+ task->tData5 = 0;
+ specialObjectId = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_YOUNGSTER, 7, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
+ gObjectEvents[specialObjectId].invisible = TRUE;
+ CameraObjectSetFollowedObjectId(gObjectEvents[specialObjectId].spriteId);
+ task->tFuncId++;
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveUp(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj)
+{
+ u8 specialObjectId;
+ TryGetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &specialObjectId);
+
+ if (ObjectEventIsMovementOverridden(&gObjectEvents[specialObjectId]) && !ObjectEventClearHeldMovementIfFinished(&gObjectEvents[specialObjectId]))
+ return FALSE;
+
+ if (task->tData5 != task->tTrainerRange - 1)
+ {
+ ObjectEventSetHeldMovement(&gObjectEvents[specialObjectId], sub_8063FB0(DIR_NORTH));
+ task->tData5++;
+ }
+ else
+ {
+ ObjectEventGetLocalIdAndMap(trainerObj, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
+ FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON);
+ task->tData5 = 0;
+ task->tFuncId++;
+ }
+ return FALSE;
+}
+
+static bool8 TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveDown(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj)
+{
+ u8 specialObjectId;
+ TryGetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &specialObjectId);
+
+ if (FieldEffectActiveListContains(FLDEFF_EXCLAMATION_MARK_ICON))
+ return FALSE;
+
+ if (ObjectEventIsMovementOverridden(&gObjectEvents[specialObjectId]) && !ObjectEventClearHeldMovementIfFinished(&gObjectEvents[specialObjectId]))
+ return FALSE;
+
+ if (task->tData5 != task->tTrainerRange - 1)
+ {
+ ObjectEventSetHeldMovement(&gObjectEvents[specialObjectId], sub_8063FB0(DIR_SOUTH));
+ task->tData5++;
+ }
+ else
+ {
+ CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId());
+ RemoveObjectEventByLocalIdAndMap(OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ task->tData5 = 0;
+ task->tFuncId = 2;
+ }
+ return FALSE;
+}
+
+#undef tData5
+#undef tOutOfAshSpriteId
+#undef tTrainerRange
+#undef tTrainerObjLo
+#undef tTrainerObjHi
+#undef tFuncId
+
+static void Task_RevealTrainer_RunTrainerSeeFuncList(u8 taskId)
+{
+ struct Task * task = &gTasks[taskId];
+ struct ObjectEvent * trainerObj;
+
+ // another objEvent loaded into by loadword?
+ LoadWordFromTwoHalfwords((u16 *)&task->data[1], (uintptr_t *)&trainerObj);
+ if (!task->data[7])
+ {
+ ObjectEventClearAnim(trainerObj);
+ task->data[7]++;
+ }
+ sTrainerSeeFuncList2[task->data[0]](taskId, task, trainerObj);
+ if (task->data[0] == 3 && !FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
+ {
+ SetTrainerMovementType(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
+ TryOverrideTemplateCoordsForObjectEvent(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
+ DestroyTask(taskId);
+ }
+ else
+ {
+ trainerObj->heldMovementFinished = FALSE;
+ }
+}
+
+void MovementAction_RevealTrainer_RunTrainerSeeFuncList(struct ObjectEvent *var)
+{
+ StoreWordInTwoHalfwords((u16 *)&gTasks[CreateTask(Task_RevealTrainer_RunTrainerSeeFuncList, 0)].data[1], (u32)var);
+}
+
+void ScrSpecial_EndTrainerApproach(void)
+{
+ StartTrainerApproachWithFollowupTask(Task_DestroyTrainerApproachTask);
+}
+
+static void Task_DestroyTrainerApproachTask(u8 taskId)
+{
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+// Trainer See Excl Mark Field Effect
+
+#define sLocalId data[0]
+#define sMapNum data[1]
+#define sMapGroup data[2]
+#define sData3 data[3]
+#define sData4 data[4]
+#define sFldEffId data[7]
+
+static const struct OamData sOamData_Emoticons = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(16x16),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(16x16),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const struct SpriteFrameImage sSpriteImages_Emoticons[] = {
+ {sGfx_Emoticons + 0x000, 0x80},
+ {sGfx_Emoticons + 0x040, 0x80},
+ {sGfx_Emoticons + 0x080, 0x80},
+
+ {sGfx_Emoticons + 0x180, 0x80},
+ {sGfx_Emoticons + 0x1C0, 0x80},
+ {sGfx_Emoticons + 0x200, 0x80},
+
+ {sGfx_Emoticons + 0x0C0, 0x80},
+ {sGfx_Emoticons + 0x100, 0x80},
+ {sGfx_Emoticons + 0x140, 0x80},
+
+ {sGfx_Emoticons + 0x240, 0x80},
+ {sGfx_Emoticons + 0x280, 0x80},
+ {sGfx_Emoticons + 0x2C0, 0x80},
+
+ {sGfx_Emoticons + 0x300, 0x80},
+ {sGfx_Emoticons + 0x340, 0x80},
+ {sGfx_Emoticons + 0x380, 0x80},
+};
+
+static const union AnimCmd sAnimCmd_ExclamationMark1[] = {
+ ANIMCMD_FRAME( 0, 4),
+ ANIMCMD_FRAME( 1, 4),
+ ANIMCMD_FRAME( 2, 52),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnimCmd_DoubleExclMark[] = {
+ ANIMCMD_FRAME( 6, 4),
+ ANIMCMD_FRAME( 7, 4),
+ ANIMCMD_FRAME( 8, 52),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnimCmd_X[] = {
+ ANIMCMD_FRAME( 3, 4),
+ ANIMCMD_FRAME( 4, 4),
+ ANIMCMD_FRAME( 5, 52),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnimCmd_SmileyFace[] = {
+ ANIMCMD_FRAME( 9, 4),
+ ANIMCMD_FRAME(10, 4),
+ ANIMCMD_FRAME(11, 52),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sAnimCmd_QuestionMark[] = {
+ ANIMCMD_FRAME(12, 4),
+ ANIMCMD_FRAME(13, 4),
+ ANIMCMD_FRAME(14, 52),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_Emoticons[] = {
+ sAnimCmd_ExclamationMark1,
+ sAnimCmd_DoubleExclMark,
+ sAnimCmd_X,
+ sAnimCmd_SmileyFace,
+ sAnimCmd_QuestionMark
+};
+
+static const struct SpriteTemplate sSpriteTemplate_Emoticons = {
+ .tileTag = 0xFFFF,
+ .paletteTag = 0xFFFF,
+ .oam = &sOamData_Emoticons,
+ .anims = sSpriteAnimTable_Emoticons,
+ .images = sSpriteImages_Emoticons,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_TrainerIcons
+};
+
+u8 FldEff_ExclamationMarkIcon1(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Emoticons, 0, 0, 0x53);
+
+ if (spriteId != MAX_SPRITES)
+ SetIconSpriteData(&gSprites[spriteId], FLDEFF_EXCLAMATION_MARK_ICON, 0);
+
+ return 0;
+}
+
+u8 FldEff_DoubleExclMarkIcon(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Emoticons, 0, 0, 0x52);
+
+ if (spriteId != MAX_SPRITES)
+ SetIconSpriteData(&gSprites[spriteId], FLDEFF_DOUBLE_EXCL_MARK_ICON, 1);
+
+ return 0;
+}
+
+u8 FldEff_XIcon(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Emoticons, 0, 0, 0x52);
+
+ if (spriteId != MAX_SPRITES)
+ SetIconSpriteData(&gSprites[spriteId], FLDEFF_X_ICON, 2);
+
+ return 0;
+}
+
+u8 FldEff_SmileyFaceIcon(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Emoticons, 0, 0, 0x52);
+
+ if (spriteId != MAX_SPRITES)
+ SetIconSpriteData(&gSprites[spriteId], FLDEFF_SMILEY_FACE_ICON, 3);
+
+ return 0;
+}
+
+u8 FldEff_QuestionMarkIcon(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Emoticons, 0, 0, 0x52);
+
+ if (spriteId != MAX_SPRITES)
+ SetIconSpriteData(&gSprites[spriteId], FLDEFF_QUESTION_MARK_ICON, 4);
+
+ return 0;
+}
+
+static void SetIconSpriteData(struct Sprite *sprite, u16 fldEffId, u8 spriteAnimNum)
+{
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = 1;
+
+ sprite->sLocalId = gFieldEffectArguments[0];
+ sprite->sMapNum = gFieldEffectArguments[1];
+ sprite->sMapGroup = gFieldEffectArguments[2];
+ sprite->sData3 = -5;
+ sprite->sFldEffId = fldEffId;
+
+ StartSpriteAnim(sprite, spriteAnimNum);
+}
+
+static void SpriteCB_TrainerIcons(struct Sprite *sprite)
+{
+ u8 objEventId;
+
+ if (TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objEventId)
+ || sprite->animEnded)
+ {
+ FieldEffectStop(sprite, sprite->sFldEffId);
+ }
+ else
+ {
+ struct Sprite *objEventSprite = &gSprites[gObjectEvents[objEventId].spriteId];
+ sprite->sData4 += sprite->sData3;
+ sprite->pos1.x = objEventSprite->pos1.x;
+ sprite->pos1.y = objEventSprite->pos1.y - 16;
+ sprite->pos2.x = objEventSprite->pos2.x;
+ sprite->pos2.y = objEventSprite->pos2.y + sprite->sData4;
+ if (sprite->sData4)
+ sprite->sData3++;
+ else
+ sprite->sData3 = 0;
+ }
+}
+
+#undef sLocalId
+#undef sMapNum
+#undef sMapGroup
+#undef sData3
+#undef sData4
+#undef sFldEffId
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index 0f9907e2d..0c673b5aa 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -2,11 +2,9 @@
#include "main.h"
#include "task.h"
#include "malloc.h"
-#include "save.h"
#include "util.h"
#include "string_util.h"
#include "event_data.h"
-#include "random.h"
#include "cereader_tool.h"
#include "easy_chat.h"
#include "text.h"
@@ -20,16 +18,14 @@
#include "menu.h"
#include "new_menu_helpers.h"
#include "sound.h"
-#include "constants/flags.h"
#include "constants/vars.h"
#include "constants/items.h"
#include "constants/species.h"
-#include "constants/maps.h"
#include "constants/songs.h"
#include "constants/layouts.h"
#include "constants/trainers.h"
#include "constants/facility_trainer_classes.h"
-#include "constants/object_events.h"
+#include "constants/event_objects.h"
#include "constants/trainer_tower.h"
#define CURR_FLOOR sTrainerTowerState->unk_0004.floors[sTrainerTowerState->floorIdx]
@@ -116,102 +112,102 @@ extern const u8 gText_XMinYZSec[];
extern const u8 *const gTrainerTowerChallengeTypeTexts[];
static const struct SinglesTrainerInfo sSingleBattleTrainerInfo[] = {
- {OBJECT_EVENT_GFX_WOMAN_2, FACILITY_CLASS_AROMA_LADY, FEMALE},
- {OBJECT_EVENT_GFX_HIKER, FACILITY_CLASS_RUIN_MANIAC, MALE},
- {OBJECT_EVENT_GFX_TUBER_F, FACILITY_CLASS_TUBER, FEMALE},
- {OBJECT_EVENT_GFX_TUBER_M_2, FACILITY_CLASS_TUBER_2, MALE},
- {OBJECT_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_COOLTRAINER, MALE},
- {OBJECT_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_COOLTRAINER_2, FEMALE},
- {OBJECT_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_HEX_MANIAC, MALE},
- {OBJECT_EVENT_GFX_WOMAN_2, FACILITY_CLASS_LADY, FEMALE},
- {OBJECT_EVENT_GFX_BEAUTY, FACILITY_CLASS_BEAUTY, FEMALE},
- {OBJECT_EVENT_GFX_BOY, FACILITY_CLASS_RICH_BOY, MALE},
- {OBJECT_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_POKEMANIAC, MALE},
- {OBJECT_EVENT_GFX_SWIMMER_M_LAND, FACILITY_CLASS_SWIMMER_MALE, MALE},
- {OBJECT_EVENT_GFX_BLACKBELT, FACILITY_CLASS_BLACK_BELT, MALE},
- {OBJECT_EVENT_GFX_ROCKER, FACILITY_CLASS_GUITARIST, MALE},
- {OBJECT_EVENT_GFX_ROCKER, FACILITY_CLASS_KINDLER, MALE},
- {OBJECT_EVENT_GFX_CAMPER, FACILITY_CLASS_CAMPER, MALE},
- {OBJECT_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_BUG_MANIAC, MALE},
- {OBJECT_EVENT_GFX_BOY, FACILITY_CLASS_PSYCHIC, MALE},
- {OBJECT_EVENT_GFX_WOMAN_1, FACILITY_CLASS_PSYCHIC_2, FEMALE},
- {OBJECT_EVENT_GFX_GENTLEMAN, FACILITY_CLASS_GENTLEMAN, MALE},
- {OBJECT_EVENT_GFX_BOY, FACILITY_CLASS_SCHOOL_KID, MALE},
- {OBJECT_EVENT_GFX_WOMAN_1, FACILITY_CLASS_SCHOOL_KID_2, FEMALE},
- {OBJECT_EVENT_GFX_BALDING_MAN, FACILITY_CLASS_POKEFAN, MALE},
- {OBJECT_EVENT_GFX_WOMAN_3, FACILITY_CLASS_POKEFAN_2, FEMALE},
- {OBJECT_EVENT_GFX_OLD_MAN_1, FACILITY_CLASS_EXPERT, MALE},
- {OBJECT_EVENT_GFX_OLD_WOMAN, FACILITY_CLASS_EXPERT_2, FEMALE},
- {OBJECT_EVENT_GFX_YOUNGSTER, FACILITY_CLASS_YOUNGSTER, MALE},
- {OBJECT_EVENT_GFX_FISHER, FACILITY_CLASS_FISHERMAN, MALE},
- {OBJECT_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_DRAGON_TAMER, MALE},
- {OBJECT_EVENT_GFX_ROCKER, FACILITY_CLASS_BIRD_KEEPER, MALE},
- {OBJECT_EVENT_GFX_LITTLE_BOY, FACILITY_CLASS_NINJA_BOY, MALE},
- {OBJECT_EVENT_GFX_BATTLE_GIRL, FACILITY_CLASS_BATTLE_GIRL, FEMALE},
- {OBJECT_EVENT_GFX_BEAUTY, FACILITY_CLASS_PARASOL_LADY, FEMALE},
- {OBJECT_EVENT_GFX_SWIMMER_F_LAND, FACILITY_CLASS_SWIMMER_FEMALE, FEMALE},
- {OBJECT_EVENT_GFX_PICNICKER, FACILITY_CLASS_PICNICKER, FEMALE},
- {OBJECT_EVENT_GFX_SAILOR, FACILITY_CLASS_SAILOR, MALE},
- {OBJECT_EVENT_GFX_FAT_MAN, FACILITY_CLASS_COLLECTOR, MALE},
- {OBJECT_EVENT_GFX_MAN, FACILITY_CLASS_PKMN_BREEDER, MALE},
- {OBJECT_EVENT_GFX_WOMAN_2, FACILITY_CLASS_PKMN_BREEDER_2, FEMALE},
- {OBJECT_EVENT_GFX_CAMPER, FACILITY_CLASS_PKMN_RANGER, MALE},
- {OBJECT_EVENT_GFX_PICNICKER, FACILITY_CLASS_PKMN_RANGER_2, FEMALE},
- {OBJECT_EVENT_GFX_LASS, FACILITY_CLASS_LASS, FEMALE},
- {OBJECT_EVENT_GFX_BUG_CATCHER, FACILITY_CLASS_BUG_CATCHER, MALE},
- {OBJECT_EVENT_GFX_HIKER, FACILITY_CLASS_HIKER, MALE},
- {OBJECT_EVENT_GFX_YOUNGSTER, FACILITY_CLASS_YOUNGSTER_2, MALE},
- {OBJECT_EVENT_GFX_BUG_CATCHER, FACILITY_CLASS_BUG_CATCHER_2, MALE},
- {OBJECT_EVENT_GFX_LASS, FACILITY_CLASS_LASS_2, FEMALE},
- {OBJECT_EVENT_GFX_SAILOR, FACILITY_CLASS_SAILOR_2, MALE},
- {OBJECT_EVENT_GFX_CAMPER, FACILITY_CLASS_CAMPER_2, MALE},
- {OBJECT_EVENT_GFX_PICNICKER, FACILITY_CLASS_PICNICKER_2, FEMALE},
- {OBJECT_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_POKEMANIAC_2, MALE},
- {OBJECT_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_SUPER_NERD, MALE},
- {OBJECT_EVENT_GFX_HIKER, FACILITY_CLASS_HIKER_2, MALE},
- {OBJECT_EVENT_GFX_BIKER, FACILITY_CLASS_BIKER, MALE},
- {OBJECT_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_BURGLAR, MALE},
- {OBJECT_EVENT_GFX_BALDING_MAN, FACILITY_CLASS_ENGINEER, MALE},
- {OBJECT_EVENT_GFX_FISHER, FACILITY_CLASS_FISHERMAN_2, MALE},
- {OBJECT_EVENT_GFX_SWIMMER_M_LAND, FACILITY_CLASS_SWIMMER_MALE_2, MALE},
- {OBJECT_EVENT_GFX_BIKER, FACILITY_CLASS_CUE_BALL, MALE},
- {OBJECT_EVENT_GFX_OLD_MAN_1, FACILITY_CLASS_GAMER, MALE},
- {OBJECT_EVENT_GFX_BEAUTY, FACILITY_CLASS_BEAUTY_2, FEMALE},
- {OBJECT_EVENT_GFX_SWIMMER_F_LAND, FACILITY_CLASS_SWIMMER_FEMALE_2, FEMALE},
- {OBJECT_EVENT_GFX_BOY, FACILITY_CLASS_PSYCHIC_3, MALE},
- {OBJECT_EVENT_GFX_ROCKER, FACILITY_CLASS_ROCKER, MALE},
- {OBJECT_EVENT_GFX_ROCKER, FACILITY_CLASS_JUGGLER, MALE},
- {OBJECT_EVENT_GFX_MAN, FACILITY_CLASS_TAMER, MALE},
- {OBJECT_EVENT_GFX_ROCKER, FACILITY_CLASS_BIRD_KEEPER_2, MALE},
- {OBJECT_EVENT_GFX_BLACKBELT, FACILITY_CLASS_BLACK_BELT_2, MALE},
- {OBJECT_EVENT_GFX_SCIENTIST, FACILITY_CLASS_SCIENTIST, MALE},
- {OBJECT_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_COOLTRAINER_3, MALE},
- {OBJECT_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_COOLTRAINER_4, FEMALE},
- {OBJECT_EVENT_GFX_GENTLEMAN, FACILITY_CLASS_GENTLEMAN_2, MALE},
- {OBJECT_EVENT_GFX_CHANNELER, FACILITY_CLASS_CHANNELER, FEMALE},
- {OBJECT_EVENT_GFX_WOMAN_1, FACILITY_CLASS_PSYCHIC_4, FEMALE},
- {OBJECT_EVENT_GFX_BATTLE_GIRL, FACILITY_CLASS_CRUSH_GIRL, FEMALE},
- {OBJECT_EVENT_GFX_TUBER_F, FACILITY_CLASS_TUBER_3, FEMALE},
- {OBJECT_EVENT_GFX_WOMAN_2, FACILITY_CLASS_PKMN_BREEDER_3, FEMALE},
- {OBJECT_EVENT_GFX_CAMPER, FACILITY_CLASS_PKMN_RANGER_3, MALE},
- {OBJECT_EVENT_GFX_PICNICKER, FACILITY_CLASS_PKMN_RANGER_4, FEMALE},
- {OBJECT_EVENT_GFX_WOMAN_2, FACILITY_CLASS_AROMA_LADY_2, FEMALE},
- {OBJECT_EVENT_GFX_HIKER, FACILITY_CLASS_RUIN_MANIAC_2, MALE},
- {OBJECT_EVENT_GFX_WOMAN_2, FACILITY_CLASS_LADY_2, FEMALE},
- {OBJECT_EVENT_GFX_LASS, FACILITY_CLASS_PAINTER, FEMALE}
+ {OBJ_EVENT_GFX_WOMAN_2, FACILITY_CLASS_AROMA_LADY, FEMALE},
+ {OBJ_EVENT_GFX_HIKER, FACILITY_CLASS_RUIN_MANIAC, MALE},
+ {OBJ_EVENT_GFX_TUBER_F, FACILITY_CLASS_TUBER, FEMALE},
+ {OBJ_EVENT_GFX_TUBER_M_2, FACILITY_CLASS_TUBER_2, MALE},
+ {OBJ_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_COOLTRAINER, MALE},
+ {OBJ_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_COOLTRAINER_2, FEMALE},
+ {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_HEX_MANIAC, MALE},
+ {OBJ_EVENT_GFX_WOMAN_2, FACILITY_CLASS_LADY, FEMALE},
+ {OBJ_EVENT_GFX_BEAUTY, FACILITY_CLASS_BEAUTY, FEMALE},
+ {OBJ_EVENT_GFX_BOY, FACILITY_CLASS_RICH_BOY, MALE},
+ {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_POKEMANIAC, MALE},
+ {OBJ_EVENT_GFX_SWIMMER_M_LAND, FACILITY_CLASS_SWIMMER_MALE, MALE},
+ {OBJ_EVENT_GFX_BLACKBELT, FACILITY_CLASS_BLACK_BELT, MALE},
+ {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_GUITARIST, MALE},
+ {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_KINDLER, MALE},
+ {OBJ_EVENT_GFX_CAMPER, FACILITY_CLASS_CAMPER, MALE},
+ {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_BUG_MANIAC, MALE},
+ {OBJ_EVENT_GFX_BOY, FACILITY_CLASS_PSYCHIC, MALE},
+ {OBJ_EVENT_GFX_WOMAN_1, FACILITY_CLASS_PSYCHIC_2, FEMALE},
+ {OBJ_EVENT_GFX_GENTLEMAN, FACILITY_CLASS_GENTLEMAN, MALE},
+ {OBJ_EVENT_GFX_BOY, FACILITY_CLASS_SCHOOL_KID, MALE},
+ {OBJ_EVENT_GFX_WOMAN_1, FACILITY_CLASS_SCHOOL_KID_2, FEMALE},
+ {OBJ_EVENT_GFX_BALDING_MAN, FACILITY_CLASS_POKEFAN, MALE},
+ {OBJ_EVENT_GFX_WOMAN_3, FACILITY_CLASS_POKEFAN_2, FEMALE},
+ {OBJ_EVENT_GFX_OLD_MAN_1, FACILITY_CLASS_EXPERT, MALE},
+ {OBJ_EVENT_GFX_OLD_WOMAN, FACILITY_CLASS_EXPERT_2, FEMALE},
+ {OBJ_EVENT_GFX_YOUNGSTER, FACILITY_CLASS_YOUNGSTER, MALE},
+ {OBJ_EVENT_GFX_FISHER, FACILITY_CLASS_FISHERMAN, MALE},
+ {OBJ_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_DRAGON_TAMER, MALE},
+ {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_BIRD_KEEPER, MALE},
+ {OBJ_EVENT_GFX_LITTLE_BOY, FACILITY_CLASS_NINJA_BOY, MALE},
+ {OBJ_EVENT_GFX_BATTLE_GIRL, FACILITY_CLASS_BATTLE_GIRL, FEMALE},
+ {OBJ_EVENT_GFX_BEAUTY, FACILITY_CLASS_PARASOL_LADY, FEMALE},
+ {OBJ_EVENT_GFX_SWIMMER_F_LAND, FACILITY_CLASS_SWIMMER_FEMALE, FEMALE},
+ {OBJ_EVENT_GFX_PICNICKER, FACILITY_CLASS_PICNICKER, FEMALE},
+ {OBJ_EVENT_GFX_SAILOR, FACILITY_CLASS_SAILOR, MALE},
+ {OBJ_EVENT_GFX_FAT_MAN, FACILITY_CLASS_COLLECTOR, MALE},
+ {OBJ_EVENT_GFX_MAN, FACILITY_CLASS_PKMN_BREEDER, MALE},
+ {OBJ_EVENT_GFX_WOMAN_2, FACILITY_CLASS_PKMN_BREEDER_2, FEMALE},
+ {OBJ_EVENT_GFX_CAMPER, FACILITY_CLASS_PKMN_RANGER, MALE},
+ {OBJ_EVENT_GFX_PICNICKER, FACILITY_CLASS_PKMN_RANGER_2, FEMALE},
+ {OBJ_EVENT_GFX_LASS, FACILITY_CLASS_LASS, FEMALE},
+ {OBJ_EVENT_GFX_BUG_CATCHER, FACILITY_CLASS_BUG_CATCHER, MALE},
+ {OBJ_EVENT_GFX_HIKER, FACILITY_CLASS_HIKER, MALE},
+ {OBJ_EVENT_GFX_YOUNGSTER, FACILITY_CLASS_YOUNGSTER_2, MALE},
+ {OBJ_EVENT_GFX_BUG_CATCHER, FACILITY_CLASS_BUG_CATCHER_2, MALE},
+ {OBJ_EVENT_GFX_LASS, FACILITY_CLASS_LASS_2, FEMALE},
+ {OBJ_EVENT_GFX_SAILOR, FACILITY_CLASS_SAILOR_2, MALE},
+ {OBJ_EVENT_GFX_CAMPER, FACILITY_CLASS_CAMPER_2, MALE},
+ {OBJ_EVENT_GFX_PICNICKER, FACILITY_CLASS_PICNICKER_2, FEMALE},
+ {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_POKEMANIAC_2, MALE},
+ {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_SUPER_NERD, MALE},
+ {OBJ_EVENT_GFX_HIKER, FACILITY_CLASS_HIKER_2, MALE},
+ {OBJ_EVENT_GFX_BIKER, FACILITY_CLASS_BIKER, MALE},
+ {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_BURGLAR, MALE},
+ {OBJ_EVENT_GFX_BALDING_MAN, FACILITY_CLASS_ENGINEER, MALE},
+ {OBJ_EVENT_GFX_FISHER, FACILITY_CLASS_FISHERMAN_2, MALE},
+ {OBJ_EVENT_GFX_SWIMMER_M_LAND, FACILITY_CLASS_SWIMMER_MALE_2, MALE},
+ {OBJ_EVENT_GFX_BIKER, FACILITY_CLASS_CUE_BALL, MALE},
+ {OBJ_EVENT_GFX_OLD_MAN_1, FACILITY_CLASS_GAMER, MALE},
+ {OBJ_EVENT_GFX_BEAUTY, FACILITY_CLASS_BEAUTY_2, FEMALE},
+ {OBJ_EVENT_GFX_SWIMMER_F_LAND, FACILITY_CLASS_SWIMMER_FEMALE_2, FEMALE},
+ {OBJ_EVENT_GFX_BOY, FACILITY_CLASS_PSYCHIC_3, MALE},
+ {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_ROCKER, MALE},
+ {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_JUGGLER, MALE},
+ {OBJ_EVENT_GFX_MAN, FACILITY_CLASS_TAMER, MALE},
+ {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_BIRD_KEEPER_2, MALE},
+ {OBJ_EVENT_GFX_BLACKBELT, FACILITY_CLASS_BLACK_BELT_2, MALE},
+ {OBJ_EVENT_GFX_SCIENTIST, FACILITY_CLASS_SCIENTIST, MALE},
+ {OBJ_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_COOLTRAINER_3, MALE},
+ {OBJ_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_COOLTRAINER_4, FEMALE},
+ {OBJ_EVENT_GFX_GENTLEMAN, FACILITY_CLASS_GENTLEMAN_2, MALE},
+ {OBJ_EVENT_GFX_CHANNELER, FACILITY_CLASS_CHANNELER, FEMALE},
+ {OBJ_EVENT_GFX_WOMAN_1, FACILITY_CLASS_PSYCHIC_4, FEMALE},
+ {OBJ_EVENT_GFX_BATTLE_GIRL, FACILITY_CLASS_CRUSH_GIRL, FEMALE},
+ {OBJ_EVENT_GFX_TUBER_F, FACILITY_CLASS_TUBER_3, FEMALE},
+ {OBJ_EVENT_GFX_WOMAN_2, FACILITY_CLASS_PKMN_BREEDER_3, FEMALE},
+ {OBJ_EVENT_GFX_CAMPER, FACILITY_CLASS_PKMN_RANGER_3, MALE},
+ {OBJ_EVENT_GFX_PICNICKER, FACILITY_CLASS_PKMN_RANGER_4, FEMALE},
+ {OBJ_EVENT_GFX_WOMAN_2, FACILITY_CLASS_AROMA_LADY_2, FEMALE},
+ {OBJ_EVENT_GFX_HIKER, FACILITY_CLASS_RUIN_MANIAC_2, MALE},
+ {OBJ_EVENT_GFX_WOMAN_2, FACILITY_CLASS_LADY_2, FEMALE},
+ {OBJ_EVENT_GFX_LASS, FACILITY_CLASS_PAINTER, FEMALE}
};
static const struct DoublesTrainerInfo sDoubleBattleTrainerInfo[] = {
- {OBJECT_EVENT_GFX_BEAUTY, OBJECT_EVENT_GFX_WOMAN_1, FACILITY_CLASS_SR_AND_JR, FEMALE, FEMALE},
- {OBJECT_EVENT_GFX_LITTLE_GIRL, OBJECT_EVENT_GFX_LITTLE_GIRL, FACILITY_CLASS_TWINS, FEMALE, FEMALE},
- {OBJECT_EVENT_GFX_BEAUTY, OBJECT_EVENT_GFX_MAN, FACILITY_CLASS_YOUNG_COUPLE, FEMALE, MALE},
- {OBJECT_EVENT_GFX_OLD_MAN_1, OBJECT_EVENT_GFX_OLD_WOMAN, FACILITY_CLASS_OLD_COUPLE, MALE, FEMALE},
- {OBJECT_EVENT_GFX_TUBER_M_2, OBJECT_EVENT_GFX_SWIMMER_F_LAND, FACILITY_CLASS_SIS_AND_BRO, MALE, FEMALE},
- {OBJECT_EVENT_GFX_LITTLE_GIRL, OBJECT_EVENT_GFX_LITTLE_GIRL, FACILITY_CLASS_TWINS_2, FEMALE, FEMALE},
- {OBJECT_EVENT_GFX_COOLTRAINER_M, OBJECT_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_COOL_COUPLE, MALE, FEMALE},
- {OBJECT_EVENT_GFX_BEAUTY, OBJECT_EVENT_GFX_MAN, FACILITY_CLASS_YOUNG_COUPLE_2, FEMALE, MALE},
- {OBJECT_EVENT_GFX_BATTLE_GIRL, OBJECT_EVENT_GFX_BLACKBELT, FACILITY_CLASS_CRUSH_KIN, FEMALE, MALE},
- {OBJECT_EVENT_GFX_SWIMMER_F_LAND, OBJECT_EVENT_GFX_TUBER_M_2, FACILITY_CLASS_SIS_AND_BRO_2, FEMALE, MALE}
+ {OBJ_EVENT_GFX_BEAUTY, OBJ_EVENT_GFX_WOMAN_1, FACILITY_CLASS_SR_AND_JR, FEMALE, FEMALE},
+ {OBJ_EVENT_GFX_LITTLE_GIRL, OBJ_EVENT_GFX_LITTLE_GIRL, FACILITY_CLASS_TWINS, FEMALE, FEMALE},
+ {OBJ_EVENT_GFX_BEAUTY, OBJ_EVENT_GFX_MAN, FACILITY_CLASS_YOUNG_COUPLE, FEMALE, MALE},
+ {OBJ_EVENT_GFX_OLD_MAN_1, OBJ_EVENT_GFX_OLD_WOMAN, FACILITY_CLASS_OLD_COUPLE, MALE, FEMALE},
+ {OBJ_EVENT_GFX_TUBER_M_2, OBJ_EVENT_GFX_SWIMMER_F_LAND, FACILITY_CLASS_SIS_AND_BRO, MALE, FEMALE},
+ {OBJ_EVENT_GFX_LITTLE_GIRL, OBJ_EVENT_GFX_LITTLE_GIRL, FACILITY_CLASS_TWINS_2, FEMALE, FEMALE},
+ {OBJ_EVENT_GFX_COOLTRAINER_M, OBJ_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_COOL_COUPLE, MALE, FEMALE},
+ {OBJ_EVENT_GFX_BEAUTY, OBJ_EVENT_GFX_MAN, FACILITY_CLASS_YOUNG_COUPLE_2, FEMALE, MALE},
+ {OBJ_EVENT_GFX_BATTLE_GIRL, OBJ_EVENT_GFX_BLACKBELT, FACILITY_CLASS_CRUSH_KIN, FEMALE, MALE},
+ {OBJ_EVENT_GFX_SWIMMER_F_LAND, OBJ_EVENT_GFX_TUBER_M_2, FACILITY_CLASS_SIS_AND_BRO_2, FEMALE, MALE}
};
static const struct TrainerEncounterMusicPairs sTrainerEncounterMusicLUT[105] = {
@@ -585,7 +581,7 @@ static void SetTrainerTowerNPCGraphics(void)
if (i != NELEMS(sSingleBattleTrainerInfo))
trainerGfx1 = sSingleBattleTrainerInfo[i].objGfx;
else
- trainerGfx1 = OBJECT_EVENT_GFX_YOUNGSTER;
+ trainerGfx1 = OBJ_EVENT_GFX_YOUNGSTER;
VarSet(VAR_OBJ_GFX_ID_1, trainerGfx1);
break;
@@ -603,8 +599,8 @@ static void SetTrainerTowerNPCGraphics(void)
}
else
{
- trainerGfx1 = OBJECT_EVENT_GFX_YOUNGSTER;
- trainerGfx2 = OBJECT_EVENT_GFX_YOUNGSTER;
+ trainerGfx1 = OBJ_EVENT_GFX_YOUNGSTER;
+ trainerGfx2 = OBJ_EVENT_GFX_YOUNGSTER;
}
VarSet(VAR_OBJ_GFX_ID_0, trainerGfx1);
VarSet(VAR_OBJ_GFX_ID_3, trainerGfx2);
@@ -622,7 +618,7 @@ static void SetTrainerTowerNPCGraphics(void)
if (i != NELEMS(sSingleBattleTrainerInfo))
trainerGfx1 = sSingleBattleTrainerInfo[i].objGfx;
else
- trainerGfx1 = OBJECT_EVENT_GFX_YOUNGSTER;
+ trainerGfx1 = OBJ_EVENT_GFX_YOUNGSTER;
switch (j)
{
diff --git a/src/trig.c b/src/trig.c
index c2bca3059..2181ebef7 100644
--- a/src/trig.c
+++ b/src/trig.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "trig.h"
// Values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319
const s16 gSineTable[] =
diff --git a/src/union_room_message.c b/src/union_room_message.c
index 1d26d1968..3aeb40524 100644
--- a/src/union_room_message.c
+++ b/src/union_room_message.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "union_room_message.h"
#include "mevent_server.h"
#include "constants/union_room.h"
diff --git a/src/util.c b/src/util.c
index 93aa60f84..b32799584 100644
--- a/src/util.c
+++ b/src/util.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "util.h"
const u32 gBitTable[] =
{
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 9c9a4d67f..135a11575 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -18,13 +18,10 @@
#include "battle.h"
#include "battle_setup.h"
#include "random.h"
-#include "event_object_movement.h"
#include "field_player_avatar.h"
-#include "event_object_80688E4.h"
-#include "event_object_8097404.h"
#include "vs_seeker.h"
-#include "constants/movement_commands.h"
-#include "constants/object_events.h"
+#include "constants/event_object_movement.h"
+#include "constants/event_objects.h"
#include "constants/trainers.h"
#include "constants/maps.h"
#include "constants/items.h"
@@ -547,29 +544,35 @@ static const VsSeekerData sVsSeekerData[] = {
};
static const u8 gUnknown_8453F5C[] = {
- delay_16,
- delay_16,
- delay_16,
- step_end
+ MOVEMENT_ACTION_DELAY_16,
+ MOVEMENT_ACTION_DELAY_16,
+ MOVEMENT_ACTION_DELAY_16,
+ MOVEMENT_ACTION_STEP_END
};
static const u8 gUnknown_8453F60[] = {
- emote_exclamation_mark,
- step_end
+ MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK,
+ MOVEMENT_ACTION_STEP_END
};
static const u8 sMovementScript_TrainerNoRematch[] = {
- emote_x,
- step_end
+ MOVEMENT_ACTION_EMOTE_X,
+ MOVEMENT_ACTION_STEP_END
};
static const u8 sMovementScript_TrainerRematch[] = {
- walk_in_place_fastest_down,
- emote_double_exclamation_mark,
- step_end
+ MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN,
+ MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK,
+ MOVEMENT_ACTION_STEP_END
};
-static const u8 gUnknown_8453F67[] = { 0x08, 0x08, 0x07, 0x09, 0x0a };
+static const u8 gUnknown_8453F67[] = {
+ MOVEMENT_TYPE_FACE_DOWN,
+ MOVEMENT_TYPE_FACE_DOWN,
+ MOVEMENT_TYPE_FACE_UP,
+ MOVEMENT_TYPE_FACE_LEFT,
+ MOVEMENT_TYPE_FACE_RIGHT
+};
// text
@@ -798,8 +801,8 @@ static void GatherNearbyTrainerInfo(void)
sVsSeeker->trainerInfo[vsSeekerObjectIdx].localId = templates[objectEventIdx].localId;
TryGetObjectEventIdByLocalIdAndMap(templates[objectEventIdx].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId);
sVsSeeker->trainerInfo[vsSeekerObjectIdx].objectEventId = objectEventId;
- sVsSeeker->trainerInfo[vsSeekerObjectIdx].xCoord = gObjectEvents[objectEventId].coords2.x - 7;
- sVsSeeker->trainerInfo[vsSeekerObjectIdx].yCoord = gObjectEvents[objectEventId].coords2.y - 7;
+ sVsSeeker->trainerInfo[vsSeekerObjectIdx].xCoord = gObjectEvents[objectEventId].currentCoords.x - 7;
+ sVsSeeker->trainerInfo[vsSeekerObjectIdx].yCoord = gObjectEvents[objectEventId].currentCoords.y - 7;
sVsSeeker->trainerInfo[vsSeekerObjectIdx].graphicsId = templates[objectEventIdx].graphicsId;
vsSeekerObjectIdx++;
}
@@ -951,12 +954,12 @@ void sub_810CB90(void)
TryGetObjectEventIdByLocalIdAndMap(r4[r8].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
r4_2 = &gObjectEvents[sp0];
sub_810CF54(&r4[r8]); // You are using this function incorrectly. Please consult the manual.
- sub_805FE7C(r4_2, gUnknown_8453F67[r4_2->facingDirection]);
+ TryOverrideTemplateCoordsForObjectEvent(r4_2, gUnknown_8453F67[r4_2->facingDirection]);
gSaveBlock1Ptr->trainerRematches[r4[r8].localId] = 0;
if (gSelectedObjectEvent == sp0)
r4_2->animPattern = gUnknown_8453F67[r4_2->facingDirection];
else
- r4_2->animPattern = 0x08;
+ r4_2->animPattern = MOVEMENT_TYPE_FACE_DOWN;
}
}
}
@@ -1126,32 +1129,32 @@ static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId)
{
switch (graphicsId)
{
- case OBJECT_EVENT_GFX_LITTLE_GIRL:
- case OBJECT_EVENT_GFX_YOUNGSTER:
- case OBJECT_EVENT_GFX_BOY:
- case OBJECT_EVENT_GFX_BUG_CATCHER:
- case OBJECT_EVENT_GFX_LASS:
- case OBJECT_EVENT_GFX_WOMAN_1:
- case OBJECT_EVENT_GFX_BATTLE_GIRL:
- case OBJECT_EVENT_GFX_MAN:
- case OBJECT_EVENT_GFX_ROCKER:
- case OBJECT_EVENT_GFX_WOMAN_2:
- case OBJECT_EVENT_GFX_BEAUTY:
- case OBJECT_EVENT_GFX_BALDING_MAN:
- case OBJECT_EVENT_GFX_TUBER_F:
- case OBJECT_EVENT_GFX_CAMPER:
- case OBJECT_EVENT_GFX_PICNICKER:
- case OBJECT_EVENT_GFX_COOLTRAINER_M:
- case OBJECT_EVENT_GFX_COOLTRAINER_F:
- case OBJECT_EVENT_GFX_SWIMMER_M_LAND:
- case OBJECT_EVENT_GFX_SWIMMER_F_LAND:
- case OBJECT_EVENT_GFX_BLACKBELT:
- case OBJECT_EVENT_GFX_HIKER:
- case OBJECT_EVENT_GFX_SAILOR:
+ case OBJ_EVENT_GFX_LITTLE_GIRL:
+ case OBJ_EVENT_GFX_YOUNGSTER:
+ case OBJ_EVENT_GFX_BOY:
+ case OBJ_EVENT_GFX_BUG_CATCHER:
+ case OBJ_EVENT_GFX_LASS:
+ case OBJ_EVENT_GFX_WOMAN_1:
+ case OBJ_EVENT_GFX_BATTLE_GIRL:
+ case OBJ_EVENT_GFX_MAN:
+ case OBJ_EVENT_GFX_ROCKER:
+ case OBJ_EVENT_GFX_WOMAN_2:
+ case OBJ_EVENT_GFX_BEAUTY:
+ case OBJ_EVENT_GFX_BALDING_MAN:
+ case OBJ_EVENT_GFX_TUBER_F:
+ case OBJ_EVENT_GFX_CAMPER:
+ case OBJ_EVENT_GFX_PICNICKER:
+ case OBJ_EVENT_GFX_COOLTRAINER_M:
+ case OBJ_EVENT_GFX_COOLTRAINER_F:
+ case OBJ_EVENT_GFX_SWIMMER_M_LAND:
+ case OBJ_EVENT_GFX_SWIMMER_F_LAND:
+ case OBJ_EVENT_GFX_BLACKBELT:
+ case OBJ_EVENT_GFX_HIKER:
+ case OBJ_EVENT_GFX_SAILOR:
return 0x4e;
- case OBJECT_EVENT_GFX_TUBER_M_1:
- case OBJECT_EVENT_GFX_SWIMMER_M_WATER:
- case OBJECT_EVENT_GFX_SWIMMER_F_WATER:
+ case OBJ_EVENT_GFX_TUBER_M_1:
+ case OBJ_EVENT_GFX_SWIMMER_M_WATER:
+ case OBJ_EVENT_GFX_SWIMMER_F_WATER:
return 0x4f;
default:
return 0x4d;
@@ -1312,7 +1315,7 @@ static void StartAllRespondantIdleMovements(void)
if (sub_810CF04(sVsSeeker->trainerInfo[j].objectEventId) == 1)
SetTrainerMovementType(r4, sVsSeeker->runningBehaviourEtcArray[i]);
- sub_805FE7C(r4, sVsSeeker->runningBehaviourEtcArray[i]);
+ TryOverrideTemplateCoordsForObjectEvent(r4, sVsSeeker->runningBehaviourEtcArray[i]);
gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[j].localId] = GetNextAvailableRematchTrainer(sVsSeekerData, sVsSeeker->trainerInfo[j].trainerIdx, &dummy);
}
}
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index b32eb583a..b3605db47 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -367,11 +367,11 @@ bool8 StandardWildEncounter(u32 currMetatileBehavior, u16 previousMetatileBehavi
headerId = GetCurrentMapWildMonHeaderId();
if (headerId != 0xFFFF)
{
- if (sub_8058F1C(currMetatileBehavior, 4) == TRUE)
+ if (GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 4) == TRUE)
{
if (gWildMonHeaders[headerId].landMonsInfo == NULL)
return FALSE;
- else if (previousMetatileBehavior != sub_8058F1C(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll())
+ else if (previousMetatileBehavior != GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll())
return FALSE;
if (DoWildEncounterRateTest(gWildMonHeaders[headerId].landMonsInfo->encounterRate, FALSE) != TRUE)
{
@@ -405,12 +405,12 @@ bool8 StandardWildEncounter(u32 currMetatileBehavior, u16 previousMetatileBehavi
}
}
}
- else if (sub_8058F1C(currMetatileBehavior, 4) == 2
- || (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && MetatileBehavior_IsBridge(sub_8058F1C(currMetatileBehavior, 0)) == TRUE))
+ else if (GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 4) == 2
+ || (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && MetatileBehavior_IsBridge(GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0)) == TRUE))
{
if (gWildMonHeaders[headerId].waterMonsInfo == NULL)
return FALSE;
- else if (previousMetatileBehavior != sub_8058F1C(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll())
+ else if (previousMetatileBehavior != GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll())
return FALSE;
else if (DoWildEncounterRateTest(gWildMonHeaders[headerId].waterMonsInfo->encounterRate, FALSE) != TRUE)
{
@@ -474,7 +474,7 @@ bool8 SweetScentWildEncounter(void)
headerId = GetCurrentMapWildMonHeaderId();
if (headerId != 0xFFFF)
{
- if (sub_8058F48(x, y, 4) == 1)
+ if (MapGridGetMetatileAttributeAt(x, y, 4) == 1)
{
if (TryStartRoamerEncounter() == TRUE)
{
@@ -490,7 +490,7 @@ bool8 SweetScentWildEncounter(void)
BattleSetup_StartWildBattle();
return TRUE;
}
- else if (sub_8058F48(x, y, 4) == 2)
+ else if (MapGridGetMetatileAttributeAt(x, y, 4) == 2)
{
if (TryStartRoamerEncounter() == TRUE)
{
@@ -711,7 +711,7 @@ void ResetEncounterRateModifiers(void)
static bool8 HandleWildEncounterCooldown(u32 currMetatileBehavior)
{
- u8 unk = sub_8058F1C(currMetatileBehavior, 4);
+ u8 unk = GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 4);
u32 minSteps;
u32 encRate;
if (unk == 0)
@@ -763,19 +763,19 @@ bool8 TryStandardWildEncounter(u32 currMetatileBehavior)
{
if (!HandleWildEncounterCooldown(currMetatileBehavior))
{
- sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0);
+ sWildEncounterData.prevMetatileBehavior = GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0);
return FALSE;
}
else if (StandardWildEncounter(currMetatileBehavior, sWildEncounterData.prevMetatileBehavior) == TRUE)
{
sWildEncounterData.encounterRateBuff = 0;
sWildEncounterData.stepsSinceLastEncounter = 0;
- sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0);
+ sWildEncounterData.prevMetatileBehavior = GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0);
return TRUE;
}
else
{
- sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0);
+ sWildEncounterData.prevMetatileBehavior = GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0);
return FALSE;
}
}