summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/abilities.h86
-rw-r--r--include/bard_music.h31
-rw-r--r--include/battle.h317
-rw-r--r--include/battle_ai.h6
-rw-r--r--include/battle_anim.h50
-rw-r--r--include/battle_anim_80CA710.h2
-rw-r--r--include/battle_interface.h4
-rw-r--r--include/battle_message.h137
-rw-r--r--include/battle_move_effects.h222
-rw-r--r--include/battle_party_menu.h6
-rw-r--r--include/battle_setup.h95
-rw-r--r--include/battle_tower.h98
-rw-r--r--include/battle_transition.h4
-rw-r--r--include/battle_util.h29
-rw-r--r--include/berry.h29
-rw-r--r--include/bike.h53
-rw-r--r--include/braille_puzzles.h2
-rw-r--r--include/cable_car_util.h13
-rw-r--r--include/cable_club.h30
-rw-r--r--include/choose_party.h10
-rw-r--r--include/constants/abilities.h83
-rw-r--r--include/constants/battle_constants.h315
-rw-r--r--include/constants/battle_move_effects.h219
-rw-r--r--include/constants/decorations.h126
-rw-r--r--include/constants/easy_chat.h1064
-rw-r--r--include/constants/flags.h906
-rw-r--r--include/constants/game_stat.h (renamed from include/game_stat.h)6
-rw-r--r--include/constants/hold_effects.h (renamed from include/hold_effects.h)6
-rw-r--r--include/constants/items.h389
-rw-r--r--include/constants/map_objects.h252
-rw-r--r--include/constants/maps.h474
-rw-r--r--include/constants/mauville_man.h10
-rw-r--r--include/constants/moves.h362
-rw-r--r--include/constants/opponents.h699
-rw-r--r--include/constants/secret_bases.h110
-rw-r--r--include/constants/songs.h373
-rw-r--r--include/constants/species.h450
-rw-r--r--include/constants/vars.h196
-rw-r--r--include/constants/weather.h39
-rw-r--r--include/contest.h265
-rw-r--r--include/contest_link_80C857C.h1
-rw-r--r--include/data/field_map_obj/anim_func_ptrs.h1519
-rw-r--r--include/data/field_map_obj/base_oam.h56
-rw-r--r--include/data/field_map_obj/berry_tree_graphics_tables.h573
-rw-r--r--include/data/field_map_obj/callback_subroutine_pointers.h442
-rw-r--r--include/data/field_map_obj/field_effect_object_template_pointers.h84
-rw-r--r--include/data/field_map_obj/field_effect_objects.h897
-rw-r--r--include/data/field_map_obj/map_object_anims.h886
-rw-r--r--include/data/field_map_obj/map_object_graphics_info.h227
-rw-r--r--include/data/field_map_obj/map_object_graphics_info_pointers.h448
-rw-r--r--include/data/field_map_obj/map_object_pic_tables.h1879
-rw-r--r--include/data/field_map_obj/map_object_subsprites.h345
-rw-r--r--include/data/pokemon/base_stats.h7823
-rw-r--r--include/data/pokemon/cry_ids.h146
-rw-r--r--include/data/pokemon/dex_order.h15
-rw-r--r--include/data/pokemon/evolution.h608
-rw-r--r--include/data/pokemon/experience_tables.h828
-rw-r--r--include/data/pokemon/item_effects.h824
-rw-r--r--include/data/pokemon/level_up_learnset_pointers.h423
-rw-r--r--include/data/pokemon/level_up_learnsets.h5627
-rw-r--r--include/data/pokemon/nature_stats.h37
-rw-r--r--include/data/pokemon/spinda_spots.h15
-rw-r--r--include/data/pokemon/tmhm_learnsets.h431
-rw-r--r--include/data/pokemon/trainer_class_lookups.h168
-rw-r--r--include/data2.h13
-rw-r--r--include/daycare.h21
-rw-r--r--include/decompress.h2
-rw-r--r--include/decoration.h129
-rw-r--r--include/dewford_trend.h4
-rw-r--r--include/diploma.h2
-rw-r--r--include/easy_chat.h144
-rw-r--r--include/event_data.h14
-rw-r--r--include/evolution_graphics.h6
-rw-r--r--include/evolution_scene.h10
-rwxr-xr-xinclude/ewram.h274
-rw-r--r--include/field_camera.h2
-rw-r--r--include/field_control_avatar.h2
-rw-r--r--include/field_door.h6
-rw-r--r--include/field_effect.h5
-rw-r--r--include/field_effect_helpers.h7
-rw-r--r--include/field_fadetransition.h2
-rw-r--r--include/field_map_obj.h79
-rw-r--r--include/field_map_obj_helpers.h2
-rw-r--r--include/field_player_avatar.h26
-rw-r--r--include/field_poison.h2
-rw-r--r--include/field_special_scene.h4
-rw-r--r--include/field_specials.h1
-rw-r--r--include/field_weather.h138
-rw-r--r--include/flags.h91
-rw-r--r--include/fldeff_80C5CD4.h9
-rw-r--r--include/fldeff_decoration.h9
-rw-r--r--include/fldeff_poison.h7
-rw-r--r--include/fldeff_recordmixing.h7
-rw-r--r--include/gba/defines.h9
-rw-r--r--include/gba/flash_internal.h10
-rw-r--r--include/gba/io_reg.h23
-rw-r--r--include/gba/m4a_internal.h4
-rw-r--r--include/gba/macro.h83
-rw-r--r--include/gba/types.h11
-rw-r--r--include/global.berry.h71
-rw-r--r--include/global.fieldmap.h148
-rw-r--r--include/global.h393
-rw-r--r--include/graphics.h179
-rw-r--r--include/heated_rock.h10
-rw-r--r--include/intro_credits_graphics.h14
-rw-r--r--include/item_use.h5
-rw-r--r--include/items.h389
-rw-r--r--include/landmark.h2
-rw-r--r--include/learn_move.h2
-rw-r--r--include/m4a.h6
-rw-r--r--include/mail_data.h2
-rw-r--r--include/map_constants.h1098
-rw-r--r--include/map_obj_lock.h2
-rw-r--r--include/map_object_constants.h239
-rw-r--r--include/matsuda_debug_menu.h26
-rw-r--r--include/mauville_man.h (renamed from include/mauville_old_man.h)7
-rw-r--r--include/menu.h7
-rw-r--r--include/money.h18
-rw-r--r--include/mori_debug_menu.h16
-rw-r--r--include/moves.h363
-rw-r--r--include/mystery_event_msg.h16
-rw-r--r--include/new_game.h2
-rw-r--r--include/opponent_constants.h702
-rw-r--r--include/overworld.h (renamed from include/rom4.h)89
-rw-r--r--include/party_menu.h194
-rw-r--r--include/player_pc.h5
-rw-r--r--include/pokeball.h1
-rw-r--r--include/pokedex.h14
-rw-r--r--include/pokemon.h103
-rw-r--r--include/pokemon_icon.h6
-rw-r--r--include/pokemon_menu.h48
-rw-r--r--include/pokemon_storage_system.h2
-rw-r--r--include/pokemon_summary_screen.h61
-rw-r--r--include/pokenav.h60
-rw-r--r--include/random.h (renamed from include/rng.h)7
-rw-r--r--include/record_mixing.h2
-rw-r--r--include/region_map.h14
-rwxr-xr-xinclude/region_map_sections.h60
-rw-r--r--include/roamer.h2
-rw-r--r--include/rom3.h8
-rw-r--r--include/rom6.h2
-rw-r--r--include/rom_8077ABC.h66
-rw-r--r--include/roulette.h38
-rw-r--r--include/roulette_util.h14
-rw-r--r--include/save.h2
-rw-r--r--include/script.h8
-rw-r--r--include/script_menu.h34
-rw-r--r--include/script_movement.h4
-rw-r--r--include/script_pokemon_80C4.h4
-rw-r--r--include/script_pokemon_80F9.h8
-rw-r--r--include/secret_base.h23
-rw-r--r--include/slot_machine.h75
-rw-r--r--include/songs.h374
-rw-r--r--include/species.h452
-rw-r--r--include/sprite.h36
-rw-r--r--include/start_menu.h2
-rw-r--r--include/string_util.h2
-rw-r--r--include/strings2.h4
-rw-r--r--include/text.h8
-rw-r--r--include/text_window.h4
-rw-r--r--include/trade.h61
-rw-r--r--include/trader.h3
-rw-r--r--include/trainer.h270
-rw-r--r--include/trainer_see.h28
-rw-r--r--include/tv.h9
-rw-r--r--include/unknown_task.h34
-rw-r--r--include/use_pokeblock.h13
-rw-r--r--include/util.h2
-rw-r--r--include/vars.h53
-rw-r--r--include/wild_encounter.h16
170 files changed, 9253 insertions, 29817 deletions
diff --git a/include/abilities.h b/include/abilities.h
deleted file mode 100644
index 36a7ab671..000000000
--- a/include/abilities.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef GUARD_ABILITIES_H
-#define GUARD_ABILITIES_H
-
-enum
-{
- ABILITY_NONE,
- ABILITY_STENCH,
- ABILITY_DRIZZLE,
- ABILITY_SPEED_BOOST,
- ABILITY_BATTLE_ARMOR,
- ABILITY_STURDY,
- ABILITY_DAMP,
- ABILITY_LIMBER,
- ABILITY_SAND_VEIL,
- ABILITY_STATIC,
- ABILITY_VOLT_ABSORB,
- ABILITY_WATER_ABSORB,
- ABILITY_OBLIVIOUS,
- ABILITY_CLOUD_NINE,
- ABILITY_COMPOUND_EYES,
- ABILITY_INSOMNIA,
- ABILITY_COLOR_CHANGE,
- ABILITY_IMMUNITY,
- ABILITY_FLASH_FIRE,
- ABILITY_SHIELD_DUST,
- ABILITY_OWN_TEMPO,
- ABILITY_SUCTION_CUPS,
- ABILITY_INTIMIDATE,
- ABILITY_SHADOW_TAG,
- ABILITY_ROUGH_SKIN,
- ABILITY_WONDER_GUARD,
- ABILITY_LEVITATE,
- ABILITY_EFFECT_SPORE,
- ABILITY_SYNCHRONIZE,
- ABILITY_CLEAR_BODY,
- ABILITY_NATURAL_CURE,
- ABILITY_LIGHTNING_ROD,
- ABILITY_SERENE_GRACE,
- ABILITY_SWIFT_SWIM,
- ABILITY_CHLOROPHYLL,
- ABILITY_ILLUMINATE,
- ABILITY_TRACE,
- ABILITY_HUGE_POWER,
- ABILITY_POISON_POINT,
- ABILITY_INNER_FOCUS,
- ABILITY_MAGMA_ARMOR,
- ABILITY_WATER_VEIL,
- ABILITY_MAGNET_PULL,
- ABILITY_SOUNDPROOF,
- ABILITY_RAIN_DISH,
- ABILITY_SAND_STREAM,
- ABILITY_PRESSURE,
- ABILITY_THICK_FAT,
- ABILITY_EARLY_BIRD,
- ABILITY_FLAME_BODY,
- ABILITY_RUN_AWAY,
- ABILITY_KEEN_EYE,
- ABILITY_HYPER_CUTTER,
- ABILITY_PICKUP,
- ABILITY_TRUANT,
- ABILITY_HUSTLE,
- ABILITY_CUTE_CHARM,
- ABILITY_PLUS,
- ABILITY_MINUS,
- ABILITY_FORECAST,
- ABILITY_STICKY_HOLD,
- ABILITY_SHED_SKIN,
- ABILITY_GUTS,
- ABILITY_MARVEL_SCALE,
- ABILITY_LIQUID_OOZE,
- ABILITY_OVERGROW,
- ABILITY_BLAZE,
- ABILITY_TORRENT,
- ABILITY_SWARM,
- ABILITY_ROCK_HEAD,
- ABILITY_DROUGHT,
- ABILITY_ARENA_TRAP,
- ABILITY_VITAL_SPIRIT,
- ABILITY_WHITE_SMOKE,
- ABILITY_PURE_POWER,
- ABILITY_SHELL_ARMOR,
- ABILITY_CACOPHONY,
- ABILITY_AIR_LOCK
-};
-
-#endif // GUARD_ABILITIES_H
diff --git a/include/bard_music.h b/include/bard_music.h
new file mode 100644
index 000000000..529fd50f8
--- /dev/null
+++ b/include/bard_music.h
@@ -0,0 +1,31 @@
+#ifndef GUARD_BARD_MUSIC_H
+#define GUARD_BARD_MUSIC_H
+
+struct BardSound;
+
+struct BardPhoneme
+{
+ /*0x00*/ u16 sound;
+ /*0x02*/ u16 length;
+ /*0x04*/ s16 pitch;
+ /*0x06*/ u16 volume;
+};
+
+struct BardSong
+{
+ /*0x00*/ u8 currWord;
+ /*0x01*/ u8 currPhoneme;
+ /*0x02*/ u8 phonemeTimer;
+ /*0x03*/ u8 state;
+ /*0x04*/ s16 var04;
+ /*0x06*/ u16 volume;
+ /*0x08*/ s16 pitch;
+ /*0x0A*/ s16 voiceInflection;
+ /*0x0C*/ u16 lyrics[6];
+ /*0x18*/ struct BardPhoneme phonemes[6];
+};
+
+const struct BardSound *GetWordSounds(u16 arg0, u16 arg1);
+s32 GetWordPhonemes(struct BardSong *dest, const struct BardSound *src, u16 arg2);
+
+#endif // GUARD_BARD_MUSIC_H
diff --git a/include/battle.h b/include/battle.h
index 72211f50f..27ed57045 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -2,179 +2,21 @@
#define GUARD_BATTLE_H
#include "sprite.h"
+#include "constants/battle_constants.h"
-#define BATTLE_TYPE_DOUBLE 0x0001
-#define BATTLE_TYPE_LINK 0x0002
-#define BATTLE_TYPE_WILD 0x0004
-#define BATTLE_TYPE_TRAINER 0x0008
-#define BATTLE_TYPE_FIRST_BATTLE 0x0010
-#define BATTLE_TYPE_20 0x0020
-#define BATTLE_TYPE_MULTI 0x0040
-#define BATTLE_TYPE_SAFARI 0x0080
-#define BATTLE_TYPE_BATTLE_TOWER 0x0100
-#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
-#define BATTLE_TYPE_ROAMER 0x0400
-#define BATTLE_TYPE_EREADER_TRAINER 0x0800
-#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
-#define BATTLE_TYPE_LEGENDARY 0x2000
-#define BATTLE_TYPE_REGI 0x4000
-
-#define BATTLE_WON 0x1
-#define BATTLE_LOST 0x2
-#define BATTLE_DREW 0x3
-#define BATTLE_RAN 0x4
-#define BATTLE_PLAYER_TELEPORTED 0x5
-#define BATTLE_POKE_FLED 0x6
-#define BATTLE_CAUGHT 0x7
-#define BATTLE_OPPONENT_TELEPORTED 0xA
-
-#define AI_ACTION_DONE 0x0001
-#define AI_ACTION_FLEE 0x0002
-#define AI_ACTION_WATCH 0x0004
-#define AI_ACTION_DO_NOT_ATTACK 0x0008
-#define AI_ACTION_UNK5 0x0010
-#define AI_ACTION_UNK6 0x0020
-#define AI_ACTION_UNK7 0x0040
-#define AI_ACTION_UNK8 0x0080
-
-#define STATUS_SLEEP 0x7
-#define STATUS_POISON 0x8
-#define STATUS_BURN 0x10
-#define STATUS_FREEZE 0x20
-#define STATUS_PARALYSIS 0x40
-#define STATUS_TOXIC_POISON 0x80
-#define STATUS_TOXIC_COUNTER 0xF00
-
-#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON))
-#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
-
-#define STATUS2_CONFUSION 0x00000007
-#define STATUS2_FLINCHED 0x00000008
-#define STATUS2_UPROAR 0x00000070
-#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200
-#define STATUS2_LOCK_CONFUSE 0x00000C00
-#define STATUS2_MULTIPLETURNS 0x00001000
-#define STATUS2_WRAPPED 0x0000E000
-#define STATUS2_INFATUATION 0x000F0000
-#define STATUS2_FOCUS_ENERGY 0x00100000
-#define STATUS2_TRANSFORMED 0x00200000
-#define STATUS2_RECHARGE 0x00400000
-#define STATUS2_RAGE 0x00800000
-#define STATUS2_SUBSTITUTE 0x01000000
-#define STATUS2_DESTINY_BOND 0x02000000
-#define STATUS2_ESCAPE_PREVENTION 0x04000000
-#define STATUS2_NIGHTMARE 0x08000000
-#define STATUS2_CURSED 0x10000000
-#define STATUS2_FORESIGHT 0x20000000
-#define STATUS2_DEFENSE_CURL 0x40000000
-#define STATUS2_TORMENT 0x80000000
-
-#define STATUS3_LEECHSEED_BANK 0x3
-#define STATUS3_LEECHSEED 0x4
-#define STATUS3_ALWAYS_HITS 0x18 //two bits
-#define STATUS3_PERISH_SONG 0x20
-#define STATUS3_ON_AIR 0x40
-#define STATUS3_UNDERGROUND 0x80
-#define STATUS3_MINIMIZED 0x100
-#define STATUS3_ROOTED 0x400
-#define STATUS3_CHARGED_UP 0x200
-#define STATUS3_YAWN 0x1800 //two bits
-#define STATUS3_IMPRISIONED 0x2000
-#define STATUS3_GRUDGE 0x4000
-#define STATUS3_CANT_SCORE_A_CRIT 0x8000
-#define STATUS3_MUDSPORT 0x10000
-#define STATUS3_WATERSPORT 0x20000
-#define STATUS3_UNDERWATER 0x40000
-#define STATUS3_INTIMIDATE_POKES 0x80000
-#define STATUS3_TRACE 0x100000
-
-#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER))
-
-#define HITMARKER_x20 0x00000020
-#define HITMARKER_DESTINYBOND 0x00000040
-#define HITMARKER_NO_ANIMATIONS 0x00000080
-#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
-#define HITMARKER_NO_ATTACKSTRING 0x00000200
-#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
-#define HITMARKER_NO_PPDEDUCT 0x00000800
-#define HITMARKER_PURSUIT_TRAP 0x00001000
-#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
-#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
-#define HITMARKER_IGNORE_ON_AIR 0x00010000
-#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
-#define HITMARKER_IGNORE_UNDERWATER 0x00040000
-#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
-#define HITMARKER_x100000 0x00100000
-#define HITMARKER_x200000 0x00200000
-#define HITMARKER_x400000 0x00400000
-#define HITMARKER_x800000 0x00800000
-#define HITMARKER_GRUDGE 0x01000000
-#define HITMARKER_OBEYS 0x02000000
-#define HITMARKER_x8000000 0x08000000
-#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
-#define HITMARKER_UNK(bank) ((0x10000000 << bank))
-
-#define SIDE_STATUS_REFLECT (1 << 0)
-#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
-#define SIDE_STATUS_X4 (1 << 2)
-#define SIDE_STATUS_SPIKES (1 << 4)
-#define SIDE_STATUS_SAFEGUARD (1 << 5)
-#define SIDE_STATUS_FUTUREATTACK (1 << 6)
-#define SIDE_STATUS_MIST (1 << 8)
-#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
-
-#define ABILITYEFFECT_ON_SWITCHIN 0x0
-#define ABILITYEFFECT_ENDTURN 0x1
-#define ABILITYEFFECT_MOVES_BLOCK 0x2
-#define ABILITYEFFECT_ABSORBING 0x3
-#define ABILITYEFFECT_CONTACT 0x4
-#define ABILITYEFFECT_IMMUNITY 0x5
-#define ABILITYEFFECT_FORECAST 0x6
-#define ABILITYEFFECT_SYNCHRONIZE 0x7
-#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8
-#define ABILITYEFFECT_INTIMIDATE1 0x9
-#define ABILITYEFFECT_INTIMIDATE2 0xA
-#define ABILITYEFFECT_TRACE 0xB
-#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC
-#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD
-#define ABILITYEFFECT_FIELD_SPORT 0xE
-#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF
-#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10
-#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11
-#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
-#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
-
-#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
-
-#define MOVESTATUS_MISSED (1 << 0)
-#define MOVESTATUS_SUPEREFFECTIVE (1 << 1)
-#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2)
-#define MOVESTATUS_NOTAFFECTED (1 << 3)
-#define MOVESTATUS_ONEHITKO (1 << 4)
-#define MOVESTATUS_FAILED (1 << 5)
-#define MOVESTATUS_ENDURED (1 << 6)
-#define MOVESTATUS_HUNGON (1 << 7)
-
-#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))
-
-#define MAX_TRAINER_ITEMS 4
-#define MAX_MON_MOVES 4
-#define MAX_BANKS_BATTLE 4
-
-#define WEATHER_RAIN_TEMPORARY (1 << 0)
-#define WEATHER_RAIN_DOWNPOUR (1 << 1)
-#define WEATHER_RAIN_PERMANENT (1 << 2)
-#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT))
-#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
-#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
-#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT))
-#define WEATHER_SUN_TEMPORARY (1 << 5)
-#define WEATHER_SUN_PERMANENT (1 << 6)
-#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
-#define WEATHER_HAIL (1 << 7)
-
-// needed to match the hack that is get_item, thanks cam, someone else clean this up later.
-extern u8 unk_2000000[];
+enum
+{
+ BATTLE_TERRAIN_GRASS,
+ BATTLE_TERRAIN_LONG_GRASS,
+ BATTLE_TERRAIN_SAND,
+ BATTLE_TERRAIN_UNDERWATER,
+ BATTLE_TERRAIN_WATER,
+ BATTLE_TERRAIN_POND,
+ BATTLE_TERRAIN_MOUNTAIN,
+ BATTLE_TERRAIN_CAVE,
+ BATTLE_TERRAIN_BUILDING,
+ BATTLE_TERRAIN_PLAIN,
+};
struct Trainer
{
@@ -221,7 +63,11 @@ struct AI_ThinkingStruct /* 0x2016800 */
struct BattleStruct /* 0x2000000 */
{
- u8 filler0[0x15DDE];
+ /*0x00000*/ u8 unk0;
+ /*0x00001*/ bool8 unk1;
+ /*0x00002*/ u8 unk2;
+ /*0x00003*/ bool8 unk3;
+ u8 filler4[0x15DDA];
/*0x15DDE*/ u8 unk15DDE;
/*0x15DDF*/ u8 unk15DDF;
/*0x15DE0*/ u8 filler15DE0[0x220];
@@ -229,12 +75,11 @@ struct BattleStruct /* 0x2000000 */
/*0x16001*/ u8 turnEffectsBank;
/*0x16002*/ u8 animTurn;
/*0x16003*/ u8 scriptingActive;
- /*0x16004*/ u8 wrappedMove1[4];
- /*0x16008*/ u8 wrappedMove2[4];
+ /*0x16004*/ u8 wrappedMove[8];
/*0x1600C*/ u8 cmd49StateTracker;
/*0x1600D*/ u8 unk1600D;
/*0x1600E*/ u8 turncountersTracker;
- /*0x1600F*/ u8 cmd23StateTracker;
+ /*0x1600F*/ u8 getexpStateTracker;
/*0x16010*/ u8 moveTarget[4];
/*0x16014*/ u8 unk16014;
/*0x16015*/ u8 unk16015;
@@ -382,10 +227,8 @@ struct BattleStruct /* 0x2000000 */
/*0x160D5*/ u8 unk160D5;
/*0x160D6*/ u8 unk160D6;
/*0x160D7*/ u8 unk160D7;
- /*0x160D8*/ u8 unk160D8;
- /*0x160D9*/ u8 unk160D9;
- /*0x160DA*/ u8 unk160DA;
- /*0x160DB*/ u8 unk160DB;
+ /*0x160D8*/ u8 unk160D8[2];
+ /*0x160DA*/ u8 unk160DA[2];
/*0x160DC*/ u8 unk160DC;
/*0x160DD*/ u8 intimidateBank;
/*0x160DE*/ u8 unk160DE;
@@ -461,7 +304,7 @@ struct BattleStruct /* 0x2000000 */
struct DisableStruct
{
- /*0x00*/ u32 unk0;
+ /*0x00*/ u32 transformedMonPersonality;
/*0x04*/ u16 disabledMove;
/*0x06*/ u16 encoredMove;
/*0x08*/ u8 protectUses;
@@ -518,6 +361,11 @@ struct BattleResults
u8 unk36[10]; // usedBalls?
};
+struct Struct2017100
+{
+ u32 arr[4];
+};
+
struct Struct2017800
{
u8 invisible:1;
@@ -530,25 +378,25 @@ struct Struct2017800
struct Struct2017810
{
- u8 unk0_0:1;
- u8 unk0_1:1;
- u8 unk0_2:1;
- u8 unk0_3:1;
- u8 unk0_4:1;
- u8 unk0_5:1;
- u8 unk0_6:1;
- u8 unk0_7:1;
- u8 unk1_0:1;
- u8 unk1_1:5;
- u8 unk2;
- u8 unk3;
- u8 unk4;
- u8 unk5;
- u8 unk6;
- u8 unk7;
- u8 unk8;
- u8 unk9;
- u8 fillerA[2];
+ /*0x00*/ u8 unk0_0:1;
+ /*0x00*/ u8 unk0_1:1;
+ /*0x00*/ u8 unk0_2:1;
+ /*0x00*/ u8 unk0_3:1;
+ /*0x00*/ u8 unk0_4:1;
+ /*0x00*/ u8 unk0_5:1;
+ /*0x00*/ u8 unk0_6:1;
+ /*0x00*/ u8 unk0_7:1;
+ /*0x01*/ u8 unk1_0:1;
+ /*0x01*/ u8 unk1_1:5;
+ /*0x02*/ u8 unk2;
+ /*0x03*/ u8 unk3;
+ /*0x04*/ u8 unk4;
+ /*0x05*/ u8 unk5;
+ /*0x06*/ u8 unk6;
+ /*0x07*/ u8 unk7;
+ /*0x08*/ u8 unk8;
+ /*0x09*/ u8 unk9;
+ /*0x0A*/ u8 fillerA[2];
};
struct Struct2017840
@@ -651,25 +499,36 @@ extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE];
extern struct BattleResults gBattleResults;
extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE];
extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE];
-extern struct sideTimer gSideTimer[2];
+extern struct sideTimer gSideTimers[2];
extern struct WishFutureKnock gWishFutureKnock;
extern struct AI_ThinkingStruct gAIThinkingSpace;
extern struct Struct20238C8 gUnknown_020238C8;
-// TODO: move ewram to global.h
-extern u8 ewram[];
-
-#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x00000))
-#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(ewram + 0x16800))
-#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (ewram + 0x16A00))
-#define AI_STACK ((struct AI_Stack *) (ewram + 0x16C00))
-#define AI_ARRAY_160CC ((struct SmallItemStruct *) (ewram + 0x160CC))
-#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (ewram + 0x17110))
-#define B_FUNCTION_STACK ((struct funcStack *) (ewram + 0x17140))
-#define ewram17800 ((struct Struct2017800 *) (ewram + 0x17800))
-#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810))
-#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840))
-#define ewram17000 ((u32 *) (ewram + 0x17100))
+// used in many battle files, it seems as though Hisashi Sogabe wrote
+// some sort of macro to replace the use of actually calling memset.
+// Perhaps it was thought calling memset was much slower?
+
+// The compiler wont allow us to locally declare ptr in this macro; some
+// functions that invoke this macro will not match without this egregeous
+// assumption about the variable names, so in order to avoid this assumption,
+// we opt to pass the variables themselves, even though it is likely that
+// Sogabe assumed the variables were named src and dest. Trust me: I tried to
+// avoid assuming variable names, but the ROM just will not match without the
+// assumptions. Therefore, these macros are bad practice, but I'm putting them
+// here anyway.
+#define MEMSET_ALT(data, c, size, var, dest) \
+{ \
+ dest = (u8 *)data; \
+ for(var = 0; var < (u32)size; var++) \
+ dest[var] = c; \
+} \
+
+#define MEMCPY_ALT(data, dest, size, var, src) \
+{ \
+ src = (u8 *)data; \
+ for(var = 0; var < (u32)size; var++) \
+ dest[var] = src[var]; \
+} \
typedef void (*BattleCmdFunc)(void);
@@ -690,7 +549,7 @@ extern u8 gBattleTextBuff1[];
//function declarations of buffer emits
void EmitGetAttributes(u8 buffID, u8 request, u8 c); //0x0
void Emitcmd1(u8 a, u8 b, u8 c); //0x1
-void EmitSetAttributes(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2
+void EmitSetMonData(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2
void EmitSendOutPoke(u8 a, u8 b, u8 c); //0x5
void EmitReturnPokeToBall(u8 a, u8 b); //0x6
void EmitTrainerSlide(u8 a); //0x8
@@ -710,7 +569,6 @@ void EmitEffectivenessSound(u8 a, u16 sound); //0x2B
void Emitcmd44(u8 a, u16 sound); //0x2C
void EmitFaintingCry(u8 a); //0x2D
void EmitIntroSlide(u8 a, u8 b); //0x2E
-void Emitcmd48(u8 a, u8 *b, u8 c); //0x30
void Emitcmd49(u8 a); //0x31
void EmitSpriteInvisibility(u8 a, u8 b); //0x33
void EmitBattleAnimation(u8 a, u8 b, u16 c); //0x34
@@ -735,7 +593,7 @@ extern u8 gBattleTextBuff1[];
// asm/battle_1.o
void sub_800D6D4();
void sub_800D74C();
-void sub_800D7B8(void);
+void DrawMainBattleBackground(void);
void sub_800DAB8();
void sub_800DE30(u8);
void sub_800E23C();
@@ -746,7 +604,7 @@ void InitBattle(void);
void sub_800EC9C(void);
void sub_800F104(void);
void sub_800F298(void);
-void sub_800F808(void);
+void BattleMainCB2(void);
void sub_800F838(struct Sprite *);
u8 CreateNPCTrainerParty(struct Pokemon *, u16);
void sub_800FCFC(void);
@@ -778,32 +636,28 @@ void sub_8011970(void);
void sub_80119B4(void);
void BattleBeginFirstTurn(void);
void BattleTurnPassed(void);
+void RunBattleScriptCommands_PopCallbacksStack(void);
+void RunBattleScriptCommands(void);
+bool8 TryRunFromBattle(u8 bank);
// asm/battle_2.o
void sub_8012324(void);
-void sub_8012FBC(u8, u8);
-u8 b_first_side(u8, u8, u8);
-void TurnValuesCleanUp(u8);
-void SpecialStatusesClear(void);
-void sub_80138F0(void);
-void sub_80155A4();
-void CancelMultiTurnMoves(u8 bank);
-void PrepareStringBattle();
-void sub_80156DC();
-void sub_80157C4(u8 index);
+void SwapTurnOrder(u8, u8);
+u8 GetWhoStrikesFirst(u8, u8, u8);
// asm/battle_3.o
u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check);
u8 UpdateTurnCounters(void);
u8 TurnBasedEffects(void);
-u8 sub_80170DC();
-u8 sub_80173A4();
+u8 HandleFaintedMonActions();
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move);
u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn);
+u8 GetMoveTarget(u16 move, u8 useMoveTarget);
// asm/battle_4.o
void AI_CalcDmg(u8, u8);
u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def);
+u8 BankGetTurnOrder(u8 bank);
// asm/battle_5.o
void nullsub_91(void);
@@ -826,6 +680,7 @@ void sub_80324F8(struct Pokemon *, u8);
void sub_8032638();
void sub_8032AA8(u8, u8);
void SetBankFuncToOpponentBufferRunCommand(void);
+void BattleMusicStop(void);
// asm/battle_9.o
void SetBankFuncToLinkOpponentBufferRunCommand(void);
diff --git a/include/battle_ai.h b/include/battle_ai.h
index 2922da0b3..c22ca8633 100644
--- a/include/battle_ai.h
+++ b/include/battle_ai.h
@@ -1,11 +1,6 @@
#ifndef GUARD_BATTLEAI_H
#define GUARD_BATTLEAI_H
-#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
-#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8)
-#define AIScriptRead8(ptr) ((ptr)[0])
-#define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr)
-
enum
{
TARGET,
@@ -29,5 +24,6 @@ void sub_810745C(void);
void AIStackPushVar(u8 *);
u8 AIStackPop(void);
void BattleAI_HandleItemUseBeforeAISetup(void);
+void RecordAbilityBattle(u8 a, u8 b);
#endif
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 48ceece21..a94e6d13c 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -3,28 +3,18 @@
#include "sprite.h"
-#define SCRIPT_READ_8(ptr) ((ptr)[0])
-#define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
-#define SCRIPT_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
-
-#define REG_BGnCNT_BITFIELD(n) (*(struct BGCntrlBitfield *)REG_ADDR_BG##n##CNT)
+#define REG_BGnCNT_BITFIELD(n) (*(vBgCnt *)REG_ADDR_BG##n##CNT)
+#define REG_BG0CNT_BITFIELD REG_BGnCNT_BITFIELD(0)
#define REG_BG1CNT_BITFIELD REG_BGnCNT_BITFIELD(1)
#define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2)
+#define REG_BG3CNT_BITFIELD REG_BGnCNT_BITFIELD(3)
-#define EWRAM_14800 ((u16 *)(unk_2000000 + 0x14800))
-#define EWRAM_17800 ((struct UnknownStruct1 *)(unk_2000000 + 0x17800))
-#define EWRAM_17810 ((struct UnknownStruct3 *)(unk_2000000 + 0x17810))
-#define EWRAM_18000 ((u16 *)(unk_2000000 + 0x18000))
-#define EWRAM_19348 (*(u16 *)(unk_2000000 + 0x19348))
-
-struct BGCntrlBitfield
+enum
{
- volatile u16 priority:2;
- volatile u16 charBaseBlock:2;
- volatile u16 field_0_2:4;
- volatile u16 field_1_0:5;
- volatile u16 areaOverflowMode:1;
- volatile u16 screenSize:2;
+ ANIM_BANK_ATTACKER,
+ ANIM_BANK_TARGET,
+ ANIM_BANK_ATK_PARTNER,
+ ANIM_BANK_DEF_PARTNER,
};
struct BattleAnimBackground
@@ -52,16 +42,26 @@ struct UnknownStruct3
u8 filler1[0xB];
};
-void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c);
-bool8 b_side_obj__get_some_boolean(u8 a);
+extern void (*gAnimScriptCallback)(void);
+extern u8 gAnimScriptActive;
+extern u8 gAnimFriendship;
+extern u8 gAnimMoveTurn;
+extern struct DisableStruct *gAnimDisableStructPtr;
+
+void DoMoveAnim(u16 move);
+void LaunchBattleAnimation(const u8 *const moveAnims[], u16 b, u8 c);
+bool8 IsAnimBankSpriteVisible(u8 a);
void sub_8076034(u8, u8);
bool8 IsContest(void);
-void battle_anim_clear_some_data(void);
-void move_anim_8072740(struct Sprite *sprite);
+void ClearBattleAnimationVars(void);
+void DestroyAnimSprite(struct Sprite *sprite);
void DestroyAnimVisualTask(u8 task);
void DestroyAnimVisualTask(u8 task);
-bool8 b_side_obj__get_some_boolean(u8);
-u8 IsContest();
-
+bool8 IsAnimBankSpriteVisible(u8);
+s8 BattleAnimAdjustPanning(s8 a);
+void sub_80763FC(u16 a, u16 *b, u32 c, u8 d);
+s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
+s16 sub_8077104(s16 newPan, int oldPan);
+void DestroyAnimSoundTask(u8 taskId);
#endif
diff --git a/include/battle_anim_80CA710.h b/include/battle_anim_80CA710.h
index fbbe23b97..14a6ca898 100644
--- a/include/battle_anim_80CA710.h
+++ b/include/battle_anim_80CA710.h
@@ -2,5 +2,7 @@
#define GUARD_BATTLE_ANIM_80CA710_H
void sub_80E4EF8(int, int, int, int, u16, u8, int);
+s16 sub_81174E0(s16 a);
+s16 sub_81174C4(s16 a, s16 b);
#endif // GUARD_BATTLE_ANIM_80CA710_H
diff --git a/include/battle_interface.h b/include/battle_interface.h
index 8230c7502..a3e00fd12 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -22,14 +22,14 @@ void sub_8043D84(u8, u8, u32, u32, u32);
void sub_8043DB0(u8);
void sub_8043DFC(u8);
void nullsub_11();
-void sub_8043EB4(u8);
+void UpdateOamPriorityInAllHealthboxes(u8);
void sub_8043F44(u8);
void sub_804454C(void);
u8 sub_8044804(u8, const struct BattleInterfaceStruct2 *, u8, u8);
void sub_8044CA0(u8);
void sub_8045A5C(u8, struct Pokemon *, u8);
s32 sub_8045C78(u8, u8, u8, u8);
-s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, void *, int);
+s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, u16 *, int);
u8 GetScaledHPFraction(s16, s16, u8);
u8 GetHPBarLevel(s16, s16);
void sub_80440EC(u8 a, s16 b, u8 c);
diff --git a/include/battle_message.h b/include/battle_message.h
index 3e37a1ccd..9c27994ee 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -16,6 +16,143 @@ struct StringInfoBattle
u8 textBuffs[3][0x10];
};
+// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3
+
+#define B_BUFF_STRING 0
+#define B_BUFF_NUMBER 1
+#define B_BUFF_MOVE 2
+#define B_BUFF_TYPE 3
+#define B_BUFF_MON_NICK_WITH_PREFIX 4
+#define B_BUFF_STAT 5
+#define B_BUFF_SPECIES 6
+#define B_BUFF_MON_NICK 7
+#define B_BUFF_NEGATIVE_FLAVOR 8
+#define B_BUFF_ABILITY 9
+#define B_BUFF_ITEM 10
+
+#define B_BUFF_PLACEHOLDER_BEGIN 0xFD
+#define B_BUFF_EOS 0xFF
+
+#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \
+ textVar[2] = flavorId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_STAT_BUFFER(textVar, statId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_STAT; \
+ textVar[2] = statId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_ABILITY; \
+ textVar[2] = abilityId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_TYPE_BUFFER(textVar, typeId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_TYPE; \
+ textVar[2] = typeId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 1; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = B_BUFF_EOS; \
+}
+
+#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 2; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = (number & 0x0000FF00) >> 8; \
+ textVar[6] = B_BUFF_EOS; \
+}
+
+#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 4; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = (number & 0x0000FF00) >> 8; \
+ textVar[6] = (number & 0x00FF0000) >> 16; \
+ textVar[7] = (number & 0xFF000000) >> 24; \
+ textVar[8] = B_BUFF_EOS; \
+}
+
+#define PREPARE_STRING_BUFFER(textVar, stringId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_STRING; \
+ textVar[2] = stringId; \
+ textVar[3] = (stringId & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MOVE_BUFFER(textVar, move) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MOVE; \
+ textVar[2] = move; \
+ textVar[3] = (move & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_ITEM_BUFFER(textVar, item) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_ITEM; \
+ textVar[2] = item; \
+ textVar[3] = (item & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_SPECIES_BUFFER(textVar, species) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_SPECIES; \
+ textVar[2] = species; \
+ textVar[3] = (species & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \
+ textVar[2] = bank; \
+ textVar[3] = partyId; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MON_NICK; \
+ textVar[2] = bank; \
+ textVar[3] = partyId; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
void BufferStringBattle(u16 stringID);
u32 StrCpyDecodeToDisplayedStringBattle(const u8* src);
u32 StrCpyDecodeBattle(const u8* src, u8* dst);
diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h
deleted file mode 100644
index 4a9415379..000000000
--- a/include/battle_move_effects.h
+++ /dev/null
@@ -1,222 +0,0 @@
-#ifndef GUARD_BATTLE_MOVE_EFFECTS_H
-#define GUARD_BATTLE_MOVE_EFFECTS_H
-
-enum
-{
- EFFECT_HIT,
- EFFECT_SLEEP,
- EFFECT_POISON_HIT,
- EFFECT_ABSORB,
- EFFECT_BURN_HIT,
- EFFECT_FREEZE_HIT,
- EFFECT_PARALYZE_HIT,
- EFFECT_EXPLOSION,
- EFFECT_DREAM_EATER,
- EFFECT_MIRROR_MOVE,
- EFFECT_ATTACK_UP,
- EFFECT_DEFENSE_UP,
- EFFECT_SPEED_UP,
- EFFECT_SPECIAL_ATTACK_UP,
- EFFECT_SPECIAL_DEFENSE_UP,
- EFFECT_ACCURACY_UP,
- EFFECT_EVASION_UP,
- EFFECT_ALWAYS_HIT,
- EFFECT_ATTACK_DOWN,
- EFFECT_DEFENSE_DOWN,
- EFFECT_SPEED_DOWN,
- EFFECT_SPECIAL_ATTACK_DOWN, // unused
- EFFECT_SPECIAL_DEFENSE_DOWN, // unused
- EFFECT_ACCURACY_DOWN,
- EFFECT_EVASION_DOWN,
- EFFECT_HAZE,
- EFFECT_BIDE,
- EFFECT_RAMPAGE,
- EFFECT_ROAR,
- EFFECT_MULTI_HIT,
- EFFECT_CONVERSION,
- EFFECT_FLINCH_HIT,
- EFFECT_RESTORE_HP,
- EFFECT_TOXIC,
- EFFECT_PAY_DAY,
- EFFECT_LIGHT_SCREEN,
- EFFECT_TRI_ATTACK,
- EFFECT_REST,
- EFFECT_OHKO,
- EFFECT_RAZOR_WIND,
- EFFECT_SUPER_FANG,
- EFFECT_DRAGON_RAGE,
- EFFECT_TRAP,
- EFFECT_HIGH_CRITICAL,
- EFFECT_DOUBLE_HIT,
- EFFECT_RECOIL_IF_MISS,
- EFFECT_MIST,
- EFFECT_FOCUS_ENERGY,
- EFFECT_RECOIL,
- EFFECT_CONFUSE,
- EFFECT_ATTACK_UP_2,
- EFFECT_DEFENSE_UP_2,
- EFFECT_SPEED_UP_2,
- EFFECT_SPECIAL_ATTACK_UP_2,
- EFFECT_SPECIAL_DEFENSE_UP_2,
- EFFECT_ACCURACY_UP_2,
- EFFECT_EVASION_UP_2,
- EFFECT_TRANSFORM,
- EFFECT_ATTACK_DOWN_2,
- EFFECT_DEFENSE_DOWN_2,
- EFFECT_SPEED_DOWN_2,
- EFFECT_SPECIAL_ATTACK_DOWN_2,
- EFFECT_SPECIAL_DEFENSE_DOWN_2,
- EFFECT_ACCURACY_DOWN_2,
- EFFECT_EVASION_DOWN_2,
- EFFECT_REFLECT,
- EFFECT_POISON,
- EFFECT_PARALYZE,
- EFFECT_ATTACK_DOWN_HIT,
- EFFECT_DEFENSE_DOWN_HIT,
- EFFECT_SPEED_DOWN_HIT,
- EFFECT_SPECIAL_ATTACK_DOWN_HIT,
- EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
- EFFECT_ACCURACY_DOWN_HIT,
- EFFECT_EVASION_DOWN_HIT,
- EFFECT_SKY_ATTACK,
- EFFECT_CONFUSE_HIT,
- EFFECT_TWINEEDLE,
- EFFECT_VITAL_THROW,
- EFFECT_SUBSTITUTE,
- EFFECT_RECHARGE,
- EFFECT_RAGE,
- EFFECT_MIMIC,
- EFFECT_METRONOME,
- EFFECT_LEECH_SEED,
- EFFECT_SPLASH,
- EFFECT_DISABLE,
- EFFECT_LEVEL_DAMAGE,
- EFFECT_PSYWAVE,
- EFFECT_COUNTER,
- EFFECT_ENCORE,
- EFFECT_PAIN_SPLIT,
- EFFECT_SNORE,
- EFFECT_CONVERSION_2,
- EFFECT_LOCK_ON,
- EFFECT_SKETCH,
- EFFECT_UNUSED_60, // thaw
- EFFECT_SLEEP_TALK,
- EFFECT_DESTINY_BOND,
- EFFECT_FLAIL,
- EFFECT_SPITE,
- EFFECT_FALSE_SWIPE,
- EFFECT_HEAL_BELL,
- EFFECT_QUICK_ATTACK,
- EFFECT_TRIPLE_KICK,
- EFFECT_THIEF,
- EFFECT_MEAN_LOOK,
- EFFECT_NIGHTMARE,
- EFFECT_MINIMIZE,
- EFFECT_CURSE,
- EFFECT_UNUSED_6E,
- EFFECT_PROTECT,
- EFFECT_SPIKES,
- EFFECT_FORESIGHT,
- EFFECT_PERISH_SONG,
- EFFECT_SANDSTORM,
- EFFECT_ENDURE,
- EFFECT_ROLLOUT,
- EFFECT_SWAGGER,
- EFFECT_FURY_CUTTER,
- EFFECT_ATTRACT,
- EFFECT_RETURN,
- EFFECT_PRESENT,
- EFFECT_FRUSTRATION,
- EFFECT_SAFEGUARD,
- EFFECT_THAW_HIT,
- EFFECT_MAGNITUDE,
- EFFECT_BATON_PASS,
- EFFECT_PURSUIT,
- EFFECT_RAPID_SPIN,
- EFFECT_SONICBOOM,
- EFFECT_UNUSED_83,
- EFFECT_MORNING_SUN,
- EFFECT_SYNTHESIS,
- EFFECT_MOONLIGHT,
- EFFECT_HIDDEN_POWER,
- EFFECT_RAIN_DANCE,
- EFFECT_SUNNY_DAY,
- EFFECT_DEFENSE_UP_HIT,
- EFFECT_ATTACK_UP_HIT,
- EFFECT_ALL_STATS_UP_HIT,
- EFFECT_UNUSED_8D, // incomplete fake out in gen 2
- EFFECT_BELLY_DRUM,
- EFFECT_PSYCH_UP,
- EFFECT_MIRROR_COAT,
- EFFECT_SKULL_BASH,
- EFFECT_TWISTER,
- EFFECT_EARTHQUAKE,
- EFFECT_FUTURE_SIGHT,
- EFFECT_GUST,
- EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
- EFFECT_SOLARBEAM,
- EFFECT_THUNDER,
- EFFECT_TELEPORT,
- EFFECT_BEAT_UP,
- EFFECT_FLY,
- EFFECT_DEFENSE_CURL,
- EFFECT_SOFTBOILED,
- EFFECT_FAKE_OUT,
- EFFECT_UPROAR,
- EFFECT_STOCKPILE,
- EFFECT_SPIT_UP,
- EFFECT_SWALLOW,
- EFFECT_UNUSED_A3,
- EFFECT_HAIL,
- EFFECT_TORMENT,
- EFFECT_FLATTER,
- EFFECT_WILL_O_WISP,
- EFFECT_MEMENTO,
- EFFECT_FACADE,
- EFFECT_FOCUS_PUNCH,
- EFFECT_SMELLINGSALT,
- EFFECT_FOLLOW_ME,
- EFFECT_NATURE_POWER,
- EFFECT_CHARGE,
- EFFECT_TAUNT,
- EFFECT_HELPING_HAND,
- EFFECT_TRICK,
- EFFECT_ROLE_PLAY,
- EFFECT_WISH,
- EFFECT_ASSIST,
- EFFECT_INGRAIN,
- EFFECT_SUPERPOWER,
- EFFECT_MAGIC_COAT,
- EFFECT_RECYCLE,
- EFFECT_REVENGE,
- EFFECT_BRICK_BREAK,
- EFFECT_YAWN,
- EFFECT_KNOCK_OFF,
- EFFECT_ENDEAVOR,
- EFFECT_ERUPTION,
- EFFECT_SKILL_SWAP,
- EFFECT_IMPRISON,
- EFFECT_REFRESH,
- EFFECT_GRUDGE,
- EFFECT_SNATCH,
- EFFECT_LOW_KICK,
- EFFECT_SECRET_POWER,
- EFFECT_DOUBLE_EDGE,
- EFFECT_TEETER_DANCE,
- EFFECT_BLAZE_KICK,
- EFFECT_MUD_SPORT,
- EFFECT_POISON_FANG,
- EFFECT_WEATHER_BALL,
- EFFECT_OVERHEAT,
- EFFECT_TICKLE,
- EFFECT_COSMIC_POWER,
- EFFECT_SKY_UPPERCUT,
- EFFECT_BULK_UP,
- EFFECT_POISON_TAIL,
- EFFECT_WATER_SPORT,
- EFFECT_CALM_MIND,
- EFFECT_DRAGON_DANCE,
- EFFECT_CAMOUFLAGE,
-};
-
-#endif // GUARD_BATTLE_MOVE_EFFECTS_H
diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h
index 71bd2cf51..d7ad53eed 100644
--- a/include/battle_party_menu.h
+++ b/include/battle_party_menu.h
@@ -1,9 +1,7 @@
#ifndef GUARD_BATTLE_PARTY_MENU_H
#define GUARD_BATTLE_PARTY_MENU_H
-extern u8 unk_2000000[];
-#define EWRAM_1609D unk_2000000[0x1609D]
-
-void SetUpBattlePokemonMenu(u8);
+void HandleBattlePartyMenu(u8);
+bool8 SetUpBattlePartyMenu(void);
#endif
diff --git a/include/battle_setup.h b/include/battle_setup.h
index c8c463f6d..8423a6e6e 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -40,97 +40,58 @@ struct TrainerPartyMember3
u16 moves[4];
};
-struct TrainerBattleSpec
-{
- void *ptr;
- u8 ptrType;
-};
-
struct TrainerEyeTrainer
{
- u16 trainerNums[5];
+ u16 opponentIDs[5]; // Each of these trainers has 5 increasingly stronger teams.
u16 mapGroup;
u16 mapNum;
};
-//void task01_battle_start(u8 taskId);
-//void task_add_01_battle_start(u8 transition, u16 song);
-void CheckForSafariZoneAndProceed(void);
-void StartBattle_StandardWild(void);
-void StartBattle_Roamer(void);
-void StartBattle_Safari(void);
-//void task_add_01_battle_start_with_music_and_stats(void);
-//void StartBattle_WallyTutorial(void);
-void StartBattle_ScriptedWild(void);
-//void StartBattle_SouthernIsland(void);
-//void StartBattle_Rayquaza(void);
-//void StartBattle_GroudonKyogre(void);
-//void StartBattle_Regi(void);
-void HandleWildBattleEnd(void);
-void HandleScriptedWildBattleEnd(void);
-s8 GetBattleTerrain(void);
-//s8 GetBattleTransitionTypeByMap(void);
-//u16 GetSumOfPartyMonLevel(u8 numMons);
-//u8 GetSumOfEnemyPartyLevel(u16 trainerNum, u8 numMons);
-u8 GetWildBattleTransition(void);
-u8 GetTrainerBattleTransition(void);
-u8 GetBattleTowerBattleTransition(void);
-//void ChooseStarter(void);
-void CB2_GiveStarter(void);
-void CB2_StartFirstBattle(void);
-void HandleFirstBattleEnd(void);
-//u32 TrainerBattleLoadArg32(u8 *ptr);
-//u16 TrainerBattleLoadArg16(u8 *ptr);
-//u8 TrainerBattleLoadArg8(u8 *ptr);
-//u16 trainerflag_opponent(void);
-bool32 battle_exit_is_player_defeat(u32 a1);
-//void sub_80822BC(void);
-//void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data);
-//void battle_80801F0(void);
-u8 *TrainerBattleConfigure(const u8 *data);
+void BattleSetup_StartWildBattle(void);
+void BattleSetup_StartRoamerBattle(void);
+void BattleSetup_StartScriptedWildBattle(void);
+s8 BattleSetup_GetTerrain(void);
+u8 BattleSetup_GetBattleTowerBattleTransition(void);
+u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
void TrainerWantsBattle(u8, u8 *);
+
bool32 GetTrainerFlagFromScriptPointer(u8 *data);
-//void sub_8082524(void);
-//u8 sub_8082558(void);
-//u8 sub_8082564(void);
+//u8 ScrSpecial_GetTrainerBattleMode(void);
+//u8 ScrSpecial_HasTrainerBeenFought(void);
//void sub_808257C(void);
//void unref_sub_8082590(void); // unused
-u8 trainer_flag_check(u16);
-void trainer_flag_set(u16);
-void trainer_flag_clear(u16);
-void sub_80825E4(void);
-void sub_808260C(void);
+u8 HasTrainerAlreadyBeenFought(u16);
+void SetTrainerFlag(u16);
+void ClearTrainerFlag(u16);
+void BattleSetup_StartTrainerBattle(void);
+void CB2_EndTrainerBattle(void);
void do_choose_name_or_words_screen(void);
-//void sub_80826B0(void);
-//void sub_80826D8(void);
-u8 *sub_80826E8(void);
-u8 *sub_8082700(void);
-//void sub_8082718(void);
+//void ScrSpecial_StartTrainerEyeRematch(void);
+//void ScrSpecial_ShowTrainerIntroSpeech(void);
+u8 *BattleSetup_GetScriptAddrAfterBattle(void);
+u8 *BattleSetup_GetTrainerPostBattleScript(void);
+//void ScrSpecial_ShowTrainerNonBattlingSpeech(void);
//void PlayTrainerEncounterMusic(void);
//u8 *SanitizeString(u8 *str);
-u8 *sub_808281C(void);
-u8 *sub_8082830(void);
+u8 *GetTrainerLoseText(void);
//u8 *unref_sub_808286C(void);
-u8 *sub_8082880(void);
//s32 sub_8082894(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
//s32 sub_80828B8(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
//bool32 sub_80828FC(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum);
//s32 sub_80829A8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum);
//s32 sub_80829E8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum);
//bool8 sub_8082A18(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
-//bool8 sub_8082A54(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
+//bool8 DoesTrainerEyeTrainerWantRematch(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
//u16 sub_8082A90(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
//void sub_8082AE4(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
//bool8 sub_8082B10(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
//bool32 sub_8082B44(void);
-void sub_8082B78(void);
+void IncrementRematchStepCounter(void);
//bool32 sub_8082BA4(void);
-void sub_8082BD0(u16, u16);
-s32 sub_8082C0C(u16 mapGroup, u16 mapNum);
-s32 unref_sub_8082C2C(u16 mapGroup, u16 mapNum);
-u16 sub_8082C4C(u16 a1);
-//s32 sub_8082C68(void);
-//u8 sub_8082C9C(void);
-void sub_8082CB8(void);
+void TryUpdateRandomTrainerRematches(u16, u16);
+s32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum);
+s32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum);
+u16 GetRematchTrainerId(u16 a1);
+//u8 ScrSpecial_GetTrainerEyeRematchFlag(void);
#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 75ea405ab..a3e1ff28c 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -1,8 +1,102 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
-void sub_8134AC0(void *);
+#define BATTLE_TOWER_EREADER_TRAINER_ID 200
+#define BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID 100
+
+enum
+{
+ F_EV_SPREAD_HP = 1 << 0,
+ F_EV_SPREAD_ATTACK = 1 << 1,
+ F_EV_SPREAD_DEFENSE = 1 << 2,
+ F_EV_SPREAD_SPEED = 1 << 3,
+ F_EV_SPREAD_SP_ATTACK = 1 << 4,
+ F_EV_SPREAD_SP_DEFENSE = 1 << 5,
+};
+
+enum
+{
+ BATTLE_TOWER_ITEM_NONE,
+ BATTLE_TOWER_ITEM_KINGS_ROCK,
+ BATTLE_TOWER_ITEM_SITRUS_BERRY,
+ BATTLE_TOWER_ITEM_ORAN_BERRY,
+ BATTLE_TOWER_ITEM_CHESTO_BERRY,
+ BATTLE_TOWER_ITEM_HARD_STONE,
+ BATTLE_TOWER_ITEM_FOCUS_BAND,
+ BATTLE_TOWER_ITEM_PERSIM_BERRY,
+ BATTLE_TOWER_ITEM_MIRACLE_SEED,
+ BATTLE_TOWER_ITEM_BERRY_JUICE,
+ BATTLE_TOWER_ITEM_MACHO_BRACE,
+ BATTLE_TOWER_ITEM_SILVER_POWDER,
+ BATTLE_TOWER_ITEM_CHERI_BERRY,
+ BATTLE_TOWER_ITEM_BLACK_GLASSES,
+ BATTLE_TOWER_ITEM_BLACK_BELT,
+ BATTLE_TOWER_ITEM_SOUL_DEW,
+ BATTLE_TOWER_ITEM_CHOICE_BAND,
+ BATTLE_TOWER_ITEM_MAGNET,
+ BATTLE_TOWER_ITEM_SILK_SCARF,
+ BATTLE_TOWER_ITEM_WHITE_HERB,
+ BATTLE_TOWER_ITEM_DEEP_SEA_SCALE,
+ BATTLE_TOWER_ITEM_DEEP_SEA_TOOTH,
+ BATTLE_TOWER_ITEM_MYSTIC_WATER,
+ BATTLE_TOWER_ITEM_SHARP_BEAK,
+ BATTLE_TOWER_ITEM_QUICK_CLAW,
+ BATTLE_TOWER_ITEM_LEFTOVERS,
+ BATTLE_TOWER_ITEM_RAWST_BERRY,
+ BATTLE_TOWER_ITEM_LIGHT_BALL,
+ BATTLE_TOWER_ITEM_POISON_BARB,
+ BATTLE_TOWER_ITEM_NEVER_MELT_ICE,
+ BATTLE_TOWER_ITEM_ASPEAR_BERRY,
+ BATTLE_TOWER_ITEM_SPELL_TAG,
+ BATTLE_TOWER_ITEM_BRIGHT_POWDER,
+ BATTLE_TOWER_ITEM_LEPPA_BERRY,
+ BATTLE_TOWER_ITEM_SCOPE_LENS,
+ BATTLE_TOWER_ITEM_TWISTED_SPOON,
+ BATTLE_TOWER_ITEM_METAL_COAT,
+ BATTLE_TOWER_ITEM_MENTAL_HERB,
+ BATTLE_TOWER_ITEM_CHARCOAL,
+ BATTLE_TOWER_ITEM_PECHA_BERRY,
+ BATTLE_TOWER_ITEM_SOFT_SAND,
+ BATTLE_TOWER_ITEM_LUM_BERRY,
+ BATTLE_TOWER_ITEM_DRAGON_SCALE,
+ BATTLE_TOWER_ITEM_DRAGON_FANG,
+ BATTLE_TOWER_ITEM_IAPAPA_BERRY,
+ BATTLE_TOWER_ITEM_WIKI_BERRY,
+ BATTLE_TOWER_ITEM_SEA_INCENSE,
+ BATTLE_TOWER_ITEM_SHELL_BELL,
+ BATTLE_TOWER_ITEM_SALAC_BERRY,
+ BATTLE_TOWER_ITEM_LANSAT_BERRY,
+ BATTLE_TOWER_ITEM_APICOT_BERRY,
+ BATTLE_TOWER_ITEM_STARF_BERRY,
+ BATTLE_TOWER_ITEM_LIECHI_BERRY,
+ BATTLE_TOWER_ITEM_STICK,
+ BATTLE_TOWER_ITEM_LAX_INCENSE,
+ BATTLE_TOWER_ITEM_AGUAV_BERRY,
+ BATTLE_TOWER_ITEM_FIGY_BERRY,
+ BATTLE_TOWER_ITEM_THICK_CLUB,
+ BATTLE_TOWER_ITEM_MAGO_BERRY,
+ BATTLE_TOWER_ITEM_METAL_POWDER,
+ BATTLE_TOWER_ITEM_PETAYA_BERRY,
+ BATTLE_TOWER_ITEM_LUCKY_PUNCH,
+ BATTLE_TOWER_ITEM_GANLON_BERRY,
+};
+
+struct BattleTowerPokemon
+{
+ /*0x00*/u16 species;
+ /*0x02*/u8 heldItem; // entry in sBattleTowerHeldItems
+ /*0x03*/u8 teamFlags;
+ /*0x04*/u16 moves[4];
+ /*0x0C*/u8 evSpread;
+ /*0x0D*/u8 nature;
+};
+
+u16 GetCurrentBattleTowerWinStreak(u8);
+void sub_8134AC0(struct BattleTowerRecord *);
u16 sub_8135D3C(u8);
-void sub_8135FF4(u8*);
+void SetEReaderTrainerName(u8*);
+u8 GetEReaderTrainerPicIndex(void);
+u8 GetEReaderTrainerClassNameIndex(void);
+void ValidateEReaderTrainer(void);
#endif // GUARD_BATTLE_TOWER_H
diff --git a/include/battle_transition.h b/include/battle_transition.h
index ca6869c93..0b8766e87 100644
--- a/include/battle_transition.h
+++ b/include/battle_transition.h
@@ -1,8 +1,8 @@
#ifndef GUARD_BATTLE_TRANSITION_H
#define GUARD_BATTLE_TRANSITION_H
-void sub_811AABC(u8 transitionID);
-void sub_811AAD8(u8 transitionID);
+void BattleTransition_StartOnField(u8 transitionID);
+void BattleTransition_Start(u8 transitionID);
bool8 IsBattleTransitionDone(void);
#define TRANSITIONS_NO 17
diff --git a/include/battle_util.h b/include/battle_util.h
new file mode 100644
index 000000000..f47b00b2c
--- /dev/null
+++ b/include/battle_util.h
@@ -0,0 +1,29 @@
+#ifndef GUARD_BATTLE_UTIL_H
+#define GUARD_BATTLE_UTIL_H
+
+#define BS_GET_TARGET 0
+#define BS_GET_ATTACKER 1
+#define BS_GET_EFFECT_BANK 2
+#define BS_GET_SCRIPTING_BANK 10
+#define BS_GET_PLAYER1 11
+#define BS_GET_OPPONENT1 12
+#define BS_GET_PLAYER2 13
+#define BS_GET_OPPONENT2 14
+
+void TryClearRageStatuses(void);
+void BattleScriptPush(u8* BS_ptr);
+void PressurePPLoseOnUsingImprision(u8 bankAtk);
+void PressurePPLoseOnUsingPerishSong(u8 bankAtk);
+void sub_80155A4(u8);
+void CancelMultiTurnMoves(u8 bank);
+bool8 WasUnableToUseMove(u8 bank);
+void PrepareStringBattle(u16 stringId, u8 bank);
+void ResetSentPokesToOpponentValue(void);
+void sub_8015740(u8 bank);
+void sub_80157C4(u8 bank);
+bool8 HandleWishPerishSongOnTurnEnd(void);
+void BattleScriptExecute(u8* BS_ptr);
+void BattleScriptPushCursorAndCallback(u8* BS_ptr);
+u8 IsMonDisobedient(void);
+
+#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/berry.h b/include/berry.h
index f0acbe0ad..a7ac5ba94 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -11,38 +11,39 @@ enum
BERRY_FIRMNESS_SUPER_HARD,
};
-void ClearEnigmaBerries(void);
+// berry stages
+enum
+{
+ BERRY_STAGE_NO_BERRY, // there is no tree planted and the soil is completely flat.
+ BERRY_STAGE_PLANTED,
+ BERRY_STAGE_SPROUTED,
+ BERRY_STAGE_TALLER,
+ BERRY_STAGE_FLOWERING,
+ BERRY_STAGE_BERRIES,
+ BERRY_STAGE_SPARKLING = 0xFF,
+};
+
void SetEnigmaBerry(u8 *src);
-u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry);
bool32 IsEnigmaBerryValid(void);
const struct Berry *GetBerryInfo(u8 berry);
-struct BerryTree *GetBerryTreeInfo(u8 id);
bool32 FieldObjectInteractionWaterBerryTree(void);
-bool8 IsPlayerFacingPlantedBerryTree(void);
+bool8 IsPlayerFacingUnplantedSoil(void);
bool8 TryToWaterBerryTree(void);
void ClearBerryTrees(void);
-bool32 BerryTreeGrow(struct BerryTree *tree);
void BerryTreeTimeUpdate(s32 minutes);
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
void RemoveBerryTree(u8 id);
u8 GetBerryTypeByBerryTreeId(u8 id);
u8 GetStageByBerryTreeId(u8);
u8 ItemIdToBerryType(u16 item);
-u16 BerryTypeToItemId(u16 berry);
void GetBerryNameByBerryType(u8 berry, u8 *string);
void ResetBerryTreeSparkleFlag(u8 id);
-u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
-u8 GetNumStagesWateredByBerryTreeId(u8 id);
-u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
-u8 CalcBerryYield(struct BerryTree *tree);
-u8 GetBerryCountByBerryTreeId(u8 id);
-u16 GetStageDurationByBerryType(u8);
void FieldObjectInteractionGetBerryTreeData(void);
-void sub_80B4EE4(void);
+void Berry_FadeAndGoToBerryBagMenu(void);
void FieldObjectInteractionPlantBerryTree(void);
void FieldObjectInteractionPickBerryTree(void);
void FieldObjectInteractionRemoveBerryTree(void);
-u8 PlayerHasBerries(void);
+bool8 PlayerHasBerries(void);
void ResetBerryTreeSparkleFlags(void);
#endif // GUARD_BERRY_H
diff --git a/include/bike.h b/include/bike.h
index decbd1d49..28aa2037d 100644
--- a/include/bike.h
+++ b/include/bike.h
@@ -1,15 +1,17 @@
#ifndef GUARD_BIKE_H
#define GUARD_BIKE_H
-struct UnknownStruct1
+// the struct below is used for checking button combinations of the last input so that the acro can potentially perform a side/turn jump.
+// its possible that at some point Game Freak intended for the acro bike to have more complex tricks: but only the acro jump combinations can be seen in the final ROM.
+struct BikeHistoryInputInfo
{
- u32 unk0;
- u32 unk4;
- u32 unk8;
- u32 unkC;
- const u8 *unk10;
- const u8 *unk14;
- u32 unk18;
+ u32 dirHistoryMatch; // the direction you need to press
+ u32 abStartSelectHistoryMatch; // the button you need to press
+ u32 dirHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked
+ u32 abStartSelectHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked
+ const u8 *dirTimerHistoryList; // list of timers to check for direction before the button+dir combination can be verified.
+ const u8 *abStartSelectHistoryList; // list of timers to check for buttons before the button+dir combination can be verified.
+ u32 direction; // direction to jump
};
// Player speeds
@@ -22,7 +24,16 @@ enum
SPEED_FASTEST,
};
-//Acro bike states
+// mach bike transitions enum
+enum
+{
+ MACH_TRANS_FACE_DIRECTION,
+ MACH_TRANS_TURN_DIRECTION,
+ MACH_TRANS_KEEP_MOVING,
+ MACH_TRANS_START_MOVING
+};
+
+// Acro bike states
enum
{
ACRO_STATE_NORMAL,
@@ -30,27 +41,37 @@ enum
ACRO_STATE_WHEELIE_STANDING,
ACRO_STATE_BUNNY_HOP,
ACRO_STATE_WHEELIE_MOVING,
- ACRO_STATE_5,
- ACRO_STATE_6,
+ ACRO_STATE_SIDE_JUMP,
+ ACRO_STATE_TURN_JUMP,
};
-//Acro bike transitions
+// Acro bike transitions
enum
{
ACRO_TRANS_FACE_DIRECTION,
- ACRO_TRANS_NORMAL_TO_WHEELIE = 3,
+ ACRO_TRANS_TURN_DIRECTION,
+ ACRO_TRANS_MOVING,
+ ACRO_TRANS_NORMAL_TO_WHEELIE,
ACRO_TRANS_WHEELIE_TO_NORMAL,
+ ACRO_TRANS_WHEELIE_IDLE,
+ ACRO_TRANS_WHEELIE_HOPPING_STANDING,
+ ACRO_TRANS_WHEELIE_HOPPING_MOVING,
+ ACRO_TRANS_SIDE_JUMP,
+ ACRO_TRANS_TURN_JUMP,
+ ACRO_TRANS_WHEELIE_MOVING,
+ ACRO_TRANS_WHEELIE_RISING_MOVING,
+ ACRO_TRANS_WHEELIE_LOWERING_MOVING,
};
void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys);
-void sub_80E5B38(u16 a, u16 b);
+void Bike_TryAcroBikeHistoryUpdate(u16 a, u16 b);
bool8 IsRunningDisallowed(u8 tile);
bool8 IsBikingDisallowedByPlayer(void);
bool8 player_should_look_direction_be_enforced_upon_movement(void);
void GetOnOffBike(u8 var);
void BikeClearState(int var1, int var2);
-void sub_80E6010(u8 var);
+void Bike_UpdateBikeCounterSpeed(u8 var);
s16 GetPlayerSpeed(void);
-void sub_80E6084(void);
+void Bike_HandleBumpySlopeJump(void);
#endif
diff --git a/include/braille_puzzles.h b/include/braille_puzzles.h
index 2b0e2bb96..e9d1f5d7c 100644
--- a/include/braille_puzzles.h
+++ b/include/braille_puzzles.h
@@ -2,6 +2,7 @@
#define GUARD_BRAILLEPUZZLES_H
bool8 ShouldDoBrailleStrengthEffect(void);
+bool8 ShouldDoBrailleFlyEffect(void);
void DoBrailleStrengthEffect(void);
void UseFlyAncientTomb_Callback(void);
void UseFlyAncientTomb_Finish(void);
@@ -10,5 +11,6 @@ bool32 BrailleWait_CheckButtonPress(void);
void SealedChamberShakingEffect(u8 taskId);
bool8 ShouldDoBrailleDigEffect(void);
void DoBrailleDigEffect(void);
+void DoBrailleFlyEffect(void);
#endif
diff --git a/include/cable_car_util.h b/include/cable_car_util.h
new file mode 100644
index 000000000..7126331a1
--- /dev/null
+++ b/include/cable_car_util.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CABLE_CAR_UTIL_H
+#define GUARD_CABLE_CAR_UTIL_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void CableCarUtil_FillWrapped(void *dest, u16 value, u8 x, u8 y, u8 width, u8 height);
+void CableCarUtil_CopyWrapped(void *dest, const u16 *src, u8 x, u8 y, u8 width, u8 height);
+
+#endif //GUARD_CABLE_CAR_UTIL_H
diff --git a/include/cable_club.h b/include/cable_club.h
index 9e6a703e3..a2fe46b30 100644
--- a/include/cable_club.h
+++ b/include/cable_club.h
@@ -3,20 +3,22 @@
#include "task.h"
-void sub_8082D4C();
-void sub_8082D60(u8, u8);
-u16 sub_8082D9C(u8, u8);
-u32 sub_8082DF4(u8);
-u32 sub_8082E28(u8);
-u32 sub_8082EB8(u8);
-void sub_8082FEC(u8 taskId);
-void sub_80833C4(u8 taskId);
-void sub_8083418(u8 taskId);
-u8 sub_8083444(u8 taskId);
+void sub_808347C(u8 arg0);
+void sub_80834E4(void);
+void sub_808350C(void);
+void sub_80835D8(void);
+void sub_8083614(void);
+void sub_808363C(void);
u8 sub_8083664(void);
-void sub_8083A84(TaskFunc);
-s32 sub_8083BF4(u8 id);
-void sub_8083C50(u8);
-void sub_8083188(u8 taskId);
+void sub_8083820(void);
+void sub_80839A4(void);
+void sub_80839D0(void);
+void sub_8083A84(TaskFunc followupFunc);
+void sub_8083B5C(void);
+void sub_8083B80(void);
+void sub_8083B90(void);
+void sub_8083BDC(void);
+bool32 sub_8083BF4(u8 linkPlayerIndex);
+void sub_8083C50(u8 taskId);
#endif // GUARD_CABLE_CLUB_H
diff --git a/include/choose_party.h b/include/choose_party.h
index e31aa3c02..853202a89 100644
--- a/include/choose_party.h
+++ b/include/choose_party.h
@@ -3,11 +3,11 @@
void sub_8121E10(void);
void sub_8121E34(void);
-bool8 sub_8121E78(void);
-void sub_81222B0(u8 taskId);
-bool8 sub_8122854(void);
-void sub_8122A48(u8 taskId);
-void sub_8122E0C(u8 taskId);
+bool8 SetupBattleTowerPartyMenu(void);
+void HandleBattleTowerPartyMenu(u8 taskId);
+bool8 SetupLinkMultiBattlePartyMenu(void);
+void HandleLinkMultiBattlePartyMenu(u8 taskId);
+void HandleDaycarePartyMenu(u8 taskId);
void sub_8123138(u8 taskId);
#endif // GUARD_CHOOSE_PARTY_H
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
new file mode 100644
index 000000000..4e2c4056c
--- /dev/null
+++ b/include/constants/abilities.h
@@ -0,0 +1,83 @@
+#ifndef GUARD_CONSTANTS_ABILITIES_H
+#define GUARD_CONSTANTS_ABILITIES_H
+
+#define ABILITY_NONE 0
+#define ABILITY_STENCH 1
+#define ABILITY_DRIZZLE 2
+#define ABILITY_SPEED_BOOST 3
+#define ABILITY_BATTLE_ARMOR 4
+#define ABILITY_STURDY 5
+#define ABILITY_DAMP 6
+#define ABILITY_LIMBER 7
+#define ABILITY_SAND_VEIL 8
+#define ABILITY_STATIC 9
+#define ABILITY_VOLT_ABSORB 10
+#define ABILITY_WATER_ABSORB 11
+#define ABILITY_OBLIVIOUS 12
+#define ABILITY_CLOUD_NINE 13
+#define ABILITY_COMPOUND_EYES 14
+#define ABILITY_INSOMNIA 15
+#define ABILITY_COLOR_CHANGE 16
+#define ABILITY_IMMUNITY 17
+#define ABILITY_FLASH_FIRE 18
+#define ABILITY_SHIELD_DUST 19
+#define ABILITY_OWN_TEMPO 20
+#define ABILITY_SUCTION_CUPS 21
+#define ABILITY_INTIMIDATE 22
+#define ABILITY_SHADOW_TAG 23
+#define ABILITY_ROUGH_SKIN 24
+#define ABILITY_WONDER_GUARD 25
+#define ABILITY_LEVITATE 26
+#define ABILITY_EFFECT_SPORE 27
+#define ABILITY_SYNCHRONIZE 28
+#define ABILITY_CLEAR_BODY 29
+#define ABILITY_NATURAL_CURE 30
+#define ABILITY_LIGHTNING_ROD 31
+#define ABILITY_SERENE_GRACE 32
+#define ABILITY_SWIFT_SWIM 33
+#define ABILITY_CHLOROPHYLL 34
+#define ABILITY_ILLUMINATE 35
+#define ABILITY_TRACE 36
+#define ABILITY_HUGE_POWER 37
+#define ABILITY_POISON_POINT 38
+#define ABILITY_INNER_FOCUS 39
+#define ABILITY_MAGMA_ARMOR 40
+#define ABILITY_WATER_VEIL 41
+#define ABILITY_MAGNET_PULL 42
+#define ABILITY_SOUNDPROOF 43
+#define ABILITY_RAIN_DISH 44
+#define ABILITY_SAND_STREAM 45
+#define ABILITY_PRESSURE 46
+#define ABILITY_THICK_FAT 47
+#define ABILITY_EARLY_BIRD 48
+#define ABILITY_FLAME_BODY 49
+#define ABILITY_RUN_AWAY 50
+#define ABILITY_KEEN_EYE 51
+#define ABILITY_HYPER_CUTTER 52
+#define ABILITY_PICKUP 53
+#define ABILITY_TRUANT 54
+#define ABILITY_HUSTLE 55
+#define ABILITY_CUTE_CHARM 56
+#define ABILITY_PLUS 57
+#define ABILITY_MINUS 58
+#define ABILITY_FORECAST 59
+#define ABILITY_STICKY_HOLD 60
+#define ABILITY_SHED_SKIN 61
+#define ABILITY_GUTS 62
+#define ABILITY_MARVEL_SCALE 63
+#define ABILITY_LIQUID_OOZE 64
+#define ABILITY_OVERGROW 65
+#define ABILITY_BLAZE 66
+#define ABILITY_TORRENT 67
+#define ABILITY_SWARM 68
+#define ABILITY_ROCK_HEAD 69
+#define ABILITY_DROUGHT 70
+#define ABILITY_ARENA_TRAP 71
+#define ABILITY_VITAL_SPIRIT 72
+#define ABILITY_WHITE_SMOKE 73
+#define ABILITY_PURE_POWER 74
+#define ABILITY_SHELL_ARMOR 75
+#define ABILITY_CACOPHONY 76
+#define ABILITY_AIR_LOCK 77
+
+#endif // GUARD_CONSTANTS_ABILITIES_H
diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h
new file mode 100644
index 000000000..49768f33e
--- /dev/null
+++ b/include/constants/battle_constants.h
@@ -0,0 +1,315 @@
+#ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H
+#define GUARD_CONSTANTS_BATTLE_CONSTANTS_H
+
+// Bank sides
+#define SIDE_PLAYER 0x0
+#define SIDE_OPPONENT 0x1
+
+#define BIT_SIDE 0x1
+#define BIT_MON 0x2
+
+#define STATUS_SLEEP 0x7
+#define STATUS_POISON 0x8
+#define STATUS_BURN 0x10
+#define STATUS_FREEZE 0x20
+#define STATUS_PARALYSIS 0x40
+#define STATUS_TOXIC_POISON 0x80
+#define STATUS_TOXIC_COUNTER 0xF00
+
+#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON))
+#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
+
+#define STATUS2_CONFUSION 0x00000007
+#define STATUS2_FLINCHED 0x00000008
+#define STATUS2_UPROAR 0x00000070
+#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200
+#define STATUS2_LOCK_CONFUSE 0x00000C00
+#define STATUS2_MULTIPLETURNS 0x00001000
+#define STATUS2_WRAPPED 0x0000E000
+#define STATUS2_INFATUATION 0x000F0000
+#define STATUS2_FOCUS_ENERGY 0x00100000
+#define STATUS2_TRANSFORMED 0x00200000
+#define STATUS2_RECHARGE 0x00400000
+#define STATUS2_RAGE 0x00800000
+#define STATUS2_SUBSTITUTE 0x01000000
+#define STATUS2_DESTINY_BOND 0x02000000
+#define STATUS2_ESCAPE_PREVENTION 0x04000000
+#define STATUS2_NIGHTMARE 0x08000000
+#define STATUS2_CURSED 0x10000000
+#define STATUS2_FORESIGHT 0x20000000
+#define STATUS2_DEFENSE_CURL 0x40000000
+#define STATUS2_TORMENT 0x80000000
+
+#define STATUS3_LEECHSEED_BANK 0x3
+#define STATUS3_LEECHSEED 0x4
+#define STATUS3_ALWAYS_HITS 0x18 //two bits
+#define STATUS3_PERISH_SONG 0x20
+#define STATUS3_ON_AIR 0x40
+#define STATUS3_UNDERGROUND 0x80
+#define STATUS3_MINIMIZED 0x100
+#define STATUS3_ROOTED 0x400
+#define STATUS3_CHARGED_UP 0x200
+#define STATUS3_YAWN 0x1800 //two bits
+#define STATUS3_IMPRISIONED 0x2000
+#define STATUS3_GRUDGE 0x4000
+#define STATUS3_CANT_SCORE_A_CRIT 0x8000
+#define STATUS3_MUDSPORT 0x10000
+#define STATUS3_WATERSPORT 0x20000
+#define STATUS3_UNDERWATER 0x40000
+#define STATUS3_INTIMIDATE_POKES 0x80000
+#define STATUS3_TRACE 0x100000
+
+#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER))
+
+#define HITMARKER_x10 0x00000010
+#define HITMARKER_x20 0x00000020
+#define HITMARKER_DESTINYBOND 0x00000040
+#define HITMARKER_NO_ANIMATIONS 0x00000080
+#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
+#define HITMARKER_NO_ATTACKSTRING 0x00000200
+#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
+#define HITMARKER_NO_PPDEDUCT 0x00000800
+#define HITMARKER_PURSUIT_TRAP 0x00001000
+#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
+#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
+#define HITMARKER_RUN 0x00008000
+#define HITMARKER_IGNORE_ON_AIR 0x00010000
+#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
+#define HITMARKER_IGNORE_UNDERWATER 0x00040000
+#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
+#define HITMARKER_x100000 0x00100000
+#define HITMARKER_x200000 0x00200000
+#define HITMARKER_x400000 0x00400000
+#define HITMARKER_x800000 0x00800000
+#define HITMARKER_GRUDGE 0x01000000
+#define HITMARKER_OBEYS 0x02000000
+#define HITMARKER_x4000000 0x04000000
+#define HITMARKER_x8000000 0x08000000
+#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
+#define HITMARKER_UNK(bank) ((0x10000000 << bank))
+
+#define MOVESTATUS_MISSED (1 << 0)
+#define MOVESTATUS_SUPEREFFECTIVE (1 << 1)
+#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2)
+#define MOVESTATUS_NOTAFFECTED (1 << 3)
+#define MOVESTATUS_ONEHITKO (1 << 4)
+#define MOVESTATUS_FAILED (1 << 5)
+#define MOVESTATUS_ENDURED (1 << 6)
+#define MOVESTATUS_HUNGON (1 << 7)
+
+#define IDENTITY_PLAYER_MON1 0
+#define IDENTITY_OPPONENT_MON1 1
+#define IDENTITY_PLAYER_MON2 2
+#define IDENTITY_OPPONENT_MON2 3
+
+#define BATTLE_TYPE_DOUBLE 0x0001
+#define BATTLE_TYPE_LINK 0x0002
+#define BATTLE_TYPE_WILD 0x0004
+#define BATTLE_TYPE_TRAINER 0x0008
+#define BATTLE_TYPE_FIRST_BATTLE 0x0010
+#define BATTLE_TYPE_20 0x0020
+#define BATTLE_TYPE_MULTI 0x0040
+#define BATTLE_TYPE_SAFARI 0x0080
+#define BATTLE_TYPE_BATTLE_TOWER 0x0100
+#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
+#define BATTLE_TYPE_ROAMER 0x0400
+#define BATTLE_TYPE_EREADER_TRAINER 0x0800
+#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
+#define BATTLE_TYPE_LEGENDARY 0x2000
+#define BATTLE_TYPE_REGI 0x4000
+#define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE)
+
+#define SECRET_BASE_OPPONENT 0x400
+
+#define BATTLE_WON 0x1
+#define BATTLE_LOST 0x2
+#define BATTLE_DREW 0x3
+#define BATTLE_RAN 0x4
+#define BATTLE_PLAYER_TELEPORTED 0x5
+#define BATTLE_POKE_FLED 0x6
+#define BATTLE_CAUGHT 0x7
+#define BATTLE_OUT_OF_BALLS 0x8
+#define BATTLE_OPPONENT_TELEPORTED 0xA
+
+#define OUTCOME_LINK_BATTLE_RUN 0x80
+
+#define SIDE_STATUS_REFLECT (1 << 0)
+#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
+#define SIDE_STATUS_X4 (1 << 2)
+#define SIDE_STATUS_SPIKES (1 << 4)
+#define SIDE_STATUS_SAFEGUARD (1 << 5)
+#define SIDE_STATUS_FUTUREATTACK (1 << 6)
+#define SIDE_STATUS_MIST (1 << 8)
+#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
+
+#define ACTION_USE_MOVE 0
+#define ACTION_USE_ITEM 1
+#define ACTION_SWITCH 2
+#define ACTION_RUN 3
+#define ACTION_WATCHES_CAREFULLY 4
+#define ACTION_SAFARI_ZONE_BALL 5
+#define ACTION_POKEBLOCK_CASE 6
+#define ACTION_GO_NEAR 7
+#define ACTION_SAFARI_ZONE_RUN 8
+#define ACTION_9 9
+#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action
+#define ACTION_CANCEL_PARTNER 12 // when choosing an action
+#define ACTION_FINISHED 12 // when executing an action
+#define ACTION_NOTHING_FAINTED 13 // when choosing an action
+#define ACTION_INIT_VALUE 0xFF
+
+#define TARGET_SELECTED_POKEMON 0
+#define TARGET_SPECIAL (1 << 0)
+#define TARGET_UNK2 (1 << 1)
+#define TARGET_RANDOM (1 << 2)
+#define TARGET_BOTH_ENEMIES (1 << 3)
+#define TARGET_USER (1 << 4)
+#define TARGET_ALL_EXCEPT_USER (1 << 5)
+#define TARGET_ENEMY_SIDE (1 << 6)
+
+#define F_MAKES_CONTACT (1 << 0)
+#define F_AFFECTED_BY_PROTECT (1 << 1)
+#define F_AFFECTED_BY_MAGIC_COAT (1 << 2)
+#define F_AFFECTED_BY_SNATCH (1 << 3)
+#define F_MIRROR_MOVE_COMPATIBLE (1 << 4)
+#define F_AFFECTED_BY_KINGS_ROCK (1 << 5)
+
+#define AI_ACTION_DONE 0x0001
+#define AI_ACTION_FLEE 0x0002
+#define AI_ACTION_WATCH 0x0004
+#define AI_ACTION_DO_NOT_ATTACK 0x0008
+#define AI_ACTION_UNK5 0x0010
+#define AI_ACTION_UNK6 0x0020
+#define AI_ACTION_UNK7 0x0040
+#define AI_ACTION_UNK8 0x0080
+
+#define ABILITYEFFECT_ON_SWITCHIN 0x0
+#define ABILITYEFFECT_ENDTURN 0x1
+#define ABILITYEFFECT_MOVES_BLOCK 0x2
+#define ABILITYEFFECT_ABSORBING 0x3
+#define ABILITYEFFECT_CONTACT 0x4
+#define ABILITYEFFECT_IMMUNITY 0x5
+#define ABILITYEFFECT_FORECAST 0x6
+#define ABILITYEFFECT_SYNCHRONIZE 0x7
+#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8
+#define ABILITYEFFECT_INTIMIDATE1 0x9
+#define ABILITYEFFECT_INTIMIDATE2 0xA
+#define ABILITYEFFECT_TRACE 0xB
+#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC
+#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD
+#define ABILITYEFFECT_FIELD_SPORT 0xE
+#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF
+#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10
+#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11
+#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
+#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
+
+#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
+
+#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))
+
+#define MAX_TRAINER_ITEMS 4
+#define MAX_MON_MOVES 4
+#define MAX_BANKS_BATTLE 4
+
+#define WEATHER_RAIN_TEMPORARY (1 << 0)
+#define WEATHER_RAIN_DOWNPOUR (1 << 1)
+#define WEATHER_RAIN_PERMANENT (1 << 2)
+#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT))
+#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
+#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
+#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT))
+#define WEATHER_SUN_TEMPORARY (1 << 5)
+#define WEATHER_SUN_PERMANENT (1 << 6)
+#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
+#define WEATHER_HAIL (1 << 7)
+
+#define MOVE_TARGET_SELECTED 0x0
+#define MOVE_TARGET_DEPENDS 0x1
+#define MOVE_TARGET_USER 0x2
+#define MOVE_TARGET_RANDOM 0x4
+#define MOVE_TARGET_x10 0x10
+#define MOVE_TARGET_BOTH 0x8
+#define MOVE_TARGET_FOES_AND_ALLY 0x20
+#define MOVE_TARGET_OPPONENTS_FIELD 0x40
+
+// array entries for battle communication
+#define MULTIUSE_STATE 0x0
+#define CURSOR_POSITION 0x1
+#define TASK_ID 0x1 // task Id and cursor position share the same field
+#define SPRITES_INIT_STATE1 0x1 // shares the Id as well
+#define SPRITES_INIT_STATE2 0x2
+#define MOVE_EFFECT_BYTE 0x3
+#define ACTIONS_CONFIRMED_COUNT 0x4
+#define MULTISTRING_CHOOSER 0x5
+#define MSG_DISPLAY 0x7
+#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8
+
+#define BS_GET_TARGET 0
+#define BS_GET_ATTACKER 1
+#define BS_GET_EFFECT_BANK 2
+#define BS_GET_gBank1 3
+#define BS_GET_BANK_0 7
+#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
+#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
+#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
+#define BS_GET_SCRIPTING_BANK 10
+#define BS_GET_OPPONENT1 12
+#define BS_GET_PLAYER2 13
+#define BS_GET_OPPONENT2 14
+
+// status animation table
+#define B_ANIM_STATUS_PSN 0x0
+#define B_ANIM_STATUS_CONFUSION 0x1
+#define B_ANIM_STATUS_BRN 0x2
+#define B_ANIM_STATUS_INFATUATION 0x3
+#define B_ANIM_STATUS_SLP 0x4
+#define B_ANIM_STATUS_PRZ 0x5
+#define B_ANIM_STATUS_FRZ 0x6
+#define B_ANIM_STATUS_CURSED 0x7
+#define B_ANIM_STATUS_NIGHTMARE 0x8
+#define B_ANIM_STATUS_WRAPPED 0x9
+
+// general animation table
+#define B_ANIM_CASTFORM_CHANGE 0x0
+#define B_ANIM_STATS_CHANGE 0x1
+#define B_ANIM_SUBSTITUTE_FADE 0x2
+#define B_ANIM_SUBSTITUTE_APPEAR 0x3
+#define B_ANIM_POKEBLOCK_THROW 0x4
+#define B_ANIM_ITEM_KNOCKOFF 0x5
+#define B_ANIM_TURN_TRAP 0x6
+#define B_ANIM_ITEM_EFFECT 0x7
+#define B_ANIM_SMOKEBALL_ESCAPE 0x8
+#define B_ANIM_HANGED_ON 0x9
+#define B_ANIM_RAIN_CONTINUES 0xA
+#define B_ANIM_SUN_CONTINUES 0xB
+#define B_ANIM_SANDSTORM_CONTINUES 0xC
+#define B_ANIM_HAIL_CONTINUES 0xD
+#define B_ANIM_LEECH_SEED_DRAIN 0xE
+#define B_ANIM_MON_HIT 0xF
+#define B_ANIM_ITEM_STEAL 0x10
+#define B_ANIM_SNATCH_MOVE 0x11
+#define B_ANIM_FUTURE_SIGHT_HIT 0x12
+#define B_ANIM_DOOM_DESIRE_HIT 0x13
+#define B_ANIM_FOCUS_PUNCH_SET_UP 0x14
+#define B_ANIM_INGRAIN_HEAL 0x15
+#define B_ANIM_WISH_HEAL 0x16
+
+// special animation table
+#define B_ANIM_LVL_UP 0x0
+#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
+#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
+#define B_ANIM_BALL_THROW 0x3
+#define B_ANIM_SAFARI_BALL_THROW 0x4
+#define B_ANIM_SUBSTITUTE_TO_MON 0x5
+#define B_ANIM_MON_TO_SUBSTITUTE 0x6
+
+// AI switch items
+#define AI_ITEM_FULL_RESTORE 1
+#define AI_ITEM_HEAL_HP 2
+#define AI_ITEM_CURE_CONDITION 3
+#define AI_ITEM_X_STAT 4
+#define AI_ITEM_GUARD_SPECS 5
+#define AI_ITEM_NOT_RECOGNIZABLE 6
+
+#endif // GUARD_CONSTANTS_BATTLE_CONSTANTS_H
diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h
new file mode 100644
index 000000000..c0d433d1d
--- /dev/null
+++ b/include/constants/battle_move_effects.h
@@ -0,0 +1,219 @@
+#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+
+#define EFFECT_HIT 0
+#define EFFECT_SLEEP 1
+#define EFFECT_POISON_HIT 2
+#define EFFECT_ABSORB 3
+#define EFFECT_BURN_HIT 4
+#define EFFECT_FREEZE_HIT 5
+#define EFFECT_PARALYZE_HIT 6
+#define EFFECT_EXPLOSION 7
+#define EFFECT_DREAM_EATER 8
+#define EFFECT_MIRROR_MOVE 9
+#define EFFECT_ATTACK_UP 10
+#define EFFECT_DEFENSE_UP 11
+#define EFFECT_SPEED_UP 12
+#define EFFECT_SPECIAL_ATTACK_UP 13
+#define EFFECT_SPECIAL_DEFENSE_UP 14
+#define EFFECT_ACCURACY_UP 15
+#define EFFECT_EVASION_UP 16
+#define EFFECT_ALWAYS_HIT 17
+#define EFFECT_ATTACK_DOWN 18
+#define EFFECT_DEFENSE_DOWN 19
+#define EFFECT_SPEED_DOWN 20
+#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused
+#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused
+#define EFFECT_ACCURACY_DOWN 23
+#define EFFECT_EVASION_DOWN 24
+#define EFFECT_HAZE 25
+#define EFFECT_BIDE 26
+#define EFFECT_RAMPAGE 27
+#define EFFECT_ROAR 28
+#define EFFECT_MULTI_HIT 29
+#define EFFECT_CONVERSION 30
+#define EFFECT_FLINCH_HIT 31
+#define EFFECT_RESTORE_HP 32
+#define EFFECT_TOXIC 33
+#define EFFECT_PAY_DAY 34
+#define EFFECT_LIGHT_SCREEN 35
+#define EFFECT_TRI_ATTACK 36
+#define EFFECT_REST 37
+#define EFFECT_OHKO 38
+#define EFFECT_RAZOR_WIND 39
+#define EFFECT_SUPER_FANG 40
+#define EFFECT_DRAGON_RAGE 41
+#define EFFECT_TRAP 42
+#define EFFECT_HIGH_CRITICAL 43
+#define EFFECT_DOUBLE_HIT 44
+#define EFFECT_RECOIL_IF_MISS 45
+#define EFFECT_MIST 46
+#define EFFECT_FOCUS_ENERGY 47
+#define EFFECT_RECOIL 48
+#define EFFECT_CONFUSE 49
+#define EFFECT_ATTACK_UP_2 50
+#define EFFECT_DEFENSE_UP_2 51
+#define EFFECT_SPEED_UP_2 52
+#define EFFECT_SPECIAL_ATTACK_UP_2 53
+#define EFFECT_SPECIAL_DEFENSE_UP_2 54
+#define EFFECT_ACCURACY_UP_2 55
+#define EFFECT_EVASION_UP_2 56
+#define EFFECT_TRANSFORM 57
+#define EFFECT_ATTACK_DOWN_2 58
+#define EFFECT_DEFENSE_DOWN_2 59
+#define EFFECT_SPEED_DOWN_2 60
+#define EFFECT_SPECIAL_ATTACK_DOWN_2 61
+#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62
+#define EFFECT_ACCURACY_DOWN_2 63
+#define EFFECT_EVASION_DOWN_2 64
+#define EFFECT_REFLECT 65
+#define EFFECT_POISON 66
+#define EFFECT_PARALYZE 67
+#define EFFECT_ATTACK_DOWN_HIT 68
+#define EFFECT_DEFENSE_DOWN_HIT 69
+#define EFFECT_SPEED_DOWN_HIT 70
+#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71
+#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72
+#define EFFECT_ACCURACY_DOWN_HIT 73
+#define EFFECT_EVASION_DOWN_HIT 74
+#define EFFECT_SKY_ATTACK 75
+#define EFFECT_CONFUSE_HIT 76
+#define EFFECT_TWINEEDLE 77
+#define EFFECT_VITAL_THROW 78
+#define EFFECT_SUBSTITUTE 79
+#define EFFECT_RECHARGE 80
+#define EFFECT_RAGE 81
+#define EFFECT_MIMIC 82
+#define EFFECT_METRONOME 83
+#define EFFECT_LEECH_SEED 84
+#define EFFECT_SPLASH 85
+#define EFFECT_DISABLE 86
+#define EFFECT_LEVEL_DAMAGE 87
+#define EFFECT_PSYWAVE 88
+#define EFFECT_COUNTER 89
+#define EFFECT_ENCORE 90
+#define EFFECT_PAIN_SPLIT 91
+#define EFFECT_SNORE 92
+#define EFFECT_CONVERSION_2 93
+#define EFFECT_LOCK_ON 94
+#define EFFECT_SKETCH 95
+#define EFFECT_UNUSED_60 96 // thaw
+#define EFFECT_SLEEP_TALK 97
+#define EFFECT_DESTINY_BOND 98
+#define EFFECT_FLAIL 99
+#define EFFECT_SPITE 100
+#define EFFECT_FALSE_SWIPE 101
+#define EFFECT_HEAL_BELL 102
+#define EFFECT_QUICK_ATTACK 103
+#define EFFECT_TRIPLE_KICK 104
+#define EFFECT_THIEF 105
+#define EFFECT_MEAN_LOOK 106
+#define EFFECT_NIGHTMARE 107
+#define EFFECT_MINIMIZE 108
+#define EFFECT_CURSE 109
+#define EFFECT_UNUSED_6E 110
+#define EFFECT_PROTECT 111
+#define EFFECT_SPIKES 112
+#define EFFECT_FORESIGHT 113
+#define EFFECT_PERISH_SONG 114
+#define EFFECT_SANDSTORM 115
+#define EFFECT_ENDURE 116
+#define EFFECT_ROLLOUT 117
+#define EFFECT_SWAGGER 118
+#define EFFECT_FURY_CUTTER 119
+#define EFFECT_ATTRACT 120
+#define EFFECT_RETURN 121
+#define EFFECT_PRESENT 122
+#define EFFECT_FRUSTRATION 123
+#define EFFECT_SAFEGUARD 124
+#define EFFECT_THAW_HIT 125
+#define EFFECT_MAGNITUDE 126
+#define EFFECT_BATON_PASS 127
+#define EFFECT_PURSUIT 128
+#define EFFECT_RAPID_SPIN 129
+#define EFFECT_SONICBOOM 130
+#define EFFECT_UNUSED_83 131
+#define EFFECT_MORNING_SUN 132
+#define EFFECT_SYNTHESIS 133
+#define EFFECT_MOONLIGHT 134
+#define EFFECT_HIDDEN_POWER 135
+#define EFFECT_RAIN_DANCE 136
+#define EFFECT_SUNNY_DAY 137
+#define EFFECT_DEFENSE_UP_HIT 138
+#define EFFECT_ATTACK_UP_HIT 139
+#define EFFECT_ALL_STATS_UP_HIT 140
+#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2
+#define EFFECT_BELLY_DRUM 142
+#define EFFECT_PSYCH_UP 143
+#define EFFECT_MIRROR_COAT 144
+#define EFFECT_SKULL_BASH 145
+#define EFFECT_TWISTER 146
+#define EFFECT_EARTHQUAKE 147
+#define EFFECT_FUTURE_SIGHT 148
+#define EFFECT_GUST 149
+#define EFFECT_FLINCH_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
+#define EFFECT_SOLARBEAM 151
+#define EFFECT_THUNDER 152
+#define EFFECT_TELEPORT 153
+#define EFFECT_BEAT_UP 154
+#define EFFECT_FLY 155
+#define EFFECT_DEFENSE_CURL 156
+#define EFFECT_SOFTBOILED 157
+#define EFFECT_FAKE_OUT 158
+#define EFFECT_UPROAR 159
+#define EFFECT_STOCKPILE 160
+#define EFFECT_SPIT_UP 161
+#define EFFECT_SWALLOW 162
+#define EFFECT_UNUSED_A3 163
+#define EFFECT_HAIL 164
+#define EFFECT_TORMENT 165
+#define EFFECT_FLATTER 166
+#define EFFECT_WILL_O_WISP 167
+#define EFFECT_MEMENTO 168
+#define EFFECT_FACADE 169
+#define EFFECT_FOCUS_PUNCH 170
+#define EFFECT_SMELLINGSALT 171
+#define EFFECT_FOLLOW_ME 172
+#define EFFECT_NATURE_POWER 173
+#define EFFECT_CHARGE 174
+#define EFFECT_TAUNT 175
+#define EFFECT_HELPING_HAND 176
+#define EFFECT_TRICK 177
+#define EFFECT_ROLE_PLAY 178
+#define EFFECT_WISH 179
+#define EFFECT_ASSIST 180
+#define EFFECT_INGRAIN 181
+#define EFFECT_SUPERPOWER 182
+#define EFFECT_MAGIC_COAT 183
+#define EFFECT_RECYCLE 184
+#define EFFECT_REVENGE 185
+#define EFFECT_BRICK_BREAK 186
+#define EFFECT_YAWN 187
+#define EFFECT_KNOCK_OFF 188
+#define EFFECT_ENDEAVOR 189
+#define EFFECT_ERUPTION 190
+#define EFFECT_SKILL_SWAP 191
+#define EFFECT_IMPRISON 192
+#define EFFECT_REFRESH 193
+#define EFFECT_GRUDGE 194
+#define EFFECT_SNATCH 195
+#define EFFECT_LOW_KICK 196
+#define EFFECT_SECRET_POWER 197
+#define EFFECT_DOUBLE_EDGE 198
+#define EFFECT_TEETER_DANCE 199
+#define EFFECT_BLAZE_KICK 200
+#define EFFECT_MUD_SPORT 201
+#define EFFECT_POISON_FANG 202
+#define EFFECT_WEATHER_BALL 203
+#define EFFECT_OVERHEAT 204
+#define EFFECT_TICKLE 205
+#define EFFECT_COSMIC_POWER 206
+#define EFFECT_SKY_UPPERCUT 207
+#define EFFECT_BULK_UP 208
+#define EFFECT_POISON_TAIL 209
+#define EFFECT_WATER_SPORT 210
+#define EFFECT_CALM_MIND 211
+#define EFFECT_DRAGON_DANCE 212
+#define EFFECT_CAMOUFLAGE 213
+
+#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
diff --git a/include/constants/decorations.h b/include/constants/decorations.h
new file mode 100644
index 000000000..2e3558721
--- /dev/null
+++ b/include/constants/decorations.h
@@ -0,0 +1,126 @@
+#ifndef GUARD_CONSTANTS_DECORATIONS_H
+#define GUARD_CONSTANTS_DECORATIONS_H
+
+#define DECOR_NONE 0
+#define DECOR_SMALL_DESK 1
+#define DECOR_POKEMON_DESK 2
+#define DECOR_HEAVY_DESK 3
+#define DECOR_RAGGED_DESK 4
+#define DECOR_COMFORT_DESK 5
+#define DECOR_PRETTY_DESK 6
+#define DECOR_BRICK_DESK 7
+#define DECOR_CAMP_DESK 8
+#define DECOR_HARD_DESK 9
+#define DECOR_SMALL_CHAIR 10
+#define DECOR_POKEMON_CHAIR 11
+#define DECOR_HEAVY_CHAIR 12
+#define DECOR_PRETTY_CHAIR 13
+#define DECOR_COMFORT_CHAIR 14
+#define DECOR_RAGGED_CHAIR 15
+#define DECOR_BRICK_CHAIR 16
+#define DECOR_CAMP_CHAIR 17
+#define DECOR_HARD_CHAIR 18
+#define DECOR_RED_PLANT 19
+#define DECOR_TROPICAL_PLANT 20
+#define DECOR_PRETTY_FLOWERS 21
+#define DECOR_COLORFUL_PLANT 22
+#define DECOR_BIG_PLANT 23
+#define DECOR_GORGEOUS_PLANT 24
+#define DECOR_RED_BRICK 25
+#define DECOR_YELLOW_BRICK 26
+#define DECOR_BLUE_BRICK 27
+#define DECOR_RED_BALLOON 28
+#define DECOR_BLUE_BALLOON 29
+#define DECOR_YELLOW_BALLOON 30
+#define DECOR_RED_TENT 31
+#define DECOR_BLUE_TENT 32
+#define DECOR_SOLID_BOARD 33
+#define DECOR_SLIDE 34
+#define DECOR_FENCE_LENGTH 35
+#define DECOR_FENCE_WIDTH 36
+#define DECOR_TIRE 37
+#define DECOR_STAND 38
+#define DECOR_MUD_BALL 39
+#define DECOR_BREAKABLE_DOOR 40
+#define DECOR_SAND_ORNAMENT 41
+#define DECOR_SILVER_SHIELD 42
+#define DECOR_GOLD_SHIELD 43
+#define DECOR_GLASS_ORNAMENT 44
+#define DECOR_TV 45
+#define DECOR_ROUND_TV 46
+#define DECOR_CUTE_TV 47
+#define DECOR_GLITTER_MAT 48
+#define DECOR_JUMP_MAT 49
+#define DECOR_SPIN_MAT 50
+#define DECOR_C_LOW_NOTE_MAT 51
+#define DECOR_D_NOTE_MAT 52
+#define DECOR_E_NOTE_MAT 53
+#define DECOR_F_NOTE_MAT 54
+#define DECOR_G_NOTE_MAT 55
+#define DECOR_A_NOTE_MAT 56
+#define DECOR_B_NOTE_MAT 57
+#define DECOR_C_HIGH_NOTE_MAT 58
+#define DECOR_SURF_MAT 59
+#define DECOR_THUNDER_MAT 60
+#define DECOR_FIRE_BLAST_MAT 61
+#define DECOR_POWDER_SNOW_MAT 62
+#define DECOR_ATTRACT_MAT 63
+#define DECOR_FISSURE_MAT 64
+#define DECOR_SPIKES_MAT 65
+#define DECOR_BALL_POSTER 66
+#define DECOR_GREEN_POSTER 67
+#define DECOR_RED_POSTER 68
+#define DECOR_BLUE_POSTER 69
+#define DECOR_CUTE_POSTER 70
+#define DECOR_PIKA_POSTER 71
+#define DECOR_LONG_POSTER 72
+#define DECOR_SEA_POSTER 73
+#define DECOR_SKY_POSTER 74
+#define DECOR_KISS_POSTER 75
+#define DECOR_PICHU_DOLL 76
+#define DECOR_PIKACHU_DOLL 77
+#define DECOR_MARILL_DOLL 78
+#define DECOR_TOGEPI_DOLL 79
+#define DECOR_CYNDAQUIL_DOLL 80
+#define DECOR_CHIKORITA_DOLL 81
+#define DECOR_TOTODILE_DOLL 82
+#define DECOR_JIGGLYPUFF_DOLL 83
+#define DECOR_MEOWTH_DOLL 84
+#define DECOR_CLEFAIRY_DOLL 85
+#define DECOR_DITTO_DOLL 86
+#define DECOR_SMOOCHUM_DOLL 87
+#define DECOR_TREECKO_DOLL 88
+#define DECOR_TORCHIC_DOLL 89
+#define DECOR_MUDKIP_DOLL 90
+#define DECOR_DUSKULL_DOLL 91
+#define DECOR_WYNAUT_DOLL 92
+#define DECOR_BALTOY_DOLL 93
+#define DECOR_KECLEON_DOLL 94
+#define DECOR_AZURILL_DOLL 95
+#define DECOR_SKITTY_DOLL 96
+#define DECOR_SWABLU_DOLL 97
+#define DECOR_GULPIN_DOLL 98
+#define DECOR_LOTAD_DOLL 99
+#define DECOR_SEEDOT_DOLL 100
+#define DECOR_PIKA_CUSHION 101
+#define DECOR_ROUND_CUSHION 102
+#define DECOR_KISS_CUSHION 103
+#define DECOR_ZIGZAG_CUSHION 104
+#define DECOR_SPIN_CUSHION 105
+#define DECOR_DIAMOND_CUSHION 106
+#define DECOR_BALL_CUSHION 107
+#define DECOR_GRASS_CUSHION 108
+#define DECOR_FIRE_CUSHION 109
+#define DECOR_WATER_CUSHION 110
+#define DECOR_SNORLAX_DOLL 111
+#define DECOR_RHYDON_DOLL 112
+#define DECOR_LAPRAS_DOLL 113
+#define DECOR_VENUSAUR_DOLL 114
+#define DECOR_CHARIZARD_DOLL 115
+#define DECOR_BLASTOISE_DOLL 116
+#define DECOR_WAILMER_DOLL 117
+#define DECOR_REGIROCK_DOLL 118
+#define DECOR_REGICE_DOLL 119
+#define DECOR_REGISTEEL_DOLL 120
+
+#endif // GUARD_CONSTANTS_DECORATIONS_H
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
new file mode 100644
index 000000000..215dac48c
--- /dev/null
+++ b/include/constants/easy_chat.h
@@ -0,0 +1,1064 @@
+#ifndef GUARD_CONSTANTS_EASY_CHAT_H
+#define GUARD_CONSTANTS_EASY_CHAT_H
+
+#define EC_GROUP_POKEMON_1 0x0
+#define EC_GROUP_TRAINER 0x1
+#define EC_GROUP_STATUS 0x2
+#define EC_GROUP_BATTLE 0x3
+#define EC_GROUP_GREETINGS 0x4
+#define EC_GROUP_PEOPLE 0x5
+#define EC_GROUP_VOICES 0x6
+#define EC_GROUP_SPEECH 0x7
+#define EC_GROUP_ENDINGS 0x8
+#define EC_GROUP_FEELINGS 0x9
+#define EC_GROUP_CONDITIONS 0xa
+#define EC_GROUP_ACTIONS 0xb
+#define EC_GROUP_LIFESTYLE 0xc
+#define EC_GROUP_HOBBIES 0xd
+#define EC_GROUP_TIME 0xe
+#define EC_GROUP_MISC 0xf
+#define EC_GROUP_ADJECTIVES 0x10
+#define EC_GROUP_EVENTS 0x11
+#define EC_GROUP_MOVE_1 0x12
+#define EC_GROUP_MOVE_2 0x13
+#define EC_GROUP_TRENDY_SAYING 0x14
+#define EC_GROUP_POKEMON_2 0x15
+
+// TRAINER
+#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0
+#define EC_WORD_GOTCHA (EC_GROUP_TRAINER << 9) | 0x1
+#define EC_WORD_TRADE (EC_GROUP_TRAINER << 9) | 0x2
+#define EC_WORD_SAPPHIRE (EC_GROUP_TRAINER << 9) | 0x3
+#define EC_WORD_EVOLVE (EC_GROUP_TRAINER << 9) | 0x4
+#define EC_WORD_ENCYCLOPEDIA (EC_GROUP_TRAINER << 9) | 0x5
+#define EC_WORD_NATURE (EC_GROUP_TRAINER << 9) | 0x6
+#define EC_WORD_CENTER (EC_GROUP_TRAINER << 9) | 0x7
+#define EC_WORD_EGG (EC_GROUP_TRAINER << 9) | 0x8
+#define EC_WORD_LINK (EC_GROUP_TRAINER << 9) | 0x9
+#define EC_WORD_SP_ABILITY (EC_GROUP_TRAINER << 9) | 0xa
+#define EC_WORD_TRAINER (EC_GROUP_TRAINER << 9) | 0xb
+#define EC_WORD_VERSION (EC_GROUP_TRAINER << 9) | 0xc
+#define EC_WORD_POKENAV (EC_GROUP_TRAINER << 9) | 0xd
+#define EC_WORD_POKEMON (EC_GROUP_TRAINER << 9) | 0xe
+#define EC_WORD_GET (EC_GROUP_TRAINER << 9) | 0xf
+#define EC_WORD_POKEDEX (EC_GROUP_TRAINER << 9) | 0x10
+#define EC_WORD_RUBY (EC_GROUP_TRAINER << 9) | 0x11
+#define EC_WORD_LEVEL (EC_GROUP_TRAINER << 9) | 0x12
+
+// STATUS
+#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0
+#define EC_WORD_STENCH (EC_GROUP_STATUS << 9) | 0x1
+#define EC_WORD_THICK_FAT (EC_GROUP_STATUS << 9) | 0x2
+#define EC_WORD_RAIN_DISH (EC_GROUP_STATUS << 9) | 0x3
+#define EC_WORD_DRIZZLE (EC_GROUP_STATUS << 9) | 0x4
+#define EC_WORD_ARENA_TRAP (EC_GROUP_STATUS << 9) | 0x5
+#define EC_WORD_INTIMIDATE (EC_GROUP_STATUS << 9) | 0x6
+#define EC_WORD_ROCK_HEAD (EC_GROUP_STATUS << 9) | 0x7
+#define EC_WORD_COLOR (EC_GROUP_STATUS << 9) | 0x8
+#define EC_WORD_ALT_COLOR (EC_GROUP_STATUS << 9) | 0x9
+#define EC_WORD_ROCK (EC_GROUP_STATUS << 9) | 0xa
+#define EC_WORD_BEAUTIFUL (EC_GROUP_STATUS << 9) | 0xb
+#define EC_WORD_BEAUTY (EC_GROUP_STATUS << 9) | 0xc
+#define EC_WORD_AIR_LOCK (EC_GROUP_STATUS << 9) | 0xd
+#define EC_WORD_PSYCHIC (EC_GROUP_STATUS << 9) | 0xe
+#define EC_WORD_HYPER_CUTTER (EC_GROUP_STATUS << 9) | 0xf
+#define EC_WORD_FIGHTING (EC_GROUP_STATUS << 9) | 0x10
+#define EC_WORD_SHADOW_TAG (EC_GROUP_STATUS << 9) | 0x11
+#define EC_WORD_SMART (EC_GROUP_STATUS << 9) | 0x12
+#define EC_WORD_SMARTNESS (EC_GROUP_STATUS << 9) | 0x13
+#define EC_WORD_SPEED_BOOST (EC_GROUP_STATUS << 9) | 0x14
+#define EC_WORD_COOL (EC_GROUP_STATUS << 9) | 0x15
+#define EC_WORD_COOLNESS (EC_GROUP_STATUS << 9) | 0x16
+#define EC_WORD_BATTLE_ARMOR (EC_GROUP_STATUS << 9) | 0x17
+#define EC_WORD_CUTE (EC_GROUP_STATUS << 9) | 0x18
+#define EC_WORD_CUTENESS (EC_GROUP_STATUS << 9) | 0x19
+#define EC_WORD_STURDY (EC_GROUP_STATUS << 9) | 0x1a
+#define EC_WORD_SUCTION_CUPS (EC_GROUP_STATUS << 9) | 0x1b
+#define EC_WORD_GRASS (EC_GROUP_STATUS << 9) | 0x1c
+#define EC_WORD_CLEAR_BODY (EC_GROUP_STATUS << 9) | 0x1d
+#define EC_WORD_TORRENT (EC_GROUP_STATUS << 9) | 0x1e
+#define EC_WORD_GHOST (EC_GROUP_STATUS << 9) | 0x1f
+#define EC_WORD_ICE (EC_GROUP_STATUS << 9) | 0x20
+#define EC_WORD_GUTS (EC_GROUP_STATUS << 9) | 0x21
+#define EC_WORD_ROUGH_SKIN (EC_GROUP_STATUS << 9) | 0x22
+#define EC_WORD_SHELL_ARMOR (EC_GROUP_STATUS << 9) | 0x23
+#define EC_WORD_NATURAL_CURE (EC_GROUP_STATUS << 9) | 0x24
+#define EC_WORD_DAMP (EC_GROUP_STATUS << 9) | 0x25
+#define EC_WORD_GROUND (EC_GROUP_STATUS << 9) | 0x26
+#define EC_WORD_LIMBER (EC_GROUP_STATUS << 9) | 0x27
+#define EC_WORD_MAGNET_PULL (EC_GROUP_STATUS << 9) | 0x28
+#define EC_WORD_WHITE_SMOKE (EC_GROUP_STATUS << 9) | 0x29
+#define EC_WORD_SYNCHRONIZE (EC_GROUP_STATUS << 9) | 0x2a
+#define EC_WORD_OVERGROW (EC_GROUP_STATUS << 9) | 0x2b
+#define EC_WORD_SWIFT_SWIM (EC_GROUP_STATUS << 9) | 0x2c
+#define EC_WORD_SAND_STREAM (EC_GROUP_STATUS << 9) | 0x2d
+#define EC_WORD_SAND_VEIL (EC_GROUP_STATUS << 9) | 0x2e
+#define EC_WORD_KEEN_EYE (EC_GROUP_STATUS << 9) | 0x2f
+#define EC_WORD_INNER_FOCUS (EC_GROUP_STATUS << 9) | 0x30
+#define EC_WORD_STATIC (EC_GROUP_STATUS << 9) | 0x31
+#define EC_WORD_TYPE (EC_GROUP_STATUS << 9) | 0x32
+#define EC_WORD_TOUGH (EC_GROUP_STATUS << 9) | 0x33
+#define EC_WORD_TOUGHNESS (EC_GROUP_STATUS << 9) | 0x34
+#define EC_WORD_SHED_SKIN (EC_GROUP_STATUS << 9) | 0x35
+#define EC_WORD_HUGE_POWER (EC_GROUP_STATUS << 9) | 0x36
+#define EC_WORD_VOLT_ABSORB (EC_GROUP_STATUS << 9) | 0x37
+#define EC_WORD_WATER_ABSORB (EC_GROUP_STATUS << 9) | 0x38
+#define EC_WORD_ELECTRIC (EC_GROUP_STATUS << 9) | 0x39
+#define EC_WORD_FORECAST (EC_GROUP_STATUS << 9) | 0x3a
+#define EC_WORD_SERENE_GRACE (EC_GROUP_STATUS << 9) | 0x3b
+#define EC_WORD_POISON (EC_GROUP_STATUS << 9) | 0x3c
+#define EC_WORD_POISON_POINT (EC_GROUP_STATUS << 9) | 0x3d
+#define EC_WORD_DRAGON (EC_GROUP_STATUS << 9) | 0x3e
+#define EC_WORD_TRACE (EC_GROUP_STATUS << 9) | 0x3f
+#define EC_WORD_OBLIVIOUS (EC_GROUP_STATUS << 9) | 0x40
+#define EC_WORD_TRUANT (EC_GROUP_STATUS << 9) | 0x41
+#define EC_WORD_RUN_AWAY (EC_GROUP_STATUS << 9) | 0x42
+#define EC_WORD_STICKY_HOLD (EC_GROUP_STATUS << 9) | 0x43
+#define EC_WORD_CLOUD_NINE (EC_GROUP_STATUS << 9) | 0x44
+#define EC_WORD_NORMAL (EC_GROUP_STATUS << 9) | 0x45
+#define EC_WORD_STEEL (EC_GROUP_STATUS << 9) | 0x46
+#define EC_WORD_ILLUMINATE (EC_GROUP_STATUS << 9) | 0x47
+#define EC_WORD_EARLY_BIRD (EC_GROUP_STATUS << 9) | 0x48
+#define EC_WORD_HUSTLE (EC_GROUP_STATUS << 9) | 0x49
+#define EC_WORD_SHINE (EC_GROUP_STATUS << 9) | 0x4a
+#define EC_WORD_FLYING (EC_GROUP_STATUS << 9) | 0x4b
+#define EC_WORD_DROUGHT (EC_GROUP_STATUS << 9) | 0x4c
+#define EC_WORD_LIGHTNINGROD (EC_GROUP_STATUS << 9) | 0x4d
+#define EC_WORD_COMPOUNDEYES (EC_GROUP_STATUS << 9) | 0x4e
+#define EC_WORD_MARVEL_SCALE (EC_GROUP_STATUS << 9) | 0x4f
+#define EC_WORD_WONDER_GUARD (EC_GROUP_STATUS << 9) | 0x50
+#define EC_WORD_INSOMNIA (EC_GROUP_STATUS << 9) | 0x51
+#define EC_WORD_LEVITATE (EC_GROUP_STATUS << 9) | 0x52
+#define EC_WORD_PLUS (EC_GROUP_STATUS << 9) | 0x53
+#define EC_WORD_PRESSURE (EC_GROUP_STATUS << 9) | 0x54
+#define EC_WORD_LIQUID_OOZE (EC_GROUP_STATUS << 9) | 0x55
+#define EC_WORD_COLOR_CHANGE (EC_GROUP_STATUS << 9) | 0x56
+#define EC_WORD_SOUNDPROOF (EC_GROUP_STATUS << 9) | 0x57
+#define EC_WORD_EFFECT_SPORE (EC_GROUP_STATUS << 9) | 0x58
+#define EC_WORD_PKRS (EC_GROUP_STATUS << 9) | 0x59
+#define EC_WORD_FIRE (EC_GROUP_STATUS << 9) | 0x5a
+#define EC_WORD_FLAME_BODY (EC_GROUP_STATUS << 9) | 0x5b
+#define EC_WORD_MINUS (EC_GROUP_STATUS << 9) | 0x5c
+#define EC_WORD_OWN_TEMPO (EC_GROUP_STATUS << 9) | 0x5d
+#define EC_WORD_MAGMA_ARMOR (EC_GROUP_STATUS << 9) | 0x5e
+#define EC_WORD_WATER (EC_GROUP_STATUS << 9) | 0x5f
+#define EC_WORD_WATER_VEIL (EC_GROUP_STATUS << 9) | 0x60
+#define EC_WORD_BUG (EC_GROUP_STATUS << 9) | 0x61
+#define EC_WORD_SWARM (EC_GROUP_STATUS << 9) | 0x62
+#define EC_WORD_CUTE_CHARM (EC_GROUP_STATUS << 9) | 0x63
+#define EC_WORD_IMMUNITY (EC_GROUP_STATUS << 9) | 0x64
+#define EC_WORD_BLAZE (EC_GROUP_STATUS << 9) | 0x65
+#define EC_WORD_PICKUP (EC_GROUP_STATUS << 9) | 0x66
+#define EC_WORD_PATTERN (EC_GROUP_STATUS << 9) | 0x67
+#define EC_WORD_FLASH_FIRE (EC_GROUP_STATUS << 9) | 0x68
+#define EC_WORD_VITAL_SPIRIT (EC_GROUP_STATUS << 9) | 0x69
+#define EC_WORD_CHLOROPHYLL (EC_GROUP_STATUS << 9) | 0x6a
+#define EC_WORD_PURE_POWER (EC_GROUP_STATUS << 9) | 0x6b
+#define EC_WORD_SHIELD_DUST (EC_GROUP_STATUS << 9) | 0x6c
+
+// BATTLE
+#define EC_WORD_MATCH_UP (EC_GROUP_BATTLE << 9) | 0x0
+#define EC_WORD_GO (EC_GROUP_BATTLE << 9) | 0x1
+#define EC_WORD_NO_1 (EC_GROUP_BATTLE << 9) | 0x2
+#define EC_WORD_DECIDE (EC_GROUP_BATTLE << 9) | 0x3
+#define EC_WORD_LET_ME_WIN (EC_GROUP_BATTLE << 9) | 0x4
+#define EC_WORD_WINS (EC_GROUP_BATTLE << 9) | 0x5
+#define EC_WORD_WIN (EC_GROUP_BATTLE << 9) | 0x6
+#define EC_WORD_WON (EC_GROUP_BATTLE << 9) | 0x7
+#define EC_WORD_IF_I_WIN (EC_GROUP_BATTLE << 9) | 0x8
+#define EC_WORD_WHEN_I_WIN (EC_GROUP_BATTLE << 9) | 0x9
+#define EC_WORD_CAN_T_WIN (EC_GROUP_BATTLE << 9) | 0xa
+#define EC_WORD_CAN_WIN (EC_GROUP_BATTLE << 9) | 0xb
+#define EC_WORD_NO_MATCH (EC_GROUP_BATTLE << 9) | 0xc
+#define EC_WORD_SPIRIT (EC_GROUP_BATTLE << 9) | 0xd
+#define EC_WORD_DECIDED (EC_GROUP_BATTLE << 9) | 0xe
+#define EC_WORD_TRUMP_CARD (EC_GROUP_BATTLE << 9) | 0xf
+#define EC_WORD_TAKE_THAT (EC_GROUP_BATTLE << 9) | 0x10
+#define EC_WORD_COME_ON (EC_GROUP_BATTLE << 9) | 0x11
+#define EC_WORD_ATTACK (EC_GROUP_BATTLE << 9) | 0x12
+#define EC_WORD_SURRENDER (EC_GROUP_BATTLE << 9) | 0x13
+#define EC_WORD_GUTSY (EC_GROUP_BATTLE << 9) | 0x14
+#define EC_WORD_TALENT (EC_GROUP_BATTLE << 9) | 0x15
+#define EC_WORD_STRATEGY (EC_GROUP_BATTLE << 9) | 0x16
+#define EC_WORD_SMITE (EC_GROUP_BATTLE << 9) | 0x17
+#define EC_WORD_MATCH (EC_GROUP_BATTLE << 9) | 0x18
+#define EC_WORD_VICTORY (EC_GROUP_BATTLE << 9) | 0x19
+#define EC_WORD_OFFENSIVE (EC_GROUP_BATTLE << 9) | 0x1a
+#define EC_WORD_SENSE (EC_GROUP_BATTLE << 9) | 0x1b
+#define EC_WORD_VERSUS (EC_GROUP_BATTLE << 9) | 0x1c
+#define EC_WORD_FIGHTS (EC_GROUP_BATTLE << 9) | 0x1d
+#define EC_WORD_POWER (EC_GROUP_BATTLE << 9) | 0x1e
+#define EC_WORD_CHALLENGE (EC_GROUP_BATTLE << 9) | 0x1f
+#define EC_WORD_STRONG (EC_GROUP_BATTLE << 9) | 0x20
+#define EC_WORD_TOO_STRONG (EC_GROUP_BATTLE << 9) | 0x21
+#define EC_WORD_GO_EASY (EC_GROUP_BATTLE << 9) | 0x22
+#define EC_WORD_FOE (EC_GROUP_BATTLE << 9) | 0x23
+#define EC_WORD_GENIUS (EC_GROUP_BATTLE << 9) | 0x24
+#define EC_WORD_LEGEND (EC_GROUP_BATTLE << 9) | 0x25
+#define EC_WORD_ESCAPE (EC_GROUP_BATTLE << 9) | 0x26
+#define EC_WORD_AIM (EC_GROUP_BATTLE << 9) | 0x27
+#define EC_WORD_BATTLE (EC_GROUP_BATTLE << 9) | 0x28
+#define EC_WORD_FIGHT (EC_GROUP_BATTLE << 9) | 0x29
+#define EC_WORD_RESUSCITATE (EC_GROUP_BATTLE << 9) | 0x2a
+#define EC_WORD_POINTS (EC_GROUP_BATTLE << 9) | 0x2b
+#define EC_WORD_SERIOUS (EC_GROUP_BATTLE << 9) | 0x2c
+#define EC_WORD_GIVE_UP (EC_GROUP_BATTLE << 9) | 0x2d
+#define EC_WORD_LOSS (EC_GROUP_BATTLE << 9) | 0x2e
+#define EC_WORD_IF_I_LOSE (EC_GROUP_BATTLE << 9) | 0x2f
+#define EC_WORD_LOST (EC_GROUP_BATTLE << 9) | 0x30
+#define EC_WORD_LOSE (EC_GROUP_BATTLE << 9) | 0x31
+#define EC_WORD_GUARD (EC_GROUP_BATTLE << 9) | 0x32
+#define EC_WORD_PARTNER (EC_GROUP_BATTLE << 9) | 0x33
+#define EC_WORD_REJECT (EC_GROUP_BATTLE << 9) | 0x34
+#define EC_WORD_ACCEPT (EC_GROUP_BATTLE << 9) | 0x35
+#define EC_WORD_INVINCIBLE (EC_GROUP_BATTLE << 9) | 0x36
+#define EC_WORD_RECEIVED (EC_GROUP_BATTLE << 9) | 0x37
+#define EC_WORD_EASY (EC_GROUP_BATTLE << 9) | 0x38
+#define EC_WORD_WEAK (EC_GROUP_BATTLE << 9) | 0x39
+#define EC_WORD_TOO_WEAK (EC_GROUP_BATTLE << 9) | 0x3a
+#define EC_WORD_PUSHOVER (EC_GROUP_BATTLE << 9) | 0x3b
+#define EC_WORD_LEADER (EC_GROUP_BATTLE << 9) | 0x3c
+#define EC_WORD_RULE (EC_GROUP_BATTLE << 9) | 0x3d
+#define EC_WORD_MOVE (EC_GROUP_BATTLE << 9) | 0x3e
+
+// GREETINGS
+#define EC_WORD_THANKS (EC_GROUP_GREETINGS << 9) | 0x0
+#define EC_WORD_YES (EC_GROUP_GREETINGS << 9) | 0x1
+#define EC_WORD_HERE_GOES (EC_GROUP_GREETINGS << 9) | 0x2
+#define EC_WORD_HERE_I_COME (EC_GROUP_GREETINGS << 9) | 0x3
+#define EC_WORD_HERE_IT_IS (EC_GROUP_GREETINGS << 9) | 0x4
+#define EC_WORD_YEAH (EC_GROUP_GREETINGS << 9) | 0x5
+#define EC_WORD_WELCOME (EC_GROUP_GREETINGS << 9) | 0x6
+#define EC_WORD_OI (EC_GROUP_GREETINGS << 9) | 0x7
+#define EC_WORD_HOW_DO (EC_GROUP_GREETINGS << 9) | 0x8
+#define EC_WORD_CONGRATS (EC_GROUP_GREETINGS << 9) | 0x9
+#define EC_WORD_GIVE_ME (EC_GROUP_GREETINGS << 9) | 0xa
+#define EC_WORD_SORRY (EC_GROUP_GREETINGS << 9) | 0xb
+#define EC_WORD_APOLOGIZE (EC_GROUP_GREETINGS << 9) | 0xc
+#define EC_WORD_FORGIVE (EC_GROUP_GREETINGS << 9) | 0xd
+#define EC_WORD_HEY_THERE (EC_GROUP_GREETINGS << 9) | 0xe
+#define EC_WORD_HELLO (EC_GROUP_GREETINGS << 9) | 0xf
+#define EC_WORD_GOOD_BYE (EC_GROUP_GREETINGS << 9) | 0x10
+#define EC_WORD_THANK_YOU (EC_GROUP_GREETINGS << 9) | 0x11
+#define EC_WORD_I_VE_ARRIVED (EC_GROUP_GREETINGS << 9) | 0x12
+#define EC_WORD_PARDON (EC_GROUP_GREETINGS << 9) | 0x13
+#define EC_WORD_EXCUSE (EC_GROUP_GREETINGS << 9) | 0x14
+#define EC_WORD_SEE_YA (EC_GROUP_GREETINGS << 9) | 0x15
+#define EC_WORD_EXCUSE_ME (EC_GROUP_GREETINGS << 9) | 0x16
+#define EC_WORD_WELL_THEN (EC_GROUP_GREETINGS << 9) | 0x17
+#define EC_WORD_GO_AHEAD (EC_GROUP_GREETINGS << 9) | 0x18
+#define EC_WORD_APPRECIATE (EC_GROUP_GREETINGS << 9) | 0x19
+#define EC_WORD_HEY_QUES (EC_GROUP_GREETINGS << 9) | 0x1a
+#define EC_WORD_WHAT_S_UP_QUES (EC_GROUP_GREETINGS << 9) | 0x1b
+#define EC_WORD_HUH_QUES (EC_GROUP_GREETINGS << 9) | 0x1c
+#define EC_WORD_NO (EC_GROUP_GREETINGS << 9) | 0x1d
+#define EC_WORD_HI (EC_GROUP_GREETINGS << 9) | 0x1e
+#define EC_WORD_YEAH_YEAH (EC_GROUP_GREETINGS << 9) | 0x1f
+#define EC_WORD_BYE_BYE (EC_GROUP_GREETINGS << 9) | 0x20
+#define EC_WORD_MEET_YOU (EC_GROUP_GREETINGS << 9) | 0x21
+#define EC_WORD_HEY (EC_GROUP_GREETINGS << 9) | 0x22
+#define EC_WORD_SMELL (EC_GROUP_GREETINGS << 9) | 0x23
+#define EC_WORD_LISTENING (EC_GROUP_GREETINGS << 9) | 0x24
+#define EC_WORD_HOO_HAH (EC_GROUP_GREETINGS << 9) | 0x25
+#define EC_WORD_YAHOO (EC_GROUP_GREETINGS << 9) | 0x26
+#define EC_WORD_YO (EC_GROUP_GREETINGS << 9) | 0x27
+#define EC_WORD_COME_OVER (EC_GROUP_GREETINGS << 9) | 0x28
+#define EC_WORD_COUNT_ON (EC_GROUP_GREETINGS << 9) | 0x29
+
+// PEOPLE
+#define EC_WORD_OPPONENT (EC_GROUP_PEOPLE << 9) | 0x0
+#define EC_WORD_I (EC_GROUP_PEOPLE << 9) | 0x1
+#define EC_WORD_YOU (EC_GROUP_PEOPLE << 9) | 0x2
+#define EC_WORD_YOURS (EC_GROUP_PEOPLE << 9) | 0x3
+#define EC_WORD_SON (EC_GROUP_PEOPLE << 9) | 0x4
+#define EC_WORD_YOUR (EC_GROUP_PEOPLE << 9) | 0x5
+#define EC_WORD_YOU_RE (EC_GROUP_PEOPLE << 9) | 0x6
+#define EC_WORD_YOU_VE (EC_GROUP_PEOPLE << 9) | 0x7
+#define EC_WORD_MOTHER (EC_GROUP_PEOPLE << 9) | 0x8
+#define EC_WORD_GRANDFATHER (EC_GROUP_PEOPLE << 9) | 0x9
+#define EC_WORD_UNCLE (EC_GROUP_PEOPLE << 9) | 0xa
+#define EC_WORD_FATHER (EC_GROUP_PEOPLE << 9) | 0xb
+#define EC_WORD_BOY (EC_GROUP_PEOPLE << 9) | 0xc
+#define EC_WORD_ADULT (EC_GROUP_PEOPLE << 9) | 0xd
+#define EC_WORD_BROTHER (EC_GROUP_PEOPLE << 9) | 0xe
+#define EC_WORD_SISTER (EC_GROUP_PEOPLE << 9) | 0xf
+#define EC_WORD_GRANDMOTHER (EC_GROUP_PEOPLE << 9) | 0x10
+#define EC_WORD_AUNT (EC_GROUP_PEOPLE << 9) | 0x11
+#define EC_WORD_PARENT (EC_GROUP_PEOPLE << 9) | 0x12
+#define EC_WORD_MAN (EC_GROUP_PEOPLE << 9) | 0x13
+#define EC_WORD_ME (EC_GROUP_PEOPLE << 9) | 0x14
+#define EC_WORD_GIRL (EC_GROUP_PEOPLE << 9) | 0x15
+#define EC_WORD_BABE (EC_GROUP_PEOPLE << 9) | 0x16
+#define EC_WORD_FAMILY (EC_GROUP_PEOPLE << 9) | 0x17
+#define EC_WORD_HER (EC_GROUP_PEOPLE << 9) | 0x18
+#define EC_WORD_HIM (EC_GROUP_PEOPLE << 9) | 0x19
+#define EC_WORD_HE (EC_GROUP_PEOPLE << 9) | 0x1a
+#define EC_WORD_PLACE (EC_GROUP_PEOPLE << 9) | 0x1b
+#define EC_WORD_DAUGHTER (EC_GROUP_PEOPLE << 9) | 0x1c
+#define EC_WORD_HIS (EC_GROUP_PEOPLE << 9) | 0x1d
+#define EC_WORD_HE_S (EC_GROUP_PEOPLE << 9) | 0x1e
+#define EC_WORD_AREN_T (EC_GROUP_PEOPLE << 9) | 0x1f
+#define EC_WORD_SIBLINGS (EC_GROUP_PEOPLE << 9) | 0x20
+#define EC_WORD_KID (EC_GROUP_PEOPLE << 9) | 0x21
+#define EC_WORD_CHILDREN (EC_GROUP_PEOPLE << 9) | 0x22
+#define EC_WORD_MR (EC_GROUP_PEOPLE << 9) | 0x23
+#define EC_WORD_MRS (EC_GROUP_PEOPLE << 9) | 0x24
+#define EC_WORD_MYSELF (EC_GROUP_PEOPLE << 9) | 0x25
+#define EC_WORD_I_WAS (EC_GROUP_PEOPLE << 9) | 0x26
+#define EC_WORD_TO_ME (EC_GROUP_PEOPLE << 9) | 0x27
+#define EC_WORD_MY (EC_GROUP_PEOPLE << 9) | 0x28
+#define EC_WORD_I_AM (EC_GROUP_PEOPLE << 9) | 0x29
+#define EC_WORD_I_VE (EC_GROUP_PEOPLE << 9) | 0x2a
+#define EC_WORD_WHO (EC_GROUP_PEOPLE << 9) | 0x2b
+#define EC_WORD_SOMEONE (EC_GROUP_PEOPLE << 9) | 0x2c
+#define EC_WORD_WHO_WAS (EC_GROUP_PEOPLE << 9) | 0x2d
+#define EC_WORD_TO_WHOM (EC_GROUP_PEOPLE << 9) | 0x2e
+#define EC_WORD_WHOSE (EC_GROUP_PEOPLE << 9) | 0x2f
+#define EC_WORD_WHO_IS (EC_GROUP_PEOPLE << 9) | 0x30
+#define EC_WORD_IT_S (EC_GROUP_PEOPLE << 9) | 0x31
+#define EC_WORD_LADY (EC_GROUP_PEOPLE << 9) | 0x32
+#define EC_WORD_FRIEND (EC_GROUP_PEOPLE << 9) | 0x33
+#define EC_WORD_ALLY (EC_GROUP_PEOPLE << 9) | 0x34
+#define EC_WORD_PERSON (EC_GROUP_PEOPLE << 9) | 0x35
+#define EC_WORD_DUDE (EC_GROUP_PEOPLE << 9) | 0x36
+#define EC_WORD_THEY (EC_GROUP_PEOPLE << 9) | 0x37
+#define EC_WORD_THEY_WERE (EC_GROUP_PEOPLE << 9) | 0x38
+#define EC_WORD_TO_THEM (EC_GROUP_PEOPLE << 9) | 0x39
+#define EC_WORD_THEIR (EC_GROUP_PEOPLE << 9) | 0x3a
+#define EC_WORD_THEY_RE (EC_GROUP_PEOPLE << 9) | 0x3b
+#define EC_WORD_THEY_VE (EC_GROUP_PEOPLE << 9) | 0x3c
+#define EC_WORD_WE (EC_GROUP_PEOPLE << 9) | 0x3d
+#define EC_WORD_BEEN (EC_GROUP_PEOPLE << 9) | 0x3e
+#define EC_WORD_TO_US (EC_GROUP_PEOPLE << 9) | 0x3f
+#define EC_WORD_OUR (EC_GROUP_PEOPLE << 9) | 0x40
+#define EC_WORD_WE_RE (EC_GROUP_PEOPLE << 9) | 0x41
+#define EC_WORD_RIVAL (EC_GROUP_PEOPLE << 9) | 0x42
+#define EC_WORD_WE_VE (EC_GROUP_PEOPLE << 9) | 0x43
+#define EC_WORD_WOMAN (EC_GROUP_PEOPLE << 9) | 0x44
+#define EC_WORD_SHE (EC_GROUP_PEOPLE << 9) | 0x45
+#define EC_WORD_SHE_WAS (EC_GROUP_PEOPLE << 9) | 0x46
+#define EC_WORD_TO_HER (EC_GROUP_PEOPLE << 9) | 0x47
+#define EC_WORD_HERS (EC_GROUP_PEOPLE << 9) | 0x48
+#define EC_WORD_SHE_IS (EC_GROUP_PEOPLE << 9) | 0x49
+#define EC_WORD_SOME (EC_GROUP_PEOPLE << 9) | 0x4a
+
+// VOICES
+#define EC_WORD_EXCL (EC_GROUP_VOICES << 9) | 0x0
+#define EC_WORD_EXCL_EXCL (EC_GROUP_VOICES << 9) | 0x1
+#define EC_WORD_QUES_EXCL (EC_GROUP_VOICES << 9) | 0x2
+#define EC_WORD_QUES (EC_GROUP_VOICES << 9) | 0x3
+#define EC_WORD_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x4
+#define EC_WORD_ELLIPSIS_EXCL (EC_GROUP_VOICES << 9) | 0x5
+#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x6
+#define EC_WORD_DASH (EC_GROUP_VOICES << 9) | 0x7
+#define EC_WORD_DASH_DASH_DASH (EC_GROUP_VOICES << 9) | 0x8
+#define EC_WORD_UH_OH (EC_GROUP_VOICES << 9) | 0x9
+#define EC_WORD_WAAAH (EC_GROUP_VOICES << 9) | 0xa
+#define EC_WORD_AHAHA (EC_GROUP_VOICES << 9) | 0xb
+#define EC_WORD_OH_QUES (EC_GROUP_VOICES << 9) | 0xc
+#define EC_WORD_NOPE (EC_GROUP_VOICES << 9) | 0xd
+#define EC_WORD_URGH (EC_GROUP_VOICES << 9) | 0xe
+#define EC_WORD_HMM (EC_GROUP_VOICES << 9) | 0xf
+#define EC_WORD_WHOAH (EC_GROUP_VOICES << 9) | 0x10
+#define EC_WORD_WROOOAAR_EXCL (EC_GROUP_VOICES << 9) | 0x11
+#define EC_WORD_WOW (EC_GROUP_VOICES << 9) | 0x12
+#define EC_WORD_GIGGLE (EC_GROUP_VOICES << 9) | 0x13
+#define EC_WORD_SIGH (EC_GROUP_VOICES << 9) | 0x14
+#define EC_WORD_UNBELIEVABLE (EC_GROUP_VOICES << 9) | 0x15
+#define EC_WORD_CRIES (EC_GROUP_VOICES << 9) | 0x16
+#define EC_WORD_AGREE (EC_GROUP_VOICES << 9) | 0x17
+#define EC_WORD_EH_QUES (EC_GROUP_VOICES << 9) | 0x18
+#define EC_WORD_CRY (EC_GROUP_VOICES << 9) | 0x19
+#define EC_WORD_EHEHE (EC_GROUP_VOICES << 9) | 0x1a
+#define EC_WORD_OI_OI_OI (EC_GROUP_VOICES << 9) | 0x1b
+#define EC_WORD_OH_YEAH (EC_GROUP_VOICES << 9) | 0x1c
+#define EC_WORD_OH (EC_GROUP_VOICES << 9) | 0x1d
+#define EC_WORD_OOPS (EC_GROUP_VOICES << 9) | 0x1e
+#define EC_WORD_SHOCKED (EC_GROUP_VOICES << 9) | 0x1f
+#define EC_WORD_EEK (EC_GROUP_VOICES << 9) | 0x20
+#define EC_WORD_GRAAAH (EC_GROUP_VOICES << 9) | 0x21
+#define EC_WORD_GWAHAHAHA (EC_GROUP_VOICES << 9) | 0x22
+#define EC_WORD_WAY (EC_GROUP_VOICES << 9) | 0x23
+#define EC_WORD_TCH (EC_GROUP_VOICES << 9) | 0x24
+#define EC_WORD_HEHE (EC_GROUP_VOICES << 9) | 0x25
+#define EC_WORD_HAH (EC_GROUP_VOICES << 9) | 0x26
+#define EC_WORD_YUP (EC_GROUP_VOICES << 9) | 0x27
+#define EC_WORD_HAHAHA (EC_GROUP_VOICES << 9) | 0x28
+#define EC_WORD_AIYEEH (EC_GROUP_VOICES << 9) | 0x29
+#define EC_WORD_HIYAH (EC_GROUP_VOICES << 9) | 0x2a
+#define EC_WORD_FUFUFU (EC_GROUP_VOICES << 9) | 0x2b
+#define EC_WORD_LOL (EC_GROUP_VOICES << 9) | 0x2c
+#define EC_WORD_SNORT (EC_GROUP_VOICES << 9) | 0x2d
+#define EC_WORD_HUMPH (EC_GROUP_VOICES << 9) | 0x2e
+#define EC_WORD_HEHEHE (EC_GROUP_VOICES << 9) | 0x2f
+#define EC_WORD_HEH (EC_GROUP_VOICES << 9) | 0x30
+#define EC_WORD_HOHOHO (EC_GROUP_VOICES << 9) | 0x31
+#define EC_WORD_UH_HUH (EC_GROUP_VOICES << 9) | 0x32
+#define EC_WORD_OH_DEAR (EC_GROUP_VOICES << 9) | 0x33
+#define EC_WORD_ARRGH (EC_GROUP_VOICES << 9) | 0x34
+#define EC_WORD_MUFUFU (EC_GROUP_VOICES << 9) | 0x35
+#define EC_WORD_MMM (EC_GROUP_VOICES << 9) | 0x36
+#define EC_WORD_OH_KAY (EC_GROUP_VOICES << 9) | 0x37
+#define EC_WORD_OKAY (EC_GROUP_VOICES << 9) | 0x38
+#define EC_WORD_LALALA (EC_GROUP_VOICES << 9) | 0x39
+#define EC_WORD_YAY (EC_GROUP_VOICES << 9) | 0x3a
+#define EC_WORD_AWW (EC_GROUP_VOICES << 9) | 0x3b
+#define EC_WORD_WOWEE (EC_GROUP_VOICES << 9) | 0x3c
+#define EC_WORD_GWAH (EC_GROUP_VOICES << 9) | 0x3d
+#define EC_WORD_WAHAHAHA (EC_GROUP_VOICES << 9) | 0x3e
+
+// SPEECH
+#define EC_WORD_LISTEN (EC_GROUP_SPEECH << 9) | 0x0
+#define EC_WORD_NOT_VERY (EC_GROUP_SPEECH << 9) | 0x1
+#define EC_WORD_MEAN (EC_GROUP_SPEECH << 9) | 0x2
+#define EC_WORD_LIE (EC_GROUP_SPEECH << 9) | 0x3
+#define EC_WORD_LAY (EC_GROUP_SPEECH << 9) | 0x4
+#define EC_WORD_RECOMMEND (EC_GROUP_SPEECH << 9) | 0x5
+#define EC_WORD_NITWIT (EC_GROUP_SPEECH << 9) | 0x6
+#define EC_WORD_QUITE (EC_GROUP_SPEECH << 9) | 0x7
+#define EC_WORD_FROM (EC_GROUP_SPEECH << 9) | 0x8
+#define EC_WORD_FEELING (EC_GROUP_SPEECH << 9) | 0x9
+#define EC_WORD_BUT (EC_GROUP_SPEECH << 9) | 0xa
+#define EC_WORD_HOWEVER (EC_GROUP_SPEECH << 9) | 0xb
+#define EC_WORD_CASE (EC_GROUP_SPEECH << 9) | 0xc
+#define EC_WORD_THE (EC_GROUP_SPEECH << 9) | 0xd
+#define EC_WORD_MISS (EC_GROUP_SPEECH << 9) | 0xe
+#define EC_WORD_HOW (EC_GROUP_SPEECH << 9) | 0xf
+#define EC_WORD_HIT (EC_GROUP_SPEECH << 9) | 0x10
+#define EC_WORD_ENOUGH (EC_GROUP_SPEECH << 9) | 0x11
+#define EC_WORD_A_LOT (EC_GROUP_SPEECH << 9) | 0x12
+#define EC_WORD_A_LITTLE (EC_GROUP_SPEECH << 9) | 0x13
+#define EC_WORD_ABSOLUTELY (EC_GROUP_SPEECH << 9) | 0x14
+#define EC_WORD_AND (EC_GROUP_SPEECH << 9) | 0x15
+#define EC_WORD_ONLY (EC_GROUP_SPEECH << 9) | 0x16
+#define EC_WORD_AROUND (EC_GROUP_SPEECH << 9) | 0x17
+#define EC_WORD_PROBABLY (EC_GROUP_SPEECH << 9) | 0x18
+#define EC_WORD_IF (EC_GROUP_SPEECH << 9) | 0x19
+#define EC_WORD_VERY (EC_GROUP_SPEECH << 9) | 0x1a
+#define EC_WORD_A_TINY_BIT (EC_GROUP_SPEECH << 9) | 0x1b
+#define EC_WORD_WILD (EC_GROUP_SPEECH << 9) | 0x1c
+#define EC_WORD_THAT_S (EC_GROUP_SPEECH << 9) | 0x1d
+#define EC_WORD_JUST (EC_GROUP_SPEECH << 9) | 0x1e
+#define EC_WORD_EVEN_SO (EC_GROUP_SPEECH << 9) | 0x1f
+#define EC_WORD_MUST_BE (EC_GROUP_SPEECH << 9) | 0x20
+#define EC_WORD_NATURALLY (EC_GROUP_SPEECH << 9) | 0x21
+#define EC_WORD_FOR_NOW (EC_GROUP_SPEECH << 9) | 0x22
+#define EC_WORD_UNDERSTOOD (EC_GROUP_SPEECH << 9) | 0x23
+#define EC_WORD_JOKING (EC_GROUP_SPEECH << 9) | 0x24
+#define EC_WORD_READY (EC_GROUP_SPEECH << 9) | 0x25
+#define EC_WORD_SOMETHING (EC_GROUP_SPEECH << 9) | 0x26
+#define EC_WORD_SOMEHOW (EC_GROUP_SPEECH << 9) | 0x27
+#define EC_WORD_ALTHOUGH (EC_GROUP_SPEECH << 9) | 0x28
+#define EC_WORD_ALSO (EC_GROUP_SPEECH << 9) | 0x29
+#define EC_WORD_PERFECT (EC_GROUP_SPEECH << 9) | 0x2a
+#define EC_WORD_AS_MUCH_AS (EC_GROUP_SPEECH << 9) | 0x2b
+#define EC_WORD_REALLY (EC_GROUP_SPEECH << 9) | 0x2c
+#define EC_WORD_TRULY (EC_GROUP_SPEECH << 9) | 0x2d
+#define EC_WORD_SERIOUSLY (EC_GROUP_SPEECH << 9) | 0x2e
+#define EC_WORD_TOTALLY (EC_GROUP_SPEECH << 9) | 0x2f
+#define EC_WORD_UNTIL (EC_GROUP_SPEECH << 9) | 0x30
+#define EC_WORD_AS_IF (EC_GROUP_SPEECH << 9) | 0x31
+#define EC_WORD_MOOD (EC_GROUP_SPEECH << 9) | 0x32
+#define EC_WORD_RATHER (EC_GROUP_SPEECH << 9) | 0x33
+#define EC_WORD_AWFULLY (EC_GROUP_SPEECH << 9) | 0x34
+#define EC_WORD_MODE (EC_GROUP_SPEECH << 9) | 0x35
+#define EC_WORD_MORE (EC_GROUP_SPEECH << 9) | 0x36
+#define EC_WORD_TOO_LATE (EC_GROUP_SPEECH << 9) | 0x37
+#define EC_WORD_FINALLY (EC_GROUP_SPEECH << 9) | 0x38
+#define EC_WORD_ANY (EC_GROUP_SPEECH << 9) | 0x39
+#define EC_WORD_INSTEAD (EC_GROUP_SPEECH << 9) | 0x3a
+#define EC_WORD_FANTASTIC (EC_GROUP_SPEECH << 9) | 0x3b
+
+// ENDINGS
+#define EC_WORD_WILL (EC_GROUP_ENDINGS << 9) | 0x0
+#define EC_WORD_WILL_BE_HERE (EC_GROUP_ENDINGS << 9) | 0x1
+#define EC_WORD_OR (EC_GROUP_ENDINGS << 9) | 0x2
+#define EC_WORD_TIMES (EC_GROUP_ENDINGS << 9) | 0x3
+#define EC_WORD_WONDER (EC_GROUP_ENDINGS << 9) | 0x4
+#define EC_WORD_IS_IT_QUES (EC_GROUP_ENDINGS << 9) | 0x5
+#define EC_WORD_BE (EC_GROUP_ENDINGS << 9) | 0x6
+#define EC_WORD_GIMME (EC_GROUP_ENDINGS << 9) | 0x7
+#define EC_WORD_COULD (EC_GROUP_ENDINGS << 9) | 0x8
+#define EC_WORD_LIKELY_TO (EC_GROUP_ENDINGS << 9) | 0x9
+#define EC_WORD_WOULD (EC_GROUP_ENDINGS << 9) | 0xa
+#define EC_WORD_IS (EC_GROUP_ENDINGS << 9) | 0xb
+#define EC_WORD_ISN_T_IT_QUES (EC_GROUP_ENDINGS << 9) | 0xc
+#define EC_WORD_LET_S (EC_GROUP_ENDINGS << 9) | 0xd
+#define EC_WORD_OTHER (EC_GROUP_ENDINGS << 9) | 0xe
+#define EC_WORD_ARE (EC_GROUP_ENDINGS << 9) | 0xf
+#define EC_WORD_WAS (EC_GROUP_ENDINGS << 9) | 0x10
+#define EC_WORD_WERE (EC_GROUP_ENDINGS << 9) | 0x11
+#define EC_WORD_THOSE (EC_GROUP_ENDINGS << 9) | 0x12
+#define EC_WORD_ISN_T (EC_GROUP_ENDINGS << 9) | 0x13
+#define EC_WORD_WON_T (EC_GROUP_ENDINGS << 9) | 0x14
+#define EC_WORD_CAN_T (EC_GROUP_ENDINGS << 9) | 0x15
+#define EC_WORD_CAN (EC_GROUP_ENDINGS << 9) | 0x16
+#define EC_WORD_DON_T (EC_GROUP_ENDINGS << 9) | 0x17
+#define EC_WORD_DO (EC_GROUP_ENDINGS << 9) | 0x18
+#define EC_WORD_DOES (EC_GROUP_ENDINGS << 9) | 0x19
+#define EC_WORD_WHOM (EC_GROUP_ENDINGS << 9) | 0x1a
+#define EC_WORD_WHICH (EC_GROUP_ENDINGS << 9) | 0x1b
+#define EC_WORD_WASN_T (EC_GROUP_ENDINGS << 9) | 0x1c
+#define EC_WORD_WEREN_T (EC_GROUP_ENDINGS << 9) | 0x1d
+#define EC_WORD_HAVE (EC_GROUP_ENDINGS << 9) | 0x1e
+#define EC_WORD_HAVEN_T (EC_GROUP_ENDINGS << 9) | 0x1f
+#define EC_WORD_A (EC_GROUP_ENDINGS << 9) | 0x20
+#define EC_WORD_AN (EC_GROUP_ENDINGS << 9) | 0x21
+#define EC_WORD_NOT (EC_GROUP_ENDINGS << 9) | 0x22
+#define EC_WORD_THERE (EC_GROUP_ENDINGS << 9) | 0x23
+#define EC_WORD_OK_QUES (EC_GROUP_ENDINGS << 9) | 0x24
+#define EC_WORD_SO (EC_GROUP_ENDINGS << 9) | 0x25
+#define EC_WORD_MAYBE (EC_GROUP_ENDINGS << 9) | 0x26
+#define EC_WORD_ABOUT (EC_GROUP_ENDINGS << 9) | 0x27
+#define EC_WORD_OVER (EC_GROUP_ENDINGS << 9) | 0x28
+#define EC_WORD_IT (EC_GROUP_ENDINGS << 9) | 0x29
+#define EC_WORD_ALL (EC_GROUP_ENDINGS << 9) | 0x2a
+#define EC_WORD_FOR (EC_GROUP_ENDINGS << 9) | 0x2b
+#define EC_WORD_ON (EC_GROUP_ENDINGS << 9) | 0x2c
+#define EC_WORD_OFF (EC_GROUP_ENDINGS << 9) | 0x2d
+#define EC_WORD_AS (EC_GROUP_ENDINGS << 9) | 0x2e
+#define EC_WORD_TO (EC_GROUP_ENDINGS << 9) | 0x2f
+#define EC_WORD_WITH (EC_GROUP_ENDINGS << 9) | 0x30
+#define EC_WORD_BETTER (EC_GROUP_ENDINGS << 9) | 0x31
+#define EC_WORD_EVER (EC_GROUP_ENDINGS << 9) | 0x32
+#define EC_WORD_SINCE (EC_GROUP_ENDINGS << 9) | 0x33
+#define EC_WORD_OF (EC_GROUP_ENDINGS << 9) | 0x34
+#define EC_WORD_BELONGS_TO (EC_GROUP_ENDINGS << 9) | 0x35
+#define EC_WORD_AT (EC_GROUP_ENDINGS << 9) | 0x36
+#define EC_WORD_IN (EC_GROUP_ENDINGS << 9) | 0x37
+#define EC_WORD_OUT (EC_GROUP_ENDINGS << 9) | 0x38
+#define EC_WORD_TOO (EC_GROUP_ENDINGS << 9) | 0x39
+#define EC_WORD_LIKE (EC_GROUP_ENDINGS << 9) | 0x3a
+#define EC_WORD_DID (EC_GROUP_ENDINGS << 9) | 0x3b
+#define EC_WORD_DIDN_T (EC_GROUP_ENDINGS << 9) | 0x3c
+#define EC_WORD_DOESN_T (EC_GROUP_ENDINGS << 9) | 0x3d
+#define EC_WORD_WITHOUT (EC_GROUP_ENDINGS << 9) | 0x3e
+#define EC_WORD_AFTER (EC_GROUP_ENDINGS << 9) | 0x3f
+#define EC_WORD_BEFORE (EC_GROUP_ENDINGS << 9) | 0x40
+#define EC_WORD_WHILE (EC_GROUP_ENDINGS << 9) | 0x41
+#define EC_WORD_THAN (EC_GROUP_ENDINGS << 9) | 0x42
+#define EC_WORD_ONCE (EC_GROUP_ENDINGS << 9) | 0x43
+#define EC_WORD_ANYWHERE (EC_GROUP_ENDINGS << 9) | 0x44
+
+// FEELINGS
+#define EC_WORD_MEET (EC_GROUP_FEELINGS << 9) | 0x0
+#define EC_WORD_PLAY (EC_GROUP_FEELINGS << 9) | 0x1
+#define EC_WORD_HURRIED (EC_GROUP_FEELINGS << 9) | 0x2
+#define EC_WORD_GOES (EC_GROUP_FEELINGS << 9) | 0x3
+#define EC_WORD_GIDDY (EC_GROUP_FEELINGS << 9) | 0x4
+#define EC_WORD_HAPPY (EC_GROUP_FEELINGS << 9) | 0x5
+#define EC_WORD_HAPPINESS (EC_GROUP_FEELINGS << 9) | 0x6
+#define EC_WORD_EXCITE (EC_GROUP_FEELINGS << 9) | 0x7
+#define EC_WORD_IMPORTANT (EC_GROUP_FEELINGS << 9) | 0x8
+#define EC_WORD_FUNNY (EC_GROUP_FEELINGS << 9) | 0x9
+#define EC_WORD_GOT (EC_GROUP_FEELINGS << 9) | 0xa
+#define EC_WORD_GO_HOME (EC_GROUP_FEELINGS << 9) | 0xb
+#define EC_WORD_DISAPPOINTED (EC_GROUP_FEELINGS << 9) | 0xc
+#define EC_WORD_DISAPPOINTS (EC_GROUP_FEELINGS << 9) | 0xd
+#define EC_WORD_SAD (EC_GROUP_FEELINGS << 9) | 0xe
+#define EC_WORD_TRY (EC_GROUP_FEELINGS << 9) | 0xf
+#define EC_WORD_TRIES (EC_GROUP_FEELINGS << 9) | 0x10
+#define EC_WORD_HEARS (EC_GROUP_FEELINGS << 9) | 0x11
+#define EC_WORD_THINK (EC_GROUP_FEELINGS << 9) | 0x12
+#define EC_WORD_HEAR (EC_GROUP_FEELINGS << 9) | 0x13
+#define EC_WORD_WANTS (EC_GROUP_FEELINGS << 9) | 0x14
+#define EC_WORD_MISHEARD (EC_GROUP_FEELINGS << 9) | 0x15
+#define EC_WORD_DISLIKE (EC_GROUP_FEELINGS << 9) | 0x16
+#define EC_WORD_ANGRY (EC_GROUP_FEELINGS << 9) | 0x17
+#define EC_WORD_ANGER (EC_GROUP_FEELINGS << 9) | 0x18
+#define EC_WORD_SCARY (EC_GROUP_FEELINGS << 9) | 0x19
+#define EC_WORD_LONESOME (EC_GROUP_FEELINGS << 9) | 0x1a
+#define EC_WORD_DISAPPOINT (EC_GROUP_FEELINGS << 9) | 0x1b
+#define EC_WORD_JOY (EC_GROUP_FEELINGS << 9) | 0x1c
+#define EC_WORD_GETS (EC_GROUP_FEELINGS << 9) | 0x1d
+#define EC_WORD_NEVER (EC_GROUP_FEELINGS << 9) | 0x1e
+#define EC_WORD_DARN (EC_GROUP_FEELINGS << 9) | 0x1f
+#define EC_WORD_DOWNCAST (EC_GROUP_FEELINGS << 9) | 0x20
+#define EC_WORD_INCREDIBLE (EC_GROUP_FEELINGS << 9) | 0x21
+#define EC_WORD_LIKES (EC_GROUP_FEELINGS << 9) | 0x22
+#define EC_WORD_DISLIKES (EC_GROUP_FEELINGS << 9) | 0x23
+#define EC_WORD_BORING (EC_GROUP_FEELINGS << 9) | 0x24
+#define EC_WORD_CARE (EC_GROUP_FEELINGS << 9) | 0x25
+#define EC_WORD_CARES (EC_GROUP_FEELINGS << 9) | 0x26
+#define EC_WORD_ALL_RIGHT (EC_GROUP_FEELINGS << 9) | 0x27
+#define EC_WORD_ADORE (EC_GROUP_FEELINGS << 9) | 0x28
+#define EC_WORD_DISASTER (EC_GROUP_FEELINGS << 9) | 0x29
+#define EC_WORD_ENJOY (EC_GROUP_FEELINGS << 9) | 0x2a
+#define EC_WORD_ENJOYS (EC_GROUP_FEELINGS << 9) | 0x2b
+#define EC_WORD_EAT (EC_GROUP_FEELINGS << 9) | 0x2c
+#define EC_WORD_LACKING (EC_GROUP_FEELINGS << 9) | 0x2d
+#define EC_WORD_BAD (EC_GROUP_FEELINGS << 9) | 0x2e
+#define EC_WORD_HARD (EC_GROUP_FEELINGS << 9) | 0x2f
+#define EC_WORD_TERRIBLE (EC_GROUP_FEELINGS << 9) | 0x30
+#define EC_WORD_SHOULD (EC_GROUP_FEELINGS << 9) | 0x31
+#define EC_WORD_NICE (EC_GROUP_FEELINGS << 9) | 0x32
+#define EC_WORD_DRINK (EC_GROUP_FEELINGS << 9) | 0x33
+#define EC_WORD_SURPRISE (EC_GROUP_FEELINGS << 9) | 0x34
+#define EC_WORD_FEAR (EC_GROUP_FEELINGS << 9) | 0x35
+#define EC_WORD_WANT (EC_GROUP_FEELINGS << 9) | 0x36
+#define EC_WORD_WAIT (EC_GROUP_FEELINGS << 9) | 0x37
+#define EC_WORD_SATISFIED (EC_GROUP_FEELINGS << 9) | 0x38
+#define EC_WORD_SEE (EC_GROUP_FEELINGS << 9) | 0x39
+#define EC_WORD_RARE (EC_GROUP_FEELINGS << 9) | 0x3a
+#define EC_WORD_NEGATIVE (EC_GROUP_FEELINGS << 9) | 0x3b
+#define EC_WORD_DONE (EC_GROUP_FEELINGS << 9) | 0x3c
+#define EC_WORD_DANGER (EC_GROUP_FEELINGS << 9) | 0x3d
+#define EC_WORD_DEFEATED (EC_GROUP_FEELINGS << 9) | 0x3e
+#define EC_WORD_BEAT (EC_GROUP_FEELINGS << 9) | 0x3f
+#define EC_WORD_GREAT (EC_GROUP_FEELINGS << 9) | 0x40
+#define EC_WORD_ROMANTIC (EC_GROUP_FEELINGS << 9) | 0x41
+#define EC_WORD_QUESTION (EC_GROUP_FEELINGS << 9) | 0x42
+#define EC_WORD_UNDERSTAND (EC_GROUP_FEELINGS << 9) | 0x43
+#define EC_WORD_UNDERSTANDS (EC_GROUP_FEELINGS << 9) | 0x44
+
+// CONDITIONS
+#define EC_WORD_HOT (EC_GROUP_CONDITIONS << 9) | 0x0
+#define EC_WORD_EXISTS (EC_GROUP_CONDITIONS << 9) | 0x1
+#define EC_WORD_EXCESS (EC_GROUP_CONDITIONS << 9) | 0x2
+#define EC_WORD_APPROVED (EC_GROUP_CONDITIONS << 9) | 0x3
+#define EC_WORD_HAS (EC_GROUP_CONDITIONS << 9) | 0x4
+#define EC_WORD_GOOD (EC_GROUP_CONDITIONS << 9) | 0x5
+#define EC_WORD_LESS (EC_GROUP_CONDITIONS << 9) | 0x6
+#define EC_WORD_MOMENTUM (EC_GROUP_CONDITIONS << 9) | 0x7
+#define EC_WORD_GOING (EC_GROUP_CONDITIONS << 9) | 0x8
+#define EC_WORD_WEIRD (EC_GROUP_CONDITIONS << 9) | 0x9
+#define EC_WORD_BUSY (EC_GROUP_CONDITIONS << 9) | 0xa
+#define EC_WORD_TOGETHER (EC_GROUP_CONDITIONS << 9) | 0xb
+#define EC_WORD_FULL (EC_GROUP_CONDITIONS << 9) | 0xc
+#define EC_WORD_ABSENT (EC_GROUP_CONDITIONS << 9) | 0xd
+#define EC_WORD_BEING (EC_GROUP_CONDITIONS << 9) | 0xe
+#define EC_WORD_NEED (EC_GROUP_CONDITIONS << 9) | 0xf
+#define EC_WORD_TASTY (EC_GROUP_CONDITIONS << 9) | 0x10
+#define EC_WORD_SKILLED (EC_GROUP_CONDITIONS << 9) | 0x11
+#define EC_WORD_NOISY (EC_GROUP_CONDITIONS << 9) | 0x12
+#define EC_WORD_BIG (EC_GROUP_CONDITIONS << 9) | 0x13
+#define EC_WORD_LATE (EC_GROUP_CONDITIONS << 9) | 0x14
+#define EC_WORD_CLOSE (EC_GROUP_CONDITIONS << 9) | 0x15
+#define EC_WORD_DOCILE (EC_GROUP_CONDITIONS << 9) | 0x16
+#define EC_WORD_AMUSING (EC_GROUP_CONDITIONS << 9) | 0x17
+#define EC_WORD_ENTERTAINING (EC_GROUP_CONDITIONS << 9) | 0x18
+#define EC_WORD_PERFECTION (EC_GROUP_CONDITIONS << 9) | 0x19
+#define EC_WORD_PRETTY (EC_GROUP_CONDITIONS << 9) | 0x1a
+#define EC_WORD_HEALTHY (EC_GROUP_CONDITIONS << 9) | 0x1b
+#define EC_WORD_EXCELLENT (EC_GROUP_CONDITIONS << 9) | 0x1c
+#define EC_WORD_UPSIDE_DOWN (EC_GROUP_CONDITIONS << 9) | 0x1d
+#define EC_WORD_COLD (EC_GROUP_CONDITIONS << 9) | 0x1e
+#define EC_WORD_REFRESHING (EC_GROUP_CONDITIONS << 9) | 0x1f
+#define EC_WORD_UNAVOIDABLE (EC_GROUP_CONDITIONS << 9) | 0x20
+#define EC_WORD_MUCH (EC_GROUP_CONDITIONS << 9) | 0x21
+#define EC_WORD_OVERWHELMING (EC_GROUP_CONDITIONS << 9) | 0x22
+#define EC_WORD_FABULOUS (EC_GROUP_CONDITIONS << 9) | 0x23
+#define EC_WORD_ELSE (EC_GROUP_CONDITIONS << 9) | 0x24
+#define EC_WORD_EXPENSIVE (EC_GROUP_CONDITIONS << 9) | 0x25
+#define EC_WORD_CORRECT (EC_GROUP_CONDITIONS << 9) | 0x26
+#define EC_WORD_IMPOSSIBLE (EC_GROUP_CONDITIONS << 9) | 0x27
+#define EC_WORD_SMALL (EC_GROUP_CONDITIONS << 9) | 0x28
+#define EC_WORD_DIFFERENT (EC_GROUP_CONDITIONS << 9) | 0x29
+#define EC_WORD_TIRED (EC_GROUP_CONDITIONS << 9) | 0x2a
+#define EC_WORD_SKILL (EC_GROUP_CONDITIONS << 9) | 0x2b
+#define EC_WORD_TOP (EC_GROUP_CONDITIONS << 9) | 0x2c
+#define EC_WORD_NON_STOP (EC_GROUP_CONDITIONS << 9) | 0x2d
+#define EC_WORD_PREPOSTEROUS (EC_GROUP_CONDITIONS << 9) | 0x2e
+#define EC_WORD_NONE (EC_GROUP_CONDITIONS << 9) | 0x2f
+#define EC_WORD_NOTHING (EC_GROUP_CONDITIONS << 9) | 0x30
+#define EC_WORD_NATURAL (EC_GROUP_CONDITIONS << 9) | 0x31
+#define EC_WORD_BECOMES (EC_GROUP_CONDITIONS << 9) | 0x32
+#define EC_WORD_LUKEWARM (EC_GROUP_CONDITIONS << 9) | 0x33
+#define EC_WORD_FAST (EC_GROUP_CONDITIONS << 9) | 0x34
+#define EC_WORD_LOW (EC_GROUP_CONDITIONS << 9) | 0x35
+#define EC_WORD_AWFUL (EC_GROUP_CONDITIONS << 9) | 0x36
+#define EC_WORD_ALONE (EC_GROUP_CONDITIONS << 9) | 0x37
+#define EC_WORD_BORED (EC_GROUP_CONDITIONS << 9) | 0x38
+#define EC_WORD_SECRET (EC_GROUP_CONDITIONS << 9) | 0x39
+#define EC_WORD_MYSTERY (EC_GROUP_CONDITIONS << 9) | 0x3a
+#define EC_WORD_LACKS (EC_GROUP_CONDITIONS << 9) | 0x3b
+#define EC_WORD_BEST (EC_GROUP_CONDITIONS << 9) | 0x3c
+#define EC_WORD_LOUSY (EC_GROUP_CONDITIONS << 9) | 0x3d
+#define EC_WORD_MISTAKE (EC_GROUP_CONDITIONS << 9) | 0x3e
+#define EC_WORD_KIND (EC_GROUP_CONDITIONS << 9) | 0x3f
+#define EC_WORD_WELL (EC_GROUP_CONDITIONS << 9) | 0x40
+#define EC_WORD_WEAKENED (EC_GROUP_CONDITIONS << 9) | 0x41
+#define EC_WORD_SIMPLE (EC_GROUP_CONDITIONS << 9) | 0x42
+#define EC_WORD_SEEMS (EC_GROUP_CONDITIONS << 9) | 0x43
+#define EC_WORD_BADLY (EC_GROUP_CONDITIONS << 9) | 0x44
+
+// ACTIONS
+#define EC_WORD_MEETS (EC_GROUP_ACTIONS << 9) | 0x0
+#define EC_WORD_CONCEDE (EC_GROUP_ACTIONS << 9) | 0x1
+#define EC_WORD_GIVE (EC_GROUP_ACTIONS << 9) | 0x2
+#define EC_WORD_GIVES (EC_GROUP_ACTIONS << 9) | 0x3
+#define EC_WORD_PLAYED (EC_GROUP_ACTIONS << 9) | 0x4
+#define EC_WORD_PLAYS (EC_GROUP_ACTIONS << 9) | 0x5
+#define EC_WORD_COLLECT (EC_GROUP_ACTIONS << 9) | 0x6
+#define EC_WORD_WALKING (EC_GROUP_ACTIONS << 9) | 0x7
+#define EC_WORD_WALKS (EC_GROUP_ACTIONS << 9) | 0x8
+#define EC_WORD_SAYS (EC_GROUP_ACTIONS << 9) | 0x9
+#define EC_WORD_WENT (EC_GROUP_ACTIONS << 9) | 0xa
+#define EC_WORD_SAID (EC_GROUP_ACTIONS << 9) | 0xb
+#define EC_WORD_WAKE_UP (EC_GROUP_ACTIONS << 9) | 0xc
+#define EC_WORD_WAKES_UP (EC_GROUP_ACTIONS << 9) | 0xd
+#define EC_WORD_ANGERS (EC_GROUP_ACTIONS << 9) | 0xe
+#define EC_WORD_TEACH (EC_GROUP_ACTIONS << 9) | 0xf
+#define EC_WORD_TEACHES (EC_GROUP_ACTIONS << 9) | 0x10
+#define EC_WORD_PLEASE (EC_GROUP_ACTIONS << 9) | 0x11
+#define EC_WORD_LEARN (EC_GROUP_ACTIONS << 9) | 0x12
+#define EC_WORD_CHANGE (EC_GROUP_ACTIONS << 9) | 0x13
+#define EC_WORD_STORY (EC_GROUP_ACTIONS << 9) | 0x14
+#define EC_WORD_TRUST (EC_GROUP_ACTIONS << 9) | 0x15
+#define EC_WORD_LAVISH (EC_GROUP_ACTIONS << 9) | 0x16
+#define EC_WORD_LISTENS (EC_GROUP_ACTIONS << 9) | 0x17
+#define EC_WORD_HEARING (EC_GROUP_ACTIONS << 9) | 0x18
+#define EC_WORD_TRAINS (EC_GROUP_ACTIONS << 9) | 0x19
+#define EC_WORD_CHOOSE (EC_GROUP_ACTIONS << 9) | 0x1a
+#define EC_WORD_COME (EC_GROUP_ACTIONS << 9) | 0x1b
+#define EC_WORD_CAME (EC_GROUP_ACTIONS << 9) | 0x1c
+#define EC_WORD_SEARCH (EC_GROUP_ACTIONS << 9) | 0x1d
+#define EC_WORD_MAKE (EC_GROUP_ACTIONS << 9) | 0x1e
+#define EC_WORD_CAUSE (EC_GROUP_ACTIONS << 9) | 0x1f
+#define EC_WORD_KNOW (EC_GROUP_ACTIONS << 9) | 0x20
+#define EC_WORD_KNOWS (EC_GROUP_ACTIONS << 9) | 0x21
+#define EC_WORD_REFUSE (EC_GROUP_ACTIONS << 9) | 0x22
+#define EC_WORD_STORES (EC_GROUP_ACTIONS << 9) | 0x23
+#define EC_WORD_BRAG (EC_GROUP_ACTIONS << 9) | 0x24
+#define EC_WORD_IGNORANT (EC_GROUP_ACTIONS << 9) | 0x25
+#define EC_WORD_THINKS (EC_GROUP_ACTIONS << 9) | 0x26
+#define EC_WORD_BELIEVE (EC_GROUP_ACTIONS << 9) | 0x27
+#define EC_WORD_SLIDE (EC_GROUP_ACTIONS << 9) | 0x28
+#define EC_WORD_EATS (EC_GROUP_ACTIONS << 9) | 0x29
+#define EC_WORD_USE (EC_GROUP_ACTIONS << 9) | 0x2a
+#define EC_WORD_USES (EC_GROUP_ACTIONS << 9) | 0x2b
+#define EC_WORD_USING (EC_GROUP_ACTIONS << 9) | 0x2c
+#define EC_WORD_COULDN_T (EC_GROUP_ACTIONS << 9) | 0x2d
+#define EC_WORD_CAPABLE (EC_GROUP_ACTIONS << 9) | 0x2e
+#define EC_WORD_DISAPPEAR (EC_GROUP_ACTIONS << 9) | 0x2f
+#define EC_WORD_APPEAR (EC_GROUP_ACTIONS << 9) | 0x30
+#define EC_WORD_THROW (EC_GROUP_ACTIONS << 9) | 0x31
+#define EC_WORD_WORRY (EC_GROUP_ACTIONS << 9) | 0x32
+#define EC_WORD_SLEPT (EC_GROUP_ACTIONS << 9) | 0x33
+#define EC_WORD_SLEEP (EC_GROUP_ACTIONS << 9) | 0x34
+#define EC_WORD_RELEASE (EC_GROUP_ACTIONS << 9) | 0x35
+#define EC_WORD_DRINKS (EC_GROUP_ACTIONS << 9) | 0x36
+#define EC_WORD_RUNS (EC_GROUP_ACTIONS << 9) | 0x37
+#define EC_WORD_RUN (EC_GROUP_ACTIONS << 9) | 0x38
+#define EC_WORD_WORKS (EC_GROUP_ACTIONS << 9) | 0x39
+#define EC_WORD_WORKING (EC_GROUP_ACTIONS << 9) | 0x3a
+#define EC_WORD_TALKING (EC_GROUP_ACTIONS << 9) | 0x3b
+#define EC_WORD_TALK (EC_GROUP_ACTIONS << 9) | 0x3c
+#define EC_WORD_SINK (EC_GROUP_ACTIONS << 9) | 0x3d
+#define EC_WORD_SMACK (EC_GROUP_ACTIONS << 9) | 0x3e
+#define EC_WORD_PRETEND (EC_GROUP_ACTIONS << 9) | 0x3f
+#define EC_WORD_PRAISE (EC_GROUP_ACTIONS << 9) | 0x40
+#define EC_WORD_OVERDO (EC_GROUP_ACTIONS << 9) | 0x41
+#define EC_WORD_SHOW (EC_GROUP_ACTIONS << 9) | 0x42
+#define EC_WORD_LOOKS (EC_GROUP_ACTIONS << 9) | 0x43
+#define EC_WORD_SEES (EC_GROUP_ACTIONS << 9) | 0x44
+#define EC_WORD_SEEK (EC_GROUP_ACTIONS << 9) | 0x45
+#define EC_WORD_OWN (EC_GROUP_ACTIONS << 9) | 0x46
+#define EC_WORD_TAKE (EC_GROUP_ACTIONS << 9) | 0x47
+#define EC_WORD_ALLOW (EC_GROUP_ACTIONS << 9) | 0x48
+#define EC_WORD_FORGET (EC_GROUP_ACTIONS << 9) | 0x49
+#define EC_WORD_FORGETS (EC_GROUP_ACTIONS << 9) | 0x4a
+#define EC_WORD_APPEARS (EC_GROUP_ACTIONS << 9) | 0x4b
+#define EC_WORD_FAINT (EC_GROUP_ACTIONS << 9) | 0x4c
+#define EC_WORD_FAINTED (EC_GROUP_ACTIONS << 9) | 0x4d
+
+// LIFESTYLE
+#define EC_WORD_CHORES (EC_GROUP_LIFESTYLE << 9) | 0x0
+#define EC_WORD_HOME (EC_GROUP_LIFESTYLE << 9) | 0x1
+#define EC_WORD_MONEY (EC_GROUP_LIFESTYLE << 9) | 0x2
+#define EC_WORD_ALLOWANCE (EC_GROUP_LIFESTYLE << 9) | 0x3
+#define EC_WORD_BATH (EC_GROUP_LIFESTYLE << 9) | 0x4
+#define EC_WORD_CONVERSATION (EC_GROUP_LIFESTYLE << 9) | 0x5
+#define EC_WORD_SCHOOL (EC_GROUP_LIFESTYLE << 9) | 0x6
+#define EC_WORD_COMMEMORATE (EC_GROUP_LIFESTYLE << 9) | 0x7
+#define EC_WORD_HABIT (EC_GROUP_LIFESTYLE << 9) | 0x8
+#define EC_WORD_GROUP (EC_GROUP_LIFESTYLE << 9) | 0x9
+#define EC_WORD_WORD (EC_GROUP_LIFESTYLE << 9) | 0xa
+#define EC_WORD_STORE (EC_GROUP_LIFESTYLE << 9) | 0xb
+#define EC_WORD_SERVICE (EC_GROUP_LIFESTYLE << 9) | 0xc
+#define EC_WORD_WORK (EC_GROUP_LIFESTYLE << 9) | 0xd
+#define EC_WORD_SYSTEM (EC_GROUP_LIFESTYLE << 9) | 0xe
+#define EC_WORD_TRAIN (EC_GROUP_LIFESTYLE << 9) | 0xf
+#define EC_WORD_CLASS (EC_GROUP_LIFESTYLE << 9) | 0x10
+#define EC_WORD_LESSONS (EC_GROUP_LIFESTYLE << 9) | 0x11
+#define EC_WORD_INFORMATION (EC_GROUP_LIFESTYLE << 9) | 0x12
+#define EC_WORD_LIVING (EC_GROUP_LIFESTYLE << 9) | 0x13
+#define EC_WORD_TEACHER (EC_GROUP_LIFESTYLE << 9) | 0x14
+#define EC_WORD_TOURNAMENT (EC_GROUP_LIFESTYLE << 9) | 0x15
+#define EC_WORD_LETTER (EC_GROUP_LIFESTYLE << 9) | 0x16
+#define EC_WORD_EVENT (EC_GROUP_LIFESTYLE << 9) | 0x17
+#define EC_WORD_DIGITAL (EC_GROUP_LIFESTYLE << 9) | 0x18
+#define EC_WORD_TEST (EC_GROUP_LIFESTYLE << 9) | 0x19
+#define EC_WORD_DEPT_STORE (EC_GROUP_LIFESTYLE << 9) | 0x1a
+#define EC_WORD_TELEVISION (EC_GROUP_LIFESTYLE << 9) | 0x1b
+#define EC_WORD_PHONE (EC_GROUP_LIFESTYLE << 9) | 0x1c
+#define EC_WORD_ITEM (EC_GROUP_LIFESTYLE << 9) | 0x1d
+#define EC_WORD_NAME (EC_GROUP_LIFESTYLE << 9) | 0x1e
+#define EC_WORD_NEWS (EC_GROUP_LIFESTYLE << 9) | 0x1f
+#define EC_WORD_POPULAR (EC_GROUP_LIFESTYLE << 9) | 0x20
+#define EC_WORD_PARTY (EC_GROUP_LIFESTYLE << 9) | 0x21
+#define EC_WORD_STUDY (EC_GROUP_LIFESTYLE << 9) | 0x22
+#define EC_WORD_MACHINE (EC_GROUP_LIFESTYLE << 9) | 0x23
+#define EC_WORD_MAIL (EC_GROUP_LIFESTYLE << 9) | 0x24
+#define EC_WORD_MESSAGE (EC_GROUP_LIFESTYLE << 9) | 0x25
+#define EC_WORD_PROMISE (EC_GROUP_LIFESTYLE << 9) | 0x26
+#define EC_WORD_DREAM (EC_GROUP_LIFESTYLE << 9) | 0x27
+#define EC_WORD_KINDERGARTEN (EC_GROUP_LIFESTYLE << 9) | 0x28
+#define EC_WORD_LIFE (EC_GROUP_LIFESTYLE << 9) | 0x29
+#define EC_WORD_RADIO (EC_GROUP_LIFESTYLE << 9) | 0x2a
+#define EC_WORD_RENTAL (EC_GROUP_LIFESTYLE << 9) | 0x2b
+#define EC_WORD_WORLD (EC_GROUP_LIFESTYLE << 9) | 0x2c
+
+// HOBBIES
+#define EC_WORD_IDOL (EC_GROUP_HOBBIES << 9) | 0x0
+#define EC_WORD_ANIME (EC_GROUP_HOBBIES << 9) | 0x1
+#define EC_WORD_SONG (EC_GROUP_HOBBIES << 9) | 0x2
+#define EC_WORD_MOVIE (EC_GROUP_HOBBIES << 9) | 0x3
+#define EC_WORD_SWEETS (EC_GROUP_HOBBIES << 9) | 0x4
+#define EC_WORD_CHAT (EC_GROUP_HOBBIES << 9) | 0x5
+#define EC_WORD_CHILD_S_PLAY (EC_GROUP_HOBBIES << 9) | 0x6
+#define EC_WORD_TOYS (EC_GROUP_HOBBIES << 9) | 0x7
+#define EC_WORD_MUSIC (EC_GROUP_HOBBIES << 9) | 0x8
+#define EC_WORD_CARDS (EC_GROUP_HOBBIES << 9) | 0x9
+#define EC_WORD_SHOPPING (EC_GROUP_HOBBIES << 9) | 0xa
+#define EC_WORD_CAMERA (EC_GROUP_HOBBIES << 9) | 0xb
+#define EC_WORD_VIEWING (EC_GROUP_HOBBIES << 9) | 0xc
+#define EC_WORD_SPECTATOR (EC_GROUP_HOBBIES << 9) | 0xd
+#define EC_WORD_GOURMET (EC_GROUP_HOBBIES << 9) | 0xe
+#define EC_WORD_GAME (EC_GROUP_HOBBIES << 9) | 0xf
+#define EC_WORD_RPG (EC_GROUP_HOBBIES << 9) | 0x10
+#define EC_WORD_COLLECTION (EC_GROUP_HOBBIES << 9) | 0x11
+#define EC_WORD_COMPLETE (EC_GROUP_HOBBIES << 9) | 0x12
+#define EC_WORD_MAGAZINE (EC_GROUP_HOBBIES << 9) | 0x13
+#define EC_WORD_WALK (EC_GROUP_HOBBIES << 9) | 0x14
+#define EC_WORD_BIKE (EC_GROUP_HOBBIES << 9) | 0x15
+#define EC_WORD_HOBBY (EC_GROUP_HOBBIES << 9) | 0x16
+#define EC_WORD_SPORTS (EC_GROUP_HOBBIES << 9) | 0x17
+#define EC_WORD_SOFTWARE (EC_GROUP_HOBBIES << 9) | 0x18
+#define EC_WORD_SONGS (EC_GROUP_HOBBIES << 9) | 0x19
+#define EC_WORD_DIET (EC_GROUP_HOBBIES << 9) | 0x1a
+#define EC_WORD_TREASURE (EC_GROUP_HOBBIES << 9) | 0x1b
+#define EC_WORD_TRAVEL (EC_GROUP_HOBBIES << 9) | 0x1c
+#define EC_WORD_DANCE (EC_GROUP_HOBBIES << 9) | 0x1d
+#define EC_WORD_CHANNEL (EC_GROUP_HOBBIES << 9) | 0x1e
+#define EC_WORD_MAKING (EC_GROUP_HOBBIES << 9) | 0x1f
+#define EC_WORD_FISHING (EC_GROUP_HOBBIES << 9) | 0x20
+#define EC_WORD_DATE (EC_GROUP_HOBBIES << 9) | 0x21
+#define EC_WORD_DESIGN (EC_GROUP_HOBBIES << 9) | 0x22
+#define EC_WORD_LOCOMOTIVE (EC_GROUP_HOBBIES << 9) | 0x23
+#define EC_WORD_PLUSH_DOLL (EC_GROUP_HOBBIES << 9) | 0x24
+#define EC_WORD_PC (EC_GROUP_HOBBIES << 9) | 0x25
+#define EC_WORD_FLOWERS (EC_GROUP_HOBBIES << 9) | 0x26
+#define EC_WORD_HERO (EC_GROUP_HOBBIES << 9) | 0x27
+#define EC_WORD_NAP (EC_GROUP_HOBBIES << 9) | 0x28
+#define EC_WORD_HEROINE (EC_GROUP_HOBBIES << 9) | 0x29
+#define EC_WORD_FASHION (EC_GROUP_HOBBIES << 9) | 0x2a
+#define EC_WORD_ADVENTURE (EC_GROUP_HOBBIES << 9) | 0x2b
+#define EC_WORD_BOARD (EC_GROUP_HOBBIES << 9) | 0x2c
+#define EC_WORD_BALL (EC_GROUP_HOBBIES << 9) | 0x2d
+#define EC_WORD_BOOK (EC_GROUP_HOBBIES << 9) | 0x2e
+#define EC_WORD_FESTIVAL (EC_GROUP_HOBBIES << 9) | 0x2f
+#define EC_WORD_COMICS (EC_GROUP_HOBBIES << 9) | 0x30
+#define EC_WORD_HOLIDAY (EC_GROUP_HOBBIES << 9) | 0x31
+#define EC_WORD_PLANS (EC_GROUP_HOBBIES << 9) | 0x32
+#define EC_WORD_TRENDY (EC_GROUP_HOBBIES << 9) | 0x33
+#define EC_WORD_VACATION (EC_GROUP_HOBBIES << 9) | 0x34
+#define EC_WORD_LOOK (EC_GROUP_HOBBIES << 9) | 0x35
+
+// TIME
+#define EC_WORD_FALL (EC_GROUP_TIME << 9) | 0x0
+#define EC_WORD_MORNING (EC_GROUP_TIME << 9) | 0x1
+#define EC_WORD_TOMORROW (EC_GROUP_TIME << 9) | 0x2
+#define EC_WORD_LAST (EC_GROUP_TIME << 9) | 0x3
+#define EC_WORD_DAY (EC_GROUP_TIME << 9) | 0x4
+#define EC_WORD_SOMETIME (EC_GROUP_TIME << 9) | 0x5
+#define EC_WORD_ALWAYS (EC_GROUP_TIME << 9) | 0x6
+#define EC_WORD_CURRENT (EC_GROUP_TIME << 9) | 0x7
+#define EC_WORD_FOREVER (EC_GROUP_TIME << 9) | 0x8
+#define EC_WORD_DAYS (EC_GROUP_TIME << 9) | 0x9
+#define EC_WORD_END (EC_GROUP_TIME << 9) | 0xa
+#define EC_WORD_TUESDAY (EC_GROUP_TIME << 9) | 0xb
+#define EC_WORD_YESTERDAY (EC_GROUP_TIME << 9) | 0xc
+#define EC_WORD_TODAY (EC_GROUP_TIME << 9) | 0xd
+#define EC_WORD_FRIDAY (EC_GROUP_TIME << 9) | 0xe
+#define EC_WORD_MONDAY (EC_GROUP_TIME << 9) | 0xf
+#define EC_WORD_LATER (EC_GROUP_TIME << 9) | 0x10
+#define EC_WORD_EARLIER (EC_GROUP_TIME << 9) | 0x11
+#define EC_WORD_ANOTHER (EC_GROUP_TIME << 9) | 0x12
+#define EC_WORD_TIME (EC_GROUP_TIME << 9) | 0x13
+#define EC_WORD_FINISH (EC_GROUP_TIME << 9) | 0x14
+#define EC_WORD_WEDNESDAY (EC_GROUP_TIME << 9) | 0x15
+#define EC_WORD_SOON (EC_GROUP_TIME << 9) | 0x16
+#define EC_WORD_START (EC_GROUP_TIME << 9) | 0x17
+#define EC_WORD_MONTH (EC_GROUP_TIME << 9) | 0x18
+#define EC_WORD_STOP (EC_GROUP_TIME << 9) | 0x19
+#define EC_WORD_NOW (EC_GROUP_TIME << 9) | 0x1a
+#define EC_WORD_FINAL (EC_GROUP_TIME << 9) | 0x1b
+#define EC_WORD_NEXT (EC_GROUP_TIME << 9) | 0x1c
+#define EC_WORD_AGE (EC_GROUP_TIME << 9) | 0x1d
+#define EC_WORD_SATURDAY (EC_GROUP_TIME << 9) | 0x1e
+#define EC_WORD_SUMMER (EC_GROUP_TIME << 9) | 0x1f
+#define EC_WORD_SUNDAY (EC_GROUP_TIME << 9) | 0x20
+#define EC_WORD_BEGINNING (EC_GROUP_TIME << 9) | 0x21
+#define EC_WORD_SPRING (EC_GROUP_TIME << 9) | 0x22
+#define EC_WORD_DAYTIME (EC_GROUP_TIME << 9) | 0x23
+#define EC_WORD_WINTER (EC_GROUP_TIME << 9) | 0x24
+#define EC_WORD_DAILY (EC_GROUP_TIME << 9) | 0x25
+#define EC_WORD_OLDEN (EC_GROUP_TIME << 9) | 0x26
+#define EC_WORD_ALMOST (EC_GROUP_TIME << 9) | 0x27
+#define EC_WORD_NEARLY (EC_GROUP_TIME << 9) | 0x28
+#define EC_WORD_THURSDAY (EC_GROUP_TIME << 9) | 0x29
+#define EC_WORD_NIGHTTIME (EC_GROUP_TIME << 9) | 0x2a
+#define EC_WORD_NIGHT (EC_GROUP_TIME << 9) | 0x2b
+#define EC_WORD_WEEK (EC_GROUP_TIME << 9) | 0x2c
+
+// MISC
+#define EC_WORD_HIGHS (EC_GROUP_MISC << 9) | 0x0
+#define EC_WORD_LOWS (EC_GROUP_MISC << 9) | 0x1
+#define EC_WORD_UM (EC_GROUP_MISC << 9) | 0x2
+#define EC_WORD_REAR (EC_GROUP_MISC << 9) | 0x3
+#define EC_WORD_THINGS (EC_GROUP_MISC << 9) | 0x4
+#define EC_WORD_THING (EC_GROUP_MISC << 9) | 0x5
+#define EC_WORD_BELOW (EC_GROUP_MISC << 9) | 0x6
+#define EC_WORD_ABOVE (EC_GROUP_MISC << 9) | 0x7
+#define EC_WORD_BACK (EC_GROUP_MISC << 9) | 0x8
+#define EC_WORD_HIGH (EC_GROUP_MISC << 9) | 0x9
+#define EC_WORD_HERE (EC_GROUP_MISC << 9) | 0xa
+#define EC_WORD_INSIDE (EC_GROUP_MISC << 9) | 0xb
+#define EC_WORD_OUTSIDE (EC_GROUP_MISC << 9) | 0xc
+#define EC_WORD_BESIDE (EC_GROUP_MISC << 9) | 0xd
+#define EC_WORD_THIS_IS_IT_EXCL (EC_GROUP_MISC << 9) | 0xe
+#define EC_WORD_THIS (EC_GROUP_MISC << 9) | 0xf
+#define EC_WORD_EVERY (EC_GROUP_MISC << 9) | 0x10
+#define EC_WORD_THESE (EC_GROUP_MISC << 9) | 0x11
+#define EC_WORD_THESE_WERE (EC_GROUP_MISC << 9) | 0x12
+#define EC_WORD_DOWN (EC_GROUP_MISC << 9) | 0x13
+#define EC_WORD_THAT (EC_GROUP_MISC << 9) | 0x14
+#define EC_WORD_THOSE_ARE (EC_GROUP_MISC << 9) | 0x15
+#define EC_WORD_THOSE_WERE (EC_GROUP_MISC << 9) | 0x16
+#define EC_WORD_THAT_S_IT_EXCL (EC_GROUP_MISC << 9) | 0x17
+#define EC_WORD_AM (EC_GROUP_MISC << 9) | 0x18
+#define EC_WORD_THAT_WAS (EC_GROUP_MISC << 9) | 0x19
+#define EC_WORD_FRONT (EC_GROUP_MISC << 9) | 0x1a
+#define EC_WORD_UP (EC_GROUP_MISC << 9) | 0x1b
+#define EC_WORD_CHOICE (EC_GROUP_MISC << 9) | 0x1c
+#define EC_WORD_FAR (EC_GROUP_MISC << 9) | 0x1d
+#define EC_WORD_AWAY (EC_GROUP_MISC << 9) | 0x1e
+#define EC_WORD_NEAR (EC_GROUP_MISC << 9) | 0x1f
+#define EC_WORD_WHERE (EC_GROUP_MISC << 9) | 0x20
+#define EC_WORD_WHEN (EC_GROUP_MISC << 9) | 0x21
+#define EC_WORD_WHAT (EC_GROUP_MISC << 9) | 0x22
+#define EC_WORD_DEEP (EC_GROUP_MISC << 9) | 0x23
+#define EC_WORD_SHALLOW (EC_GROUP_MISC << 9) | 0x24
+#define EC_WORD_WHY (EC_GROUP_MISC << 9) | 0x25
+#define EC_WORD_CONFUSED (EC_GROUP_MISC << 9) | 0x26
+#define EC_WORD_OPPOSITE (EC_GROUP_MISC << 9) | 0x27
+#define EC_WORD_LEFT (EC_GROUP_MISC << 9) | 0x28
+#define EC_WORD_RIGHT (EC_GROUP_MISC << 9) | 0x29
+
+// ADJECTIVES
+#define EC_WORD_WANDERING (EC_GROUP_ADJECTIVES << 9) | 0x0
+#define EC_WORD_RICKETY (EC_GROUP_ADJECTIVES << 9) | 0x1
+#define EC_WORD_ROCK_SOLID (EC_GROUP_ADJECTIVES << 9) | 0x2
+#define EC_WORD_HUNGRY (EC_GROUP_ADJECTIVES << 9) | 0x3
+#define EC_WORD_TIGHT (EC_GROUP_ADJECTIVES << 9) | 0x4
+#define EC_WORD_TICKLISH (EC_GROUP_ADJECTIVES << 9) | 0x5
+#define EC_WORD_TWIRLING (EC_GROUP_ADJECTIVES << 9) | 0x6
+#define EC_WORD_SPIRALING (EC_GROUP_ADJECTIVES << 9) | 0x7
+#define EC_WORD_THIRSTY (EC_GROUP_ADJECTIVES << 9) | 0x8
+#define EC_WORD_LOLLING (EC_GROUP_ADJECTIVES << 9) | 0x9
+#define EC_WORD_SILKY (EC_GROUP_ADJECTIVES << 9) | 0xa
+#define EC_WORD_SADLY (EC_GROUP_ADJECTIVES << 9) | 0xb
+#define EC_WORD_HOPELESS (EC_GROUP_ADJECTIVES << 9) | 0xc
+#define EC_WORD_USELESS (EC_GROUP_ADJECTIVES << 9) | 0xd
+#define EC_WORD_DROOLING (EC_GROUP_ADJECTIVES << 9) | 0xe
+#define EC_WORD_EXCITING (EC_GROUP_ADJECTIVES << 9) | 0xf
+#define EC_WORD_THICK (EC_GROUP_ADJECTIVES << 9) | 0x10
+#define EC_WORD_SMOOTH (EC_GROUP_ADJECTIVES << 9) | 0x11
+#define EC_WORD_SLIMY (EC_GROUP_ADJECTIVES << 9) | 0x12
+#define EC_WORD_THIN (EC_GROUP_ADJECTIVES << 9) | 0x13
+#define EC_WORD_BREAK (EC_GROUP_ADJECTIVES << 9) | 0x14
+#define EC_WORD_VORACIOUS (EC_GROUP_ADJECTIVES << 9) | 0x15
+#define EC_WORD_SCATTER (EC_GROUP_ADJECTIVES << 9) | 0x16
+#define EC_WORD_AWESOME (EC_GROUP_ADJECTIVES << 9) | 0x17
+#define EC_WORD_WIMPY (EC_GROUP_ADJECTIVES << 9) | 0x18
+#define EC_WORD_WOBBLY (EC_GROUP_ADJECTIVES << 9) | 0x19
+#define EC_WORD_SHAKY (EC_GROUP_ADJECTIVES << 9) | 0x1a
+#define EC_WORD_RIPPED (EC_GROUP_ADJECTIVES << 9) | 0x1b
+#define EC_WORD_SHREDDED (EC_GROUP_ADJECTIVES << 9) | 0x1c
+#define EC_WORD_INCREASING (EC_GROUP_ADJECTIVES << 9) | 0x1d
+#define EC_WORD_YET (EC_GROUP_ADJECTIVES << 9) | 0x1e
+#define EC_WORD_DESTROYED (EC_GROUP_ADJECTIVES << 9) | 0x1f
+#define EC_WORD_FIERY (EC_GROUP_ADJECTIVES << 9) | 0x20
+#define EC_WORD_LOVEY_DOVEY (EC_GROUP_ADJECTIVES << 9) | 0x21
+#define EC_WORD_HAPPILY (EC_GROUP_ADJECTIVES << 9) | 0x22
+#define EC_WORD_ANTICIPATION (EC_GROUP_ADJECTIVES << 9) | 0x23
+
+// EVENTS
+#define EC_WORD_APPEAL (EC_GROUP_EVENTS << 9) | 0x0
+#define EC_WORD_EVENTS (EC_GROUP_EVENTS << 9) | 0x1
+#define EC_WORD_STAY_AT_HOME (EC_GROUP_EVENTS << 9) | 0x2
+#define EC_WORD_BERRY (EC_GROUP_EVENTS << 9) | 0x3
+#define EC_WORD_CONTEST (EC_GROUP_EVENTS << 9) | 0x4
+#define EC_WORD_MC (EC_GROUP_EVENTS << 9) | 0x5
+#define EC_WORD_JUDGE (EC_GROUP_EVENTS << 9) | 0x6
+#define EC_WORD_SUPER (EC_GROUP_EVENTS << 9) | 0x7
+#define EC_WORD_STAGE (EC_GROUP_EVENTS << 9) | 0x8
+#define EC_WORD_HALL_OF_FAME (EC_GROUP_EVENTS << 9) | 0x9
+#define EC_WORD_EVOLUTION (EC_GROUP_EVENTS << 9) | 0xa
+#define EC_WORD_HYPER (EC_GROUP_EVENTS << 9) | 0xb
+#define EC_WORD_BATTLE_TOWER (EC_GROUP_EVENTS << 9) | 0xc
+#define EC_WORD_LEADERS (EC_GROUP_EVENTS << 9) | 0xd
+#define EC_WORD_BATTLE_ROOM (EC_GROUP_EVENTS << 9) | 0xe
+#define EC_WORD_HIDDEN (EC_GROUP_EVENTS << 9) | 0xf
+#define EC_WORD_SECRET_BASE (EC_GROUP_EVENTS << 9) | 0x10
+#define EC_WORD_BLEND (EC_GROUP_EVENTS << 9) | 0x11
+#define EC_WORD_POKEBLOCK (EC_GROUP_EVENTS << 9) | 0x12
+#define EC_WORD_MASTER (EC_GROUP_EVENTS << 9) | 0x13
+#define EC_WORD_RANK (EC_GROUP_EVENTS << 9) | 0x14
+#define EC_WORD_RIBBON (EC_GROUP_EVENTS << 9) | 0x15
+
+// TRENDY_SAYING
+#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0
+#define EC_WORD_YES_SIR_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x1
+#define EC_WORD_AVANT_GARDE (EC_GROUP_TRENDY_SAYING << 9) | 0x2
+#define EC_WORD_COUPLE (EC_GROUP_TRENDY_SAYING << 9) | 0x3
+#define EC_WORD_MUCH_OBLIGED (EC_GROUP_TRENDY_SAYING << 9) | 0x4
+#define EC_WORD_YEEHAW_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x5
+#define EC_WORD_MEGA (EC_GROUP_TRENDY_SAYING << 9) | 0x6
+#define EC_WORD_1_HIT_KO_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x7
+#define EC_WORD_DESTINY (EC_GROUP_TRENDY_SAYING << 9) | 0x8
+#define EC_WORD_CANCEL (EC_GROUP_TRENDY_SAYING << 9) | 0x9
+#define EC_WORD_NEW (EC_GROUP_TRENDY_SAYING << 9) | 0xa
+#define EC_WORD_FLATTEN (EC_GROUP_TRENDY_SAYING << 9) | 0xb
+#define EC_WORD_KIDDING (EC_GROUP_TRENDY_SAYING << 9) | 0xc
+#define EC_WORD_LOSER (EC_GROUP_TRENDY_SAYING << 9) | 0xd
+#define EC_WORD_LOSING (EC_GROUP_TRENDY_SAYING << 9) | 0xe
+#define EC_WORD_HAPPENING (EC_GROUP_TRENDY_SAYING << 9) | 0xf
+#define EC_WORD_HIP_AND (EC_GROUP_TRENDY_SAYING << 9) | 0x10
+#define EC_WORD_SHAKE (EC_GROUP_TRENDY_SAYING << 9) | 0x11
+#define EC_WORD_SHADY (EC_GROUP_TRENDY_SAYING << 9) | 0x12
+#define EC_WORD_UPBEAT (EC_GROUP_TRENDY_SAYING << 9) | 0x13
+#define EC_WORD_MODERN (EC_GROUP_TRENDY_SAYING << 9) | 0x14
+#define EC_WORD_SMELL_YA (EC_GROUP_TRENDY_SAYING << 9) | 0x15
+#define EC_WORD_BANG (EC_GROUP_TRENDY_SAYING << 9) | 0x16
+#define EC_WORD_KNOCKOUT (EC_GROUP_TRENDY_SAYING << 9) | 0x17
+#define EC_WORD_HASSLE (EC_GROUP_TRENDY_SAYING << 9) | 0x18
+#define EC_WORD_WINNER (EC_GROUP_TRENDY_SAYING << 9) | 0x19
+#define EC_WORD_FEVER (EC_GROUP_TRENDY_SAYING << 9) | 0x1a
+#define EC_WORD_WANNABE (EC_GROUP_TRENDY_SAYING << 9) | 0x1b
+#define EC_WORD_BABY (EC_GROUP_TRENDY_SAYING << 9) | 0x1c
+#define EC_WORD_HEART (EC_GROUP_TRENDY_SAYING << 9) | 0x1d
+#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e
+#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f
+#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20
+
+#define EC_POKEMON(mon) ((EC_GROUP_POKEMON_1 << 9) | SPECIES_##mon)
+#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon)
+#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move)
+#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move)
+
+#define EC_GROUP(word) ((word) >> 9)
+#define EC_INDEX(word) ((word) & 0x1FF)
+
+#endif // GUARD_CONSTANTS_EASY_CHAT_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
new file mode 100644
index 000000000..a8067f6ca
--- /dev/null
+++ b/include/constants/flags.h
@@ -0,0 +1,906 @@
+#ifndef GUARD_CONSTANTS_FLAGS_H
+#define GUARD_CONSTANTS_FLAGS_H
+
+// temporary flags
+// These temporary flags are are cleared every time a map is loaded. They are used
+// for things like shortening an NPCs introduction text if the player already spoke
+// to them once.
+#define FLAG_TEMP_1 0x1
+#define FLAG_TEMP_2 0x2
+#define FLAG_TEMP_3 0x3
+#define FLAG_TEMP_4 0x4
+#define FLAG_TEMP_5 0x5
+#define FLAG_TEMP_6 0x6
+#define FLAG_TEMP_7 0x7
+#define FLAG_TEMP_8 0x8
+#define FLAG_TEMP_9 0x9
+#define FLAG_TEMP_A 0xA
+#define FLAG_TEMP_B 0xB
+#define FLAG_TEMP_C 0xC
+#define FLAG_TEMP_D 0xD
+#define FLAG_TEMP_E 0xE
+#define FLAG_TEMP_F 0xF
+#define FLAG_TEMP_10 0x10
+#define FLAG_TEMP_11 0x11
+#define FLAG_TEMP_12 0x12
+#define FLAG_TEMP_13 0x13
+#define FLAG_TEMP_14 0x14
+#define FLAG_TEMP_15 0x15
+#define FLAG_TEMP_16 0x16
+#define FLAG_TEMP_17 0x17
+#define FLAG_TEMP_18 0x18
+#define FLAG_TEMP_19 0x19
+#define FLAG_TEMP_1A 0x1A
+#define FLAG_TEMP_1B 0x1B
+#define FLAG_TEMP_1C 0x1C
+#define FLAG_TEMP_1D 0x1D
+#define FLAG_TEMP_1E 0x1E
+#define FLAG_TEMP_1F 0x1F
+// FLAG_TEMP_20 was supposed to be used as a temporary flag (see above), but there
+// was either an oversight or off-by-one error.
+#define FLAG_TEMP_20 0x20
+#define FLAG_VICTORY_ROAD_ROCK FLAG_TEMP_20
+
+// scripts
+#define FLAG_SET_WALL_CLOCK 0x51
+#define FLAG_RESCUED_BIRCH 0x52
+
+#define FLAG_LINK_CONTEST_ROOM_POKEBALL 0x56
+#define FLAG_MET_RIVAL_MOM 0x57
+#define FLAG_BIRCH_AIDE_MET 0x58
+#define FLAG_DECLINED_BIKE 0x59
+#define FLAG_RECEIVED_BIKE 0x5A
+
+#define FLAG_RECEIVED_WAILMER_PAIL 0x5E
+#define FLAG_RECEIVED_POKEBLOCK_CASE 0x5F
+#define FLAG_RECEIVED_SECRET_POWER 0x60
+
+#define FLAG_TV_EXPLAINED 0x62
+#define FLAG_MAUVILLE_GYM_BARRIERS_STATE 0x63
+#define FLAG_MOSSDEEP_GYM_SWITCH_1 0x64
+#define FLAG_MOSSDEEP_GYM_SWITCH_2 0x65
+#define FLAG_MOSSDEEP_GYM_SWITCH_3 0x66
+#define FLAG_MOSSDEEP_GYM_SWITCH_4 0x67
+
+#define FLAG_OCEANIC_MUSEUM_MET_REPORTER 0x69
+#define FLAG_RECEIVED_HM04 0x6A
+#define FLAG_RECEIVED_HM06 0x6B
+
+#define FLAG_RECEIVED_HM05 0x6D
+#define FLAG_RECEIVED_HM02 0x6E
+#define FLAG_MT_PYRE_ORB_STOLEN 0x6F
+#define FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE 0x70
+#define FLAG_LEGENDARY_BATTLE_COMPLETED 0x71 // defeated or caught Groudon/Kyogre in Cave of Origin
+
+#define FLAG_RECEIVED_METEORITE 0x73
+#define FLAG_ADVENTURE_STARTED 0x74 // received pokedex and set loose
+
+#define FLAG_MET_HIDDEN_POWER_GIVER 0x76
+
+#define FLAG_RECEIVED_TM31 0x79
+#define FLAG_RECEIVED_HM03 0x7A
+#define FLAG_RECEIVED_HM08 0x7B
+
+#define FLAG_DEFEATED_WALLY_VICTORY_ROAD 0x7E
+#define FLAG_MET_PRETTY_PETAL_SHOP_OWNER 0x7F
+
+#define FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN 0x81
+#define FLAG_DEFEATED_RIVAL_ROUTE103 0x82
+#define FLAG_RECEIVED_DOLL_LANETTE 0x83
+#define FLAG_RECEIVED_POTION_OLDALE 0x84
+#define FLAG_RECEIVED_AMULET_COIN 0x85
+#define FLAG_PENDING_DAYCARE_EGG 0x86
+#define FLAG_THANKED_FOR_PLAYING_WITH_WALLY 0x87
+
+#define FLAG_RECEIVED_HM01 0x89
+
+#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY 0x8B
+#define FLAG_RECEIVED_6_SODA_POP 0x8C
+#define FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS 0x8D
+#define FLAG_DEVON_GOODS_STOLEN 0x8E
+#define FLAG_RECOVERED_DEVON_GOODS 0x8F
+#define FLAG_RETURNED_DEVON_GOODS 0x90
+
+#define FLAG_MR_BRINEY_SAILING_INTRO 0x93
+#define FLAG_DOCK_REJECTED_DEVON_GOODS 0x94
+#define FLAG_DELIVERED_DEVON_GOODS 0x95
+#define FLAG_RECEIVED_CONTEST_PASS 0x96
+#define FLAG_RECEIVED_CASTFORM 0x97
+#define FLAG_RECEIVED_SUPER_ROD 0x98
+#define FLAG_RUSTBORO_NPC_TRADE_COMPLETED 0x99
+#define FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED 0x9A
+#define FLAG_FORTREE_NPC_TRADE_COMPLETED 0x9B
+
+#define FLAG_UNKNOWN_9F 0x9F
+#define FLAG_COOL_PAINTING_MADE 0xA0
+#define FLAG_BEAUTY_PAINTING_MADE 0xA1
+#define FLAG_CUTE_PAINTING_MADE 0xA2
+#define FLAG_SMART_PAINTING_MADE 0xA3
+#define FLAG_TOUGH_PAINTING_MADE 0xA4
+#define FLAG_RECEIVED_TM39 0xA5
+#define FLAG_RECEIVED_TM08 0xA6
+#define FLAG_RECEIVED_TM34 0xA7
+#define FLAG_RECEIVED_TM50 0xA8
+#define FLAG_RECEIVED_TM42 0xA9
+#define FLAG_RECEIVED_TM40 0xAA
+#define FLAG_RECEIVED_TM04 0xAB
+#define FLAG_RECEIVED_TM03 0xAC
+#define FLAG_DECORATION_1 0xAD
+#define FLAG_DECORATION_2 0xAE
+#define FLAG_DECORATION_3 0xAF
+#define FLAG_DECORATION_4 0xB0
+#define FLAG_DECORATION_5 0xB1
+#define FLAG_DECORATION_6 0xB2
+#define FLAG_DECORATION_7 0xB3
+#define FLAG_DECORATION_8 0xB4
+#define FLAG_DECORATION_9 0xB5
+#define FLAG_DECORATION_10 0xB6
+#define FLAG_DECORATION_11 0xB7
+#define FLAG_DECORATION_12 0xB8
+#define FLAG_DECORATION_13 0xB9
+#define FLAG_DECORATION_14 0xBA
+#define FLAG_DECORATION_15 0xBB
+#define FLAG_RECEIVED_POKENAV 0xBC
+#define FLAG_DELIVERED_STEVEN_LETTER 0xBD
+#define FLAG_DEFEATED_WALLY_MAUVILLE 0xBE
+
+#define FLAG_RECEIVED_SUN_STONE_MOSSDEEP 0xC0
+#define FLAG_WALLY_SPEECH 0xC1
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 0xC2
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 0xC3
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 0xC4
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 0xC5
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 0xC6
+#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7
+#define FLAG_RECEIVED_RED_SCARF 0xC8
+#define FLAG_RECEIVED_BLUE_SCARF 0xC9
+#define FLAG_RECEIVED_PINK_SCARF 0xCA
+#define FLAG_RECEIVED_GREEN_SCARF 0xCB
+#define FLAG_RECEIVED_YELLOW_SCARF 0xCC
+
+#define FLAG_ECOUNTERED_LATIAS_OR_LATIOS 0xCE
+
+#define FLAG_RECEIVED_BASEMENT_KEY 0xD0
+#define FLAG_RECEIVED_TM24 0xD1
+
+#define FLAG_RECEIVED_RED_OR_BLUE_ORB 0xD4
+#define FLAG_RECEIVED_PREMIER_BALL_RUSTBORO 0xD5
+
+#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_1 0xD7
+#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_2 0xD8
+#define FLAG_MET_DIVING_TREASURE_HUNTER 0xD9
+#define FLAG_MET_WAILMER_TRAINER 0xDA
+#define FLAG_EVIL_LEADER_PLEASE_STOP 0xDB
+
+#define FLAG_RECEIVED_GO_GOGGLES 0xDD
+#define FLAG_WINGULL_SENT_ON_ERRAND 0xDE
+#define FLAG_RECEIVED_MENTAL_HERB 0xDF
+#define FLAG_WINGULL_DELIVERED_MAIL 0xE0
+#define FLAG_RECEIVED_20_COINS 0xE1
+#define FLAG_RECEIVED_STARTER_DOLL 0xE2
+#define FLAG_RECEIVED_GOOD_ROD 0xE3
+#define FLAG_REGI_DOORS_OPENED 0xE4
+#define FLAG_RECEIVED_TM27 0xE5
+#define FLAG_RECEIVED_TM36 0xE6
+#define FLAG_RECEIVED_TM05 0xE7
+#define FLAG_RECEIVED_TM19 0xE8
+
+#define FLAG_RECEIVED_TM44 0xEA
+#define FLAG_RECEIVED_TM45 0xEB
+#define FLAG_RECEIVED_GLASS_ORNAMENT 0xEC
+#define FLAG_RECEIVED_SILVER_SHIELD 0xED
+#define FLAG_RECEIVED_GOLD_SHIELD 0xEE
+#define FLAG_USED_STORAGE_KEY 0xEF
+#define FLAG_USED_ROOM_1_KEY 0xF0
+#define FLAG_USED_ROOM_2_KEY 0xF1
+#define FLAG_USED_ROOM_4_KEY 0xF2
+#define FLAG_USED_ROOM_6_KEY 0xF3
+#define FLAG_MET_PROF_COSMO 0xF4
+#define FLAG_RECEIVED_WAILMER_DOLL 0xF5
+#define FLAG_RECEIVED_CHESTO_BERRY_ROUTE104 0xF6
+#define FLAG_DEFEATED_SS_TIDAL_TRAINERS 0xF7
+#define FLAG_RECEIVED_SPELON_BERRY 0xF8
+#define FLAG_RECEIVED_PAMTRE_BERRY 0xF9
+#define FLAG_RECEIVED_WATMEL_BERRY 0xFA
+#define FLAG_RECEIVED_DURIN_BERRY 0xFB
+#define FLAG_RECEIVED_BELUE_BERRY 0xFC
+
+#define FLAG_RECEIVED_CHARCOAL 0xFE
+#define FLAG_LATIOS_OR_LATIAS_ROAMING 0xFF
+#define FLAG_RECEIVED_REPEAT_BALL 0x100
+#define FLAG_RECEIVED_OLD_ROD 0x101
+#define FLAG_RECEIVED_COIN_CASE 0x102
+#define FLAG_RETURNED_RED_OR_BLUE_ORB 0x103
+#define FLAG_RECEIVED_TM49 0x104
+#define FLAG_RECEIVED_TM28 0x105
+#define FLAG_RECEIVED_TM09 0x106
+#define FLAG_ENTERED_ELITE_FOUR 0x107
+#define FLAG_RECEIVED_TM10 0x108
+#define FLAG_RECEIVED_TM41 0x109
+#define FLAG_RECEIVED_LAVARIDGE_EGG 0x10A
+#define FLAG_RECEIVED_FOSSIL_MON 0x10B
+#define FLAG_DECORATION_16 0x10C
+#define FLAG_RECEIVED_TM46 0x10D
+#define FLAG_CONTEST_SKETCH_CREATED 0x10E
+#define FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE 0x10F
+#define FLAG_RECEIVED_EXP_SHARE 0x110
+#define FLAG_POKERUS_EXPLAINED 0x111
+#define FLAG_RECEIVED_RUNNING_SHOES 0x112
+#define FLAG_RECEIVED_QUICK_CLAW 0x113
+#define FLAG_RECEIVED_KINGS_ROCK 0x114
+#define FLAG_RECEIVED_MACHO_BRACE 0x115
+#define FLAG_RECEIVED_SOOTHE_BELL 0x116
+#define FLAG_RECEIVED_WHITE_HERB 0x117
+#define FLAG_RECEIVED_SOFT_SAND 0x118
+
+#define FLAG_RECEIVED_CLEANSE_TAG 0x11A
+#define FLAG_RECEIVED_FOCUS_BAND 0x11B
+#define FLAG_DECLINED_WALLY_BATTLE_MAUVILLE 0x11C
+#define FLAG_RECEIVED_DEVON_SCOPE 0x11D
+#define FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE 0x11E
+#define FLAG_MET_DEVON_EMPLOYEE 0x11F
+#define FLAG_MET_RIVAL_RUSTBORO 0x120
+#define FLAG_RECEIVED_SILK_SCARF 0x121
+#define FLAG_NOT_READY_FOR_BATTLE_ROUTE120 0x122
+#define FLAG_RECEIVED_SS_TICKET 0x123
+#define FLAG_MET_RIVAL_LILYCOVE 0x124
+#define FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE 0x125
+#define FLAG_EXCHANGED_SCANNER 0x126
+#define FLAG_KECLEON_FLED_FORTREE 0x127
+#define FLAG_PETALBURG_MART_EXPANDED_ITEMS 0x128
+#define FLAG_RECEIVED_MIRACLE_SEED 0x129
+#define FLAG_RECEIVED_BELDUM 0x12A
+#define FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK 0x12B
+#define FLAG_MET_FANCLUB_YOUNGER_BROTHER 0x12C
+#define FLAG_RIVAL_LEFT_FOR_ROUTE103 0x12D
+#define FLAG_OMIT_DIVE_FROM_STEVEN_LETTER 0x12E
+
+// hidden item flags
+#define FLAG_HIDDEN_ITEMS_START 0x258
+#define FLAG_HIDDEN_ITEM_0 0x258
+#define FLAG_HIDDEN_ITEM_1 0x259
+#define FLAG_HIDDEN_ITEM_2 0x25A
+#define FLAG_HIDDEN_ITEM_3 0x25B
+#define FLAG_HIDDEN_ITEM_4 0x25C
+#define FLAG_HIDDEN_ITEM_5 0x25D
+#define FLAG_HIDDEN_ITEM_6 0x25E
+#define FLAG_HIDDEN_ITEM_7 0x25F
+#define FLAG_HIDDEN_ITEM_8 0x260
+#define FLAG_HIDDEN_ITEM_9 0x261
+#define FLAG_HIDDEN_ITEM_A 0x262
+#define FLAG_HIDDEN_ITEM_B 0x263
+#define FLAG_HIDDEN_ITEM_C 0x264
+#define FLAG_HIDDEN_ITEM_D 0x265
+#define FLAG_HIDDEN_ITEM_E 0x266
+#define FLAG_HIDDEN_ITEM_F 0x267
+#define FLAG_HIDDEN_ITEM_10 0x268
+#define FLAG_HIDDEN_ITEM_11 0x269
+#define FLAG_HIDDEN_ITEM_12 0x26A
+#define FLAG_HIDDEN_ITEM_13 0x26B
+#define FLAG_HIDDEN_ITEM_14 0x26C
+#define FLAG_HIDDEN_ITEM_15 0x26D
+#define FLAG_HIDDEN_ITEM_16 0x26E
+#define FLAG_HIDDEN_ITEM_17 0x26F
+#define FLAG_HIDDEN_ITEM_18 0x270
+#define FLAG_HIDDEN_ITEM_19 0x271
+#define FLAG_HIDDEN_ITEM_1A 0x272
+#define FLAG_HIDDEN_ITEM_1B 0x273
+#define FLAG_HIDDEN_ITEM_1C 0x274
+#define FLAG_HIDDEN_ITEM_1D 0x275
+#define FLAG_HIDDEN_ITEM_1E 0x276
+#define FLAG_HIDDEN_ITEM_1F 0x277
+#define FLAG_HIDDEN_ITEM_20 0x278
+#define FLAG_HIDDEN_ITEM_21 0x279
+#define FLAG_HIDDEN_ITEM_22 0x27A
+#define FLAG_HIDDEN_ITEM_23 0x27B
+#define FLAG_HIDDEN_ITEM_24 0x27C
+#define FLAG_HIDDEN_ITEM_25 0x27D
+#define FLAG_HIDDEN_ITEM_26 0x27E
+#define FLAG_HIDDEN_ITEM_27 0x27F
+#define FLAG_HIDDEN_ITEM_28 0x280
+#define FLAG_HIDDEN_ITEM_29 0x281
+#define FLAG_HIDDEN_ITEM_2A 0x282
+#define FLAG_HIDDEN_ITEM_2B 0x283
+#define FLAG_HIDDEN_ITEM_2C 0x284
+#define FLAG_HIDDEN_ITEM_2D 0x285
+#define FLAG_HIDDEN_ITEM_2E 0x286
+#define FLAG_HIDDEN_ITEM_2F 0x287
+#define FLAG_HIDDEN_ITEM_30 0x288
+#define FLAG_HIDDEN_ITEM_31 0x289
+#define FLAG_HIDDEN_ITEM_32 0x28A
+#define FLAG_HIDDEN_ITEM_33 0x28B
+#define FLAG_HIDDEN_ITEM_34 0x28C
+#define FLAG_HIDDEN_ITEM_35 0x28D
+#define FLAG_HIDDEN_ITEM_36 0x28E
+#define FLAG_HIDDEN_ITEM_37 0x28F
+#define FLAG_HIDDEN_ITEM_38 0x290
+#define FLAG_HIDDEN_ITEM_39 0x291
+#define FLAG_HIDDEN_ITEM_3A 0x292
+#define FLAG_HIDDEN_ITEM_3B 0x293
+#define FLAG_HIDDEN_ITEM_3C 0x294
+#define FLAG_HIDDEN_ITEM_3D 0x295
+#define FLAG_HIDDEN_ITEM_3E 0x296
+#define FLAG_HIDDEN_ITEM_3F 0x297
+#define FLAG_HIDDEN_ITEM_40 0x298
+#define FLAG_HIDDEN_ITEM_41 0x299
+#define FLAG_HIDDEN_ITEM_42 0x29A
+#define FLAG_HIDDEN_ITEM_43 0x29B
+#define FLAG_HIDDEN_ITEM_44 0x29C
+#define FLAG_HIDDEN_ITEM_45 0x29D
+#define FLAG_HIDDEN_ITEM_46 0x29E
+#define FLAG_HIDDEN_ITEM_47 0x29F
+#define FLAG_HIDDEN_ITEM_48 0x2A0
+#define FLAG_HIDDEN_ITEM_49 0x2A1
+#define FLAG_HIDDEN_ITEM_4A 0x2A2
+#define FLAG_HIDDEN_ITEM_4B 0x2A3
+#define FLAG_HIDDEN_ITEM_4C 0x2A4
+#define FLAG_HIDDEN_ITEM_4D 0x2A5
+#define FLAG_HIDDEN_ITEM_4E 0x2A6
+#define FLAG_HIDDEN_ITEM_4F 0x2A7
+#define FLAG_HIDDEN_ITEM_50 0x2A8
+#define FLAG_HIDDEN_ITEM_51 0x2A9
+#define FLAG_HIDDEN_ITEM_52 0x2AA
+#define FLAG_HIDDEN_ITEM_53 0x2AB
+#define FLAG_HIDDEN_ITEM_54 0x2AC
+#define FLAG_HIDDEN_ITEM_55 0x2AD
+#define FLAG_HIDDEN_ITEM_56 0x2AE
+#define FLAG_HIDDEN_ITEM_57 0x2AF
+#define FLAG_HIDDEN_ITEM_58 0x2B0
+#define FLAG_HIDDEN_ITEM_59 0x2B1
+#define FLAG_HIDDEN_ITEM_5A 0x2B2
+#define FLAG_HIDDEN_ITEM_5B 0x2B3
+#define FLAG_HIDDEN_ITEM_5C 0x2B4
+#define FLAG_HIDDEN_ITEM_5D 0x2B5
+#define FLAG_HIDDEN_ITEM_5E 0x2B6
+#define FLAG_HIDDEN_ITEM_5F 0x2B7
+#define FLAG_HIDDEN_ITEM_BLACK_GLASSES 0x2B8
+#define FLAG_HIDDEN_ITEM_61 0x2B9
+
+
+// map object hide/show flags
+#define FLAG_HIDE_BIRCH_STARTERS_BAG 0x2BC
+
+#define FLAG_HIDE_BIRCH_BATTLE_POOCHYENA 0x2D0
+#define FLAG_HIDE_BIRCH_IN_LAB 0x2D1
+#define FLAG_HIDE_MAY_UPSTAIRS 0x2D2
+#define FLAG_HIDE_RIVAL_ROUTE103 0x2D3
+#define FLAG_HIDE_DEVON_PETALBURG_WOODS 0x2D4
+#define FLAG_HIDE_EVIL_TEAM_PETALBURG_WOODS 0x2D5
+#define FLAG_HIDE_WALLY_PETALBURG 0x2D6
+#define FLAG_HIDE_STEVENS_LETTER 0x2D7
+#define FLAG_HIDE_WALLY_MOM_PETALBURG_1 0x2D8
+
+#define FLAG_HIDE_GRUNT_RUSTBORO 0x2DB
+#define FLAG_HIDE_DEVON_RUSTBORO 0x2DC
+#define FLAG_HIDE_SLEEPING_MON_SEAFLOOR_CAVERN 0x2DD
+#define FLAG_HIDE_NORMAN_LITTLEROOT 0x2DE
+
+#define FLAG_UNKNOWN_2E1 0x2E1
+#define FLAG_HIDE_MR_BRINEY_ROUTE104 0x2E2
+#define FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE 0x2E3
+#define FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN 0x2E4
+#define FLAG_HIDE_MR_BRINEY_ROUTE109 0x2E5
+#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104 0x2E6
+#define FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD 0x2E7
+#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109 0x2E8
+
+#define FLAG_UNKNOWN_2EB 0x2EB
+#define FLAG_UNKNOWN_2EC 0x2EC
+#define FLAG_UNKNOWN_2ED 0x2ED
+#define FLAG_HIDE_POOCHYENA_ROUTE101 0x2EE
+#define FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD 0x2EF
+#define FLAG_HIDE_MOM_LITTLEROOT 0x2F0
+
+#define FLAG_HIDE_MACHOKE_MOVER_1 0x2F2
+#define FLAG_HIDE_MACHOKE_MOVER_2 0x2F3
+#define FLAG_UNKNOWN_2F4 0x2F4
+#define FLAG_HIDE_MOM_UPSTAIRS 0x2F5
+#define FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS 0x2F6
+#define FLAG_HIDE_MAY_MOM_DOWNSTAIRS 0x2F7
+#define FLAG_HIDE_BRENDAN_UPSTAIRS 0x2F8
+#define FLAG_HIDE_MOVING_TRUCK_BRENDAN 0x2F9
+#define FLAG_HIDE_MOVING_TRUCK_MAY 0x2FA
+
+#define FLAG_HIDE_VICTOR_WINSTRATE 0x300
+#define FLAG_HIDE_VICTORIA_WINSTRATE 0x301
+#define FLAG_HIDE_VIVI_WINSTRATE 0x302
+#define FLAG_HIDE_VICKI_WINSTRATE 0x303
+#define FLAG_HIDE_NORMAN_PETALBURG_GYM 0x304
+#define FLAG_HIDE_RAYQUAZA 0x305
+#define FLAG_HIDE_LILYCOVE_CONTEST_ATTENDENT_1 0x306
+#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY 0x308
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL 0x309
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN 0x30A
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER 0x30B
+#define FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS 0x30C
+#define FLAG_HIDE_PETALBURG_GYM_GUIDE 0x30D
+#define FLAG_UNKNOWN_30E 0x30E
+#define FLAG_UNKNOWN_30F 0x30F
+#define FLAG_HIDE_BRENDAN_MOM 0x310
+#define FLAG_HIDE_MAY_MOM 0x311
+
+#define FLAG_HIDE_FANCLUB_OLD_LADY 0x315
+#define FLAG_HIDE_FANCLUB_BOY 0x316
+#define FLAG_HIDE_FANCLUB_LITTLE_BOY 0x317
+#define FLAG_HIDE_FANCLUB_LADY 0x318
+
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_1 0x31C
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_1 0x31D
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_1 0x31E
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_2 0x31F
+#define FLAG_HIDE_CONTEST_REPORTER_FALLARBOR 0x320
+#define FLAG_HIDE_CONTEST_REPORTER_VERDANTURF 0x321
+#define FLAG_HIDE_CONTEST_REPORTER_LILYCOVE 0x322
+#define FLAG_HIDE_CONTEST_REPORTER_SLATEPORT 0x323
+#define FLAG_HIDE_WALLY_MAUVILLE 0x324
+#define FLAG_HIDE_WALLY_FATHER_MAUVILLE 0x325
+#define FLAG_HIDE_WALLY_WANDAS_HOUSE 0x326
+#define FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL 0x327
+#define FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE 0x328
+#define FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE 0x329
+
+#define FLAG_HIDE_WALLY_FATHER_PETALBURG 0x32B
+#define FLAG_HIDE_WALLY_MOTHER_PETALBURG 0x32C
+#define FLAG_HIDE_LOST_GLASSES_MAN 0x32D
+#define FLAG_HIDE_RIVAL_RUSTBORO 0x32E
+#define FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM 0x32F
+#define FLAG_HIDE_WALLACE_SOOTOPOLIS 0x330
+
+#define FLAG_HIDE_GRUNTS_BLOCKING_CABLE_CAR 0x333
+
+#define FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT 0x335
+#define FLAG_HIDE_GRUNT_2_BLOCKING_HIDEOUT 0x336
+#define FLAG_UNKNOWN_337 0x337
+
+#define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339
+
+#define FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN 0x33C
+#define FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN 0x33D
+
+#define FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x33F
+
+#define FLAG_HIDE_STEVEN_GRANITE_CAVE 0x341
+#define FLAG_HIDE_STEVEN_ROUTE128 0x342
+#define FLAG_HIDE_GABBY_AND_TY_SLATEPORT 0x343
+
+#define FLAG_HIDE_STERN_SLATEPORT 0x348
+#define FLAG_HIDE_STERN_SLATEPORT_HARBOR 0x349
+
+#define FLAG_UNKNOWN_34B 0x34B
+#define FLAG_UNKNOWN_34C 0x34C
+#define FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR 0x34D
+#define FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR 0x34E
+#define FLAG_UNKNOWN_34F 0x34F
+#define FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR 0x350
+#define FLAG_HIDE_MAY_PICHU_DOLL 0x351
+
+#define FLAG_HIDE_RIVAL_ROUTE119 0x353
+#define FLAG_HIDE_GRUNTS_LILYCOVE 0x354
+
+#define FLAG_HIDE_SOOTOPOLIS_RESIDENTS 0x356
+#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1 0x357
+#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2 0x358
+
+#define FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD 0x35A
+#define FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN 0x35B
+#define FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR 0x35C
+#define FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR 0x35D
+
+#define FLAG_HIDE_WALLY_PETALBURG_GYM 0x362
+#define FLAG_UNKNOWN_363 0x363
+#define FLAG_HIDE_FAT_MAN_LITTLEROOT 0x364
+#define FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD 0x365
+#define FLAG_HIDE_LANETTE 0x366
+#define FLAG_HIDE_LANETTE_FALLARBOR 0x367
+#define FLAG_HIDE_TRICKMASTER_ENTRANCE 0x368
+
+#define FLAG_HIDE_MT_CHIMNEY_PEOPLE 0x36D
+#define FLAG_HIDE_GRUNT_RUSTURF_TUNNEL 0x36E
+#define FLAG_HIDE_BRINEY_RUSTURF_TUNNEL 0x36F
+#define FLAG_HIDE_PEEKO_RUSTURF_TUNNEL 0x370
+#define FLAG_HIDE_PEEKO_BRINEY_HOUSE 0x371
+#define FLAG_HIDE_EVIL_TEAM_SLATEPORT 0x372
+#define FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM 0x373
+#define FLAG_HIDE_GRUNT_1_OCEANIC_MUSEUM_2F 0x374
+#define FLAG_HIDE_GRUNT_2_OCEANIC_MUSEUM_2F 0x375
+#define FLAG_HIDE_EVIL_TEAM_LEADER_OCEANIC_MUSEUM_2F 0x376
+#define FLAG_HIDE_STERN_OCEANIC_MUSEUM_2F 0x377
+#define FLAG_HIDE_BATTLE_TOWER_OPPONENT 0x378
+#define FLAG_HIDE_RIVAL_BIRCH_LAB 0x379
+#define FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE 0x37A
+#define FLAG_HIDE_BRINEY_ROUTE116 0x37B
+#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F 0x37C
+#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F 0x37D
+#define FLAG_HIDE_TUNNER_DIGGER_ROUTE116 0x37E
+#define FLAG_HIDE_ARTIST_LILCOVE_CONTEST 0x37F
+#define FLAG_UNKNOWN_BIRCH_380 0x380 // TODO: what should this be called?
+#define FLAG_HIDE_BIRCH_ROUTE101 0x381
+#define FLAG_HIDE_BIRCH_ROUTE103 0x382
+#define FLAG_HIDE_TRICKMASTER_END 0x383
+#define FLAG_HIDE_EVIL_TEAM_ROUTE110 0x384
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_2 0x385
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_2 0x386
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_3 0x387
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_3 0x388
+#define FLAG_HIDE_WORKERS_SLATEPORT_HARBOR 0x389
+#define FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE 0x38A
+#define FLAG_HIDE_AZURILL_FALLARBOR 0x38B
+#define FLAG_HIDE_FERRY_ATTENDANT_LILYCOVE 0x38C
+#define FLAG_HIDE_FERRY_SAILOR_LILYCOVE 0x38D
+#define FLAG_HIDE_LATIOS_OR_LATIAS_FLYING 0x38E
+#define FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY 0x38F
+#define FLAG_HIDE_WATTSON_MAUVILLE 0x390
+#define FLAG_HIDE_WATTSON_MAUVILLE_GYM 0x391
+#define FLAG_HIDE_GRUNTS_ROUTE121 0x392
+#define FLAG_UNKNOWN_393 0x393
+#define FLAG_HIDE_LEADER_MT_PYRE_SUMMIT 0x394
+#define FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT 0x395
+#define FLAG_HIDE_REPORTER_BATTLE_TOWER 0x396
+#define FLAG_HIDE_RIVAL_ROUTE110 0x397
+#define FLAG_HIDE_RIVAL_CHAMPIONS_ROOM 0x398
+#define FLAG_HIDE_BIRCH_CHAMPIONS_ROOM 0x399
+#define FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110 0x39A
+#define FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE 0x39B
+#define FLAG_HIDE_GRUNTS_HIDEOUTS 0x39C
+#define FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE 0x39D
+#define FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY 0x39E
+#define FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY 0x39F
+#define FLAG_HIDE_PROF_COSMO_FALLARBOR 0x3A0
+#define FLAG_HIDE_RIVAL_LAVARIDGE_1 0x3A1
+#define FLAG_HIDE_RIVAL_LAVARIDGE_2 0x3A2
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4
+#define FLAG_HIDE_WINGULL_FORTREE_HOUSE 0x3A5
+#define FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE 0x3A6
+#define FLAG_HIDE_REGIROCK 0x3A7
+#define FLAG_HIDE_REGICE 0x3A8
+#define FLAG_HIDE_REGISTEEL 0x3A9
+#define FLAG_HIDE_GRUNTS_METEOR_FALLS_1F 0x3AA
+#define FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F 0x3AB
+#define FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL 0x3AC
+#define FLAG_HIDE_AWARD_MAN_BATTLE_TOWER 0x3AD
+#define FLAG_HIDE_PROF_COSMO_METEOR_FALLS 0x3AE
+#define FLAG_HIDE_SUBMARINE_SHADOW_HIDEOUT 0x3AF
+#define FLAG_HIDE_EVIL_LEADER_ROUTE128 0x3B0
+#define FLAG_HIDE_OTHER_LEADER_ROUTE128 0x3B1
+#define FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x3B2
+#define FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116 0x3B3
+#define FLAG_HIDE_TM_SALESMAN_SLATEPORT 0x3B4
+#define FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F 0x3B5
+#define FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL 0x3B6
+#define FLAG_HIDE_TM_49_GIVER_SS_TIDAL 0x3B7
+#define FLAG_HIDE_TOOK_SHOAL_SALT_1 0x3B8
+#define FLAG_HIDE_TOOK_SHOAL_SALT_2 0x3B9
+#define FLAG_HIDE_TOOK_SHOAL_SALT_3 0x3BA
+#define FLAG_HIDE_TOOK_SHOAL_SALT_4 0x3BB
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_1 0x3BC
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_2 0x3BD
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_3 0x3BE
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_4 0x3BF
+#define FLAG_HIDE_SECRET_POWER_MAN 0x3C0
+#define FLAG_HIDE_OCEANIC_MUSEUM_VISITORS 0x3C1
+#define FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART 0x3C2
+#define FLAG_HIDE_ROOT_FOSSIL 0x3C3
+#define FLAG_HIDE_CLAW_FOSSIL 0x3C4
+#define FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM 0x3C5
+#define FLAG_HIDE_STEVEN_ROUTE118 0x3C6
+#define FLAG_HIDE_STEVEN_STEVENS_HOUSE 0x3C7
+#define FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE 0x3C8
+#define FLAG_HIDE_KECLEON_FORTREE 0x3C9
+#define FLAG_HIDE_KECLEON_ROUTE120_1 0x3CA
+#define FLAG_HIDE_RIVAL_LILYCOVE_MART 0x3CB
+#define FLAG_HIDE_STEVEN_ROUTE120 0x3CC
+#define FLAG_HIDE_STEVEN_SOOTOPOLIS 0x3CD
+#define FLAG_HIDE_VOLTORB_1_NEW_MAUVILLE 0x3CE
+#define FLAG_HIDE_VOLTORB_2_NEW_MAUVILLE 0x3CF
+#define FLAG_HIDE_VOLTORB_3_NEW_MAUVILLE 0x3D0
+#define FLAG_HIDE_ELECTRODE_1_HIDEOUT 0x3D1
+#define FLAG_HIDE_ELECTRODE_2_HIDEOUT 0x3D2
+#define FLAG_HIDE_RIVAL_OLDALE_TOWN 0x3D3
+#define FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION 0x3D4
+#define FLAG_HIDE_KECLEON_ROUTE120_2 0x3D5
+#define FLAG_HIDE_KECLEON_ROUTE120_3 0x3D6
+#define FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL 0x3D7
+#define FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE 0x3D8
+#define FLAG_HIDE_KECLEON_ROUTE120_4 0x3D9
+#define FLAG_HIDE_KECLEON_ROUTE120_5 0x3DA
+#define FLAG_HIDE_KECLEON_ROUTE120_6 0x3DB
+#define FLAG_HIDE_KECLEON_ROUTE120_7 0x3DC
+#define FLAG_HIDE_KECLEON_ROUTE119_1 0x3DD
+#define FLAG_HIDE_KECLEON_ROUTE119_2 0x3DE
+#define FLAG_HIDE_BOY_ROUTE101 0x3DF
+
+#define FLAG_ITEM_ROUTE102_1 0x3E8
+#define FLAG_ITEM_ROUTE116_1 0x3E9
+#define FLAG_ITEM_ROUTE104_1 0x3EA
+#define FLAG_ITEM_ROUTE105_1 0x3EB
+#define FLAG_ITEM_ROUTE106_1 0x3EC
+#define FLAG_ITEM_ROUTE109_1 0x3ED
+#define FLAG_ITEM_ROUTE110_1 0x3EE
+#define FLAG_ITEM_ROUTE110_2 0x3EF
+#define FLAG_ITEM_ROUTE111_1 0x3F0
+#define FLAG_ITEM_ROUTE111_2 0x3F1
+#define FLAG_ITEM_ROUTE111_3 0x3F2
+#define FLAG_ITEM_ROUTE112_1 0x3F3
+#define FLAG_ITEM_ROUTE113_1 0x3F4
+#define FLAG_ITEM_ROUTE113_2 0x3F5
+#define FLAG_ITEM_ROUTE114_1 0x3F6
+#define FLAG_ITEM_ROUTE114_2 0x3F7
+#define FLAG_ITEM_ROUTE115_1 0x3F8
+#define FLAG_ITEM_ROUTE115_2 0x3F9
+#define FLAG_ITEM_ROUTE115_3 0x3FA
+#define FLAG_ITEM_ROUTE116_2 0x3FB
+#define FLAG_ITEM_ROUTE116_3 0x3FC
+#define FLAG_ITEM_ROUTE116_4 0x3FD
+#define FLAG_ITEM_ROUTE117_1 0x3FE
+#define FLAG_ITEM_ROUTE117_2 0x3FF
+#define FLAG_ITEM_ROUTE119_1 0x400
+#define FLAG_ITEM_ROUTE119_2 0x401
+#define FLAG_ITEM_ROUTE119_3 0x402
+#define FLAG_ITEM_ROUTE119_4 0x403
+#define FLAG_ITEM_ROUTE119_5 0x404
+#define FLAG_ITEM_ROUTE119_6 0x405
+#define FLAG_ITEM_ROUTE120_1 0x406
+#define FLAG_ITEM_ROUTE120_2 0x407
+#define FLAG_ITEM_ROUTE123_1 0x408
+#define FLAG_ITEM_ROUTE123_2 0x409
+#define FLAG_ITEM_ROUTE127_1 0x40A
+#define FLAG_ITEM_ROUTE127_2 0x40B
+#define FLAG_ITEM_ROUTE132_1 0x40C
+#define FLAG_ITEM_ROUTE133_1 0x40D
+#define FLAG_ITEM_ROUTE133_2 0x40E
+#define FLAG_ITEM_PETALBURG_1 0x40F
+#define FLAG_ITEM_PETALBURG_2 0x410
+#define FLAG_ITEM_RUSTBORO_1 0x411
+#define FLAG_ITEM_LILYCOVE_1 0x412
+#define FLAG_ITEM_MOSSDEEP_1 0x413
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_1 0x414
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_2 0x415
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_3 0x416
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_4 0x417
+#define FLAG_ITEM_RUSTURF_TUNNEL_1 0x418
+#define FLAG_ITEM_RUSTURF_TUNNEL_2 0x419
+#define FLAG_ITEM_GRANITE_CAVE_1F_1 0x41A
+#define FLAG_ITEM_GRANITE_CAVE_B1F_1 0x41B
+#define FLAG_ITEM_MT_PYRE_5F_1 0x41C
+#define FLAG_ITEM_GRANITE_CAVE_B2F_1 0x41D
+#define FLAG_ITEM_GRANITE_CAVE_B2F_2 0x41E
+#define FLAG_ITEM_PETALBURG_WOODS_1 0x41F
+#define FLAG_ITEM_PETALBURG_WOODS_2 0x420
+#define FLAG_ITEM_ROUTE104_2 0x421
+#define FLAG_ITEM_PETALBURG_WOODS_3 0x422
+#define FLAG_ITEM_CAVE_OF_ORIGIN_B3F_1 0x423
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_1_1 0x424
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_1 0x425
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_2 0x426
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_1 0x427
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_2 0x428
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_4_1 0x429
+#define FLAG_ITEM_ROUTE124_1 0x42A
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_6_1 0x42B
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_7_1 0x42C
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_8_1 0x42D
+#define FLAG_ITEM_JAGGED_PASS_1 0x42E
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_1 0x42F
+#define FLAG_ITEM_AQUA_HIDEOUT_B2F_1 0x430
+#define FLAG_ITEM_MT_PYRE_EXTERIOR_1 0x431
+#define FLAG_ITEM_MT_PYRE_EXTERIOR_2 0x432
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_1 0x433
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_2 0x434
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_1 0x435
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2 0x436
+#define FLAG_ITEM_SCORCHED_SLAB_1 0x437
+#define FLAG_ITEM_METEOR_FALLS_B1F_2R_1 0x438
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ENTRANCE_1 0x439
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_INNER_ROOM_1 0x43A
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM_1 0x43B
+#define FLAG_ITEM_VICTORY_ROAD_1F_1 0x43C
+#define FLAG_ITEM_VICTORY_ROAD_1F_2 0x43D
+#define FLAG_ITEM_VICTORY_ROAD_B1F_1 0x43E
+#define FLAG_ITEM_VICTORY_ROAD_B1F_2 0x43F
+#define FLAG_ITEM_VICTORY_ROAD_B2F_1 0x440
+#define FLAG_ITEM_MT_PYRE_6F_1 0x441
+#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_1 0x442
+#define FLAG_ITEM_FIERY_PATH_1 0x443
+#define FLAG_ITEM_ROUTE124_2 0x444
+#define FLAG_ITEM_ROUTE124_3 0x445
+#define FLAG_ITEM_SAFARI_ZONE_NORTHWEST_1 0x446
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_1 0x447
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_1 0x448
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_1 0x449
+#define FLAG_ITEM_ABANDONED_SHIP_ROOM_B1F_1 0x44A
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_1 0x44B
+#define FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_1 0x44C
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_3 0x44D
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_4 0x44E
+#define FLAG_ITEM_ROUTE121_1 0x44F
+#define FLAG_ITEM_ROUTE123_3 0x450
+#define FLAG_ITEM_ROUTE126_1 0x451
+#define FLAG_ITEM_ROUTE119_7 0x452
+#define FLAG_ITEM_ROUTE120_3 0x453
+#define FLAG_ITEM_ROUTE120_4 0x454
+#define FLAG_ITEM_ROUTE123_4 0x455
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_3 0x456
+#define FLAG_ITEM_FIERY_PATH_2 0x457
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_1 0x458
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_2 0x459
+#define FLAG_ITEM_ROUTE103_1 0x45A
+#define FLAG_ITEM_ROUTE104_3 0x45B
+#define FLAG_ITEM_MAUVILLE_1 0x45C
+#define FLAG_ITEM_PETALBURG_WOODS_4 0x45D
+#define FLAG_ITEM_ROUTE115_4 0x45E
+#define FLAG_ITEM_SAFARI_ZONE_NORTHEAST_1 0x45F
+#define FLAG_ITEM_MT_PYRE_3F_1 0x460
+#define FLAG_ITEM_ROUTE118_1 0x461
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_4 0x462
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_5 0x463
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_2 0x464
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_1 0x465
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_2 0x466
+#define FLAG_ITEM_MAGMA_HIDEOUT_B2F_1 0x467
+
+#define FLAG_ITEM_MT_PYRE_2F_1 0x469
+#define FLAG_ITEM_MT_PYRE_4F_1 0x46A
+#define FLAG_ITEM_SAFARI_ZONE_SOUTHWEST 0x46B
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_3 0x46C
+#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1 0x46D
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_3 0x46E
+#define FLAG_ITEM_ROUTE104_4 0x46F
+
+#define FLAG_DEFEATED_RUSTBORO_GYM 0x4B1
+
+#define FLAG_DEFEATED_DEWFORD_GYM 0x4B4
+
+#define FLAG_DEFEATED_MAUVILLE_GYM 0x4B8
+
+#define FLAG_DEFEATED_LAVARIDGE_GYM 0x4BD
+
+#define FLAG_DEFEATED_PETALBURG_GYM 0x4C1
+
+#define FLAG_DEFEATED_FORTREE_GYM 0x4C9
+
+#define FLAG_DEFEATED_MOSSDEEP_GYM 0x4CD
+
+#define FLAG_DEFEATED_SOOTOPOLIS_GYM 0x4D4
+
+#define FLAG_DEFEATED_ELITE_4_SYDNEY 0x4DD
+#define FLAG_DEFEATED_ELITE_4_PHOEBE 0x4DE
+#define FLAG_DEFEATED_ELITE_4_GLACIA 0x4DF
+#define FLAG_DEFEATED_ELITE_4_DRAKE 0x4E0
+
+
+#define TRAINER_FLAG_START 0x500
+
+
+// SYSTEM FLAGS
+
+#define NUMBER_OF_TRAINERS 693
+#define SYSTEM_FLAGS (TRAINER_FLAG_START + NUMBER_OF_TRAINERS + 0x4B) // 0x800
+
+#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x00)
+#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x01)
+#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x02)
+#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x04)
+#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x05)
+#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x06)
+
+// badges
+#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x07)
+#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x08)
+#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x09)
+#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0x0A)
+#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0x0B)
+#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0x0C)
+#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0x0D)
+#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0x0E)
+
+// cities and towns
+#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0x0F)
+#define FLAG_VISITED_OLDALE_TOWN (SYSTEM_FLAGS + 0x10)
+#define FLAG_VISITED_DEWFORD_TOWN (SYSTEM_FLAGS + 0x11)
+#define FLAG_VISITED_LAVARIDGE_TOWN (SYSTEM_FLAGS + 0x12)
+#define FLAG_VISITED_FALLARBOR_TOWN (SYSTEM_FLAGS + 0x13)
+#define FLAG_VISITED_VERDANTURF_TOWN (SYSTEM_FLAGS + 0x14)
+#define FLAG_VISITED_PACIFIDLOG_TOWN (SYSTEM_FLAGS + 0x15)
+#define FLAG_VISITED_PETALBURG_CITY (SYSTEM_FLAGS + 0x16)
+#define FLAG_VISITED_SLATEPORT_CITY (SYSTEM_FLAGS + 0x17)
+#define FLAG_VISITED_MAUVILLE_CITY (SYSTEM_FLAGS + 0x18)
+#define FLAG_VISITED_RUSTBORO_CITY (SYSTEM_FLAGS + 0x19)
+#define FLAG_VISITED_FORTREE_CITY (SYSTEM_FLAGS + 0x1A)
+#define FLAG_VISITED_LILYCOVE_CITY (SYSTEM_FLAGS + 0x1B)
+#define FLAG_VISITED_MOSSDEEP_CITY (SYSTEM_FLAGS + 0x1C)
+#define FLAG_VISITED_SOOTOPOLIS_CITY (SYSTEM_FLAGS + 0x1D)
+#define FLAG_VISITED_EVER_GRANDE_CITY (SYSTEM_FLAGS + 0x1E)
+
+#define FLAG_SYS_USE_FLASH (SYSTEM_FLAGS + 0x28)
+#define FLAG_SYS_USE_STRENGTH (SYSTEM_FLAGS + 0x29)
+#define FLAG_SYS_WEATHER_CTRL (SYSTEM_FLAGS + 0x2A)
+#define FLAG_SYS_CYCLING_ROAD (SYSTEM_FLAGS + 0x2B)
+#define FLAG_SYS_SAFARI_MODE (SYSTEM_FLAGS + 0x2C)
+#define FLAG_SYS_CRUISE_MODE (SYSTEM_FLAGS + 0x2D)
+
+#define FLAG_SYS_TV_HOME (SYSTEM_FLAGS + 0x30)
+#define FLAG_SYS_TV_WATCH (SYSTEM_FLAGS + 0x31)
+#define FLAG_SYS_TV_START (SYSTEM_FLAGS + 0x32)
+#define FLAG_SYS_POPWORD_INPUT (SYSTEM_FLAGS + 0x33)
+#define FLAG_SYS_MIX_RECORD (SYSTEM_FLAGS + 0x34)
+#define FLAG_SYS_CLOCK_SET (SYSTEM_FLAGS + 0x35)
+#define FLAG_SYS_NATIONAL_DEX (SYSTEM_FLAGS + 0x36)
+#define FLAG_SYS_CAVE_SHIP (SYSTEM_FLAGS + 0x37)
+#define FLAG_SYS_CAVE_WONDER (SYSTEM_FLAGS + 0x38)
+#define FLAG_SYS_CAVE_BATTLE (SYSTEM_FLAGS + 0x39)
+#define FLAG_SYS_SHOAL_TIDE (SYSTEM_FLAGS + 0x3A)
+#define FLAG_SYS_RIBBON_GET (SYSTEM_FLAGS + 0x3B)
+
+#define FLAG_LANDMARK_FLOWER_SHOP (SYSTEM_FLAGS + 0x3C)
+#define FLAG_LANDMARK_MR_BRINEY_HOUSE (SYSTEM_FLAGS + 0x3D)
+#define FLAG_LANDMARK_ABANDONED_SHIP (SYSTEM_FLAGS + 0x3E)
+#define FLAG_LANDMARK_SEASHORE_HOUSE (SYSTEM_FLAGS + 0x3F)
+#define FLAG_LANDMARK_NEW_MAUVILLE (SYSTEM_FLAGS + 0x40)
+#define FLAG_LANDMARK_OLD_LADY_REST_SHOP (SYSTEM_FLAGS + 0x41)
+#define FLAG_LANDMARK_TRICK_HOUSE (SYSTEM_FLAGS + 0x42)
+#define FLAG_LANDMARK_WINSTRATE_FAMILY (SYSTEM_FLAGS + 0x43)
+#define FLAG_LANDMARK_GLASS_WORKSHOP (SYSTEM_FLAGS + 0x44)
+#define FLAG_LANDMARK_LANETTES_HOUSE (SYSTEM_FLAGS + 0x45)
+#define FLAG_LANDMARK_POKEMON_DAYCARE (SYSTEM_FLAGS + 0x46)
+#define FLAG_LANDMARK_SEAFLOOR_CAVERN (SYSTEM_FLAGS + 0x47)
+#define FLAG_LANDMARK_BATTLE_TOWER (SYSTEM_FLAGS + 0x48)
+#define FLAG_LANDMARK_SOUTHERN_ISLAND (SYSTEM_FLAGS + 0x49)
+#define FLAG_LANDMARK_FIERY_PATH (SYSTEM_FLAGS + 0x4A)
+
+#define FLAG_SYS_PC_LANETTE (SYSTEM_FLAGS + 0x4B)
+#define FLAG_SYS_EXDATA_ENABLE (SYSTEM_FLAGS + 0x4C)
+#define FLAG_SYS_ENC_UP_ITEM (SYSTEM_FLAGS + 0x4D)
+#define FLAG_SYS_ENC_DOWN_ITEM (SYSTEM_FLAGS + 0x4E)
+#define FLAG_SYS_BRAILLE_DIG (SYSTEM_FLAGS + 0x4F)
+#define FLAG_SYS_BRAILLE_STRENGTH (SYSTEM_FLAGS + 0x50)
+#define FLAG_SYS_BRAILLE_WAIT (SYSTEM_FLAGS + 0x51)
+#define FLAG_SYS_BRAILLE_FLY (SYSTEM_FLAGS + 0x52)
+#define FLAG_SYS_HAS_EON_TICKET (SYSTEM_FLAGS + 0x53)
+#define FLAG_SYS_POKEMON_LEAGUE_FLY (SYSTEM_FLAGS + 0x54)
+
+#define FLAG_LANDMARK_ISLAND_CAVE (SYSTEM_FLAGS + 0x55)
+#define FLAG_LANDMARK_DESERT_RUINS (SYSTEM_FLAGS + 0x56)
+#define FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE (SYSTEM_FLAGS + 0x57)
+#define FLAG_LANDMARK_SCORCHED_SLAB (SYSTEM_FLAGS + 0x58)
+#define FLAG_LANDMARK_ANCIENT_TOMB (SYSTEM_FLAGS + 0x59)
+#define FLAG_LANDMARK_TUNNELERS_REST_HOUSE (SYSTEM_FLAGS + 0x5A)
+#define FLAG_LANDMARK_HUNTERS_HOUSE (SYSTEM_FLAGS + 0x5B)
+#define FLAG_LANDMARK_SEALED_CHAMBER (SYSTEM_FLAGS + 0x5C)
+
+#define FLAG_SYS_TV_LATI (SYSTEM_FLAGS + 0x5D)
+
+#define FLAG_LANDMARK_SKY_PILLAR (SYSTEM_FLAGS + 0x5E)
+
+#define FLAG_SYS_SHOAL_ITEM (SYSTEM_FLAGS + 0x5F)
+#define FLAG_SYS_B_DASH (SYSTEM_FLAGS + 0x60) // got Running Shoes
+#define FLAG_SYS_CTRL_OBJ_DELETE (SYSTEM_FLAGS + 0x61)
+#define FLAG_SYS_RESET_RTC_ENABLE (SYSTEM_FLAGS + 0x62)
+
+#define FLAG_LANDMARK_BERRY_MASTERS_HOUSE (SYSTEM_FLAGS + 0x63)
+
+
+// Daily Flags. These 64 flags are cleared once per day.
+#define DAILY_FLAGS_START (SYSTEM_FLAGS + 0xC0)
+
+#define FLAG_DAILY_RECEIVED_BERRY_FALLARBOR (SYSTEM_FLAGS + 0xC1)
+#define FLAG_DAILY_UNKNOWN_8C2 (SYSTEM_FLAGS + 0xC2)
+
+#define FLAG_DAILY_PICKED_LOTTO_TICKET (SYSTEM_FLAGS + 0xCA)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE114 (SYSTEM_FLAGS + 0xCB)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE111 (SYSTEM_FLAGS + 0xCC)
+#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER (SYSTEM_FLAGS + 0xCD)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE120 (SYSTEM_FLAGS + 0xCE)
+#define FLAG_DAILY_RECEIVED_BERRY_LILYCOVE (SYSTEM_FLAGS + 0xCF)
+#define FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP (SYSTEM_FLAGS + 0xD0)
+#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE (SYSTEM_FLAGS + 0xD1)
+#define FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS (SYSTEM_FLAGS + 0xD2)
+// Daily flags end at 0x8FF
+
+// SPECIAL FLAGS (unknown purpose)
+
+#define FLAG_SPECIAL_FLAG_0 0x4000
+#define FLAG_SPECIAL_FLAG_1 0x4001
+
+#endif // GUARD_CONSTANTS_FLAGS_H
diff --git a/include/game_stat.h b/include/constants/game_stat.h
index 70b6f51ce..47d703d85 100644
--- a/include/game_stat.h
+++ b/include/constants/game_stat.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_GAME_STAT_H
-#define GUARD_GAME_STAT_H
+#ifndef GUARD_CONSTANTS_GAME_STAT_H
+#define GUARD_CONSTANTS_GAME_STAT_H
#define GAME_STAT_SAVED_GAME 0
#define GAME_STAT_FIRST_HOF_PLAY_TIME 1
@@ -53,4 +53,4 @@
#define GAME_STAT_ENTERED_HOT_SPRINGS 49
#define NUM_GAME_STATS 50
-#endif // GUARD_GAME_STAT_H
+#endif // GUARD_CONSTANTS_GAME_STAT_H
diff --git a/include/hold_effects.h b/include/constants/hold_effects.h
index b653f5a92..17bc6846d 100644
--- a/include/hold_effects.h
+++ b/include/constants/hold_effects.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_HOLD_EFFECTS_H
-#define GUARD_HOLD_EFFECTS_H
+#ifndef GUARD_CONSTANTS_HOLD_EFFECTS_H
+#define GUARD_CONSTANTS_HOLD_EFFECTS_H
#define HOLD_EFFECT_NONE 0
#define HOLD_EFFECT_RESTORE_HP 1
@@ -69,4 +69,4 @@
#define HOLD_EFFECT_THICK_CLUB 65
#define HOLD_EFFECT_STICK 66
-#endif // GUARD_HOLD_EFFECTS_H
+#endif // GUARD_CONSTANTS_HOLD_EFFECTS_H
diff --git a/include/constants/items.h b/include/constants/items.h
new file mode 100644
index 000000000..48fba1427
--- /dev/null
+++ b/include/constants/items.h
@@ -0,0 +1,389 @@
+#ifndef GUARD_CONSTANTS_ITEMS_H
+#define GUARD_CONSTANTS_ITEMS_H
+
+#define ITEM_NONE 0
+#define ITEM_MASTER_BALL 1
+#define ITEM_ULTRA_BALL 2
+#define ITEM_GREAT_BALL 3
+#define ITEM_POKE_BALL 4
+#define ITEM_SAFARI_BALL 5
+#define ITEM_NET_BALL 6
+#define ITEM_DIVE_BALL 7
+#define ITEM_NEST_BALL 8
+#define ITEM_REPEAT_BALL 9
+#define ITEM_TIMER_BALL 10
+#define ITEM_LUXURY_BALL 11
+#define ITEM_PREMIER_BALL 12
+#define ITEM_POTION 13
+#define ITEM_ANTIDOTE 14
+#define ITEM_BURN_HEAL 15
+#define ITEM_ICE_HEAL 16
+#define ITEM_AWAKENING 17
+#define ITEM_PARALYZE_HEAL 18
+#define ITEM_FULL_RESTORE 19
+#define ITEM_MAX_POTION 20
+#define ITEM_HYPER_POTION 21
+#define ITEM_SUPER_POTION 22
+#define ITEM_FULL_HEAL 23
+#define ITEM_REVIVE 24
+#define ITEM_MAX_REVIVE 25
+#define ITEM_FRESH_WATER 26
+#define ITEM_SODA_POP 27
+#define ITEM_LEMONADE 28
+#define ITEM_MOOMOO_MILK 29
+#define ITEM_ENERGY_POWDER 30
+#define ITEM_ENERGY_ROOT 31
+#define ITEM_HEAL_POWDER 32
+#define ITEM_REVIVAL_HERB 33
+#define ITEM_ETHER 34
+#define ITEM_MAX_ETHER 35
+#define ITEM_ELIXIR 36
+#define ITEM_MAX_ELIXIR 37
+#define ITEM_LAVA_COOKIE 38
+#define ITEM_BLUE_FLUTE 39
+#define ITEM_YELLOW_FLUTE 40
+#define ITEM_RED_FLUTE 41
+#define ITEM_BLACK_FLUTE 42
+#define ITEM_WHITE_FLUTE 43
+#define ITEM_BERRY_JUICE 44
+#define ITEM_SACRED_ASH 45
+#define ITEM_SHOAL_SALT 46
+#define ITEM_SHOAL_SHELL 47
+#define ITEM_RED_SHARD 48
+#define ITEM_BLUE_SHARD 49
+#define ITEM_YELLOW_SHARD 50
+#define ITEM_GREEN_SHARD 51
+#define ITEM_034 52
+#define ITEM_035 53
+#define ITEM_036 54
+#define ITEM_037 55
+#define ITEM_038 56
+#define ITEM_039 57
+#define ITEM_03A 58
+#define ITEM_03B 59
+#define ITEM_03C 60
+#define ITEM_03D 61
+#define ITEM_03E 62
+#define ITEM_HP_UP 63
+#define ITEM_PROTEIN 64
+#define ITEM_IRON 65
+#define ITEM_CARBOS 66
+#define ITEM_CALCIUM 67
+#define ITEM_RARE_CANDY 68
+#define ITEM_PP_UP 69
+#define ITEM_ZINC 70
+#define ITEM_PP_MAX 71
+#define ITEM_048 72
+#define ITEM_GUARD_SPEC 73
+#define ITEM_DIRE_HIT 74
+#define ITEM_X_ATTACK 75
+#define ITEM_X_DEFEND 76
+#define ITEM_X_SPEED 77
+#define ITEM_X_ACCURACY 78
+#define ITEM_X_SPECIAL 79
+#define ITEM_POKE_DOLL 80
+#define ITEM_FLUFFY_TAIL 81
+#define ITEM_052 82
+#define ITEM_SUPER_REPEL 83
+#define ITEM_MAX_REPEL 84
+#define ITEM_ESCAPE_ROPE 85
+#define ITEM_REPEL 86
+#define ITEM_057 87
+#define ITEM_058 88
+#define ITEM_059 89
+#define ITEM_05A 90
+#define ITEM_05B 91
+#define ITEM_05C 92
+#define ITEM_SUN_STONE 93
+#define ITEM_MOON_STONE 94
+#define ITEM_FIRE_STONE 95
+#define ITEM_THUNDER_STONE 96
+#define ITEM_WATER_STONE 97
+#define ITEM_LEAF_STONE 98
+#define ITEM_063 99
+#define ITEM_064 100
+#define ITEM_065 101
+#define ITEM_066 102
+#define ITEM_TINY_MUSHROOM 103
+#define ITEM_BIG_MUSHROOM 104
+#define ITEM_069 105
+#define ITEM_PEARL 106
+#define ITEM_BIG_PEARL 107
+#define ITEM_STARDUST 108
+#define ITEM_STAR_PIECE 109
+#define ITEM_NUGGET 110
+#define ITEM_HEART_SCALE 111
+#define ITEM_070 112
+#define ITEM_071 113
+#define ITEM_072 114
+#define ITEM_073 115
+#define ITEM_074 116
+#define ITEM_075 117
+#define ITEM_076 118
+#define ITEM_077 119
+#define ITEM_078 120
+#define ITEM_ORANGE_MAIL 121
+#define ITEM_HARBOR_MAIL 122
+#define ITEM_GLITTER_MAIL 123
+#define ITEM_MECH_MAIL 124
+#define ITEM_WOOD_MAIL 125
+#define ITEM_WAVE_MAIL 126
+#define ITEM_BEAD_MAIL 127
+#define ITEM_SHADOW_MAIL 128
+#define ITEM_TROPIC_MAIL 129
+#define ITEM_DREAM_MAIL 130
+#define ITEM_FAB_MAIL 131
+#define ITEM_RETRO_MAIL 132
+#define ITEM_CHERI_BERRY 133
+#define ITEM_CHESTO_BERRY 134
+#define ITEM_PECHA_BERRY 135
+#define ITEM_RAWST_BERRY 136
+#define ITEM_ASPEAR_BERRY 137
+#define ITEM_LEPPA_BERRY 138
+#define ITEM_ORAN_BERRY 139
+#define ITEM_PERSIM_BERRY 140
+#define ITEM_LUM_BERRY 141
+#define ITEM_SITRUS_BERRY 142
+#define ITEM_FIGY_BERRY 143
+#define ITEM_WIKI_BERRY 144
+#define ITEM_MAGO_BERRY 145
+#define ITEM_AGUAV_BERRY 146
+#define ITEM_IAPAPA_BERRY 147
+#define ITEM_RAZZ_BERRY 148
+#define ITEM_BLUK_BERRY 149
+#define ITEM_NANAB_BERRY 150
+#define ITEM_WEPEAR_BERRY 151
+#define ITEM_PINAP_BERRY 152
+#define ITEM_POMEG_BERRY 153
+#define ITEM_KELPSY_BERRY 154
+#define ITEM_QUALOT_BERRY 155
+#define ITEM_HONDEW_BERRY 156
+#define ITEM_GREPA_BERRY 157
+#define ITEM_TAMATO_BERRY 158
+#define ITEM_CORNN_BERRY 159
+#define ITEM_MAGOST_BERRY 160
+#define ITEM_RABUTA_BERRY 161
+#define ITEM_NOMEL_BERRY 162
+#define ITEM_SPELON_BERRY 163
+#define ITEM_PAMTRE_BERRY 164
+#define ITEM_WATMEL_BERRY 165
+#define ITEM_DURIN_BERRY 166
+#define ITEM_BELUE_BERRY 167
+#define ITEM_LIECHI_BERRY 168
+#define ITEM_GANLON_BERRY 169
+#define ITEM_SALAC_BERRY 170
+#define ITEM_PETAYA_BERRY 171
+#define ITEM_APICOT_BERRY 172
+#define ITEM_LANSAT_BERRY 173
+#define ITEM_STARF_BERRY 174
+#define ITEM_ENIGMA_BERRY 175
+#define ITEM_0B0 176
+#define ITEM_0B1 177
+#define ITEM_0B2 178
+#define ITEM_BRIGHT_POWDER 179
+#define ITEM_WHITE_HERB 180
+#define ITEM_MACHO_BRACE 181
+#define ITEM_EXP_SHARE 182
+#define ITEM_QUICK_CLAW 183
+#define ITEM_SOOTHE_BELL 184
+#define ITEM_MENTAL_HERB 185
+#define ITEM_CHOICE_BAND 186
+#define ITEM_KINGS_ROCK 187
+#define ITEM_SILVER_POWDER 188
+#define ITEM_AMULET_COIN 189
+#define ITEM_CLEANSE_TAG 190
+#define ITEM_SOUL_DEW 191
+#define ITEM_DEEP_SEA_TOOTH 192
+#define ITEM_DEEP_SEA_SCALE 193
+#define ITEM_SMOKE_BALL 194
+#define ITEM_EVERSTONE 195
+#define ITEM_FOCUS_BAND 196
+#define ITEM_LUCKY_EGG 197
+#define ITEM_SCOPE_LENS 198
+#define ITEM_METAL_COAT 199
+#define ITEM_LEFTOVERS 200
+#define ITEM_DRAGON_SCALE 201
+#define ITEM_LIGHT_BALL 202
+#define ITEM_SOFT_SAND 203
+#define ITEM_HARD_STONE 204
+#define ITEM_MIRACLE_SEED 205
+#define ITEM_BLACK_GLASSES 206
+#define ITEM_BLACK_BELT 207
+#define ITEM_MAGNET 208
+#define ITEM_MYSTIC_WATER 209
+#define ITEM_SHARP_BEAK 210
+#define ITEM_POISON_BARB 211
+#define ITEM_NEVER_MELT_ICE 212
+#define ITEM_SPELL_TAG 213
+#define ITEM_TWISTED_SPOON 214
+#define ITEM_CHARCOAL 215
+#define ITEM_DRAGON_FANG 216
+#define ITEM_SILK_SCARF 217
+#define ITEM_UP_GRADE 218
+#define ITEM_SHELL_BELL 219
+#define ITEM_SEA_INCENSE 220
+#define ITEM_LAX_INCENSE 221
+#define ITEM_LUCKY_PUNCH 222
+#define ITEM_METAL_POWDER 223
+#define ITEM_THICK_CLUB 224
+#define ITEM_STICK 225
+#define ITEM_0E2 226
+#define ITEM_0E3 227
+#define ITEM_0E4 228
+#define ITEM_0E5 229
+#define ITEM_0E6 230
+#define ITEM_0E7 231
+#define ITEM_0E8 232
+#define ITEM_0E9 233
+#define ITEM_0EA 234
+#define ITEM_0EB 235
+#define ITEM_0EC 236
+#define ITEM_0ED 237
+#define ITEM_0EE 238
+#define ITEM_0EF 239
+#define ITEM_0F0 240
+#define ITEM_0F1 241
+#define ITEM_0F2 242
+#define ITEM_0F3 243
+#define ITEM_0F4 244
+#define ITEM_0F5 245
+#define ITEM_0F6 246
+#define ITEM_0F7 247
+#define ITEM_0F8 248
+#define ITEM_0F9 249
+#define ITEM_0FA 250
+#define ITEM_0FB 251
+#define ITEM_0FC 252
+#define ITEM_0FD 253
+#define ITEM_RED_SCARF 254
+#define ITEM_BLUE_SCARF 255
+#define ITEM_PINK_SCARF 256
+#define ITEM_GREEN_SCARF 257
+#define ITEM_YELLOW_SCARF 258
+#define ITEM_MACH_BIKE 259
+#define ITEM_COIN_CASE 260
+#define ITEM_ITEMFINDER 261
+#define ITEM_OLD_ROD 262
+#define ITEM_GOOD_ROD 263
+#define ITEM_SUPER_ROD 264
+#define ITEM_SS_TICKET 265
+#define ITEM_CONTEST_PASS 266
+#define ITEM_10B 267
+#define ITEM_WAILMER_PAIL 268
+#define ITEM_DEVON_GOODS 269
+#define ITEM_SOOT_SACK 270
+#define ITEM_BASEMENT_KEY 271
+#define ITEM_ACRO_BIKE 272
+#define ITEM_POKEBLOCK_CASE 273
+#define ITEM_LETTER 274
+#define ITEM_EON_TICKET 275
+#define ITEM_RED_ORB 276
+#define ITEM_BLUE_ORB 277
+#define ITEM_SCANNER 278
+#define ITEM_GO_GOGGLES 279
+#define ITEM_METEORITE 280
+#define ITEM_ROOM_1_KEY 281
+#define ITEM_ROOM_2_KEY 282
+#define ITEM_ROOM_4_KEY 283
+#define ITEM_ROOM_6_KEY 284
+#define ITEM_STORAGE_KEY 285
+#define ITEM_ROOT_FOSSIL 286
+#define ITEM_CLAW_FOSSIL 287
+#define ITEM_DEVON_SCOPE 288
+#define ITEM_TM01 289
+#define ITEM_TM02 290
+#define ITEM_TM03 291
+#define ITEM_TM04 292
+#define ITEM_TM05 293
+#define ITEM_TM06 294
+#define ITEM_TM07 295
+#define ITEM_TM08 296
+#define ITEM_TM09 297
+#define ITEM_TM10 298
+#define ITEM_TM11 299
+#define ITEM_TM12 300
+#define ITEM_TM13 301
+#define ITEM_TM14 302
+#define ITEM_TM15 303
+#define ITEM_TM16 304
+#define ITEM_TM17 305
+#define ITEM_TM18 306
+#define ITEM_TM19 307
+#define ITEM_TM20 308
+#define ITEM_TM21 309
+#define ITEM_TM22 310
+#define ITEM_TM23 311
+#define ITEM_TM24 312
+#define ITEM_TM25 313
+#define ITEM_TM26 314
+#define ITEM_TM27 315
+#define ITEM_TM28 316
+#define ITEM_TM29 317
+#define ITEM_TM30 318
+#define ITEM_TM31 319
+#define ITEM_TM32 320
+#define ITEM_TM33 321
+#define ITEM_TM34 322
+#define ITEM_TM35 323
+#define ITEM_TM36 324
+#define ITEM_TM37 325
+#define ITEM_TM38 326
+#define ITEM_TM39 327
+#define ITEM_TM40 328
+#define ITEM_TM41 329
+#define ITEM_TM42 330
+#define ITEM_TM43 331
+#define ITEM_TM44 332
+#define ITEM_TM45 333
+#define ITEM_TM46 334
+#define ITEM_TM47 335
+#define ITEM_TM48 336
+#define ITEM_TM49 337
+#define ITEM_TM50 338
+#define ITEM_HM01 339
+#define ITEM_HM02 340
+#define ITEM_HM03 341
+#define ITEM_HM04 342
+#define ITEM_HM05 343
+#define ITEM_HM06 344
+#define ITEM_HM07 345
+#define ITEM_HM08 346
+#define ITEM_15B 347
+#define ITEM_15C 348
+
+// FireRed/LeafGreen
+#define ITEM_OAKS_PARCEL 349
+#define ITEM_POKE_FLUTE 350
+#define ITEM_SECRET_KEY 351
+#define ITEM_BIKE_VOUCHER 352
+#define ITEM_GOLD_TEETH 353
+#define ITEM_OLD_AMBER 354
+#define ITEM_CARD_KEY 355
+#define ITEM_LIFT_KEY 356
+#define ITEM_HELIX_FOSSIL 357
+#define ITEM_DOME_FOSSIL 358
+#define ITEM_SILPH_SCOPE 359
+#define ITEM_BICYCLE 360
+#define ITEM_TOWN_MAP 361
+#define ITEM_VS_SEEKER 362
+#define ITEM_FAME_CHECKER 363
+#define ITEM_TM_CASE 364
+#define ITEM_BERRY_POUCH 365
+#define ITEM_TEACHY_TV 366
+#define ITEM_TRI_PASS 367
+#define ITEM_RAINBOW_PASS 368
+#define ITEM_TEA 369
+#define ITEM_MYSTIC_TICKET 370
+#define ITEM_AURORA_TICKET 371
+#define ITEM_POWDER_JAR 372
+#define ITEM_RUBY 373
+#define ITEM_SAPPHIRE 374
+
+// Emerald
+#define ITEM_MAGMA_EMBLEM 375
+#define ITEM_OLD_SEA_MAP 376
+
+#define NUM_TECHNICAL_MACHINES 50
+#define NUM_HIDDEN_MACHINES 8
+
+#endif // GUARD_CONSTANTS_ITEMS_H
diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h
new file mode 100644
index 000000000..7e5aef744
--- /dev/null
+++ b/include/constants/map_objects.h
@@ -0,0 +1,252 @@
+#ifndef GUARD_CONSTANTS_MAP_OBJECTS_H
+#define GUARD_CONSTANTS_MAP_OBJECTS_H
+
+#define MAP_OBJ_GFX_BRENDAN_NORMAL 0
+#define MAP_OBJ_GFX_BRENDAN_MACH_BIKE 1
+#define MAP_OBJ_GFX_BRENDAN_SURFING 2
+#define MAP_OBJ_GFX_BRENDAN_FIELD_MOVE 3
+#define MAP_OBJ_GFX_QUINTY_PLUMP 4
+#define MAP_OBJ_GFX_LITTLE_BOY_1 5
+#define MAP_OBJ_GFX_LITTLE_GIRL_1 6
+#define MAP_OBJ_GFX_BOY_1 7
+#define MAP_OBJ_GFX_GIRL_1 8
+#define MAP_OBJ_GFX_BOY_2 9
+#define MAP_OBJ_GFX_GIRL_2 10
+#define MAP_OBJ_GFX_LITTLE_BOY_2 11
+#define MAP_OBJ_GFX_LITTLE_GIRL_2 12
+#define MAP_OBJ_GFX_BOY_3 13
+#define MAP_OBJ_GFX_GIRL_3 14
+#define MAP_OBJ_GFX_BOY_4 15
+#define MAP_OBJ_GFX_WOMAN_1 16
+#define MAP_OBJ_GFX_FAT_MAN 17
+#define MAP_OBJ_GFX_WOMAN_2 18
+#define MAP_OBJ_GFX_MAN_1 19
+#define MAP_OBJ_GFX_WOMAN_3 20
+#define MAP_OBJ_GFX_OLD_MAN_1 21
+#define MAP_OBJ_GFX_OLD_WOMAN_1 22
+#define MAP_OBJ_GFX_MAN_2 23
+#define MAP_OBJ_GFX_WOMAN_4 24
+#define MAP_OBJ_GFX_MAN_3 25
+#define MAP_OBJ_GFX_WOMAN_5 26
+#define MAP_OBJ_GFX_COOK 27
+#define MAP_OBJ_GFX_WOMAN_6 28
+#define MAP_OBJ_GFX_OLD_MAN_2 29
+#define MAP_OBJ_GFX_OLD_WOMAN_2 30
+#define MAP_OBJ_GFX_CAMPER 31
+#define MAP_OBJ_GFX_PICNICKER 32
+#define MAP_OBJ_GFX_MAN_4 33
+#define MAP_OBJ_GFX_WOMAN_7 34
+#define MAP_OBJ_GFX_YOUNGSTER 35
+#define MAP_OBJ_GFX_BUG_CATCHER 36
+#define MAP_OBJ_GFX_PSYCHIC_M 37
+#define MAP_OBJ_GFX_SCHOOL_KID_M 38
+#define MAP_OBJ_GFX_MANIAC 39
+#define MAP_OBJ_GFX_HEX_MANIAC 40
+#define MAP_OBJ_GFX_WOMAN_8 41
+#define MAP_OBJ_GFX_SWIMMER_M 42
+#define MAP_OBJ_GFX_SWIMMER_F 43
+#define MAP_OBJ_GFX_BLACK_BELT 44
+#define MAP_OBJ_GFX_BEAUTY 45
+#define MAP_OBJ_GFX_SCIENTIST_1 46
+#define MAP_OBJ_GFX_LASS 47
+#define MAP_OBJ_GFX_GENTLEMAN 48
+#define MAP_OBJ_GFX_SAILOR 49
+#define MAP_OBJ_GFX_FISHERMAN 50
+#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_M 51
+#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_F 52
+#define MAP_OBJ_GFX_TUBER_F 53
+#define MAP_OBJ_GFX_TUBER_M 54
+#define MAP_OBJ_GFX_HIKER 55
+#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_M 56
+#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_F 57
+#define MAP_OBJ_GFX_NURSE 58
+#define MAP_OBJ_GFX_ITEM_BALL 59
+#define MAP_OBJ_GFX_BERRY_TREE 60
+#define MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61
+#define MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES 62
+#define MAP_OBJ_GFX_BRENDAN_ACRO_BIKE 63
+#define MAP_OBJ_GFX_PROF_BIRCH 64
+#define MAP_OBJ_GFX_MAN_5 65
+#define MAP_OBJ_GFX_MAN_6 66
+#define MAP_OBJ_GFX_REPORTER_M 67
+#define MAP_OBJ_GFX_REPORTER_F 68
+#define MAP_OBJ_GFX_BARD 69
+#define MAP_OBJ_GFX_HIPSTER 70
+#define MAP_OBJ_GFX_TRADER 71
+#define MAP_OBJ_GFX_STORYTELLER 72
+#define MAP_OBJ_GFX_GIDDY 73
+#define MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1 74
+#define MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2 75
+#define MAP_OBJ_GFX_UNUSED_NATU_DOLL 76
+#define MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77
+#define MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78
+#define MAP_OBJ_GFX_UNUSED_WOOPER_DOLL 79
+#define MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL 80
+#define MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL 81
+#define MAP_OBJ_GFX_CUTTABLE_TREE 82
+#define MAP_OBJ_GFX_MART_EMPLOYEE 83
+#define MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN 84
+#define MAP_OBJ_GFX_TEALA 85
+#define MAP_OBJ_GFX_BREAKABLE_ROCK 86
+#define MAP_OBJ_GFX_PUSHABLE_BOULDER 87
+#define MAP_OBJ_GFX_MR_BRINEYS_BOAT 88
+#define MAP_OBJ_GFX_MAY_NORMAL 89
+#define MAP_OBJ_GFX_MAY_MACH_BIKE 90
+#define MAP_OBJ_GFX_MAY_ACRO_BIKE 91
+#define MAP_OBJ_GFX_MAY_SURFING 92
+#define MAP_OBJ_GFX_MAY_FIELD_MOVE 93
+#define MAP_OBJ_GFX_TRUCK 94
+#define MAP_OBJ_GFX_MACHOKE_CARRYING_BOX 95
+#define MAP_OBJ_GFX_MACHOKE_FACING_AWAY 96
+#define MAP_OBJ_GFX_BIRCHS_BAG 97
+#define MAP_OBJ_GFX_POOCHYENA 98
+#define MAP_OBJ_GFX_ARTIST 99
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING 103
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
+#define MAP_OBJ_GFX_RIVAL_MAY_NORMAL 105
+#define MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106
+#define MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107
+#define MAP_OBJ_GFX_RIVAL_MAY_SURFING 108
+#define MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109
+#define MAP_OBJ_GFX_CAMERAMAN 110
+#define MAP_OBJ_GFX_BRENDAN_UNDERWATER 111
+#define MAP_OBJ_GFX_MAY_UNDERWATER 112
+#define MAP_OBJ_GFX_MOVING_BOX 113
+#define MAP_OBJ_GFX_CABLE_CAR 114
+#define MAP_OBJ_GFX_SCIENTIST_2 115
+#define MAP_OBJ_GFX_MAN_7 116
+#define MAP_OBJ_GFX_AQUA_MEMBER_M 117
+#define MAP_OBJ_GFX_AQUA_MEMBER_F 118
+#define MAP_OBJ_GFX_MAGMA_MEMBER_M 119
+#define MAP_OBJ_GFX_MAGMA_MEMBER_F 120
+#define MAP_OBJ_GFX_SIDNEY 121
+#define MAP_OBJ_GFX_PHOEBE 122
+#define MAP_OBJ_GFX_GLACIA 123
+#define MAP_OBJ_GFX_DRAKE 124
+#define MAP_OBJ_GFX_ROXANNE 125
+#define MAP_OBJ_GFX_BRAWLY 126
+#define MAP_OBJ_GFX_WATTSON 127
+#define MAP_OBJ_GFX_FLANNERY 128
+#define MAP_OBJ_GFX_NORMAN 129
+#define MAP_OBJ_GFX_WINONA 130
+#define MAP_OBJ_GFX_LIZA 131
+#define MAP_OBJ_GFX_TATE 132
+#define MAP_OBJ_GFX_WALLACE 133
+#define MAP_OBJ_GFX_STEVEN 134
+#define MAP_OBJ_GFX_WALLY 135
+#define MAP_OBJ_GFX_LITTLE_BOY_3 136
+#define MAP_OBJ_GFX_BRENDAN_FISHING 137
+#define MAP_OBJ_GFX_MAY_FISHING 138
+#define MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139
+#define MAP_OBJ_GFX_SS_TIDAL 140
+#define MAP_OBJ_GFX_SUBMARINE_SHADOW 141
+#define MAP_OBJ_GFX_PICHU_DOLL 142
+#define MAP_OBJ_GFX_PIKACHU_DOLL 143
+#define MAP_OBJ_GFX_MARILL_DOLL 144
+#define MAP_OBJ_GFX_TOGEPI_DOLL 145
+#define MAP_OBJ_GFX_CYNDAQUIL_DOLL 146
+#define MAP_OBJ_GFX_CHIKORITA_DOLL 147
+#define MAP_OBJ_GFX_TOTODILE_DOLL 148
+#define MAP_OBJ_GFX_JIGGLYPUFF_DOLL 149
+#define MAP_OBJ_GFX_MEOWTH_DOLL 150
+#define MAP_OBJ_GFX_CLEFAIRY_DOLL 151
+#define MAP_OBJ_GFX_DITTO_DOLL 152
+#define MAP_OBJ_GFX_SMOOCHUM_DOLL 153
+#define MAP_OBJ_GFX_TREECKO_DOLL 154
+#define MAP_OBJ_GFX_TORCHIC_DOLL 155
+#define MAP_OBJ_GFX_MUDKIP_DOLL 156
+#define MAP_OBJ_GFX_DUSKULL_DOLL 157
+#define MAP_OBJ_GFX_WYNAUT_DOLL 158
+#define MAP_OBJ_GFX_BALTOY_DOLL 159
+#define MAP_OBJ_GFX_KECLEON_DOLL 160
+#define MAP_OBJ_GFX_AZURILL_DOLL 161
+#define MAP_OBJ_GFX_SKITTY_DOLL 162
+#define MAP_OBJ_GFX_SWABLU_DOLL 163
+#define MAP_OBJ_GFX_GULPIN_DOLL 164
+#define MAP_OBJ_GFX_LOTAD_DOLL 165
+#define MAP_OBJ_GFX_SEEDOT_DOLL 166
+#define MAP_OBJ_GFX_PIKA_CUSHION 167
+#define MAP_OBJ_GFX_ROUND_CUSHION 168
+#define MAP_OBJ_GFX_KISS_CUSHION 169
+#define MAP_OBJ_GFX_ZIGZAG_CUSHION 170
+#define MAP_OBJ_GFX_SPIN_CUSHION 171
+#define MAP_OBJ_GFX_DIAMOND_CUSHION 172
+#define MAP_OBJ_GFX_BALL_CUSHION 173
+#define MAP_OBJ_GFX_GRASS_CUSHION 174
+#define MAP_OBJ_GFX_FIRE_CUSHION 175
+#define MAP_OBJ_GFX_WATER_CUSHION 176
+#define MAP_OBJ_GFX_BIG_SNORLAX_DOLL 177
+#define MAP_OBJ_GFX_BIG_RHYDON_DOLL 178
+#define MAP_OBJ_GFX_BIG_LAPRAS_DOLL 179
+#define MAP_OBJ_GFX_BIG_VENUSAUR_DOLL 180
+#define MAP_OBJ_GFX_BIG_CHARIZARD_DOLL 181
+#define MAP_OBJ_GFX_BIG_BLASTOISE_DOLL 182
+#define MAP_OBJ_GFX_BIG_WAILMER_DOLL 183
+#define MAP_OBJ_GFX_BIG_REGIROCK_DOLL 184
+#define MAP_OBJ_GFX_BIG_REGICE_DOLL 185
+#define MAP_OBJ_GFX_BIG_REGISTEEL_DOLL 186
+#define MAP_OBJ_GFX_LATIAS 187
+#define MAP_OBJ_GFX_LATIOS 188
+#define MAP_OBJ_GFX_BOY_5 189
+#define MAP_OBJ_GFX_CONTEST_JUDGE 190
+#define MAP_OBJ_GFX_BRENDAN_WATERING 191
+#define MAP_OBJ_GFX_MAY_WATERING 192
+#define MAP_OBJ_GFX_BRENDAN_DECORATING 193
+#define MAP_OBJ_GFX_MAY_DECORATING 194
+#define MAP_OBJ_GFX_ARCHIE 195
+#define MAP_OBJ_GFX_MAXIE 196
+#define MAP_OBJ_GFX_KYOGRE_1 197
+#define MAP_OBJ_GFX_GROUDON_1 198
+#define MAP_OBJ_GFX_FOSSIL 199
+#define MAP_OBJ_GFX_REGIROCK 200
+#define MAP_OBJ_GFX_REGICE 201
+#define MAP_OBJ_GFX_REGISTEEL 202
+#define MAP_OBJ_GFX_SKITTY 203
+#define MAP_OBJ_GFX_KECLEON_1 204
+#define MAP_OBJ_GFX_KYOGRE_2 205
+#define MAP_OBJ_GFX_GROUDON_2 206
+#define MAP_OBJ_GFX_RAYQUAZA 207
+#define MAP_OBJ_GFX_ZIGZAGOON 208
+#define MAP_OBJ_GFX_PIKACHU 209
+#define MAP_OBJ_GFX_AZUMARILL 210
+#define MAP_OBJ_GFX_WINGULL 211
+#define MAP_OBJ_GFX_KECLEON_2 212
+#define MAP_OBJ_GFX_TUBER_M_SWIMMING 213
+#define MAP_OBJ_GFX_AZURILL 214
+#define MAP_OBJ_GFX_MOM 215
+#define MAP_OBJ_GFX_LINK_BRENDAN 216
+#define MAP_OBJ_GFX_LINK_MAY 217
+
+// These are dynamic object gfx ids.
+// They correspond with the values of the VAR_OBJ_GFX_ID_X vars.
+// More info about them in include/constants/vars.h
+#define MAP_OBJ_GFX_VAR_0 240
+#define MAP_OBJ_GFX_VAR_1 241
+#define MAP_OBJ_GFX_VAR_2 242
+#define MAP_OBJ_GFX_VAR_3 243
+#define MAP_OBJ_GFX_VAR_4 244
+#define MAP_OBJ_GFX_VAR_5 245
+#define MAP_OBJ_GFX_VAR_6 246
+#define MAP_OBJ_GFX_VAR_7 247
+#define MAP_OBJ_GFX_VAR_8 248
+#define MAP_OBJ_GFX_VAR_9 249
+#define MAP_OBJ_GFX_VAR_A 250
+#define MAP_OBJ_GFX_VAR_B 251
+#define MAP_OBJ_GFX_VAR_C 252
+#define MAP_OBJ_GFX_VAR_D 253
+#define MAP_OBJ_GFX_VAR_E 254
+#define MAP_OBJ_GFX_VAR_F 255
+
+#define SHADOW_SIZE_S 0
+#define SHADOW_SIZE_M 1
+#define SHADOW_SIZE_L 2
+#define SHADOW_SIZE_XL 3
+
+#define TRACKS_NONE 0
+#define TRACKS_FOOT 1
+#define TRACKS_BIKE_TIRE 2
+
+#endif // GUARD_CONSTANTS_MAP_OBJECTS_H
diff --git a/include/constants/maps.h b/include/constants/maps.h
new file mode 100644
index 000000000..f96591f60
--- /dev/null
+++ b/include/constants/maps.h
@@ -0,0 +1,474 @@
+#ifndef GUARD_CONSTANTS_MAPS_H
+#define GUARD_CONSTANTS_MAPS_H
+
+// Map Group 0
+#define MAP_PETALBURG_CITY (0 | (0 << 8))
+#define MAP_SLATEPORT_CITY (1 | (0 << 8))
+#define MAP_MAUVILLE_CITY (2 | (0 << 8))
+#define MAP_RUSTBORO_CITY (3 | (0 << 8))
+#define MAP_FORTREE_CITY (4 | (0 << 8))
+#define MAP_LILYCOVE_CITY (5 | (0 << 8))
+#define MAP_MOSSDEEP_CITY (6 | (0 << 8))
+#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8))
+#define MAP_EVER_GRANDE_CITY (8 | (0 << 8))
+#define MAP_LITTLEROOT_TOWN (9 | (0 << 8))
+#define MAP_OLDALE_TOWN (10 | (0 << 8))
+#define MAP_DEWFORD_TOWN (11 | (0 << 8))
+#define MAP_LAVARIDGE_TOWN (12 | (0 << 8))
+#define MAP_FALLARBOR_TOWN (13 | (0 << 8))
+#define MAP_VERDANTURF_TOWN (14 | (0 << 8))
+#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8))
+#define MAP_ROUTE101 (16 | (0 << 8))
+#define MAP_ROUTE102 (17 | (0 << 8))
+#define MAP_ROUTE103 (18 | (0 << 8))
+#define MAP_ROUTE104 (19 | (0 << 8))
+#define MAP_ROUTE105 (20 | (0 << 8))
+#define MAP_ROUTE106 (21 | (0 << 8))
+#define MAP_ROUTE107 (22 | (0 << 8))
+#define MAP_ROUTE108 (23 | (0 << 8))
+#define MAP_ROUTE109 (24 | (0 << 8))
+#define MAP_ROUTE110 (25 | (0 << 8))
+#define MAP_ROUTE111 (26 | (0 << 8))
+#define MAP_ROUTE112 (27 | (0 << 8))
+#define MAP_ROUTE113 (28 | (0 << 8))
+#define MAP_ROUTE114 (29 | (0 << 8))
+#define MAP_ROUTE115 (30 | (0 << 8))
+#define MAP_ROUTE116 (31 | (0 << 8))
+#define MAP_ROUTE117 (32 | (0 << 8))
+#define MAP_ROUTE118 (33 | (0 << 8))
+#define MAP_ROUTE119 (34 | (0 << 8))
+#define MAP_ROUTE120 (35 | (0 << 8))
+#define MAP_ROUTE121 (36 | (0 << 8))
+#define MAP_ROUTE122 (37 | (0 << 8))
+#define MAP_ROUTE123 (38 | (0 << 8))
+#define MAP_ROUTE124 (39 | (0 << 8))
+#define MAP_ROUTE125 (40 | (0 << 8))
+#define MAP_ROUTE126 (41 | (0 << 8))
+#define MAP_ROUTE127 (42 | (0 << 8))
+#define MAP_ROUTE128 (43 | (0 << 8))
+#define MAP_ROUTE129 (44 | (0 << 8))
+#define MAP_ROUTE130 (45 | (0 << 8))
+#define MAP_ROUTE131 (46 | (0 << 8))
+#define MAP_ROUTE132 (47 | (0 << 8))
+#define MAP_ROUTE133 (48 | (0 << 8))
+#define MAP_ROUTE134 (49 | (0 << 8))
+#define MAP_UNDERWATER1 (50 | (0 << 8))
+#define MAP_UNDERWATER2 (51 | (0 << 8))
+#define MAP_UNDERWATER3 (52 | (0 << 8))
+#define MAP_UNDERWATER4 (53 | (0 << 8))
+
+// Map Group 1
+#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8))
+
+// Map Group 2
+#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8))
+#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8))
+#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))
+#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))
+#define MAP_OLDALE_TOWN_MART (4 | (2 << 8))
+
+// Map Group 3
+#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8))
+#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))
+#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8))
+#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8))
+#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8))
+#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8))
+
+// Map Group 4
+#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8))
+
+// Map Group 5
+#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_CONTEST_LOBBY (1 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_CONTEST_HALL (2 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (3 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (4 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_HOUSE1 (5 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_HOUSE2 (6 | (5 << 8))
+
+// Map Group 6
+#define MAP_VERDANTURF_TOWN_CONTEST_LOBBY (0 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_CONTEST_HALL (1 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_MART (2 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (3 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (4 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (5 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (6 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_HOUSE (7 | (6 << 8))
+
+// Map Group 7
+#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8))
+
+// Map Group 8
+#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8))
+#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8))
+#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8))
+#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8))
+#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8))
+#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))
+#define MAP_PETALBURG_CITY_MART (6 | (8 << 8))
+
+// Map Group 9
+#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8))
+#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8))
+#define MAP_SLATEPORT_CITY_CONTEST_LOBBY (2 | (9 << 8))
+#define MAP_SLATEPORT_CITY_CONTEST_HALL (3 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE1 (4 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (5 | (9 << 8))
+#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (6 | (9 << 8))
+#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (7 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HARBOR (8 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE2 (9 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (10 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (11 | (9 << 8))
+#define MAP_SLATEPORT_CITY_MART (12 | (9 << 8))
+
+// Map Group 10
+#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8))
+#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8))
+#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8))
+#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8))
+#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8))
+#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8))
+#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))
+#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8))
+
+// Map Group 11
+#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8))
+#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8))
+#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8))
+#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
+#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8))
+#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8))
+
+// Map Group 12
+#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8))
+#define MAP_FORTREE_CITY_GYM (1 | (12 << 8))
+#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8))
+#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8))
+#define MAP_FORTREE_CITY_MART (4 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8))
+#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8))
+
+// Map Group 13
+#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8))
+#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8))
+#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8))
+#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8))
+#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8))
+#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8))
+#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8))
+#define MAP_LILYCOVE_CITY_EMPTY_MAP (11 | (13 << 8))
+#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (12 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE1 (13 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE2 (14 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE3 (15 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE4 (16 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (17 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (18 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (19 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (20 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (21 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (22 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (23 | (13 << 8))
+
+// Map Group 14
+#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8))
+
+// Map Group 15
+#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8))
+
+// Map Group 16
+#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE (10 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))
+
+// Map Group 17
+#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8))
+#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8))
+
+// Map Group 18
+#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))
+#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8))
+
+// Map Group 19
+#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8))
+#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8))
+
+// Map Group 20
+#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8))
+#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))
+#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8))
+
+// Map Group 21
+#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8))
+
+// Map Group 22
+#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8))
+
+// Map Group 23
+#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8))
+
+// Map Group 24
+#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8))
+#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8))
+#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8))
+#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8))
+#define MAP_RUSTURF_TUNNEL (4 | (24 << 8))
+#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8))
+#define MAP_DESERT_RUINS (6 | (24 << 8))
+#define MAP_GRANITE_CAVE_1F (7 | (24 << 8))
+#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8))
+#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8))
+#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8))
+#define MAP_PETALBURG_WOODS (11 | (24 << 8))
+#define MAP_MT_CHIMNEY (12 | (24 << 8))
+#define MAP_JAGGED_PASS (13 | (24 << 8))
+#define MAP_FIERY_PATH (14 | (24 << 8))
+#define MAP_MT_PYRE_1F (15 | (24 << 8))
+#define MAP_MT_PYRE_2F (16 | (24 << 8))
+#define MAP_MT_PYRE_3F (17 | (24 << 8))
+#define MAP_MT_PYRE_4F (18 | (24 << 8))
+#define MAP_MT_PYRE_5F (19 | (24 << 8))
+#define MAP_MT_PYRE_6F (20 | (24 << 8))
+#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8))
+#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8))
+#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B1F (39 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B2F (40 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B3F (41 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B4F (42 | (24 << 8))
+#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
+#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
+#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8))
+#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8))
+#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8))
+#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8))
+#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8))
+#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8))
+#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8))
+#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8))
+#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8))
+#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8))
+#define MAP_ISLAND_CAVE (67 | (24 << 8))
+#define MAP_ANCIENT_TOMB (68 | (24 << 8))
+#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8))
+#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8))
+#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8))
+#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8))
+#define MAP_SCORCHED_SLAB (73 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_1F (74 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_B1F (75 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_B2F (76 | (24 << 8))
+#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8))
+#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8))
+#define MAP_SKY_PILLAR_1F (79 | (24 << 8))
+#define MAP_SKY_PILLAR_2F (80 | (24 << 8))
+#define MAP_SKY_PILLAR_3F (81 | (24 << 8))
+#define MAP_SKY_PILLAR_4F (82 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8))
+#define MAP_SKY_PILLAR_5F (84 | (24 << 8))
+#define MAP_SKY_PILLAR_TOP (85 | (24 << 8))
+
+// Map Group 25
+#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
+#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
+#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
+#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
+#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
+#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8))
+#define MAP_TRADE_CENTER (25 | (25 << 8))
+#define MAP_RECORD_CORNER (26 | (25 << 8))
+#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8))
+#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
+#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
+#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
+#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
+
+// Map Group 26
+#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8))
+#define MAP_BATTLE_TOWER_OUTSIDE (4 | (26 << 8))
+#define MAP_BATTLE_TOWER_LOBBY (5 | (26 << 8))
+#define MAP_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
+#define MAP_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
+#define MAP_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
+#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
+
+// Map Group 27
+#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
+#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8))
+
+// Map Group 28
+#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8))
+
+// Map Group 29
+#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8))
+
+// Map Group 30
+#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
+
+// Map Group 31
+#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8))
+
+// Map Group 32
+#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))
+#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))
+#define MAP_ROUTE119_HOUSE (2 | (32 << 8))
+
+// Map Group 33
+#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
+
+
+#define MAP_NONE (0x7F | (0x7F << 8))
+#define MAP_UNDEFINED (0xFF | (0xFF << 8))
+
+
+#define MAP_GROUP(map) (MAP_##map >> 8)
+#define MAP_NUM(map) (MAP_##map & 0xFF)
+
+#endif // GUARD_CONSTANTS_MAPS_H
diff --git a/include/constants/mauville_man.h b/include/constants/mauville_man.h
new file mode 100644
index 000000000..b00e3a291
--- /dev/null
+++ b/include/constants/mauville_man.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_CONSTANTS_MAUVILLE_MAN_H
+#define GUARD_CONSTANTS_MAUVILLE_MAN_H
+
+#define MAUVILLE_MAN_BARD 0
+#define MAUVILLE_MAN_HIPSTER 1
+#define MAUVILLE_MAN_TRADER 2
+#define MAUVILLE_MAN_STORYTELLER 3
+#define MAUVILLE_MAN_GIDDY 4
+
+#endif // GUARD_CONSTANTS_MAUVILLE_MAN_H
diff --git a/include/constants/moves.h b/include/constants/moves.h
new file mode 100644
index 000000000..5fe1da004
--- /dev/null
+++ b/include/constants/moves.h
@@ -0,0 +1,362 @@
+#ifndef GUARD_CONSTANTS_MOVES_H
+#define GUARD_CONSTANTS_MOVES_H
+
+#define MOVE_NONE 0
+#define MOVE_POUND 1
+#define MOVE_KARATE_CHOP 2
+#define MOVE_DOUBLE_SLAP 3
+#define MOVE_COMET_PUNCH 4
+#define MOVE_MEGA_PUNCH 5
+#define MOVE_PAY_DAY 6
+#define MOVE_FIRE_PUNCH 7
+#define MOVE_ICE_PUNCH 8
+#define MOVE_THUNDER_PUNCH 9
+#define MOVE_SCRATCH 10
+#define MOVE_VICE_GRIP 11
+#define MOVE_GUILLOTINE 12
+#define MOVE_RAZOR_WIND 13
+#define MOVE_SWORDS_DANCE 14
+#define MOVE_CUT 15
+#define MOVE_GUST 16
+#define MOVE_WING_ATTACK 17
+#define MOVE_WHIRLWIND 18
+#define MOVE_FLY 19
+#define MOVE_BIND 20
+#define MOVE_SLAM 21
+#define MOVE_VINE_WHIP 22
+#define MOVE_STOMP 23
+#define MOVE_DOUBLE_KICK 24
+#define MOVE_MEGA_KICK 25
+#define MOVE_JUMP_KICK 26
+#define MOVE_ROLLING_KICK 27
+#define MOVE_SAND_ATTACK 28
+#define MOVE_HEADBUTT 29
+#define MOVE_HORN_ATTACK 30
+#define MOVE_FURY_ATTACK 31
+#define MOVE_HORN_DRILL 32
+#define MOVE_TACKLE 33
+#define MOVE_BODY_SLAM 34
+#define MOVE_WRAP 35
+#define MOVE_TAKE_DOWN 36
+#define MOVE_THRASH 37
+#define MOVE_DOUBLE_EDGE 38
+#define MOVE_TAIL_WHIP 39
+#define MOVE_POISON_STING 40
+#define MOVE_TWINEEDLE 41
+#define MOVE_PIN_MISSILE 42
+#define MOVE_LEER 43
+#define MOVE_BITE 44
+#define MOVE_GROWL 45
+#define MOVE_ROAR 46
+#define MOVE_SING 47
+#define MOVE_SUPERSONIC 48
+#define MOVE_SONIC_BOOM 49
+#define MOVE_DISABLE 50
+#define MOVE_ACID 51
+#define MOVE_EMBER 52
+#define MOVE_FLAMETHROWER 53
+#define MOVE_MIST 54
+#define MOVE_WATER_GUN 55
+#define MOVE_HYDRO_PUMP 56
+#define MOVE_SURF 57
+#define MOVE_ICE_BEAM 58
+#define MOVE_BLIZZARD 59
+#define MOVE_PSYBEAM 60
+#define MOVE_BUBBLE_BEAM 61
+#define MOVE_AURORA_BEAM 62
+#define MOVE_HYPER_BEAM 63
+#define MOVE_PECK 64
+#define MOVE_DRILL_PECK 65
+#define MOVE_SUBMISSION 66
+#define MOVE_LOW_KICK 67
+#define MOVE_COUNTER 68
+#define MOVE_SEISMIC_TOSS 69
+#define MOVE_STRENGTH 70
+#define MOVE_ABSORB 71
+#define MOVE_MEGA_DRAIN 72
+#define MOVE_LEECH_SEED 73
+#define MOVE_GROWTH 74
+#define MOVE_RAZOR_LEAF 75
+#define MOVE_SOLAR_BEAM 76
+#define MOVE_POISON_POWDER 77
+#define MOVE_STUN_SPORE 78
+#define MOVE_SLEEP_POWDER 79
+#define MOVE_PETAL_DANCE 80
+#define MOVE_STRING_SHOT 81
+#define MOVE_DRAGON_RAGE 82
+#define MOVE_FIRE_SPIN 83
+#define MOVE_THUNDER_SHOCK 84
+#define MOVE_THUNDERBOLT 85
+#define MOVE_THUNDER_WAVE 86
+#define MOVE_THUNDER 87
+#define MOVE_ROCK_THROW 88
+#define MOVE_EARTHQUAKE 89
+#define MOVE_FISSURE 90
+#define MOVE_DIG 91
+#define MOVE_TOXIC 92
+#define MOVE_CONFUSION 93
+#define MOVE_PSYCHIC 94
+#define MOVE_HYPNOSIS 95
+#define MOVE_MEDITATE 96
+#define MOVE_AGILITY 97
+#define MOVE_QUICK_ATTACK 98
+#define MOVE_RAGE 99
+#define MOVE_TELEPORT 100
+#define MOVE_NIGHT_SHADE 101
+#define MOVE_MIMIC 102
+#define MOVE_SCREECH 103
+#define MOVE_DOUBLE_TEAM 104
+#define MOVE_RECOVER 105
+#define MOVE_HARDEN 106
+#define MOVE_MINIMIZE 107
+#define MOVE_SMOKESCREEN 108
+#define MOVE_CONFUSE_RAY 109
+#define MOVE_WITHDRAW 110
+#define MOVE_DEFENSE_CURL 111
+#define MOVE_BARRIER 112
+#define MOVE_LIGHT_SCREEN 113
+#define MOVE_HAZE 114
+#define MOVE_REFLECT 115
+#define MOVE_FOCUS_ENERGY 116
+#define MOVE_BIDE 117
+#define MOVE_METRONOME 118
+#define MOVE_MIRROR_MOVE 119
+#define MOVE_SELF_DESTRUCT 120
+#define MOVE_EGG_BOMB 121
+#define MOVE_LICK 122
+#define MOVE_SMOG 123
+#define MOVE_SLUDGE 124
+#define MOVE_BONE_CLUB 125
+#define MOVE_FIRE_BLAST 126
+#define MOVE_WATERFALL 127
+#define MOVE_CLAMP 128
+#define MOVE_SWIFT 129
+#define MOVE_SKULL_BASH 130
+#define MOVE_SPIKE_CANNON 131
+#define MOVE_CONSTRICT 132
+#define MOVE_AMNESIA 133
+#define MOVE_KINESIS 134
+#define MOVE_SOFT_BOILED 135
+#define MOVE_HI_JUMP_KICK 136
+#define MOVE_GLARE 137
+#define MOVE_DREAM_EATER 138
+#define MOVE_POISON_GAS 139
+#define MOVE_BARRAGE 140
+#define MOVE_LEECH_LIFE 141
+#define MOVE_LOVELY_KISS 142
+#define MOVE_SKY_ATTACK 143
+#define MOVE_TRANSFORM 144
+#define MOVE_BUBBLE 145
+#define MOVE_DIZZY_PUNCH 146
+#define MOVE_SPORE 147
+#define MOVE_FLASH 148
+#define MOVE_PSYWAVE 149
+#define MOVE_SPLASH 150
+#define MOVE_ACID_ARMOR 151
+#define MOVE_CRABHAMMER 152
+#define MOVE_EXPLOSION 153
+#define MOVE_FURY_SWIPES 154
+#define MOVE_BONEMERANG 155
+#define MOVE_REST 156
+#define MOVE_ROCK_SLIDE 157
+#define MOVE_HYPER_FANG 158
+#define MOVE_SHARPEN 159
+#define MOVE_CONVERSION 160
+#define MOVE_TRI_ATTACK 161
+#define MOVE_SUPER_FANG 162
+#define MOVE_SLASH 163
+#define MOVE_SUBSTITUTE 164
+#define MOVE_STRUGGLE 165
+#define MOVE_SKETCH 166
+#define MOVE_TRIPLE_KICK 167
+#define MOVE_THIEF 168
+#define MOVE_SPIDER_WEB 169
+#define MOVE_MIND_READER 170
+#define MOVE_NIGHTMARE 171
+#define MOVE_FLAME_WHEEL 172
+#define MOVE_SNORE 173
+#define MOVE_CURSE 174
+#define MOVE_FLAIL 175
+#define MOVE_CONVERSION_2 176
+#define MOVE_AEROBLAST 177
+#define MOVE_COTTON_SPORE 178
+#define MOVE_REVERSAL 179
+#define MOVE_SPITE 180
+#define MOVE_POWDER_SNOW 181
+#define MOVE_PROTECT 182
+#define MOVE_MACH_PUNCH 183
+#define MOVE_SCARY_FACE 184
+#define MOVE_FAINT_ATTACK 185
+#define MOVE_SWEET_KISS 186
+#define MOVE_BELLY_DRUM 187
+#define MOVE_SLUDGE_BOMB 188
+#define MOVE_MUD_SLAP 189
+#define MOVE_OCTAZOOKA 190
+#define MOVE_SPIKES 191
+#define MOVE_ZAP_CANNON 192
+#define MOVE_FORESIGHT 193
+#define MOVE_DESTINY_BOND 194
+#define MOVE_PERISH_SONG 195
+#define MOVE_ICY_WIND 196
+#define MOVE_DETECT 197
+#define MOVE_BONE_RUSH 198
+#define MOVE_LOCK_ON 199
+#define MOVE_OUTRAGE 200
+#define MOVE_SANDSTORM 201
+#define MOVE_GIGA_DRAIN 202
+#define MOVE_ENDURE 203
+#define MOVE_CHARM 204
+#define MOVE_ROLLOUT 205
+#define MOVE_FALSE_SWIPE 206
+#define MOVE_SWAGGER 207
+#define MOVE_MILK_DRINK 208
+#define MOVE_SPARK 209
+#define MOVE_FURY_CUTTER 210
+#define MOVE_STEEL_WING 211
+#define MOVE_MEAN_LOOK 212
+#define MOVE_ATTRACT 213
+#define MOVE_SLEEP_TALK 214
+#define MOVE_HEAL_BELL 215
+#define MOVE_RETURN 216
+#define MOVE_PRESENT 217
+#define MOVE_FRUSTRATION 218
+#define MOVE_SAFEGUARD 219
+#define MOVE_PAIN_SPLIT 220
+#define MOVE_SACRED_FIRE 221
+#define MOVE_MAGNITUDE 222
+#define MOVE_DYNAMIC_PUNCH 223
+#define MOVE_MEGAHORN 224
+#define MOVE_DRAGON_BREATH 225
+#define MOVE_BATON_PASS 226
+#define MOVE_ENCORE 227
+#define MOVE_PURSUIT 228
+#define MOVE_RAPID_SPIN 229
+#define MOVE_SWEET_SCENT 230
+#define MOVE_IRON_TAIL 231
+#define MOVE_METAL_CLAW 232
+#define MOVE_VITAL_THROW 233
+#define MOVE_MORNING_SUN 234
+#define MOVE_SYNTHESIS 235
+#define MOVE_MOONLIGHT 236
+#define MOVE_HIDDEN_POWER 237
+#define MOVE_CROSS_CHOP 238
+#define MOVE_TWISTER 239
+#define MOVE_RAIN_DANCE 240
+#define MOVE_SUNNY_DAY 241
+#define MOVE_CRUNCH 242
+#define MOVE_MIRROR_COAT 243
+#define MOVE_PSYCH_UP 244
+#define MOVE_EXTREME_SPEED 245
+#define MOVE_ANCIENT_POWER 246
+#define MOVE_SHADOW_BALL 247
+#define MOVE_FUTURE_SIGHT 248
+#define MOVE_ROCK_SMASH 249
+#define MOVE_WHIRLPOOL 250
+#define MOVE_BEAT_UP 251
+#define MOVE_FAKE_OUT 252
+#define MOVE_UPROAR 253
+#define MOVE_STOCKPILE 254
+#define MOVE_SPIT_UP 255
+#define MOVE_SWALLOW 256
+#define MOVE_HEAT_WAVE 257
+#define MOVE_HAIL 258
+#define MOVE_TORMENT 259
+#define MOVE_FLATTER 260
+#define MOVE_WILL_O_WISP 261
+#define MOVE_MEMENTO 262
+#define MOVE_FACADE 263
+#define MOVE_FOCUS_PUNCH 264
+#define MOVE_SMELLING_SALT 265
+#define MOVE_FOLLOW_ME 266
+#define MOVE_NATURE_POWER 267
+#define MOVE_CHARGE 268
+#define MOVE_TAUNT 269
+#define MOVE_HELPING_HAND 270
+#define MOVE_TRICK 271
+#define MOVE_ROLE_PLAY 272
+#define MOVE_WISH 273
+#define MOVE_ASSIST 274
+#define MOVE_INGRAIN 275
+#define MOVE_SUPERPOWER 276
+#define MOVE_MAGIC_COAT 277
+#define MOVE_RECYCLE 278
+#define MOVE_REVENGE 279
+#define MOVE_BRICK_BREAK 280
+#define MOVE_YAWN 281
+#define MOVE_KNOCK_OFF 282
+#define MOVE_ENDEAVOR 283
+#define MOVE_ERUPTION 284
+#define MOVE_SKILL_SWAP 285
+#define MOVE_IMPRISON 286
+#define MOVE_REFRESH 287
+#define MOVE_GRUDGE 288
+#define MOVE_SNATCH 289
+#define MOVE_SECRET_POWER 290
+#define MOVE_DIVE 291
+#define MOVE_ARM_THRUST 292
+#define MOVE_CAMOUFLAGE 293
+#define MOVE_TAIL_GLOW 294
+#define MOVE_LUSTER_PURGE 295
+#define MOVE_MIST_BALL 296
+#define MOVE_FEATHER_DANCE 297
+#define MOVE_TEETER_DANCE 298
+#define MOVE_BLAZE_KICK 299
+#define MOVE_MUD_SPORT 300
+#define MOVE_ICE_BALL 301
+#define MOVE_NEEDLE_ARM 302
+#define MOVE_SLACK_OFF 303
+#define MOVE_HYPER_VOICE 304
+#define MOVE_POISON_FANG 305
+#define MOVE_CRUSH_CLAW 306
+#define MOVE_BLAST_BURN 307
+#define MOVE_HYDRO_CANNON 308
+#define MOVE_METEOR_MASH 309
+#define MOVE_ASTONISH 310
+#define MOVE_WEATHER_BALL 311
+#define MOVE_AROMATHERAPY 312
+#define MOVE_FAKE_TEARS 313
+#define MOVE_AIR_CUTTER 314
+#define MOVE_OVERHEAT 315
+#define MOVE_ODOR_SLEUTH 316
+#define MOVE_ROCK_TOMB 317
+#define MOVE_SILVER_WIND 318
+#define MOVE_METAL_SOUND 319
+#define MOVE_GRASS_WHISTLE 320
+#define MOVE_TICKLE 321
+#define MOVE_COSMIC_POWER 322
+#define MOVE_WATER_SPOUT 323
+#define MOVE_SIGNAL_BEAM 324
+#define MOVE_SHADOW_PUNCH 325
+#define MOVE_EXTRASENSORY 326
+#define MOVE_SKY_UPPERCUT 327
+#define MOVE_SAND_TOMB 328
+#define MOVE_SHEER_COLD 329
+#define MOVE_MUDDY_WATER 330
+#define MOVE_BULLET_SEED 331
+#define MOVE_AERIAL_ACE 332
+#define MOVE_ICICLE_SPEAR 333
+#define MOVE_IRON_DEFENSE 334
+#define MOVE_BLOCK 335
+#define MOVE_HOWL 336
+#define MOVE_DRAGON_CLAW 337
+#define MOVE_FRENZY_PLANT 338
+#define MOVE_BULK_UP 339
+#define MOVE_BOUNCE 340
+#define MOVE_MUD_SHOT 341
+#define MOVE_POISON_TAIL 342
+#define MOVE_COVET 343
+#define MOVE_VOLT_TACKLE 344
+#define MOVE_MAGICAL_LEAF 345
+#define MOVE_WATER_SPORT 346
+#define MOVE_CALM_MIND 347
+#define MOVE_LEAF_BLADE 348
+#define MOVE_DRAGON_DANCE 349
+#define MOVE_ROCK_BLAST 350
+#define MOVE_SHOCK_WAVE 351
+#define MOVE_WATER_PULSE 352
+#define MOVE_DOOM_DESIRE 353
+#define MOVE_PSYCHO_BOOST 354
+
+#define NUM_MOVES 355
+
+#endif // GUARD_CONSTANTS_MOVES_H
diff --git a/include/constants/opponents.h b/include/constants/opponents.h
new file mode 100644
index 000000000..d907153bd
--- /dev/null
+++ b/include/constants/opponents.h
@@ -0,0 +1,699 @@
+#ifndef GUARD_CONSTANTS_OPPONENTS_H
+#define GUARD_CONSTANTS_OPPONENTS_H
+
+#define OPPONENT_NONE 0
+#define OPPONENT_ARCHIE_1 1
+#define OPPONENT_GRUNT_1 2
+#define OPPONENT_GRUNT_2 3
+#define OPPONENT_GRUNT_3 4
+#define OPPONENT_GRUNT_4 5
+#define OPPONENT_GRUNT_5 6
+#define OPPONENT_GRUNT_6 7
+#define OPPONENT_GRUNT_7 8
+#define OPPONENT_GRUNT_8 9
+#define OPPONENT_GRUNT_9 10
+#define OPPONENT_GRUNT_10 11
+#define OPPONENT_GRUNT_11 12
+#define OPPONENT_GRUNT_12 13
+#define OPPONENT_GRUNT_13 14
+#define OPPONENT_GRUNT_14 15
+#define OPPONENT_GRUNT_15 16
+#define OPPONENT_GRUNT_16 17
+#define OPPONENT_GRUNT_17 18
+#define OPPONENT_GRUNT_18 19
+#define OPPONENT_GRUNT_19 20
+#define OPPONENT_GRUNT_20 21
+#define OPPONENT_GRUNT_21 22
+#define OPPONENT_GRUNT_22 23
+#define OPPONENT_GRUNT_23 24
+#define OPPONENT_GRUNT_24 25
+#define OPPONENT_GRUNT_25 26
+#define OPPONENT_GRUNT_26 27
+#define OPPONENT_GRUNT_27 28
+#define OPPONENT_ANONYMOUS_1 29
+#define OPPONENT_MATT_1 30
+#define OPPONENT_MATT_2 31
+#define OPPONENT_SHELLY_1 32
+#define OPPONENT_SHELLY_2 33
+#define OPPONENT_ARCHIE_2 34
+#define OPPONENT_ARCHIE_3 35
+#define OPPONENT_DAISY 36
+#define OPPONENT_ROSE_1 37
+#define OPPONENT_LILY 38
+#define OPPONENT_VIOLET 39
+#define OPPONENT_ROSE_2 40
+#define OPPONENT_ROSE_3 41
+#define OPPONENT_ROSE_4 42
+#define OPPONENT_ROSE_5 43
+#define OPPONENT_DUSTY_1 44
+#define OPPONENT_CHIP 45
+#define OPPONENT_FOSTER 46
+#define OPPONENT_DUSTY_2 47
+#define OPPONENT_DUSTY_3 48
+#define OPPONENT_DUSTY_4 49
+#define OPPONENT_DUSTY_5 50
+#define OPPONENT_GABBY_AND_TY_1 51
+#define OPPONENT_GABBY_AND_TY_2 52
+#define OPPONENT_GABBY_AND_TY_3 53
+#define OPPONENT_GABBY_AND_TY_4 54
+#define OPPONENT_GABBY_AND_TY_5 55
+#define OPPONENT_GABBY_AND_TY_6 56
+#define OPPONENT_LOLA_1 57
+#define OPPONENT_CARMEN 58
+#define OPPONENT_GWEN 59
+#define OPPONENT_LOLA_2 60
+#define OPPONENT_LOLA_3 61
+#define OPPONENT_LOLA_4 62
+#define OPPONENT_LOLA_5 63
+#define OPPONENT_RICKY_1 64
+#define OPPONENT_SIMON 65
+#define OPPONENT_CHARLIE 66
+#define OPPONENT_RICKY_2 67
+#define OPPONENT_RICKY_3 68
+#define OPPONENT_RICKY_4 69
+#define OPPONENT_RICKY_5 70
+#define OPPONENT_RANDALL 71
+#define OPPONENT_PARKER 72
+#define OPPONENT_GEORGE 73
+#define OPPONENT_BERKE 74
+#define OPPONENT_CLYDE 75
+#define OPPONENT_VINCENT 76
+#define OPPONENT_LEROY 77
+#define OPPONENT_WILTON_1 78
+#define OPPONENT_EDGAR 79
+#define OPPONENT_ALBERT 80
+#define OPPONENT_SAMUEL 81
+#define OPPONENT_VITO 82
+#define OPPONENT_OWEN 83
+#define OPPONENT_WILTON_2 84
+#define OPPONENT_WILTON_3 85
+#define OPPONENT_WILTON_4 86
+#define OPPONENT_WILTON_5 87
+#define OPPONENT_WARREN 88
+#define OPPONENT_MARY 89
+#define OPPONENT_LORI 90
+#define OPPONENT_JODY 91
+#define OPPONENT_WENDY 92
+#define OPPONENT_ELAINE 93
+#define OPPONENT_BROOKE_1 94
+#define OPPONENT_JENNIFER 95
+#define OPPONENT_HOPE 96
+#define OPPONENT_SHANNON 97
+#define OPPONENT_MICHELLE 98
+#define OPPONENT_CAROLINE 99
+#define OPPONENT_JULIE 100
+#define OPPONENT_BROOKE_2 101
+#define OPPONENT_BROOKE_3 102
+#define OPPONENT_BROOKE_4 103
+#define OPPONENT_BROOKE_5 104
+#define OPPONENT_PATRICIA 105
+#define OPPONENT_KINDRA 106
+#define OPPONENT_TAMMY 107
+#define OPPONENT_VALERIE_1 108
+#define OPPONENT_TASHA 109
+#define OPPONENT_VALERIE_2 110
+#define OPPONENT_VALERIE_3 111
+#define OPPONENT_VALERIE_4 112
+#define OPPONENT_VALERIE_5 113
+#define OPPONENT_CINDY_1 114
+#define OPPONENT_ANONYMOUS_2 115
+#define OPPONENT_BRIANNA_1 116
+#define OPPONENT_CINDY_2 117
+#define OPPONENT_BRIANNA_2 118
+#define OPPONENT_ANETTE 119
+#define OPPONENT_CINDY_3 120
+#define OPPONENT_CINDY_4 121
+#define OPPONENT_CINDY_5 122
+#define OPPONENT_CINDY_6 123
+#define OPPONENT_MELISSA 124
+#define OPPONENT_SHEILA 125
+#define OPPONENT_SHIRLEY 126
+#define OPPONENT_JESSICA_1 127
+#define OPPONENT_CONNIE 128
+#define OPPONENT_BRIDGET 129
+#define OPPONENT_OLIVIA 130
+#define OPPONENT_TIFFANY 131
+#define OPPONENT_JESSICA_2 132
+#define OPPONENT_JESSICA_3 133
+#define OPPONENT_JESSICA_4 134
+#define OPPONENT_JESSICA_5 135
+#define OPPONENT_WINSTON_1 136
+#define OPPONENT_ANONYMOUS_3 137
+#define OPPONENT_GARRET 138
+#define OPPONENT_WINSTON_2 139
+#define OPPONENT_WINSTON_3 140
+#define OPPONENT_WINSTON_4 141
+#define OPPONENT_WINSTON_5 142
+#define OPPONENT_STEVE_1 143
+#define OPPONENT_CHRIS 144
+#define OPPONENT_MARK 145
+#define OPPONENT_KENN 146
+#define OPPONENT_STEVE_2 147
+#define OPPONENT_STEVE_3 148
+#define OPPONENT_STEVE_4 149
+#define OPPONENT_STEVE_5 150
+#define OPPONENT_LUIS 151
+#define OPPONENT_AUSTIN 152
+#define OPPONENT_DOUGLAS 153
+#define OPPONENT_DARRIN 154
+#define OPPONENT_TONY_1 155
+#define OPPONENT_JEROME 156
+#define OPPONENT_MATTHEW 157
+#define OPPONENT_DAVID 158
+#define OPPONENT_SPENCER 159
+#define OPPONENT_ROLAND 160
+#define OPPONENT_CODY 161
+#define OPPONENT_STAN 162
+#define OPPONENT_BARRY 163
+#define OPPONENT_DEAN 164
+#define OPPONENT_RODNEY 165
+#define OPPONENT_RICHARD 166
+#define OPPONENT_HERMAN 167
+#define OPPONENT_ANONYMOUS_4 168
+#define OPPONENT_GILBERT 169
+#define OPPONENT_FRANKLIN 170
+#define OPPONENT_DANNY 171
+#define OPPONENT_JACK 172
+#define OPPONENT_DUDLEY 173
+#define OPPONENT_CHAD 174
+#define OPPONENT_TONY_2 175
+#define OPPONENT_TONY_3 176
+#define OPPONENT_TONY_4 177
+#define OPPONENT_TONY_5 178
+#define OPPONENT_HIDEKI 179
+#define OPPONENT_HITOSHI 180
+#define OPPONENT_KIYO 181
+#define OPPONENT_KOICHI 182
+#define OPPONENT_NOB_1 183
+#define OPPONENT_NOB_2 184
+#define OPPONENT_NOB_3 185
+#define OPPONENT_NOB_4 186
+#define OPPONENT_NOB_5 187
+#define OPPONENT_YUJI 188
+#define OPPONENT_DAISUKE 189
+#define OPPONENT_ATSUSHI 190
+#define OPPONENT_KIRK 191
+#define OPPONENT_SCOTT 192
+#define OPPONENT_HARVEY 193
+#define OPPONENT_SHAWN 194
+#define OPPONENT_RANDY 195
+#define OPPONENT_DALTON_1 196
+#define OPPONENT_DALTON_2 197
+#define OPPONENT_DALTON_3 198
+#define OPPONENT_DALTON_4 199
+#define OPPONENT_DALTON_5 200
+#define OPPONENT_COLE 201
+#define OPPONENT_FLINT 202
+#define OPPONENT_AXLE 203
+#define OPPONENT_JAKE 204
+#define OPPONENT_ANDY 205
+#define OPPONENT_BERNIE_1 206
+#define OPPONENT_BERNIE_2 207
+#define OPPONENT_BERNIE_3 208
+#define OPPONENT_BERNIE_4 209
+#define OPPONENT_BERNIE_5 210
+#define OPPONENT_DREW 211
+#define OPPONENT_CLIFF 212
+#define OPPONENT_LARRY 213
+#define OPPONENT_SHANE 214
+#define OPPONENT_JUSTIN 215
+#define OPPONENT_ETHAN_1 216
+#define OPPONENT_JEFF 217
+#define OPPONENT_TRAVIS 218
+#define OPPONENT_ETHAN_2 219
+#define OPPONENT_ETHAN_3 220
+#define OPPONENT_ETHAN_4 221
+#define OPPONENT_ETHAN_5 222
+#define OPPONENT_BRENT 223
+#define OPPONENT_DONALD 224
+#define OPPONENT_TAYLOR 225
+#define OPPONENT_BRANDON_1 226
+#define OPPONENT_DEREK 227
+#define OPPONENT_BRANDON_2 228
+#define OPPONENT_BRANDON_3 229
+#define OPPONENT_BRANDON_4 230
+#define OPPONENT_BRANDON_5 231
+#define OPPONENT_EDWARD 232
+#define OPPONENT_PRESTON 233
+#define OPPONENT_VIRGIL 234
+#define OPPONENT_FRITZ 235
+#define OPPONENT_WILLIAM 236
+#define OPPONENT_JOSHUA 237
+#define OPPONENT_CAMERON_1 238
+#define OPPONENT_CAMERON_2 239
+#define OPPONENT_CAMERON_3 240
+#define OPPONENT_CAMERON_4 241
+#define OPPONENT_CAMERON_5 242
+#define OPPONENT_JACLYN 243
+#define OPPONENT_HANNAH 244
+#define OPPONENT_SAMANTHA 245
+#define OPPONENT_MAURA 246
+#define OPPONENT_KAYLA 247
+#define OPPONENT_ALEXIS 248
+#define OPPONENT_JACKI_1 249
+#define OPPONENT_JACKI_2 250
+#define OPPONENT_JACKI_3 251
+#define OPPONENT_JACKI_4 252
+#define OPPONENT_JACKI_5 253
+#define OPPONENT_WALTER_1 254
+#define OPPONENT_TUCKER 255
+#define OPPONENT_THOMAS 256
+#define OPPONENT_WALTER_2 257
+#define OPPONENT_WALTER_3 258
+#define OPPONENT_WALTER_4 259
+#define OPPONENT_WALTER_5 260
+#define OPPONENT_SIDNEY 261
+#define OPPONENT_PHOEBE 262
+#define OPPONENT_GLACIA 263
+#define OPPONENT_DRAKE 264
+#define OPPONENT_ROXANNE 265
+#define OPPONENT_BRAWLY 266
+#define OPPONENT_WATTSON 267
+#define OPPONENT_FLANNERY 268
+#define OPPONENT_NORMAN 269
+#define OPPONENT_WINONA 270
+#define OPPONENT_TATE_AND_LIZA 271
+#define OPPONENT_WALLACE 272
+#define OPPONENT_JERRY_1 273
+#define OPPONENT_TED 274
+#define OPPONENT_PAUL 275
+#define OPPONENT_JERRY_2 276
+#define OPPONENT_JERRY_3 277
+#define OPPONENT_JERRY_4 278
+#define OPPONENT_JERRY_5 279
+#define OPPONENT_KAREN_1 280
+#define OPPONENT_GEORGIA 281
+#define OPPONENT_KAREN_2 282
+#define OPPONENT_KAREN_3 283
+#define OPPONENT_KAREN_4 284
+#define OPPONENT_KAREN_5 285
+#define OPPONENT_KATE_AND_JOY 286
+#define OPPONENT_ANNA_AND_MEG_1 287
+#define OPPONENT_ANNA_AND_MEG_2 288
+#define OPPONENT_ANNA_AND_MEG_3 289
+#define OPPONENT_ANNA_AND_MEG_4 290
+#define OPPONENT_ANNA_AND_MEG_5 291
+#define OPPONENT_VICTOR 292
+#define OPPONENT_MIGUEL_1 293
+#define OPPONENT_COLTON 294
+#define OPPONENT_MIGUEL_2 295
+#define OPPONENT_MIGUEL_3 296
+#define OPPONENT_MIGUEL_4 297
+#define OPPONENT_MIGUEL_5 298
+#define OPPONENT_VICTORIA 299
+#define OPPONENT_VANESSA 300
+#define OPPONENT_MARISSA 301
+#define OPPONENT_ISABEL_1 302
+#define OPPONENT_ISABEL_2 303
+#define OPPONENT_ISABEL_3 304
+#define OPPONENT_ISABEL_4 305
+#define OPPONENT_ISABEL_5 306
+#define OPPONENT_TIMOTHY_1 307
+#define OPPONENT_TIMOTHY_2 308
+#define OPPONENT_TIMOTHY_3 309
+#define OPPONENT_TIMOTHY_4 310
+#define OPPONENT_TIMOTHY_5 311
+#define OPPONENT_VICKY 312
+#define OPPONENT_SHELBY_1 313
+#define OPPONENT_SHELBY_2 314
+#define OPPONENT_SHELBY_3 315
+#define OPPONENT_SHELBY_4 316
+#define OPPONENT_SHELBY_5 317
+#define OPPONENT_CALVIN_1 318
+#define OPPONENT_BILLY 319
+#define OPPONENT_JOSH 320
+#define OPPONENT_TOMMY 321
+#define OPPONENT_JOEY 322
+#define OPPONENT_BEN 323
+#define OPPONENT_ANONYMOUS_5 324
+#define OPPONENT_KEVIN 325
+#define OPPONENT_NEAL 326
+#define OPPONENT_DILLON 327
+#define OPPONENT_CALVIN_2 328
+#define OPPONENT_CALVIN_3 329
+#define OPPONENT_CALVIN_4 330
+#define OPPONENT_CALVIN_5 331
+#define OPPONENT_EDDIE 332
+#define OPPONENT_ALLEN 333
+#define OPPONENT_TIMMY 334
+#define OPPONENT_STEVEN 335
+#define OPPONENT_ANDREW 336
+#define OPPONENT_IVAN 337
+#define OPPONENT_CLAUDE 338
+#define OPPONENT_ELLIOT_1 339
+#define OPPONENT_NED 340
+#define OPPONENT_DALE 341
+#define OPPONENT_NOLAN 342
+#define OPPONENT_BARNY 343
+#define OPPONENT_WADE 344
+#define OPPONENT_CARTER 345
+#define OPPONENT_ELLIOT_2 346
+#define OPPONENT_ELLIOT_3 347
+#define OPPONENT_ELLIOT_4 348
+#define OPPONENT_ELLIOT_5 349
+#define OPPONENT_RONALD 350
+#define OPPONENT_JACOB 351
+#define OPPONENT_ANTHONY 352
+#define OPPONENT_BENJAMIN_1 353
+#define OPPONENT_BENJAMIN_2 354
+#define OPPONENT_BENJAMIN_3 355
+#define OPPONENT_BENJAMIN_4 356
+#define OPPONENT_BENJAMIN_5 357
+#define OPPONENT_ABIGAIL_1 358
+#define OPPONENT_JASMINE 359
+#define OPPONENT_ABIGAIL_2 360
+#define OPPONENT_ABIGAIL_3 361
+#define OPPONENT_ABIGAIL_4 362
+#define OPPONENT_ABIGAIL_5 363
+#define OPPONENT_DYLAN_1 364
+#define OPPONENT_DYLAN_2 365
+#define OPPONENT_DYLAN_3 366
+#define OPPONENT_DYLAN_4 367
+#define OPPONENT_DYLAN_5 368
+#define OPPONENT_MARIA_1 369
+#define OPPONENT_MARIA_2 370
+#define OPPONENT_MARIA_3 371
+#define OPPONENT_MARIA_4 372
+#define OPPONENT_MARIA_5 373
+#define OPPONENT_CALEB 374
+#define OPPONENT_ANONYMOUS_6 375
+#define OPPONENT_ISAIAH_1 376
+#define OPPONENT_ANONYMOUS_7 377
+#define OPPONENT_CHASE 378
+#define OPPONENT_ISAIAH_2 379
+#define OPPONENT_ISAIAH_3 380
+#define OPPONENT_ISAIAH_4 381
+#define OPPONENT_ISAIAH_5 382
+#define OPPONENT_ANONYMOUS_8 383
+#define OPPONENT_CONNOR 384
+#define OPPONENT_ANONYMOUS_9 385
+#define OPPONENT_KATELYN_1 386
+#define OPPONENT_ALLISON 387
+#define OPPONENT_KATELYN_2 388
+#define OPPONENT_KATELYN_3 389
+#define OPPONENT_KATELYN_4 390
+#define OPPONENT_KATELYN_5 391
+#define OPPONENT_NICOLAS_1 392
+#define OPPONENT_NICOLAS_2 393
+#define OPPONENT_NICOLAS_3 394
+#define OPPONENT_NICOLAS_4 395
+#define OPPONENT_NICOLAS_5 396
+#define OPPONENT_AARON 397
+#define OPPONENT_PERRY 398
+#define OPPONENT_HUGH 399
+#define OPPONENT_PHIL 400
+#define OPPONENT_JARED 401
+#define OPPONENT_ANONYMOUS_10 402
+#define OPPONENT_TANNER 403
+#define OPPONENT_WILL 404
+#define OPPONENT_COLIN 405
+#define OPPONENT_ROBERT_1 406
+#define OPPONENT_BENNY 407
+#define OPPONENT_CHESTER 408
+#define OPPONENT_ROBERT_2 409
+#define OPPONENT_ROBERT_3 410
+#define OPPONENT_ROBERT_4 411
+#define OPPONENT_ROBERT_5 412
+#define OPPONENT_ALEX 413
+#define OPPONENT_BECK 414
+#define OPPONENT_YASU 415
+#define OPPONENT_TAKASHI 416
+#define OPPONENT_MAKOTO 417
+#define OPPONENT_HIDEO_1 418
+#define OPPONENT_LAO_1 419
+#define OPPONENT_LUNG 420
+#define OPPONENT_LAO_2 421
+#define OPPONENT_LAO_3 422
+#define OPPONENT_LAO_4 423
+#define OPPONENT_LAO_5 424
+#define OPPONENT_TESSA 425
+#define OPPONENT_LAURA 426
+#define OPPONENT_CYNDY_1 427
+#define OPPONENT_CORA 428
+#define OPPONENT_JILL 429
+#define OPPONENT_CYNDY_2 430
+#define OPPONENT_CYNDY_3 431
+#define OPPONENT_CYNDY_4 432
+#define OPPONENT_CYNDY_5 433
+#define OPPONENT_MADELINE_1 434
+#define OPPONENT_CLARISSA 435
+#define OPPONENT_ANGELICA 436
+#define OPPONENT_MADELINE_2 437
+#define OPPONENT_MADELINE_3 438
+#define OPPONENT_MADELINE_4 439
+#define OPPONENT_MADELINE_5 440
+#define OPPONENT_BEVERLY 441
+#define OPPONENT_DAWN 442
+#define OPPONENT_NICOLE 443
+#define OPPONENT_DENISE 444
+#define OPPONENT_BETH 445
+#define OPPONENT_TARA 446
+#define OPPONENT_MISSY 447
+#define OPPONENT_ALICE 448
+#define OPPONENT_JENNY_1 449
+#define OPPONENT_GRACE 450
+#define OPPONENT_TANYA 451
+#define OPPONENT_SHARON 452
+#define OPPONENT_NIKKI 453
+#define OPPONENT_BRENDA 454
+#define OPPONENT_KATIE 455
+#define OPPONENT_SUSIE 456
+#define OPPONENT_KARA 457
+#define OPPONENT_DANA 458
+#define OPPONENT_ERIN 459
+#define OPPONENT_DEBRA 460
+#define OPPONENT_LINDA 461
+#define OPPONENT_KAYLEE 462
+#define OPPONENT_LAUREL 463
+#define OPPONENT_DARCY 464
+#define OPPONENT_JENNY_2 465
+#define OPPONENT_JENNY_3 466
+#define OPPONENT_JENNY_4 467
+#define OPPONENT_JENNY_5 468
+#define OPPONENT_HEIDI 469
+#define OPPONENT_BECKY 470
+#define OPPONENT_CAROL 471
+#define OPPONENT_NANCY 472
+#define OPPONENT_MARTHA 473
+#define OPPONENT_DIANA_1 474
+#define OPPONENT_NINA 475
+#define OPPONENT_IRENE 476
+#define OPPONENT_DIANA_2 477
+#define OPPONENT_DIANA_3 478
+#define OPPONENT_DIANA_4 479
+#define OPPONENT_DIANA_5 480
+#define OPPONENT_AMY_AND_LIV_1 481
+#define OPPONENT_AMY_AND_LIV_2 482
+#define OPPONENT_GINA_AND_MIA_1 483
+#define OPPONENT_MIU_AND_YUKI 484
+#define OPPONENT_AMY_AND_LIV_3 485
+#define OPPONENT_GINA_AND_MIA_2 486
+#define OPPONENT_AMY_AND_LIV_4 487
+#define OPPONENT_AMY_AND_LIV_5 488
+#define OPPONENT_AMY_AND_LIV_6 489
+#define OPPONENT_HUEY 490
+#define OPPONENT_EDMOND 491
+#define OPPONENT_ERNEST_1 492
+#define OPPONENT_DWAYNE 493
+#define OPPONENT_PHILLIP 494
+#define OPPONENT_LEONARD 495
+#define OPPONENT_DUNCAN 496
+#define OPPONENT_ERNEST_2 497
+#define OPPONENT_ERNEST_3 498
+#define OPPONENT_ERNEST_4 499
+#define OPPONENT_ERNEST_5 500
+#define OPPONENT_ANONYMOUS_11 501
+#define OPPONENT_ANONYMOUS_12 502
+#define OPPONENT_ANONYMOUS_13 503
+#define OPPONENT_SONNY 504
+#define OPPONENT_DONOVAN 505
+#define OPPONENT_GERALD 506
+#define OPPONENT_KELVIN 507
+#define OPPONENT_KODY 508
+#define OPPONENT_TEVIN 509
+#define OPPONENT_DAMON 510
+#define OPPONENT_PABLO 511
+#define OPPONENT_EDWIN_1 512
+#define OPPONENT_HECTOR_1 513
+#define OPPONENT_HECTOR_2 514
+#define OPPONENT_EDWIN_2 515
+#define OPPONENT_EDWIN_3 516
+#define OPPONENT_EDWIN_4 517
+#define OPPONENT_EDWIN_5 518
+#define OPPONENT_WALLY_1 519
+#define OPPONENT_BRENDAN_1 520
+#define OPPONENT_BRENDAN_2 521
+#define OPPONENT_BRENDAN_3 522
+#define OPPONENT_BRENDAN_4 523
+#define OPPONENT_BRENDAN_5 524
+#define OPPONENT_BRENDAN_6 525
+#define OPPONENT_BRENDAN_7 526
+#define OPPONENT_BRENDAN_8 527
+#define OPPONENT_BRENDAN_9 528
+#define OPPONENT_MAY_1 529
+#define OPPONENT_MAY_2 530
+#define OPPONENT_MAY_3 531
+#define OPPONENT_MAY_4 532
+#define OPPONENT_MAY_5 533
+#define OPPONENT_MAY_6 534
+#define OPPONENT_MAY_7 535
+#define OPPONENT_MAY_8 536
+#define OPPONENT_MAY_9 537
+#define OPPONENT_ISAAC_1 538
+#define OPPONENT_RILEY 539
+#define OPPONENT_AIDAN 540
+#define OPPONENT_ISAAC_2 541
+#define OPPONENT_ISAAC_3 542
+#define OPPONENT_ISAAC_4 543
+#define OPPONENT_ISAAC_5 544
+#define OPPONENT_LYDIA_1 545
+#define OPPONENT_ALEXIA 546
+#define OPPONENT_DANIELLE 547
+#define OPPONENT_LYDIA_2 548
+#define OPPONENT_LYDIA_3 549
+#define OPPONENT_LYDIA_4 550
+#define OPPONENT_LYDIA_5 551
+#define OPPONENT_JACKSON_1 552
+#define OPPONENT_CARLOS 553
+#define OPPONENT_SEBASTIAN 554
+#define OPPONENT_JACKSON_2 555
+#define OPPONENT_JACKSON_3 556
+#define OPPONENT_JACKSON_4 557
+#define OPPONENT_JACKSON_5 558
+#define OPPONENT_CATHERINE_1 559
+#define OPPONENT_JENNA 560
+#define OPPONENT_SOPHIA 561
+#define OPPONENT_CATHERINE_2 562
+#define OPPONENT_CATHERINE_3 563
+#define OPPONENT_CATHERINE_4 564
+#define OPPONENT_CATHERINE_5 565
+#define OPPONENT_MAXIE_1 566
+#define OPPONENT_GRUNT_28 567
+#define OPPONENT_GRUNT_29 568
+#define OPPONENT_GRUNT_30 569
+#define OPPONENT_GRUNT_31 570
+#define OPPONENT_GRUNT_32 571
+#define OPPONENT_GRUNT_33 572
+#define OPPONENT_GRUNT_34 573
+#define OPPONENT_GRUNT_35 574
+#define OPPONENT_GRUNT_36 575
+#define OPPONENT_GRUNT_37 576
+#define OPPONENT_GRUNT_38 577
+#define OPPONENT_GRUNT_39 578
+#define OPPONENT_GRUNT_40 579
+#define OPPONENT_GRUNT_41 580
+#define OPPONENT_GRUNT_42 581
+#define OPPONENT_GRUNT_43 582
+#define OPPONENT_GRUNT_44 583
+#define OPPONENT_GRUNT_45 584
+#define OPPONENT_GRUNT_46 585
+#define OPPONENT_GRUNT_47 586
+#define OPPONENT_GRUNT_48 587
+#define OPPONENT_GRUNT_49 588
+#define OPPONENT_GRUNT_50 589
+#define OPPONENT_GRUNT_51 590
+#define OPPONENT_GRUNT_52 591
+#define OPPONENT_GRUNT_53 592
+#define OPPONENT_GRUNT_54 593
+#define OPPONENT_ANONYMOUS_14 594
+#define OPPONENT_ANONYMOUS_15 595
+#define OPPONENT_TABITHA_1 596
+#define OPPONENT_TABITHA_2 597
+#define OPPONENT_ANONYMOUS_16 598
+#define OPPONENT_COURTNEY_1 599
+#define OPPONENT_COURTNEY_2 600
+#define OPPONENT_MAXIE_2 601
+#define OPPONENT_MAXIE_3 602
+#define OPPONENT_TIANA 603
+#define OPPONENT_HALEY_1 604
+#define OPPONENT_JANICE 605
+#define OPPONENT_VIVI 606
+#define OPPONENT_HALEY_2 607
+#define OPPONENT_HALEY_3 608
+#define OPPONENT_HALEY_4 609
+#define OPPONENT_HALEY_5 610
+#define OPPONENT_SALLY 611
+#define OPPONENT_ROBIN 612
+#define OPPONENT_ANDREA 613
+#define OPPONENT_CRISSY 614
+#define OPPONENT_RICK 615
+#define OPPONENT_LYLE 616
+#define OPPONENT_JOSE 617
+#define OPPONENT_DOUG 618
+#define OPPONENT_GREG 619
+#define OPPONENT_KENT 620
+#define OPPONENT_JAMES_1 621
+#define OPPONENT_JAMES_2 622
+#define OPPONENT_JAMES_3 623
+#define OPPONENT_JAMES_4 624
+#define OPPONENT_JAMES_5 625
+#define OPPONENT_BRICE 626
+#define OPPONENT_TRENT_1 627
+#define OPPONENT_LENNY 628
+#define OPPONENT_LUCAS_1 629
+#define OPPONENT_ALAN 630
+#define OPPONENT_CLARK 631
+#define OPPONENT_ERIC 632
+#define OPPONENT_LUCAS_2 633
+#define OPPONENT_MIKE_1 634
+#define OPPONENT_MIKE_2 635
+#define OPPONENT_TRENT_2 636
+#define OPPONENT_TRENT_3 637
+#define OPPONENT_TRENT_4 638
+#define OPPONENT_TRENT_5 639
+#define OPPONENT_DEZ_AND_LUKE 640
+#define OPPONENT_LEA_AND_JED 641
+#define OPPONENT_LOIS_AND_HAL_1 642
+#define OPPONENT_LOIS_AND_HAL_2 643
+#define OPPONENT_LOIS_AND_HAL_3 644
+#define OPPONENT_LOIS_AND_HAL_4 645
+#define OPPONENT_LOIS_AND_HAL_5 646
+#define OPPONENT_JOHANNA 647
+#define OPPONENT_ZANE 648
+#define OPPONENT_VIVIAN 649
+#define OPPONENT_SADIE 650
+#define OPPONENT_HIDEO_2 651
+#define OPPONENT_KEIGO 652
+#define OPPONENT_TSUNAO 653
+#define OPPONENT_TERRELL 654
+#define OPPONENT_KYLEE 655
+#define OPPONENT_WALLY_2 656
+#define OPPONENT_WALLY_3 657
+#define OPPONENT_WALLY_4 658
+#define OPPONENT_WALLY_5 659
+#define OPPONENT_WALLY_6 660
+#define OPPONENT_BRENDAN_10 661
+#define OPPONENT_BRENDAN_11 662
+#define OPPONENT_BRENDAN_12 663
+#define OPPONENT_MAY_10 664
+#define OPPONENT_MAY_11 665
+#define OPPONENT_MAY_12 666
+#define OPPONENT_JONAH 667
+#define OPPONENT_HENRY 668
+#define OPPONENT_ROGER 669
+#define OPPONENT_ALEXA 670
+#define OPPONENT_RUBEN 671
+#define OPPONENT_KOJI 672
+#define OPPONENT_WAYNE 673
+#define OPPONENT_BYRON 674
+#define OPPONENT_REED 675
+#define OPPONENT_TISHA 676
+#define OPPONENT_TORI_AND_TIA 677
+#define OPPONENT_KIM_AND_IRIS 678
+#define OPPONENT_TYRA_AND_IVY 679
+#define OPPONENT_MEL_AND_PAUL 680
+#define OPPONENT_JOHN_AND_JAY_1 681
+#define OPPONENT_JOHN_AND_JAY_2 682
+#define OPPONENT_JOHN_AND_JAY_3 683
+#define OPPONENT_JOHN_AND_JAY_4 684
+#define OPPONENT_JOHN_AND_JAY_5 685
+#define OPPONENT_RELI_AND_IAN 686
+#define OPPONENT_RITA_AND_SAM_1 687
+#define OPPONENT_RITA_AND_SAM_2 688
+#define OPPONENT_RITA_AND_SAM_3 689
+#define OPPONENT_RITA_AND_SAM_4 690
+#define OPPONENT_RITA_AND_SAM_5 691
+#define OPPONENT_LISA_AND_RAY 692
+#define OPPONENT_EUGENE 693
+
+#endif // GUARD_CONSTANTS_OPPONENTS_H
diff --git a/include/constants/secret_bases.h b/include/constants/secret_bases.h
new file mode 100644
index 000000000..0f51054a8
--- /dev/null
+++ b/include/constants/secret_bases.h
@@ -0,0 +1,110 @@
+#ifndef GUARD_CONSTANTS_SECRET_BASES_H
+#define GUARD_CONSTANTS_SECRET_BASES_H
+
+// Each secret base location is assigned an identifier value.
+// The secret base's map is determined by (id / 10). The ones
+// digit is used to differentiate secret bases using the same map.
+// Therefore, each secret base map can be used by up to 10 different
+// secret bases in the game. These ids are 1-based, but there is no
+// apparent reason for that.
+
+#define SECRET_BASE_RED_CAVE1_1 1
+#define SECRET_BASE_RED_CAVE1_2 2
+#define SECRET_BASE_RED_CAVE1_3 3
+
+#define SECRET_BASE_RED_CAVE2_1 11
+#define SECRET_BASE_RED_CAVE2_2 12
+#define SECRET_BASE_RED_CAVE2_3 13
+
+#define SECRET_BASE_RED_CAVE3_1 21
+#define SECRET_BASE_RED_CAVE3_2 22
+#define SECRET_BASE_RED_CAVE3_3 23
+
+#define SECRET_BASE_RED_CAVE4_1 31
+#define SECRET_BASE_RED_CAVE4_2 32
+#define SECRET_BASE_RED_CAVE4_3 33
+
+#define SECRET_BASE_BROWN_CAVE1_1 41
+#define SECRET_BASE_BROWN_CAVE1_2 42
+#define SECRET_BASE_BROWN_CAVE1_3 43
+
+#define SECRET_BASE_BROWN_CAVE2_1 51
+#define SECRET_BASE_BROWN_CAVE2_2 52
+#define SECRET_BASE_BROWN_CAVE2_3 53
+
+#define SECRET_BASE_BROWN_CAVE3_1 61
+#define SECRET_BASE_BROWN_CAVE3_2 62
+#define SECRET_BASE_BROWN_CAVE3_3 63
+
+#define SECRET_BASE_BROWN_CAVE4_1 71
+#define SECRET_BASE_BROWN_CAVE4_2 72
+#define SECRET_BASE_BROWN_CAVE4_3 73
+
+#define SECRET_BASE_BLUE_CAVE1_1 81
+#define SECRET_BASE_BLUE_CAVE1_2 82
+#define SECRET_BASE_BLUE_CAVE1_3 83
+
+#define SECRET_BASE_BLUE_CAVE2_1 91
+#define SECRET_BASE_BLUE_CAVE2_2 92
+#define SECRET_BASE_BLUE_CAVE2_3 93
+
+#define SECRET_BASE_BLUE_CAVE3_1 101
+#define SECRET_BASE_BLUE_CAVE3_2 102
+#define SECRET_BASE_BLUE_CAVE3_3 103
+
+#define SECRET_BASE_BLUE_CAVE4_1 111
+#define SECRET_BASE_BLUE_CAVE4_2 112
+#define SECRET_BASE_BLUE_CAVE4_3 113
+
+#define SECRET_BASE_YELLOW_CAVE1_1 121
+#define SECRET_BASE_YELLOW_CAVE1_2 122
+#define SECRET_BASE_YELLOW_CAVE1_3 123
+
+#define SECRET_BASE_YELLOW_CAVE2_1 131
+#define SECRET_BASE_YELLOW_CAVE2_2 132
+#define SECRET_BASE_YELLOW_CAVE2_3 133
+
+#define SECRET_BASE_YELLOW_CAVE3_1 141
+#define SECRET_BASE_YELLOW_CAVE3_2 142
+#define SECRET_BASE_YELLOW_CAVE3_3 143
+
+#define SECRET_BASE_YELLOW_CAVE4_1 151
+#define SECRET_BASE_YELLOW_CAVE4_2 152
+#define SECRET_BASE_YELLOW_CAVE4_3 153
+
+#define SECRET_BASE_TREE1_1 161
+#define SECRET_BASE_TREE1_2 162
+#define SECRET_BASE_TREE1_3 163
+#define SECRET_BASE_TREE1_4 164
+
+#define SECRET_BASE_TREE2_1 171
+#define SECRET_BASE_TREE2_2 172
+#define SECRET_BASE_TREE2_3 173
+#define SECRET_BASE_TREE2_4 174
+
+#define SECRET_BASE_TREE3_1 181
+#define SECRET_BASE_TREE3_2 182
+#define SECRET_BASE_TREE3_3 183
+
+#define SECRET_BASE_TREE4_1 191
+#define SECRET_BASE_TREE4_2 192
+#define SECRET_BASE_TREE4_3 193
+
+#define SECRET_BASE_SHRUB1_1 201
+#define SECRET_BASE_SHRUB1_2 202
+#define SECRET_BASE_SHRUB1_3 203
+#define SECRET_BASE_SHRUB1_4 204
+
+#define SECRET_BASE_SHRUB2_1 211
+#define SECRET_BASE_SHRUB2_2 212
+#define SECRET_BASE_SHRUB2_3 213
+
+#define SECRET_BASE_SHRUB3_1 221
+#define SECRET_BASE_SHRUB3_2 222
+#define SECRET_BASE_SHRUB3_3 223
+
+#define SECRET_BASE_SHRUB4_1 231
+#define SECRET_BASE_SHRUB4_2 232
+#define SECRET_BASE_SHRUB4_3 233
+
+#endif // GUARD_CONSTANTS_SECRET_BASES_H
diff --git a/include/constants/songs.h b/include/constants/songs.h
new file mode 100644
index 000000000..5225f5899
--- /dev/null
+++ b/include/constants/songs.h
@@ -0,0 +1,373 @@
+#ifndef GUARD_CONSTANTS_SONGS_H
+#define GUARD_CONSTANTS_SONGS_H
+
+#define SE_STOP 0
+#define SE_KAIFUKU 1
+#define SE_PC_LOGON 2
+#define SE_PC_OFF 3
+#define SE_PC_ON 4
+#define SE_SELECT 5
+#define SE_WIN_OPEN 6
+#define SE_WALL_HIT 7
+#define SE_DOOR 8
+#define SE_KAIDAN 9
+#define SE_DANSA 10
+#define SE_JITENSYA 11
+#define SE_KOUKA_L 12
+#define SE_KOUKA_M 13
+#define SE_KOUKA_H 14
+#define SE_BOWA2 15
+#define SE_POKE_DEAD 16
+#define SE_NIGERU 17
+#define SE_JIDO_DOA 18
+#define SE_NAMINORI 19
+#define SE_BAN 20
+#define SE_PIN 21
+#define SE_BOO 22
+#define SE_BOWA 23
+#define SE_JYUNI 24
+#define SE_A 25
+#define SE_I 26
+#define SE_U 27
+#define SE_E 28
+#define SE_O 29
+#define SE_N 30
+#define SE_SEIKAI 31
+#define SE_HAZURE 32
+#define SE_EXP 33
+#define SE_JITE_PYOKO 34
+#define SE_MU_PACHI 35
+#define SE_TK_KASYA 36
+#define SE_FU_ZAKU 37
+#define SE_FU_ZAKU2 38
+#define SE_FU_ZUZUZU 39
+#define SE_RU_GASHIN 40
+#define SE_RU_GASYAN 41
+#define SE_RU_BARI 42
+#define SE_RU_HYUU 43
+#define SE_KI_GASYAN 44
+#define SE_TK_WARPIN 45
+#define SE_TK_WARPOUT 46
+#define SE_TU_SAA 47
+#define SE_HI_TURUN 48
+#define SE_TRACK_MOVE 49
+#define SE_TRACK_STOP 50
+#define SE_TRACK_HAIK 51
+#define SE_TRACK_DOOR 52
+#define SE_MOTER 53
+#define SE_CARD 54
+#define SE_SAVE 55
+#define SE_KON 56
+#define SE_KON2 57
+#define SE_KON3 58
+#define SE_KON4 59
+#define SE_SUIKOMU 60
+#define SE_NAGERU 61
+#define SE_TOY_C 62
+#define SE_TOY_D 63
+#define SE_TOY_E 64
+#define SE_TOY_F 65
+#define SE_TOY_G 66
+#define SE_TOY_A 67
+#define SE_TOY_B 68
+#define SE_TOY_C1 69
+#define SE_MIZU 70
+#define SE_HASHI 71
+#define SE_DAUGI 72
+#define SE_PINPON 73
+#define SE_FUUSEN1 74
+#define SE_FUUSEN2 75
+#define SE_FUUSEN3 76
+#define SE_TOY_KABE 77
+#define SE_TOY_DANGO 78
+#define SE_DOKU 79
+#define SE_ESUKA 80
+#define SE_T_AME 81
+#define SE_T_AME_E 82
+#define SE_T_OOAME 83
+#define SE_T_OOAME_E 84
+#define SE_T_KOAME 85
+#define SE_T_KOAME_E 86
+#define SE_T_KAMI 87
+#define SE_T_KAMI2 88
+#define SE_ELEBETA 89
+#define SE_HINSI 90
+#define SE_EXPMAX 91
+#define SE_TAMAKORO 92
+#define SE_TAMAKORO_E 93
+#define SE_BASABASA 94
+#define SE_REGI 95
+#define SE_C_GAJI 96
+#define SE_C_MAKU_U 97
+#define SE_C_MAKU_D 98
+#define SE_C_PASI 99
+#define SE_C_SYU 100
+#define SE_C_PIKON 101
+#define SE_REAPOKE 102
+#define SE_OP_BASYU 103
+#define SE_BT_START 104
+#define SE_DENDOU 105
+#define SE_JIHANKI 106
+#define SE_TAMA 107
+#define SE_Z_SCROLL 108
+#define SE_Z_PAGE 109
+#define SE_PN_ON 110
+#define SE_PN_OFF 111
+#define SE_Z_SEARCH 112
+#define SE_TAMAGO 113
+#define SE_TB_START 114
+#define SE_TB_KON 115
+#define SE_TB_KARA 116
+#define SE_BIDORO 117
+#define SE_W085 118
+#define SE_W085B 119
+#define SE_W231 120
+#define SE_W171 121
+#define SE_W233 122
+#define SE_W233B 123
+#define SE_W145 124
+#define SE_W145B 125
+#define SE_W145C 126
+#define SE_W240 127
+#define SE_W015 128
+#define SE_W081 129
+#define SE_W081B 130
+#define SE_W088 131
+#define SE_W016 132
+#define SE_W016B 133
+#define SE_W003 134
+#define SE_W104 135
+#define SE_W013 136
+#define SE_W196 137
+#define SE_W086 138
+#define SE_W004 139
+#define SE_W025 140
+#define SE_W025B 141
+#define SE_W152 142
+#define SE_W026 143
+#define SE_W172 144
+#define SE_W172B 145
+#define SE_W053 146
+#define SE_W007 147
+#define SE_W092 148
+#define SE_W221 149
+#define SE_W221B 150
+#define SE_W052 151
+#define SE_W036 152
+#define SE_W059 153
+#define SE_W059B 154
+#define SE_W010 155
+#define SE_W011 156
+#define SE_W017 157
+#define SE_W019 158
+#define SE_W028 159
+#define SE_W013B 160
+#define SE_W044 161
+#define SE_W029 162
+#define SE_W057 163
+#define SE_W056 164
+#define SE_W250 165
+#define SE_W030 166
+#define SE_W039 167
+#define SE_W054 168
+#define SE_W077 169
+#define SE_W020 170
+#define SE_W082 171
+#define SE_W047 172
+#define SE_W195 173
+#define SE_W006 174
+#define SE_W091 175
+#define SE_W146 176
+#define SE_W120 177
+#define SE_W153 178
+#define SE_W071B 179
+#define SE_W071 180
+#define SE_W103 181
+#define SE_W062 182
+#define SE_W062B 183
+#define SE_W048 184
+#define SE_W187 185
+#define SE_W118 186
+#define SE_W155 187
+#define SE_W122 188
+#define SE_W060 189
+#define SE_W185 190
+#define SE_W014 191
+#define SE_W043 192
+#define SE_W207 193
+#define SE_W207B 194
+#define SE_W215 195
+#define SE_W109 196
+#define SE_W173 197
+#define SE_W280 198
+#define SE_W202 199
+#define SE_W060B 200
+#define SE_W076 201
+#define SE_W080 202
+#define SE_W100 203
+#define SE_W107 204
+#define SE_W166 205
+#define SE_W129 206
+#define SE_W115 207
+#define SE_W112 208
+#define SE_W197 209
+#define SE_W199 210
+#define SE_W236 211
+#define SE_W204 212
+#define SE_W268 213
+#define SE_W070 214
+#define SE_W063 215
+#define SE_W127 216
+#define SE_W179 217
+#define SE_W151 218
+#define SE_W201 219
+#define SE_W161 220
+#define SE_W161B 221
+#define SE_W227 222
+#define SE_W227B 223
+#define SE_W226 224
+#define SE_W208 225
+#define SE_W213 226
+#define SE_W213B 227
+#define SE_W234 228
+#define SE_W260 229
+#define SE_W328 230
+#define SE_W320 231
+#define SE_W255 232
+#define SE_W291 233
+#define SE_W089 234
+#define SE_W239 235
+#define SE_W230 236
+#define SE_W281 237
+#define SE_W327 238
+#define SE_W287 239
+#define SE_W257 240
+#define SE_W253 241
+#define SE_W258 242
+#define SE_W322 243
+#define SE_W298 244
+#define SE_W287B 245
+#define SE_W114 246
+#define SE_W063B 247
+#define BGM_STOP 349
+#define BGM_TETSUJI 350
+#define BGM_FIELD13 351
+#define BGM_KACHI22 352
+#define BGM_KACHI2 353
+#define BGM_KACHI3 354
+#define BGM_KACHI5 355
+#define BGM_PCC 356
+#define BGM_NIBI 357
+#define BGM_SUIKUN 358
+#define BGM_DOORO1 359
+#define BGM_DOORO_X1 360
+#define BGM_DOORO_X3 361
+#define BGM_MACHI_S2 362
+#define BGM_MACHI_S4 363
+#define BGM_GIM 364
+#define BGM_NAMINORI 365
+#define BGM_DAN01 366
+#define BGM_FANFA1 367
+#define BGM_ME_ASA 368
+#define BGM_ME_BACHI 369
+#define BGM_FANFA4 370
+#define BGM_FANFA5 371
+#define BGM_ME_WAZA 372
+#define BGM_BIJYUTU 373
+#define BGM_DOORO_X4 374
+#define BGM_FUNE_KAN 375
+#define BGM_ME_SHINKA 376
+#define BGM_SHINKA 377
+#define BGM_ME_WASURE 378
+#define BGM_SYOUJOEYE 379
+#define BGM_BOYEYE 380
+#define BGM_DAN02 381
+#define BGM_MACHI_S3 382
+#define BGM_ODAMAKI 383
+#define BGM_B_TOWER 384
+#define BGM_SWIMEYE 385
+#define BGM_DAN03 386
+#define BGM_ME_KINOMI 387
+#define BGM_ME_TAMA 388
+#define BGM_ME_B_BIG 389
+#define BGM_ME_B_SMALL 390
+#define BGM_ME_ZANNEN 391
+#define BGM_BD_TIME 392
+#define BGM_TEST1 393
+#define BGM_TEST2 394
+#define BGM_TEST3 395
+#define BGM_TEST4 396
+#define BGM_TEST 397
+#define BGM_GOMACHI0 398
+#define BGM_GOTOWN 399
+#define BGM_POKECEN 400
+#define BGM_NEXTROAD 401
+#define BGM_GRANROAD 402
+#define BGM_CYCLING 403
+#define BGM_FRIENDLY 404
+#define BGM_MISHIRO 405
+#define BGM_TOZAN 406
+#define BGM_GIRLEYE 407
+#define BGM_MINAMO 408
+#define BGM_ASHROAD 409
+#define BGM_EVENT0 410
+#define BGM_DEEPDEEP 411
+#define BGM_KACHI1 412
+#define BGM_TITLE3 413
+#define BGM_DEMO1 414
+#define BGM_GIRL_SUP 415
+#define BGM_HAGESHII 416
+#define BGM_KAKKOII 417
+#define BGM_KAZANBAI 418
+#define BGM_AQA_0 419
+#define BGM_TSURETEK 420
+#define BGM_BOY_SUP 421
+#define BGM_RAINBOW 422
+#define BGM_AYASII 423
+#define BGM_KACHI4 424
+#define BGM_ROPEWAY 425
+#define BGM_CASINO 426
+#define BGM_HIGHTOWN 427
+#define BGM_SAFARI 428
+#define BGM_C_ROAD 429
+#define BGM_AJITO 430
+#define BGM_M_BOAT 431
+#define BGM_M_DUNGON 432
+#define BGM_FINECITY 433
+#define BGM_MACHUPI 434
+#define BGM_P_SCHOOL 435
+#define BGM_DENDOU 436
+#define BGM_TONEKUSA 437
+#define BGM_MABOROSI 438
+#define BGM_CON_FAN 439
+#define BGM_CONTEST0 440
+#define BGM_MGM0 441
+#define BGM_T_BATTLE 442
+#define BGM_OOAME 443
+#define BGM_HIDERI 444
+#define BGM_RUNECITY 445
+#define BGM_CON_K 446
+#define BGM_EIKOU_R 447
+#define BGM_KARAKURI 448
+#define BGM_HUTAGO 449
+#define BGM_SITENNOU 450
+#define BGM_YAMA_EYE 451
+#define BGM_CONLOBBY 452
+#define BGM_INTER_V 453
+#define BGM_DAIGO 454
+#define BGM_THANKFOR 455
+#define BGM_END 456
+#define BGM_BATTLE27 457
+#define BGM_BATTLE31 458
+#define BGM_BATTLE20 459
+#define BGM_BATTLE32 460
+#define BGM_BATTLE33 461
+#define BGM_BATTLE36 462
+#define BGM_BATTLE34 463
+#define BGM_BATTLE35 464
+#define BGM_BATTLE38 465
+#define BGM_BATTLE30 466
+
+#define BGM_ROUTE_118 0x7FFF // What is this for?
+
+#endif // GUARD_CONSTANTS_SONGS_H
diff --git a/include/constants/species.h b/include/constants/species.h
new file mode 100644
index 000000000..f698ada14
--- /dev/null
+++ b/include/constants/species.h
@@ -0,0 +1,450 @@
+#ifndef GUARD_CONSTANTS_SPECIES_H
+#define GUARD_CONSTANTS_SPECIES_H
+
+#define SPECIES_NONE 0
+#define SPECIES_BULBASAUR 1
+#define SPECIES_IVYSAUR 2
+#define SPECIES_VENUSAUR 3
+#define SPECIES_CHARMANDER 4
+#define SPECIES_CHARMELEON 5
+#define SPECIES_CHARIZARD 6
+#define SPECIES_SQUIRTLE 7
+#define SPECIES_WARTORTLE 8
+#define SPECIES_BLASTOISE 9
+#define SPECIES_CATERPIE 10
+#define SPECIES_METAPOD 11
+#define SPECIES_BUTTERFREE 12
+#define SPECIES_WEEDLE 13
+#define SPECIES_KAKUNA 14
+#define SPECIES_BEEDRILL 15
+#define SPECIES_PIDGEY 16
+#define SPECIES_PIDGEOTTO 17
+#define SPECIES_PIDGEOT 18
+#define SPECIES_RATTATA 19
+#define SPECIES_RATICATE 20
+#define SPECIES_SPEAROW 21
+#define SPECIES_FEAROW 22
+#define SPECIES_EKANS 23
+#define SPECIES_ARBOK 24
+#define SPECIES_PIKACHU 25
+#define SPECIES_RAICHU 26
+#define SPECIES_SANDSHREW 27
+#define SPECIES_SANDSLASH 28
+#define SPECIES_NIDORAN_F 29
+#define SPECIES_NIDORINA 30
+#define SPECIES_NIDOQUEEN 31
+#define SPECIES_NIDORAN_M 32
+#define SPECIES_NIDORINO 33
+#define SPECIES_NIDOKING 34
+#define SPECIES_CLEFAIRY 35
+#define SPECIES_CLEFABLE 36
+#define SPECIES_VULPIX 37
+#define SPECIES_NINETALES 38
+#define SPECIES_JIGGLYPUFF 39
+#define SPECIES_WIGGLYTUFF 40
+#define SPECIES_ZUBAT 41
+#define SPECIES_GOLBAT 42
+#define SPECIES_ODDISH 43
+#define SPECIES_GLOOM 44
+#define SPECIES_VILEPLUME 45
+#define SPECIES_PARAS 46
+#define SPECIES_PARASECT 47
+#define SPECIES_VENONAT 48
+#define SPECIES_VENOMOTH 49
+#define SPECIES_DIGLETT 50
+#define SPECIES_DUGTRIO 51
+#define SPECIES_MEOWTH 52
+#define SPECIES_PERSIAN 53
+#define SPECIES_PSYDUCK 54
+#define SPECIES_GOLDUCK 55
+#define SPECIES_MANKEY 56
+#define SPECIES_PRIMEAPE 57
+#define SPECIES_GROWLITHE 58
+#define SPECIES_ARCANINE 59
+#define SPECIES_POLIWAG 60
+#define SPECIES_POLIWHIRL 61
+#define SPECIES_POLIWRATH 62
+#define SPECIES_ABRA 63
+#define SPECIES_KADABRA 64
+#define SPECIES_ALAKAZAM 65
+#define SPECIES_MACHOP 66
+#define SPECIES_MACHOKE 67
+#define SPECIES_MACHAMP 68
+#define SPECIES_BELLSPROUT 69
+#define SPECIES_WEEPINBELL 70
+#define SPECIES_VICTREEBEL 71
+#define SPECIES_TENTACOOL 72
+#define SPECIES_TENTACRUEL 73
+#define SPECIES_GEODUDE 74
+#define SPECIES_GRAVELER 75
+#define SPECIES_GOLEM 76
+#define SPECIES_PONYTA 77
+#define SPECIES_RAPIDASH 78
+#define SPECIES_SLOWPOKE 79
+#define SPECIES_SLOWBRO 80
+#define SPECIES_MAGNEMITE 81
+#define SPECIES_MAGNETON 82
+#define SPECIES_FARFETCHD 83
+#define SPECIES_DODUO 84
+#define SPECIES_DODRIO 85
+#define SPECIES_SEEL 86
+#define SPECIES_DEWGONG 87
+#define SPECIES_GRIMER 88
+#define SPECIES_MUK 89
+#define SPECIES_SHELLDER 90
+#define SPECIES_CLOYSTER 91
+#define SPECIES_GASTLY 92
+#define SPECIES_HAUNTER 93
+#define SPECIES_GENGAR 94
+#define SPECIES_ONIX 95
+#define SPECIES_DROWZEE 96
+#define SPECIES_HYPNO 97
+#define SPECIES_KRABBY 98
+#define SPECIES_KINGLER 99
+#define SPECIES_VOLTORB 100
+#define SPECIES_ELECTRODE 101
+#define SPECIES_EXEGGCUTE 102
+#define SPECIES_EXEGGUTOR 103
+#define SPECIES_CUBONE 104
+#define SPECIES_MAROWAK 105
+#define SPECIES_HITMONLEE 106
+#define SPECIES_HITMONCHAN 107
+#define SPECIES_LICKITUNG 108
+#define SPECIES_KOFFING 109
+#define SPECIES_WEEZING 110
+#define SPECIES_RHYHORN 111
+#define SPECIES_RHYDON 112
+#define SPECIES_CHANSEY 113
+#define SPECIES_TANGELA 114
+#define SPECIES_KANGASKHAN 115
+#define SPECIES_HORSEA 116
+#define SPECIES_SEADRA 117
+#define SPECIES_GOLDEEN 118
+#define SPECIES_SEAKING 119
+#define SPECIES_STARYU 120
+#define SPECIES_STARMIE 121
+#define SPECIES_MR_MIME 122
+#define SPECIES_SCYTHER 123
+#define SPECIES_JYNX 124
+#define SPECIES_ELECTABUZZ 125
+#define SPECIES_MAGMAR 126
+#define SPECIES_PINSIR 127
+#define SPECIES_TAUROS 128
+#define SPECIES_MAGIKARP 129
+#define SPECIES_GYARADOS 130
+#define SPECIES_LAPRAS 131
+#define SPECIES_DITTO 132
+#define SPECIES_EEVEE 133
+#define SPECIES_VAPOREON 134
+#define SPECIES_JOLTEON 135
+#define SPECIES_FLAREON 136
+#define SPECIES_PORYGON 137
+#define SPECIES_OMANYTE 138
+#define SPECIES_OMASTAR 139
+#define SPECIES_KABUTO 140
+#define SPECIES_KABUTOPS 141
+#define SPECIES_AERODACTYL 142
+#define SPECIES_SNORLAX 143
+#define SPECIES_ARTICUNO 144
+#define SPECIES_ZAPDOS 145
+#define SPECIES_MOLTRES 146
+#define SPECIES_DRATINI 147
+#define SPECIES_DRAGONAIR 148
+#define SPECIES_DRAGONITE 149
+#define SPECIES_MEWTWO 150
+#define SPECIES_MEW 151
+#define SPECIES_CHIKORITA 152
+#define SPECIES_BAYLEEF 153
+#define SPECIES_MEGANIUM 154
+#define SPECIES_CYNDAQUIL 155
+#define SPECIES_QUILAVA 156
+#define SPECIES_TYPHLOSION 157
+#define SPECIES_TOTODILE 158
+#define SPECIES_CROCONAW 159
+#define SPECIES_FERALIGATR 160
+#define SPECIES_SENTRET 161
+#define SPECIES_FURRET 162
+#define SPECIES_HOOTHOOT 163
+#define SPECIES_NOCTOWL 164
+#define SPECIES_LEDYBA 165
+#define SPECIES_LEDIAN 166
+#define SPECIES_SPINARAK 167
+#define SPECIES_ARIADOS 168
+#define SPECIES_CROBAT 169
+#define SPECIES_CHINCHOU 170
+#define SPECIES_LANTURN 171
+#define SPECIES_PICHU 172
+#define SPECIES_CLEFFA 173
+#define SPECIES_IGGLYBUFF 174
+#define SPECIES_TOGEPI 175
+#define SPECIES_TOGETIC 176
+#define SPECIES_NATU 177
+#define SPECIES_XATU 178
+#define SPECIES_MAREEP 179
+#define SPECIES_FLAAFFY 180
+#define SPECIES_AMPHAROS 181
+#define SPECIES_BELLOSSOM 182
+#define SPECIES_MARILL 183
+#define SPECIES_AZUMARILL 184
+#define SPECIES_SUDOWOODO 185
+#define SPECIES_POLITOED 186
+#define SPECIES_HOPPIP 187
+#define SPECIES_SKIPLOOM 188
+#define SPECIES_JUMPLUFF 189
+#define SPECIES_AIPOM 190
+#define SPECIES_SUNKERN 191
+#define SPECIES_SUNFLORA 192
+#define SPECIES_YANMA 193
+#define SPECIES_WOOPER 194
+#define SPECIES_QUAGSIRE 195
+#define SPECIES_ESPEON 196
+#define SPECIES_UMBREON 197
+#define SPECIES_MURKROW 198
+#define SPECIES_SLOWKING 199
+#define SPECIES_MISDREAVUS 200
+#define SPECIES_UNOWN 201
+#define SPECIES_WOBBUFFET 202
+#define SPECIES_GIRAFARIG 203
+#define SPECIES_PINECO 204
+#define SPECIES_FORRETRESS 205
+#define SPECIES_DUNSPARCE 206
+#define SPECIES_GLIGAR 207
+#define SPECIES_STEELIX 208
+#define SPECIES_SNUBBULL 209
+#define SPECIES_GRANBULL 210
+#define SPECIES_QWILFISH 211
+#define SPECIES_SCIZOR 212
+#define SPECIES_SHUCKLE 213
+#define SPECIES_HERACROSS 214
+#define SPECIES_SNEASEL 215
+#define SPECIES_TEDDIURSA 216
+#define SPECIES_URSARING 217
+#define SPECIES_SLUGMA 218
+#define SPECIES_MAGCARGO 219
+#define SPECIES_SWINUB 220
+#define SPECIES_PILOSWINE 221
+#define SPECIES_CORSOLA 222
+#define SPECIES_REMORAID 223
+#define SPECIES_OCTILLERY 224
+#define SPECIES_DELIBIRD 225
+#define SPECIES_MANTINE 226
+#define SPECIES_SKARMORY 227
+#define SPECIES_HOUNDOUR 228
+#define SPECIES_HOUNDOOM 229
+#define SPECIES_KINGDRA 230
+#define SPECIES_PHANPY 231
+#define SPECIES_DONPHAN 232
+#define SPECIES_PORYGON2 233
+#define SPECIES_STANTLER 234
+#define SPECIES_SMEARGLE 235
+#define SPECIES_TYROGUE 236
+#define SPECIES_HITMONTOP 237
+#define SPECIES_SMOOCHUM 238
+#define SPECIES_ELEKID 239
+#define SPECIES_MAGBY 240
+#define SPECIES_MILTANK 241
+#define SPECIES_BLISSEY 242
+#define SPECIES_RAIKOU 243
+#define SPECIES_ENTEI 244
+#define SPECIES_SUICUNE 245
+#define SPECIES_LARVITAR 246
+#define SPECIES_PUPITAR 247
+#define SPECIES_TYRANITAR 248
+#define SPECIES_LUGIA 249
+#define SPECIES_HO_OH 250
+#define SPECIES_CELEBI 251
+
+#define SPECIES_OLD_UNOWN_B 252
+#define SPECIES_OLD_UNOWN_C 253
+#define SPECIES_OLD_UNOWN_D 254
+#define SPECIES_OLD_UNOWN_E 255
+#define SPECIES_OLD_UNOWN_F 256
+#define SPECIES_OLD_UNOWN_G 257
+#define SPECIES_OLD_UNOWN_H 258
+#define SPECIES_OLD_UNOWN_I 259
+#define SPECIES_OLD_UNOWN_J 260
+#define SPECIES_OLD_UNOWN_K 261
+#define SPECIES_OLD_UNOWN_L 262
+#define SPECIES_OLD_UNOWN_M 263
+#define SPECIES_OLD_UNOWN_N 264
+#define SPECIES_OLD_UNOWN_O 265
+#define SPECIES_OLD_UNOWN_P 266
+#define SPECIES_OLD_UNOWN_Q 267
+#define SPECIES_OLD_UNOWN_R 268
+#define SPECIES_OLD_UNOWN_S 269
+#define SPECIES_OLD_UNOWN_T 270
+#define SPECIES_OLD_UNOWN_U 271
+#define SPECIES_OLD_UNOWN_V 272
+#define SPECIES_OLD_UNOWN_W 273
+#define SPECIES_OLD_UNOWN_X 274
+#define SPECIES_OLD_UNOWN_Y 275
+#define SPECIES_OLD_UNOWN_Z 276
+
+#define SPECIES_TREECKO 277
+#define SPECIES_GROVYLE 278
+#define SPECIES_SCEPTILE 279
+#define SPECIES_TORCHIC 280
+#define SPECIES_COMBUSKEN 281
+#define SPECIES_BLAZIKEN 282
+#define SPECIES_MUDKIP 283
+#define SPECIES_MARSHTOMP 284
+#define SPECIES_SWAMPERT 285
+#define SPECIES_POOCHYENA 286
+#define SPECIES_MIGHTYENA 287
+#define SPECIES_ZIGZAGOON 288
+#define SPECIES_LINOONE 289
+#define SPECIES_WURMPLE 290
+#define SPECIES_SILCOON 291
+#define SPECIES_BEAUTIFLY 292
+#define SPECIES_CASCOON 293
+#define SPECIES_DUSTOX 294
+#define SPECIES_LOTAD 295
+#define SPECIES_LOMBRE 296
+#define SPECIES_LUDICOLO 297
+#define SPECIES_SEEDOT 298
+#define SPECIES_NUZLEAF 299
+#define SPECIES_SHIFTRY 300
+#define SPECIES_NINCADA 301
+#define SPECIES_NINJASK 302
+#define SPECIES_SHEDINJA 303
+#define SPECIES_TAILLOW 304
+#define SPECIES_SWELLOW 305
+#define SPECIES_SHROOMISH 306
+#define SPECIES_BRELOOM 307
+#define SPECIES_SPINDA 308
+#define SPECIES_WINGULL 309
+#define SPECIES_PELIPPER 310
+#define SPECIES_SURSKIT 311
+#define SPECIES_MASQUERAIN 312
+#define SPECIES_WAILMER 313
+#define SPECIES_WAILORD 314
+#define SPECIES_SKITTY 315
+#define SPECIES_DELCATTY 316
+#define SPECIES_KECLEON 317
+#define SPECIES_BALTOY 318
+#define SPECIES_CLAYDOL 319
+#define SPECIES_NOSEPASS 320
+#define SPECIES_TORKOAL 321
+#define SPECIES_SABLEYE 322
+#define SPECIES_BARBOACH 323
+#define SPECIES_WHISCASH 324
+#define SPECIES_LUVDISC 325
+#define SPECIES_CORPHISH 326
+#define SPECIES_CRAWDAUNT 327
+#define SPECIES_FEEBAS 328
+#define SPECIES_MILOTIC 329
+#define SPECIES_CARVANHA 330
+#define SPECIES_SHARPEDO 331
+#define SPECIES_TRAPINCH 332
+#define SPECIES_VIBRAVA 333
+#define SPECIES_FLYGON 334
+#define SPECIES_MAKUHITA 335
+#define SPECIES_HARIYAMA 336
+#define SPECIES_ELECTRIKE 337
+#define SPECIES_MANECTRIC 338
+#define SPECIES_NUMEL 339
+#define SPECIES_CAMERUPT 340
+#define SPECIES_SPHEAL 341
+#define SPECIES_SEALEO 342
+#define SPECIES_WALREIN 343
+#define SPECIES_CACNEA 344
+#define SPECIES_CACTURNE 345
+#define SPECIES_SNORUNT 346
+#define SPECIES_GLALIE 347
+#define SPECIES_LUNATONE 348
+#define SPECIES_SOLROCK 349
+#define SPECIES_AZURILL 350
+#define SPECIES_SPOINK 351
+#define SPECIES_GRUMPIG 352
+#define SPECIES_PLUSLE 353
+#define SPECIES_MINUN 354
+#define SPECIES_MAWILE 355
+#define SPECIES_MEDITITE 356
+#define SPECIES_MEDICHAM 357
+#define SPECIES_SWABLU 358
+#define SPECIES_ALTARIA 359
+#define SPECIES_WYNAUT 360
+#define SPECIES_DUSKULL 361
+#define SPECIES_DUSCLOPS 362
+#define SPECIES_ROSELIA 363
+#define SPECIES_SLAKOTH 364
+#define SPECIES_VIGOROTH 365
+#define SPECIES_SLAKING 366
+#define SPECIES_GULPIN 367
+#define SPECIES_SWALOT 368
+#define SPECIES_TROPIUS 369
+#define SPECIES_WHISMUR 370
+#define SPECIES_LOUDRED 371
+#define SPECIES_EXPLOUD 372
+#define SPECIES_CLAMPERL 373
+#define SPECIES_HUNTAIL 374
+#define SPECIES_GOREBYSS 375
+#define SPECIES_ABSOL 376
+#define SPECIES_SHUPPET 377
+#define SPECIES_BANETTE 378
+#define SPECIES_SEVIPER 379
+#define SPECIES_ZANGOOSE 380
+#define SPECIES_RELICANTH 381
+#define SPECIES_ARON 382
+#define SPECIES_LAIRON 383
+#define SPECIES_AGGRON 384
+#define SPECIES_CASTFORM 385
+#define SPECIES_VOLBEAT 386
+#define SPECIES_ILLUMISE 387
+#define SPECIES_LILEEP 388
+#define SPECIES_CRADILY 389
+#define SPECIES_ANORITH 390
+#define SPECIES_ARMALDO 391
+#define SPECIES_RALTS 392
+#define SPECIES_KIRLIA 393
+#define SPECIES_GARDEVOIR 394
+#define SPECIES_BAGON 395
+#define SPECIES_SHELGON 396
+#define SPECIES_SALAMENCE 397
+#define SPECIES_BELDUM 398
+#define SPECIES_METANG 399
+#define SPECIES_METAGROSS 400
+#define SPECIES_REGIROCK 401
+#define SPECIES_REGICE 402
+#define SPECIES_REGISTEEL 403
+#define SPECIES_KYOGRE 404
+#define SPECIES_GROUDON 405
+#define SPECIES_RAYQUAZA 406
+#define SPECIES_LATIAS 407
+#define SPECIES_LATIOS 408
+#define SPECIES_JIRACHI 409
+#define SPECIES_DEOXYS 410
+#define SPECIES_CHIMECHO 411
+#define SPECIES_EGG 412
+
+#define SPECIES_UNOWN_B 413
+#define SPECIES_UNOWN_C 414
+#define SPECIES_UNOWN_D 415
+#define SPECIES_UNOWN_E 416
+#define SPECIES_UNOWN_F 417
+#define SPECIES_UNOWN_G 418
+#define SPECIES_UNOWN_H 419
+#define SPECIES_UNOWN_I 420
+#define SPECIES_UNOWN_J 421
+#define SPECIES_UNOWN_K 422
+#define SPECIES_UNOWN_L 423
+#define SPECIES_UNOWN_M 424
+#define SPECIES_UNOWN_N 425
+#define SPECIES_UNOWN_O 426
+#define SPECIES_UNOWN_P 427
+#define SPECIES_UNOWN_Q 428
+#define SPECIES_UNOWN_R 429
+#define SPECIES_UNOWN_S 430
+#define SPECIES_UNOWN_T 431
+#define SPECIES_UNOWN_U 432
+#define SPECIES_UNOWN_V 433
+#define SPECIES_UNOWN_W 434
+#define SPECIES_UNOWN_X 435
+#define SPECIES_UNOWN_Y 436
+#define SPECIES_UNOWN_Z 437
+#define SPECIES_UNOWN_EMARK 438
+#define SPECIES_UNOWN_QMARK 439
+
+#define NUM_SPECIES SPECIES_EGG
+
+#endif // GUARD_CONSTANTS_SPECIES_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
new file mode 100644
index 000000000..682d45003
--- /dev/null
+++ b/include/constants/vars.h
@@ -0,0 +1,196 @@
+#ifndef GUARD_CONSTANTS_VARS_H
+#define GUARD_CONSTANTS_VARS_H
+
+#define VAR_0x3F20 0x3F20
+
+#define VARS_START 0x4000
+
+// temporary vars
+// The first 0x10 vars are are temporary--they are cleared every time a map is loaded.
+#define VAR_TEMP_0 0x4000
+#define VAR_TEMP_1 0x4001
+#define VAR_TEMP_2 0x4002
+#define VAR_TEMP_3 0x4003
+#define VAR_TEMP_4 0x4004
+#define VAR_TEMP_5 0x4005
+#define VAR_TEMP_6 0x4006
+#define VAR_TEMP_7 0x4007
+#define VAR_TEMP_8 0x4008
+#define VAR_TEMP_9 0x4009
+#define VAR_TEMP_A 0x400A
+#define VAR_TEMP_B 0x400B
+#define VAR_TEMP_C 0x400C
+#define VAR_TEMP_D 0x400D
+#define VAR_TEMP_E 0x400E
+#define VAR_TEMP_F 0x400F
+
+// object gfx id vars
+// These 0x10 vars are used to dynamically control a map object's sprite.
+// For example, the rival's sprite id is dynamically set based on the player's gender.
+// See VarGetFieldObjectGraphicsId().
+#define VAR_OBJ_GFX_ID_0 0x4010
+#define VAR_OBJ_GFX_ID_1 0x4011
+#define VAR_OBJ_GFX_ID_2 0x4012
+#define VAR_OBJ_GFX_ID_3 0x4013
+#define VAR_OBJ_GFX_ID_4 0x4014
+#define VAR_OBJ_GFX_ID_5 0x4015
+#define VAR_OBJ_GFX_ID_6 0x4016
+#define VAR_OBJ_GFX_ID_7 0x4017
+#define VAR_OBJ_GFX_ID_8 0x4018
+#define VAR_OBJ_GFX_ID_9 0x4019
+#define VAR_OBJ_GFX_ID_A 0x401A
+#define VAR_OBJ_GFX_ID_B 0x401B
+#define VAR_OBJ_GFX_ID_C 0x401C
+#define VAR_OBJ_GFX_ID_D 0x401D
+#define VAR_OBJ_GFX_ID_E 0x401E
+#define VAR_OBJ_GFX_ID_F 0x401F
+
+// general purpose vars
+#define VAR_RECYCLE_GOODS 0x4020
+#define VAR_REPEL_STEP_COUNT 0x4021
+#define VAR_ICE_STEP_COUNT 0x4022
+#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
+#define VAR_MIRAGE_RND_H 0x4024
+#define VAR_MIRAGE_RND_L 0x4025
+#define VAR_SECRET_BASE_MAP 0x4026
+#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027
+#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028
+#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029
+#define VAR_HAPPINESS_STEP_COUNTER 0x402A
+#define VAR_POISON_STEP_COUNTER 0x402B
+#define VAR_RESET_RTC_ENABLE 0x402C
+#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
+
+#define VAR_DAYS 0x4040
+#define VAR_FANCLUB_UNKNOWN_1 0x4041 // TODO: document these two fanclub vars
+#define VAR_FANCLUB_UNKNOWN_2 0x4042
+#define VAR_DEPT_STORE_FLOOR 0x4043
+#define VAR_TRICK_HOUSE_ROOMS_COMPLETED 0x4044
+#define VAR_LOTTERY_PRIZE 0x4045
+#define VAR_NATIONAL_DEX 0x4046
+#define VAR_SHROOMISH_SIZE_RECORD 0x4047
+#define VAR_ASH_GATHER_COUNT 0x4048
+#define VAR_BIRCH_STATE 0x4049
+#define VAR_CRUISE_STEP_COUNT 0x404A
+#define VAR_LOTTERY_RND_L 0x404B
+#define VAR_LOTTERY_RND_H 0x404C
+
+#define VAR_BARBOACH_SIZE_RECORD 0x404F
+#define VAR_LITTLEROOT_STATE 0x4050
+#define VAR_ROUTE102_ACCESSIBLE 0x4051
+
+#define VAR_LAVARIDGE_RIVAL_STATE 0x4053
+#define VAR_CURRENT_SECRET_BASE 0x4054
+
+#define VAR_PETALBURG_STATE 0x4057
+#define VAR_SLATEPORT_STATE 0x4058
+
+#define VAR_RUSTBORO_STATE 0x405A
+
+#define VAR_SOOTOPOLIS_STATE 0x405E
+
+#define VAR_ROUTE101_STATE 0x4060
+
+#define VAR_ROUTE103_STATE 0x4062
+
+#define VAR_ROUTE110_STATE 0x4069
+
+#define VAR_ROUTE116_STATE 0x406F
+
+#define VAR_ROUTE118_STATE 0x4071
+#define VAR_ROUTE119_STATE 0x4072
+
+#define VAR_ROUTE121_STATE 0x4074
+#define VAR_ROUTE128_STATE 0x407B
+
+#define VAR_LITTLEROOT_HOUSES_STATE 0x4082 // TODO: needs more investigation
+
+#define VAR_BIRCH_LAB_STATE 0x4084
+#define VAR_PETALBURG_GYM_STATE 0x4085
+#define VAR_LINK_CONTEST_ROOM_STATE 0x4086
+#define VAR_CABLE_CLUB_STATE 0x4087
+#define VAR_CONTEST_LOCATION 0x4088
+#define VAR_0x4089 0x4089 // TODO: related to decorations
+#define VAR_CONTEST_PRIZE_PICKUP 0x408A
+
+#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C // TODO: needs more investigation
+#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
+#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E
+#define VAR_DEVON_CORP_3F_STATE 0x408F
+#define VAR_BRINEY_HOUSE_STATE 0x4090
+
+#define VAR_LITTLEROOT_INTRO_STATE 0x4092
+#define VAR_MAUVILLE_GYM_STATE 0x4093
+#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094
+#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
+#define VAR_BRINEY_LOCATION 0x4096
+#define VAR_0x4097 0x4097 // TODO: related to creating new secret base
+#define VAR_PETALBURG_WOODS_STATE 0x4098
+#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099
+#define VAR_RUSTURF_TUNNEL_STATE 0x409a
+#define VAR_CAVE_OF_ORIGIN_B4F_STATE 0x409B
+#define VAR_ELITE_4_STATE 0x409C
+
+#define VAR_SLATEPORT_HARBOR_STATE 0x40A0
+
+#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2
+#define VAR_CABLE_CAR_STATION_STATE 0x40A3
+#define VAR_SAFARI_ZONE_STATE 0x40A4
+#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A5
+#define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6
+#define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7
+
+#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
+#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA
+#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB
+#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC
+#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD
+#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE
+#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF
+#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0
+#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1
+#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2
+#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
+#define VAR_PORTHOLE_STATE 0x40B4
+#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation
+#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6
+#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7
+
+#define VAR_MT_PYRE_STATE 0x40B9
+#define VAR_NEW_MAUVILLE_STATE 0x40BA
+
+#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC
+#define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD
+#define VAR_GLASS_WORKSHOP_STATE 0x40BE
+#define VAR_METEOR_FALLS_STATE 0x40BF
+#define VAR_GAME_CORNER_STATE 0x40C0
+#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1
+#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
+#define VAR_VICTORY_ROAD_1F_STATE 0x40C3
+#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4
+#define VAR_WHICH_FOSSIL_REVIVED 0x40C5
+#define VAR_STEVENS_HOUSE_STATE 0x40C6
+#define VAR_OLDALE_STATE 0x40C7
+
+// special vars
+// They are commonly used as parameters to commands, or return values from commands.
+#define VAR_SPECIAL_0 0x8000
+#define VAR_SPECIAL_1 0x8001
+#define VAR_SPECIAL_2 0x8002
+#define VAR_SPECIAL_3 0x8003
+#define VAR_SPECIAL_4 0x8004
+#define VAR_SPECIAL_5 0x8005
+#define VAR_SPECIAL_6 0x8006
+#define VAR_SPECIAL_7 0x8007
+#define VAR_SPECIAL_8 0x8008
+#define VAR_SPECIAL_9 0x8009
+#define VAR_SPECIAL_A 0x800A
+#define VAR_SPECIAL_B 0x800B
+#define FACING 0x800C
+#define RESULT 0x800D
+#define ITEM_ID 0x800E
+#define LAST_TALKED 0x800F
+#define CONTEST_RANK 0x8010
+#define CONTEST_CATEGORY 0x8011
+
+#endif // GUARD_CONSTANTS_VARS_H
diff --git a/include/constants/weather.h b/include/constants/weather.h
new file mode 100644
index 000000000..946316984
--- /dev/null
+++ b/include/constants/weather.h
@@ -0,0 +1,39 @@
+#ifndef GUARD_CONSTANTS_WEATHER_H
+#define GUARD_CONSTANTS_WEATHER_H
+
+#define WEATHER_NONE 0
+#define WEATHER_CLOUDS 1
+#define WEATHER_SUNNY 2
+#define WEATHER_RAIN_LIGHT 3
+#define WEATHER_SNOW 4
+#define WEATHER_RAIN_MED 5
+#define WEATHER_FOG_1 6
+#define WEATHER_ASH 7
+#define WEATHER_SANDSTORM 8
+#define WEATHER_FOG_2 9
+#define WEATHER_FOG_3 10
+#define WEATHER_DARK 11
+#define WEATHER_DROUGHT 12
+#define WEATHER_RAIN_HEAVY 13
+#define WEATHER_BUBBLES 14
+#define WEATHER_ROUTE119_CYCLE 20
+#define WEATHER_ROUTE123_CYCLE 21
+
+// These are used in maps' coord_weather_event entries.
+// They are not a one-to-one mapping with the engine's
+// internal weather constants above.
+#define COORD_EVENT_WEATHER_CLOUDS 1
+#define COORD_EVENT_WEATHER_SUNNY 2
+#define COORD_EVENT_WEATHER_RAIN_LIGHT 3
+#define COORD_EVENT_WEATHER_SNOW 4
+#define COORD_EVENT_WEATHER_RAIN_MED 5
+#define COORD_EVENT_WEATHER_FOG_1 6
+#define COORD_EVENT_WEATHER_FOG_2 7
+#define COORD_EVENT_WEATHER_ASH 8
+#define COORD_EVENT_WEATHER_SANDSTORM 9
+#define COORD_EVENT_WEATHER_DARK 10
+#define COORD_EVENT_WEATHER_DROUGHT 11
+#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20
+#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21
+
+#endif // GUARD_CONSTANTS_WEATHER_H
diff --git a/include/contest.h b/include/contest.h
index 983f9bc6a..6e71358a2 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -1,40 +1,257 @@
#ifndef GUARD_CONTEST_H
#define GUARD_CONTEST_H
+enum
+{
+ CONTEST_CATEGORY_COOL,
+ CONTEST_CATEGORY_BEAUTY,
+ CONTEST_CATEGORY_CUTE,
+ CONTEST_CATEGORY_SMART,
+ CONTEST_CATEGORY_TOUGH,
+};
+
+enum
+{
+ CONTEST_EFFECT_HIGHLY_APPEALING,
+ CONTEST_EFFECT_USER_MORE_STARTLED,
+ CONTEST_EFFECT_APPEAL_ONLY_ONCE,
+ CONTEST_EFFECT_REPEATABLE,
+ CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ CONTEST_EFFECT_AVOID_STARTLE,
+ CONTEST_EFFECT_AVOID_STARTLE_LITTLE,
+ //...
+};
+
+struct ContestMove
+{
+ u8 effect;
+ u8 contestCategory:3;
+ u8 comboStarterId;
+ u8 comboMoves[4];
+};
+
+struct ContestEffect
+{
+ u8 effectType;
+ u8 appeal;
+ u8 jam;
+};
+
struct ContestPokemon
{
- /* 0x00 */ u16 species;
- /* 0x02 */ u8 nickname[POKEMON_NAME_LENGTH];
- /* 0x0D */ u8 trainerName[8];
- /* 0x15 */ u8 unk15;
- /* 0x16 */ u8 unk16;
- /* 0x17 */ u8 filler17[7];
- /* 0x1E */ u16 moves[4]; // moves
- /* 0x26 */ u8 cool; // cool
- /* 0x27 */ u8 beauty; // beauty
- /* 0x28 */ u8 cute; // cute
- /* 0x29 */ u8 smart; // smart
- /* 0x2A */ u8 tough; // tough
- /* 0x2B */ u8 sheen; // sheen
- /* 0x2C */ u8 filler2C[12];
- /* 0x38 */ u32 unk38;
- /* 0x3C */ u32 unk3C;
+ /*0x00*/ u16 species;
+ /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ /*0x0D*/ u8 trainerName[8];
+ /*0x15*/ u8 trainerGfxId;
+ /*0x16*/ u8 unk16;
+ /*0x17*/ u8 filler17;
+ /*0x18*/ u32 flags;
+ /*0x1C*/ u8 unk1C_0:2;
+ u8 unk1C_2:1;
+ u8 unk1C_3:1;
+ u8 unk1C_4:1;
+ u8 unk1C_5:1;
+ u8 unk1C_6:1;
+ u8 unk1C_7:1;
+ u8 filler1D;
+ /*0x1E*/ u16 moves[4]; // moves
+ /*0x26*/ u8 cool; // cool
+ /*0x27*/ u8 beauty; // beauty
+ /*0x28*/ u8 cute; // cute
+ /*0x29*/ u8 smart; // smart
+ /*0x2A*/ u8 tough; // tough
+ /*0x2B*/ u8 sheen; // sheen
+ /*0x2C*/ u8 unk2C;
+ /*0x2D*/ u8 unk2D[11];
+ /*0x38*/ u32 personality; // personality
+ /*0x3C*/ u32 otId; // otId
}; // wow
extern struct ContestPokemon gContestMons[];
+extern const struct ContestMove gContestMoves[];
+extern const struct ContestEffect gContestEffects[];
+extern const u8 *const gContestEffectStrings[];
+
void ResetLinkContestBoolean(void);
-void sub_80AB2AC(void);
-void sub_80AB47C(void);
-void sub_80AE098(u8);
-void sub_80AE398(u8, u8);
+void LoadContestBgAfterMoveAnim(void);
+void CB2_StartContest(void);
+void Contest_CreatePlayerMon(u8);
+void Contest_InitAllPokemon(u8, u8);
u8 sub_80AE47C(struct Pokemon *party);
-u32 sub_80AE770(u8, u8);
+u16 sub_80AE770(u8, u8);
void sub_80AE82C(u8);
-u8 sub_80AEB1C();
+u8 IsSpeciesNotUnown(u16);
void sub_80AF668(void);
void sub_80B0F28(u8);
-int sub_80B2A7C(u8); //Don't know return type size
+bool8 Contest_SaveWinner(u8);
u8 sub_80B2C4C(u8, u8);
-void sub_80B2D1C(void);
+void Contest_ResetWinners(void);
+
+// Contest Shared EWRAM
+
+struct Shared18000
+{
+ /*0x18000*/ u8 unk18000;
+ /*0x18001*/ u8 filler18001[3];
+ /*0x18004*/ u16 unk18004[16][16];
+ /*0x18204*/ u16 unk18204[0x200];
+ /*0x18604*/ u16 unk18604[0x200];
+ /*0x18A04*/ u8 unk18A04[0x800];
+};
+
+struct Contest
+{
+ /*0x19204*/ u8 playerMoveChoice;
+ /*0x19205*/ u8 turnNumber;
+ /*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function
+ /*0x1920A*/ u16 unk1920A_0:1; // Task active flags?
+ u16 unk1920A_1:1;
+ u16 unk1920A_2:1;
+ u16 unk1920A_3:1;
+ u16 unk1920A_4:1;
+ u16 unk1920A_5:1;
+ u16 unk1920A_6:1;
+ u16 unk1920A_7:1;
+ /*0x1920B*/ u16 unk1920B_0:1;
+ u16 unk1920B_1:1;
+ u16 unk1920B_2:1;
+ /*0x1920C*/ u8 mainTaskId;
+ /*0x1920D*/ u8 unk1920D[4];
+ /*0x19211*/ u8 unk19211;
+ /*0x19212*/ u8 unk19212;
+ /*0x19213*/ u8 filler19213;
+ /*0x19214*/ u8 unk19214;
+ /*0x19215*/ u8 unk19215;
+ /*0x19216*/ u8 unk19216; // sprite ID
+ /*0x19217*/ s8 applauseLevel;
+ /*0x19218*/ u8 unk19218[4];
+ /*0x1921C*/ u32 unk1921C; // saved RNG value?
+ u16 unk19220[5][4]; // move history?
+ u8 unk19248[5][4]; // excitement history
+ u8 applauseMeterSpriteId; // sprite ID
+ /*0x1925D*/ u8 unk1925D;
+ /*0x1925E*/ u8 unk1925E;
+};
+
+struct ContestantStatus
+{
+ s16 appeal1; // move appeal?
+ s16 appeal2; // final appeal after end of turn, maybe?
+ s16 unk4;
+ u16 currMove;
+ u16 prevMove;
+ u8 moveCategory;
+ u8 unkB_0:2;
+ u8 unkB_2:2;
+ u8 moveRepeatCount:3;
+ u8 unkB_7:1; // used a one-time move?
+ u8 unkC_0:1;
+ u8 unkC_1:2;
+ s8 unkD;
+ u8 unkE;
+ u8 unkF;
+ u8 unk10_0:1;
+ u8 unk10_1:1;
+ u8 unk10_2:1;
+ u8 unk10_3:1;
+ u8 unk10_4:2;
+ u8 unk10_6:2;
+ u8 unk11_0:2;
+ u8 unk11_2:1;
+ u8 unk11_3:1;
+ u8 unk11_4:1;
+ u8 unk11_5:1;
+ u8 unk12;
+ u8 unk13; // status action?
+ u8 unk14;
+ u8 disappointedRepeat:1;
+ u8 unk15_1:1;
+ u8 unk15_2:1;
+ u8 unk15_3:1;
+ u8 unk15_4:1;
+ u8 unk15_5:1;
+ u8 unk15_6:1;
+ u8 unk16;
+ u8 unk17;
+ u8 unk18;
+ u8 unk19; // turn position
+ u8 attentionLevel; // How much the Pokemon "stood out"
+ u8 unk1B;
+};
+
+struct UnknownContestStruct3
+{
+ u8 unk0;
+ u8 unk1;
+ //u8 unk2_0:1;
+ //u8 unk2_1:1;
+ u8 unk2; // maybe a bitfield
+ u8 filler3;
+};
+
+// possibly the same as UnknownContestStruct3?
+struct UnknownContestStruct4
+{
+ u8 unk0; // sprite ID
+ u8 unk1; // sprite ID
+ u8 unk2_0:1;
+ u8 unk2_1:1;
+ u8 unk2_2:1;
+ u8 filler3;
+};
+
+struct UnknownContestStruct5
+{
+ s8 bits_0; // current move excitement?
+ u8 bits_8:1;
+ u8 bits_9:3;
+ u8 bits_C:4;
+ s8 unk2;
+ u8 filler3;
+};
+
+struct UnknownContestStruct7
+{
+ u8 unk0[4];
+ u16 unk4;
+ u16 unk6;
+ u8 filler8[0xD-8];
+ u8 unkD[4];
+ u8 unk11;
+ u8 filler12[2];
+};
+
+struct UnknownContestStruct8
+{
+ u16 unk0;
+ u16 unk2;
+ u8 unk4_0:1;
+ u8 unk5;
+ u8 filler6[2];
+ u32 unk8;
+ u32 unkC;
+ u32 unk10;
+};
+
+struct UnknownContestStruct6
+{
+ s32 unk0;
+ s32 unk4;
+ s32 unk8;
+ s32 unkC;
+};
+
+#define shared15800 (gSharedMem + 0x15800)
+#define shared15DE0 (*(struct ContestWinner *)(gSharedMem + 0x15DE0))
+#define shared16800 (gSharedMem + 0x16800)
+#define shared18000 (*(struct Shared18000 *)(gSharedMem + 0x18000))
+#define shared18004 ((u16 *)(gSharedMem + 0x18004))
+#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
+#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
+#define shared192D0 (*(struct UnknownContestStruct7 *)(gSharedMem + 0x192D0))
+#define shared192E4 (gSharedMem + 0x192E4)
+#define shared19328 (*(struct UnknownContestStruct5 *)(gSharedMem + 0x19328))
+#define shared19338 ((struct UnknownContestStruct4 *)(gSharedMem + 0x19338))
+#define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348))
#endif // GUARD_CONTEST_H
diff --git a/include/contest_link_80C857C.h b/include/contest_link_80C857C.h
index 9135ba2e7..c0f7088b0 100644
--- a/include/contest_link_80C857C.h
+++ b/include/contest_link_80C857C.h
@@ -3,6 +3,7 @@
void sub_80C8734(u8);
void sub_80C88AC(u8);
+void sub_80C89DC(u8);
void sub_80C8E1C(u8);
void sub_80C8EBC(u8);
void sub_80C8F34(u8);
diff --git a/include/data/field_map_obj/anim_func_ptrs.h b/include/data/field_map_obj/anim_func_ptrs.h
deleted file mode 100644
index 63575727d..000000000
--- a/include/data/field_map_obj/anim_func_ptrs.h
+++ /dev/null
@@ -1,1519 +0,0 @@
-//
-// Created by scott on 6/18/2017.
-//
-
-#ifndef POKERUBY_ANIM_FUNC_PTRS_H
-#define POKERUBY_ANIM_FUNC_PTRS_H
-
-u8 sub_8060CE0(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8060CF0(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8060D00(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8060D10(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8060F3C(struct MapObject *, struct Sprite *);
-u8 sub_8060F5C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8060F7C(struct MapObject *, struct Sprite *);
-u8 sub_8060F9C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8060FBC(struct MapObject *, struct Sprite *);
-u8 sub_8060FDC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8060FFC(struct MapObject *, struct Sprite *);
-u8 sub_806101C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_806103C(struct MapObject *, struct Sprite *);
-u8 sub_806105C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_806107C(struct MapObject *, struct Sprite *);
-u8 sub_806109C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80610BC(struct MapObject *, struct Sprite *);
-u8 sub_80610DC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80610FC(struct MapObject *, struct Sprite *);
-u8 sub_806111C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80613A8(struct MapObject *, struct Sprite *);
-u8 sub_80613D4(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061400(struct MapObject *, struct Sprite *);
-u8 sub_806142C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061458(struct MapObject *, struct Sprite *);
-u8 sub_8061484(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80614B0(struct MapObject *, struct Sprite *);
-u8 sub_80614DC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_806152C(struct MapObject *, struct Sprite *);
-u8 sub_8061510(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_806154C(struct MapObject *, struct Sprite *);
-u8 sub_8061510(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_806156C(struct MapObject *, struct Sprite *);
-u8 sub_8061510(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_806158C(struct MapObject *, struct Sprite *);
-u8 sub_8061510(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_80615AC(struct MapObject *, struct Sprite *);
-u8 sub_8061510(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_80615CC(struct MapObject *, struct Sprite *);
-u8 sub_80615EC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_806160C(struct MapObject *, struct Sprite *);
-u8 sub_806162C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_806164C(struct MapObject *, struct Sprite *);
-u8 sub_806166C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_806168C(struct MapObject *, struct Sprite *);
-u8 sub_80616AC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061778(struct MapObject *, struct Sprite *);
-u8 sub_806173C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80617B0(struct MapObject *, struct Sprite *);
-u8 sub_806173C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80617E8(struct MapObject *, struct Sprite *);
-u8 sub_806173C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061820(struct MapObject *, struct Sprite *);
-u8 sub_806173C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061858(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061890(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80618C8(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061900(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061938(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061970(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80619A8(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80619E0(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061A18(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061A50(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061A88(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061AC0(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061AF8(struct MapObject *, struct Sprite *);
-u8 sub_8061B18(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061B38(struct MapObject *, struct Sprite *);
-u8 sub_8061B58(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061B78(struct MapObject *, struct Sprite *);
-u8 sub_8061B98(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061BB8(struct MapObject *, struct Sprite *);
-u8 sub_8061BD8(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061BF8(struct MapObject *, struct Sprite *);
-u8 sub_8061C18(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061C38(struct MapObject *, struct Sprite *);
-u8 sub_8061C58(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061C78(struct MapObject *, struct Sprite *);
-u8 sub_8061C98(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061CB8(struct MapObject *, struct Sprite *);
-u8 sub_8061CD8(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061CF8(struct MapObject *, struct Sprite *);
-u8 sub_8061D18(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061D38(struct MapObject *, struct Sprite *);
-u8 sub_8061D58(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061D78(struct MapObject *, struct Sprite *);
-u8 sub_8061D98(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061DB8(struct MapObject *, struct Sprite *);
-u8 sub_8061DD8(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 do_run_south_anim(struct MapObject *, struct Sprite *);
-u8 sub_8061E18(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 do_run_north_anim(struct MapObject *, struct Sprite *);
-u8 sub_8061E58(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 do_run_west_anim(struct MapObject *, struct Sprite *);
-u8 sub_8061E98(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 do_run_east_anim(struct MapObject *, struct Sprite *);
-u8 sub_8061ED8(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061F24(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061F90(struct MapObject *, struct Sprite *);
-u8 sub_8061FB0(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8061FD8(struct MapObject *, struct Sprite *);
-u8 sub_8061FF8(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062020(struct MapObject *, struct Sprite *);
-u8 sub_8062040(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062068(struct MapObject *, struct Sprite *);
-u8 sub_8062088(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80620B0(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_806210C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062170(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062180(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062190(struct MapObject *, struct Sprite *);
-u8 sub_80621BC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80621E8(struct MapObject *, struct Sprite *);
-u8 sub_8062214(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062240(struct MapObject *, struct Sprite *);
-u8 sub_806226C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062298(struct MapObject *, struct Sprite *);
-u8 sub_80622C4(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80622F0(struct MapObject *, struct Sprite *);
-u8 sub_806231C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062348(struct MapObject *, struct Sprite *);
-u8 sub_8062374(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80623A0(struct MapObject *, struct Sprite *);
-u8 sub_80623CC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80623F8(struct MapObject *, struct Sprite *);
-u8 sub_8062424(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062450(struct MapObject *, struct Sprite *);
-u8 sub_806247C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80624A8(struct MapObject *, struct Sprite *);
-u8 sub_80624D4(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062500(struct MapObject *, struct Sprite *);
-u8 sub_806252C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062558(struct MapObject *, struct Sprite *);
-u8 sub_8062584(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80625B0(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80625C8(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80625D8(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_80625E8(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_80625F8(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_8062608(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_8062634(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_8062644(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 do_exclamation_mark_bubble_1(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 do_exclamation_mark_bubble_2(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 do_heart_bubble(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_80626C0(struct MapObject *, struct Sprite *);
-u8 sub_8062704(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_8062724(struct MapObject *, struct Sprite *);
-u8 sub_8062740(struct MapObject *, struct Sprite *);
-u8 sub_8062764(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_80627A0(struct MapObject *, struct Sprite *);
-u8 sub_80627BC(struct MapObject *, struct Sprite *);
-u8 sub_80627E0(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_806281C(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_806282C(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_806283C(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_806286C(struct MapObject *, struct Sprite *);
-u8 sub_8063470(struct MapObject *, struct Sprite *);
-u8 sub_806289C(struct MapObject *, struct Sprite *);
-u8 sub_80628D0(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80628FC(struct MapObject *, struct Sprite *);
-u8 sub_8062930(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_806299C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80629AC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80629BC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80629CC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80629DC(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062A00(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062A24(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062A48(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062A6C(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062A90(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062AB4(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062AD8(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062AFC(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062B20(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062B44(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062B68(struct MapObject *, struct Sprite *);
-u8 sub_8061F3C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062BD0(struct MapObject *, struct Sprite *);
-u8 sub_8062BFC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062C28(struct MapObject *, struct Sprite *);
-u8 sub_8062C54(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062C80(struct MapObject *, struct Sprite *);
-u8 sub_8062CAC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062CD8(struct MapObject *, struct Sprite *);
-u8 sub_8062D04(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062D30(struct MapObject *, struct Sprite *);
-u8 sub_8062D5C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062D88(struct MapObject *, struct Sprite *);
-u8 sub_8062DB4(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062DE0(struct MapObject *, struct Sprite *);
-u8 sub_8062E0C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062E38(struct MapObject *, struct Sprite *);
-u8 sub_8062E64(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062E90(struct MapObject *, struct Sprite *);
-u8 sub_8062EBC(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062EE8(struct MapObject *, struct Sprite *);
-u8 sub_8062F14(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062F40(struct MapObject *, struct Sprite *);
-u8 sub_8062F6C(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062F98(struct MapObject *, struct Sprite *);
-u8 sub_8062FC4(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8062FF0(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063028(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063060(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063098(struct MapObject *, struct Sprite *);
-u8 sub_8061714(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063108(struct MapObject *, struct Sprite *);
-u8 sub_8063128(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063148(struct MapObject *, struct Sprite *);
-u8 sub_8063168(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063188(struct MapObject *, struct Sprite *);
-u8 sub_80631A8(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80631C8(struct MapObject *, struct Sprite *);
-u8 sub_80631E8(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063238(struct MapObject *, struct Sprite *);
-u8 sub_8063258(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063278(struct MapObject *, struct Sprite *);
-u8 sub_8063298(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80632B8(struct MapObject *, struct Sprite *);
-u8 sub_80632D8(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80632F8(struct MapObject *, struct Sprite *);
-u8 sub_8063318(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063370(struct MapObject *, struct Sprite *);
-u8 sub_8063390(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80633B0(struct MapObject *, struct Sprite *);
-u8 sub_80633D0(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_80633F0(struct MapObject *, struct Sprite *);
-u8 sub_8063410(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-u8 sub_8063430(struct MapObject *, struct Sprite *);
-u8 sub_8063450(struct MapObject *, struct Sprite *);
-u8 sub_8063474(struct MapObject *, struct Sprite *);
-
-u8 (*const Unknown_83759A0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_83759A8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_83759B0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_83759B8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_83759D4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_83759E0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_83759EC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_83759F8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A04[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A10[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A1C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A28[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A40[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A4C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A58[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A64[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A70[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A7C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A88[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375A94[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375AA0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375AAC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375AB8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375AC4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375AD0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375ADC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375AE8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375AF4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B00[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B0C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B18[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B24[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B30[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B3C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B48[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B54[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B60[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B6C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B78[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B84[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B90[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375B9C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375BA8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375BB4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375BC0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375BCC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375BD8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375BE4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375BF0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375BFC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C08[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C14[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C20[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C2C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C38[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C44[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C50[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C5C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C68[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C74[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C80[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C8C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375C98[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CA0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CA8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CB0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CB8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CC4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CD0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CDC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CE8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375CF4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D00[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D0C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D18[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D24[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D30[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D3C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D48[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D50[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D5C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D64[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D6C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D74[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D7C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D84[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D8C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D94[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375D9C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DA4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DB0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DC0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DD0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DD8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DE0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DE8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DF0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375DFC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E08[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E10[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E18[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E20[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E28[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E34[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E40[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E4C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E58[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E64[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E70[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375E7C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375EB8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375EC4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375ED0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375EDC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375EE8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375EF4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F00[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F0C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F18[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F24[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F30[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F3C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F48[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F54[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F60[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F6C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F78[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F84[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F90[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375F9C[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375FA8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375FB4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375FC0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375FCC[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375FD8[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375FE4[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375FF0[])(struct MapObject *, struct Sprite *);
-u8 (*const Unknown_8375FFC[])(struct MapObject *, struct Sprite *);
-
-u8 (*const *const gUnknown_08375778[])(struct MapObject *, struct Sprite *) = {
- Unknown_83759A0,
- Unknown_83759A8,
- Unknown_83759B0,
- Unknown_83759B8,
- Unknown_83759D4,
- Unknown_83759E0,
- Unknown_83759EC,
- Unknown_83759F8,
- Unknown_8375A04,
- Unknown_8375A10,
- Unknown_8375A1C,
- Unknown_8375A28,
- Unknown_8375A40,
- Unknown_8375A4C,
- Unknown_8375A58,
- Unknown_8375A64,
- Unknown_8375A70,
- Unknown_8375A7C,
- Unknown_8375A88,
- Unknown_8375A94,
- Unknown_8375AA0,
- Unknown_8375AAC,
- Unknown_8375AB8,
- Unknown_8375AC4,
- Unknown_8375AD0,
- Unknown_8375ADC,
- Unknown_8375AE8,
- Unknown_8375AF4,
- Unknown_8375B00,
- Unknown_8375B0C,
- Unknown_8375B18,
- Unknown_8375B24,
- Unknown_8375B30,
- Unknown_8375B3C,
- Unknown_8375B48,
- Unknown_8375B54,
- Unknown_8375B60,
- Unknown_8375B6C,
- Unknown_8375B78,
- Unknown_8375B84,
- Unknown_8375B90,
- Unknown_8375B9C,
- Unknown_8375BA8,
- Unknown_8375BB4,
- Unknown_8375BC0,
- Unknown_8375BCC,
- Unknown_8375BD8,
- Unknown_8375BE4,
- Unknown_8375BF0,
- Unknown_8375BFC,
- Unknown_8375C08,
- Unknown_8375C14,
- Unknown_8375C20,
- Unknown_8375C2C,
- Unknown_8375C38,
- Unknown_8375C44,
- Unknown_8375C50,
- Unknown_8375C5C,
- Unknown_8375C68,
- Unknown_8375C74,
- Unknown_8375C80,
- Unknown_8375C8C,
- Unknown_8375C98,
- Unknown_8375CA0,
- Unknown_8375CA8,
- Unknown_8375CB0,
- Unknown_8375CB8,
- Unknown_8375CC4,
- Unknown_8375CD0,
- Unknown_8375CDC,
- Unknown_8375CE8,
- Unknown_8375CF4,
- Unknown_8375D00,
- Unknown_8375D0C,
- Unknown_8375D18,
- Unknown_8375D24,
- Unknown_8375D30,
- Unknown_8375D3C,
- Unknown_8375D48,
- Unknown_8375D50,
- Unknown_8375D5C,
- Unknown_8375D64,
- Unknown_8375D6C,
- Unknown_8375D74,
- Unknown_8375D7C,
- Unknown_8375D84,
- Unknown_8375D8C,
- Unknown_8375D94,
- Unknown_8375D9C,
- Unknown_8375DA4,
- Unknown_8375DB0,
- Unknown_8375DC0,
- Unknown_8375DD0,
- Unknown_8375DD8,
- Unknown_8375DE0,
- Unknown_8375DE8,
- Unknown_8375DF0,
- Unknown_8375DFC,
- Unknown_8375E08,
- Unknown_8375E10,
- Unknown_8375E18,
- Unknown_8375E20,
- Unknown_8375E28,
- Unknown_8375E34,
- Unknown_8375E40,
- Unknown_8375E4C,
- Unknown_8375E58,
- Unknown_8375E64,
- Unknown_8375E70,
- Unknown_8375E7C,
- Unknown_8375EB8,
- Unknown_8375EC4,
- Unknown_8375ED0,
- Unknown_8375EDC,
- Unknown_8375EE8,
- Unknown_8375EF4,
- Unknown_8375F00,
- Unknown_8375F0C,
- Unknown_8375F18,
- Unknown_8375F24,
- Unknown_8375F30,
- Unknown_8375F3C,
- Unknown_8375F48,
- Unknown_8375F54,
- Unknown_8375F60,
- Unknown_8375F6C,
- Unknown_8375F78,
- Unknown_8375F84,
- Unknown_8375F90,
- Unknown_8375F9C,
- Unknown_8375FA8,
- Unknown_8375FB4,
- Unknown_8375FC0,
- Unknown_8375FCC,
- Unknown_8375FD8,
- Unknown_8375FE4,
- Unknown_8375FF0,
- Unknown_8375FFC
-};
-
-
-u8 (*const Unknown_83759A0[])(struct MapObject *, struct Sprite *) = {
- sub_8060CE0,
- sub_8063474
-};
-
-u8 (*const Unknown_83759A8[])(struct MapObject *, struct Sprite *) = {
- sub_8060CF0,
- sub_8063474
-};
-
-u8 (*const Unknown_83759B0[])(struct MapObject *, struct Sprite *) = {
- sub_8060D00,
- sub_8063474
-};
-
-u8 (*const Unknown_83759B8[])(struct MapObject *, struct Sprite *) = {
- sub_8060D10,
- sub_8063474
-};
-
-u8 (*const gUnknown_083759C0[])(u8) = {
- get_go_image_anim_num,
- get_go_fast_image_anim_num,
- get_go_fast_image_anim_num,
- get_go_faster_image_anim_num,
- sub_805FD78
-};
-
-u8 (*const Unknown_83759D4[])(struct MapObject *, struct Sprite *) = {
- sub_8060F3C,
- sub_8060F5C,
- sub_8063474
-};
-
-u8 (*const Unknown_83759E0[])(struct MapObject *, struct Sprite *) = {
- sub_8060F7C,
- sub_8060F9C,
- sub_8063474
-};
-
-u8 (*const Unknown_83759EC[])(struct MapObject *, struct Sprite *) = {
- sub_8060FBC,
- sub_8060FDC,
- sub_8063474
-};
-
-u8 (*const Unknown_83759F8[])(struct MapObject *, struct Sprite *) = {
- sub_8060FFC,
- sub_806101C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375A04[])(struct MapObject *, struct Sprite *) = {
- sub_806103C,
- sub_806105C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375A10[])(struct MapObject *, struct Sprite *) = {
- sub_806107C,
- sub_806109C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375A1C[])(struct MapObject *, struct Sprite *) = {
- sub_80610BC,
- sub_80610DC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375A28[])(struct MapObject *, struct Sprite *) = {
- sub_80610FC,
- sub_806111C,
- sub_8063474
-};
-
-const s16 gUnknown_08375A34[] = {0, 1, 1};
-const s16 gUnknown_08375A3A[] = {0, 0, 1};
-
-u8 (*const Unknown_8375A40[])(struct MapObject *, struct Sprite *) = {
- sub_80613A8,
- sub_80613D4,
- sub_8063474
-};
-
-u8 (*const Unknown_8375A4C[])(struct MapObject *, struct Sprite *) = {
- sub_8061400,
- sub_806142C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375A58[])(struct MapObject *, struct Sprite *) = {
- sub_8061458,
- sub_8061484,
- sub_8063474
-};
-
-u8 (*const Unknown_8375A64[])(struct MapObject *, struct Sprite *) = {
- sub_80614B0,
- sub_80614DC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375A70[])(struct MapObject *, struct Sprite *) = {
- sub_806152C,
- sub_8061510,
- sub_8063470
-};
-
-u8 (*const Unknown_8375A7C[])(struct MapObject *, struct Sprite *) = {
- sub_806154C,
- sub_8061510,
- sub_8063470
-};
-
-u8 (*const Unknown_8375A88[])(struct MapObject *, struct Sprite *) = {
- sub_806156C,
- sub_8061510,
- sub_8063470
-};
-
-u8 (*const Unknown_8375A94[])(struct MapObject *, struct Sprite *) = {
- sub_806158C,
- sub_8061510,
- sub_8063470
-};
-
-u8 (*const Unknown_8375AA0[])(struct MapObject *, struct Sprite *) = {
- sub_80615AC,
- sub_8061510,
- sub_8063470
-};
-
-u8 (*const Unknown_8375AAC[])(struct MapObject *, struct Sprite *) = {
- sub_80615CC,
- sub_80615EC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375AB8[])(struct MapObject *, struct Sprite *) = {
- sub_806160C,
- sub_806162C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375AC4[])(struct MapObject *, struct Sprite *) = {
- sub_806164C,
- sub_806166C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375AD0[])(struct MapObject *, struct Sprite *) = {
- sub_806168C,
- sub_80616AC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375ADC[])(struct MapObject *, struct Sprite *) = {
- sub_8061778,
- sub_806173C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375AE8[])(struct MapObject *, struct Sprite *) = {
- sub_80617B0,
- sub_806173C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375AF4[])(struct MapObject *, struct Sprite *) = {
- sub_80617E8,
- sub_806173C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B00[])(struct MapObject *, struct Sprite *) = {
- sub_8061820,
- sub_806173C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B0C[])(struct MapObject *, struct Sprite *) = {
- sub_8061858,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B18[])(struct MapObject *, struct Sprite *) = {
- sub_8061890,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B24[])(struct MapObject *, struct Sprite *) = {
- sub_80618C8,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B30[])(struct MapObject *, struct Sprite *) = {
- sub_8061900,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B3C[])(struct MapObject *, struct Sprite *) = {
- sub_8061938,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B48[])(struct MapObject *, struct Sprite *) = {
- sub_8061970,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B54[])(struct MapObject *, struct Sprite *) = {
- sub_80619A8,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B60[])(struct MapObject *, struct Sprite *) = {
- sub_80619E0,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B6C[])(struct MapObject *, struct Sprite *) = {
- sub_8061A18,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B78[])(struct MapObject *, struct Sprite *) = {
- sub_8061A50,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B84[])(struct MapObject *, struct Sprite *) = {
- sub_8061A88,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B90[])(struct MapObject *, struct Sprite *) = {
- sub_8061AC0,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375B9C[])(struct MapObject *, struct Sprite *) = {
- sub_8061AF8,
- sub_8061B18,
- sub_8063474
-};
-
-u8 (*const Unknown_8375BA8[])(struct MapObject *, struct Sprite *) = {
- sub_8061B38,
- sub_8061B58,
- sub_8063474
-};
-
-u8 (*const Unknown_8375BB4[])(struct MapObject *, struct Sprite *) = {
- sub_8061B78,
- sub_8061B98,
- sub_8063474
-};
-
-u8 (*const Unknown_8375BC0[])(struct MapObject *, struct Sprite *) = {
- sub_8061BB8,
- sub_8061BD8,
- sub_8063474
-};
-
-u8 (*const Unknown_8375BCC[])(struct MapObject *, struct Sprite *) = {
- sub_8061BF8,
- sub_8061C18,
- sub_8063474
-};
-
-u8 (*const Unknown_8375BD8[])(struct MapObject *, struct Sprite *) = {
- sub_8061C38,
- sub_8061C58,
- sub_8063474
-};
-
-u8 (*const Unknown_8375BE4[])(struct MapObject *, struct Sprite *) = {
- sub_8061C78,
- sub_8061C98,
- sub_8063474
-};
-
-u8 (*const Unknown_8375BF0[])(struct MapObject *, struct Sprite *) = {
- sub_8061CB8,
- sub_8061CD8,
- sub_8063474
-};
-
-u8 (*const Unknown_8375BFC[])(struct MapObject *, struct Sprite *) = {
- sub_8061CF8,
- sub_8061D18,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C08[])(struct MapObject *, struct Sprite *) = {
- sub_8061D38,
- sub_8061D58,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C14[])(struct MapObject *, struct Sprite *) = {
- sub_8061D78,
- sub_8061D98,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C20[])(struct MapObject *, struct Sprite *) = {
- sub_8061DB8,
- sub_8061DD8,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C2C[])(struct MapObject *, struct Sprite *) = {
- do_run_south_anim,
- sub_8061E18,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C38[])(struct MapObject *, struct Sprite *) = {
- do_run_north_anim,
- sub_8061E58,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C44[])(struct MapObject *, struct Sprite *) = {
- do_run_west_anim,
- sub_8061E98,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C50[])(struct MapObject *, struct Sprite *) = {
- do_run_east_anim,
- sub_8061ED8,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C5C[])(struct MapObject *, struct Sprite *) = {
- sub_8061F24,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C68[])(struct MapObject *, struct Sprite *) = {
- sub_8061F90,
- sub_8061FB0,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C74[])(struct MapObject *, struct Sprite *) = {
- sub_8061FD8,
- sub_8061FF8,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C80[])(struct MapObject *, struct Sprite *) = {
- sub_8062020,
- sub_8062040,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C8C[])(struct MapObject *, struct Sprite *) = {
- sub_8062068,
- sub_8062088,
- sub_8063474
-};
-
-u8 (*const Unknown_8375C98[])(struct MapObject *, struct Sprite *) = {
- sub_80620B0,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CA0[])(struct MapObject *, struct Sprite *) = {
- sub_806210C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CA8[])(struct MapObject *, struct Sprite *) = {
- sub_8062170,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CB0[])(struct MapObject *, struct Sprite *) = {
- sub_8062180,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CB8[])(struct MapObject *, struct Sprite *) = {
- sub_8062190,
- sub_80621BC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CC4[])(struct MapObject *, struct Sprite *) = {
- sub_80621E8,
- sub_8062214,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CD0[])(struct MapObject *, struct Sprite *) = {
- sub_8062240,
- sub_806226C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CDC[])(struct MapObject *, struct Sprite *) = {
- sub_8062298,
- sub_80622C4,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CE8[])(struct MapObject *, struct Sprite *) = {
- sub_80622F0,
- sub_806231C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375CF4[])(struct MapObject *, struct Sprite *) = {
- sub_8062348,
- sub_8062374,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D00[])(struct MapObject *, struct Sprite *) = {
- sub_80623A0,
- sub_80623CC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D0C[])(struct MapObject *, struct Sprite *) = {
- sub_80623F8,
- sub_8062424,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D18[])(struct MapObject *, struct Sprite *) = {
- sub_8062450,
- sub_806247C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D24[])(struct MapObject *, struct Sprite *) = {
- sub_80624A8,
- sub_80624D4,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D30[])(struct MapObject *, struct Sprite *) = {
- sub_8062500,
- sub_806252C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D3C[])(struct MapObject *, struct Sprite *) = {
- sub_8062558,
- sub_8062584,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D48[])(struct MapObject *, struct Sprite *) = {
- sub_80625B0,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D50[])(struct MapObject *, struct Sprite *) = {
- sub_80625C8,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375D5C[])(struct MapObject *, struct Sprite *) = {
- sub_80625D8,
- sub_8063470
-};
-
-u8 (*const Unknown_8375D64[])(struct MapObject *, struct Sprite *) = {
- sub_80625E8,
- sub_8063470
-};
-
-u8 (*const Unknown_8375D6C[])(struct MapObject *, struct Sprite *) = {
- sub_80625F8,
- sub_8063470
-};
-
-u8 (*const Unknown_8375D74[])(struct MapObject *, struct Sprite *) = {
- sub_8062608,
- sub_8063470
-};
-
-u8 (*const Unknown_8375D7C[])(struct MapObject *, struct Sprite *) = {
- sub_8062634,
- sub_8063470
-};
-
-u8 (*const Unknown_8375D84[])(struct MapObject *, struct Sprite *) = {
- sub_8062644,
- sub_8063470
-};
-
-u8 (*const Unknown_8375D8C[])(struct MapObject *, struct Sprite *) = {
- do_exclamation_mark_bubble_1,
- sub_8063470
-};
-
-u8 (*const Unknown_8375D94[])(struct MapObject *, struct Sprite *) = {
- do_exclamation_mark_bubble_2,
- sub_8063470
-};
-
-u8 (*const Unknown_8375D9C[])(struct MapObject *, struct Sprite *) = {
- do_heart_bubble,
- sub_8063470
-};
-
-u8 (*const Unknown_8375DA4[])(struct MapObject *, struct Sprite *) = {
- sub_80626C0,
- sub_8062704,
- sub_8063470
-};
-
-u8 (*const Unknown_8375DB0[])(struct MapObject *, struct Sprite *) = {
- sub_8062724,
- sub_8062740,
- sub_8062764,
- sub_8063470
-};
-
-u8 (*const Unknown_8375DC0[])(struct MapObject *, struct Sprite *) = {
- sub_80627A0,
- sub_80627BC,
- sub_80627E0,
- sub_8063470
-};
-
-u8 (*const Unknown_8375DD0[])(struct MapObject *, struct Sprite *) = {
- sub_806281C,
- sub_8063470
-};
-
-u8 (*const Unknown_8375DD8[])(struct MapObject *, struct Sprite *) = {
- sub_806282C,
- sub_8063470
-};
-
-u8 (*const Unknown_8375DE0[])(struct MapObject *, struct Sprite *) = {
- sub_806283C,
- sub_8063470
-};
-
-u8 (*const Unknown_8375DE8[])(struct MapObject *, struct Sprite *) = {
- sub_806286C,
- sub_8063470
-};
-
-u8 (*const Unknown_8375DF0[])(struct MapObject *, struct Sprite *) = {
- sub_806289C,
- sub_80628D0,
- sub_8063474
-};
-
-u8 (*const Unknown_8375DFC[])(struct MapObject *, struct Sprite *) = {
- sub_80628FC,
- sub_8062930,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E08[])(struct MapObject *, struct Sprite *) = {
- sub_806299C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E10[])(struct MapObject *, struct Sprite *) = {
- sub_80629AC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E18[])(struct MapObject *, struct Sprite *) = {
- sub_80629BC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E20[])(struct MapObject *, struct Sprite *) = {
- sub_80629CC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E28[])(struct MapObject *, struct Sprite *) = {
- sub_80629DC,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E34[])(struct MapObject *, struct Sprite *) = {
- sub_8062A00,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E40[])(struct MapObject *, struct Sprite *) = {
- sub_8062A24,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E4C[])(struct MapObject *, struct Sprite *) = {
- sub_8062A48,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E58[])(struct MapObject *, struct Sprite *) = {
- sub_8062A6C,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E64[])(struct MapObject *, struct Sprite *) = {
- sub_8062A90,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E70[])(struct MapObject *, struct Sprite *) = {
- sub_8062AB4,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375E7C[])(struct MapObject *, struct Sprite *) = {
- sub_8062AD8,
- sub_8061F3C,
- sub_8063474,
- sub_8062AFC,
- sub_8061F3C,
- sub_8063474,
- sub_8062B20,
- sub_8061F3C,
- sub_8063474,
- sub_8062B44,
- sub_8061F3C,
- sub_8063474,
- sub_8062B68,
- sub_8061F3C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375EB8[])(struct MapObject *, struct Sprite *) = {
- sub_8062BD0,
- sub_8062BFC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375EC4[])(struct MapObject *, struct Sprite *) = {
- sub_8062C28,
- sub_8062C54,
- sub_8063474
-};
-
-u8 (*const Unknown_8375ED0[])(struct MapObject *, struct Sprite *) = {
- sub_8062C80,
- sub_8062CAC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375EDC[])(struct MapObject *, struct Sprite *) = {
- sub_8062CD8,
- sub_8062D04,
- sub_8063474
-};
-
-u8 (*const Unknown_8375EE8[])(struct MapObject *, struct Sprite *) = {
- sub_8062D30,
- sub_8062D5C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375EF4[])(struct MapObject *, struct Sprite *) = {
- sub_8062D88,
- sub_8062DB4,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F00[])(struct MapObject *, struct Sprite *) = {
- sub_8062DE0,
- sub_8062E0C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F0C[])(struct MapObject *, struct Sprite *) = {
- sub_8062E38,
- sub_8062E64,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F18[])(struct MapObject *, struct Sprite *) = {
- sub_8062E90,
- sub_8062EBC,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F24[])(struct MapObject *, struct Sprite *) = {
- sub_8062EE8,
- sub_8062F14,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F30[])(struct MapObject *, struct Sprite *) = {
- sub_8062F40,
- sub_8062F6C,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F3C[])(struct MapObject *, struct Sprite *) = {
- sub_8062F98,
- sub_8062FC4,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F48[])(struct MapObject *, struct Sprite *) = {
- sub_8062FF0,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F54[])(struct MapObject *, struct Sprite *) = {
- sub_8063028,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F60[])(struct MapObject *, struct Sprite *) = {
- sub_8063060,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F6C[])(struct MapObject *, struct Sprite *) = {
- sub_8063098,
- sub_8061714,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F78[])(struct MapObject *, struct Sprite *) = {
- sub_8063108,
- sub_8063128,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F84[])(struct MapObject *, struct Sprite *) = {
- sub_8063148,
- sub_8063168,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F90[])(struct MapObject *, struct Sprite *) = {
- sub_8063188,
- sub_80631A8,
- sub_8063474
-};
-
-u8 (*const Unknown_8375F9C[])(struct MapObject *, struct Sprite *) = {
- sub_80631C8,
- sub_80631E8,
- sub_8063474
-};
-
-u8 (*const Unknown_8375FA8[])(struct MapObject *, struct Sprite *) = {
- sub_8063238,
- sub_8063258,
- sub_8063474
-};
-
-u8 (*const Unknown_8375FB4[])(struct MapObject *, struct Sprite *) = {
- sub_8063278,
- sub_8063298,
- sub_8063474
-};
-
-u8 (*const Unknown_8375FC0[])(struct MapObject *, struct Sprite *) = {
- sub_80632B8,
- sub_80632D8,
- sub_8063474
-};
-
-u8 (*const Unknown_8375FCC[])(struct MapObject *, struct Sprite *) = {
- sub_80632F8,
- sub_8063318,
- sub_8063474
-};
-
-u8 (*const Unknown_8375FD8[])(struct MapObject *, struct Sprite *) = {
- sub_8063370,
- sub_8063390,
- sub_8063474
-};
-
-u8 (*const Unknown_8375FE4[])(struct MapObject *, struct Sprite *) = {
- sub_80633B0,
- sub_80633D0,
- sub_8063474
-};
-
-u8 (*const Unknown_8375FF0[])(struct MapObject *, struct Sprite *) = {
- sub_80633F0,
- sub_8063410,
- sub_8063474
-};
-
-u8 (*const Unknown_8375FFC[])(struct MapObject *, struct Sprite *) = {
- sub_8063430,
- sub_8063450,
- sub_8063474
-};
-
-#endif //POKERUBY_ANIM_FUNC_PTRS_H
diff --git a/include/data/field_map_obj/base_oam.h b/include/data/field_map_obj/base_oam.h
deleted file mode 100644
index 8595f97e7..000000000
--- a/include/data/field_map_obj/base_oam.h
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_BASE_OAM_H
-#define POKERUBY_BASE_OAM_H
-
-const struct OamData gFieldOamData_8x8 = {
- .shape = 0,
- .size = 0,
- .priority = 2
-};
-
-const struct OamData gFieldOamData_16x8 = {
- .shape = 1,
- .size = 0,
- .priority = 2
-};
-
-const struct OamData gFieldOamData_16x16 = {
- .shape = 0,
- .size = 1,
- .priority = 2
-};
-
-const struct OamData gFieldOamData_32x8 = {
- .shape = 1,
- .size = 1,
- .priority = 2
-};
-
-const struct OamData gFieldOamData_64x32 = {
- .shape = 1,
- .size = 3,
- .priority = 2
-};
-
-const struct OamData gFieldOamData_16x32 = {
- .shape = 2,
- .size = 2,
- .priority = 2
-};
-
-const struct OamData gFieldOamData_32x32 = {
- .shape = 0,
- .size = 2,
- .priority = 2
-};
-
-const struct OamData gFieldOamData_64x64 = {
- .shape = 0,
- .size = 3,
- .priority = 2
-};
-
-#endif //POKERUBY_BASE_OAM_H
diff --git a/include/data/field_map_obj/berry_tree_graphics_tables.h b/include/data/field_map_obj/berry_tree_graphics_tables.h
deleted file mode 100644
index 53a0fd482..000000000
--- a/include/data/field_map_obj/berry_tree_graphics_tables.h
+++ /dev/null
@@ -1,573 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H
-#define POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H
-
-const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_PechaBerryTree_0),
- obj_frame_tiles(gMapObjectPic_PechaBerryTree_1),
- obj_frame_tiles(gMapObjectPic_PechaBerryTree_2),
- obj_frame_tiles(gMapObjectPic_PechaBerryTree_3),
- obj_frame_tiles(gMapObjectPic_PechaBerryTree_4),
- obj_frame_tiles(gMapObjectPic_PechaBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_KelpsyBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_0),
- obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_1),
- obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_2),
- obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_3),
- obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_4),
- obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2};
-
-const struct SpriteFrameImage gMapObjectPicTable_WepearBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_WepearBerryTree_0),
- obj_frame_tiles(gMapObjectPic_WepearBerryTree_1),
- obj_frame_tiles(gMapObjectPic_WepearBerryTree_2),
- obj_frame_tiles(gMapObjectPic_WepearBerryTree_3),
- obj_frame_tiles(gMapObjectPic_WepearBerryTree_4),
- obj_frame_tiles(gMapObjectPic_WepearBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2};
-
-const struct SpriteFrameImage gMapObjectPicTable_IapapaBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_IapapaBerryTree_0),
- obj_frame_tiles(gMapObjectPic_IapapaBerryTree_1),
- obj_frame_tiles(gMapObjectPic_IapapaBerryTree_2),
- obj_frame_tiles(gMapObjectPic_IapapaBerryTree_3),
- obj_frame_tiles(gMapObjectPic_IapapaBerryTree_4),
- obj_frame_tiles(gMapObjectPic_IapapaBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_CheriBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_CheriBerryTree_0),
- obj_frame_tiles(gMapObjectPic_CheriBerryTree_1),
- obj_frame_tiles(gMapObjectPic_CheriBerryTree_2),
- obj_frame_tiles(gMapObjectPic_CheriBerryTree_3),
- obj_frame_tiles(gMapObjectPic_CheriBerryTree_4),
- obj_frame_tiles(gMapObjectPic_CheriBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_FigyBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_FigyBerryTree_0),
- obj_frame_tiles(gMapObjectPic_FigyBerryTree_1),
- obj_frame_tiles(gMapObjectPic_FigyBerryTree_2),
- obj_frame_tiles(gMapObjectPic_FigyBerryTree_3),
- obj_frame_tiles(gMapObjectPic_FigyBerryTree_4),
- obj_frame_tiles(gMapObjectPic_FigyBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_MagoBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_MagoBerryTree_0),
- obj_frame_tiles(gMapObjectPic_MagoBerryTree_1),
- obj_frame_tiles(gMapObjectPic_MagoBerryTree_2),
- obj_frame_tiles(gMapObjectPic_MagoBerryTree_3),
- obj_frame_tiles(gMapObjectPic_MagoBerryTree_4),
- obj_frame_tiles(gMapObjectPic_MagoBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_LumBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_LumBerryTree_0),
- obj_frame_tiles(gMapObjectPic_LumBerryTree_1),
- obj_frame_tiles(gMapObjectPic_LumBerryTree_2),
- obj_frame_tiles(gMapObjectPic_LumBerryTree_3),
- obj_frame_tiles(gMapObjectPic_LumBerryTree_4),
- obj_frame_tiles(gMapObjectPic_LumBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_RazzBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_RazzBerryTree_0),
- obj_frame_tiles(gMapObjectPic_RazzBerryTree_1),
- obj_frame_tiles(gMapObjectPic_RazzBerryTree_2),
- obj_frame_tiles(gMapObjectPic_RazzBerryTree_3),
- obj_frame_tiles(gMapObjectPic_RazzBerryTree_4),
- obj_frame_tiles(gMapObjectPic_RazzBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_GrepaBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_GrepaBerryTree_0),
- obj_frame_tiles(gMapObjectPic_GrepaBerryTree_1),
- obj_frame_tiles(gMapObjectPic_GrepaBerryTree_2),
- obj_frame_tiles(gMapObjectPic_GrepaBerryTree_3),
- obj_frame_tiles(gMapObjectPic_GrepaBerryTree_4),
- obj_frame_tiles(gMapObjectPic_GrepaBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_RabutaBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_RabutaBerryTree_0),
- obj_frame_tiles(gMapObjectPic_RabutaBerryTree_1),
- obj_frame_tiles(gMapObjectPic_RabutaBerryTree_2),
- obj_frame_tiles(gMapObjectPic_RabutaBerryTree_3),
- obj_frame_tiles(gMapObjectPic_RabutaBerryTree_4),
- obj_frame_tiles(gMapObjectPic_RabutaBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_NomelBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_NomelBerryTree_0),
- obj_frame_tiles(gMapObjectPic_NomelBerryTree_1),
- obj_frame_tiles(gMapObjectPic_NomelBerryTree_2),
- obj_frame_tiles(gMapObjectPic_NomelBerryTree_3),
- obj_frame_tiles(gMapObjectPic_NomelBerryTree_4),
- obj_frame_tiles(gMapObjectPic_NomelBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_LeppaBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_LeppaBerryTree_0),
- obj_frame_tiles(gMapObjectPic_LeppaBerryTree_1),
- obj_frame_tiles(gMapObjectPic_LeppaBerryTree_2),
- obj_frame_tiles(gMapObjectPic_LeppaBerryTree_3),
- obj_frame_tiles(gMapObjectPic_LeppaBerryTree_4),
- obj_frame_tiles(gMapObjectPic_LeppaBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_LiechiBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_LiechiBerryTree_0),
- obj_frame_tiles(gMapObjectPic_LiechiBerryTree_1),
- obj_frame_tiles(gMapObjectPic_LiechiBerryTree_2),
- obj_frame_tiles(gMapObjectPic_LiechiBerryTree_3),
- obj_frame_tiles(gMapObjectPic_LiechiBerryTree_4),
- obj_frame_tiles(gMapObjectPic_LiechiBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_HondewBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_HondewBerryTree_0),
- obj_frame_tiles(gMapObjectPic_HondewBerryTree_1),
- obj_frame_tiles(gMapObjectPic_HondewBerryTree_2),
- obj_frame_tiles(gMapObjectPic_HondewBerryTree_3),
- obj_frame_tiles(gMapObjectPic_HondewBerryTree_4),
- obj_frame_tiles(gMapObjectPic_HondewBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5};
-
-const struct SpriteFrameImage gMapObjectPicTable_AguavBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_AguavBerryTree_0),
- obj_frame_tiles(gMapObjectPic_AguavBerryTree_1),
- obj_frame_tiles(gMapObjectPic_AguavBerryTree_2),
- obj_frame_tiles(gMapObjectPic_AguavBerryTree_3),
- obj_frame_tiles(gMapObjectPic_AguavBerryTree_4),
- obj_frame_tiles(gMapObjectPic_AguavBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_WikiBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_WikiBerryTree_0),
- obj_frame_tiles(gMapObjectPic_WikiBerryTree_1),
- obj_frame_tiles(gMapObjectPic_WikiBerryTree_2),
- obj_frame_tiles(gMapObjectPic_WikiBerryTree_3),
- obj_frame_tiles(gMapObjectPic_WikiBerryTree_4),
- obj_frame_tiles(gMapObjectPic_WikiBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_PomegBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_PomegBerryTree_0),
- obj_frame_tiles(gMapObjectPic_PomegBerryTree_1),
- obj_frame_tiles(gMapObjectPic_PomegBerryTree_2),
- obj_frame_tiles(gMapObjectPic_PomegBerryTree_3),
- obj_frame_tiles(gMapObjectPic_PomegBerryTree_4),
- obj_frame_tiles(gMapObjectPic_PomegBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_RawstBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_RawstBerryTree_0),
- obj_frame_tiles(gMapObjectPic_RawstBerryTree_1),
- obj_frame_tiles(gMapObjectPic_RawstBerryTree_2),
- obj_frame_tiles(gMapObjectPic_RawstBerryTree_3),
- obj_frame_tiles(gMapObjectPic_RawstBerryTree_4),
- obj_frame_tiles(gMapObjectPic_RawstBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_SpelonBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_SpelonBerryTree_0),
- obj_frame_tiles(gMapObjectPic_SpelonBerryTree_1),
- obj_frame_tiles(gMapObjectPic_SpelonBerryTree_2),
- obj_frame_tiles(gMapObjectPic_SpelonBerryTree_3),
- obj_frame_tiles(gMapObjectPic_SpelonBerryTree_4),
- obj_frame_tiles(gMapObjectPic_SpelonBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_ChestoBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_ChestoBerryTree_0),
- obj_frame_tiles(gMapObjectPic_ChestoBerryTree_1),
- obj_frame_tiles(gMapObjectPic_ChestoBerryTree_2),
- obj_frame_tiles(gMapObjectPic_ChestoBerryTree_3),
- obj_frame_tiles(gMapObjectPic_ChestoBerryTree_4),
- obj_frame_tiles(gMapObjectPic_ChestoBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2};
-
-const struct SpriteFrameImage gMapObjectPicTable_OranBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_OranBerryTree_0),
- obj_frame_tiles(gMapObjectPic_OranBerryTree_1),
- obj_frame_tiles(gMapObjectPic_OranBerryTree_2),
- obj_frame_tiles(gMapObjectPic_OranBerryTree_3),
- obj_frame_tiles(gMapObjectPic_OranBerryTree_4),
- obj_frame_tiles(gMapObjectPic_OranBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2};
-
-const struct SpriteFrameImage gMapObjectPicTable_PersimBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_PersimBerryTree_0),
- obj_frame_tiles(gMapObjectPic_PersimBerryTree_1),
- obj_frame_tiles(gMapObjectPic_PersimBerryTree_2),
- obj_frame_tiles(gMapObjectPic_PersimBerryTree_3),
- obj_frame_tiles(gMapObjectPic_PersimBerryTree_4),
- obj_frame_tiles(gMapObjectPic_PersimBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2};
-
-const struct SpriteFrameImage gMapObjectPicTable_SitrusBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_SitrusBerryTree_0),
- obj_frame_tiles(gMapObjectPic_SitrusBerryTree_1),
- obj_frame_tiles(gMapObjectPic_SitrusBerryTree_2),
- obj_frame_tiles(gMapObjectPic_SitrusBerryTree_3),
- obj_frame_tiles(gMapObjectPic_SitrusBerryTree_4),
- obj_frame_tiles(gMapObjectPic_SitrusBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_AspearBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_AspearBerryTree_0),
- obj_frame_tiles(gMapObjectPic_AspearBerryTree_1),
- obj_frame_tiles(gMapObjectPic_AspearBerryTree_2),
- obj_frame_tiles(gMapObjectPic_AspearBerryTree_3),
- obj_frame_tiles(gMapObjectPic_AspearBerryTree_4),
- obj_frame_tiles(gMapObjectPic_AspearBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3};
-
-const struct SpriteFrameImage gMapObjectPicTable_PamtreBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_PamtreBerryTree_0),
- obj_frame_tiles(gMapObjectPic_PamtreBerryTree_1),
- obj_frame_tiles(gMapObjectPic_PamtreBerryTree_2),
- obj_frame_tiles(gMapObjectPic_PamtreBerryTree_3),
- obj_frame_tiles(gMapObjectPic_PamtreBerryTree_4),
- obj_frame_tiles(gMapObjectPic_PamtreBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2};
-
-const struct SpriteFrameImage gMapObjectPicTable_CornnBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_CornnBerryTree_0),
- obj_frame_tiles(gMapObjectPic_CornnBerryTree_1),
- obj_frame_tiles(gMapObjectPic_CornnBerryTree_2),
- obj_frame_tiles(gMapObjectPic_CornnBerryTree_3),
- obj_frame_tiles(gMapObjectPic_CornnBerryTree_4),
- obj_frame_tiles(gMapObjectPic_CornnBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2};
-
-const struct SpriteFrameImage gMapObjectPicTable_LansatBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_LansatBerryTree_0),
- obj_frame_tiles(gMapObjectPic_LansatBerryTree_1),
- obj_frame_tiles(gMapObjectPic_LansatBerryTree_2),
- obj_frame_tiles(gMapObjectPic_LansatBerryTree_3),
- obj_frame_tiles(gMapObjectPic_LansatBerryTree_4),
- obj_frame_tiles(gMapObjectPic_LansatBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2};
-
-const struct SpriteFrameImage gMapObjectPicTable_DurinBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_DurinBerryTree_0),
- obj_frame_tiles(gMapObjectPic_DurinBerryTree_1),
- obj_frame_tiles(gMapObjectPic_DurinBerryTree_2),
- obj_frame_tiles(gMapObjectPic_DurinBerryTree_3),
- obj_frame_tiles(gMapObjectPic_DurinBerryTree_4),
- obj_frame_tiles(gMapObjectPic_DurinBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4};
-
-const struct SpriteFrameImage gMapObjectPicTable_TamatoBerryTree[] = {
- obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
- obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
- obj_frame_tiles(gMapObjectPic_TamatoBerryTree_0),
- obj_frame_tiles(gMapObjectPic_TamatoBerryTree_1),
- obj_frame_tiles(gMapObjectPic_TamatoBerryTree_2),
- obj_frame_tiles(gMapObjectPic_TamatoBerryTree_3),
- obj_frame_tiles(gMapObjectPic_TamatoBerryTree_4),
- obj_frame_tiles(gMapObjectPic_TamatoBerryTree_5)
-};
-
-const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2};
-
-const u8 gDeadBerryTreeGraphicsIdTable[] = {MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES};
-
-const u8 gBerryTreeGraphicsIdTable[] = {MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES};
-
-const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = {
- gMapObjectPicTable_CheriBerryTree,
- gMapObjectPicTable_ChestoBerryTree,
- gMapObjectPicTable_PechaBerryTree,
- gMapObjectPicTable_RawstBerryTree,
- gMapObjectPicTable_AspearBerryTree,
- gMapObjectPicTable_LeppaBerryTree,
- gMapObjectPicTable_OranBerryTree,
- gMapObjectPicTable_PersimBerryTree,
- gMapObjectPicTable_LumBerryTree,
- gMapObjectPicTable_SitrusBerryTree,
- gMapObjectPicTable_FigyBerryTree,
- gMapObjectPicTable_WikiBerryTree,
- gMapObjectPicTable_MagoBerryTree,
- gMapObjectPicTable_AguavBerryTree,
- gMapObjectPicTable_IapapaBerryTree,
- gMapObjectPicTable_RazzBerryTree,
- gMapObjectPicTable_RazzBerryTree,
- gMapObjectPicTable_MagoBerryTree,
- gMapObjectPicTable_WepearBerryTree,
- gMapObjectPicTable_IapapaBerryTree,
- gMapObjectPicTable_PomegBerryTree,
- gMapObjectPicTable_KelpsyBerryTree,
- gMapObjectPicTable_WepearBerryTree,
- gMapObjectPicTable_HondewBerryTree,
- gMapObjectPicTable_GrepaBerryTree,
- gMapObjectPicTable_TamatoBerryTree,
- gMapObjectPicTable_CornnBerryTree,
- gMapObjectPicTable_PomegBerryTree,
- gMapObjectPicTable_RabutaBerryTree,
- gMapObjectPicTable_NomelBerryTree,
- gMapObjectPicTable_SpelonBerryTree,
- gMapObjectPicTable_PamtreBerryTree,
- gMapObjectPicTable_RabutaBerryTree,
- gMapObjectPicTable_DurinBerryTree,
- gMapObjectPicTable_HondewBerryTree,
- gMapObjectPicTable_LiechiBerryTree,
- gMapObjectPicTable_HondewBerryTree,
- gMapObjectPicTable_AguavBerryTree,
- gMapObjectPicTable_PomegBerryTree,
- gMapObjectPicTable_GrepaBerryTree,
- gMapObjectPicTable_LansatBerryTree,
- gMapObjectPicTable_CornnBerryTree,
- gMapObjectPicTable_DurinBerryTree
-};
-
-const u8 *const gBerryTreePaletteSlotTablePointers[] = {
- gBerryTreePaletteSlotTable_Cheri,
- gBerryTreePaletteSlotTable_Chesto,
- gBerryTreePaletteSlotTable_Pecha,
- gBerryTreePaletteSlotTable_Rawst,
- gBerryTreePaletteSlotTable_Aspear,
- gBerryTreePaletteSlotTable_Leppa,
- gBerryTreePaletteSlotTable_Oran,
- gBerryTreePaletteSlotTable_Persim,
- gBerryTreePaletteSlotTable_Lum,
- gBerryTreePaletteSlotTable_Sitrus,
- gBerryTreePaletteSlotTable_Figy,
- gBerryTreePaletteSlotTable_Wiki,
- gBerryTreePaletteSlotTable_Mago,
- gBerryTreePaletteSlotTable_Aguav,
- gBerryTreePaletteSlotTable_Iapapa,
- gBerryTreePaletteSlotTable_Razz,
- gBerryTreePaletteSlotTable_Razz,
- gBerryTreePaletteSlotTable_Mago,
- gBerryTreePaletteSlotTable_Wepear,
- gBerryTreePaletteSlotTable_Iapapa,
- gBerryTreePaletteSlotTable_Pomeg,
- gBerryTreePaletteSlotTable_Kelpsy,
- gBerryTreePaletteSlotTable_Wepear,
- gBerryTreePaletteSlotTable_Hondew,
- gBerryTreePaletteSlotTable_Grepa,
- gBerryTreePaletteSlotTable_Tamato,
- gBerryTreePaletteSlotTable_Cornn,
- gBerryTreePaletteSlotTable_Pomeg,
- gBerryTreePaletteSlotTable_Rabuta,
- gBerryTreePaletteSlotTable_Nomel,
- gBerryTreePaletteSlotTable_Spelon,
- gBerryTreePaletteSlotTable_Pamtre,
- gBerryTreePaletteSlotTable_Rabuta,
- gBerryTreePaletteSlotTable_Durin,
- gBerryTreePaletteSlotTable_Hondew,
- gBerryTreePaletteSlotTable_Liechi,
- gBerryTreePaletteSlotTable_Hondew,
- gBerryTreePaletteSlotTable_Aguav,
- gBerryTreePaletteSlotTable_Pomeg,
- gBerryTreePaletteSlotTable_Grepa,
- gBerryTreePaletteSlotTable_Lansat,
- gBerryTreePaletteSlotTable_Cornn,
- gBerryTreePaletteSlotTable_Durin
-};
-
-const u8 *const gBerryTreeGraphicsIdTablePointers[] = {
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable,
- gBerryTreeGraphicsIdTable
-};
-
-#endif //POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H
diff --git a/include/data/field_map_obj/callback_subroutine_pointers.h b/include/data/field_map_obj/callback_subroutine_pointers.h
deleted file mode 100644
index d24a47184..000000000
--- a/include/data/field_map_obj/callback_subroutine_pointers.h
+++ /dev/null
@@ -1,442 +0,0 @@
-//
-// Created by scott on 6/18/2017.
-//
-
-#ifndef POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H
-#define POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H
-
-
-u8 (*const gUnknown_08375224[])(struct MapObject *, struct Sprite *) = {
- sub_805C8F0,
- sub_805C904,
- sub_805C930,
- sub_805C96C,
- sub_805C98C,
- sub_805C9D8,
- sub_805CA08
-};
-
-const u8 gUnknown_08375240[] = {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST};
-
-u8 (*const gUnknown_08375244[])(s16, s16, s16, s16) = {
- sub_805CAAC,
- sub_805CADC,
- sub_805CAEC,
- sub_805CB00,
- sub_805CB5C,
- sub_805CBB8,
- sub_805CC14,
- sub_805CC70,
- sub_805CCAC,
- sub_805CCE8,
- sub_805CD24
-};
-
-u8 (*const gUnknown_08375270[])(struct MapObject *, struct Sprite *) = {
- sub_805CE2C,
- sub_805CE40,
- sub_805CE6C,
- sub_805CEB0,
- sub_805CEE0
-};
-
-u8 (*const gUnknown_08375284[])(struct MapObject *, struct Sprite *) = {
- sub_805CF6C,
- sub_805CF80,
- sub_805CFAC,
- sub_805CFE8,
- sub_805D008,
- sub_805D054,
- sub_805D084
-};
-
-const u8 gUnknown_083752A0[] = {DIR_SOUTH, DIR_NORTH};
-
-u8 (*const gUnknown_083752A4[])(struct MapObject *, struct Sprite *) = {
- sub_805D0F0,
- sub_805D104,
- sub_805D130,
- sub_805D16C,
- sub_805D18C,
- sub_805D1D8,
- sub_805D208
-};
-
-const u8 gUnknown_083752C0[] = {DIR_WEST, DIR_EAST};
-
-u8 (*const gUnknown_083752C4[])(struct MapObject *, struct Sprite *) = {
- sub_805D274,
- sub_805D2A0,
- sub_805D2C0
-};
-
-u8 (*const gUnknown_083752D0[])(struct MapObject *, struct Sprite *) = {
- do_berry_tree_growth_sparkle_1,
- sub_805D3EC,
- do_berry_tree_growth_sparkle_2,
- sub_805D458,
- sub_805D4A8
-};
-
-u8 (*const gUnknown_083752E4[])(struct MapObject *, struct Sprite *) = {
- sub_805D538,
- sub_805D54C,
- sub_805D578,
- sub_805D5BC,
- sub_805D5EC
-};
-
-u8 (*const gUnknown_083752F8[])(struct MapObject *, struct Sprite *) = {
- sub_805D678,
- sub_805D68C,
- sub_805D6B8,
- sub_805D6FC,
- sub_805D72C
-};
-
-u8 (*const gUnknown_0837530C[])(struct MapObject *, struct Sprite *) = {
- sub_805D7B8,
- sub_805D7CC,
- sub_805D7F8,
- sub_805D83C,
- sub_805D86C
-};
-
-const u8 gUnknown_08375320[] = {DIR_NORTH, DIR_WEST};
-
-u8 (*const gUnknown_08375324[])(struct MapObject *, struct Sprite *) = {
- sub_805D8F8,
- sub_805D90C,
- sub_805D938,
- sub_805D97C,
- sub_805D9AC
-};
-
-const u8 gUnknown_08375338[] = {DIR_NORTH, DIR_EAST};
-
-u8 (*const gUnknown_0837533C[])(struct MapObject *, struct Sprite *) = {
- sub_805DA38,
- sub_805DA4C,
- sub_805DA78,
- sub_805DABC,
- sub_805DAEC
-};
-
-const u8 gUnknown_08375350[] = {DIR_SOUTH, DIR_WEST};
-
-u8 (*const gUnknown_08375354[])(struct MapObject *, struct Sprite *) = {
- sub_805DB78,
- sub_805DB8C,
- sub_805DBB8,
- sub_805DBFC,
- sub_805DC2C
-};
-
-const u8 gUnknown_08375368[] = {DIR_SOUTH, DIR_EAST};
-
-u8 (*const gUnknown_0837536C[])(struct MapObject *, struct Sprite *) = {
- sub_805DCB8,
- sub_805DCCC,
- sub_805DCF8,
- sub_805DD3C,
- sub_805DD6C
-};
-
-const u8 gUnknown_08375380[] = {DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_SOUTH};
-
-u8 (*const gUnknown_08375384[])(struct MapObject *, struct Sprite *) = {
- sub_805DDF8,
- sub_805DE0C,
- sub_805DE38,
- sub_805DE7C,
- sub_805DEAC
-};
-
-const u8 gUnknown_08375398[] = {DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_SOUTH};
-
-u8 (*const gUnknown_0837539C[])(struct MapObject *, struct Sprite *) = {
- sub_805DF38,
- sub_805DF4C,
- sub_805DF78,
- sub_805DFBC,
- sub_805DFEC
-};
-
-const u8 gUnknown_083753B0[] = {DIR_NORTH, DIR_WEST, DIR_EAST, DIR_NORTH};
-
-u8 (*const gUnknown_083753B4[])(struct MapObject *, struct Sprite *) = {
- sub_805E078,
- sub_805E08C,
- sub_805E0B8,
- sub_805E0FC,
- sub_805E12C
-};
-
-const u8 gUnknown_083753C8[] = {DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH};
-
-u8 (*const gUnknown_083753CC[])(struct MapObject *, struct Sprite *) = {
- sub_805E1B8,
- sub_805E1E4,
- sub_805E208,
- sub_805E234
-};
-
-const u8 gUnknown_083753DC[] = {DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH};
-
-u8 (*const gUnknown_083753E4[])(struct MapObject *, struct Sprite *) = {
- sub_805E2BC,
- sub_805E2E8,
- sub_805E30C,
- sub_805E338
-};
-
-const u8 gUnknown_083753F4[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
-
-u8 (*const gUnknown_083753FC[])(struct MapObject *, struct Sprite *) = {
- sub_805E3C0,
- sub_805E3D4,
- sub_805E40C,
- sub_805E4C4
-};
-
-u8 (*const gUnknown_0837540C[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805E620,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375418[] = {DIR_NORTH, DIR_EAST, DIR_WEST, DIR_SOUTH};
-
-u8 (*const gUnknown_0837541C[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805E6AC,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375428[] = {DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH};
-u8 (*const gUnknown_0837542C[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805E738,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375438[] = {DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_WEST};
-
-u8 (*const gUnknown_0837543C[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805E7C4,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375448[] = {DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_EAST};
-
-u8 (*const gUnknown_0837544C[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805E850,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375458[] = {DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH};
-
-u8 (*const gUnknown_0837545C[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805E8DC,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375468[] = {DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH};
-
-u8 (*const gUnknown_0837546C[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805E968,
- sub_805E5B4
-};
-
-u8 (*const gUnknown_08375478[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805E9F4,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375484[] = {DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST};
-
-u8 (*const gUnknown_08375488[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EA80,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375494[] = {DIR_WEST, DIR_NORTH, DIR_SOUTH, DIR_EAST};
-
-u8 (*const gUnknown_08375498[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EB0C,
- sub_805E5B4
-};
-
-const u8 gUnknown_083754A4[] = {DIR_NORTH, DIR_SOUTH, DIR_EAST, DIR_WEST};
-
-u8 (*const gUnknown_083754A8[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EB98,
- sub_805E5B4
-};
-
-const u8 gUnknown_083754B4[] = {DIR_EAST, DIR_WEST, DIR_NORTH, DIR_SOUTH};
-
-u8 (*const gUnknown_083754B8[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EC24,
- sub_805E5B4
-};
-
-const u8 gUnknown_083754C4[] = {DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH};
-
-u8 (*const gUnknown_083754C8[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805ECB0,
- sub_805E5B4
-};
-
-const u8 gUnknown_083754D4[] = {DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST};
-
-u8 (*const gUnknown_083754D8[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805ED3C,
- sub_805E5B4
-};
-
-const u8 gUnknown_083754E4[] = {DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST};
-
-u8 (*const gUnknown_083754E8[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EDC8,
- sub_805E5B4
-};
-
-const u8 gUnknown_083754F4[] = {DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
-
-u8 (*const gUnknown_083754F8[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EE54,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375504[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH};
-
-u8 (*const gUnknown_08375508[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EEE0,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375514[] = {DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST};
-
-u8 (*const gUnknown_08375518[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EF6C,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375524[] = {DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST};
-
-u8 (*const gUnknown_08375528[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805EFF8,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375534[] = {DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_NORTH};
-
-u8 (*const gUnknown_08375538[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805F084,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375544[] = {DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH};
-
-u8 (*const gUnknown_08375548[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805F110,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375554[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST};
-
-u8 (*const gUnknown_08375558[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805F19C,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375564[] = {DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_EAST};
-
-u8 (*const gUnknown_08375568[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805F228,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375574[] = {DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH};
-
-u8 (*const gUnknown_08375578[])(struct MapObject *, struct Sprite *) = {
- sub_805E4EC,
- sub_805F2B4,
- sub_805E5B4
-};
-
-const u8 gUnknown_08375584[] = {DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH};
-
-u8 (*const gUnknown_08375588[])(struct MapObject *, struct Sprite *) = {
- mss_npc_reset_oampriv3_1_unk2_unk3,
- sub_805F364,
- sub_805F3C4
-};
-
-u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)) = {
- sub_805F3EC,
- sub_805F3F0,
- sub_805F438,
- sub_805F4F0,
- sub_805F5A8,
- sub_805F660,
- cph_IM_DIFFERENT,
- sub_805F760,
- oac_hopping,
- sub_805F3EC,
- sub_805F3EC
-};
-
-u8 (*const gUnknown_083755C0[])(struct MapObject *, struct Sprite *) = {
- mss_npc_reset_oampriv3_1_unk2_unk3,
- mss_08062EA4,
- sub_805F3C4
-};
-
-u8 (*const gUnknown_083755CC[])(struct MapObject *, struct Sprite *) = {
- sub_805FAF8
-};
-
-u8 (*const gUnknown_083755D0[])(struct MapObject *, struct Sprite *) = {
- sub_805FB64,
- sub_805FB04
-};
-
-u8 (*const gUnknown_083755D8[])(struct MapObject *, struct Sprite *) = {
- sub_805FBD4,
- sub_805FB04
-};
-
-u8 (*const gUnknown_083755E0[])(struct MapObject *, struct Sprite *) = {
- sub_805FC44,
- sub_805FB04
-};
-
-u8 (*const gUnknown_083755E8[])(struct MapObject *, struct Sprite *) = {
- sub_805FCB4,
- sub_805FCE8,
- sub_805FD08
-};
-
-#endif //POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H
diff --git a/include/data/field_map_obj/field_effect_object_template_pointers.h b/include/data/field_map_obj/field_effect_object_template_pointers.h
deleted file mode 100644
index 8e19747ce..000000000
--- a/include/data/field_map_obj/field_effect_object_template_pointers.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H
-#define POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowSmall;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowMedium;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowLarge;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowExtraLarge;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_TallGrass;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Ripple;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Ash;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_SurfBlob;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Arrow;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Dust;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpTallGrass;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_SandFootprints;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpBigSplash;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Splash;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpSmallSplash;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_LongGrass;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpLongGrass;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown21;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_MountainDisguise;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Bird;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_BikeTireTracks;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_SandDisguise;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_SandPile;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShortGrass;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_HotSpringsWater;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_PopOutOfAsh;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_LavaridgeGymWarp;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Bubbles;
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Sparkle;
-
-const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = {
- &gFieldEffectSpriteTemplate_ShadowSmall,
- &gFieldEffectSpriteTemplate_ShadowMedium,
- &gFieldEffectSpriteTemplate_ShadowLarge,
- &gFieldEffectSpriteTemplate_ShadowExtraLarge,
- &gFieldEffectSpriteTemplate_TallGrass,
- &gFieldEffectSpriteTemplate_Ripple,
- &gFieldEffectSpriteTemplate_Ash,
- &gFieldEffectSpriteTemplate_SurfBlob,
- &gFieldEffectSpriteTemplate_Arrow,
- &gFieldEffectSpriteTemplate_Dust,
- &gFieldEffectSpriteTemplate_JumpTallGrass,
- &gFieldEffectSpriteTemplate_SandFootprints,
- &gFieldEffectSpriteTemplate_JumpBigSplash,
- &gFieldEffectSpriteTemplate_Splash,
- &gFieldEffectSpriteTemplate_JumpSmallSplash,
- &gFieldEffectSpriteTemplate_LongGrass,
- &gFieldEffectSpriteTemplate_JumpLongGrass,
- &gFieldEffectSpriteTemplate_Unknown17,
- &gFieldEffectSpriteTemplate_Unknown18,
- &gFieldEffectSpriteTemplate_Unknown19,
- &gFieldEffectSpriteTemplate_Unknown20,
- &gFieldEffectSpriteTemplate_Unknown21,
- &gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle,
- &gFieldEffectSpriteTemplate_DeepSandFootprints,
- &gFieldEffectSpriteTemplate_TreeDisguise,
- &gFieldEffectSpriteTemplate_MountainDisguise,
- &gFieldEffectSpriteTemplate_Bird,
- &gFieldEffectSpriteTemplate_BikeTireTracks,
- &gFieldEffectSpriteTemplate_SandDisguise,
- &gFieldEffectSpriteTemplate_SandPile,
- &gFieldEffectSpriteTemplate_ShortGrass,
- &gFieldEffectSpriteTemplate_HotSpringsWater,
- &gFieldEffectSpriteTemplate_PopOutOfAsh,
- &gFieldEffectSpriteTemplate_LavaridgeGymWarp,
- &gFieldEffectSpriteTemplate_Bubbles,
- &gFieldEffectSpriteTemplate_Sparkle
-};
-
-#endif //POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H
diff --git a/include/data/field_map_obj/field_effect_objects.h b/include/data/field_map_obj/field_effect_objects.h
deleted file mode 100644
index dc8a38542..000000000
--- a/include/data/field_map_obj/field_effect_objects.h
+++ /dev/null
@@ -1,897 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_FIELD_EFFECT_OBJECTS_H
-#define POKERUBY_FIELD_EFFECT_OBJECTS_H
-
-const struct SpritePalette gFieldEffectObjectPaletteInfo0 = {gFieldEffectObjectPalette0, 0x1004};
-
-const struct SpritePalette gFieldEffectObjectPaletteInfo1 = {gFieldEffectObjectPalette1, 0x1005};
-
-const union AnimCmd gFieldEffectAnim_8374534[] = {
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Shadow[] = {
- gFieldEffectAnim_8374534
-};
-
-const struct SpriteFrameImage gFieldEffectPicTable_ShadowSmall[] = {
- obj_frame_tiles(gFieldEffectPic_ShadowSmall)
-};
-
-const struct SpriteFrameImage gFieldEffectPicTable_ShadowMedium[] = {
- obj_frame_tiles(gFieldEffectPic_ShadowMedium)
-};
-
-const struct SpriteFrameImage gFieldEffectPicTable_ShadowLarge[] = {
- obj_frame_tiles(gFieldEffectPic_ShadowLarge)
-};
-
-const struct SpriteFrameImage gFieldEffectPicTable_ShadowExtraLarge[] = {
- obj_frame_tiles(gFieldEffectPic_ShadowExtraLarge)
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gFieldOamData_8x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, oamc_shadow};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowMedium = {0xFFFF, 0xFFFF, &gFieldOamData_16x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, oamc_shadow};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowLarge = {0xFFFF, 0xFFFF, &gFieldOamData_32x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, oamc_shadow};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gFieldOamData_64x32, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, oamc_shadow};
-
-const struct SpriteFrameImage gFieldEffectPicTable_TallGrass[] = {
- obj_frame_tiles(gFieldEffectPic_TallGrass_0),
- obj_frame_tiles(gFieldEffectPic_TallGrass_1),
- obj_frame_tiles(gFieldEffectPic_TallGrass_2),
- obj_frame_tiles(gFieldEffectPic_TallGrass_3),
- obj_frame_tiles(gFieldEffectPic_TallGrass_4)
-};
-
-const union AnimCmd gFieldEffectAnim_83745E8[] = {
- ANIMCMD_FRAME(1, 10),
- ANIMCMD_FRAME(2, 10),
- ANIMCMD_FRAME(3, 10),
- ANIMCMD_FRAME(4, 10),
- ANIMCMD_FRAME(0, 10),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_TallGrass[] = {
- gFieldEffectAnim_83745E8
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_TallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_TallGrass, gFieldEffectPicTable_TallGrass, gDummySpriteAffineAnimTable, unc_grass_normal};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Ripple[] = {
- obj_frame_tiles(gFieldEffectPic_Ripple_0),
- obj_frame_tiles(gFieldEffectPic_Ripple_1),
- obj_frame_tiles(gFieldEffectPic_Ripple_2),
- obj_frame_tiles(gFieldEffectPic_Ripple_3),
- obj_frame_tiles(gFieldEffectPic_Ripple_4)
-};
-
-const union AnimCmd gFieldEffectAnim_8374644[] = {
- ANIMCMD_FRAME(0, 12),
- ANIMCMD_FRAME(1, 9),
- ANIMCMD_FRAME(2, 9),
- ANIMCMD_FRAME(3, 9),
- ANIMCMD_FRAME(0, 9),
- ANIMCMD_FRAME(1, 9),
- ANIMCMD_FRAME(2, 11),
- ANIMCMD_FRAME(4, 11),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Ripple[] = {
- gFieldEffectAnim_8374644
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Ripple = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ripple, gFieldEffectPicTable_Ripple, gDummySpriteAffineAnimTable, sub_8128800};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Ash[] = {
- obj_frame_tiles(gFieldEffectPic_Ash_0),
- obj_frame_tiles(gFieldEffectPic_Ash_1),
- obj_frame_tiles(gFieldEffectPic_Ash_2),
- obj_frame_tiles(gFieldEffectPic_Ash_3),
- obj_frame_tiles(gFieldEffectPic_Ash_4)
-};
-
-const union AnimCmd gFieldEffectAnim_83746AC[] = {
- ANIMCMD_FRAME(0, 12),
- ANIMCMD_FRAME(1, 12),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(3, 12),
- ANIMCMD_FRAME(4, 12),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Ash[] = {
- gFieldEffectAnim_83746AC
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Ash = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ash, gFieldEffectPicTable_Ash, gDummySpriteAffineAnimTable, sub_8127D84};
-
-const struct SpriteFrameImage gFieldEffectPicTable_SurfBlob[] = {
- obj_frame_tiles(gFieldEffectPic_SurfBlob_0),
- obj_frame_tiles(gFieldEffectPic_SurfBlob_1),
- obj_frame_tiles(gFieldEffectPic_SurfBlob_2)
-};
-
-const union AnimCmd gFieldEffectAnim_83746F8[] = {
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gFieldEffectAnim_8374700[] = {
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gFieldEffectAnim_8374708[] = {
- ANIMCMD_FRAME(2, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gFieldEffectAnim_8374710[] = {
- ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_SurfBlob[] = {
- gFieldEffectAnim_83746F8,
- gFieldEffectAnim_8374700,
- gFieldEffectAnim_8374708,
- gFieldEffectAnim_8374710
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gFieldOamData_32x32, gFieldEffectAnimTable_SurfBlob, gFieldEffectPicTable_SurfBlob, gDummySpriteAffineAnimTable, sub_8127F7C};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Arrow[] = {
- obj_frame_tiles(gFieldEffectPic_Arrow_0),
- obj_frame_tiles(gFieldEffectPic_Arrow_1),
- obj_frame_tiles(gFieldEffectPic_Arrow_2),
- obj_frame_tiles(gFieldEffectPic_Arrow_3),
- obj_frame_tiles(gFieldEffectPic_Arrow_4),
- obj_frame_tiles(gFieldEffectPic_Arrow_5),
- obj_frame_tiles(gFieldEffectPic_Arrow_6),
- obj_frame_tiles(gFieldEffectPic_Arrow_7)
-};
-
-const union AnimCmd gFieldEffectAnim_8374780[] = {
- ANIMCMD_FRAME(3, 32),
- ANIMCMD_FRAME(7, 32),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gFieldEffectAnim_837478C[] = {
- ANIMCMD_FRAME(0, 32),
- ANIMCMD_FRAME(4, 32),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gFieldEffectAnim_8374798[] = {
- ANIMCMD_FRAME(1, 32),
- ANIMCMD_FRAME(5, 32),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gFieldEffectAnim_83747A4[] = {
- ANIMCMD_FRAME(2, 32),
- ANIMCMD_FRAME(6, 32),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Arrow[] = {
- gFieldEffectAnim_8374780,
- gFieldEffectAnim_837478C,
- gFieldEffectAnim_8374798,
- gFieldEffectAnim_83747A4
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Arrow = {0xFFFF, 0xFFFF, &gFieldOamData_16x16, gFieldEffectAnimTable_Arrow, gFieldEffectPicTable_Arrow, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Dust[] = {
- obj_frame_tiles(gFieldEffectPic_Dust_0),
- obj_frame_tiles(gFieldEffectPic_Dust_1),
- obj_frame_tiles(gFieldEffectPic_Dust_2)
-};
-
-const union AnimCmd gFieldEffectAnim_83747F0[] = {
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Dust[] = {
- gFieldEffectAnim_83747F0
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Dust = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Dust, gFieldEffectPicTable_Dust, gDummySpriteAffineAnimTable, sub_81287C4};
-
-const struct SpriteFrameImage gFieldEffectPicTable_JumpTallGrass[] = {
- obj_frame_tiles(gFieldEffectPic_JumpTallGrass_0),
- obj_frame_tiles(gFieldEffectPic_JumpTallGrass_1),
- obj_frame_tiles(gFieldEffectPic_JumpTallGrass_2),
- obj_frame_tiles(gFieldEffectPic_JumpTallGrass_3)
-};
-
-const union AnimCmd gFieldEffectAnim_837483C[] = {
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(3, 8),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_JumpTallGrass[] = {
- gFieldEffectAnim_837483C
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpTallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpTallGrass, gFieldEffectPicTable_JumpTallGrass, gDummySpriteAffineAnimTable, sub_81287C4};
-
-const struct SpriteFrameImage gFieldEffectPicTable_SandFootprints[] = {
- obj_frame_tiles(gFieldEffectPic_SandFootprints_0),
- obj_frame_tiles(gFieldEffectPic_SandFootprints_1)
-};
-
-const union AnimCmd gFieldEffectAnim_837487C[] = {
- ANIMCMD_FRAME(0, 1, .vFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_8374884[] = {
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_837488C[] = {
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_8374894[] = {
- ANIMCMD_FRAME(1, 1, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_SandFootprints[] = {
- gFieldEffectAnim_837487C,
- gFieldEffectAnim_837487C,
- gFieldEffectAnim_8374884,
- gFieldEffectAnim_837488C,
- gFieldEffectAnim_8374894
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_SandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_SandFootprints, gFieldEffectPicTable_SandFootprints, gDummySpriteAffineAnimTable, sub_8127584};
-
-const struct SpriteFrameImage gFieldEffectPicTable_DeepSandFootprints[] = {
- obj_frame_tiles(gFieldEffectPic_DeepSandFootprints_0),
- obj_frame_tiles(gFieldEffectPic_DeepSandFootprints_1)
-};
-
-const union AnimCmd gFieldEffectAnim_83748D8[] = {
- ANIMCMD_FRAME(0, 1, .vFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_83748E0[] = {
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_83748E8[] = {
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_83748F0[] = {
- ANIMCMD_FRAME(1, 1, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_DeepSandFootprints[] = {
- gFieldEffectAnim_83748D8,
- gFieldEffectAnim_83748D8,
- gFieldEffectAnim_83748E0,
- gFieldEffectAnim_83748E8,
- gFieldEffectAnim_83748F0
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_DeepSandFootprints, gFieldEffectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, sub_8127584};
-
-const struct SpriteFrameImage gFieldEffectPicTable_BikeTireTracks[] = {
- obj_frame_tiles(gFieldEffectPic_BikeTireTracks_0),
- obj_frame_tiles(gFieldEffectPic_BikeTireTracks_1),
- obj_frame_tiles(gFieldEffectPic_BikeTireTracks_2),
- obj_frame_tiles(gFieldEffectPic_BikeTireTracks_3)
-};
-
-const union AnimCmd gFieldEffectAnim_8374944[] = {
- ANIMCMD_FRAME(2, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_837494C[] = {
- ANIMCMD_FRAME(2, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_8374954[] = {
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_837495C[] = {
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_8374964[] = {
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_837496C[] = {
- ANIMCMD_FRAME(0, 1, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_8374974[] = {
- ANIMCMD_FRAME(3, 1, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_837497C[] = {
- ANIMCMD_FRAME(3, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_BikeTireTracks[] = {
- gFieldEffectAnim_8374944,
- gFieldEffectAnim_8374944,
- gFieldEffectAnim_837494C,
- gFieldEffectAnim_8374954,
- gFieldEffectAnim_837495C,
- gFieldEffectAnim_8374964,
- gFieldEffectAnim_837496C,
- gFieldEffectAnim_8374974,
- gFieldEffectAnim_837497C
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_BikeTireTracks, gFieldEffectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, sub_8127584};
-
-const struct SpriteFrameImage gFieldEffectPicTable_JumpBigSplash[] = {
- obj_frame_tiles(gFieldEffectPic_JumpBigSplash_0),
- obj_frame_tiles(gFieldEffectPic_JumpBigSplash_1),
- obj_frame_tiles(gFieldEffectPic_JumpBigSplash_2),
- obj_frame_tiles(gFieldEffectPic_JumpBigSplash_3)
-};
-
-const union AnimCmd gFieldEffectAnim_83749E0[] = {
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(3, 8),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_JumpBigSplash[] = {
- gFieldEffectAnim_83749E0
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpBigSplash = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpBigSplash, gFieldEffectPicTable_JumpBigSplash, gDummySpriteAffineAnimTable, sub_81287C4};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Splash[] = {
- obj_frame_tiles(gFieldEffectPic_Splash_0),
- obj_frame_tiles(gFieldEffectPic_Splash_1)
-};
-
-const union AnimCmd gFieldEffectAnim_8374A20[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_8374A2C[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(0, 6),
- ANIMCMD_FRAME(1, 6),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(0, 6),
- ANIMCMD_FRAME(1, 6),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Splash[] = {
- gFieldEffectAnim_8374A20,
- gFieldEffectAnim_8374A2C
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Splash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Splash, gFieldEffectPicTable_Splash, gDummySpriteAffineAnimTable, sub_81276B4};
-
-const struct SpriteFrameImage gFieldEffectPicTable_JumpSmallSplash[] = {
- obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_0),
- obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_1),
- obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_2)
-};
-
-const union AnimCmd gFieldEffectAnim_8374A88[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_JumpSmallSplash[] = {
- gFieldEffectAnim_8374A88
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpSmallSplash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpSmallSplash, gFieldEffectPicTable_JumpSmallSplash, gDummySpriteAffineAnimTable, sub_81287C4};
-
-const struct SpriteFrameImage gFieldEffectPicTable_LongGrass[] = {
- obj_frame_tiles(gFieldEffectPic_LongGrass_0),
- obj_frame_tiles(gFieldEffectPic_LongGrass_1),
- obj_frame_tiles(gFieldEffectPic_LongGrass_2),
- obj_frame_tiles(gFieldEffectPic_LongGrass_3)
-};
-
-const union AnimCmd gFieldEffectAnim_8374AD4[] = {
- ANIMCMD_FRAME(1, 3),
- ANIMCMD_FRAME(2, 3),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_LongGrass[] = {
- gFieldEffectAnim_8374AD4
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_LongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_LongGrass, gFieldEffectPicTable_LongGrass, gDummySpriteAffineAnimTable, unc_grass_tall};
-
-const struct SpriteFrameImage gFieldEffectPicTable_JumpLongGrass[] = {
- obj_frame_tiles(gFieldEffectPic_JumpLongGrass_0),
- obj_frame_tiles(gFieldEffectPic_JumpLongGrass_1),
- obj_frame_tiles(gFieldEffectPic_JumpLongGrass_2),
- obj_frame_tiles(gFieldEffectPic_JumpLongGrass_3),
- obj_frame_tiles(gFieldEffectPic_JumpLongGrass_4),
- obj_frame_tiles(gFieldEffectPic_JumpLongGrass_5)
-};
-
-const union AnimCmd gFieldEffectAnim_8374B40[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(3, 8),
- ANIMCMD_FRAME(4, 8),
- ANIMCMD_FRAME(5, 8),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_JumpLongGrass[] = {
- gFieldEffectAnim_8374B40
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpLongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpLongGrass, gFieldEffectPicTable_JumpLongGrass, gDummySpriteAffineAnimTable, sub_81287C4};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Unknown17[] = {
- obj_frame_tiles(gFieldEffectPic_JumpLongGrass_5),
- obj_frame_tiles(gFieldEffectPic_Unknown17_0),
- obj_frame_tiles(gFieldEffectPic_Unknown17_1),
- obj_frame_tiles(gFieldEffectPic_Unknown17_2),
- obj_frame_tiles(gFieldEffectPic_Unknown17_3),
- obj_frame_tiles(gFieldEffectPic_Unknown17_4),
- obj_frame_tiles(gFieldEffectPic_Unknown17_5),
- obj_frame_tiles(gFieldEffectPic_Unknown17_6),
- obj_frame_tiles(gFieldEffectPic_Unknown17_7)
-};
-
-const union AnimCmd gFieldEffectAnim_8374BC0[] = {
- ANIMCMD_FRAME(0, 10),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(4, 4),
- ANIMCMD_FRAME(5, 4),
- ANIMCMD_FRAME(6, 4),
- ANIMCMD_FRAME(7, 4),
- ANIMCMD_FRAME(8, 4),
- ANIMCMD_JUMP(7)
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Unknown17[] = {
- gFieldEffectAnim_8374BC0
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown17, gFieldEffectPicTable_Unknown17, gDummySpriteAffineAnimTable, sub_8128800};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Unknown18[] = {
- obj_frame_tiles(gFieldEffectPic_Unknown18_0),
- obj_frame_tiles(gFieldEffectPic_Unknown18_1),
- obj_frame_tiles(gFieldEffectPic_Unknown18_2),
- obj_frame_tiles(gFieldEffectPic_Unknown18_3)
-};
-
-const union AnimCmd gFieldEffectAnim_8374C24[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Unknown18[] = {
- gFieldEffectAnim_8374C24
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown18, gFieldEffectPicTable_Unknown18, gDummySpriteAffineAnimTable, sub_8128800};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Unknown19[] = {
- obj_frame_tiles(gFieldEffectPic_Unknown19_0),
- obj_frame_tiles(gFieldEffectPic_Unknown19_1),
- obj_frame_tiles(gFieldEffectPic_Unknown19_2),
- obj_frame_tiles(gFieldEffectPic_Unknown19_3)
-};
-
-const union AnimCmd gFieldEffectAnim_8374C7C[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Unknown19[] = {
- gFieldEffectAnim_8374C7C
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown19, gFieldEffectPicTable_Unknown19, gDummySpriteAffineAnimTable, sub_8128800};
-
-const struct SpriteFrameImage gFieldEffectPicTable_SandPile[] = {
- obj_frame_tiles(gFieldEffectPic_SandPile_0),
- obj_frame_tiles(gFieldEffectPic_SandPile_1),
- obj_frame_tiles(gFieldEffectPic_SandPile_2)
-};
-
-const union AnimCmd gFieldEffectAnim_8374CC4[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_SandPile[] = {
- gFieldEffectAnim_8374CC4
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_SandPile = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_SandPile, gFieldEffectPicTable_SandPile, gDummySpriteAffineAnimTable, sub_81282E0};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Unknown20[] = {
- obj_frame_tiles(gFieldEffectPic_Unknown20_0),
- obj_frame_tiles(gFieldEffectPic_Unknown20_1),
- obj_frame_tiles(gFieldEffectPic_Unknown20_2),
- obj_frame_tiles(gFieldEffectPic_Unknown20_3)
-};
-
-const union AnimCmd gFieldEffectAnim_8374D10[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Unknown20[] = {
- gFieldEffectAnim_8374D10
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown20, gFieldEffectPicTable_Unknown20, gDummySpriteAffineAnimTable, sub_8128800};
-
-const union AffineAnimCmd gFieldEffectAffineAnim_8374D48[] = {
- AFFINEANIMCMD_FRAME(0xFF00, 0x100, -128, 0),
- AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
- AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
- AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
- AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
- AFFINEANIMCMD_JUMP(1)
-};
-
-const union AffineAnimCmd gFieldEffectAffineAnim_8374D98[] = {
- AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0),
- AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
- AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
- AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
- AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
- AFFINEANIMCMD_JUMP(1)
-};
-
-const union AffineAnimCmd *const gFieldEffectAffineAnimTable_Unknown21[] = {
- gFieldEffectAffineAnim_8374D48,
- gFieldEffectAffineAnim_8374D98
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectAffineAnimTable_Unknown21, SpriteCallbackDummy};
-
-const struct SpriteFrameImage gFieldEffectPicTable_BerryTreeGrowthSparkle[] = {
- obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_0),
- obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_1),
- obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_2),
- obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_3),
- obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_4),
- obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_5)
-};
-
-const union AnimCmd gFieldEffectAnim_8374E38[] = {
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(3, 8),
- ANIMCMD_FRAME(4, 8),
- ANIMCMD_FRAME(5, 8),
- ANIMCMD_LOOP(0),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(4, 4),
- ANIMCMD_FRAME(5, 4),
- ANIMCMD_LOOP(3),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(3, 8),
- ANIMCMD_FRAME(4, 8),
- ANIMCMD_FRAME(5, 8),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_BerryTreeGrowthSparkle[] = {
- gFieldEffectAnim_8374E38
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gFieldOamData_16x16, gFieldEffectAnimTable_BerryTreeGrowthSparkle, gFieldEffectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, sub_8128800};
-
-const struct SpriteFrameImage gFieldEffectPicTable_TreeDisguise[] = {
- obj_frame_tiles(gFieldEffectPic_TreeDisguise_0),
- obj_frame_tiles(gFieldEffectPic_TreeDisguise_1),
- obj_frame_tiles(gFieldEffectPic_TreeDisguise_2),
- obj_frame_tiles(gFieldEffectPic_TreeDisguise_3),
- obj_frame_tiles(gFieldEffectPic_TreeDisguise_4),
- obj_frame_tiles(gFieldEffectPic_TreeDisguise_5),
- obj_frame_tiles(gFieldEffectPic_TreeDisguise_6)
-};
-
-const union AnimCmd gFieldEffectAnim_8374EE0[] = {
- ANIMCMD_FRAME(0, 16),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_8374EE8[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(4, 4),
- ANIMCMD_FRAME(5, 4),
- ANIMCMD_FRAME(6, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_TreeDisguise[] = {
- gFieldEffectAnim_8374EE0,
- gFieldEffectAnim_8374EE8
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, sub_81285AC};
-
-const struct SpriteFrameImage gFieldEffectPicTable_MountainDisguise[] = {
- obj_frame_tiles(gFieldEffectPic_MountainDisguise_0),
- obj_frame_tiles(gFieldEffectPic_MountainDisguise_1),
- obj_frame_tiles(gFieldEffectPic_MountainDisguise_2),
- obj_frame_tiles(gFieldEffectPic_MountainDisguise_3),
- obj_frame_tiles(gFieldEffectPic_MountainDisguise_4),
- obj_frame_tiles(gFieldEffectPic_MountainDisguise_5),
- obj_frame_tiles(gFieldEffectPic_MountainDisguise_6)
-};
-
-const union AnimCmd gFieldEffectAnim_8374F60[] = {
- ANIMCMD_FRAME(0, 16),
- ANIMCMD_END
-};
-
-const union AnimCmd gFieldEffectAnim_8374F68[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(4, 4),
- ANIMCMD_FRAME(5, 4),
- ANIMCMD_FRAME(6, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_MountainDisguise[] = {
- gFieldEffectAnim_8374F60,
- gFieldEffectAnim_8374F68
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_MountainDisguise, gFieldEffectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, sub_81285AC};
-
-const struct SpriteFrameImage gFieldEffectPicTable_SandDisguise[] = {
- obj_frame_tiles(gFieldEffectPic_SandDisguise_0),
- obj_frame_tiles(gFieldEffectPic_SandDisguise_1),
- obj_frame_tiles(gFieldEffectPic_SandDisguise_2),
- obj_frame_tiles(gFieldEffectPic_SandDisguise_3),
- obj_frame_tiles(gFieldEffectPic_SandDisguise_4),
- obj_frame_tiles(gFieldEffectPic_SandDisguise_5),
- obj_frame_tiles(gFieldEffectPic_SandDisguise_6)
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_SandDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_SandDisguise, gDummySpriteAffineAnimTable, sub_81285AC};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Bird[] = {
- obj_frame_tiles(gFieldEffectPic_Bird)
-};
-
-const union AnimCmd gFieldEffectAnim_8375000[] = {
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Bird[] = {
- gFieldEffectAnim_8375000
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Bird = {0xFFFF, 0xFFFF, &gFieldOamData_32x32, gFieldEffectAnimTable_Bird, gFieldEffectPicTable_Bird, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
-
-const struct SpriteFrameImage gFieldEffectPicTable_ShortGrass[] = {
- obj_frame_tiles(gFieldEffectPic_ShortGrass_0),
- obj_frame_tiles(gFieldEffectPic_ShortGrass_1)
-};
-
-const union AnimCmd gFieldEffectAnim_8375034[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_ShortGrass[] = {
- gFieldEffectAnim_8375034
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_ShortGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_ShortGrass, gFieldEffectPicTable_ShortGrass, gDummySpriteAffineAnimTable, sub_8127334};
-
-const struct SpriteFrameImage gFieldEffectPicTable_HotSpringsWater[] = {
- obj_frame_tiles(gFieldEffectPic_HotSpringsWater)
-};
-
-const union AnimCmd gFieldEffectAnim_8375064[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_HotSpringsWater[] = {
- gFieldEffectAnim_8375064
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_HotSpringsWater, gFieldEffectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, sub_8127A7C};
-
-const struct SpriteFrameImage gFieldEffectPicTable_PopOutOfAsh[] = {
- obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_0),
- obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_1),
- obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_2),
- obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_3),
- obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_4)
-};
-
-const union AnimCmd gFieldEffectAnim_83750B0[] = {
- ANIMCMD_FRAME(0, 6),
- ANIMCMD_FRAME(1, 6),
- ANIMCMD_FRAME(2, 6),
- ANIMCMD_FRAME(3, 6),
- ANIMCMD_FRAME(4, 6),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_PopOutOfAsh[] = {
- gFieldEffectAnim_83750B0
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_PopOutOfAsh = {0xFFFF, 0x100D, &gFieldOamData_16x16, gFieldEffectAnimTable_PopOutOfAsh, gFieldEffectPicTable_PopOutOfAsh, gDummySpriteAffineAnimTable, sub_808788C};
-
-const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, 0x100D};
-
-const struct SpriteFrameImage gFieldEffectPicTable_LavaridgeGymWarp[] = {
- obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_0),
- obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_1),
- obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_2),
- obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_3),
- obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_4)
-};
-
-const union AnimCmd gFieldEffectAnim_8375114[] = {
- ANIMCMD_FRAME(0, 6),
- ANIMCMD_FRAME(1, 6),
- ANIMCMD_FRAME(2, 6),
- ANIMCMD_FRAME(3, 6),
- ANIMCMD_FRAME(4, 6),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_LavaridgeGymWarp[] = {
- gFieldEffectAnim_8375114
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_LavaridgeGymWarp = {0xFFFF, 0x100D, &gFieldOamData_16x16, gFieldEffectAnimTable_LavaridgeGymWarp, gFieldEffectPicTable_LavaridgeGymWarp, gDummySpriteAffineAnimTable, sub_8087638};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Bubbles[] = {
- obj_frame_tiles(gFieldEffectPic_Bubbles_0),
- obj_frame_tiles(gFieldEffectPic_Bubbles_1),
- obj_frame_tiles(gFieldEffectPic_Bubbles_2),
- obj_frame_tiles(gFieldEffectPic_Bubbles_3),
- obj_frame_tiles(gFieldEffectPic_Bubbles_4),
- obj_frame_tiles(gFieldEffectPic_Bubbles_5),
- obj_frame_tiles(gFieldEffectPic_Bubbles_6),
- obj_frame_tiles(gFieldEffectPic_Bubbles_7)
-};
-
-const union AnimCmd gFieldEffectAnim_8375188[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 6),
- ANIMCMD_FRAME(4, 6),
- ANIMCMD_FRAME(5, 4),
- ANIMCMD_FRAME(6, 4),
- ANIMCMD_FRAME(7, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Bubbles[] = {
- gFieldEffectAnim_8375188
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Bubbles = {0xFFFF, 0x1004, &gFieldOamData_16x32, gFieldEffectAnimTable_Bubbles, gFieldEffectPicTable_Bubbles, gDummySpriteAffineAnimTable, sub_8128410};
-
-const struct SpriteFrameImage gFieldEffectPicTable_Sparkle[] = {
- obj_frame_tiles(gFieldEffectPic_Sparkle_0),
- obj_frame_tiles(gFieldEffectPic_Sparkle_1)
-};
-
-const union AnimCmd gFieldEffectAnim_83751D8[] = {
- ANIMCMD_FRAME(0, 3),
- ANIMCMD_FRAME(1, 5),
- ANIMCMD_FRAME(0, 5),
- ANIMCMD_END
-};
-
-const union AnimCmd *const gFieldEffectAnimTable_Sparkle[] = {
- gFieldEffectAnim_83751D8
-};
-
-const struct SpriteTemplate gFieldEffectSpriteTemplate_Sparkle = {0xFFFF, 0x100F, &gFieldOamData_16x16, gFieldEffectAnimTable_Sparkle, gFieldEffectPicTable_Sparkle, gDummySpriteAffineAnimTable, sub_8128774};
-
-const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, 0x100F};
-
-#endif //POKERUBY_FIELD_EFFECT_OBJECTS_H
diff --git a/include/data/field_map_obj/map_object_anims.h b/include/data/field_map_obj/map_object_anims.h
deleted file mode 100644
index 0d6e299ee..000000000
--- a/include/data/field_map_obj/map_object_anims.h
+++ /dev/null
@@ -1,886 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_MAP_OBJECT_ANIMS_H
-#define POKERUBY_MAP_OBJECT_ANIMS_H
-
-
-const union AnimCmd gMapObjectImageAnim_83708C8[] = {
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83708DC[] = {
- ANIMCMD_FRAME(0, 16),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83708E4[] = {
- ANIMCMD_FRAME(1, 16),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83708EC[] = {
- ANIMCMD_FRAME(2, 16),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83708F4[] = {
- ANIMCMD_FRAME(2, 16, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83708FC[] = {
- ANIMCMD_FRAME(3, 8),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(3, 8, .hFlip = TRUE),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370910[] = {
- ANIMCMD_FRAME(4, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(4, 8, .hFlip = TRUE),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370924[] = {
- ANIMCMD_FRAME(5, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(6, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370938[] = {
- ANIMCMD_FRAME(5, 8, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
- ANIMCMD_FRAME(6, 8, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_837094C[] = {
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(3, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370960[] = {
- ANIMCMD_FRAME(4, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(4, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370974[] = {
- ANIMCMD_FRAME(5, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(6, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370988[] = {
- ANIMCMD_FRAME(5, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(6, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_837099C[] = {
- ANIMCMD_FRAME(3, 2),
- ANIMCMD_FRAME(0, 2),
- ANIMCMD_FRAME(3, 2, .hFlip = TRUE),
- ANIMCMD_FRAME(0, 2),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83709B0[] = {
- ANIMCMD_FRAME(4, 2),
- ANIMCMD_FRAME(1, 2),
- ANIMCMD_FRAME(4, 2, .hFlip = TRUE),
- ANIMCMD_FRAME(1, 2),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83709C4[] = {
- ANIMCMD_FRAME(5, 2),
- ANIMCMD_FRAME(2, 2),
- ANIMCMD_FRAME(6, 2),
- ANIMCMD_FRAME(2, 2),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83709D8[] = {
- ANIMCMD_FRAME(5, 2, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 2, .hFlip = TRUE),
- ANIMCMD_FRAME(6, 2, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 2, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_83709EC[] = {
- ANIMCMD_FRAME(3, 1),
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_FRAME(3, 1, .hFlip = TRUE),
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A00[] = {
- ANIMCMD_FRAME(4, 1),
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_FRAME(4, 1, .hFlip = TRUE),
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A14[] = {
- ANIMCMD_FRAME(5, 1),
- ANIMCMD_FRAME(2, 1),
- ANIMCMD_FRAME(6, 1),
- ANIMCMD_FRAME(2, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A28[] = {
- ANIMCMD_FRAME(5, 1, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
- ANIMCMD_FRAME(6, 1, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A3C[] = {
- ANIMCMD_FRAME(0, 16),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A44[] = {
- ANIMCMD_FRAME(1, 16),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A4C[] = {
- ANIMCMD_FRAME(2, 16),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A54[] = {
- ANIMCMD_FRAME(2, 16, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A5C[] = {
- ANIMCMD_FRAME(3, 8),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(4, 8),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A70[] = {
- ANIMCMD_FRAME(5, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(6, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A84[] = {
- ANIMCMD_FRAME(7, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(8, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370A98[] = {
- ANIMCMD_FRAME(7, 8, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
- ANIMCMD_FRAME(8, 8, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370AAC[] = {
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(4, 4),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370AC0[] = {
- ANIMCMD_FRAME(5, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(6, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370AD4[] = {
- ANIMCMD_FRAME(7, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(8, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370AE8[] = {
- ANIMCMD_FRAME(7, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(8, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370AFC[] = {
- ANIMCMD_FRAME(3, 2),
- ANIMCMD_FRAME(0, 2),
- ANIMCMD_FRAME(4, 2),
- ANIMCMD_FRAME(0, 2),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370B10[] = {
- ANIMCMD_FRAME(5, 2),
- ANIMCMD_FRAME(1, 2),
- ANIMCMD_FRAME(6, 2),
- ANIMCMD_FRAME(1, 2),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370B24[] = {
- ANIMCMD_FRAME(7, 2),
- ANIMCMD_FRAME(2, 2),
- ANIMCMD_FRAME(8, 2),
- ANIMCMD_FRAME(2, 2),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370B38[] = {
- ANIMCMD_FRAME(7, 2, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 2, .hFlip = TRUE),
- ANIMCMD_FRAME(8, 2, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 2, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370B4C[] = {
- ANIMCMD_FRAME(3, 1),
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_FRAME(4, 1),
- ANIMCMD_FRAME(0, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370B60[] = {
- ANIMCMD_FRAME(5, 1),
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_FRAME(6, 1),
- ANIMCMD_FRAME(1, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370B74[] = {
- ANIMCMD_FRAME(7, 1),
- ANIMCMD_FRAME(2, 1),
- ANIMCMD_FRAME(8, 1),
- ANIMCMD_FRAME(2, 1),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370B88[] = {
- ANIMCMD_FRAME(7, 1, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
- ANIMCMD_FRAME(8, 1, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370B9C[] = {
- ANIMCMD_FRAME(12, 5),
- ANIMCMD_FRAME(9, 3),
- ANIMCMD_FRAME(13, 5),
- ANIMCMD_FRAME(9, 3),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370BB0[] = {
- ANIMCMD_FRAME(14, 5),
- ANIMCMD_FRAME(10, 3),
- ANIMCMD_FRAME(15, 5),
- ANIMCMD_FRAME(10, 3),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370BC4[] = {
- ANIMCMD_FRAME(16, 5),
- ANIMCMD_FRAME(11, 3),
- ANIMCMD_FRAME(17, 5),
- ANIMCMD_FRAME(11, 3),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370BD8[] = {
- ANIMCMD_FRAME(16, 5, .hFlip = TRUE),
- ANIMCMD_FRAME(11, 3, .hFlip = TRUE),
- ANIMCMD_FRAME(17, 5, .hFlip = TRUE),
- ANIMCMD_FRAME(11, 3, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370BEC[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(4, 8),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C04[] = {
- ANIMCMD_FRAME(9, 32),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C0C[] = {
- ANIMCMD_FRAME(10, 32),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C14[] = {
- ANIMCMD_FRAME(11, 32),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C1C[] = {
- ANIMCMD_FRAME(11, 32, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C24[] = {
- ANIMCMD_FRAME(9, 4),
- ANIMCMD_FRAME(10, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C30[] = {
- ANIMCMD_FRAME(13, 4),
- ANIMCMD_FRAME(14, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C3C[] = {
- ANIMCMD_FRAME(17, 4),
- ANIMCMD_FRAME(18, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C48[] = {
- ANIMCMD_FRAME(17, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(18, 4, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C54[] = {
- ANIMCMD_FRAME(11, 4),
- ANIMCMD_FRAME(12, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C60[] = {
- ANIMCMD_FRAME(15, 4),
- ANIMCMD_FRAME(16, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C6C[] = {
- ANIMCMD_FRAME(19, 4),
- ANIMCMD_FRAME(20, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C78[] = {
- ANIMCMD_FRAME(19, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(20, 4, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C84[] = {
- ANIMCMD_FRAME(9, 4),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C90[] = {
- ANIMCMD_FRAME(13, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370C9C[] = {
- ANIMCMD_FRAME(17, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370CA8[] = {
- ANIMCMD_FRAME(17, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370CB4[] = {
- ANIMCMD_FRAME(11, 4),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370CC0[] = {
- ANIMCMD_FRAME(15, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370CCC[] = {
- ANIMCMD_FRAME(19, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370CD8[] = {
- ANIMCMD_FRAME(19, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370CE4[] = {
- ANIMCMD_FRAME(21, 4),
- ANIMCMD_FRAME(10, 4),
- ANIMCMD_FRAME(22, 4),
- ANIMCMD_FRAME(10, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370CF8[] = {
- ANIMCMD_FRAME(23, 4),
- ANIMCMD_FRAME(14, 4),
- ANIMCMD_FRAME(24, 4),
- ANIMCMD_FRAME(14, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D0C[] = {
- ANIMCMD_FRAME(25, 4),
- ANIMCMD_FRAME(18, 4),
- ANIMCMD_FRAME(26, 4),
- ANIMCMD_FRAME(18, 4),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D20[] = {
- ANIMCMD_FRAME(25, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(18, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(26, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(18, 4, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D34[] = {
- ANIMCMD_FRAME(0, 32),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D3C[] = {
- ANIMCMD_FRAME(1, 32),
- ANIMCMD_FRAME(2, 32),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D48[] = {
- ANIMCMD_FRAME(3, 48),
- ANIMCMD_FRAME(4, 48),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D54[] = {
- ANIMCMD_FRAME(5, 32),
- ANIMCMD_FRAME(5, 32),
- ANIMCMD_FRAME(6, 32),
- ANIMCMD_FRAME(6, 32),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D68[] = {
- ANIMCMD_FRAME(7, 48),
- ANIMCMD_FRAME(7, 48),
- ANIMCMD_FRAME(8, 48),
- ANIMCMD_FRAME(8, 48),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D7C[] = {
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(9, 32),
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370D8C[] = {
- ANIMCMD_FRAME(0, 8),
- ANIMCMD_FRAME(1, 8),
- ANIMCMD_FRAME(2, 8),
- ANIMCMD_FRAME(3, 8),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370DA0[] = {
- ANIMCMD_FRAME(0, 6),
- ANIMCMD_FRAME(1, 6),
- ANIMCMD_FRAME(2, 6),
- ANIMCMD_FRAME(3, 6),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370DB4[] = {
- ANIMCMD_FRAME(8, 4),
- ANIMCMD_FRAME(9, 4),
- ANIMCMD_FRAME(10, 4),
- ANIMCMD_FRAME(11, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370DC8[] = {
- ANIMCMD_FRAME(4, 4),
- ANIMCMD_FRAME(5, 4),
- ANIMCMD_FRAME(6, 4),
- ANIMCMD_FRAME(7, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370DDC[] = {
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370DF0[] = {
- ANIMCMD_FRAME(0, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(1, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(3, 4, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370E04[] = {
- ANIMCMD_FRAME(11, 4),
- ANIMCMD_FRAME(10, 6),
- ANIMCMD_FRAME(9, 6),
- ANIMCMD_FRAME(8, 6),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370E18[] = {
- ANIMCMD_FRAME(7, 4),
- ANIMCMD_FRAME(6, 6),
- ANIMCMD_FRAME(5, 6),
- ANIMCMD_FRAME(4, 6),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370E2C[] = {
- ANIMCMD_FRAME(3, 4),
- ANIMCMD_FRAME(2, 4),
- ANIMCMD_FRAME(1, 4),
- ANIMCMD_FRAME(0, 4),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370E40[] = {
- ANIMCMD_FRAME(3, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(1, 4, .hFlip = TRUE),
- ANIMCMD_FRAME(0, 4, .hFlip = TRUE),
- ANIMCMD_END
-};
-
-const union AnimCmd gMapObjectImageAnim_8370E54[] = {
- ANIMCMD_FRAME(10, 6),
- ANIMCMD_FRAME(11, 6),
- ANIMCMD_LOOP(1),
- ANIMCMD_FRAME(11, 30),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370E68[] = {
- ANIMCMD_FRAME(6, 6),
- ANIMCMD_FRAME(7, 6),
- ANIMCMD_LOOP(1),
- ANIMCMD_FRAME(7, 30),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370E7C[] = {
- ANIMCMD_FRAME(2, 6),
- ANIMCMD_FRAME(3, 6),
- ANIMCMD_LOOP(1),
- ANIMCMD_FRAME(3, 30),
- ANIMCMD_JUMP(0)
-};
-
-const union AnimCmd gMapObjectImageAnim_8370E90[] = {
- ANIMCMD_FRAME(2, 6, .hFlip = TRUE),
- ANIMCMD_FRAME(3, 6, .hFlip = TRUE),
- ANIMCMD_LOOP(1),
- ANIMCMD_FRAME(3, 30, .hFlip = TRUE),
- ANIMCMD_JUMP(0)
-};
-
-const union AffineAnimCmd gMapObjectRotScalAnim_8370EA4[] = {
- AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 1),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
- AFFINEANIMCMD_LOOP(7),
- AFFINEANIMCMD_JUMP(0)
-};
-
-const union AffineAnimCmd gMapObjectRotScalAnim_8370ED4[] = {
- AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 1),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
- AFFINEANIMCMD_LOOP(15),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 1),
- AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
- AFFINEANIMCMD_LOOP(15),
- AFFINEANIMCMD_JUMP(0)
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_Inanimate[] = {
- gMapObjectImageAnim_83708C8
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_QuintyPlump[] = {
- gMapObjectImageAnim_83708DC,
- gMapObjectImageAnim_83708E4,
- gMapObjectImageAnim_83708EC,
- gMapObjectImageAnim_83708F4,
- gMapObjectImageAnim_83708FC,
- gMapObjectImageAnim_8370910,
- gMapObjectImageAnim_8370924,
- gMapObjectImageAnim_8370938,
- gMapObjectImageAnim_837094C,
- gMapObjectImageAnim_8370960,
- gMapObjectImageAnim_8370974,
- gMapObjectImageAnim_8370988,
- gMapObjectImageAnim_837099C,
- gMapObjectImageAnim_83709B0,
- gMapObjectImageAnim_83709C4,
- gMapObjectImageAnim_83709D8,
- gMapObjectImageAnim_83709EC,
- gMapObjectImageAnim_8370A00,
- gMapObjectImageAnim_8370A14,
- gMapObjectImageAnim_8370A28
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_Standard[] = {
- gMapObjectImageAnim_8370A3C,
- gMapObjectImageAnim_8370A44,
- gMapObjectImageAnim_8370A4C,
- gMapObjectImageAnim_8370A54,
- gMapObjectImageAnim_8370A5C,
- gMapObjectImageAnim_8370A70,
- gMapObjectImageAnim_8370A84,
- gMapObjectImageAnim_8370A98,
- gMapObjectImageAnim_8370AAC,
- gMapObjectImageAnim_8370AC0,
- gMapObjectImageAnim_8370AD4,
- gMapObjectImageAnim_8370AE8,
- gMapObjectImageAnim_8370AFC,
- gMapObjectImageAnim_8370B10,
- gMapObjectImageAnim_8370B24,
- gMapObjectImageAnim_8370B38,
- gMapObjectImageAnim_8370B4C,
- gMapObjectImageAnim_8370B60,
- gMapObjectImageAnim_8370B74,
- gMapObjectImageAnim_8370B88
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_BrendanMayNormal[] = {
- gMapObjectImageAnim_8370A3C,
- gMapObjectImageAnim_8370A44,
- gMapObjectImageAnim_8370A4C,
- gMapObjectImageAnim_8370A54,
- gMapObjectImageAnim_8370A5C,
- gMapObjectImageAnim_8370A70,
- gMapObjectImageAnim_8370A84,
- gMapObjectImageAnim_8370A98,
- gMapObjectImageAnim_8370AAC,
- gMapObjectImageAnim_8370AC0,
- gMapObjectImageAnim_8370AD4,
- gMapObjectImageAnim_8370AE8,
- gMapObjectImageAnim_8370AFC,
- gMapObjectImageAnim_8370B10,
- gMapObjectImageAnim_8370B24,
- gMapObjectImageAnim_8370B38,
- gMapObjectImageAnim_8370B4C,
- gMapObjectImageAnim_8370B60,
- gMapObjectImageAnim_8370B74,
- gMapObjectImageAnim_8370B88,
- gMapObjectImageAnim_8370B9C,
- gMapObjectImageAnim_8370BB0,
- gMapObjectImageAnim_8370BC4,
- gMapObjectImageAnim_8370BD8
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_AcroBike[] = {
- gMapObjectImageAnim_8370A3C,
- gMapObjectImageAnim_8370A44,
- gMapObjectImageAnim_8370A4C,
- gMapObjectImageAnim_8370A54,
- gMapObjectImageAnim_8370A5C,
- gMapObjectImageAnim_8370A70,
- gMapObjectImageAnim_8370A84,
- gMapObjectImageAnim_8370A98,
- gMapObjectImageAnim_8370AAC,
- gMapObjectImageAnim_8370AC0,
- gMapObjectImageAnim_8370AD4,
- gMapObjectImageAnim_8370AE8,
- gMapObjectImageAnim_8370AFC,
- gMapObjectImageAnim_8370B10,
- gMapObjectImageAnim_8370B24,
- gMapObjectImageAnim_8370B38,
- gMapObjectImageAnim_8370B4C,
- gMapObjectImageAnim_8370B60,
- gMapObjectImageAnim_8370B74,
- gMapObjectImageAnim_8370B88,
- gMapObjectImageAnim_8370C24,
- gMapObjectImageAnim_8370C30,
- gMapObjectImageAnim_8370C3C,
- gMapObjectImageAnim_8370C48,
- gMapObjectImageAnim_8370C54,
- gMapObjectImageAnim_8370C60,
- gMapObjectImageAnim_8370C6C,
- gMapObjectImageAnim_8370C78,
- gMapObjectImageAnim_8370C84,
- gMapObjectImageAnim_8370C90,
- gMapObjectImageAnim_8370C9C,
- gMapObjectImageAnim_8370CA8,
- gMapObjectImageAnim_8370CB4,
- gMapObjectImageAnim_8370CC0,
- gMapObjectImageAnim_8370CCC,
- gMapObjectImageAnim_8370CD8,
- gMapObjectImageAnim_8370CE4,
- gMapObjectImageAnim_8370CF8,
- gMapObjectImageAnim_8370D0C,
- gMapObjectImageAnim_8370D20
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_Surfing[] = {
- gMapObjectImageAnim_8370A3C,
- gMapObjectImageAnim_8370A44,
- gMapObjectImageAnim_8370A4C,
- gMapObjectImageAnim_8370A54,
- gMapObjectImageAnim_8370A5C,
- gMapObjectImageAnim_8370A70,
- gMapObjectImageAnim_8370A84,
- gMapObjectImageAnim_8370A98,
- gMapObjectImageAnim_8370AAC,
- gMapObjectImageAnim_8370AC0,
- gMapObjectImageAnim_8370AD4,
- gMapObjectImageAnim_8370AE8,
- gMapObjectImageAnim_8370AFC,
- gMapObjectImageAnim_8370B10,
- gMapObjectImageAnim_8370B24,
- gMapObjectImageAnim_8370B38,
- gMapObjectImageAnim_8370B4C,
- gMapObjectImageAnim_8370B60,
- gMapObjectImageAnim_8370B74,
- gMapObjectImageAnim_8370B88,
- gMapObjectImageAnim_8370C04,
- gMapObjectImageAnim_8370C0C,
- gMapObjectImageAnim_8370C14,
- gMapObjectImageAnim_8370C1C
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_Nurse[] = {
- gMapObjectImageAnim_8370A3C,
- gMapObjectImageAnim_8370A44,
- gMapObjectImageAnim_8370A4C,
- gMapObjectImageAnim_8370A54,
- gMapObjectImageAnim_8370A5C,
- gMapObjectImageAnim_8370A70,
- gMapObjectImageAnim_8370A84,
- gMapObjectImageAnim_8370A98,
- gMapObjectImageAnim_8370AAC,
- gMapObjectImageAnim_8370AC0,
- gMapObjectImageAnim_8370AD4,
- gMapObjectImageAnim_8370AE8,
- gMapObjectImageAnim_8370AFC,
- gMapObjectImageAnim_8370B10,
- gMapObjectImageAnim_8370B24,
- gMapObjectImageAnim_8370B38,
- gMapObjectImageAnim_8370B4C,
- gMapObjectImageAnim_8370B60,
- gMapObjectImageAnim_8370B74,
- gMapObjectImageAnim_8370B88,
- gMapObjectImageAnim_8370D7C
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_FieldMove[] = {
- gMapObjectImageAnim_8370BEC
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_BerryTree[] = {
- gMapObjectImageAnim_8370D34,
- gMapObjectImageAnim_8370D3C,
- gMapObjectImageAnim_8370D48,
- gMapObjectImageAnim_8370D54,
- gMapObjectImageAnim_8370D68
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_BreakableRock[] = {
- gMapObjectImageAnim_83708C8,
- gMapObjectImageAnim_8370D8C
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_CuttableTree[] = {
- gMapObjectImageAnim_83708C8,
- gMapObjectImageAnim_8370DA0
-};
-
-const union AnimCmd *const gMapObjectImageAnimTable_Fishing[] = {
- gMapObjectImageAnim_8370DB4,
- gMapObjectImageAnim_8370DC8,
- gMapObjectImageAnim_8370DDC,
- gMapObjectImageAnim_8370DF0,
- gMapObjectImageAnim_8370E04,
- gMapObjectImageAnim_8370E18,
- gMapObjectImageAnim_8370E2C,
- gMapObjectImageAnim_8370E40,
- gMapObjectImageAnim_8370E54,
- gMapObjectImageAnim_8370E68,
- gMapObjectImageAnim_8370E7C,
- gMapObjectImageAnim_8370E90
-};
-
-const union AffineAnimCmd *const gMapObjectRotScalAnimTable_KyogreGroudon[] = {
- gMapObjectRotScalAnim_8370EA4,
- gMapObjectRotScalAnim_8370ED4
-};
-
-#endif //POKERUBY_MAP_OBJECT_ANIMS_H
diff --git a/include/data/field_map_obj/map_object_graphics_info.h b/include/data/field_map_obj/map_object_graphics_info.h
deleted file mode 100644
index 818c5b90c..000000000
--- a/include/data/field_map_obj/map_object_graphics_info.h
+++ /dev/null
@@ -1,227 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H
-#define POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H
-
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanNormal = {0xffff, 0x1100, 0x1102, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanMachBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanAcroBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanSurfing = {0xffff, 0x1100, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFieldMove = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_QuintyPlump = {0xffff, 0x110b, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_QuintyPlump, gMapObjectPicTable_QuintyPlump, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy1 = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl1 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleGirl1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl1 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy2 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy2 = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl2 = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleGirl2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy3 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy3, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl3 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl3, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy4 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy4, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman1 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FatMan = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_FatMan, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman2 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman3 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman3, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan1 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldMan1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman1 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldWoman1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman4 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman4, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man3 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man3, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman5 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman5, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cook = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Cook, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman6 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman6, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan2 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldMan2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldWoman2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Camper = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Camper, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Picnicker = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Picnicker, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man4 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man4, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman7 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman7, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Youngster = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Youngster, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BugCatcher = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BugCatcher, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PsychicM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_PsychicM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SchoolKidM = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SchoolKidM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maniac = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Maniac, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HexManiac = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_HexManiac, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman8 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman8, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerM = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SwimmerM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SwimmerF, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BlackBelt = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BlackBelt, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Beauty = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Beauty, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Scientist1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Lass = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Lass, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Gentleman = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Gentleman, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sailor = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Sailor, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fisherman = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Fisherman, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberF = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberF, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberM = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hiker = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Hiker, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteM = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteF = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Nurse = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Nurse, gMapObjectPicTable_Nurse, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ItemBall = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ItemBall, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTree = {0xffff, 0x1103, 0x11ff, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, NULL, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeEarlyStages = {0xffff, 0x1103, 0x11ff, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeLateStages = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ProfBirch = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ProfBirch, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man5 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man5, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man6 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man6, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ReporterM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterF = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ReporterF, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Bard = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hipster = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Trader = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Storyteller = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Giddy = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan2 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedNatuDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMagnemiteDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedSquirtleDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedWooperDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPikachuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPorygon2Doll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CuttableTree = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_CuttableTree, gMapObjectPicTable_CuttableTree, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MartEmployee = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MartEmployee, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RooftopSaleWoman = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Teala = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Teala, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BreakableRock = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_BreakableRock, gMapObjectPicTable_BreakableRock, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PushableBoulder = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PushableBoulder, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MrBrineysBoat = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayNormal = {0xffff, 0x1110, 0x1102, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayMachBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayAcroBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MaySurfing = {0xffff, 0x1110, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFieldMove = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Truck = {0xffff, 0x110d, 0x11ff, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_Truck, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_Truck, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeCarryingBox = {0xffff, 0x110e, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MachokeCarryingBox, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeFacingAway = {0xffff, 0x110e, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MachokeFacingAway, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BirchsBag = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BirchsBag, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Poochyena = {0xffff, 0x110f, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Poochyena, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Artist = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Artist, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanNormal = {0xffff, 0x1100, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanMachBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanAcroBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanSurfing = {0xffff, 0x1100, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanFieldMove = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayNormal = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayMachBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayAcroBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMaySurfing = {0xffff, 0x1110, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayFieldMove = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cameraman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Cameraman, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanUnderwater = {0xffff, 0x1115, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayUnderwater = {0xffff, 0x1115, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayUnderwater, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MovingBox = {0xffff, 0x1112, 0x11ff, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MovingBox, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CableCar = {0xffff, 0x1113, 0x11ff, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_64x64, gMapObjectSubspriteTables_CableCar, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_CableCar, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist2 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Scientist2, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man7 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man7, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_AquaMemberM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberF = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_AquaMemberF, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberM = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MagmaMemberM, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MagmaMemberF, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sidney = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Sidney, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Phoebe = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Phoebe, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Glacia = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Glacia, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Drake = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Drake, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Roxanne = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Roxanne, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Brawly = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Brawly, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wattson = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wattson, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Flannery = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Flannery, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Norman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Norman, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Winona = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Winona, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Liza = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Liza, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Tate = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Tate, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wallace = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wallace, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Steven = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Steven, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wally = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wally, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy3 = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy3, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFishing = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Fishing, gMapObjectPicTable_BrendanFishing, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFishing = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Fishing, gMapObjectPicTable_MayFishing, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HotSpringsOldWoman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SSTidal = {0xffff, 0x1114, 0x11ff, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_8x8, gMapObjectSubspriteTables_SSTidal, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SSTidal, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SubmarineShadow = {0xffff, 0x111a, 0x11ff, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_8x8, gMapObjectSubspriteTables_SubmarineShadow, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SubmarineShadow, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PichuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PichuDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikachuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PikachuDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MarillDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MarillDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TogepiDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TogepiDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyndaquilDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ChikoritaDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TotodileDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TotodileDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_JigglypuffDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MeowthDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MeowthDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ClefairyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ClefairyDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DittoDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DittoDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SmoochumDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SmoochumDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TreeckoDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TreeckoDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TorchicDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TorchicDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MudkipDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MudkipDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DuskullDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DuskullDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WynautDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_WynautDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BaltoyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BaltoyDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KecleonDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_KecleonDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AzurillDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_AzurillDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SkittyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SkittyDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwabluDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SwabluDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GulpinDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_GulpinDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LotadDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_LotadDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SeedotDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SeedotDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikaCushion = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PikaCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RoundCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_RoundCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KissCushion = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_KissCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ZigzagCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ZigzagCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SpinCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SpinCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DiamondCushion = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DiamondCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BallCushion = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BallCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GrassCushion = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_GrassCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FireCushion = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_FireCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WaterCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_WaterCushion, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigSnorlaxDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRhydonDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigLaprasDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigVenusaurDoll = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigCharizardDoll = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigBlastoiseDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigWailmerDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegirockDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegiceDoll = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegisteelDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latias = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latios = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy5 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy5, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ContestJudge = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ContestJudge, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanWatering = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanWatering, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayWatering = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayWatering, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanDecorating = {0xffff, 0x1100, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BrendanDecorating, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayDecorating = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MayDecorating, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Archie = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Archie, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maxie = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Maxie, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre1 = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kyogre, gMapObjectRotScalAnimTable_KyogreGroudon};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon1 = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Groudon, gMapObjectRotScalAnimTable_KyogreGroudon};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fossil = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_Fossil, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regirock = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regice = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Registeel = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Skitty = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Skitty, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon1 = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kecleon, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre2 = {0xffff, 0x1116, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kyogre, gMapObjectRotScalAnimTable_KyogreGroudon};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon2 = {0xffff, 0x1118, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Groudon, gMapObjectRotScalAnimTable_KyogreGroudon};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Rayquaza = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Zigzagoon = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Zigzagoon, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Pikachu = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Pikachu, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azumarill = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Azumarill, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wingull = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wingull, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon2 = {0xffff, 0x1105, 0x1102, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kecleon, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberMSwimming = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberMSwimming, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azurill = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Azurill, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Mom = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Mom, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkBrendan = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkMay = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable};
-
-#endif //POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H
diff --git a/include/data/field_map_obj/map_object_graphics_info_pointers.h b/include/data/field_map_obj/map_object_graphics_info_pointers.h
deleted file mode 100644
index c36827709..000000000
--- a/include/data/field_map_obj/map_object_graphics_info_pointers.h
+++ /dev/null
@@ -1,448 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H
-#define POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H
-
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanNormal;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanMachBike;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanSurfing;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFieldMove;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_QuintyPlump;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy3;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl3;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy4;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FatMan;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman3;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman4;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man3;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman5;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cook;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman6;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Camper;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Picnicker;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man4;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman7;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Youngster;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BugCatcher;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PsychicM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SchoolKidM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maniac;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HexManiac;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman8;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerF;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BlackBelt;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Beauty;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Lass;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Gentleman;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sailor;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fisherman;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteF;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberF;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hiker;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteF;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Nurse;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ItemBall;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTree;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeEarlyStages;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeLateStages;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanAcroBike;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ProfBirch;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man5;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man6;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterF;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Bard;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hipster;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Trader;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Storyteller;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Giddy;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedNatuDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMagnemiteDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedSquirtleDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedWooperDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPikachuDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPorygon2Doll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CuttableTree;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MartEmployee;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RooftopSaleWoman;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Teala;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BreakableRock;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PushableBoulder;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MrBrineysBoat;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayNormal;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayMachBike;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayAcroBike;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MaySurfing;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFieldMove;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Truck;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeCarryingBox;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeFacingAway;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BirchsBag;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Poochyena;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Artist;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanNormal;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanMachBike;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanAcroBike;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanSurfing;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanFieldMove;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayNormal;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayMachBike;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayAcroBike;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMaySurfing;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayFieldMove;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cameraman;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanUnderwater;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayUnderwater;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MovingBox;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CableCar;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man7;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberF;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberM;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberF;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sidney;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Phoebe;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Glacia;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Drake;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Roxanne;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Brawly;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wattson;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Flannery;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Norman;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Winona;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Liza;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Tate;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wallace;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Steven;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wally;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy3;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFishing;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFishing;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HotSpringsOldWoman;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SSTidal;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SubmarineShadow;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PichuDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikachuDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MarillDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TogepiDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyndaquilDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ChikoritaDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TotodileDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_JigglypuffDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MeowthDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ClefairyDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DittoDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SmoochumDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TreeckoDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TorchicDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MudkipDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DuskullDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WynautDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BaltoyDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KecleonDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AzurillDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SkittyDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwabluDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GulpinDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LotadDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SeedotDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikaCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RoundCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KissCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ZigzagCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SpinCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DiamondCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BallCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GrassCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FireCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WaterCushion;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigSnorlaxDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRhydonDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigLaprasDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigVenusaurDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigCharizardDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigBlastoiseDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigWailmerDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegirockDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegiceDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegisteelDoll;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latias;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latios;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy5;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ContestJudge;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanWatering;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayWatering;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanDecorating;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayDecorating;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Archie;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maxie;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fossil;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regirock;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regice;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Registeel;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Skitty;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon1;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Rayquaza;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Zigzagoon;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Pikachu;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azumarill;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wingull;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon2;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberMSwimming;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azurill;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Mom;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkBrendan;
-const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkMay;
-
-const struct MapObjectGraphicsInfo *const gMapObjectGraphicsInfoPointers[] = {
- &gMapObjectGraphicsInfo_BrendanNormal,
- &gMapObjectGraphicsInfo_BrendanMachBike,
- &gMapObjectGraphicsInfo_BrendanSurfing,
- &gMapObjectGraphicsInfo_BrendanFieldMove,
- &gMapObjectGraphicsInfo_QuintyPlump,
- &gMapObjectGraphicsInfo_LittleBoy1,
- &gMapObjectGraphicsInfo_LittleGirl1,
- &gMapObjectGraphicsInfo_Boy1,
- &gMapObjectGraphicsInfo_Girl1,
- &gMapObjectGraphicsInfo_Boy2,
- &gMapObjectGraphicsInfo_Girl2,
- &gMapObjectGraphicsInfo_LittleBoy2,
- &gMapObjectGraphicsInfo_LittleGirl2,
- &gMapObjectGraphicsInfo_Boy3,
- &gMapObjectGraphicsInfo_Girl3,
- &gMapObjectGraphicsInfo_Boy4,
- &gMapObjectGraphicsInfo_Woman1,
- &gMapObjectGraphicsInfo_FatMan,
- &gMapObjectGraphicsInfo_Woman2,
- &gMapObjectGraphicsInfo_Man1,
- &gMapObjectGraphicsInfo_Woman3,
- &gMapObjectGraphicsInfo_OldMan1,
- &gMapObjectGraphicsInfo_OldWoman1,
- &gMapObjectGraphicsInfo_Man2,
- &gMapObjectGraphicsInfo_Woman4,
- &gMapObjectGraphicsInfo_Man3,
- &gMapObjectGraphicsInfo_Woman5,
- &gMapObjectGraphicsInfo_Cook,
- &gMapObjectGraphicsInfo_Woman6,
- &gMapObjectGraphicsInfo_OldMan2,
- &gMapObjectGraphicsInfo_OldWoman2,
- &gMapObjectGraphicsInfo_Camper,
- &gMapObjectGraphicsInfo_Picnicker,
- &gMapObjectGraphicsInfo_Man4,
- &gMapObjectGraphicsInfo_Woman7,
- &gMapObjectGraphicsInfo_Youngster,
- &gMapObjectGraphicsInfo_BugCatcher,
- &gMapObjectGraphicsInfo_PsychicM,
- &gMapObjectGraphicsInfo_SchoolKidM,
- &gMapObjectGraphicsInfo_Maniac,
- &gMapObjectGraphicsInfo_HexManiac,
- &gMapObjectGraphicsInfo_Woman8,
- &gMapObjectGraphicsInfo_SwimmerM,
- &gMapObjectGraphicsInfo_SwimmerF,
- &gMapObjectGraphicsInfo_BlackBelt,
- &gMapObjectGraphicsInfo_Beauty,
- &gMapObjectGraphicsInfo_Scientist1,
- &gMapObjectGraphicsInfo_Lass,
- &gMapObjectGraphicsInfo_Gentleman,
- &gMapObjectGraphicsInfo_Sailor,
- &gMapObjectGraphicsInfo_Fisherman,
- &gMapObjectGraphicsInfo_RunningTriathleteM,
- &gMapObjectGraphicsInfo_RunningTriathleteF,
- &gMapObjectGraphicsInfo_TuberF,
- &gMapObjectGraphicsInfo_TuberM,
- &gMapObjectGraphicsInfo_Hiker,
- &gMapObjectGraphicsInfo_CyclingTriathleteM,
- &gMapObjectGraphicsInfo_CyclingTriathleteF,
- &gMapObjectGraphicsInfo_Nurse,
- &gMapObjectGraphicsInfo_ItemBall,
- &gMapObjectGraphicsInfo_BerryTree,
- &gMapObjectGraphicsInfo_BerryTreeEarlyStages,
- &gMapObjectGraphicsInfo_BerryTreeLateStages,
- &gMapObjectGraphicsInfo_BrendanAcroBike,
- &gMapObjectGraphicsInfo_ProfBirch,
- &gMapObjectGraphicsInfo_Man5,
- &gMapObjectGraphicsInfo_Man6,
- &gMapObjectGraphicsInfo_ReporterM,
- &gMapObjectGraphicsInfo_ReporterF,
- &gMapObjectGraphicsInfo_Bard,
- &gMapObjectGraphicsInfo_Hipster,
- &gMapObjectGraphicsInfo_Trader,
- &gMapObjectGraphicsInfo_Storyteller,
- &gMapObjectGraphicsInfo_Giddy,
- &gMapObjectGraphicsInfo_UnusedMauvilleOldMan1,
- &gMapObjectGraphicsInfo_UnusedMauvilleOldMan2,
- &gMapObjectGraphicsInfo_UnusedNatuDoll,
- &gMapObjectGraphicsInfo_UnusedMagnemiteDoll,
- &gMapObjectGraphicsInfo_UnusedSquirtleDoll,
- &gMapObjectGraphicsInfo_UnusedWooperDoll,
- &gMapObjectGraphicsInfo_UnusedPikachuDoll,
- &gMapObjectGraphicsInfo_UnusedPorygon2Doll,
- &gMapObjectGraphicsInfo_CuttableTree,
- &gMapObjectGraphicsInfo_MartEmployee,
- &gMapObjectGraphicsInfo_RooftopSaleWoman,
- &gMapObjectGraphicsInfo_Teala,
- &gMapObjectGraphicsInfo_BreakableRock,
- &gMapObjectGraphicsInfo_PushableBoulder,
- &gMapObjectGraphicsInfo_MrBrineysBoat,
- &gMapObjectGraphicsInfo_MayNormal,
- &gMapObjectGraphicsInfo_MayMachBike,
- &gMapObjectGraphicsInfo_MayAcroBike,
- &gMapObjectGraphicsInfo_MaySurfing,
- &gMapObjectGraphicsInfo_MayFieldMove,
- &gMapObjectGraphicsInfo_Truck,
- &gMapObjectGraphicsInfo_MachokeCarryingBox,
- &gMapObjectGraphicsInfo_MachokeFacingAway,
- &gMapObjectGraphicsInfo_BirchsBag,
- &gMapObjectGraphicsInfo_Poochyena,
- &gMapObjectGraphicsInfo_Artist,
- &gMapObjectGraphicsInfo_RivalBrendanNormal,
- &gMapObjectGraphicsInfo_RivalBrendanMachBike,
- &gMapObjectGraphicsInfo_RivalBrendanAcroBike,
- &gMapObjectGraphicsInfo_RivalBrendanSurfing,
- &gMapObjectGraphicsInfo_RivalBrendanFieldMove,
- &gMapObjectGraphicsInfo_RivalMayNormal,
- &gMapObjectGraphicsInfo_RivalMayMachBike,
- &gMapObjectGraphicsInfo_RivalMayAcroBike,
- &gMapObjectGraphicsInfo_RivalMaySurfing,
- &gMapObjectGraphicsInfo_RivalMayFieldMove,
- &gMapObjectGraphicsInfo_Cameraman,
- &gMapObjectGraphicsInfo_BrendanUnderwater,
- &gMapObjectGraphicsInfo_MayUnderwater,
- &gMapObjectGraphicsInfo_MovingBox,
- &gMapObjectGraphicsInfo_CableCar,
- &gMapObjectGraphicsInfo_Scientist2,
- &gMapObjectGraphicsInfo_Man7,
- &gMapObjectGraphicsInfo_AquaMemberM,
- &gMapObjectGraphicsInfo_AquaMemberF,
- &gMapObjectGraphicsInfo_MagmaMemberM,
- &gMapObjectGraphicsInfo_MagmaMemberF,
- &gMapObjectGraphicsInfo_Sidney,
- &gMapObjectGraphicsInfo_Phoebe,
- &gMapObjectGraphicsInfo_Glacia,
- &gMapObjectGraphicsInfo_Drake,
- &gMapObjectGraphicsInfo_Roxanne,
- &gMapObjectGraphicsInfo_Brawly,
- &gMapObjectGraphicsInfo_Wattson,
- &gMapObjectGraphicsInfo_Flannery,
- &gMapObjectGraphicsInfo_Norman,
- &gMapObjectGraphicsInfo_Winona,
- &gMapObjectGraphicsInfo_Liza,
- &gMapObjectGraphicsInfo_Tate,
- &gMapObjectGraphicsInfo_Wallace,
- &gMapObjectGraphicsInfo_Steven,
- &gMapObjectGraphicsInfo_Wally,
- &gMapObjectGraphicsInfo_LittleBoy3,
- &gMapObjectGraphicsInfo_BrendanFishing,
- &gMapObjectGraphicsInfo_MayFishing,
- &gMapObjectGraphicsInfo_HotSpringsOldWoman,
- &gMapObjectGraphicsInfo_SSTidal,
- &gMapObjectGraphicsInfo_SubmarineShadow,
- &gMapObjectGraphicsInfo_PichuDoll,
- &gMapObjectGraphicsInfo_PikachuDoll,
- &gMapObjectGraphicsInfo_MarillDoll,
- &gMapObjectGraphicsInfo_TogepiDoll,
- &gMapObjectGraphicsInfo_CyndaquilDoll,
- &gMapObjectGraphicsInfo_ChikoritaDoll,
- &gMapObjectGraphicsInfo_TotodileDoll,
- &gMapObjectGraphicsInfo_JigglypuffDoll,
- &gMapObjectGraphicsInfo_MeowthDoll,
- &gMapObjectGraphicsInfo_ClefairyDoll,
- &gMapObjectGraphicsInfo_DittoDoll,
- &gMapObjectGraphicsInfo_SmoochumDoll,
- &gMapObjectGraphicsInfo_TreeckoDoll,
- &gMapObjectGraphicsInfo_TorchicDoll,
- &gMapObjectGraphicsInfo_MudkipDoll,
- &gMapObjectGraphicsInfo_DuskullDoll,
- &gMapObjectGraphicsInfo_WynautDoll,
- &gMapObjectGraphicsInfo_BaltoyDoll,
- &gMapObjectGraphicsInfo_KecleonDoll,
- &gMapObjectGraphicsInfo_AzurillDoll,
- &gMapObjectGraphicsInfo_SkittyDoll,
- &gMapObjectGraphicsInfo_SwabluDoll,
- &gMapObjectGraphicsInfo_GulpinDoll,
- &gMapObjectGraphicsInfo_LotadDoll,
- &gMapObjectGraphicsInfo_SeedotDoll,
- &gMapObjectGraphicsInfo_PikaCushion,
- &gMapObjectGraphicsInfo_RoundCushion,
- &gMapObjectGraphicsInfo_KissCushion,
- &gMapObjectGraphicsInfo_ZigzagCushion,
- &gMapObjectGraphicsInfo_SpinCushion,
- &gMapObjectGraphicsInfo_DiamondCushion,
- &gMapObjectGraphicsInfo_BallCushion,
- &gMapObjectGraphicsInfo_GrassCushion,
- &gMapObjectGraphicsInfo_FireCushion,
- &gMapObjectGraphicsInfo_WaterCushion,
- &gMapObjectGraphicsInfo_BigSnorlaxDoll,
- &gMapObjectGraphicsInfo_BigRhydonDoll,
- &gMapObjectGraphicsInfo_BigLaprasDoll,
- &gMapObjectGraphicsInfo_BigVenusaurDoll,
- &gMapObjectGraphicsInfo_BigCharizardDoll,
- &gMapObjectGraphicsInfo_BigBlastoiseDoll,
- &gMapObjectGraphicsInfo_BigWailmerDoll,
- &gMapObjectGraphicsInfo_BigRegirockDoll,
- &gMapObjectGraphicsInfo_BigRegiceDoll,
- &gMapObjectGraphicsInfo_BigRegisteelDoll,
- &gMapObjectGraphicsInfo_Latias,
- &gMapObjectGraphicsInfo_Latios,
- &gMapObjectGraphicsInfo_Boy5,
- &gMapObjectGraphicsInfo_ContestJudge,
- &gMapObjectGraphicsInfo_BrendanWatering,
- &gMapObjectGraphicsInfo_MayWatering,
- &gMapObjectGraphicsInfo_BrendanDecorating,
- &gMapObjectGraphicsInfo_MayDecorating,
- &gMapObjectGraphicsInfo_Archie,
- &gMapObjectGraphicsInfo_Maxie,
- &gMapObjectGraphicsInfo_Kyogre1,
- &gMapObjectGraphicsInfo_Groudon1,
- &gMapObjectGraphicsInfo_Fossil,
- &gMapObjectGraphicsInfo_Regirock,
- &gMapObjectGraphicsInfo_Regice,
- &gMapObjectGraphicsInfo_Registeel,
- &gMapObjectGraphicsInfo_Skitty,
- &gMapObjectGraphicsInfo_Kecleon1,
- &gMapObjectGraphicsInfo_Kyogre2,
- &gMapObjectGraphicsInfo_Groudon2,
- &gMapObjectGraphicsInfo_Rayquaza,
- &gMapObjectGraphicsInfo_Zigzagoon,
- &gMapObjectGraphicsInfo_Pikachu,
- &gMapObjectGraphicsInfo_Azumarill,
- &gMapObjectGraphicsInfo_Wingull,
- &gMapObjectGraphicsInfo_Kecleon2,
- &gMapObjectGraphicsInfo_TuberMSwimming,
- &gMapObjectGraphicsInfo_Azurill,
- &gMapObjectGraphicsInfo_Mom,
- &gMapObjectGraphicsInfo_LinkBrendan,
- &gMapObjectGraphicsInfo_LinkMay
-};
-
-#endif //POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H
diff --git a/include/data/field_map_obj/map_object_pic_tables.h b/include/data/field_map_obj/map_object_pic_tables.h
deleted file mode 100644
index 37d579512..000000000
--- a/include/data/field_map_obj/map_object_pic_tables.h
+++ /dev/null
@@ -1,1879 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_MAP_OBJECT_PIC_TABLES_H
-#define POKERUBY_MAP_OBJECT_PIC_TABLES_H
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanNormal[] = {
- obj_frame_tiles(gMapObjectPic_BrendanNormal_0),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_1),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_2),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_3),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_4),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_5),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_6),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_7),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_8),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_9),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_10),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_11),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_12),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_13),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_14),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_15),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_16),
- obj_frame_tiles(gMapObjectPic_BrendanNormal_17)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanMachBike[] = {
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_0),
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_1),
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_2),
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_3),
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_4),
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_5),
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_6),
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_7),
- obj_frame_tiles(gMapObjectPic_BrendanMachBike_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanAcroBike[] = {
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_0),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_1),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_2),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_3),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_4),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_5),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_6),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_7),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_8),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_9),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_10),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_11),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_12),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_13),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_14),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_15),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_16),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_17),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_18),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_19),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_20),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_21),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_22),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_23),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_24),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_25),
- obj_frame_tiles(gMapObjectPic_BrendanAcroBike_26)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanSurfing[] = {
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_0),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_1),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_2),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_0),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_0),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_1),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_1),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_2),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_2),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_3),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_4),
- obj_frame_tiles(gMapObjectPic_BrendanSurfing_5)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanUnderwater[] = {
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0),
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1),
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2),
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0),
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0),
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1),
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1),
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2),
- obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanFieldMove[] = {
- obj_frame_tiles(gMapObjectPic_BrendanFieldMove_0),
- obj_frame_tiles(gMapObjectPic_BrendanFieldMove_1),
- obj_frame_tiles(gMapObjectPic_BrendanFieldMove_2),
- obj_frame_tiles(gMapObjectPic_BrendanFieldMove_3),
- obj_frame_tiles(gMapObjectPic_BrendanFieldMove_4)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_QuintyPlump[] = {
- obj_frame_tiles(gMapObjectPic_QuintyPlump_0),
- obj_frame_tiles(gMapObjectPic_QuintyPlump_1),
- obj_frame_tiles(gMapObjectPic_QuintyPlump_2),
- obj_frame_tiles(gMapObjectPic_QuintyPlump_3),
- obj_frame_tiles(gMapObjectPic_QuintyPlump_4),
- obj_frame_tiles(gMapObjectPic_QuintyPlump_5),
- obj_frame_tiles(gMapObjectPic_QuintyPlump_6)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_LittleBoy1[] = {
- obj_frame_tiles(gMapObjectPic_LittleBoy1_0),
- obj_frame_tiles(gMapObjectPic_LittleBoy1_1),
- obj_frame_tiles(gMapObjectPic_LittleBoy1_2),
- obj_frame_tiles(gMapObjectPic_LittleBoy1_3),
- obj_frame_tiles(gMapObjectPic_LittleBoy1_4),
- obj_frame_tiles(gMapObjectPic_LittleBoy1_5),
- obj_frame_tiles(gMapObjectPic_LittleBoy1_6),
- obj_frame_tiles(gMapObjectPic_LittleBoy1_7),
- obj_frame_tiles(gMapObjectPic_LittleBoy1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_LittleGirl1[] = {
- obj_frame_tiles(gMapObjectPic_LittleGirl1_0),
- obj_frame_tiles(gMapObjectPic_LittleGirl1_1),
- obj_frame_tiles(gMapObjectPic_LittleGirl1_2),
- obj_frame_tiles(gMapObjectPic_LittleGirl1_3),
- obj_frame_tiles(gMapObjectPic_LittleGirl1_4),
- obj_frame_tiles(gMapObjectPic_LittleGirl1_5),
- obj_frame_tiles(gMapObjectPic_LittleGirl1_6),
- obj_frame_tiles(gMapObjectPic_LittleGirl1_7),
- obj_frame_tiles(gMapObjectPic_LittleGirl1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Boy1[] = {
- obj_frame_tiles(gMapObjectPic_Boy1_0),
- obj_frame_tiles(gMapObjectPic_Boy1_1),
- obj_frame_tiles(gMapObjectPic_Boy1_2),
- obj_frame_tiles(gMapObjectPic_Boy1_3),
- obj_frame_tiles(gMapObjectPic_Boy1_4),
- obj_frame_tiles(gMapObjectPic_Boy1_5),
- obj_frame_tiles(gMapObjectPic_Boy1_6),
- obj_frame_tiles(gMapObjectPic_Boy1_7),
- obj_frame_tiles(gMapObjectPic_Boy1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Girl1[] = {
- obj_frame_tiles(gMapObjectPic_Girl1_0),
- obj_frame_tiles(gMapObjectPic_Girl1_1),
- obj_frame_tiles(gMapObjectPic_Girl1_2),
- obj_frame_tiles(gMapObjectPic_Girl1_3),
- obj_frame_tiles(gMapObjectPic_Girl1_4),
- obj_frame_tiles(gMapObjectPic_Girl1_5),
- obj_frame_tiles(gMapObjectPic_Girl1_6),
- obj_frame_tiles(gMapObjectPic_Girl1_7),
- obj_frame_tiles(gMapObjectPic_Girl1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Boy2[] = {
- obj_frame_tiles(gMapObjectPic_Boy2_0),
- obj_frame_tiles(gMapObjectPic_Boy2_1),
- obj_frame_tiles(gMapObjectPic_Boy2_2),
- obj_frame_tiles(gMapObjectPic_Boy2_3),
- obj_frame_tiles(gMapObjectPic_Boy2_4),
- obj_frame_tiles(gMapObjectPic_Boy2_5),
- obj_frame_tiles(gMapObjectPic_Boy2_6),
- obj_frame_tiles(gMapObjectPic_Boy2_7),
- obj_frame_tiles(gMapObjectPic_Boy2_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Girl2[] = {
- obj_frame_tiles(gMapObjectPic_Girl2_0),
- obj_frame_tiles(gMapObjectPic_Girl2_1),
- obj_frame_tiles(gMapObjectPic_Girl2_2),
- obj_frame_tiles(gMapObjectPic_Girl2_3),
- obj_frame_tiles(gMapObjectPic_Girl2_4),
- obj_frame_tiles(gMapObjectPic_Girl2_5),
- obj_frame_tiles(gMapObjectPic_Girl2_6),
- obj_frame_tiles(gMapObjectPic_Girl2_7),
- obj_frame_tiles(gMapObjectPic_Girl2_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_LittleBoy2[] = {
- obj_frame_tiles(gMapObjectPic_LittleBoy2_0),
- obj_frame_tiles(gMapObjectPic_LittleBoy2_1),
- obj_frame_tiles(gMapObjectPic_LittleBoy2_2),
- obj_frame_tiles(gMapObjectPic_LittleBoy2_3),
- obj_frame_tiles(gMapObjectPic_LittleBoy2_4),
- obj_frame_tiles(gMapObjectPic_LittleBoy2_5),
- obj_frame_tiles(gMapObjectPic_LittleBoy2_6),
- obj_frame_tiles(gMapObjectPic_LittleBoy2_7),
- obj_frame_tiles(gMapObjectPic_LittleBoy2_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_LittleGirl2[] = {
- obj_frame_tiles(gMapObjectPic_LittleGirl2_0),
- obj_frame_tiles(gMapObjectPic_LittleGirl2_1),
- obj_frame_tiles(gMapObjectPic_LittleGirl2_2),
- obj_frame_tiles(gMapObjectPic_LittleGirl2_3),
- obj_frame_tiles(gMapObjectPic_LittleGirl2_4),
- obj_frame_tiles(gMapObjectPic_LittleGirl2_5),
- obj_frame_tiles(gMapObjectPic_LittleGirl2_6),
- obj_frame_tiles(gMapObjectPic_LittleGirl2_7),
- obj_frame_tiles(gMapObjectPic_LittleGirl2_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Boy3[] = {
- obj_frame_tiles(gMapObjectPic_Boy3_0),
- obj_frame_tiles(gMapObjectPic_Boy3_1),
- obj_frame_tiles(gMapObjectPic_Boy3_2),
- obj_frame_tiles(gMapObjectPic_Boy3_3),
- obj_frame_tiles(gMapObjectPic_Boy3_4),
- obj_frame_tiles(gMapObjectPic_Boy3_5),
- obj_frame_tiles(gMapObjectPic_Boy3_6),
- obj_frame_tiles(gMapObjectPic_Boy3_7),
- obj_frame_tiles(gMapObjectPic_Boy3_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Girl3[] = {
- obj_frame_tiles(gMapObjectPic_Girl3_0),
- obj_frame_tiles(gMapObjectPic_Girl3_1),
- obj_frame_tiles(gMapObjectPic_Girl3_2),
- obj_frame_tiles(gMapObjectPic_Girl3_3),
- obj_frame_tiles(gMapObjectPic_Girl3_4),
- obj_frame_tiles(gMapObjectPic_Girl3_5),
- obj_frame_tiles(gMapObjectPic_Girl3_6),
- obj_frame_tiles(gMapObjectPic_Girl3_7),
- obj_frame_tiles(gMapObjectPic_Girl3_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Boy4[] = {
- obj_frame_tiles(gMapObjectPic_Boy4_0),
- obj_frame_tiles(gMapObjectPic_Boy4_1),
- obj_frame_tiles(gMapObjectPic_Boy4_2),
- obj_frame_tiles(gMapObjectPic_Boy4_3),
- obj_frame_tiles(gMapObjectPic_Boy4_4),
- obj_frame_tiles(gMapObjectPic_Boy4_5),
- obj_frame_tiles(gMapObjectPic_Boy4_6),
- obj_frame_tiles(gMapObjectPic_Boy4_7),
- obj_frame_tiles(gMapObjectPic_Boy4_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Woman1[] = {
- obj_frame_tiles(gMapObjectPic_Woman1_0),
- obj_frame_tiles(gMapObjectPic_Woman1_1),
- obj_frame_tiles(gMapObjectPic_Woman1_2),
- obj_frame_tiles(gMapObjectPic_Woman1_3),
- obj_frame_tiles(gMapObjectPic_Woman1_4),
- obj_frame_tiles(gMapObjectPic_Woman1_5),
- obj_frame_tiles(gMapObjectPic_Woman1_6),
- obj_frame_tiles(gMapObjectPic_Woman1_7),
- obj_frame_tiles(gMapObjectPic_Woman1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_FatMan[] = {
- obj_frame_tiles(gMapObjectPic_FatMan_0),
- obj_frame_tiles(gMapObjectPic_FatMan_1),
- obj_frame_tiles(gMapObjectPic_FatMan_2),
- obj_frame_tiles(gMapObjectPic_FatMan_3),
- obj_frame_tiles(gMapObjectPic_FatMan_4),
- obj_frame_tiles(gMapObjectPic_FatMan_5),
- obj_frame_tiles(gMapObjectPic_FatMan_6),
- obj_frame_tiles(gMapObjectPic_FatMan_7),
- obj_frame_tiles(gMapObjectPic_FatMan_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Woman2[] = {
- obj_frame_tiles(gMapObjectPic_Woman2_0),
- obj_frame_tiles(gMapObjectPic_Woman2_1),
- obj_frame_tiles(gMapObjectPic_Woman2_2),
- obj_frame_tiles(gMapObjectPic_Woman2_3),
- obj_frame_tiles(gMapObjectPic_Woman2_4),
- obj_frame_tiles(gMapObjectPic_Woman2_5),
- obj_frame_tiles(gMapObjectPic_Woman2_6),
- obj_frame_tiles(gMapObjectPic_Woman2_7),
- obj_frame_tiles(gMapObjectPic_Woman2_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Man1[] = {
- obj_frame_tiles(gMapObjectPic_Man1_0),
- obj_frame_tiles(gMapObjectPic_Man1_1),
- obj_frame_tiles(gMapObjectPic_Man1_2),
- obj_frame_tiles(gMapObjectPic_Man1_3),
- obj_frame_tiles(gMapObjectPic_Man1_4),
- obj_frame_tiles(gMapObjectPic_Man1_5),
- obj_frame_tiles(gMapObjectPic_Man1_6),
- obj_frame_tiles(gMapObjectPic_Man1_7),
- obj_frame_tiles(gMapObjectPic_Man1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Woman3[] = {
- obj_frame_tiles(gMapObjectPic_Woman3_0),
- obj_frame_tiles(gMapObjectPic_Woman3_1),
- obj_frame_tiles(gMapObjectPic_Woman3_2),
- obj_frame_tiles(gMapObjectPic_Woman3_3),
- obj_frame_tiles(gMapObjectPic_Woman3_4),
- obj_frame_tiles(gMapObjectPic_Woman3_5),
- obj_frame_tiles(gMapObjectPic_Woman3_6),
- obj_frame_tiles(gMapObjectPic_Woman3_7),
- obj_frame_tiles(gMapObjectPic_Woman3_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_OldMan1[] = {
- obj_frame_tiles(gMapObjectPic_OldMan1_0),
- obj_frame_tiles(gMapObjectPic_OldMan1_1),
- obj_frame_tiles(gMapObjectPic_OldMan1_2),
- obj_frame_tiles(gMapObjectPic_OldMan1_3),
- obj_frame_tiles(gMapObjectPic_OldMan1_4),
- obj_frame_tiles(gMapObjectPic_OldMan1_5),
- obj_frame_tiles(gMapObjectPic_OldMan1_6),
- obj_frame_tiles(gMapObjectPic_OldMan1_7),
- obj_frame_tiles(gMapObjectPic_OldMan1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_OldWoman1[] = {
- obj_frame_tiles(gMapObjectPic_OldWoman1_0),
- obj_frame_tiles(gMapObjectPic_OldWoman1_1),
- obj_frame_tiles(gMapObjectPic_OldWoman1_2),
- obj_frame_tiles(gMapObjectPic_OldWoman1_3),
- obj_frame_tiles(gMapObjectPic_OldWoman1_4),
- obj_frame_tiles(gMapObjectPic_OldWoman1_5),
- obj_frame_tiles(gMapObjectPic_OldWoman1_6),
- obj_frame_tiles(gMapObjectPic_OldWoman1_7),
- obj_frame_tiles(gMapObjectPic_OldWoman1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Man2[] = {
- obj_frame_tiles(gMapObjectPic_Man2_0),
- obj_frame_tiles(gMapObjectPic_Man2_1),
- obj_frame_tiles(gMapObjectPic_Man2_2),
- obj_frame_tiles(gMapObjectPic_Man2_3),
- obj_frame_tiles(gMapObjectPic_Man2_4),
- obj_frame_tiles(gMapObjectPic_Man2_5),
- obj_frame_tiles(gMapObjectPic_Man2_6),
- obj_frame_tiles(gMapObjectPic_Man2_7),
- obj_frame_tiles(gMapObjectPic_Man2_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Woman4[] = {
- obj_frame_tiles(gMapObjectPic_Woman4_0),
- obj_frame_tiles(gMapObjectPic_Woman4_1),
- obj_frame_tiles(gMapObjectPic_Woman4_2),
- obj_frame_tiles(gMapObjectPic_Woman4_3),
- obj_frame_tiles(gMapObjectPic_Woman4_4),
- obj_frame_tiles(gMapObjectPic_Woman4_5),
- obj_frame_tiles(gMapObjectPic_Woman4_6),
- obj_frame_tiles(gMapObjectPic_Woman4_7),
- obj_frame_tiles(gMapObjectPic_Woman4_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Man3[] = {
- obj_frame_tiles(gMapObjectPic_Man3_0),
- obj_frame_tiles(gMapObjectPic_Man3_1),
- obj_frame_tiles(gMapObjectPic_Man3_2),
- obj_frame_tiles(gMapObjectPic_Man3_3),
- obj_frame_tiles(gMapObjectPic_Man3_4),
- obj_frame_tiles(gMapObjectPic_Man3_5),
- obj_frame_tiles(gMapObjectPic_Man3_6),
- obj_frame_tiles(gMapObjectPic_Man3_7),
- obj_frame_tiles(gMapObjectPic_Man3_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Woman5[] = {
- obj_frame_tiles(gMapObjectPic_Woman5_0),
- obj_frame_tiles(gMapObjectPic_Woman5_1),
- obj_frame_tiles(gMapObjectPic_Woman5_2),
- obj_frame_tiles(gMapObjectPic_Woman5_3),
- obj_frame_tiles(gMapObjectPic_Woman5_4),
- obj_frame_tiles(gMapObjectPic_Woman5_5),
- obj_frame_tiles(gMapObjectPic_Woman5_6),
- obj_frame_tiles(gMapObjectPic_Woman5_7),
- obj_frame_tiles(gMapObjectPic_Woman5_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Cook[] = {
- obj_frame_tiles(gMapObjectPic_Cook_0),
- obj_frame_tiles(gMapObjectPic_Cook_1),
- obj_frame_tiles(gMapObjectPic_Cook_2),
- obj_frame_tiles(gMapObjectPic_Cook_0),
- obj_frame_tiles(gMapObjectPic_Cook_0),
- obj_frame_tiles(gMapObjectPic_Cook_1),
- obj_frame_tiles(gMapObjectPic_Cook_1),
- obj_frame_tiles(gMapObjectPic_Cook_2),
- obj_frame_tiles(gMapObjectPic_Cook_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Woman6[] = {
- obj_frame_tiles(gMapObjectPic_Woman6_0),
- obj_frame_tiles(gMapObjectPic_Woman6_1),
- obj_frame_tiles(gMapObjectPic_Woman6_2),
- obj_frame_tiles(gMapObjectPic_Woman6_3),
- obj_frame_tiles(gMapObjectPic_Woman6_4),
- obj_frame_tiles(gMapObjectPic_Woman6_5),
- obj_frame_tiles(gMapObjectPic_Woman6_6),
- obj_frame_tiles(gMapObjectPic_Woman6_7),
- obj_frame_tiles(gMapObjectPic_Woman6_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_OldMan2[] = {
- obj_frame_tiles(gMapObjectPic_OldMan2_0),
- obj_frame_tiles(gMapObjectPic_OldMan2_1),
- obj_frame_tiles(gMapObjectPic_OldMan2_2),
- obj_frame_tiles(gMapObjectPic_OldMan2_0),
- obj_frame_tiles(gMapObjectPic_OldMan2_0),
- obj_frame_tiles(gMapObjectPic_OldMan2_1),
- obj_frame_tiles(gMapObjectPic_OldMan2_1),
- obj_frame_tiles(gMapObjectPic_OldMan2_2),
- obj_frame_tiles(gMapObjectPic_OldMan2_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_OldWoman2[] = {
- obj_frame_tiles(gMapObjectPic_OldWoman2_0),
- obj_frame_tiles(gMapObjectPic_OldWoman2_1),
- obj_frame_tiles(gMapObjectPic_OldWoman2_2),
- obj_frame_tiles(gMapObjectPic_OldWoman2_0),
- obj_frame_tiles(gMapObjectPic_OldWoman2_0),
- obj_frame_tiles(gMapObjectPic_OldWoman2_1),
- obj_frame_tiles(gMapObjectPic_OldWoman2_1),
- obj_frame_tiles(gMapObjectPic_OldWoman2_2),
- obj_frame_tiles(gMapObjectPic_OldWoman2_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Camper[] = {
- obj_frame_tiles(gMapObjectPic_Camper_0),
- obj_frame_tiles(gMapObjectPic_Camper_1),
- obj_frame_tiles(gMapObjectPic_Camper_2),
- obj_frame_tiles(gMapObjectPic_Camper_3),
- obj_frame_tiles(gMapObjectPic_Camper_4),
- obj_frame_tiles(gMapObjectPic_Camper_5),
- obj_frame_tiles(gMapObjectPic_Camper_6),
- obj_frame_tiles(gMapObjectPic_Camper_7),
- obj_frame_tiles(gMapObjectPic_Camper_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Picnicker[] = {
- obj_frame_tiles(gMapObjectPic_Picnicker_0),
- obj_frame_tiles(gMapObjectPic_Picnicker_1),
- obj_frame_tiles(gMapObjectPic_Picnicker_2),
- obj_frame_tiles(gMapObjectPic_Picnicker_3),
- obj_frame_tiles(gMapObjectPic_Picnicker_4),
- obj_frame_tiles(gMapObjectPic_Picnicker_5),
- obj_frame_tiles(gMapObjectPic_Picnicker_6),
- obj_frame_tiles(gMapObjectPic_Picnicker_7),
- obj_frame_tiles(gMapObjectPic_Picnicker_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Man4[] = {
- obj_frame_tiles(gMapObjectPic_Man4_0),
- obj_frame_tiles(gMapObjectPic_Man4_1),
- obj_frame_tiles(gMapObjectPic_Man4_2),
- obj_frame_tiles(gMapObjectPic_Man4_3),
- obj_frame_tiles(gMapObjectPic_Man4_4),
- obj_frame_tiles(gMapObjectPic_Man4_5),
- obj_frame_tiles(gMapObjectPic_Man4_6),
- obj_frame_tiles(gMapObjectPic_Man4_7),
- obj_frame_tiles(gMapObjectPic_Man4_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Woman7[] = {
- obj_frame_tiles(gMapObjectPic_Woman7_0),
- obj_frame_tiles(gMapObjectPic_Woman7_1),
- obj_frame_tiles(gMapObjectPic_Woman7_2),
- obj_frame_tiles(gMapObjectPic_Woman7_3),
- obj_frame_tiles(gMapObjectPic_Woman7_4),
- obj_frame_tiles(gMapObjectPic_Woman7_5),
- obj_frame_tiles(gMapObjectPic_Woman7_6),
- obj_frame_tiles(gMapObjectPic_Woman7_7),
- obj_frame_tiles(gMapObjectPic_Woman7_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Youngster[] = {
- obj_frame_tiles(gMapObjectPic_Youngster_0),
- obj_frame_tiles(gMapObjectPic_Youngster_1),
- obj_frame_tiles(gMapObjectPic_Youngster_2),
- obj_frame_tiles(gMapObjectPic_Youngster_3),
- obj_frame_tiles(gMapObjectPic_Youngster_4),
- obj_frame_tiles(gMapObjectPic_Youngster_5),
- obj_frame_tiles(gMapObjectPic_Youngster_6),
- obj_frame_tiles(gMapObjectPic_Youngster_7),
- obj_frame_tiles(gMapObjectPic_Youngster_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BugCatcher[] = {
- obj_frame_tiles(gMapObjectPic_BugCatcher_0),
- obj_frame_tiles(gMapObjectPic_BugCatcher_1),
- obj_frame_tiles(gMapObjectPic_BugCatcher_2),
- obj_frame_tiles(gMapObjectPic_BugCatcher_3),
- obj_frame_tiles(gMapObjectPic_BugCatcher_4),
- obj_frame_tiles(gMapObjectPic_BugCatcher_5),
- obj_frame_tiles(gMapObjectPic_BugCatcher_6),
- obj_frame_tiles(gMapObjectPic_BugCatcher_7),
- obj_frame_tiles(gMapObjectPic_BugCatcher_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_PsychicM[] = {
- obj_frame_tiles(gMapObjectPic_PsychicM_0),
- obj_frame_tiles(gMapObjectPic_PsychicM_1),
- obj_frame_tiles(gMapObjectPic_PsychicM_2),
- obj_frame_tiles(gMapObjectPic_PsychicM_3),
- obj_frame_tiles(gMapObjectPic_PsychicM_4),
- obj_frame_tiles(gMapObjectPic_PsychicM_5),
- obj_frame_tiles(gMapObjectPic_PsychicM_6),
- obj_frame_tiles(gMapObjectPic_PsychicM_7),
- obj_frame_tiles(gMapObjectPic_PsychicM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SchoolKidM[] = {
- obj_frame_tiles(gMapObjectPic_SchoolKidM_0),
- obj_frame_tiles(gMapObjectPic_SchoolKidM_1),
- obj_frame_tiles(gMapObjectPic_SchoolKidM_2),
- obj_frame_tiles(gMapObjectPic_SchoolKidM_3),
- obj_frame_tiles(gMapObjectPic_SchoolKidM_4),
- obj_frame_tiles(gMapObjectPic_SchoolKidM_5),
- obj_frame_tiles(gMapObjectPic_SchoolKidM_6),
- obj_frame_tiles(gMapObjectPic_SchoolKidM_7),
- obj_frame_tiles(gMapObjectPic_SchoolKidM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Maniac[] = {
- obj_frame_tiles(gMapObjectPic_Maniac_0),
- obj_frame_tiles(gMapObjectPic_Maniac_1),
- obj_frame_tiles(gMapObjectPic_Maniac_2),
- obj_frame_tiles(gMapObjectPic_Maniac_3),
- obj_frame_tiles(gMapObjectPic_Maniac_4),
- obj_frame_tiles(gMapObjectPic_Maniac_5),
- obj_frame_tiles(gMapObjectPic_Maniac_6),
- obj_frame_tiles(gMapObjectPic_Maniac_7),
- obj_frame_tiles(gMapObjectPic_Maniac_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_HexManiac[] = {
- obj_frame_tiles(gMapObjectPic_HexManiac_0),
- obj_frame_tiles(gMapObjectPic_HexManiac_1),
- obj_frame_tiles(gMapObjectPic_HexManiac_2),
- obj_frame_tiles(gMapObjectPic_HexManiac_3),
- obj_frame_tiles(gMapObjectPic_HexManiac_4),
- obj_frame_tiles(gMapObjectPic_HexManiac_5),
- obj_frame_tiles(gMapObjectPic_HexManiac_6),
- obj_frame_tiles(gMapObjectPic_HexManiac_7),
- obj_frame_tiles(gMapObjectPic_HexManiac_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Woman8[] = {
- obj_frame_tiles(gMapObjectPic_Woman8_0),
- obj_frame_tiles(gMapObjectPic_Woman8_1),
- obj_frame_tiles(gMapObjectPic_Woman8_2),
- obj_frame_tiles(gMapObjectPic_Woman8_3),
- obj_frame_tiles(gMapObjectPic_Woman8_4),
- obj_frame_tiles(gMapObjectPic_Woman8_5),
- obj_frame_tiles(gMapObjectPic_Woman8_6),
- obj_frame_tiles(gMapObjectPic_Woman8_7),
- obj_frame_tiles(gMapObjectPic_Woman8_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SwimmerM[] = {
- obj_frame_tiles(gMapObjectPic_SwimmerM_0),
- obj_frame_tiles(gMapObjectPic_SwimmerM_1),
- obj_frame_tiles(gMapObjectPic_SwimmerM_2),
- obj_frame_tiles(gMapObjectPic_SwimmerM_3),
- obj_frame_tiles(gMapObjectPic_SwimmerM_4),
- obj_frame_tiles(gMapObjectPic_SwimmerM_5),
- obj_frame_tiles(gMapObjectPic_SwimmerM_6),
- obj_frame_tiles(gMapObjectPic_SwimmerM_7),
- obj_frame_tiles(gMapObjectPic_SwimmerM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SwimmerF[] = {
- obj_frame_tiles(gMapObjectPic_SwimmerF_0),
- obj_frame_tiles(gMapObjectPic_SwimmerF_1),
- obj_frame_tiles(gMapObjectPic_SwimmerF_2),
- obj_frame_tiles(gMapObjectPic_SwimmerF_3),
- obj_frame_tiles(gMapObjectPic_SwimmerF_4),
- obj_frame_tiles(gMapObjectPic_SwimmerF_5),
- obj_frame_tiles(gMapObjectPic_SwimmerF_6),
- obj_frame_tiles(gMapObjectPic_SwimmerF_7),
- obj_frame_tiles(gMapObjectPic_SwimmerF_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BlackBelt[] = {
- obj_frame_tiles(gMapObjectPic_BlackBelt_0),
- obj_frame_tiles(gMapObjectPic_BlackBelt_1),
- obj_frame_tiles(gMapObjectPic_BlackBelt_2),
- obj_frame_tiles(gMapObjectPic_BlackBelt_3),
- obj_frame_tiles(gMapObjectPic_BlackBelt_4),
- obj_frame_tiles(gMapObjectPic_BlackBelt_5),
- obj_frame_tiles(gMapObjectPic_BlackBelt_6),
- obj_frame_tiles(gMapObjectPic_BlackBelt_7),
- obj_frame_tiles(gMapObjectPic_BlackBelt_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Beauty[] = {
- obj_frame_tiles(gMapObjectPic_Beauty_0),
- obj_frame_tiles(gMapObjectPic_Beauty_1),
- obj_frame_tiles(gMapObjectPic_Beauty_2),
- obj_frame_tiles(gMapObjectPic_Beauty_3),
- obj_frame_tiles(gMapObjectPic_Beauty_4),
- obj_frame_tiles(gMapObjectPic_Beauty_5),
- obj_frame_tiles(gMapObjectPic_Beauty_6),
- obj_frame_tiles(gMapObjectPic_Beauty_7),
- obj_frame_tiles(gMapObjectPic_Beauty_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Scientist1[] = {
- obj_frame_tiles(gMapObjectPic_Scientist1_0),
- obj_frame_tiles(gMapObjectPic_Scientist1_1),
- obj_frame_tiles(gMapObjectPic_Scientist1_2),
- obj_frame_tiles(gMapObjectPic_Scientist1_3),
- obj_frame_tiles(gMapObjectPic_Scientist1_4),
- obj_frame_tiles(gMapObjectPic_Scientist1_5),
- obj_frame_tiles(gMapObjectPic_Scientist1_6),
- obj_frame_tiles(gMapObjectPic_Scientist1_7),
- obj_frame_tiles(gMapObjectPic_Scientist1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Lass[] = {
- obj_frame_tiles(gMapObjectPic_Lass_0),
- obj_frame_tiles(gMapObjectPic_Lass_1),
- obj_frame_tiles(gMapObjectPic_Lass_2),
- obj_frame_tiles(gMapObjectPic_Lass_3),
- obj_frame_tiles(gMapObjectPic_Lass_4),
- obj_frame_tiles(gMapObjectPic_Lass_5),
- obj_frame_tiles(gMapObjectPic_Lass_6),
- obj_frame_tiles(gMapObjectPic_Lass_7),
- obj_frame_tiles(gMapObjectPic_Lass_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Gentleman[] = {
- obj_frame_tiles(gMapObjectPic_Gentleman_0),
- obj_frame_tiles(gMapObjectPic_Gentleman_1),
- obj_frame_tiles(gMapObjectPic_Gentleman_2),
- obj_frame_tiles(gMapObjectPic_Gentleman_3),
- obj_frame_tiles(gMapObjectPic_Gentleman_4),
- obj_frame_tiles(gMapObjectPic_Gentleman_5),
- obj_frame_tiles(gMapObjectPic_Gentleman_6),
- obj_frame_tiles(gMapObjectPic_Gentleman_7),
- obj_frame_tiles(gMapObjectPic_Gentleman_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Sailor[] = {
- obj_frame_tiles(gMapObjectPic_Sailor_0),
- obj_frame_tiles(gMapObjectPic_Sailor_1),
- obj_frame_tiles(gMapObjectPic_Sailor_2),
- obj_frame_tiles(gMapObjectPic_Sailor_3),
- obj_frame_tiles(gMapObjectPic_Sailor_4),
- obj_frame_tiles(gMapObjectPic_Sailor_5),
- obj_frame_tiles(gMapObjectPic_Sailor_6),
- obj_frame_tiles(gMapObjectPic_Sailor_7),
- obj_frame_tiles(gMapObjectPic_Sailor_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Fisherman[] = {
- obj_frame_tiles(gMapObjectPic_Fisherman_0),
- obj_frame_tiles(gMapObjectPic_Fisherman_1),
- obj_frame_tiles(gMapObjectPic_Fisherman_2),
- obj_frame_tiles(gMapObjectPic_Fisherman_3),
- obj_frame_tiles(gMapObjectPic_Fisherman_4),
- obj_frame_tiles(gMapObjectPic_Fisherman_5),
- obj_frame_tiles(gMapObjectPic_Fisherman_6),
- obj_frame_tiles(gMapObjectPic_Fisherman_7),
- obj_frame_tiles(gMapObjectPic_Fisherman_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_RunningTriathleteM[] = {
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_0),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_1),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_2),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_3),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_4),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_5),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_6),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_7),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_RunningTriathleteF[] = {
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_0),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_1),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_2),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_3),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_4),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_5),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_6),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_7),
- obj_frame_tiles(gMapObjectPic_RunningTriathleteF_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_TuberF[] = {
- obj_frame_tiles(gMapObjectPic_TuberF_0),
- obj_frame_tiles(gMapObjectPic_TuberF_1),
- obj_frame_tiles(gMapObjectPic_TuberF_2),
- obj_frame_tiles(gMapObjectPic_TuberF_3),
- obj_frame_tiles(gMapObjectPic_TuberF_4),
- obj_frame_tiles(gMapObjectPic_TuberF_5),
- obj_frame_tiles(gMapObjectPic_TuberF_6),
- obj_frame_tiles(gMapObjectPic_TuberF_7),
- obj_frame_tiles(gMapObjectPic_TuberF_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_TuberM[] = {
- obj_frame_tiles(gMapObjectPic_TuberM_0),
- obj_frame_tiles(gMapObjectPic_TuberM_1),
- obj_frame_tiles(gMapObjectPic_TuberM_2),
- obj_frame_tiles(gMapObjectPic_TuberM_3),
- obj_frame_tiles(gMapObjectPic_TuberM_4),
- obj_frame_tiles(gMapObjectPic_TuberM_5),
- obj_frame_tiles(gMapObjectPic_TuberM_6),
- obj_frame_tiles(gMapObjectPic_TuberM_7),
- obj_frame_tiles(gMapObjectPic_TuberM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Hiker[] = {
- obj_frame_tiles(gMapObjectPic_Hiker_0),
- obj_frame_tiles(gMapObjectPic_Hiker_1),
- obj_frame_tiles(gMapObjectPic_Hiker_2),
- obj_frame_tiles(gMapObjectPic_Hiker_3),
- obj_frame_tiles(gMapObjectPic_Hiker_4),
- obj_frame_tiles(gMapObjectPic_Hiker_5),
- obj_frame_tiles(gMapObjectPic_Hiker_6),
- obj_frame_tiles(gMapObjectPic_Hiker_7),
- obj_frame_tiles(gMapObjectPic_Hiker_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_CyclingTriathleteM[] = {
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_0),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_1),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_2),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_3),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_4),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_5),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_6),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_7),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_CyclingTriathleteF[] = {
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_0),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_1),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_2),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_3),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_4),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_5),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_6),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_7),
- obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Nurse[] = {
- obj_frame_tiles(gMapObjectPic_Nurse_0),
- obj_frame_tiles(gMapObjectPic_Nurse_1),
- obj_frame_tiles(gMapObjectPic_Nurse_2),
- obj_frame_tiles(gMapObjectPic_Nurse_3),
- obj_frame_tiles(gMapObjectPic_Nurse_4),
- obj_frame_tiles(gMapObjectPic_Nurse_5),
- obj_frame_tiles(gMapObjectPic_Nurse_6),
- obj_frame_tiles(gMapObjectPic_Nurse_7),
- obj_frame_tiles(gMapObjectPic_Nurse_8),
- obj_frame_tiles(gMapObjectPic_Nurse_9)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_ItemBall[] = {
- obj_frame_tiles(gMapObjectPic_ItemBall)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_ProfBirch[] = {
- obj_frame_tiles(gMapObjectPic_ProfBirch_0),
- obj_frame_tiles(gMapObjectPic_ProfBirch_1),
- obj_frame_tiles(gMapObjectPic_ProfBirch_2),
- obj_frame_tiles(gMapObjectPic_ProfBirch_3),
- obj_frame_tiles(gMapObjectPic_ProfBirch_4),
- obj_frame_tiles(gMapObjectPic_ProfBirch_5),
- obj_frame_tiles(gMapObjectPic_ProfBirch_6),
- obj_frame_tiles(gMapObjectPic_ProfBirch_7),
- obj_frame_tiles(gMapObjectPic_ProfBirch_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Man5[] = {
- obj_frame_tiles(gMapObjectPic_Man5_0),
- obj_frame_tiles(gMapObjectPic_Man5_1),
- obj_frame_tiles(gMapObjectPic_Man5_2),
- obj_frame_tiles(gMapObjectPic_Man5_3),
- obj_frame_tiles(gMapObjectPic_Man5_4),
- obj_frame_tiles(gMapObjectPic_Man5_5),
- obj_frame_tiles(gMapObjectPic_Man5_6),
- obj_frame_tiles(gMapObjectPic_Man5_7),
- obj_frame_tiles(gMapObjectPic_Man5_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Man6[] = {
- obj_frame_tiles(gMapObjectPic_Man6_0),
- obj_frame_tiles(gMapObjectPic_Man6_1),
- obj_frame_tiles(gMapObjectPic_Man6_2),
- obj_frame_tiles(gMapObjectPic_Man6_3),
- obj_frame_tiles(gMapObjectPic_Man6_4),
- obj_frame_tiles(gMapObjectPic_Man6_5),
- obj_frame_tiles(gMapObjectPic_Man6_6),
- obj_frame_tiles(gMapObjectPic_Man6_7),
- obj_frame_tiles(gMapObjectPic_Man6_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_ReporterM[] = {
- obj_frame_tiles(gMapObjectPic_ReporterM_0),
- obj_frame_tiles(gMapObjectPic_ReporterM_1),
- obj_frame_tiles(gMapObjectPic_ReporterM_2),
- obj_frame_tiles(gMapObjectPic_ReporterM_3),
- obj_frame_tiles(gMapObjectPic_ReporterM_4),
- obj_frame_tiles(gMapObjectPic_ReporterM_5),
- obj_frame_tiles(gMapObjectPic_ReporterM_6),
- obj_frame_tiles(gMapObjectPic_ReporterM_7),
- obj_frame_tiles(gMapObjectPic_ReporterM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_ReporterF[] = {
- obj_frame_tiles(gMapObjectPic_ReporterF_0),
- obj_frame_tiles(gMapObjectPic_ReporterF_1),
- obj_frame_tiles(gMapObjectPic_ReporterF_2),
- obj_frame_tiles(gMapObjectPic_ReporterF_3),
- obj_frame_tiles(gMapObjectPic_ReporterF_4),
- obj_frame_tiles(gMapObjectPic_ReporterF_5),
- obj_frame_tiles(gMapObjectPic_ReporterF_6),
- obj_frame_tiles(gMapObjectPic_ReporterF_7),
- obj_frame_tiles(gMapObjectPic_ReporterF_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MauvilleOldMan1[] = {
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_0),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_1),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_2),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_3),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_4),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_5),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_6),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_7),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MauvilleOldMan2[] = {
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_0),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_1),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_2),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_3),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_4),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_5),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_6),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_7),
- obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_UnusedNatuDoll[] = {
- obj_frame_tiles(gMapObjectPic_UnusedNatuDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_UnusedMagnemiteDoll[] = {
- obj_frame_tiles(gMapObjectPic_UnusedMagnemiteDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_UnusedSquirtleDoll[] = {
- obj_frame_tiles(gMapObjectPic_UnusedSquirtleDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_UnusedWooperDoll[] = {
- obj_frame_tiles(gMapObjectPic_UnusedWooperDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_UnusedPikachuDoll[] = {
- obj_frame_tiles(gMapObjectPic_UnusedPikachuDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_UnusedPorygon2Doll[] = {
- obj_frame_tiles(gMapObjectPic_UnusedPorygon2Doll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_CuttableTree[] = {
- obj_frame_tiles(gMapObjectPic_CuttableTree_0),
- obj_frame_tiles(gMapObjectPic_CuttableTree_1),
- obj_frame_tiles(gMapObjectPic_CuttableTree_2),
- obj_frame_tiles(gMapObjectPic_CuttableTree_3)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MartEmployee[] = {
- obj_frame_tiles(gMapObjectPic_MartEmployee_0),
- obj_frame_tiles(gMapObjectPic_MartEmployee_1),
- obj_frame_tiles(gMapObjectPic_MartEmployee_2),
- obj_frame_tiles(gMapObjectPic_MartEmployee_3),
- obj_frame_tiles(gMapObjectPic_MartEmployee_4),
- obj_frame_tiles(gMapObjectPic_MartEmployee_5),
- obj_frame_tiles(gMapObjectPic_MartEmployee_6),
- obj_frame_tiles(gMapObjectPic_MartEmployee_7),
- obj_frame_tiles(gMapObjectPic_MartEmployee_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_RooftopSaleWoman[] = {
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_0),
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_1),
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_2),
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_3),
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_4),
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_5),
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_6),
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_7),
- obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Teala[] = {
- obj_frame_tiles(gMapObjectPic_Teala_0),
- obj_frame_tiles(gMapObjectPic_Teala_1),
- obj_frame_tiles(gMapObjectPic_Teala_2),
- obj_frame_tiles(gMapObjectPic_Teala_3),
- obj_frame_tiles(gMapObjectPic_Teala_4),
- obj_frame_tiles(gMapObjectPic_Teala_5),
- obj_frame_tiles(gMapObjectPic_Teala_6),
- obj_frame_tiles(gMapObjectPic_Teala_7),
- obj_frame_tiles(gMapObjectPic_Teala_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BreakableRock[] = {
- obj_frame_tiles(gMapObjectPic_BreakableRock_0),
- obj_frame_tiles(gMapObjectPic_BreakableRock_1),
- obj_frame_tiles(gMapObjectPic_BreakableRock_2),
- obj_frame_tiles(gMapObjectPic_BreakableRock_3)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_PushableBoulder[] = {
- obj_frame_tiles(gMapObjectPic_PushableBoulder)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MrBrineysBoat[] = {
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0),
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1),
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2),
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0),
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0),
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1),
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1),
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2),
- obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Truck[] = {
- obj_frame_tiles(gMapObjectPic_Truck)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MachokeCarryingBox[] = {
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0),
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0),
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0),
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1),
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2),
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1),
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2),
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1),
- obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MachokeFacingAway[] = {
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0),
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0),
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0),
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
- obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BirchsBag[] = {
- obj_frame_tiles(gMapObjectPic_BirchsBag)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Poochyena[] = {
- obj_frame_tiles(gMapObjectPic_Poochyena_0),
- obj_frame_tiles(gMapObjectPic_Poochyena_1),
- obj_frame_tiles(gMapObjectPic_Poochyena_2),
- obj_frame_tiles(gMapObjectPic_Poochyena_3),
- obj_frame_tiles(gMapObjectPic_Poochyena_4),
- obj_frame_tiles(gMapObjectPic_Poochyena_5),
- obj_frame_tiles(gMapObjectPic_Poochyena_6),
- obj_frame_tiles(gMapObjectPic_Poochyena_7),
- obj_frame_tiles(gMapObjectPic_Poochyena_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Artist[] = {
- obj_frame_tiles(gMapObjectPic_Artist_0),
- obj_frame_tiles(gMapObjectPic_Artist_1),
- obj_frame_tiles(gMapObjectPic_Artist_2),
- obj_frame_tiles(gMapObjectPic_Artist_3),
- obj_frame_tiles(gMapObjectPic_Artist_4),
- obj_frame_tiles(gMapObjectPic_Artist_5),
- obj_frame_tiles(gMapObjectPic_Artist_6),
- obj_frame_tiles(gMapObjectPic_Artist_7),
- obj_frame_tiles(gMapObjectPic_Artist_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MayNormal[] = {
- obj_frame_tiles(gMapObjectPic_MayNormal_0),
- obj_frame_tiles(gMapObjectPic_MayNormal_1),
- obj_frame_tiles(gMapObjectPic_MayNormal_2),
- obj_frame_tiles(gMapObjectPic_MayNormal_3),
- obj_frame_tiles(gMapObjectPic_MayNormal_4),
- obj_frame_tiles(gMapObjectPic_MayNormal_5),
- obj_frame_tiles(gMapObjectPic_MayNormal_6),
- obj_frame_tiles(gMapObjectPic_MayNormal_7),
- obj_frame_tiles(gMapObjectPic_MayNormal_8),
- obj_frame_tiles(gMapObjectPic_MayNormal_9),
- obj_frame_tiles(gMapObjectPic_MayNormal_10),
- obj_frame_tiles(gMapObjectPic_MayNormal_11),
- obj_frame_tiles(gMapObjectPic_MayNormal_12),
- obj_frame_tiles(gMapObjectPic_MayNormal_13),
- obj_frame_tiles(gMapObjectPic_MayNormal_14),
- obj_frame_tiles(gMapObjectPic_MayNormal_15),
- obj_frame_tiles(gMapObjectPic_MayNormal_16),
- obj_frame_tiles(gMapObjectPic_MayNormal_17)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MayMachBike[] = {
- obj_frame_tiles(gMapObjectPic_MayMachBike_0),
- obj_frame_tiles(gMapObjectPic_MayMachBike_1),
- obj_frame_tiles(gMapObjectPic_MayMachBike_2),
- obj_frame_tiles(gMapObjectPic_MayMachBike_3),
- obj_frame_tiles(gMapObjectPic_MayMachBike_4),
- obj_frame_tiles(gMapObjectPic_MayMachBike_5),
- obj_frame_tiles(gMapObjectPic_MayMachBike_6),
- obj_frame_tiles(gMapObjectPic_MayMachBike_7),
- obj_frame_tiles(gMapObjectPic_MayMachBike_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MayAcroBike[] = {
- obj_frame_tiles(gMapObjectPic_MayAcroBike_0),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_1),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_2),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_3),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_4),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_5),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_6),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_7),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_8),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_9),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_10),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_11),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_12),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_13),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_14),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_15),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_16),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_17),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_18),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_19),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_20),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_21),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_22),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_23),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_24),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_25),
- obj_frame_tiles(gMapObjectPic_MayAcroBike_26)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MaySurfing[] = {
- obj_frame_tiles(gMapObjectPic_MaySurfing_0),
- obj_frame_tiles(gMapObjectPic_MaySurfing_1),
- obj_frame_tiles(gMapObjectPic_MaySurfing_2),
- obj_frame_tiles(gMapObjectPic_MaySurfing_0),
- obj_frame_tiles(gMapObjectPic_MaySurfing_0),
- obj_frame_tiles(gMapObjectPic_MaySurfing_1),
- obj_frame_tiles(gMapObjectPic_MaySurfing_1),
- obj_frame_tiles(gMapObjectPic_MaySurfing_2),
- obj_frame_tiles(gMapObjectPic_MaySurfing_2),
- obj_frame_tiles(gMapObjectPic_MaySurfing_3),
- obj_frame_tiles(gMapObjectPic_MaySurfing_4),
- obj_frame_tiles(gMapObjectPic_MaySurfing_5)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MayUnderwater[] = {
- obj_frame_tiles(gMapObjectPic_MayUnderwater_0),
- obj_frame_tiles(gMapObjectPic_MayUnderwater_1),
- obj_frame_tiles(gMapObjectPic_MayUnderwater_2),
- obj_frame_tiles(gMapObjectPic_MayUnderwater_0),
- obj_frame_tiles(gMapObjectPic_MayUnderwater_0),
- obj_frame_tiles(gMapObjectPic_MayUnderwater_1),
- obj_frame_tiles(gMapObjectPic_MayUnderwater_1),
- obj_frame_tiles(gMapObjectPic_MayUnderwater_2),
- obj_frame_tiles(gMapObjectPic_MayUnderwater_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MayFieldMove[] = {
- obj_frame_tiles(gMapObjectPic_MayFieldMove_0),
- obj_frame_tiles(gMapObjectPic_MayFieldMove_1),
- obj_frame_tiles(gMapObjectPic_MayFieldMove_2),
- obj_frame_tiles(gMapObjectPic_MayFieldMove_3),
- obj_frame_tiles(gMapObjectPic_MayFieldMove_4)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Cameraman[] = {
- obj_frame_tiles(gMapObjectPic_Cameraman_0),
- obj_frame_tiles(gMapObjectPic_Cameraman_1),
- obj_frame_tiles(gMapObjectPic_Cameraman_2),
- obj_frame_tiles(gMapObjectPic_Cameraman_3),
- obj_frame_tiles(gMapObjectPic_Cameraman_4),
- obj_frame_tiles(gMapObjectPic_Cameraman_5),
- obj_frame_tiles(gMapObjectPic_Cameraman_6),
- obj_frame_tiles(gMapObjectPic_Cameraman_7),
- obj_frame_tiles(gMapObjectPic_Cameraman_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MovingBox[] = {
- obj_frame_tiles(gMapObjectPic_MovingBox)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_CableCar[] = {
- obj_frame_tiles(gMapObjectPic_CableCar)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Scientist2[] = {
- obj_frame_tiles(gMapObjectPic_Scientist2_0),
- obj_frame_tiles(gMapObjectPic_Scientist2_1),
- obj_frame_tiles(gMapObjectPic_Scientist2_2),
- obj_frame_tiles(gMapObjectPic_Scientist2_3),
- obj_frame_tiles(gMapObjectPic_Scientist2_4),
- obj_frame_tiles(gMapObjectPic_Scientist2_5),
- obj_frame_tiles(gMapObjectPic_Scientist2_6),
- obj_frame_tiles(gMapObjectPic_Scientist2_7),
- obj_frame_tiles(gMapObjectPic_Scientist2_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Man7[] = {
- obj_frame_tiles(gMapObjectPic_Man7_0),
- obj_frame_tiles(gMapObjectPic_Man7_1),
- obj_frame_tiles(gMapObjectPic_Man7_2),
- obj_frame_tiles(gMapObjectPic_Man7_3),
- obj_frame_tiles(gMapObjectPic_Man7_4),
- obj_frame_tiles(gMapObjectPic_Man7_5),
- obj_frame_tiles(gMapObjectPic_Man7_6),
- obj_frame_tiles(gMapObjectPic_Man7_7),
- obj_frame_tiles(gMapObjectPic_Man7_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_AquaMemberM[] = {
- obj_frame_tiles(gMapObjectPic_AquaMemberM_0),
- obj_frame_tiles(gMapObjectPic_AquaMemberM_1),
- obj_frame_tiles(gMapObjectPic_AquaMemberM_2),
- obj_frame_tiles(gMapObjectPic_AquaMemberM_3),
- obj_frame_tiles(gMapObjectPic_AquaMemberM_4),
- obj_frame_tiles(gMapObjectPic_AquaMemberM_5),
- obj_frame_tiles(gMapObjectPic_AquaMemberM_6),
- obj_frame_tiles(gMapObjectPic_AquaMemberM_7),
- obj_frame_tiles(gMapObjectPic_AquaMemberM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_AquaMemberF[] = {
- obj_frame_tiles(gMapObjectPic_AquaMemberF_0),
- obj_frame_tiles(gMapObjectPic_AquaMemberF_1),
- obj_frame_tiles(gMapObjectPic_AquaMemberF_2),
- obj_frame_tiles(gMapObjectPic_AquaMemberF_3),
- obj_frame_tiles(gMapObjectPic_AquaMemberF_4),
- obj_frame_tiles(gMapObjectPic_AquaMemberF_5),
- obj_frame_tiles(gMapObjectPic_AquaMemberF_6),
- obj_frame_tiles(gMapObjectPic_AquaMemberF_7),
- obj_frame_tiles(gMapObjectPic_AquaMemberF_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MagmaMemberM[] = {
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_0),
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_1),
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_2),
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_3),
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_4),
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_5),
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_6),
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_7),
- obj_frame_tiles(gMapObjectPic_MagmaMemberM_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MagmaMemberF[] = {
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_0),
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_1),
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_2),
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_3),
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_4),
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_5),
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_6),
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_7),
- obj_frame_tiles(gMapObjectPic_MagmaMemberF_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Sidney[] = {
- obj_frame_tiles(gMapObjectPic_Sidney_0),
- obj_frame_tiles(gMapObjectPic_Sidney_1),
- obj_frame_tiles(gMapObjectPic_Sidney_2),
- obj_frame_tiles(gMapObjectPic_Sidney_0),
- obj_frame_tiles(gMapObjectPic_Sidney_0),
- obj_frame_tiles(gMapObjectPic_Sidney_1),
- obj_frame_tiles(gMapObjectPic_Sidney_1),
- obj_frame_tiles(gMapObjectPic_Sidney_2),
- obj_frame_tiles(gMapObjectPic_Sidney_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Phoebe[] = {
- obj_frame_tiles(gMapObjectPic_Phoebe_0),
- obj_frame_tiles(gMapObjectPic_Phoebe_1),
- obj_frame_tiles(gMapObjectPic_Phoebe_2),
- obj_frame_tiles(gMapObjectPic_Phoebe_0),
- obj_frame_tiles(gMapObjectPic_Phoebe_0),
- obj_frame_tiles(gMapObjectPic_Phoebe_1),
- obj_frame_tiles(gMapObjectPic_Phoebe_1),
- obj_frame_tiles(gMapObjectPic_Phoebe_2),
- obj_frame_tiles(gMapObjectPic_Phoebe_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Glacia[] = {
- obj_frame_tiles(gMapObjectPic_Glacia_0),
- obj_frame_tiles(gMapObjectPic_Glacia_1),
- obj_frame_tiles(gMapObjectPic_Glacia_2),
- obj_frame_tiles(gMapObjectPic_Glacia_0),
- obj_frame_tiles(gMapObjectPic_Glacia_0),
- obj_frame_tiles(gMapObjectPic_Glacia_1),
- obj_frame_tiles(gMapObjectPic_Glacia_1),
- obj_frame_tiles(gMapObjectPic_Glacia_2),
- obj_frame_tiles(gMapObjectPic_Glacia_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Drake[] = {
- obj_frame_tiles(gMapObjectPic_Drake_0),
- obj_frame_tiles(gMapObjectPic_Drake_1),
- obj_frame_tiles(gMapObjectPic_Drake_2),
- obj_frame_tiles(gMapObjectPic_Drake_0),
- obj_frame_tiles(gMapObjectPic_Drake_0),
- obj_frame_tiles(gMapObjectPic_Drake_1),
- obj_frame_tiles(gMapObjectPic_Drake_1),
- obj_frame_tiles(gMapObjectPic_Drake_2),
- obj_frame_tiles(gMapObjectPic_Drake_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Roxanne[] = {
- obj_frame_tiles(gMapObjectPic_Roxanne_0),
- obj_frame_tiles(gMapObjectPic_Roxanne_1),
- obj_frame_tiles(gMapObjectPic_Roxanne_2),
- obj_frame_tiles(gMapObjectPic_Roxanne_0),
- obj_frame_tiles(gMapObjectPic_Roxanne_0),
- obj_frame_tiles(gMapObjectPic_Roxanne_1),
- obj_frame_tiles(gMapObjectPic_Roxanne_1),
- obj_frame_tiles(gMapObjectPic_Roxanne_2),
- obj_frame_tiles(gMapObjectPic_Roxanne_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Brawly[] = {
- obj_frame_tiles(gMapObjectPic_Brawly_0),
- obj_frame_tiles(gMapObjectPic_Brawly_1),
- obj_frame_tiles(gMapObjectPic_Brawly_2),
- obj_frame_tiles(gMapObjectPic_Brawly_0),
- obj_frame_tiles(gMapObjectPic_Brawly_0),
- obj_frame_tiles(gMapObjectPic_Brawly_1),
- obj_frame_tiles(gMapObjectPic_Brawly_1),
- obj_frame_tiles(gMapObjectPic_Brawly_2),
- obj_frame_tiles(gMapObjectPic_Brawly_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Wattson[] = {
- obj_frame_tiles(gMapObjectPic_Wattson_0),
- obj_frame_tiles(gMapObjectPic_Wattson_1),
- obj_frame_tiles(gMapObjectPic_Wattson_2),
- obj_frame_tiles(gMapObjectPic_Wattson_0),
- obj_frame_tiles(gMapObjectPic_Wattson_0),
- obj_frame_tiles(gMapObjectPic_Wattson_1),
- obj_frame_tiles(gMapObjectPic_Wattson_1),
- obj_frame_tiles(gMapObjectPic_Wattson_2),
- obj_frame_tiles(gMapObjectPic_Wattson_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Flannery[] = {
- obj_frame_tiles(gMapObjectPic_Flannery_0),
- obj_frame_tiles(gMapObjectPic_Flannery_1),
- obj_frame_tiles(gMapObjectPic_Flannery_2),
- obj_frame_tiles(gMapObjectPic_Flannery_0),
- obj_frame_tiles(gMapObjectPic_Flannery_0),
- obj_frame_tiles(gMapObjectPic_Flannery_1),
- obj_frame_tiles(gMapObjectPic_Flannery_1),
- obj_frame_tiles(gMapObjectPic_Flannery_2),
- obj_frame_tiles(gMapObjectPic_Flannery_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Norman[] = {
- obj_frame_tiles(gMapObjectPic_Norman_0),
- obj_frame_tiles(gMapObjectPic_Norman_1),
- obj_frame_tiles(gMapObjectPic_Norman_2),
- obj_frame_tiles(gMapObjectPic_Norman_3),
- obj_frame_tiles(gMapObjectPic_Norman_4),
- obj_frame_tiles(gMapObjectPic_Norman_5),
- obj_frame_tiles(gMapObjectPic_Norman_6),
- obj_frame_tiles(gMapObjectPic_Norman_7),
- obj_frame_tiles(gMapObjectPic_Norman_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Winona[] = {
- obj_frame_tiles(gMapObjectPic_Winona_0),
- obj_frame_tiles(gMapObjectPic_Winona_1),
- obj_frame_tiles(gMapObjectPic_Winona_2),
- obj_frame_tiles(gMapObjectPic_Winona_0),
- obj_frame_tiles(gMapObjectPic_Winona_0),
- obj_frame_tiles(gMapObjectPic_Winona_1),
- obj_frame_tiles(gMapObjectPic_Winona_1),
- obj_frame_tiles(gMapObjectPic_Winona_2),
- obj_frame_tiles(gMapObjectPic_Winona_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Liza[] = {
- obj_frame_tiles(gMapObjectPic_Liza_0),
- obj_frame_tiles(gMapObjectPic_Liza_1),
- obj_frame_tiles(gMapObjectPic_Liza_2),
- obj_frame_tiles(gMapObjectPic_Liza_0),
- obj_frame_tiles(gMapObjectPic_Liza_0),
- obj_frame_tiles(gMapObjectPic_Liza_1),
- obj_frame_tiles(gMapObjectPic_Liza_1),
- obj_frame_tiles(gMapObjectPic_Liza_2),
- obj_frame_tiles(gMapObjectPic_Liza_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Tate[] = {
- obj_frame_tiles(gMapObjectPic_Tate_0),
- obj_frame_tiles(gMapObjectPic_Tate_1),
- obj_frame_tiles(gMapObjectPic_Tate_2),
- obj_frame_tiles(gMapObjectPic_Tate_0),
- obj_frame_tiles(gMapObjectPic_Tate_0),
- obj_frame_tiles(gMapObjectPic_Tate_1),
- obj_frame_tiles(gMapObjectPic_Tate_1),
- obj_frame_tiles(gMapObjectPic_Tate_2),
- obj_frame_tiles(gMapObjectPic_Tate_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Wallace[] = {
- obj_frame_tiles(gMapObjectPic_Wallace_0),
- obj_frame_tiles(gMapObjectPic_Wallace_1),
- obj_frame_tiles(gMapObjectPic_Wallace_2),
- obj_frame_tiles(gMapObjectPic_Wallace_3),
- obj_frame_tiles(gMapObjectPic_Wallace_4),
- obj_frame_tiles(gMapObjectPic_Wallace_5),
- obj_frame_tiles(gMapObjectPic_Wallace_6),
- obj_frame_tiles(gMapObjectPic_Wallace_7),
- obj_frame_tiles(gMapObjectPic_Wallace_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Steven[] = {
- obj_frame_tiles(gMapObjectPic_Steven_0),
- obj_frame_tiles(gMapObjectPic_Steven_1),
- obj_frame_tiles(gMapObjectPic_Steven_2),
- obj_frame_tiles(gMapObjectPic_Steven_3),
- obj_frame_tiles(gMapObjectPic_Steven_4),
- obj_frame_tiles(gMapObjectPic_Steven_5),
- obj_frame_tiles(gMapObjectPic_Steven_6),
- obj_frame_tiles(gMapObjectPic_Steven_7),
- obj_frame_tiles(gMapObjectPic_Steven_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Wally[] = {
- obj_frame_tiles(gMapObjectPic_Wally_0),
- obj_frame_tiles(gMapObjectPic_Wally_1),
- obj_frame_tiles(gMapObjectPic_Wally_2),
- obj_frame_tiles(gMapObjectPic_Wally_3),
- obj_frame_tiles(gMapObjectPic_Wally_4),
- obj_frame_tiles(gMapObjectPic_Wally_5),
- obj_frame_tiles(gMapObjectPic_Wally_6),
- obj_frame_tiles(gMapObjectPic_Wally_7),
- obj_frame_tiles(gMapObjectPic_Wally_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_LittleBoy3[] = {
- obj_frame_tiles(gMapObjectPic_LittleBoy3_0),
- obj_frame_tiles(gMapObjectPic_LittleBoy3_1),
- obj_frame_tiles(gMapObjectPic_LittleBoy3_2),
- obj_frame_tiles(gMapObjectPic_LittleBoy3_3),
- obj_frame_tiles(gMapObjectPic_LittleBoy3_4),
- obj_frame_tiles(gMapObjectPic_LittleBoy3_5),
- obj_frame_tiles(gMapObjectPic_LittleBoy3_6),
- obj_frame_tiles(gMapObjectPic_LittleBoy3_7),
- obj_frame_tiles(gMapObjectPic_LittleBoy3_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanFishing[] = {
- obj_frame_tiles(gMapObjectPic_BrendanFishing_0),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_1),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_2),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_3),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_4),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_5),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_6),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_7),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_8),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_9),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_10),
- obj_frame_tiles(gMapObjectPic_BrendanFishing_11)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MayFishing[] = {
- obj_frame_tiles(gMapObjectPic_MayFishing_0),
- obj_frame_tiles(gMapObjectPic_MayFishing_1),
- obj_frame_tiles(gMapObjectPic_MayFishing_2),
- obj_frame_tiles(gMapObjectPic_MayFishing_3),
- obj_frame_tiles(gMapObjectPic_MayFishing_4),
- obj_frame_tiles(gMapObjectPic_MayFishing_5),
- obj_frame_tiles(gMapObjectPic_MayFishing_6),
- obj_frame_tiles(gMapObjectPic_MayFishing_7),
- obj_frame_tiles(gMapObjectPic_MayFishing_8),
- obj_frame_tiles(gMapObjectPic_MayFishing_9),
- obj_frame_tiles(gMapObjectPic_MayFishing_10),
- obj_frame_tiles(gMapObjectPic_MayFishing_11)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_HotSpringsOldWoman[] = {
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_0),
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_1),
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_2),
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_3),
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_4),
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_5),
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_6),
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_7),
- obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SSTidal[] = {
- obj_frame_tiles(gMapObjectPic_SSTidal),
- obj_frame_tiles(gMapObjectPic_SSTidal),
- obj_frame_tiles(gMapObjectPic_SSTidal),
- obj_frame_tiles(gMapObjectPic_SSTidal),
- obj_frame_tiles(gMapObjectPic_SSTidal),
- obj_frame_tiles(gMapObjectPic_SSTidal),
- obj_frame_tiles(gMapObjectPic_SSTidal),
- obj_frame_tiles(gMapObjectPic_SSTidal),
- obj_frame_tiles(gMapObjectPic_SSTidal)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SubmarineShadow[] = {
- obj_frame_tiles(gMapObjectPic_SubmarineShadow),
- obj_frame_tiles(gMapObjectPic_SubmarineShadow),
- obj_frame_tiles(gMapObjectPic_SubmarineShadow),
- obj_frame_tiles(gMapObjectPic_SubmarineShadow),
- obj_frame_tiles(gMapObjectPic_SubmarineShadow),
- obj_frame_tiles(gMapObjectPic_SubmarineShadow),
- obj_frame_tiles(gMapObjectPic_SubmarineShadow),
- obj_frame_tiles(gMapObjectPic_SubmarineShadow),
- obj_frame_tiles(gMapObjectPic_SubmarineShadow)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_PichuDoll[] = {
- obj_frame_tiles(gMapObjectPic_PichuDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_PikachuDoll[] = {
- obj_frame_tiles(gMapObjectPic_PikachuDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MarillDoll[] = {
- obj_frame_tiles(gMapObjectPic_MarillDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_TogepiDoll[] = {
- obj_frame_tiles(gMapObjectPic_TogepiDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_CyndaquilDoll[] = {
- obj_frame_tiles(gMapObjectPic_CyndaquilDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_ChikoritaDoll[] = {
- obj_frame_tiles(gMapObjectPic_ChikoritaDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_TotodileDoll[] = {
- obj_frame_tiles(gMapObjectPic_TotodileDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_JigglypuffDoll[] = {
- obj_frame_tiles(gMapObjectPic_JigglypuffDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MeowthDoll[] = {
- obj_frame_tiles(gMapObjectPic_MeowthDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_ClefairyDoll[] = {
- obj_frame_tiles(gMapObjectPic_ClefairyDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_DittoDoll[] = {
- obj_frame_tiles(gMapObjectPic_DittoDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SmoochumDoll[] = {
- obj_frame_tiles(gMapObjectPic_SmoochumDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_TreeckoDoll[] = {
- obj_frame_tiles(gMapObjectPic_TreeckoDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_TorchicDoll[] = {
- obj_frame_tiles(gMapObjectPic_TorchicDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MudkipDoll[] = {
- obj_frame_tiles(gMapObjectPic_MudkipDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_DuskullDoll[] = {
- obj_frame_tiles(gMapObjectPic_DuskullDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_WynautDoll[] = {
- obj_frame_tiles(gMapObjectPic_WynautDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BaltoyDoll[] = {
- obj_frame_tiles(gMapObjectPic_BaltoyDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_KecleonDoll[] = {
- obj_frame_tiles(gMapObjectPic_KecleonDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_AzurillDoll[] = {
- obj_frame_tiles(gMapObjectPic_AzurillDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SkittyDoll[] = {
- obj_frame_tiles(gMapObjectPic_SkittyDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SwabluDoll[] = {
- obj_frame_tiles(gMapObjectPic_SwabluDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_GulpinDoll[] = {
- obj_frame_tiles(gMapObjectPic_GulpinDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_LotadDoll[] = {
- obj_frame_tiles(gMapObjectPic_LotadDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SeedotDoll[] = {
- obj_frame_tiles(gMapObjectPic_SeedotDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_PikaCushion[] = {
- obj_frame_tiles(gMapObjectPic_PikaCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_RoundCushion[] = {
- obj_frame_tiles(gMapObjectPic_RoundCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_KissCushion[] = {
- obj_frame_tiles(gMapObjectPic_KissCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_ZigzagCushion[] = {
- obj_frame_tiles(gMapObjectPic_ZigzagCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_SpinCushion[] = {
- obj_frame_tiles(gMapObjectPic_SpinCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_DiamondCushion[] = {
- obj_frame_tiles(gMapObjectPic_DiamondCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BallCushion[] = {
- obj_frame_tiles(gMapObjectPic_BallCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_GrassCushion[] = {
- obj_frame_tiles(gMapObjectPic_GrassCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_FireCushion[] = {
- obj_frame_tiles(gMapObjectPic_FireCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_WaterCushion[] = {
- obj_frame_tiles(gMapObjectPic_WaterCushion)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigSnorlaxDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigSnorlaxDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigRhydonDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigRhydonDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigLaprasDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigLaprasDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigVenusaurDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigVenusaurDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigCharizardDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigCharizardDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigBlastoiseDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigBlastoiseDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigWailmerDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigWailmerDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigRegirockDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigRegirockDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigRegiceDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigRegiceDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BigRegisteelDoll[] = {
- obj_frame_tiles(gMapObjectPic_BigRegisteelDoll)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_LatiasLatios[] = {
- obj_frame_tiles(gMapObjectPic_LatiasLatios_0),
- obj_frame_tiles(gMapObjectPic_LatiasLatios_0),
- obj_frame_tiles(gMapObjectPic_LatiasLatios_0),
- obj_frame_tiles(gMapObjectPic_LatiasLatios_1),
- obj_frame_tiles(gMapObjectPic_LatiasLatios_2),
- obj_frame_tiles(gMapObjectPic_LatiasLatios_1),
- obj_frame_tiles(gMapObjectPic_LatiasLatios_2),
- obj_frame_tiles(gMapObjectPic_LatiasLatios_1),
- obj_frame_tiles(gMapObjectPic_LatiasLatios_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Boy5[] = {
- obj_frame_tiles(gMapObjectPic_Boy5_0),
- obj_frame_tiles(gMapObjectPic_Boy5_1),
- obj_frame_tiles(gMapObjectPic_Boy5_2),
- obj_frame_tiles(gMapObjectPic_Boy5_0),
- obj_frame_tiles(gMapObjectPic_Boy5_0),
- obj_frame_tiles(gMapObjectPic_Boy5_1),
- obj_frame_tiles(gMapObjectPic_Boy5_1),
- obj_frame_tiles(gMapObjectPic_Boy5_2),
- obj_frame_tiles(gMapObjectPic_Boy5_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_ContestJudge[] = {
- obj_frame_tiles(gMapObjectPic_ContestJudge_0),
- obj_frame_tiles(gMapObjectPic_ContestJudge_1),
- obj_frame_tiles(gMapObjectPic_ContestJudge_2),
- obj_frame_tiles(gMapObjectPic_ContestJudge_3),
- obj_frame_tiles(gMapObjectPic_ContestJudge_4),
- obj_frame_tiles(gMapObjectPic_ContestJudge_5),
- obj_frame_tiles(gMapObjectPic_ContestJudge_6),
- obj_frame_tiles(gMapObjectPic_ContestJudge_7),
- obj_frame_tiles(gMapObjectPic_ContestJudge_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanWatering[] = {
- obj_frame_tiles(gMapObjectPic_BrendanWatering_0),
- obj_frame_tiles(gMapObjectPic_BrendanWatering_1),
- obj_frame_tiles(gMapObjectPic_BrendanWatering_2),
- obj_frame_tiles(gMapObjectPic_BrendanWatering_3),
- obj_frame_tiles(gMapObjectPic_BrendanWatering_3),
- obj_frame_tiles(gMapObjectPic_BrendanWatering_4),
- obj_frame_tiles(gMapObjectPic_BrendanWatering_4),
- obj_frame_tiles(gMapObjectPic_BrendanWatering_5),
- obj_frame_tiles(gMapObjectPic_BrendanWatering_5)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MayWatering[] = {
- obj_frame_tiles(gMapObjectPic_MayWatering_0),
- obj_frame_tiles(gMapObjectPic_MayWatering_1),
- obj_frame_tiles(gMapObjectPic_MayWatering_2),
- obj_frame_tiles(gMapObjectPic_MayWatering_3),
- obj_frame_tiles(gMapObjectPic_MayWatering_3),
- obj_frame_tiles(gMapObjectPic_MayWatering_4),
- obj_frame_tiles(gMapObjectPic_MayWatering_4),
- obj_frame_tiles(gMapObjectPic_MayWatering_5),
- obj_frame_tiles(gMapObjectPic_MayWatering_5)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_BrendanDecorating[] = {
- obj_frame_tiles(gMapObjectPic_BrendanDecorating)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_MayDecorating[] = {
- obj_frame_tiles(gMapObjectPic_MayDecorating)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Archie[] = {
- obj_frame_tiles(gMapObjectPic_Archie_0),
- obj_frame_tiles(gMapObjectPic_Archie_1),
- obj_frame_tiles(gMapObjectPic_Archie_2),
- obj_frame_tiles(gMapObjectPic_Archie_3),
- obj_frame_tiles(gMapObjectPic_Archie_4),
- obj_frame_tiles(gMapObjectPic_Archie_5),
- obj_frame_tiles(gMapObjectPic_Archie_6),
- obj_frame_tiles(gMapObjectPic_Archie_7),
- obj_frame_tiles(gMapObjectPic_Archie_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Maxie[] = {
- obj_frame_tiles(gMapObjectPic_Maxie_0),
- obj_frame_tiles(gMapObjectPic_Maxie_1),
- obj_frame_tiles(gMapObjectPic_Maxie_2),
- obj_frame_tiles(gMapObjectPic_Maxie_3),
- obj_frame_tiles(gMapObjectPic_Maxie_4),
- obj_frame_tiles(gMapObjectPic_Maxie_5),
- obj_frame_tiles(gMapObjectPic_Maxie_6),
- obj_frame_tiles(gMapObjectPic_Maxie_7),
- obj_frame_tiles(gMapObjectPic_Maxie_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Kyogre[] = {
- obj_frame_tiles(gMapObjectPic_Kyogre_0),
- obj_frame_tiles(gMapObjectPic_Kyogre_0),
- obj_frame_tiles(gMapObjectPic_Kyogre_0),
- obj_frame_tiles(gMapObjectPic_Kyogre_1),
- obj_frame_tiles(gMapObjectPic_Kyogre_1),
- obj_frame_tiles(gMapObjectPic_Kyogre_1),
- obj_frame_tiles(gMapObjectPic_Kyogre_1),
- obj_frame_tiles(gMapObjectPic_Kyogre_1),
- obj_frame_tiles(gMapObjectPic_Kyogre_1)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Groudon[] = {
- obj_frame_tiles(gMapObjectPic_Groudon_0),
- obj_frame_tiles(gMapObjectPic_Groudon_0),
- obj_frame_tiles(gMapObjectPic_Groudon_0),
- obj_frame_tiles(gMapObjectPic_Groudon_1),
- obj_frame_tiles(gMapObjectPic_Groudon_1),
- obj_frame_tiles(gMapObjectPic_Groudon_1),
- obj_frame_tiles(gMapObjectPic_Groudon_1),
- obj_frame_tiles(gMapObjectPic_Groudon_1),
- obj_frame_tiles(gMapObjectPic_Groudon_1)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Fossil[] = {
- obj_frame_tiles(gMapObjectPic_Fossil)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Regi[] = {
- obj_frame_tiles(gMapObjectPic_Regi),
- obj_frame_tiles(gMapObjectPic_Regi),
- obj_frame_tiles(gMapObjectPic_Regi),
- obj_frame_tiles(gMapObjectPic_Regi),
- obj_frame_tiles(gMapObjectPic_Regi),
- obj_frame_tiles(gMapObjectPic_Regi),
- obj_frame_tiles(gMapObjectPic_Regi),
- obj_frame_tiles(gMapObjectPic_Regi),
- obj_frame_tiles(gMapObjectPic_Regi)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Skitty[] = {
- obj_frame_tiles(gMapObjectPic_Skitty_0),
- obj_frame_tiles(gMapObjectPic_Skitty_1),
- obj_frame_tiles(gMapObjectPic_Skitty_2),
- obj_frame_tiles(gMapObjectPic_Skitty_0),
- obj_frame_tiles(gMapObjectPic_Skitty_0),
- obj_frame_tiles(gMapObjectPic_Skitty_1),
- obj_frame_tiles(gMapObjectPic_Skitty_1),
- obj_frame_tiles(gMapObjectPic_Skitty_2),
- obj_frame_tiles(gMapObjectPic_Skitty_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Kecleon[] = {
- obj_frame_tiles(gMapObjectPic_Kecleon_0),
- obj_frame_tiles(gMapObjectPic_Kecleon_1),
- obj_frame_tiles(gMapObjectPic_Kecleon_2),
- obj_frame_tiles(gMapObjectPic_Kecleon_0),
- obj_frame_tiles(gMapObjectPic_Kecleon_0),
- obj_frame_tiles(gMapObjectPic_Kecleon_1),
- obj_frame_tiles(gMapObjectPic_Kecleon_1),
- obj_frame_tiles(gMapObjectPic_Kecleon_2),
- obj_frame_tiles(gMapObjectPic_Kecleon_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Rayquaza[] = {
- obj_frame_tiles(gMapObjectPic_Rayquaza_0),
- obj_frame_tiles(gMapObjectPic_Rayquaza_0),
- obj_frame_tiles(gMapObjectPic_Rayquaza_0),
- obj_frame_tiles(gMapObjectPic_Rayquaza_1),
- obj_frame_tiles(gMapObjectPic_Rayquaza_1),
- obj_frame_tiles(gMapObjectPic_Rayquaza_1),
- obj_frame_tiles(gMapObjectPic_Rayquaza_1),
- obj_frame_tiles(gMapObjectPic_Rayquaza_1),
- obj_frame_tiles(gMapObjectPic_Rayquaza_1)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Zigzagoon[] = {
- obj_frame_tiles(gMapObjectPic_Zigzagoon_0),
- obj_frame_tiles(gMapObjectPic_Zigzagoon_1),
- obj_frame_tiles(gMapObjectPic_Zigzagoon_2),
- obj_frame_tiles(gMapObjectPic_Zigzagoon_0),
- obj_frame_tiles(gMapObjectPic_Zigzagoon_0),
- obj_frame_tiles(gMapObjectPic_Zigzagoon_1),
- obj_frame_tiles(gMapObjectPic_Zigzagoon_1),
- obj_frame_tiles(gMapObjectPic_Zigzagoon_2),
- obj_frame_tiles(gMapObjectPic_Zigzagoon_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Pikachu[] = {
- obj_frame_tiles(gMapObjectPic_Pikachu_0),
- obj_frame_tiles(gMapObjectPic_Pikachu_1),
- obj_frame_tiles(gMapObjectPic_Pikachu_2),
- obj_frame_tiles(gMapObjectPic_Pikachu_0),
- obj_frame_tiles(gMapObjectPic_Pikachu_0),
- obj_frame_tiles(gMapObjectPic_Pikachu_1),
- obj_frame_tiles(gMapObjectPic_Pikachu_1),
- obj_frame_tiles(gMapObjectPic_Pikachu_2),
- obj_frame_tiles(gMapObjectPic_Pikachu_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Azumarill[] = {
- obj_frame_tiles(gMapObjectPic_Azumarill_0),
- obj_frame_tiles(gMapObjectPic_Azumarill_1),
- obj_frame_tiles(gMapObjectPic_Azumarill_2),
- obj_frame_tiles(gMapObjectPic_Azumarill_0),
- obj_frame_tiles(gMapObjectPic_Azumarill_0),
- obj_frame_tiles(gMapObjectPic_Azumarill_1),
- obj_frame_tiles(gMapObjectPic_Azumarill_1),
- obj_frame_tiles(gMapObjectPic_Azumarill_2),
- obj_frame_tiles(gMapObjectPic_Azumarill_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Wingull[] = {
- obj_frame_tiles(gMapObjectPic_Wingull_0),
- obj_frame_tiles(gMapObjectPic_Wingull_1),
- obj_frame_tiles(gMapObjectPic_Wingull_2),
- obj_frame_tiles(gMapObjectPic_Wingull_3),
- obj_frame_tiles(gMapObjectPic_Wingull_3),
- obj_frame_tiles(gMapObjectPic_Wingull_4),
- obj_frame_tiles(gMapObjectPic_Wingull_4),
- obj_frame_tiles(gMapObjectPic_Wingull_5),
- obj_frame_tiles(gMapObjectPic_Wingull_5)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_TuberMSwimming[] = {
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_0),
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_1),
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_2),
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_3),
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_4),
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_5),
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_6),
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_7),
- obj_frame_tiles(gMapObjectPic_TuberMSwimming_8)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Azurill[] = {
- obj_frame_tiles(gMapObjectPic_Azurill_0),
- obj_frame_tiles(gMapObjectPic_Azurill_1),
- obj_frame_tiles(gMapObjectPic_Azurill_2),
- obj_frame_tiles(gMapObjectPic_Azurill_0),
- obj_frame_tiles(gMapObjectPic_Azurill_0),
- obj_frame_tiles(gMapObjectPic_Azurill_1),
- obj_frame_tiles(gMapObjectPic_Azurill_1),
- obj_frame_tiles(gMapObjectPic_Azurill_2),
- obj_frame_tiles(gMapObjectPic_Azurill_2)
-};
-
-const struct SpriteFrameImage gMapObjectPicTable_Mom[] = {
- obj_frame_tiles(gMapObjectPic_Mom_0),
- obj_frame_tiles(gMapObjectPic_Mom_1),
- obj_frame_tiles(gMapObjectPic_Mom_2),
- obj_frame_tiles(gMapObjectPic_Mom_3),
- obj_frame_tiles(gMapObjectPic_Mom_4),
- obj_frame_tiles(gMapObjectPic_Mom_5),
- obj_frame_tiles(gMapObjectPic_Mom_6),
- obj_frame_tiles(gMapObjectPic_Mom_7),
- obj_frame_tiles(gMapObjectPic_Mom_8),
-};
-
-#endif //POKERUBY_MAP_OBJECT_PIC_TABLES_H
diff --git a/include/data/field_map_obj/map_object_subsprites.h b/include/data/field_map_obj/map_object_subsprites.h
deleted file mode 100644
index f928db88a..000000000
--- a/include/data/field_map_obj/map_object_subsprites.h
+++ /dev/null
@@ -1,345 +0,0 @@
-//
-// Created by scott on 6/17/2017.
-//
-
-#ifndef POKERUBY_MAP_OBJECT_SUBSPRITES_H
-#define POKERUBY_MAP_OBJECT_SUBSPRITES_H
-
-const struct Subsprite gMapObjectSubspriteTable_16x16_0[] = {
- { -8, -8, 0, 1, 0, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x16_1[] = {
- { -8, -8, 0, 1, 0, 1}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x16_2[] = {
- { -8, -8, 1, 0, 0, 2},
- { -8, 0, 1, 0, 2, 3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x16_3[] = {
- { -8, -8, 0, 1, 0, 2},
- { -8, -8, 0, 1, 0, 3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x16_4[] = {
- { -8, -8, 0, 1, 0, 1},
- { -8, -8, 0, 1, 0, 3}
-};
-
-const struct SubspriteTable gMapObjectSubspriteTables_16x16[] = {
- {0, NULL},
- {1, gMapObjectSubspriteTable_16x16_0},
- {1, gMapObjectSubspriteTable_16x16_1},
- {2, gMapObjectSubspriteTable_16x16_2},
- {2, gMapObjectSubspriteTable_16x16_3},
- {2, gMapObjectSubspriteTable_16x16_4}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x32_0[] = {
- { -8, -16, 2, 2, 0, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x32_1[] = {
- { -8, -16, 2, 2, 0, 1}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x32_2[] = {
- { -8, -16, 0, 1, 0, 2},
- { -8, 0, 1, 0, 4, 2},
- { -8, 8, 1, 0, 6, 3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x32_3[] = {
- { -8, -16, 0, 1, 0, 2},
- { -8, 0, 0, 1, 4, 3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_16x32_4[] = {
- { -8, -16, 0, 1, 0, 1},
- { -8, 0, 0, 1, 4, 3}
-};
-
-const struct SubspriteTable gMapObjectSubspriteTables_16x32[] = {
- {0, NULL},
- {1, gMapObjectSubspriteTable_16x32_0},
- {1, gMapObjectSubspriteTable_16x32_1},
- {3, gMapObjectSubspriteTable_16x32_2},
- {2, gMapObjectSubspriteTable_16x32_3},
- {2, gMapObjectSubspriteTable_16x32_4}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_32x32_0[] = {
- {-16, -16, 0, 2, 0, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_32x32_1[] = {
- {-16, -16, 0, 2, 0, 1}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_32x32_2[] = {
- {-16, -16, 1, 2, 0, 2},
- {-16, 0, 1, 1, 8, 2},
- {-16, 8, 1, 1, 12, 3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_32x32_3[] = {
- {-16, -16, 1, 2, 0, 2},
- {-16, 0, 1, 2, 8, 3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_32x32_4[] = {
- {-16, -16, 1, 2, 0, 1},
- {-16, 0, 1, 2, 8, 3}
-};
-
-const struct SubspriteTable gMapObjectSubspriteTables_32x32[] = {
- {0, NULL},
- {1, gMapObjectSubspriteTable_32x32_0},
- {1, gMapObjectSubspriteTable_32x32_1},
- {3, gMapObjectSubspriteTable_32x32_2},
- {2, gMapObjectSubspriteTable_32x32_3},
- {2, gMapObjectSubspriteTable_32x32_4}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_Truck_0[] = {
- {-24, -24, 1, 1, 0, 2},
- { 8, -24, 1, 0, 4, 2},
- {-24, -16, 1, 1, 6, 2},
- { 8, -16, 1, 0, 10, 2},
- {-24, -8, 1, 1, 12, 2},
- { 8, -8, 1, 0, 16, 2},
- {-24, 0, 1, 1, 18, 2},
- { 8, 0, 1, 0, 22, 2},
- {-24, 8, 1, 1, 24, 2},
- { 8, 8, 1, 0, 28, 2},
- {-24, 16, 1, 1, 30, 2},
- { 8, 16, 1, 0, 34, 2}
-};
-
-const struct SubspriteTable gMapObjectSubspriteTables_Truck[] = {
- {12, gMapObjectSubspriteTable_Truck_0},
- {12, gMapObjectSubspriteTable_Truck_0},
- {12, gMapObjectSubspriteTable_Truck_0},
- {12, gMapObjectSubspriteTable_Truck_0},
- {12, gMapObjectSubspriteTable_Truck_0},
- {12, gMapObjectSubspriteTable_Truck_0}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_Unused_0[] = {
- {-32, -16, 1, 3, 0, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_Unused_1[] = {
- {-32, -16, 1, 3, 0, 1}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_Unused_2[] = {
- {-32, -16, 1, 3, 0, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_Unused_3[] = {
- {-32, -16, 1, 3, 0, 2}
-};
-
-const struct SubspriteTable gMapObjectSubspriteTables_Unused[] = {
- {0, NULL},
- {1, gMapObjectSubspriteTable_Unused_0},
- {1, gMapObjectSubspriteTable_Unused_1},
- {1, gMapObjectSubspriteTable_Unused_2},
- {1, gMapObjectSubspriteTable_Unused_3},
- {1, gMapObjectSubspriteTable_Unused_3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_CableCar_0[] = {
- {-32, -32, 0, 3, 0, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_CableCar_1[] = {
- {-32, -32, 0, 3, 0, 1}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_CableCar_2[] = {
- {-32, -32, 0, 3, 0, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_CableCar_3[] = {
- {-32, -32, 0, 3, 0, 2}
-};
-
-const struct SubspriteTable gMapObjectSubspriteTables_CableCar[] = {
- {0, NULL},
- {1, gMapObjectSubspriteTable_CableCar_0},
- {1, gMapObjectSubspriteTable_CableCar_1},
- {1, gMapObjectSubspriteTable_CableCar_2},
- {1, gMapObjectSubspriteTable_CableCar_3},
- {1, gMapObjectSubspriteTable_CableCar_3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_SSTidal_0[] = {
- {-48, -20, 1, 1, 0, 2},
- {-16, -20, 1, 1, 4, 2},
- { 16, -20, 1, 1, 8, 2},
- {-48, -12, 1, 1, 12, 2},
- {-16, -12, 1, 1, 16, 2},
- { 16, -12, 1, 1, 20, 2},
- {-48, -4, 1, 1, 24, 2},
- {-16, -4, 1, 1, 28, 2},
- { 16, -4, 1, 1, 32, 2},
- {-48, 4, 1, 1, 36, 2},
- {-16, 4, 1, 1, 40, 2},
- { 16, 4, 1, 1, 44, 2},
- {-48, 12, 1, 1, 48, 2},
- {-16, 12, 1, 1, 52, 2},
- { 16, 12, 1, 1, 56, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_SSTidal_1[] = {
- {-48, -20, 1, 1, 0, 1},
- {-16, -20, 1, 1, 4, 1},
- { 16, -20, 1, 1, 8, 1},
- {-48, -12, 1, 1, 12, 1},
- {-16, -12, 1, 1, 16, 1},
- { 16, -12, 1, 1, 20, 1},
- {-48, -4, 1, 1, 24, 1},
- {-16, -4, 1, 1, 28, 1},
- { 16, -4, 1, 1, 32, 1},
- {-48, 4, 1, 1, 36, 1},
- {-16, 4, 1, 1, 40, 1},
- { 16, 4, 1, 1, 44, 1},
- {-48, 12, 1, 1, 48, 1},
- {-16, 12, 1, 1, 52, 1},
- { 16, 12, 1, 1, 56, 1}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_SSTidal_2[] = {
- {-48, -20, 1, 1, 0, 2},
- {-16, -20, 1, 1, 4, 2},
- { 16, -20, 1, 1, 8, 2},
- {-48, -12, 1, 1, 12, 2},
- {-16, -12, 1, 1, 16, 2},
- { 16, -12, 1, 1, 20, 2},
- {-48, -4, 1, 1, 24, 2},
- {-16, -4, 1, 1, 28, 2},
- { 16, -4, 1, 1, 32, 2},
- {-48, 4, 1, 1, 36, 2},
- {-16, 4, 1, 1, 40, 2},
- { 16, 4, 1, 1, 44, 2},
- {-48, 12, 1, 1, 48, 2},
- {-16, 12, 1, 1, 52, 2},
- { 16, 12, 1, 1, 56, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_SSTidal_3[] = {
- {-48, -20, 1, 1, 0, 1},
- {-16, -20, 1, 1, 4, 1},
- { 16, -20, 1, 1, 8, 1},
- {-48, -12, 1, 1, 12, 1},
- {-16, -12, 1, 1, 16, 1},
- { 16, -12, 1, 1, 20, 1},
- {-48, -4, 1, 1, 24, 2},
- {-16, -4, 1, 1, 28, 2},
- { 16, -4, 1, 1, 32, 2},
- {-48, 4, 1, 1, 36, 2},
- {-16, 4, 1, 1, 40, 2},
- { 16, 4, 1, 1, 44, 2},
- {-48, 12, 1, 1, 48, 2},
- {-16, 12, 1, 1, 52, 2},
- { 16, 12, 1, 1, 56, 2}
-};
-
-const struct SubspriteTable gMapObjectSubspriteTables_SSTidal[] = {
- {15, gMapObjectSubspriteTable_SSTidal_0},
- {15, gMapObjectSubspriteTable_SSTidal_0},
- {15, gMapObjectSubspriteTable_SSTidal_1},
- {15, gMapObjectSubspriteTable_SSTidal_2},
- {15, gMapObjectSubspriteTable_SSTidal_3},
- {15, gMapObjectSubspriteTable_SSTidal_3}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_0[] = {
- {-48, -20, 1, 1, 0, 2},
- {-16, -20, 1, 1, 4, 2},
- { 16, -20, 1, 0, 8, 2},
- { 32, -20, 0, 0, 10, 2},
- {-48, -12, 1, 1, 11, 2},
- {-16, -12, 1, 1, 15, 2},
- { 16, -12, 1, 0, 19, 2},
- { 32, -12, 0, 0, 21, 2},
- {-48, -4, 1, 1, 22, 2},
- {-16, -4, 1, 1, 26, 2},
- { 16, -4, 1, 0, 30, 2},
- { 32, -4, 0, 0, 32, 2},
- {-48, 4, 1, 1, 33, 2},
- {-16, 4, 1, 1, 37, 2},
- { 16, 4, 1, 0, 41, 2},
- { 32, 4, 0, 0, 43, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_1[] = {
- {-48, -20, 1, 1, 0, 1},
- {-16, -20, 1, 1, 4, 1},
- { 16, -20, 1, 0, 8, 1},
- { 32, -20, 0, 0, 10, 1},
- {-48, -12, 1, 1, 11, 1},
- {-16, -12, 1, 1, 15, 1},
- { 16, -12, 1, 0, 19, 1},
- { 32, -12, 0, 0, 21, 1},
- {-48, -4, 1, 1, 22, 1},
- {-16, -4, 1, 1, 26, 1},
- { 16, -4, 1, 0, 30, 1},
- { 32, -4, 0, 0, 32, 1},
- {-48, 4, 1, 1, 33, 1},
- {-16, 4, 1, 1, 37, 1},
- { 16, 4, 1, 0, 41, 1},
- { 32, 4, 0, 0, 43, 1}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_2[] = {
- {-48, -20, 1, 1, 0, 2},
- {-16, -20, 1, 1, 4, 2},
- { 16, -20, 1, 0, 8, 2},
- { 32, -20, 0, 0, 10, 2},
- {-48, -12, 1, 1, 11, 2},
- {-16, -12, 1, 1, 15, 2},
- { 16, -12, 1, 0, 19, 2},
- { 32, -12, 0, 0, 21, 2},
- {-48, -4, 1, 1, 22, 2},
- {-16, -4, 1, 1, 26, 2},
- { 16, -4, 1, 0, 30, 2},
- { 32, -4, 0, 0, 32, 2},
- {-48, 4, 1, 1, 33, 2},
- {-16, 4, 1, 1, 37, 2},
- { 16, 4, 1, 0, 41, 2},
- { 32, 4, 0, 0, 43, 2}
-};
-
-const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_3[] = {
- {-48, -20, 1, 1, 0, 1},
- {-16, -20, 1, 1, 4, 1},
- { 16, -20, 1, 0, 8, 1},
- { 32, -20, 0, 0, 10, 1},
- {-48, -12, 1, 1, 11, 1},
- {-16, -12, 1, 1, 15, 1},
- { 16, -12, 1, 0, 19, 1},
- { 32, -12, 0, 0, 21, 1},
- {-48, -4, 1, 1, 22, 2},
- {-16, -4, 1, 1, 26, 2},
- { 16, -4, 1, 0, 30, 2},
- { 32, -4, 0, 0, 32, 2},
- {-48, 4, 1, 1, 33, 2},
- {-16, 4, 1, 1, 37, 2},
- { 16, 4, 1, 0, 41, 2},
- { 32, 4, 0, 0, 43, 2}
-};
-
-const struct SubspriteTable gMapObjectSubspriteTables_SubmarineShadow[] = {
- {16, gMapObjectSubspriteTable_SubmarineShadow_0},
- {16, gMapObjectSubspriteTable_SubmarineShadow_0},
- {16, gMapObjectSubspriteTable_SubmarineShadow_1},
- {16, gMapObjectSubspriteTable_SubmarineShadow_2},
- {16, gMapObjectSubspriteTable_SubmarineShadow_3},
- {16, gMapObjectSubspriteTable_SubmarineShadow_3}
-};
-#endif //POKERUBY_MAP_OBJECT_SUBSPRITES_H
diff --git a/include/data/pokemon/base_stats.h b/include/data/pokemon/base_stats.h
deleted file mode 100644
index eadfbfe30..000000000
--- a/include/data/pokemon/base_stats.h
+++ /dev/null
@@ -1,7823 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_BASE_STATS_H
-#define POKERUBY_BASE_STATS_H
-
-const struct BaseStats gBaseStats[] = {
- { // ??????????
- }, {
- // Bulbasaur
- 45, 49, 49, 45, 65, 65,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 64, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Ivysaur
- 60, 62, 63, 60, 80, 80,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 141, // base exp. yield
- 0, 0, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Venusaur
- 80, 82, 83, 80, 100, 100,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 208, // base exp. yield
- 0, 0, 0, 0, 2, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Charmander
- 39, 52, 43, 65, 60, 50,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Charmeleon
- 58, 64, 58, 80, 80, 65,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 142, // base exp. yield
- 0, 0, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Charizard
- 78, 84, 78, 100, 109, 85,
- TYPE_FIRE,
- TYPE_FLYING,
- 45, // catch rate
- 209, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Squirtle
- 44, 48, 65, 43, 50, 64,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 66, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Wartortle
- 59, 63, 80, 58, 65, 80,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 143, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Blastoise
- 79, 83, 100, 78, 85, 105,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 210, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Caterpie
- 45, 30, 35, 45, 20, 20,
- TYPE_BUG,
- TYPE_BUG,
- 255, // catch rate
- 53, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Metapod
- 50, 20, 55, 30, 25, 25,
- TYPE_BUG,
- TYPE_BUG,
- 120, // catch rate
- 72, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Butterfree
- 60, 45, 50, 70, 80, 80,
- TYPE_BUG,
- TYPE_FLYING,
- 45, // catch rate
- 160, // base exp. yield
- 0, 0, 0, 0, 2, 1,
- ITEM_NONE,
- ITEM_SILVER_POWDER,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_COMPOUND_EYES,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Weedle
- 40, 35, 30, 50, 20, 20,
- TYPE_BUG,
- TYPE_POISON,
- 255, // catch rate
- 52, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Kakuna
- 45, 25, 50, 35, 25, 25,
- TYPE_BUG,
- TYPE_POISON,
- 120, // catch rate
- 71, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Beedrill
- 65, 80, 40, 75, 45, 80,
- TYPE_BUG,
- TYPE_POISON,
- 45, // catch rate
- 159, // base exp. yield
- 0, 2, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_POISON_BARB,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Pidgey
- 40, 45, 40, 56, 35, 35,
- TYPE_NORMAL,
- TYPE_FLYING,
- 255, // catch rate
- 55, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Pidgeotto
- 63, 60, 55, 71, 50, 50,
- TYPE_NORMAL,
- TYPE_FLYING,
- 120, // catch rate
- 113, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Pidgeot
- 83, 80, 75, 91, 70, 70,
- TYPE_NORMAL,
- TYPE_FLYING,
- 45, // catch rate
- 172, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Rattata
- 30, 56, 35, 72, 25, 35,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 57, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_GUTS,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Raticate
- 55, 81, 60, 97, 50, 70,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 127, // catch rate
- 116, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_GUTS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Spearow
- 40, 60, 30, 70, 31, 31,
- TYPE_NORMAL,
- TYPE_FLYING,
- 255, // catch rate
- 58, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Fearow
- 65, 90, 65, 100, 61, 61,
- TYPE_NORMAL,
- TYPE_FLYING,
- 90, // catch rate
- 162, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_SHARP_BEAK,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Ekans
- 35, 60, 44, 55, 40, 54,
- TYPE_POISON,
- TYPE_POISON,
- 255, // catch rate
- 62, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_DRAGON,
- ABILITY_INTIMIDATE,
- ABILITY_SHED_SKIN,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Arbok
- 60, 85, 69, 80, 65, 79,
- TYPE_POISON,
- TYPE_POISON,
- 90, // catch rate
- 147, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_DRAGON,
- ABILITY_INTIMIDATE,
- ABILITY_SHED_SKIN,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Pikachu
- 35, 55, 30, 90, 50, 40,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 190, // catch rate
- 82, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_ORAN_BERRY,
- ITEM_LIGHT_BALL,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_STATIC,
- ABILITY_NONE,
- 6, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Raichu
- 60, 90, 55, 100, 90, 80,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 75, // catch rate
- 122, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_ORAN_BERRY,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Sandshrew
- 50, 75, 85, 40, 20, 30,
- TYPE_GROUND,
- TYPE_GROUND,
- 255, // catch rate
- 93, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_QUICK_CLAW,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SAND_VEIL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Sandslash
- 75, 100, 110, 65, 45, 55,
- TYPE_GROUND,
- TYPE_GROUND,
- 90, // catch rate
- 163, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_QUICK_CLAW,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SAND_VEIL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Nidoran♀
- 55, 47, 52, 41, 40, 40,
- TYPE_POISON,
- TYPE_POISON,
- 235, // catch rate
- 59, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Nidorina
- 70, 62, 67, 56, 55, 55,
- TYPE_POISON,
- TYPE_POISON,
- 120, // catch rate
- 117, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Nidoqueen
- 90, 82, 87, 76, 75, 85,
- TYPE_POISON,
- TYPE_GROUND,
- 45, // catch rate
- 194, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Nidoran♂
- 46, 57, 40, 50, 40, 40,
- TYPE_POISON,
- TYPE_POISON,
- 235, // catch rate
- 60, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Nidorino
- 61, 72, 57, 65, 55, 55,
- TYPE_POISON,
- TYPE_POISON,
- 120, // catch rate
- 118, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Nidoking
- 81, 92, 77, 85, 85, 75,
- TYPE_POISON,
- TYPE_GROUND,
- 45, // catch rate
- 195, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Clefairy
- 70, 45, 48, 35, 60, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 150, // catch rate
- 68, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_LEPPA_BERRY,
- ITEM_MOON_STONE,
- 191, // gender
- 10, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Clefable
- 95, 70, 73, 60, 85, 90,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 25, // catch rate
- 129, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_LEPPA_BERRY,
- ITEM_MOON_STONE,
- 191, // gender
- 10, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Vulpix
- 38, 41, 40, 65, 50, 65,
- TYPE_FIRE,
- TYPE_FIRE,
- 190, // catch rate
- 63, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_FLASH_FIRE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Ninetales
- 73, 76, 75, 100, 81, 100,
- TYPE_FIRE,
- TYPE_FIRE,
- 75, // catch rate
- 178, // base exp. yield
- 0, 0, 0, 1, 0, 1,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_FLASH_FIRE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Jigglypuff
- 115, 45, 20, 20, 45, 25,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 170, // catch rate
- 76, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Wigglytuff
- 140, 70, 45, 45, 75, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 50, // catch rate
- 109, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Zubat
- 40, 45, 35, 55, 30, 40,
- TYPE_POISON,
- TYPE_FLYING,
- 255, // catch rate
- 54, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Golbat
- 75, 80, 70, 90, 65, 75,
- TYPE_POISON,
- TYPE_FLYING,
- 90, // catch rate
- 171, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Oddish
- 45, 50, 55, 30, 75, 65,
- TYPE_GRASS,
- TYPE_POISON,
- 255, // catch rate
- 78, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 4, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Gloom
- 60, 65, 70, 40, 85, 75,
- TYPE_GRASS,
- TYPE_POISON,
- 120, // catch rate
- 132, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 6, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Vileplume
- 75, 80, 85, 50, 100, 90,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 184, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Paras
- 35, 70, 55, 25, 45, 55,
- TYPE_BUG,
- TYPE_GRASS,
- 190, // catch rate
- 70, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_TINY_MUSHROOM,
- ITEM_BIG_MUSHROOM,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_GRASS,
- ABILITY_EFFECT_SPORE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Parasect
- 60, 95, 80, 30, 60, 80,
- TYPE_BUG,
- TYPE_GRASS,
- 75, // catch rate
- 128, // base exp. yield
- 0, 2, 1, 0, 0, 0,
- ITEM_TINY_MUSHROOM,
- ITEM_BIG_MUSHROOM,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_GRASS,
- ABILITY_EFFECT_SPORE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Venonat
- 60, 55, 50, 45, 40, 55,
- TYPE_BUG,
- TYPE_POISON,
- 190, // catch rate
- 75, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_COMPOUND_EYES,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Venomoth
- 70, 65, 60, 90, 90, 75,
- TYPE_BUG,
- TYPE_POISON,
- 75, // catch rate
- 138, // base exp. yield
- 0, 0, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Diglett
- 10, 55, 25, 95, 35, 45,
- TYPE_GROUND,
- TYPE_GROUND,
- 255, // catch rate
- 81, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SAND_VEIL,
- ABILITY_ARENA_TRAP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Dugtrio
- 35, 80, 50, 120, 50, 70,
- TYPE_GROUND,
- TYPE_GROUND,
- 50, // catch rate
- 153, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SAND_VEIL,
- ABILITY_ARENA_TRAP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Meowth
- 40, 45, 35, 90, 40, 40,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 69, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Persian
- 65, 70, 60, 115, 65, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 90, // catch rate
- 148, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_LIMBER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Psyduck
- 50, 52, 48, 55, 65, 50,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 80, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_DAMP,
- ABILITY_CLOUD_NINE,
- 6, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Golduck
- 80, 82, 78, 85, 95, 80,
- TYPE_WATER,
- TYPE_WATER,
- 75, // catch rate
- 174, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_DAMP,
- ABILITY_CLOUD_NINE,
- 8, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Mankey
- 40, 80, 35, 70, 35, 45,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 190, // catch rate
- 74, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_VITAL_SPIRIT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Primeape
- 65, 105, 60, 95, 60, 70,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 75, // catch rate
- 149, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_VITAL_SPIRIT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Growlithe
- 55, 70, 45, 60, 70, 50,
- TYPE_FIRE,
- TYPE_FIRE,
- 190, // catch rate
- 91, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Arcanine
- 90, 110, 80, 95, 100, 80,
- TYPE_FIRE,
- TYPE_FIRE,
- 75, // catch rate
- 213, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Poliwag
- 40, 50, 40, 90, 40, 40,
- TYPE_WATER,
- TYPE_WATER,
- 255, // catch rate
- 77, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_DAMP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE, TRUE
- }, { // Poliwhirl
- 65, 65, 65, 90, 50, 50,
- TYPE_WATER,
- TYPE_WATER,
- 120, // catch rate
- 131, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_DAMP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE, TRUE
- }, { // Poliwrath
- 90, 85, 95, 70, 70, 90,
- TYPE_WATER,
- TYPE_FIGHTING,
- 45, // catch rate
- 185, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_DAMP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE, TRUE
- }, { // Abra
- 25, 20, 15, 90, 105, 55,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 200, // catch rate
- 73, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_TWISTED_SPOON,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SYNCHRONIZE,
- ABILITY_INNER_FOCUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Kadabra
- 40, 35, 30, 105, 120, 70,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 100, // catch rate
- 145, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_TWISTED_SPOON,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SYNCHRONIZE,
- ABILITY_INNER_FOCUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Alakazam
- 55, 50, 45, 120, 135, 85,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 50, // catch rate
- 186, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_TWISTED_SPOON,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SYNCHRONIZE,
- ABILITY_INNER_FOCUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Machop
- 70, 80, 50, 35, 35, 35,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 180, // catch rate
- 88, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Machoke
- 80, 100, 70, 45, 50, 60,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 90, // catch rate
- 146, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Machamp
- 90, 130, 80, 55, 65, 85,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 45, // catch rate
- 193, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Bellsprout
- 50, 75, 35, 40, 70, 30,
- TYPE_GRASS,
- TYPE_POISON,
- 255, // catch rate
- 84, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Weepinbell
- 65, 90, 50, 55, 85, 45,
- TYPE_GRASS,
- TYPE_POISON,
- 120, // catch rate
- 151, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Victreebel
- 80, 105, 65, 70, 100, 60,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 191, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Tentacool
- 40, 40, 35, 70, 50, 100,
- TYPE_WATER,
- TYPE_POISON,
- 190, // catch rate
- 105, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_CLEAR_BODY,
- ABILITY_LIQUID_OOZE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Tentacruel
- 80, 70, 65, 100, 80, 120,
- TYPE_WATER,
- TYPE_POISON,
- 60, // catch rate
- 205, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_CLEAR_BODY,
- ABILITY_LIQUID_OOZE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Geodude
- 40, 80, 100, 20, 30, 30,
- TYPE_ROCK,
- TYPE_GROUND,
- 255, // catch rate
- 86, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_EVERSTONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 4, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Graveler
- 55, 95, 115, 35, 45, 45,
- TYPE_ROCK,
- TYPE_GROUND,
- 120, // catch rate
- 134, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_EVERSTONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Golem
- 80, 110, 130, 45, 55, 65,
- TYPE_ROCK,
- TYPE_GROUND,
- 45, // catch rate
- 177, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_EVERSTONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Ponyta
- 50, 85, 55, 90, 65, 65,
- TYPE_FIRE,
- TYPE_FIRE,
- 190, // catch rate
- 152, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Rapidash
- 65, 100, 70, 105, 80, 80,
- TYPE_FIRE,
- TYPE_FIRE,
- 60, // catch rate
- 192, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Slowpoke
- 90, 65, 65, 15, 40, 40,
- TYPE_WATER,
- TYPE_PSYCHIC,
- 190, // catch rate
- 99, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_OBLIVIOUS,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Slowbro
- 95, 75, 110, 30, 100, 80,
- TYPE_WATER,
- TYPE_PSYCHIC,
- 75, // catch rate
- 164, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_OBLIVIOUS,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Magnemite
- 25, 35, 70, 45, 95, 55,
- TYPE_ELECTRIC,
- TYPE_STEEL,
- 190, // catch rate
- 89, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_MAGNET_PULL,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Magneton
- 50, 60, 95, 70, 120, 70,
- TYPE_ELECTRIC,
- TYPE_STEEL,
- 60, // catch rate
- 161, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_MAGNET_PULL,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Farfetch'd
- 52, 65, 55, 60, 58, 62,
- TYPE_NORMAL,
- TYPE_FLYING,
- 45, // catch rate
- 94, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_STICK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FIELD,
- ABILITY_KEEN_EYE,
- ABILITY_INNER_FOCUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Doduo
- 35, 85, 45, 75, 35, 35,
- TYPE_NORMAL,
- TYPE_FLYING,
- 190, // catch rate
- 96, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SHARP_BEAK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_RUN_AWAY,
- ABILITY_EARLY_BIRD,
- 8, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Dodrio
- 60, 110, 70, 100, 60, 60,
- TYPE_NORMAL,
- TYPE_FLYING,
- 45, // catch rate
- 158, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SHARP_BEAK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_RUN_AWAY,
- ABILITY_EARLY_BIRD,
- 10, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Seel
- 65, 45, 55, 45, 45, 70,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 100, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Dewgong
- 90, 70, 80, 70, 70, 95,
- TYPE_WATER,
- TYPE_ICE,
- 75, // catch rate
- 176, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Grimer
- 80, 80, 50, 25, 40, 50,
- TYPE_POISON,
- TYPE_POISON,
- 190, // catch rate
- 90, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NUGGET,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_STENCH,
- ABILITY_STICKY_HOLD,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Muk
- 105, 105, 75, 50, 65, 100,
- TYPE_POISON,
- TYPE_POISON,
- 75, // catch rate
- 157, // base exp. yield
- 1, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NUGGET,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_STENCH,
- ABILITY_STICKY_HOLD,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Shellder
- 30, 65, 100, 40, 45, 25,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 97, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_PEARL,
- ITEM_BIG_PEARL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_SHELL_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Cloyster
- 50, 95, 180, 70, 85, 45,
- TYPE_WATER,
- TYPE_ICE,
- 60, // catch rate
- 203, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_PEARL,
- ITEM_BIG_PEARL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_SHELL_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Gastly
- 30, 35, 30, 80, 100, 35,
- TYPE_GHOST,
- TYPE_POISON,
- 190, // catch rate
- 95, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Haunter
- 45, 50, 45, 95, 115, 55,
- TYPE_GHOST,
- TYPE_POISON,
- 90, // catch rate
- 126, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Gengar
- 60, 65, 60, 110, 130, 75,
- TYPE_GHOST,
- TYPE_POISON,
- 45, // catch rate
- 190, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Onix
- 35, 45, 160, 70, 30, 45,
- TYPE_ROCK,
- TYPE_GROUND,
- 45, // catch rate
- 108, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Drowzee
- 60, 48, 45, 42, 43, 90,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 190, // catch rate
- 102, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Hypno
- 85, 73, 70, 67, 73, 115,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 75, // catch rate
- 165, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Krabby
- 30, 105, 90, 50, 25, 25,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 115, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_HYPER_CUTTER,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Kingler
- 55, 130, 115, 75, 50, 50,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 206, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_HYPER_CUTTER,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED, TRUE
- }, { // Voltorb
- 40, 30, 50, 100, 55, 55,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 190, // catch rate
- 103, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_SOUNDPROOF,
- ABILITY_STATIC,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Electrode
- 60, 50, 70, 140, 80, 80,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 60, // catch rate
- 150, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_SOUNDPROOF,
- ABILITY_STATIC,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Exeggcute
- 60, 40, 80, 40, 60, 45,
- TYPE_GRASS,
- TYPE_PSYCHIC,
- 90, // catch rate
- 98, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Exeggutor
- 95, 95, 85, 55, 125, 65,
- TYPE_GRASS,
- TYPE_PSYCHIC,
- 45, // catch rate
- 212, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Cubone
- 50, 50, 95, 35, 40, 50,
- TYPE_GROUND,
- TYPE_GROUND,
- 190, // catch rate
- 87, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_THICK_CLUB,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_ROCK_HEAD,
- ABILITY_LIGHTNING_ROD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Marowak
- 60, 80, 110, 45, 50, 80,
- TYPE_GROUND,
- TYPE_GROUND,
- 75, // catch rate
- 124, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_THICK_CLUB,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_ROCK_HEAD,
- ABILITY_LIGHTNING_ROD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Hitmonlee
- 50, 120, 53, 87, 35, 110,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 45, // catch rate
- 139, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_LIMBER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Hitmonchan
- 50, 105, 79, 76, 35, 110,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 45, // catch rate
- 140, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Lickitung
- 90, 55, 75, 30, 60, 75,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 127, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_OWN_TEMPO,
- ABILITY_OBLIVIOUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Koffing
- 40, 65, 95, 35, 60, 45,
- TYPE_POISON,
- TYPE_POISON,
- 190, // catch rate
- 114, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_SMOKE_BALL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Weezing
- 65, 90, 120, 60, 85, 70,
- TYPE_POISON,
- TYPE_POISON,
- 60, // catch rate
- 173, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_SMOKE_BALL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Rhyhorn
- 80, 85, 95, 25, 30, 30,
- TYPE_GROUND,
- TYPE_ROCK,
- 120, // catch rate
- 135, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_LIGHTNING_ROD,
- ABILITY_ROCK_HEAD,
- 4, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Rhydon
- 105, 130, 120, 40, 45, 45,
- TYPE_GROUND,
- TYPE_ROCK,
- 60, // catch rate
- 204, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_LIGHTNING_ROD,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Chansey
- 250, 5, 5, 50, 35, 105,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 30, // catch rate
- 255, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_LUCKY_EGG,
- 254, // gender
- 40, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_NATURAL_CURE,
- ABILITY_SERENE_GRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Tangela
- 65, 55, 115, 60, 100, 40,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 166, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Kangaskhan
- 105, 95, 80, 90, 40, 80,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 175, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_EARLY_BIRD,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Horsea
- 30, 40, 70, 60, 70, 25,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 83, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Seadra
- 55, 65, 95, 85, 95, 45,
- TYPE_WATER,
- TYPE_WATER,
- 75, // catch rate
- 155, // base exp. yield
- 0, 0, 1, 0, 1, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Goldeen
- 45, 67, 60, 63, 35, 50,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 111, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_SWIFT_SWIM,
- ABILITY_WATER_VEIL,
- 4, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Seaking
- 80, 92, 65, 68, 65, 80,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 170, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_SWIFT_SWIM,
- ABILITY_WATER_VEIL,
- 6, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Staryu
- 30, 45, 55, 85, 70, 55,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 106, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_STARDUST,
- ITEM_STAR_PIECE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_ILLUMINATE,
- ABILITY_NATURAL_CURE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Starmie
- 60, 75, 85, 115, 100, 85,
- TYPE_WATER,
- TYPE_PSYCHIC,
- 60, // catch rate
- 207, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_STARDUST,
- ITEM_STAR_PIECE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_ILLUMINATE,
- ABILITY_NATURAL_CURE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Mr. mime
- 40, 45, 65, 90, 100, 120,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 136, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_LEPPA_BERRY,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SOUNDPROOF,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Scyther
- 70, 110, 80, 105, 55, 80,
- TYPE_BUG,
- TYPE_FLYING,
- 45, // catch rate
- 187, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Jynx
- 65, 50, 35, 95, 115, 95,
- TYPE_ICE,
- TYPE_PSYCHIC,
- 45, // catch rate
- 137, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_ASPEAR_BERRY,
- ITEM_ASPEAR_BERRY,
- 254, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Electabuzz
- 65, 83, 57, 105, 95, 85,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 156, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW, TRUE
- }, { // Magmar
- 65, 95, 57, 93, 100, 85,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 167, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 63, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_FLAME_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Pinsir
- 65, 125, 100, 85, 55, 70,
- TYPE_BUG,
- TYPE_BUG,
- 45, // catch rate
- 200, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_HYPER_CUTTER,
- ABILITY_NONE,
- 8, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Tauros
- 75, 100, 95, 110, 40, 70,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 211, // base exp. yield
- 0, 1, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Magikarp
- 20, 10, 55, 80, 15, 20,
- TYPE_WATER,
- TYPE_WATER,
- 255, // catch rate
- 20, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 5, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_DRAGON,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 4, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Gyarados
- 95, 125, 79, 81, 60, 100,
- TYPE_WATER,
- TYPE_FLYING,
- 45, // catch rate
- 214, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 5, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_DRAGON,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Lapras
- 130, 85, 80, 60, 85, 95,
- TYPE_WATER,
- TYPE_ICE,
- 45, // catch rate
- 219, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Ditto
- 48, 48, 48, 48, 48, 48,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 35, // catch rate
- 61, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_POWDER,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_DITTO,
- EGG_GROUP_DITTO,
- ABILITY_LIMBER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Eevee
- 55, 55, 50, 55, 45, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 92, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Vaporeon
- 130, 65, 60, 65, 110, 95,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 196, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_WATER_ABSORB,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Jolteon
- 65, 65, 60, 130, 110, 95,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 197, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_VOLT_ABSORB,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Flareon
- 65, 130, 60, 65, 95, 110,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 198, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_FLASH_FIRE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Porygon
- 65, 60, 70, 40, 85, 75,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 130, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_TRACE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Omanyte
- 35, 40, 100, 35, 90, 55,
- TYPE_ROCK,
- TYPE_WATER,
- 45, // catch rate
- 120, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_SWIFT_SWIM,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Omastar
- 70, 60, 125, 55, 115, 70,
- TYPE_ROCK,
- TYPE_WATER,
- 45, // catch rate
- 199, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_SWIFT_SWIM,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Kabuto
- 30, 80, 90, 55, 55, 45,
- TYPE_ROCK,
- TYPE_WATER,
- 45, // catch rate
- 119, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_SWIFT_SWIM,
- ABILITY_BATTLE_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Kabutops
- 60, 115, 105, 80, 65, 70,
- TYPE_ROCK,
- TYPE_WATER,
- 45, // catch rate
- 201, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_SWIFT_SWIM,
- ABILITY_BATTLE_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Aerodactyl
- 80, 105, 65, 130, 60, 75,
- TYPE_ROCK,
- TYPE_FLYING,
- 45, // catch rate
- 202, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_ROCK_HEAD,
- ABILITY_PRESSURE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Snorlax
- 160, 110, 65, 30, 65, 110,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 25, // catch rate
- 154, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_LEFTOVERS,
- ITEM_LEFTOVERS,
- 31, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_IMMUNITY,
- ABILITY_THICK_FAT,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Articuno
- 90, 85, 100, 85, 95, 125,
- TYPE_ICE,
- TYPE_FLYING,
- 3, // catch rate
- 215, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Zapdos
- 90, 90, 85, 100, 125, 90,
- TYPE_ELECTRIC,
- TYPE_FLYING,
- 3, // catch rate
- 216, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Moltres
- 90, 100, 90, 90, 125, 85,
- TYPE_FIRE,
- TYPE_FLYING,
- 3, // catch rate
- 217, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Dratini
- 41, 64, 45, 50, 50, 50,
- TYPE_DRAGON,
- TYPE_DRAGON,
- 45, // catch rate
- 67, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Dragonair
- 61, 84, 65, 70, 70, 70,
- TYPE_DRAGON,
- TYPE_DRAGON,
- 45, // catch rate
- 144, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Dragonite
- 91, 134, 95, 80, 100, 100,
- TYPE_DRAGON,
- TYPE_FLYING,
- 45, // catch rate
- 218, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Mewtwo
- 106, 110, 90, 130, 154, 90,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 3, // catch rate
- 220, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Mew
- 100, 100, 100, 100, 100, 100,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 64, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_LUM_BERRY,
- ITEM_LUM_BERRY,
- 255, // gender
- 120, // egg cycles
- 100, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_SYNCHRONIZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Chikorita
- 45, 49, 65, 45, 49, 65,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 64, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Bayleef
- 60, 62, 80, 60, 63, 80,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 141, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Meganium
- 80, 82, 100, 80, 83, 100,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 208, // base exp. yield
- 0, 0, 1, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Cyndaquil
- 39, 52, 43, 65, 60, 50,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Quilava
- 58, 64, 58, 80, 80, 65,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 142, // base exp. yield
- 0, 0, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Typhlosion
- 78, 84, 78, 100, 109, 85,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 209, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Totodile
- 50, 65, 64, 43, 44, 48,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 66, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Croconaw
- 65, 80, 80, 58, 59, 63,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 143, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE, TRUE
- }, { // Feraligatr
- 85, 105, 100, 78, 79, 83,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 210, // base exp. yield
- 0, 2, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Sentret
- 35, 46, 34, 20, 35, 45,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 57, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_ORAN_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Furret
- 85, 76, 64, 90, 45, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 90, // catch rate
- 116, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_ORAN_BERRY,
- ITEM_SITRUS_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Hoothoot
- 60, 30, 30, 50, 36, 56,
- TYPE_NORMAL,
- TYPE_FLYING,
- 255, // catch rate
- 58, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INSOMNIA,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Noctowl
- 100, 50, 50, 70, 76, 96,
- TYPE_NORMAL,
- TYPE_FLYING,
- 90, // catch rate
- 162, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INSOMNIA,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Ledyba
- 40, 20, 30, 55, 40, 80,
- TYPE_BUG,
- TYPE_FLYING,
- 255, // catch rate
- 54, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Ledian
- 55, 35, 50, 85, 55, 110,
- TYPE_BUG,
- TYPE_FLYING,
- 90, // catch rate
- 134, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Spinarak
- 40, 60, 40, 30, 40, 40,
- TYPE_BUG,
- TYPE_POISON,
- 255, // catch rate
- 54, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_INSOMNIA,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Ariados
- 70, 90, 70, 40, 60, 60,
- TYPE_BUG,
- TYPE_POISON,
- 90, // catch rate
- 134, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_INSOMNIA,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Crobat
- 85, 90, 80, 130, 70, 80,
- TYPE_POISON,
- TYPE_FLYING,
- 90, // catch rate
- 204, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Chinchou
- 75, 38, 38, 67, 56, 56,
- TYPE_WATER,
- TYPE_ELECTRIC,
- 190, // catch rate
- 90, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_YELLOW_SHARD,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_VOLT_ABSORB,
- ABILITY_ILLUMINATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Lanturn
- 125, 58, 58, 67, 76, 76,
- TYPE_WATER,
- TYPE_ELECTRIC,
- 75, // catch rate
- 156, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_YELLOW_SHARD,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_VOLT_ABSORB,
- ABILITY_ILLUMINATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Pichu
- 20, 40, 15, 60, 35, 35,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 190, // catch rate
- 42, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_ORAN_BERRY,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Cleffa
- 50, 25, 28, 15, 45, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 150, // catch rate
- 37, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_LEPPA_BERRY,
- ITEM_MOON_STONE,
- 191, // gender
- 10, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Igglybuff
- 90, 30, 15, 15, 40, 20,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 170, // catch rate
- 39, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK, TRUE
- }, { // Togepi
- 35, 20, 65, 20, 40, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 190, // catch rate
- 74, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_HUSTLE,
- ABILITY_SERENE_GRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Togetic
- 55, 40, 85, 40, 80, 105,
- TYPE_NORMAL,
- TYPE_FLYING,
- 75, // catch rate
- 114, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FAIRY,
- ABILITY_HUSTLE,
- ABILITY_SERENE_GRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Natu
- 40, 50, 45, 70, 70, 45,
- TYPE_PSYCHIC,
- TYPE_FLYING,
- 190, // catch rate
- 73, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_SYNCHRONIZE,
- ABILITY_EARLY_BIRD,
- 6, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Xatu
- 65, 75, 70, 95, 95, 70,
- TYPE_PSYCHIC,
- TYPE_FLYING,
- 75, // catch rate
- 171, // base exp. yield
- 0, 0, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_SYNCHRONIZE,
- ABILITY_EARLY_BIRD,
- 8, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Mareep
- 55, 40, 40, 35, 65, 45,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 235, // catch rate
- 59, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Flaaffy
- 70, 55, 55, 45, 80, 60,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 120, // catch rate
- 117, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Ampharos
- 90, 75, 75, 55, 115, 90,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 194, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Bellossom
- 75, 80, 85, 50, 90, 100,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 184, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Marill
- 70, 20, 50, 40, 20, 50,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 58, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FAIRY,
- ABILITY_THICK_FAT,
- ABILITY_HUGE_POWER,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Azumarill
- 100, 50, 80, 50, 50, 80,
- TYPE_WATER,
- TYPE_WATER,
- 75, // catch rate
- 153, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FAIRY,
- ABILITY_THICK_FAT,
- ABILITY_HUGE_POWER,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Sudowoodo
- 70, 100, 115, 30, 30, 65,
- TYPE_ROCK,
- TYPE_ROCK,
- 65, // catch rate
- 135, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_STURDY,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Politoed
- 90, 75, 75, 70, 90, 100,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 185, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_DAMP,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN, TRUE
- }, { // Hoppip
- 35, 35, 40, 50, 35, 55,
- TYPE_GRASS,
- TYPE_FLYING,
- 255, // catch rate
- 74, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Skiploom
- 55, 45, 50, 80, 45, 65,
- TYPE_GRASS,
- TYPE_FLYING,
- 120, // catch rate
- 136, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Jumpluff
- 75, 55, 70, 110, 55, 85,
- TYPE_GRASS,
- TYPE_FLYING,
- 45, // catch rate
- 176, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Aipom
- 55, 70, 55, 85, 40, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 94, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_PICKUP,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Sunkern
- 30, 30, 30, 30, 30, 30,
- TYPE_GRASS,
- TYPE_GRASS,
- 235, // catch rate
- 52, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Sunflora
- 75, 75, 55, 30, 105, 85,
- TYPE_GRASS,
- TYPE_GRASS,
- 120, // catch rate
- 146, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Yanma
- 65, 65, 45, 95, 75, 45,
- TYPE_BUG,
- TYPE_FLYING,
- 75, // catch rate
- 147, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SPEED_BOOST,
- ABILITY_COMPOUND_EYES,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Wooper
- 55, 45, 45, 15, 25, 25,
- TYPE_WATER,
- TYPE_GROUND,
- 255, // catch rate
- 52, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_DAMP,
- ABILITY_WATER_ABSORB,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Quagsire
- 95, 85, 85, 35, 65, 65,
- TYPE_WATER,
- TYPE_GROUND,
- 90, // catch rate
- 137, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_DAMP,
- ABILITY_WATER_ABSORB,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Espeon
- 65, 65, 60, 110, 130, 95,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 197, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SYNCHRONIZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Umbreon
- 95, 65, 110, 65, 60, 130,
- TYPE_DARK,
- TYPE_DARK,
- 45, // catch rate
- 197, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SYNCHRONIZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Murkrow
- 60, 85, 42, 91, 85, 42,
- TYPE_DARK,
- TYPE_FLYING,
- 30, // catch rate
- 107, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Slowking
- 95, 75, 80, 30, 100, 110,
- TYPE_WATER,
- TYPE_PSYCHIC,
- 70, // catch rate
- 164, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_OBLIVIOUS,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Misdreavus
- 60, 60, 60, 85, 85, 85,
- TYPE_GHOST,
- TYPE_GHOST,
- 45, // catch rate
- 147, // base exp. yield
- 0, 0, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Unown
- 48, 72, 48, 48, 72, 48,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 225, // catch rate
- 61, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK, TRUE
- }, { // Wobbuffet
- 190, 33, 58, 33, 33, 58,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 177, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_SHADOW_TAG,
- ABILITY_NONE,
- 4, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Girafarig
- 70, 80, 65, 85, 90, 65,
- TYPE_NORMAL,
- TYPE_PSYCHIC,
- 60, // catch rate
- 149, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_PERSIM_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INNER_FOCUS,
- ABILITY_EARLY_BIRD,
- 4, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Pineco
- 50, 65, 90, 15, 35, 35,
- TYPE_BUG,
- TYPE_BUG,
- 190, // catch rate
- 60, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_STURDY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Forretress
- 75, 90, 140, 40, 60, 60,
- TYPE_BUG,
- TYPE_STEEL,
- 75, // catch rate
- 118, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_STURDY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Dunsparce
- 100, 70, 70, 45, 65, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 190, // catch rate
- 75, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SERENE_GRACE,
- ABILITY_RUN_AWAY,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Gligar
- 65, 75, 105, 85, 35, 65,
- TYPE_GROUND,
- TYPE_FLYING,
- 60, // catch rate
- 108, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_HYPER_CUTTER,
- ABILITY_SAND_VEIL,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Steelix
- 75, 85, 200, 30, 55, 65,
- TYPE_STEEL,
- TYPE_GROUND,
- 25, // catch rate
- 196, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Snubbull
- 60, 80, 50, 30, 40, 40,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 190, // catch rate
- 63, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_INTIMIDATE,
- ABILITY_RUN_AWAY,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Granbull
- 90, 120, 75, 45, 60, 60,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 75, // catch rate
- 178, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_INTIMIDATE,
- ABILITY_INTIMIDATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Qwilfish
- 65, 95, 75, 85, 55, 55,
- TYPE_WATER,
- TYPE_POISON,
- 45, // catch rate
- 100, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_POISON_POINT,
- ABILITY_SWIFT_SWIM,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Scizor
- 70, 130, 100, 65, 55, 80,
- TYPE_BUG,
- TYPE_STEEL,
- 25, // catch rate
- 200, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Shuckle
- 20, 10, 230, 5, 10, 230,
- TYPE_BUG,
- TYPE_ROCK,
- 190, // catch rate
- 80, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_ORAN_BERRY,
- ITEM_ORAN_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_STURDY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Heracross
- 80, 125, 75, 85, 40, 95,
- TYPE_BUG,
- TYPE_FIGHTING,
- 45, // catch rate
- 200, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_GUTS,
- 8, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Sneasel
- 55, 95, 55, 115, 35, 75,
- TYPE_DARK,
- TYPE_ICE,
- 60, // catch rate
- 132, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_QUICK_CLAW,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INNER_FOCUS,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK, TRUE
- }, { // Teddiursa
- 60, 80, 50, 40, 50, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 120, // catch rate
- 124, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN, TRUE
- }, { // Ursaring
- 90, 130, 75, 55, 75, 75,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 60, // catch rate
- 189, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Slugma
- 40, 40, 40, 20, 70, 40,
- TYPE_FIRE,
- TYPE_FIRE,
- 190, // catch rate
- 78, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_MAGMA_ARMOR,
- ABILITY_FLAME_BODY,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Magcargo
- 50, 50, 120, 30, 80, 80,
- TYPE_FIRE,
- TYPE_ROCK,
- 75, // catch rate
- 154, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_MAGMA_ARMOR,
- ABILITY_FLAME_BODY,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Swinub
- 50, 50, 40, 50, 30, 30,
- TYPE_ICE,
- TYPE_GROUND,
- 225, // catch rate
- 78, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Piloswine
- 100, 100, 80, 50, 60, 60,
- TYPE_ICE,
- TYPE_GROUND,
- 75, // catch rate
- 160, // base exp. yield
- 1, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Corsola
- 55, 55, 85, 35, 65, 85,
- TYPE_WATER,
- TYPE_ROCK,
- 60, // catch rate
- 113, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_NONE,
- ITEM_RED_SHARD,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_HUSTLE,
- ABILITY_NATURAL_CURE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Remoraid
- 35, 65, 35, 65, 65, 35,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 78, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_2,
- ABILITY_HUSTLE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Octillery
- 75, 105, 75, 45, 105, 75,
- TYPE_WATER,
- TYPE_WATER,
- 75, // catch rate
- 164, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_2,
- ABILITY_SUCTION_CUPS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Delibird
- 45, 55, 45, 75, 65, 45,
- TYPE_ICE,
- TYPE_FLYING,
- 45, // catch rate
- 183, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_VITAL_SPIRIT,
- ABILITY_HUSTLE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Mantine
- 65, 40, 70, 70, 80, 140,
- TYPE_WATER,
- TYPE_FLYING,
- 25, // catch rate
- 168, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_SWIFT_SWIM,
- ABILITY_WATER_ABSORB,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Skarmory
- 65, 80, 140, 70, 40, 70,
- TYPE_STEEL,
- TYPE_FLYING,
- 25, // catch rate
- 168, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Houndour
- 45, 60, 30, 65, 80, 50,
- TYPE_DARK,
- TYPE_FIRE,
- 120, // catch rate
- 114, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_EARLY_BIRD,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Houndoom
- 75, 90, 50, 95, 110, 80,
- TYPE_DARK,
- TYPE_FIRE,
- 45, // catch rate
- 204, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_EARLY_BIRD,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Kingdra
- 75, 95, 95, 85, 95, 95,
- TYPE_WATER,
- TYPE_DRAGON,
- 45, // catch rate
- 207, // base exp. yield
- 0, 1, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Phanpy
- 90, 60, 60, 40, 40, 40,
- TYPE_GROUND,
- TYPE_GROUND,
- 120, // catch rate
- 124, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 10, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Donphan
- 90, 120, 120, 50, 60, 60,
- TYPE_GROUND,
- TYPE_GROUND,
- 60, // catch rate
- 189, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_STURDY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Porygon2
- 85, 80, 90, 60, 105, 95,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 180, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_TRACE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Stantler
- 73, 95, 62, 85, 85, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 165, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Smeargle
- 55, 20, 35, 75, 20, 45,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 106, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_OWN_TEMPO,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Tyrogue
- 35, 35, 35, 35, 35, 35,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 75, // catch rate
- 91, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Hitmontop
- 50, 95, 95, 70, 35, 110,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 45, // catch rate
- 138, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Smoochum
- 45, 30, 15, 65, 85, 65,
- TYPE_ICE,
- TYPE_PSYCHIC,
- 45, // catch rate
- 87, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_ASPEAR_BERRY,
- ITEM_ASPEAR_BERRY,
- 254, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Elekid
- 45, 63, 37, 95, 65, 55,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 106, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW, TRUE
- }, { // Magby
- 45, 75, 37, 83, 70, 55,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 117, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 63, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_FLAME_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Miltank
- 95, 80, 105, 100, 40, 70,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 200, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_MOOMOO_MILK,
- ITEM_MOOMOO_MILK,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Blissey
- 255, 10, 10, 55, 75, 135,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 30, // catch rate
- 255, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_LUCKY_EGG,
- 254, // gender
- 40, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_NATURAL_CURE,
- ABILITY_SERENE_GRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Raikou
- 90, 85, 75, 115, 115, 100,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 3, // catch rate
- 216, // base exp. yield
- 0, 0, 0, 2, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Entei
- 115, 115, 85, 100, 90, 75,
- TYPE_FIRE,
- TYPE_FIRE,
- 3, // catch rate
- 217, // base exp. yield
- 1, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Suicune
- 100, 75, 115, 85, 90, 115,
- TYPE_WATER,
- TYPE_WATER,
- 3, // catch rate
- 215, // base exp. yield
- 0, 0, 1, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Larvitar
- 50, 64, 50, 41, 45, 50,
- TYPE_ROCK,
- TYPE_GROUND,
- 45, // catch rate
- 67, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Pupitar
- 70, 84, 70, 51, 65, 70,
- TYPE_ROCK,
- TYPE_GROUND,
- 45, // catch rate
- 144, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Tyranitar
- 100, 134, 110, 61, 95, 100,
- TYPE_ROCK,
- TYPE_DARK,
- 45, // catch rate
- 218, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_SAND_STREAM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Lugia
- 106, 90, 130, 110, 90, 154,
- TYPE_PSYCHIC,
- TYPE_FLYING,
- 3, // catch rate
- 220, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Ho-Oh
- 106, 130, 90, 90, 110, 154,
- TYPE_FIRE,
- TYPE_FLYING,
- 3, // catch rate
- 220, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_SACRED_ASH,
- ITEM_SACRED_ASH,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Celebi
- 100, 100, 100, 100, 100, 100,
- TYPE_PSYCHIC,
- TYPE_GRASS,
- 45, // catch rate
- 64, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_LUM_BERRY,
- ITEM_LUM_BERRY,
- 255, // gender
- 120, // egg cycles
- 100, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NATURAL_CURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Treecko
- 40, 45, 35, 70, 65, 55,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Grovyle
- 50, 65, 45, 95, 85, 65,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 141, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Sceptile
- 70, 85, 65, 120, 105, 85,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 208, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Torchic
- 45, 60, 40, 45, 70, 50,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Combusken
- 60, 85, 60, 55, 85, 60,
- TYPE_FIRE,
- TYPE_FIGHTING,
- 45, // catch rate
- 142, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Blaziken
- 80, 120, 70, 80, 110, 70,
- TYPE_FIRE,
- TYPE_FIGHTING,
- 45, // catch rate
- 209, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Mudkip
- 50, 70, 50, 40, 50, 50,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 65, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Marshtomp
- 70, 85, 70, 50, 60, 70,
- TYPE_WATER,
- TYPE_GROUND,
- 45, // catch rate
- 143, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Swampert
- 100, 110, 90, 60, 85, 90,
- TYPE_WATER,
- TYPE_GROUND,
- 45, // catch rate
- 210, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Poochyena
- 35, 55, 35, 35, 30, 30,
- TYPE_DARK,
- TYPE_DARK,
- 255, // catch rate
- 55, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_PECHA_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Mightyena
- 70, 90, 70, 70, 60, 60,
- TYPE_DARK,
- TYPE_DARK,
- 127, // catch rate
- 128, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_PECHA_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Zigzagoon
- 38, 30, 41, 60, 30, 41,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 60, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_ORAN_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Linoone
- 78, 70, 61, 100, 50, 61,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 90, // catch rate
- 128, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_ORAN_BERRY,
- ITEM_SITRUS_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Wurmple
- 45, 45, 35, 20, 20, 30,
- TYPE_BUG,
- TYPE_BUG,
- 255, // catch rate
- 54, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Silcoon
- 50, 35, 55, 15, 25, 25,
- TYPE_BUG,
- TYPE_BUG,
- 120, // catch rate
- 71, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Beautifly
- 60, 70, 50, 65, 90, 50,
- TYPE_BUG,
- TYPE_FLYING,
- 45, // catch rate
- 161, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_SILVER_POWDER,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Cascoon
- 50, 35, 55, 15, 25, 25,
- TYPE_BUG,
- TYPE_BUG,
- 120, // catch rate
- 72, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Dustox
- 60, 50, 70, 65, 50, 90,
- TYPE_BUG,
- TYPE_POISON,
- 45, // catch rate
- 160, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_SILVER_POWDER,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Lotad
- 40, 30, 30, 30, 40, 50,
- TYPE_WATER,
- TYPE_GRASS,
- 255, // catch rate
- 74, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_GRASS,
- ABILITY_SWIFT_SWIM,
- ABILITY_RAIN_DISH,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Lombre
- 60, 50, 50, 50, 60, 70,
- TYPE_WATER,
- TYPE_GRASS,
- 120, // catch rate
- 141, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_GRASS,
- ABILITY_SWIFT_SWIM,
- ABILITY_RAIN_DISH,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Ludicolo
- 80, 70, 70, 70, 90, 100,
- TYPE_WATER,
- TYPE_GRASS,
- 45, // catch rate
- 181, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_GRASS,
- ABILITY_SWIFT_SWIM,
- ABILITY_RAIN_DISH,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Seedot
- 40, 40, 50, 30, 30, 30,
- TYPE_GRASS,
- TYPE_GRASS,
- 255, // catch rate
- 74, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Nuzleaf
- 70, 70, 40, 60, 60, 40,
- TYPE_GRASS,
- TYPE_DARK,
- 120, // catch rate
- 141, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Shiftry
- 90, 100, 60, 80, 90, 60,
- TYPE_GRASS,
- TYPE_DARK,
- 45, // catch rate
- 181, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Nincada
- 31, 45, 90, 40, 30, 30,
- TYPE_BUG,
- TYPE_GROUND,
- 255, // catch rate
- 65, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_COMPOUND_EYES,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Ninjask
- 61, 90, 45, 160, 50, 50,
- TYPE_BUG,
- TYPE_FLYING,
- 120, // catch rate
- 155, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SPEED_BOOST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Shedinja
- 1, 90, 45, 40, 30, 30,
- TYPE_BUG,
- TYPE_GHOST,
- 45, // catch rate
- 95, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_WONDER_GUARD,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Taillow
- 40, 55, 30, 85, 30, 30,
- TYPE_NORMAL,
- TYPE_FLYING,
- 200, // catch rate
- 59, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Swellow
- 60, 85, 60, 125, 50, 50,
- TYPE_NORMAL,
- TYPE_FLYING,
- 45, // catch rate
- 162, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Shroomish
- 60, 40, 60, 35, 40, 60,
- TYPE_GRASS,
- TYPE_GRASS,
- 255, // catch rate
- 65, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_EFFECT_SPORE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Breloom
- 60, 130, 80, 70, 60, 60,
- TYPE_GRASS,
- TYPE_FIGHTING,
- 90, // catch rate
- 165, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_EFFECT_SPORE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Spinda
- 60, 60, 60, 60, 60, 60,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 85, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_CHESTO_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_OWN_TEMPO,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN, TRUE
- }, { // Wingull
- 40, 30, 30, 85, 55, 30,
- TYPE_WATER,
- TYPE_FLYING,
- 190, // catch rate
- 64, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Pelipper
- 60, 50, 100, 65, 85, 70,
- TYPE_WATER,
- TYPE_FLYING,
- 45, // catch rate
- 164, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Surskit
- 40, 30, 32, 65, 50, 52,
- TYPE_BUG,
- TYPE_WATER,
- 200, // catch rate
- 63, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_BUG,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Masquerain
- 70, 60, 62, 60, 80, 82,
- TYPE_BUG,
- TYPE_FLYING,
- 75, // catch rate
- 128, // base exp. yield
- 0, 0, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_SILVER_POWDER,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_BUG,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Wailmer
- 130, 70, 35, 60, 70, 35,
- TYPE_WATER,
- TYPE_WATER,
- 125, // catch rate
- 137, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FIELD,
- EGG_GROUP_WATER_2,
- ABILITY_WATER_VEIL,
- ABILITY_OBLIVIOUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Wailord
- 170, 90, 45, 60, 90, 45,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 206, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FIELD,
- EGG_GROUP_WATER_2,
- ABILITY_WATER_VEIL,
- ABILITY_OBLIVIOUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Skitty
- 50, 45, 45, 50, 35, 35,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_LEPPA_BERRY,
- 191, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Delcatty
- 70, 65, 65, 70, 55, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 60, // catch rate
- 138, // base exp. yield
- 1, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_LEPPA_BERRY,
- 191, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Kecleon
- 60, 90, 70, 40, 60, 120,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 200, // catch rate
- 132, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_PERSIM_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_COLOR_CHANGE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Baltoy
- 40, 40, 55, 55, 40, 70,
- TYPE_GROUND,
- TYPE_PSYCHIC,
- 255, // catch rate
- 58, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Claydol
- 60, 70, 105, 75, 70, 120,
- TYPE_GROUND,
- TYPE_PSYCHIC,
- 90, // catch rate
- 189, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Nosepass
- 30, 45, 135, 30, 45, 90,
- TYPE_ROCK,
- TYPE_ROCK,
- 255, // catch rate
- 108, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_STURDY,
- ABILITY_MAGNET_PULL,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Torkoal
- 70, 85, 140, 20, 85, 70,
- TYPE_FIRE,
- TYPE_FIRE,
- 90, // catch rate
- 161, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_WHITE_SMOKE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Sableye
- 50, 75, 75, 50, 65, 65,
- TYPE_DARK,
- TYPE_GHOST,
- 45, // catch rate
- 98, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Barboach
- 50, 48, 43, 60, 46, 41,
- TYPE_WATER,
- TYPE_GROUND,
- 190, // catch rate
- 92, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Whiscash
- 110, 78, 73, 60, 76, 71,
- TYPE_WATER,
- TYPE_GROUND,
- 75, // catch rate
- 158, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Luvdisc
- 43, 30, 55, 97, 40, 65,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 110, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_HEART_SCALE,
- ITEM_NONE,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Corphish
- 43, 80, 65, 35, 50, 35,
- TYPE_WATER,
- TYPE_WATER,
- 205, // catch rate
- 111, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_HYPER_CUTTER,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Crawdaunt
- 63, 120, 85, 55, 90, 55,
- TYPE_WATER,
- TYPE_DARK,
- 155, // catch rate
- 161, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_HYPER_CUTTER,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Feebas
- 20, 15, 20, 80, 10, 55,
- TYPE_WATER,
- TYPE_WATER,
- 255, // catch rate
- 61, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Milotic
- 95, 60, 79, 81, 100, 125,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 213, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_MARVEL_SCALE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Carvanha
- 45, 90, 20, 65, 65, 20,
- TYPE_WATER,
- TYPE_DARK,
- 225, // catch rate
- 88, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_ROUGH_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Sharpedo
- 70, 120, 40, 95, 95, 40,
- TYPE_WATER,
- TYPE_DARK,
- 60, // catch rate
- 175, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_ROUGH_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Trapinch
- 45, 100, 45, 10, 45, 45,
- TYPE_GROUND,
- TYPE_GROUND,
- 255, // catch rate
- 73, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SOFT_SAND,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_HYPER_CUTTER,
- ABILITY_ARENA_TRAP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Vibrava
- 50, 70, 50, 70, 50, 50,
- TYPE_GROUND,
- TYPE_DRAGON,
- 120, // catch rate
- 126, // base exp. yield
- 0, 1, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_LEVITATE,
- ABILITY_LEVITATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Flygon
- 80, 100, 80, 100, 80, 80,
- TYPE_GROUND,
- TYPE_DRAGON,
- 45, // catch rate
- 197, // base exp. yield
- 0, 1, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_LEVITATE,
- ABILITY_LEVITATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Makuhita
- 72, 60, 30, 25, 20, 30,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 180, // catch rate
- 87, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_THICK_FAT,
- ABILITY_GUTS,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Hariyama
- 144, 120, 60, 50, 40, 60,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 200, // catch rate
- 184, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_THICK_FAT,
- ABILITY_GUTS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Electrike
- 40, 45, 40, 65, 65, 40,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 120, // catch rate
- 104, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_LIGHTNING_ROD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Manectric
- 70, 75, 60, 105, 105, 60,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 168, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_LIGHTNING_ROD,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Numel
- 60, 60, 40, 35, 65, 45,
- TYPE_FIRE,
- TYPE_GROUND,
- 255, // catch rate
- 88, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Camerupt
- 70, 100, 70, 40, 105, 75,
- TYPE_FIRE,
- TYPE_GROUND,
- 150, // catch rate
- 175, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_MAGMA_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Spheal
- 70, 40, 50, 25, 55, 50,
- TYPE_ICE,
- TYPE_WATER,
- 255, // catch rate
- 75, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Sealeo
- 90, 60, 70, 45, 75, 70,
- TYPE_ICE,
- TYPE_WATER,
- 120, // catch rate
- 128, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Walrein
- 110, 80, 90, 65, 95, 90,
- TYPE_ICE,
- TYPE_WATER,
- 45, // catch rate
- 192, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Cacnea
- 50, 85, 40, 35, 85, 40,
- TYPE_GRASS,
- TYPE_GRASS,
- 190, // catch rate
- 97, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_POISON_BARB,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SAND_VEIL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Cacturne
- 70, 115, 60, 55, 115, 60,
- TYPE_GRASS,
- TYPE_DARK,
- 60, // catch rate
- 177, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_POISON_BARB,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SAND_VEIL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Snorunt
- 50, 50, 50, 50, 50, 50,
- TYPE_ICE,
- TYPE_ICE,
- 190, // catch rate
- 74, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_MINERAL,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Glalie
- 80, 80, 80, 80, 80, 80,
- TYPE_ICE,
- TYPE_ICE,
- 75, // catch rate
- 187, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NEVER_MELT_ICE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_MINERAL,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Lunatone
- 70, 55, 65, 70, 95, 85,
- TYPE_ROCK,
- TYPE_PSYCHIC,
- 45, // catch rate
- 150, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_MOON_STONE,
- 255, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Solrock
- 70, 95, 85, 70, 55, 65,
- TYPE_ROCK,
- TYPE_PSYCHIC,
- 45, // catch rate
- 150, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SUN_STONE,
- 255, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Azurill
- 50, 20, 40, 20, 20, 40,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 150, // catch rate
- 33, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_THICK_FAT,
- ABILITY_HUGE_POWER,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Spoink
- 60, 25, 35, 60, 70, 80,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 255, // catch rate
- 89, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Grumpig
- 80, 45, 65, 80, 90, 110,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 60, // catch rate
- 164, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Plusle
- 60, 50, 40, 95, 85, 75,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 200, // catch rate
- 120, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_PLUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Minun
- 60, 40, 50, 95, 75, 85,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 200, // catch rate
- 120, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_MINUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Mawile
- 50, 85, 85, 50, 55, 55,
- TYPE_STEEL,
- TYPE_STEEL,
- 45, // catch rate
- 98, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_HYPER_CUTTER,
- ABILITY_INTIMIDATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Meditite
- 30, 40, 55, 60, 40, 55,
- TYPE_FIGHTING,
- TYPE_PSYCHIC,
- 180, // catch rate
- 91, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_PURE_POWER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Medicham
- 60, 60, 75, 80, 60, 75,
- TYPE_FIGHTING,
- TYPE_PSYCHIC,
- 90, // catch rate
- 153, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_PURE_POWER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Swablu
- 45, 40, 60, 50, 40, 75,
- TYPE_NORMAL,
- TYPE_FLYING,
- 255, // catch rate
- 74, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_FLYING,
- EGG_GROUP_DRAGON,
- ABILITY_NATURAL_CURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Altaria
- 75, 70, 90, 80, 70, 105,
- TYPE_DRAGON,
- TYPE_FLYING,
- 45, // catch rate
- 188, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_FLYING,
- EGG_GROUP_DRAGON,
- ABILITY_NATURAL_CURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Wynaut
- 95, 23, 48, 23, 23, 48,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 125, // catch rate
- 44, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_SHADOW_TAG,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Duskull
- 20, 40, 90, 25, 30, 90,
- TYPE_GHOST,
- TYPE_GHOST,
- 190, // catch rate
- 97, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Dusclops
- 40, 70, 130, 25, 60, 130,
- TYPE_GHOST,
- TYPE_GHOST,
- 90, // catch rate
- 179, // base exp. yield
- 0, 0, 1, 0, 0, 2,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Roselia
- 50, 60, 45, 65, 100, 80,
- TYPE_GRASS,
- TYPE_POISON,
- 150, // catch rate
- 152, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_POISON_BARB,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_NATURAL_CURE,
- ABILITY_POISON_POINT,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN, TRUE
- }, { // Slakoth
- 60, 60, 60, 30, 35, 35,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 83, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_TRUANT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Vigoroth
- 80, 80, 80, 90, 55, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 120, // catch rate
- 126, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_VITAL_SPIRIT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Slaking
- 150, 160, 100, 100, 95, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 210, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_TRUANT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Gulpin
- 70, 43, 53, 40, 43, 53,
- TYPE_POISON,
- TYPE_POISON,
- 225, // catch rate
- 75, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_BIG_PEARL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LIQUID_OOZE,
- ABILITY_STICKY_HOLD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Swalot
- 100, 73, 83, 55, 73, 83,
- TYPE_POISON,
- TYPE_POISON,
- 75, // catch rate
- 168, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_BIG_PEARL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LIQUID_OOZE,
- ABILITY_STICKY_HOLD,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Tropius
- 99, 68, 83, 51, 72, 87,
- TYPE_GRASS,
- TYPE_FLYING,
- 200, // catch rate
- 169, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Whismur
- 64, 51, 23, 28, 51, 23,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 190, // catch rate
- 68, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_CHESTO_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_SOUNDPROOF,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Loudred
- 84, 71, 43, 48, 71, 43,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 120, // catch rate
- 126, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_CHESTO_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_SOUNDPROOF,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Exploud
- 104, 91, 63, 68, 91, 63,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 184, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_CHESTO_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_SOUNDPROOF,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Clamperl
- 35, 64, 85, 32, 74, 55,
- TYPE_WATER,
- TYPE_WATER,
- 255, // catch rate
- 142, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_BLUE_SHARD,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_SHELL_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Huntail
- 55, 104, 105, 52, 94, 75,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 178, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Gorebyss
- 55, 84, 105, 52, 114, 75,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 178, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Absol
- 65, 130, 60, 75, 75, 60,
- TYPE_DARK,
- TYPE_DARK,
- 30, // catch rate
- 174, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE, TRUE
- }, { // Shuppet
- 44, 75, 35, 45, 63, 33,
- TYPE_GHOST,
- TYPE_GHOST,
- 225, // catch rate
- 97, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Banette
- 64, 115, 65, 65, 83, 63,
- TYPE_GHOST,
- TYPE_GHOST,
- 45, // catch rate
- 179, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Seviper
- 73, 100, 60, 65, 100, 60,
- TYPE_POISON,
- TYPE_POISON,
- 90, // catch rate
- 165, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FIELD,
- EGG_GROUP_DRAGON,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK, TRUE
- }, { // Zangoose
- 73, 115, 60, 90, 60, 60,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 90, // catch rate
- 165, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_IMMUNITY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE, TRUE
- }, { // Relicanth
- 100, 90, 130, 55, 45, 65,
- TYPE_WATER,
- TYPE_ROCK,
- 25, // catch rate
- 198, // base exp. yield
- 1, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_GREEN_SHARD,
- 31, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_2,
- ABILITY_SWIFT_SWIM,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Aron
- 50, 70, 100, 30, 40, 40,
- TYPE_STEEL,
- TYPE_ROCK,
- 180, // catch rate
- 96, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_HARD_STONE,
- 127, // gender
- 35, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_STURDY,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Lairon
- 60, 90, 140, 40, 50, 50,
- TYPE_STEEL,
- TYPE_ROCK,
- 90, // catch rate
- 152, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_HARD_STONE,
- 127, // gender
- 35, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_STURDY,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Aggron
- 70, 110, 180, 50, 60, 60,
- TYPE_STEEL,
- TYPE_ROCK,
- 45, // catch rate
- 205, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_HARD_STONE,
- 127, // gender
- 35, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_STURDY,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Castform
- 70, 70, 70, 70, 70, 70,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 145, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_MYSTIC_WATER,
- ITEM_MYSTIC_WATER,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_AMORPHOUS,
- ABILITY_FORECAST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Volbeat
- 65, 73, 55, 85, 47, 75,
- TYPE_BUG,
- TYPE_BUG,
- 150, // catch rate
- 146, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_BUG,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_ILLUMINATE,
- ABILITY_SWARM,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Illumise
- 65, 47, 55, 85, 73, 75,
- TYPE_BUG,
- TYPE_BUG,
- 150, // catch rate
- 146, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_BUG,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Lileep
- 66, 41, 77, 23, 61, 87,
- TYPE_ROCK,
- TYPE_GRASS,
- 45, // catch rate
- 121, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_SUCTION_CUPS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Cradily
- 86, 81, 97, 43, 81, 107,
- TYPE_ROCK,
- TYPE_GRASS,
- 45, // catch rate
- 201, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_SUCTION_CUPS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Anorith
- 45, 95, 50, 75, 40, 50,
- TYPE_ROCK,
- TYPE_BUG,
- 45, // catch rate
- 119, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_BATTLE_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Armaldo
- 75, 125, 100, 45, 70, 80,
- TYPE_ROCK,
- TYPE_BUG,
- 45, // catch rate
- 200, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_BATTLE_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Ralts
- 28, 25, 25, 40, 45, 35,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 235, // catch rate
- 70, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_SYNCHRONIZE,
- ABILITY_TRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Kirlia
- 38, 35, 35, 50, 65, 55,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 120, // catch rate
- 140, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_SYNCHRONIZE,
- ABILITY_TRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Gardevoir
- 68, 65, 65, 80, 125, 115,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 208, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_SYNCHRONIZE,
- ABILITY_TRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Bagon
- 45, 75, 60, 50, 40, 30,
- TYPE_DRAGON,
- TYPE_DRAGON,
- 45, // catch rate
- 89, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_DRAGON,
- EGG_GROUP_DRAGON,
- ABILITY_ROCK_HEAD,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Shelgon
- 65, 95, 100, 50, 60, 50,
- TYPE_DRAGON,
- TYPE_DRAGON,
- 45, // catch rate
- 144, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_DRAGON,
- EGG_GROUP_DRAGON,
- ABILITY_ROCK_HEAD,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Salamence
- 95, 135, 80, 100, 110, 80,
- TYPE_DRAGON,
- TYPE_FLYING,
- 45, // catch rate
- 218, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_DRAGON,
- EGG_GROUP_DRAGON,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Beldum
- 40, 55, 80, 30, 35, 60,
- TYPE_STEEL,
- TYPE_PSYCHIC,
- 3, // catch rate
- 103, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Metang
- 60, 75, 100, 50, 55, 80,
- TYPE_STEEL,
- TYPE_PSYCHIC,
- 3, // catch rate
- 153, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Metagross
- 80, 135, 130, 70, 95, 90,
- TYPE_STEEL,
- TYPE_PSYCHIC,
- 3, // catch rate
- 210, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Regirock
- 80, 100, 200, 50, 50, 100,
- TYPE_ROCK,
- TYPE_ROCK,
- 3, // catch rate
- 217, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Regice
- 80, 50, 100, 50, 100, 200,
- TYPE_ICE,
- TYPE_ICE,
- 3, // catch rate
- 216, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Registeel
- 80, 75, 150, 50, 75, 150,
- TYPE_STEEL,
- TYPE_STEEL,
- 3, // catch rate
- 215, // base exp. yield
- 0, 0, 2, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Kyogre
- 100, 100, 90, 90, 150, 140,
- TYPE_WATER,
- TYPE_WATER,
- 5, // catch rate
- 218, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_DRIZZLE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Groudon
- 100, 150, 140, 90, 100, 90,
- TYPE_GROUND,
- TYPE_GROUND,
- 5, // catch rate
- 218, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_DROUGHT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Rayquaza
- 105, 150, 90, 95, 150, 90,
- TYPE_DRAGON,
- TYPE_FLYING,
- 3, // catch rate
- 220, // base exp. yield
- 0, 2, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_AIR_LOCK,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Latias
- 80, 80, 90, 110, 110, 130,
- TYPE_DRAGON,
- TYPE_PSYCHIC,
- 3, // catch rate
- 211, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 120, // egg cycles
- 90, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Latios
- 80, 90, 80, 110, 130, 110,
- TYPE_DRAGON,
- TYPE_PSYCHIC,
- 3, // catch rate
- 211, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 120, // egg cycles
- 90, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Jirachi
- 100, 100, 100, 100, 100, 100,
- TYPE_STEEL,
- TYPE_PSYCHIC,
- 3, // catch rate
- 215, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_STAR_PIECE,
- ITEM_STAR_PIECE,
- 255, // gender
- 120, // egg cycles
- 100, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_SERENE_GRACE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Deoxys
- 50, 150, 50, 150, 150, 50,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 3, // catch rate
- 215, // base exp. yield
- 0, 1, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED, TRUE
- }, { // Chimecho
- 65, 50, 70, 65, 95, 80,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 147, // base exp. yield
- 0, 0, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }
-};
-
-#endif //POKERUBY_BASE_STATS_H
diff --git a/include/data/pokemon/cry_ids.h b/include/data/pokemon/cry_ids.h
deleted file mode 100644
index d965a41cf..000000000
--- a/include/data/pokemon/cry_ids.h
+++ /dev/null
@@ -1,146 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_CRY_IDS_H
-#define POKERUBY_CRY_IDS_H
-
-const u16 gSpeciesIdToCryId[] = {
- 273, // TREECKO
- 274, // GROVYLE
- 275, // SCEPTILE
- 270, // TORCHIC
- 271, // COMBUSKEN
- 272, // BLAZIKEN
- 276, // MUDKIP
- 277, // MARSHTOMP
- 278, // SWAMPERT
- 359, // POOCHYENA
- 360, // MIGHTYENA
- 378, // ZIGZAGOON
- 375, // LINOONE
- 290, // WURMPLE
- 291, // SILCOON
- 292, // BEAUTIFLY
- 293, // CASCOON
- 294, // DUSTOX
- 283, // LOTAD
- 284, // LOMBRE
- 285, // LUDICOLO
- 286, // SEEDOT
- 287, // NUZLEAF
- 288, // SHIFTRY
- 301, // NINCADA
- 302, // NINJASK
- 303, // SHEDINJA
- 266, // TAILLOW
- 267, // SWELLOW
- 374, // SHROOMISH
- 373, // BRELOOM
- 269, // SPINDA
- 280, // WINGULL
- 279, // PELIPPER
- 310, // SURSKIT
- 311, // MASQUERAIN
- 377, // WAILMER
- 381, // WAILORD
- 312, // SKITTY
- 313, // DELCATTY
- 251, // KECLEON
- 329, // BALTOY
- 330, // CLAYDOL
- 306, // NOSEPASS
- 253, // TORKOAL
- 362, // SABLEYE
- 318, // BARBOACH
- 319, // WHISCASH
- 368, // LUVDISC
- 320, // CORPHISH
- 321, // CRAWDAUNT
- 333, // FEEBAS
- 334, // MILOTIC
- 289, // CARVANHA
- 260, // SHARPEDO
- 324, // TRAPINCH
- 325, // VIBRAVA
- 326, // FLYGON
- 304, // MAKUHITA
- 305, // HARIYAMA
- 254, // ELECTRIKE
- 255, // MANECTRIC
- 316, // NUMEL
- 317, // CAMERUPT
- 338, // SPHEAL
- 339, // SEALEO
- 340, // WALREIN
- 327, // CACNEA
- 328, // CACTURNE
- 383, // SNORUNT
- 307, // GLALIE
- 331, // LUNATONE
- 332, // SOLROCK
- 262, // AZURILL
- 322, // SPOINK
- 323, // GRUMPIG
- 308, // PLUSLE
- 309, // MINUN
- 363, // MAWILE
- 336, // MEDITITE
- 337, // MEDICHAM
- 263, // SWABLU
- 264, // ALTARIA
- 258, // WYNAUT
- 256, // DUSKULL
- 361, // DUSCLOPS
- 252, // ROSELIA
- 298, // SLAKOTH
- 299, // VIGOROTH
- 300, // SLAKING
- 314, // GULPIN
- 315, // SWALOT
- 376, // TROPIUS
- 382, // WHISMUR
- 380, // LOUDRED
- 379, // EXPLOUD
- 341, // CLAMPERL
- 342, // HUNTAIL
- 343, // GOREBYSS
- 335, // ABSOL
- 282, // SHUPPET
- 281, // BANETTE
- 259, // SEVIPER
- 261, // ZANGOOSE
- 367, // RELICANTH
- 364, // ARON
- 365, // LAIRON
- 366, // AGGRON
- 356, // CASTFORM
- 357, // VOLBEAT
- 358, // ILLUMISE
- 344, // LILEEP
- 345, // CRADILY
- 346, // ANORITH
- 347, // ARMALDO
- 295, // RALTS
- 296, // KIRLIA
- 297, // GARDEVOIR
- 351, // BAGON
- 352, // SHELGON
- 372, // SALAMENCE
- 348, // BELDUM
- 349, // METANG
- 350, // METAGROSS
- 353, // REGIROCK
- 354, // REGICE
- 355, // REGISTEEL
- 370, // KYOGRE
- 369, // GROUDON
- 371, // RAYQUAZA
- 257, // LATIAS
- 384, // LATIOS
- 385, // JIRACHI
- 386, // DEOXYS
- 387 // CHIMECHO
-};
-
-#endif //POKERUBY_CRY_IDS_H
diff --git a/include/data/pokemon/dex_order.h b/include/data/pokemon/dex_order.h
deleted file mode 100644
index 6f8582533..000000000
--- a/include/data/pokemon/dex_order.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_DEX_ORDER_H
-#define POKERUBY_DEX_ORDER_H
-
-const u16 gSpeciesToHoennPokedexNum[] = {203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 156, 157, 112, 113, 227, 228, 229, 230, 231, 232, 233, 234, 153, 154, 138, 139, 63, 64, 88, 89, 90, 235, 236, 237, 238, 239, 240, 241, 242, 158, 159, 243, 244, 245, 246, 247, 248, 249, 39, 40, 41, 73, 74, 75, 250, 251, 252, 66, 67, 57, 58, 59, 253, 254, 255, 256, 82, 83, 257, 92, 93, 258, 259, 106, 107, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 84, 85, 270, 271, 272, 273, 274, 275, 276, 108, 109, 169, 170, 277, 278, 279, 184, 185, 50, 51, 143, 144, 280, 281, 282, 283, 284, 167, 285, 52, 53, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 65, 181, 182, 155, 324, 137, 325, 326, 162, 163, 327, 328, 329, 91, 55, 56, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 161, 164, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 168, 357, 358, 359, 103, 104, 360, 361, 180, 362, 363, 364, 365, 115, 366, 367, 186, 165, 166, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 42, 43, 44, 25, 26, 34, 35, 114, 27, 28, 32, 33, 99, 100, 61, 62, 145, 131, 132, 60, 105, 68, 127, 128, 183, 129, 130, 140, 141, 97, 98, 116, 117, 118, 48, 49, 78, 79, 101, 102, 173, 174, 175, 119, 120, 171, 172, 125, 126, 54, 110, 111, 80, 81, 69, 76, 77, 121, 122, 160, 148, 149, 94, 36, 37, 38, 95, 96, 150, 45, 46, 47, 176, 177, 178, 152, 146, 147, 124, 123, 179, 70, 71, 72, 142, 86, 87, 133, 134, 135, 136, 29, 30, 31, 187, 188, 189, 190, 191, 192, 193, 194, 195, 198, 199, 200, 196, 197, 201, 202, 151
-};
-
-const u16 gSpeciesToNationalPokedexNum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 290, 291, 292, 276, 277, 285, 286, 327, 278, 279, 283, 284, 320, 321, 300, 301, 352, 343, 344, 299, 324, 302, 339, 340, 370, 341, 342, 349, 350, 318, 319, 328, 329, 330, 296, 297, 309, 310, 322, 323, 363, 364, 365, 331, 332, 361, 362, 337, 338, 298, 325, 326, 311, 312, 303, 307, 308, 333, 334, 360, 355, 356, 315, 287, 288, 289, 316, 317, 357, 293, 294, 295, 366, 367, 368, 359, 353, 354, 336, 335, 369, 304, 305, 306, 351, 313, 314, 345, 346, 347, 348, 280, 281, 282, 371, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 384, 380, 381, 385, 386, 358};
-
-const u16 gHoennToNationalOrder[] = {252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 63, 64, 65, 290, 291, 292, 293, 294, 295, 296, 297, 118, 119, 129, 130, 298, 183, 184, 74, 75, 76, 299, 300, 301, 41, 42, 169, 72, 73, 302, 303, 304, 305, 306, 66, 67, 68, 307, 308, 309, 310, 311, 312, 81, 82, 100, 101, 313, 314, 43, 44, 45, 182, 84, 85, 315, 316, 317, 318, 319, 320, 321, 322, 323, 218, 219, 324, 88, 89, 109, 110, 325, 326, 27, 28, 327, 227, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 174, 39, 40, 349, 350, 351, 120, 121, 352, 353, 354, 355, 356, 357, 358, 359, 37, 38, 172, 25, 26, 54, 55, 360, 202, 177, 178, 203, 231, 232, 127, 214, 111, 112, 361, 362, 363, 364, 365, 366, 367, 368, 369, 222, 170, 171, 370, 116, 117, 230, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 77, 78, 79, 80, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 108, 113, 114, 115, 122, 123, 124, 125, 126, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 175, 176, 179, 180, 181, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 220, 221, 223, 224, 225, 226, 228, 229, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411};
-
-#endif //POKERUBY_DEX_ORDER_H
diff --git a/include/data/pokemon/evolution.h b/include/data/pokemon/evolution.h
deleted file mode 100644
index 51e993347..000000000
--- a/include/data/pokemon/evolution.h
+++ /dev/null
@@ -1,608 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_EVOLUTION_H
-#define POKERUBY_EVOLUTION_H
-
-const struct EvolutionData gEvolutionTable[] = {
- {{ // ??????????
- }}, {{ // Bulbasaur
- {EVO_LEVEL, 16, SPECIES_IVYSAUR},
- }}, {{ // Ivysaur
- {EVO_LEVEL, 32, SPECIES_VENUSAUR},
- }}, {{ // Venusaur
- }}, {{ // Charmander
- {EVO_LEVEL, 16, SPECIES_CHARMELEON},
- }}, {{ // Charmeleon
- {EVO_LEVEL, 36, SPECIES_CHARIZARD},
- }}, {{ // Charizard
- }}, {{ // Squirtle
- {EVO_LEVEL, 16, SPECIES_WARTORTLE},
- }}, {{ // Wartortle
- {EVO_LEVEL, 36, SPECIES_BLASTOISE},
- }}, {{ // Blastoise
- }}, {{ // Caterpie
- {EVO_LEVEL, 7, SPECIES_METAPOD},
- }}, {{ // Metapod
- {EVO_LEVEL, 10, SPECIES_BUTTERFREE},
- }}, {{ // Butterfree
- }}, {{ // Weedle
- {EVO_LEVEL, 7, SPECIES_KAKUNA},
- }}, {{ // Kakuna
- {EVO_LEVEL, 10, SPECIES_BEEDRILL},
- }}, {{ // Beedrill
- }}, {{ // Pidgey
- {EVO_LEVEL, 18, SPECIES_PIDGEOTTO},
- }}, {{ // Pidgeotto
- {EVO_LEVEL, 36, SPECIES_PIDGEOT},
- }}, {{ // Pidgeot
- }}, {{ // Rattata
- {EVO_LEVEL, 20, SPECIES_RATICATE},
- }}, {{ // Raticate
- }}, {{ // Spearow
- {EVO_LEVEL, 20, SPECIES_FEAROW},
- }}, {{ // Fearow
- }}, {{ // Ekans
- {EVO_LEVEL, 22, SPECIES_ARBOK},
- }}, {{ // Arbok
- }}, {{ // Pikachu
- {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU},
- }}, {{ // Raichu
- }}, {{ // Sandshrew
- {EVO_LEVEL, 22, SPECIES_SANDSLASH},
- }}, {{ // Sandslash
- }}, {{ // Nidoran♀
- {EVO_LEVEL, 16, SPECIES_NIDORINA},
- }}, {{ // Nidorina
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN},
- }}, {{ // Nidoqueen
- }}, {{ // Nidoran♂
- {EVO_LEVEL, 16, SPECIES_NIDORINO},
- }}, {{ // Nidorino
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING},
- }}, {{ // Nidoking
- }}, {{ // Clefairy
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE},
- }}, {{ // Clefable
- }}, {{ // Vulpix
- {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES},
- }}, {{ // Ninetales
- }}, {{ // Jigglypuff
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF},
- }}, {{ // Wigglytuff
- }}, {{ // Zubat
- {EVO_LEVEL, 22, SPECIES_GOLBAT},
- }}, {{ // Golbat
- {EVO_FRIENDSHIP, 0, SPECIES_CROBAT},
- }}, {{ // Oddish
- {EVO_LEVEL, 21, SPECIES_GLOOM},
- }}, {{ // Gloom
- {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME},
- {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM},
- }}, {{ // Vileplume
- }}, {{ // Paras
- {EVO_LEVEL, 24, SPECIES_PARASECT},
- }}, {{ // Parasect
- }}, {{ // Venonat
- {EVO_LEVEL, 31, SPECIES_VENOMOTH},
- }}, {{ // Venomoth
- }}, {{ // Diglett
- {EVO_LEVEL, 26, SPECIES_DUGTRIO},
- }}, {{ // Dugtrio
- }}, {{ // Meowth
- {EVO_LEVEL, 28, SPECIES_PERSIAN},
- }}, {{ // Persian
- }}, {{ // Psyduck
- {EVO_LEVEL, 33, SPECIES_GOLDUCK},
- }}, {{ // Golduck
- }}, {{ // Mankey
- {EVO_LEVEL, 28, SPECIES_PRIMEAPE},
- }}, {{ // Primeape
- }}, {{ // Growlithe
- {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE},
- }}, {{ // Arcanine
- }}, {{ // Poliwag
- {EVO_LEVEL, 25, SPECIES_POLIWHIRL},
- }}, {{ // Poliwhirl
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH},
- {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED},
- }}, {{ // Poliwrath
- }}, {{ // Abra
- {EVO_LEVEL, 16, SPECIES_KADABRA},
- }}, {{ // Kadabra
- {EVO_TRADE, 0, SPECIES_ALAKAZAM},
- }}, {{ // Alakazam
- }}, {{ // Machop
- {EVO_LEVEL, 28, SPECIES_MACHOKE},
- }}, {{ // Machoke
- {EVO_TRADE, 0, SPECIES_MACHAMP},
- }}, {{ // Machamp
- }}, {{ // Bellsprout
- {EVO_LEVEL, 21, SPECIES_WEEPINBELL},
- }}, {{ // Weepinbell
- {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL},
- }}, {{ // Victreebel
- }}, {{ // Tentacool
- {EVO_LEVEL, 30, SPECIES_TENTACRUEL},
- }}, {{ // Tentacruel
- }}, {{ // Geodude
- {EVO_LEVEL, 25, SPECIES_GRAVELER},
- }}, {{ // Graveler
- {EVO_TRADE, 0, SPECIES_GOLEM},
- }}, {{ // Golem
- }}, {{ // Ponyta
- {EVO_LEVEL, 40, SPECIES_RAPIDASH},
- }}, {{ // Rapidash
- }}, {{ // Slowpoke
- {EVO_LEVEL, 37, SPECIES_SLOWBRO},
- {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING},
- }}, {{ // Slowbro
- }}, {{ // Magnemite
- {EVO_LEVEL, 30, SPECIES_MAGNETON},
- }}, {{ // Magneton
- }}, {{ // Farfetch'd
- }}, {{ // Doduo
- {EVO_LEVEL, 31, SPECIES_DODRIO},
- }}, {{ // Dodrio
- }}, {{ // Seel
- {EVO_LEVEL, 34, SPECIES_DEWGONG},
- }}, {{ // Dewgong
- }}, {{ // Grimer
- {EVO_LEVEL, 38, SPECIES_MUK},
- }}, {{ // Muk
- }}, {{ // Shellder
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER},
- }}, {{ // Cloyster
- }}, {{ // Gastly
- {EVO_LEVEL, 25, SPECIES_HAUNTER},
- }}, {{ // Haunter
- {EVO_TRADE, 0, SPECIES_GENGAR},
- }}, {{ // Gengar
- }}, {{ // Onix
- {EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX},
- }}, {{ // Drowzee
- {EVO_LEVEL, 26, SPECIES_HYPNO},
- }}, {{ // Hypno
- }}, {{ // Krabby
- {EVO_LEVEL, 28, SPECIES_KINGLER},
- }}, {{ // Kingler
- }}, {{ // Voltorb
- {EVO_LEVEL, 30, SPECIES_ELECTRODE},
- }}, {{ // Electrode
- }}, {{ // Exeggcute
- {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR},
- }}, {{ // Exeggutor
- }}, {{ // Cubone
- {EVO_LEVEL, 28, SPECIES_MAROWAK},
- }}, {{ // Marowak
- }}, {{ // Hitmonlee
- }}, {{ // Hitmonchan
- }}, {{ // Lickitung
- }}, {{ // Koffing
- {EVO_LEVEL, 35, SPECIES_WEEZING},
- }}, {{ // Weezing
- }}, {{ // Rhyhorn
- {EVO_LEVEL, 42, SPECIES_RHYDON},
- }}, {{ // Rhydon
- }}, {{ // Chansey
- {EVO_FRIENDSHIP, 0, SPECIES_BLISSEY},
- }}, {{ // Tangela
- }}, {{ // Kangaskhan
- }}, {{ // Horsea
- {EVO_LEVEL, 32, SPECIES_SEADRA},
- }}, {{ // Seadra
- {EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA},
- }}, {{ // Goldeen
- {EVO_LEVEL, 33, SPECIES_SEAKING},
- }}, {{ // Seaking
- }}, {{ // Staryu
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE},
- }}, {{ // Starmie
- }}, {{ // Mr. mime
- }}, {{ // Scyther
- {EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR},
- }}, {{ // Jynx
- }}, {{ // Electabuzz
- }}, {{ // Magmar
- }}, {{ // Pinsir
- }}, {{ // Tauros
- }}, {{ // Magikarp
- {EVO_LEVEL, 20, SPECIES_GYARADOS},
- }}, {{ // Gyarados
- }}, {{ // Lapras
- }}, {{ // Ditto
- }}, {{ // Eevee
- {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON},
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON},
- {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON},
- {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON},
- {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON},
- }}, {{ // Vaporeon
- }}, {{ // Jolteon
- }}, {{ // Flareon
- }}, {{ // Porygon
- {EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2},
- }}, {{ // Omanyte
- {EVO_LEVEL, 40, SPECIES_OMASTAR},
- }}, {{ // Omastar
- }}, {{ // Kabuto
- {EVO_LEVEL, 40, SPECIES_KABUTOPS},
- }}, {{ // Kabutops
- }}, {{ // Aerodactyl
- }}, {{ // Snorlax
- }}, {{ // Articuno
- }}, {{ // Zapdos
- }}, {{ // Moltres
- }}, {{ // Dratini
- {EVO_LEVEL, 30, SPECIES_DRAGONAIR},
- }}, {{ // Dragonair
- {EVO_LEVEL, 55, SPECIES_DRAGONITE},
- }}, {{ // Dragonite
- }}, {{ // Mewtwo
- }}, {{ // Mew
- }}, {{ // Chikorita
- {EVO_LEVEL, 16, SPECIES_BAYLEEF},
- }}, {{ // Bayleef
- {EVO_LEVEL, 32, SPECIES_MEGANIUM},
- }}, {{ // Meganium
- }}, {{ // Cyndaquil
- {EVO_LEVEL, 14, SPECIES_QUILAVA},
- }}, {{ // Quilava
- {EVO_LEVEL, 36, SPECIES_TYPHLOSION},
- }}, {{ // Typhlosion
- }}, {{ // Totodile
- {EVO_LEVEL, 18, SPECIES_CROCONAW},
- }}, {{ // Croconaw
- {EVO_LEVEL, 30, SPECIES_FERALIGATR},
- }}, {{ // Feraligatr
- }}, {{ // Sentret
- {EVO_LEVEL, 15, SPECIES_FURRET},
- }}, {{ // Furret
- }}, {{ // Hoothoot
- {EVO_LEVEL, 20, SPECIES_NOCTOWL},
- }}, {{ // Noctowl
- }}, {{ // Ledyba
- {EVO_LEVEL, 18, SPECIES_LEDIAN},
- }}, {{ // Ledian
- }}, {{ // Spinarak
- {EVO_LEVEL, 22, SPECIES_ARIADOS},
- }}, {{ // Ariados
- }}, {{ // Crobat
- }}, {{ // Chinchou
- {EVO_LEVEL, 27, SPECIES_LANTURN},
- }}, {{ // Lanturn
- }}, {{ // Pichu
- {EVO_FRIENDSHIP, 0, SPECIES_PIKACHU},
- }}, {{ // Cleffa
- {EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY},
- }}, {{ // Igglybuff
- {EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF},
- }}, {{ // Togepi
- {EVO_FRIENDSHIP, 0, SPECIES_TOGETIC},
- }}, {{ // Togetic
- }}, {{ // Natu
- {EVO_LEVEL, 25, SPECIES_XATU},
- }}, {{ // Xatu
- }}, {{ // Mareep
- {EVO_LEVEL, 15, SPECIES_FLAAFFY},
- }}, {{ // Flaaffy
- {EVO_LEVEL, 30, SPECIES_AMPHAROS},
- }}, {{ // Ampharos
- }}, {{ // Bellossom
- }}, {{ // Marill
- {EVO_LEVEL, 18, SPECIES_AZUMARILL},
- }}, {{ // Azumarill
- }}, {{ // Sudowoodo
- }}, {{ // Politoed
- }}, {{ // Hoppip
- {EVO_LEVEL, 18, SPECIES_SKIPLOOM},
- }}, {{ // Skiploom
- {EVO_LEVEL, 27, SPECIES_JUMPLUFF},
- }}, {{ // Jumpluff
- }}, {{ // Aipom
- }}, {{ // Sunkern
- {EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA},
- }}, {{ // Sunflora
- }}, {{ // Yanma
- }}, {{ // Wooper
- {EVO_LEVEL, 20, SPECIES_QUAGSIRE},
- }}, {{ // Quagsire
- }}, {{ // Espeon
- }}, {{ // Umbreon
- }}, {{ // Murkrow
- }}, {{ // Slowking
- }}, {{ // Misdreavus
- }}, {{ // Unown
- }}, {{ // Wobbuffet
- }}, {{ // Girafarig
- }}, {{ // Pineco
- {EVO_LEVEL, 31, SPECIES_FORRETRESS},
- }}, {{ // Forretress
- }}, {{ // Dunsparce
- }}, {{ // Gligar
- }}, {{ // Steelix
- }}, {{ // Snubbull
- {EVO_LEVEL, 23, SPECIES_GRANBULL},
- }}, {{ // Granbull
- }}, {{ // Qwilfish
- }}, {{ // Scizor
- }}, {{ // Shuckle
- }}, {{ // Heracross
- }}, {{ // Sneasel
- }}, {{ // Teddiursa
- {EVO_LEVEL, 30, SPECIES_URSARING},
- }}, {{ // Ursaring
- }}, {{ // Slugma
- {EVO_LEVEL, 38, SPECIES_MAGCARGO},
- }}, {{ // Magcargo
- }}, {{ // Swinub
- {EVO_LEVEL, 33, SPECIES_PILOSWINE},
- }}, {{ // Piloswine
- }}, {{ // Corsola
- }}, {{ // Remoraid
- {EVO_LEVEL, 25, SPECIES_OCTILLERY},
- }}, {{ // Octillery
- }}, {{ // Delibird
- }}, {{ // Mantine
- }}, {{ // Skarmory
- }}, {{ // Houndour
- {EVO_LEVEL, 24, SPECIES_HOUNDOOM},
- }}, {{ // Houndoom
- }}, {{ // Kingdra
- }}, {{ // Phanpy
- {EVO_LEVEL, 25, SPECIES_DONPHAN},
- }}, {{ // Donphan
- }}, {{ // Porygon2
- }}, {{ // Stantler
- }}, {{ // Smeargle
- }}, {{ // Tyrogue
- {EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN},
- {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE},
- {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP},
- }}, {{ // Hitmontop
- }}, {{ // Smoochum
- {EVO_LEVEL, 30, SPECIES_JYNX},
- }}, {{ // Elekid
- {EVO_LEVEL, 30, SPECIES_ELECTABUZZ},
- }}, {{ // Magby
- {EVO_LEVEL, 30, SPECIES_MAGMAR},
- }}, {{ // Miltank
- }}, {{ // Blissey
- }}, {{ // Raikou
- }}, {{ // Entei
- }}, {{ // Suicune
- }}, {{ // Larvitar
- {EVO_LEVEL, 30, SPECIES_PUPITAR},
- }}, {{ // Pupitar
- {EVO_LEVEL, 55, SPECIES_TYRANITAR},
- }}, {{ // Tyranitar
- }}, {{ // Lugia
- }}, {{ // Ho-Oh
- }}, {{ // Celebi
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // Treecko
- {EVO_LEVEL, 16, SPECIES_GROVYLE},
- }}, {{ // Grovyle
- {EVO_LEVEL, 36, SPECIES_SCEPTILE},
- }}, {{ // Sceptile
- }}, {{ // Torchic
- {EVO_LEVEL, 16, SPECIES_COMBUSKEN},
- }}, {{ // Combusken
- {EVO_LEVEL, 36, SPECIES_BLAZIKEN},
- }}, {{ // Blaziken
- }}, {{ // Mudkip
- {EVO_LEVEL, 16, SPECIES_MARSHTOMP},
- }}, {{ // Marshtomp
- {EVO_LEVEL, 36, SPECIES_SWAMPERT},
- }}, {{ // Swampert
- }}, {{ // Poochyena
- {EVO_LEVEL, 18, SPECIES_MIGHTYENA},
- }}, {{ // Mightyena
- }}, {{ // Zigzagoon
- {EVO_LEVEL, 20, SPECIES_LINOONE},
- }}, {{ // Linoone
- }}, {{ // Wurmple
- {EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON},
- {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON},
- }}, {{ // Silcoon
- {EVO_LEVEL, 10, SPECIES_BEAUTIFLY},
- }}, {{ // Beautifly
- }}, {{ // Cascoon
- {EVO_LEVEL, 10, SPECIES_DUSTOX},
- }}, {{ // Dustox
- }}, {{ // Lotad
- {EVO_LEVEL, 14, SPECIES_LOMBRE},
- }}, {{ // Lombre
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO},
- }}, {{ // Ludicolo
- }}, {{ // Seedot
- {EVO_LEVEL, 14, SPECIES_NUZLEAF},
- }}, {{ // Nuzleaf
- {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY},
- }}, {{ // Shiftry
- }}, {{ // Nincada
- {EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK},
- {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA},
- }}, {{ // Ninjask
- }}, {{ // Shedinja
- }}, {{ // Taillow
- {EVO_LEVEL, 22, SPECIES_SWELLOW},
- }}, {{ // Swellow
- }}, {{ // Shroomish
- {EVO_LEVEL, 23, SPECIES_BRELOOM},
- }}, {{ // Breloom
- }}, {{ // Spinda
- }}, {{ // Wingull
- {EVO_LEVEL, 25, SPECIES_PELIPPER},
- }}, {{ // Pelipper
- }}, {{ // Surskit
- {EVO_LEVEL, 22, SPECIES_MASQUERAIN},
- }}, {{ // Masquerain
- }}, {{ // Wailmer
- {EVO_LEVEL, 40, SPECIES_WAILORD},
- }}, {{ // Wailord
- }}, {{ // Skitty
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY},
- }}, {{ // Delcatty
- }}, {{ // Kecleon
- }}, {{ // Baltoy
- {EVO_LEVEL, 36, SPECIES_CLAYDOL},
- }}, {{ // Claydol
- }}, {{ // Nosepass
- }}, {{ // Torkoal
- }}, {{ // Sableye
- }}, {{ // Barboach
- {EVO_LEVEL, 30, SPECIES_WHISCASH},
- }}, {{ // Whiscash
- }}, {{ // Luvdisc
- }}, {{ // Corphish
- {EVO_LEVEL, 30, SPECIES_CRAWDAUNT},
- }}, {{ // Crawdaunt
- }}, {{ // Feebas
- {EVO_BEAUTY, 170, SPECIES_MILOTIC},
- }}, {{ // Milotic
- }}, {{ // Carvanha
- {EVO_LEVEL, 30, SPECIES_SHARPEDO},
- }}, {{ // Sharpedo
- }}, {{ // Trapinch
- {EVO_LEVEL, 35, SPECIES_VIBRAVA},
- }}, {{ // Vibrava
- {EVO_LEVEL, 45, SPECIES_FLYGON},
- }}, {{ // Flygon
- }}, {{ // Makuhita
- {EVO_LEVEL, 24, SPECIES_HARIYAMA},
- }}, {{ // Hariyama
- }}, {{ // Electrike
- {EVO_LEVEL, 26, SPECIES_MANECTRIC},
- }}, {{ // Manectric
- }}, {{ // Numel
- {EVO_LEVEL, 33, SPECIES_CAMERUPT},
- }}, {{ // Camerupt
- }}, {{ // Spheal
- {EVO_LEVEL, 32, SPECIES_SEALEO},
- }}, {{ // Sealeo
- {EVO_LEVEL, 44, SPECIES_WALREIN},
- }}, {{ // Walrein
- }}, {{ // Cacnea
- {EVO_LEVEL, 32, SPECIES_CACTURNE},
- }}, {{ // Cacturne
- }}, {{ // Snorunt
- {EVO_LEVEL, 42, SPECIES_GLALIE},
- }}, {{ // Glalie
- }}, {{ // Lunatone
- }}, {{ // Solrock
- }}, {{ // Azurill
- {EVO_FRIENDSHIP, 0, SPECIES_MARILL},
- }}, {{ // Spoink
- {EVO_LEVEL, 32, SPECIES_GRUMPIG},
- }}, {{ // Grumpig
- }}, {{ // Plusle
- }}, {{ // Minun
- }}, {{ // Mawile
- }}, {{ // Meditite
- {EVO_LEVEL, 37, SPECIES_MEDICHAM},
- }}, {{ // Medicham
- }}, {{ // Swablu
- {EVO_LEVEL, 35, SPECIES_ALTARIA},
- }}, {{ // Altaria
- }}, {{ // Wynaut
- {EVO_LEVEL, 15, SPECIES_WOBBUFFET},
- }}, {{ // Duskull
- {EVO_LEVEL, 37, SPECIES_DUSCLOPS},
- }}, {{ // Dusclops
- }}, {{ // Roselia
- }}, {{ // Slakoth
- {EVO_LEVEL, 18, SPECIES_VIGOROTH},
- }}, {{ // Vigoroth
- {EVO_LEVEL, 36, SPECIES_SLAKING},
- }}, {{ // Slaking
- }}, {{ // Gulpin
- {EVO_LEVEL, 26, SPECIES_SWALOT},
- }}, {{ // Swalot
- }}, {{ // Tropius
- }}, {{ // Whismur
- {EVO_LEVEL, 20, SPECIES_LOUDRED},
- }}, {{ // Loudred
- {EVO_LEVEL, 40, SPECIES_EXPLOUD},
- }}, {{ // Exploud
- }}, {{ // Clamperl
- {EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
- {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS},
- }}, {{ // Huntail
- }}, {{ // Gorebyss
- }}, {{ // Absol
- }}, {{ // Shuppet
- {EVO_LEVEL, 37, SPECIES_BANETTE},
- }}, {{ // Banette
- }}, {{ // Seviper
- }}, {{ // Zangoose
- }}, {{ // Relicanth
- }}, {{ // Aron
- {EVO_LEVEL, 32, SPECIES_LAIRON},
- }}, {{ // Lairon
- {EVO_LEVEL, 42, SPECIES_AGGRON},
- }}, {{ // Aggron
- }}, {{ // Castform
- }}, {{ // Volbeat
- }}, {{ // Illumise
- }}, {{ // Lileep
- {EVO_LEVEL, 40, SPECIES_CRADILY},
- }}, {{ // Cradily
- }}, {{ // Anorith
- {EVO_LEVEL, 40, SPECIES_ARMALDO},
- }}, {{ // Armaldo
- }}, {{ // Ralts
- {EVO_LEVEL, 20, SPECIES_KIRLIA},
- }}, {{ // Kirlia
- {EVO_LEVEL, 30, SPECIES_GARDEVOIR},
- }}, {{ // Gardevoir
- }}, {{ // Bagon
- {EVO_LEVEL, 30, SPECIES_SHELGON},
- }}, {{ // Shelgon
- {EVO_LEVEL, 50, SPECIES_SALAMENCE},
- }}, {{ // Salamence
- }}, {{ // Beldum
- {EVO_LEVEL, 20, SPECIES_METANG},
- }}, {{ // Metang
- {EVO_LEVEL, 45, SPECIES_METAGROSS},
- }}, {{ // Metagross
- }}, {{ // Regirock
- }}, {{ // Regice
- }}, {{ // Registeel
- }}, {{ // Kyogre
- }}, {{ // Groudon
- }}, {{ // Rayquaza
- }}, {{ // Latias
- }}, {{ // Latios
- }}, {{ // Jirachi
- }}, {{ // Deoxys
- }}, {{ // Chimecho
- }}
-};
-
-#endif //POKERUBY_EVOLUTION_H
diff --git a/include/data/pokemon/experience_tables.h b/include/data/pokemon/experience_tables.h
deleted file mode 100644
index 70c5e88ed..000000000
--- a/include/data/pokemon/experience_tables.h
+++ /dev/null
@@ -1,828 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_EXPERIENCE_TABLES_H
-#define POKERUBY_EXPERIENCE_TABLES_H
-
-const u32 gExperienceTables[][101] = {
- { // Medium Fast
- 0, // 0
- 1, // 1
- 8, // 2
- 27, // 3
- 64, // 4
- 125, // 5
- 216, // 6
- 343, // 7
- 512, // 8
- 729, // 9
- 1000, // 10
- 1331, // 11
- 1728, // 12
- 2197, // 13
- 2744, // 14
- 3375, // 15
- 4096, // 16
- 4913, // 17
- 5832, // 18
- 6859, // 19
- 8000, // 20
- 9261, // 21
- 10648, // 22
- 12167, // 23
- 13824, // 24
- 15625, // 25
- 17576, // 26
- 19683, // 27
- 21952, // 28
- 24389, // 29
- 27000, // 30
- 29791, // 31
- 32768, // 32
- 35937, // 33
- 39304, // 34
- 42875, // 35
- 46656, // 36
- 50653, // 37
- 54872, // 38
- 59319, // 39
- 64000, // 40
- 68921, // 41
- 74088, // 42
- 79507, // 43
- 85184, // 44
- 91125, // 45
- 97336, // 46
- 103823, // 47
- 110592, // 48
- 117649, // 49
- 125000, // 50
- 132651, // 51
- 140608, // 52
- 148877, // 53
- 157464, // 54
- 166375, // 55
- 175616, // 56
- 185193, // 57
- 195112, // 58
- 205379, // 59
- 216000, // 60
- 226981, // 61
- 238328, // 62
- 250047, // 63
- 262144, // 64
- 274625, // 65
- 287496, // 66
- 300763, // 67
- 314432, // 68
- 328509, // 69
- 343000, // 70
- 357911, // 71
- 373248, // 72
- 389017, // 73
- 405224, // 74
- 421875, // 75
- 438976, // 76
- 456533, // 77
- 474552, // 78
- 493039, // 79
- 512000, // 80
- 531441, // 81
- 551368, // 82
- 571787, // 83
- 592704, // 84
- 614125, // 85
- 636056, // 86
- 658503, // 87
- 681472, // 88
- 704969, // 89
- 729000, // 90
- 753571, // 91
- 778688, // 92
- 804357, // 93
- 830584, // 94
- 857375, // 95
- 884736, // 96
- 912673, // 97
- 941192, // 98
- 970299, // 99
- 1000000 // 100
- }, { // Erratic
- 0, // 0
- 1, // 1
- 15, // 2
- 52, // 3
- 122, // 4
- 237, // 5
- 406, // 6
- 637, // 7
- 942, // 8
- 1326, // 9
- 1800, // 10
- 2369, // 11
- 3041, // 12
- 3822, // 13
- 4719, // 14
- 5737, // 15
- 6881, // 16
- 8155, // 17
- 9564, // 18
- 11111, // 19
- 12800, // 20
- 14632, // 21
- 16610, // 22
- 18737, // 23
- 21012, // 24
- 23437, // 25
- 26012, // 26
- 28737, // 27
- 31610, // 28
- 34632, // 29
- 37800, // 30
- 41111, // 31
- 44564, // 32
- 48155, // 33
- 51881, // 34
- 55737, // 35
- 59719, // 36
- 63822, // 37
- 68041, // 38
- 72369, // 39
- 76800, // 40
- 81326, // 41
- 85942, // 42
- 90637, // 43
- 95406, // 44
- 100237, // 45
- 105122, // 46
- 110052, // 47
- 115015, // 48
- 120001, // 49
- 125000, // 50
- 131324, // 51
- 137795, // 52
- 144410, // 53
- 151165, // 54
- 158056, // 55
- 165079, // 56
- 172229, // 57
- 179503, // 58
- 186894, // 59
- 194400, // 60
- 202013, // 61
- 209728, // 62
- 217540, // 63
- 225443, // 64
- 233431, // 65
- 241496, // 66
- 249633, // 67
- 257834, // 68
- 267406, // 69
- 276458, // 70
- 286328, // 71
- 296358, // 72
- 305767, // 73
- 316074, // 74
- 326531, // 75
- 336255, // 76
- 346965, // 77
- 357812, // 78
- 367807, // 79
- 378880, // 80
- 390077, // 81
- 400293, // 82
- 411686, // 83
- 423190, // 84
- 433572, // 85
- 445239, // 86
- 457001, // 87
- 467489, // 88
- 479378, // 89
- 491346, // 90
- 501878, // 91
- 513934, // 92
- 526049, // 93
- 536557, // 94
- 548720, // 95
- 560922, // 96
- 571333, // 97
- 583539, // 98
- 591882, // 99
- 600000 // 100
- }, { // Fluctuating
- 0, // 0
- 1, // 1
- 4, // 2
- 13, // 3
- 32, // 4
- 65, // 5
- 112, // 6
- 178, // 7
- 276, // 8
- 393, // 9
- 540, // 10
- 745, // 11
- 967, // 12
- 1230, // 13
- 1591, // 14
- 1957, // 15
- 2457, // 16
- 3046, // 17
- 3732, // 18
- 4526, // 19
- 5440, // 20
- 6482, // 21
- 7666, // 22
- 9003, // 23
- 10506, // 24
- 12187, // 25
- 14060, // 26
- 16140, // 27
- 18439, // 28
- 20974, // 29
- 23760, // 30
- 26811, // 31
- 30146, // 32
- 33780, // 33
- 37731, // 34
- 42017, // 35
- 46656, // 36
- 50653, // 37
- 55969, // 38
- 60505, // 39
- 66560, // 40
- 71677, // 41
- 78533, // 42
- 84277, // 43
- 91998, // 44
- 98415, // 45
- 107069, // 46
- 114205, // 47
- 123863, // 48
- 131766, // 49
- 142500, // 50
- 151222, // 51
- 163105, // 52
- 172697, // 53
- 185807, // 54
- 196322, // 55
- 210739, // 56
- 222231, // 57
- 238036, // 58
- 250562, // 59
- 267840, // 60
- 281456, // 61
- 300293, // 62
- 315059, // 63
- 335544, // 64
- 351520, // 65
- 373744, // 66
- 390991, // 67
- 415050, // 68
- 433631, // 69
- 459620, // 70
- 479600, // 71
- 507617, // 72
- 529063, // 73
- 559209, // 74
- 582187, // 75
- 614566, // 76
- 639146, // 77
- 673863, // 78
- 700115, // 79
- 737280, // 80
- 765275, // 81
- 804997, // 82
- 834809, // 83
- 877201, // 84
- 908905, // 85
- 954084, // 86
- 987754, // 87
- 1035837, // 88
- 1071552, // 89
- 1122660, // 90
- 1160499, // 91
- 1214753, // 92
- 1254796, // 93
- 1312322, // 94
- 1354652, // 95
- 1415577, // 96
- 1460276, // 97
- 1524731, // 98
- 1571884, // 99
- 1640000 // 100
- }, { // Medium Slow
- 0, // 0
- 1, // 1
- 9, // 2
- 57, // 3
- 96, // 4
- 135, // 5
- 179, // 6
- 236, // 7
- 314, // 8
- 419, // 9
- 560, // 10
- 742, // 11
- 973, // 12
- 1261, // 13
- 1612, // 14
- 2035, // 15
- 2535, // 16
- 3120, // 17
- 3798, // 18
- 4575, // 19
- 5460, // 20
- 6458, // 21
- 7577, // 22
- 8825, // 23
- 10208, // 24
- 11735, // 25
- 13411, // 26
- 15244, // 27
- 17242, // 28
- 19411, // 29
- 21760, // 30
- 24294, // 31
- 27021, // 32
- 29949, // 33
- 33084, // 34
- 36435, // 35
- 40007, // 36
- 43808, // 37
- 47846, // 38
- 52127, // 39
- 56660, // 40
- 61450, // 41
- 66505, // 42
- 71833, // 43
- 77440, // 44
- 83335, // 45
- 89523, // 46
- 96012, // 47
- 102810, // 48
- 109923, // 49
- 117360, // 50
- 125126, // 51
- 133229, // 52
- 141677, // 53
- 150476, // 54
- 159635, // 55
- 169159, // 56
- 179056, // 57
- 189334, // 58
- 199999, // 59
- 211060, // 60
- 222522, // 61
- 234393, // 62
- 246681, // 63
- 259392, // 64
- 272535, // 65
- 286115, // 66
- 300140, // 67
- 314618, // 68
- 329555, // 69
- 344960, // 70
- 360838, // 71
- 377197, // 72
- 394045, // 73
- 411388, // 74
- 429235, // 75
- 447591, // 76
- 466464, // 77
- 485862, // 78
- 505791, // 79
- 526260, // 80
- 547274, // 81
- 568841, // 82
- 590969, // 83
- 613664, // 84
- 636935, // 85
- 660787, // 86
- 685228, // 87
- 710266, // 88
- 735907, // 89
- 762160, // 90
- 789030, // 91
- 816525, // 92
- 844653, // 93
- 873420, // 94
- 902835, // 95
- 932903, // 96
- 963632, // 97
- 995030, // 98
- 1027103, // 99
- 1059860 // 100
- }, { // Fast
- 0, // 0
- 1, // 1
- 6, // 2
- 21, // 3
- 51, // 4
- 100, // 5
- 172, // 6
- 274, // 7
- 409, // 8
- 583, // 9
- 800, // 10
- 1064, // 11
- 1382, // 12
- 1757, // 13
- 2195, // 14
- 2700, // 15
- 3276, // 16
- 3930, // 17
- 4665, // 18
- 5487, // 19
- 6400, // 20
- 7408, // 21
- 8518, // 22
- 9733, // 23
- 11059, // 24
- 12500, // 25
- 14060, // 26
- 15746, // 27
- 17561, // 28
- 19511, // 29
- 21600, // 30
- 23832, // 31
- 26214, // 32
- 28749, // 33
- 31443, // 34
- 34300, // 35
- 37324, // 36
- 40522, // 37
- 43897, // 38
- 47455, // 39
- 51200, // 40
- 55136, // 41
- 59270, // 42
- 63605, // 43
- 68147, // 44
- 72900, // 45
- 77868, // 46
- 83058, // 47
- 88473, // 48
- 94119, // 49
- 100000, // 50
- 106120, // 51
- 112486, // 52
- 119101, // 53
- 125971, // 54
- 133100, // 55
- 140492, // 56
- 148154, // 57
- 156089, // 58
- 164303, // 59
- 172800, // 60
- 181584, // 61
- 190662, // 62
- 200037, // 63
- 209715, // 64
- 219700, // 65
- 229996, // 66
- 240610, // 67
- 251545, // 68
- 262807, // 69
- 274400, // 70
- 286328, // 71
- 298598, // 72
- 311213, // 73
- 324179, // 74
- 337500, // 75
- 351180, // 76
- 365226, // 77
- 379641, // 78
- 394431, // 79
- 409600, // 80
- 425152, // 81
- 441094, // 82
- 457429, // 83
- 474163, // 84
- 491300, // 85
- 508844, // 86
- 526802, // 87
- 545177, // 88
- 563975, // 89
- 583200, // 90
- 602856, // 91
- 622950, // 92
- 643485, // 93
- 664467, // 94
- 685900, // 95
- 707788, // 96
- 730138, // 97
- 752953, // 98
- 776239, // 99
- 800000 // 100
- }, { // Slow
- 0, // 0
- 1, // 1
- 10, // 2
- 33, // 3
- 80, // 4
- 156, // 5
- 270, // 6
- 428, // 7
- 640, // 8
- 911, // 9
- 1250, // 10
- 1663, // 11
- 2160, // 12
- 2746, // 13
- 3430, // 14
- 4218, // 15
- 5120, // 16
- 6141, // 17
- 7290, // 18
- 8573, // 19
- 10000, // 20
- 11576, // 21
- 13310, // 22
- 15208, // 23
- 17280, // 24
- 19531, // 25
- 21970, // 26
- 24603, // 27
- 27440, // 28
- 30486, // 29
- 33750, // 30
- 37238, // 31
- 40960, // 32
- 44921, // 33
- 49130, // 34
- 53593, // 35
- 58320, // 36
- 63316, // 37
- 68590, // 38
- 74148, // 39
- 80000, // 40
- 86151, // 41
- 92610, // 42
- 99383, // 43
- 106480, // 44
- 113906, // 45
- 121670, // 46
- 129778, // 47
- 138240, // 48
- 147061, // 49
- 156250, // 50
- 165813, // 51
- 175760, // 52
- 186096, // 53
- 196830, // 54
- 207968, // 55
- 219520, // 56
- 231491, // 57
- 243890, // 58
- 256723, // 59
- 270000, // 60
- 283726, // 61
- 297910, // 62
- 312558, // 63
- 327680, // 64
- 343281, // 65
- 359370, // 66
- 375953, // 67
- 393040, // 68
- 410636, // 69
- 428750, // 70
- 447388, // 71
- 466560, // 72
- 486271, // 73
- 506530, // 74
- 527343, // 75
- 548720, // 76
- 570666, // 77
- 593190, // 78
- 616298, // 79
- 640000, // 80
- 664301, // 81
- 689210, // 82
- 714733, // 83
- 740880, // 84
- 767656, // 85
- 795070, // 86
- 823128, // 87
- 851840, // 88
- 881211, // 89
- 911250, // 90
- 941963, // 91
- 973360, // 92
- 1005446, // 93
- 1038230, // 94
- 1071718, // 95
- 1105920, // 96
- 1140841, // 97
- 1176490, // 98
- 1212873, // 99
- 1250000 // 100
- }, { // Medium Fast copy 2 (unused? to-do: investigate)
- 0, // 0
- 1, // 1
- 8, // 2
- 27, // 3
- 64, // 4
- 125, // 5
- 216, // 6
- 343, // 7
- 512, // 8
- 729, // 9
- 1000, // 10
- 1331, // 11
- 1728, // 12
- 2197, // 13
- 2744, // 14
- 3375, // 15
- 4096, // 16
- 4913, // 17
- 5832, // 18
- 6859, // 19
- 8000, // 20
- 9261, // 21
- 10648, // 22
- 12167, // 23
- 13824, // 24
- 15625, // 25
- 17576, // 26
- 19683, // 27
- 21952, // 28
- 24389, // 29
- 27000, // 30
- 29791, // 31
- 32768, // 32
- 35937, // 33
- 39304, // 34
- 42875, // 35
- 46656, // 36
- 50653, // 37
- 54872, // 38
- 59319, // 39
- 64000, // 40
- 68921, // 41
- 74088, // 42
- 79507, // 43
- 85184, // 44
- 91125, // 45
- 97336, // 46
- 103823, // 47
- 110592, // 48
- 117649, // 49
- 125000, // 50
- 132651, // 51
- 140608, // 52
- 148877, // 53
- 157464, // 54
- 166375, // 55
- 175616, // 56
- 185193, // 57
- 195112, // 58
- 205379, // 59
- 216000, // 60
- 226981, // 61
- 238328, // 62
- 250047, // 63
- 262144, // 64
- 274625, // 65
- 287496, // 66
- 300763, // 67
- 314432, // 68
- 328509, // 69
- 343000, // 70
- 357911, // 71
- 373248, // 72
- 389017, // 73
- 405224, // 74
- 421875, // 75
- 438976, // 76
- 456533, // 77
- 474552, // 78
- 493039, // 79
- 512000, // 80
- 531441, // 81
- 551368, // 82
- 571787, // 83
- 592704, // 84
- 614125, // 85
- 636056, // 86
- 658503, // 87
- 681472, // 88
- 704969, // 89
- 729000, // 90
- 753571, // 91
- 778688, // 92
- 804357, // 93
- 830584, // 94
- 857375, // 95
- 884736, // 96
- 912673, // 97
- 941192, // 98
- 970299, // 99
- 1000000 // 100
- }, { // Medium Fast copy 3 (unused? to-do: investigate)
- 0, // 0
- 1, // 1
- 8, // 2
- 27, // 3
- 64, // 4
- 125, // 5
- 216, // 6
- 343, // 7
- 512, // 8
- 729, // 9
- 1000, // 10
- 1331, // 11
- 1728, // 12
- 2197, // 13
- 2744, // 14
- 3375, // 15
- 4096, // 16
- 4913, // 17
- 5832, // 18
- 6859, // 19
- 8000, // 20
- 9261, // 21
- 10648, // 22
- 12167, // 23
- 13824, // 24
- 15625, // 25
- 17576, // 26
- 19683, // 27
- 21952, // 28
- 24389, // 29
- 27000, // 30
- 29791, // 31
- 32768, // 32
- 35937, // 33
- 39304, // 34
- 42875, // 35
- 46656, // 36
- 50653, // 37
- 54872, // 38
- 59319, // 39
- 64000, // 40
- 68921, // 41
- 74088, // 42
- 79507, // 43
- 85184, // 44
- 91125, // 45
- 97336, // 46
- 103823, // 47
- 110592, // 48
- 117649, // 49
- 125000, // 50
- 132651, // 51
- 140608, // 52
- 148877, // 53
- 157464, // 54
- 166375, // 55
- 175616, // 56
- 185193, // 57
- 195112, // 58
- 205379, // 59
- 216000, // 60
- 226981, // 61
- 238328, // 62
- 250047, // 63
- 262144, // 64
- 274625, // 65
- 287496, // 66
- 300763, // 67
- 314432, // 68
- 328509, // 69
- 343000, // 70
- 357911, // 71
- 373248, // 72
- 389017, // 73
- 405224, // 74
- 421875, // 75
- 438976, // 76
- 456533, // 77
- 474552, // 78
- 493039, // 79
- 512000, // 80
- 531441, // 81
- 551368, // 82
- 571787, // 83
- 592704, // 84
- 614125, // 85
- 636056, // 86
- 658503, // 87
- 681472, // 88
- 704969, // 89
- 729000, // 90
- 753571, // 91
- 778688, // 92
- 804357, // 93
- 830584, // 94
- 857375, // 95
- 884736, // 96
- 912673, // 97
- 941192, // 98
- 970299, // 99
- 1000000 // 100
- }
-};
-
-#endif //POKERUBY_EXPERIENCE_TABLES_H
diff --git a/include/data/pokemon/item_effects.h b/include/data/pokemon/item_effects.h
deleted file mode 100644
index b07573933..000000000
--- a/include/data/pokemon/item_effects.h
+++ /dev/null
@@ -1,824 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_ITEM_EFFECTS_H
-#define POKERUBY_ITEM_EFFECTS_H
-
-const u8 gItemEffect_Potion[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 20
-};
-
-const u8 gItemEffect_Antidote[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x10,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_BurnHeal[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x08,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_IceHeal[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_Awakening[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x20,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_ParalyzeHeal[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x02,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_FullRestore[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x04,
- 0x00,
- 0xff
-};
-
-const u8 gItemEffect_MaxPotion[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 0xff
-};
-
-const u8 gItemEffect_HyperPotion[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 200
-};
-
-const u8 gItemEffect_SuperPotion[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 50
-};
-
-const u8 gItemEffect_FullHeal[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_Revive[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x44,
- 0x00,
- 0xfe
-};
-
-const u8 gItemEffect_MaxRevive[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x44,
- 0x00,
- 0xff
-};
-
-const u8 gItemEffect_FreshWater[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 50
-};
-
-const u8 gItemEffect_SodaPop[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 60
-};
-
-const u8 gItemEffect_Lemonade[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 80
-};
-
-const u8 gItemEffect_MoomooMilk[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 100
-};
-
-const u8 gItemEffect_EnergyPowder[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0xe0,
- 50,
- 0xfb,
- 0xfb,
- 0xf6
-};
-
-const u8 gItemEffect_EnergyRoot[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0xe0,
- 200,
- 0xf6,
- 0xf6,
- 0xf1
-};
-
-const u8 gItemEffect_HealPowder[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x00,
- 0xe0,
- 0xfb,
- 0xfb,
- 0xf6
-};
-
-const u8 gItemEffect_RevivalHerb[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x44,
- 0xe0,
- 0xfe,
- 0xf1,
- 0xf1,
- 0xec
-};
-
-const u8 gItemEffect_Ether[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x18,
- 0x00,
- 0x0a
-};
-
-const u8 gItemEffect_MaxEther[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x18,
- 0x00,
- 0x7f
-};
-
-const u8 gItemEffect_Elixir[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x08,
- 0x00,
- 0x0a
-};
-
-const u8 gItemEffect_MaxElixir[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x08,
- 0x00,
- 0x7f
-};
-
-const u8 gItemEffect_LavaCookie[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_BlueFlute[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x20,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_YellowFlute[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_RedFlute[] = {
- 0x80,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_BerryJuice[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 20
-};
-
-const u8 gItemEffect_SacredAsh[] = {
- 0x40,
- 0x00,
- 0x00,
- 0x00,
- 0x44,
- 0x00,
- 0xff
-};
-
-const u8 gItemEffect_HPUp[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0xe0,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Protein[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x02,
- 0xe0,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Iron[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xe1,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Carbos[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xe2,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Calcium[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xe8,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_RareCandy[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x40,
- 0x44,
- 0xe0,
- 253,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_PPUp[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x20,
- 0xe0,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Zinc[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xe4,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_PPMax[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xf0,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_GuardSpec[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_DireHit[] = {
- 0x20,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XAttack[] = {
- 0x01,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XDefend[] = {
- 0x00,
- 0x10,
- 0x00,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XSpeed[] = {
- 0x00,
- 0x01,
- 0x00,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XAccuracy[] = {
- 0x00,
- 0x00,
- 0x10,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XSpecial[] = {
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_SunStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_MoonStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_FireStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_ThunderStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_WaterStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_LeafStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_CheriBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x02,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_ChestoBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x20,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_PechaBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x10,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_RawstBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x08,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_AspearBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_LeppaBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x18,
- 0x00,
- 0x0a
-};
-
-const u8 gItemEffect_OranBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 10
-};
-
-const u8 gItemEffect_PersimBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_LumBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_SitrusBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 30
-};
-
-const u8 *const gItemEffectTable[] = {
- gItemEffect_Potion,
- gItemEffect_Antidote,
- gItemEffect_BurnHeal,
- gItemEffect_IceHeal,
- gItemEffect_Awakening,
- gItemEffect_ParalyzeHeal,
- gItemEffect_FullRestore,
- gItemEffect_MaxPotion,
- gItemEffect_HyperPotion,
- gItemEffect_SuperPotion,
- gItemEffect_FullHeal,
- gItemEffect_Revive,
- gItemEffect_MaxRevive,
- gItemEffect_FreshWater,
- gItemEffect_SodaPop,
- gItemEffect_Lemonade,
- gItemEffect_MoomooMilk,
- gItemEffect_EnergyPowder,
- gItemEffect_EnergyRoot,
- gItemEffect_HealPowder,
- gItemEffect_RevivalHerb,
- gItemEffect_Ether,
- gItemEffect_MaxEther,
- gItemEffect_Elixir,
- gItemEffect_MaxElixir,
- gItemEffect_LavaCookie,
- gItemEffect_BlueFlute,
- gItemEffect_YellowFlute,
- gItemEffect_RedFlute,
- NULL,
- NULL,
- gItemEffect_BerryJuice,
- gItemEffect_SacredAsh,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- gItemEffect_HPUp,
- gItemEffect_Protein,
- gItemEffect_Iron,
- gItemEffect_Carbos,
- gItemEffect_Calcium,
- gItemEffect_RareCandy,
- gItemEffect_PPUp,
- gItemEffect_Zinc,
- gItemEffect_PPMax,
- NULL,
- gItemEffect_GuardSpec,
- gItemEffect_DireHit,
- gItemEffect_XAttack,
- gItemEffect_XDefend,
- gItemEffect_XSpeed,
- gItemEffect_XAccuracy,
- gItemEffect_XSpecial,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- gItemEffect_SunStone,
- gItemEffect_MoonStone,
- gItemEffect_FireStone,
- gItemEffect_ThunderStone,
- gItemEffect_WaterStone,
- gItemEffect_LeafStone,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- gItemEffect_CheriBerry,
- gItemEffect_ChestoBerry,
- gItemEffect_PechaBerry,
- gItemEffect_RawstBerry,
- gItemEffect_AspearBerry,
- gItemEffect_LeppaBerry,
- gItemEffect_OranBerry,
- gItemEffect_PersimBerry,
- gItemEffect_LumBerry,
- gItemEffect_SitrusBerry,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-#endif //POKERUBY_ITEM_EFFECTS_H
diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h
deleted file mode 100644
index 753947d51..000000000
--- a/include/data/pokemon/level_up_learnset_pointers.h
+++ /dev/null
@@ -1,423 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
-#define POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
-
-const u16 *const gLevelUpLearnsets[] = {
- gBulbasaurLevelUpLearnset,
- gBulbasaurLevelUpLearnset,
- gIvysaurLevelUpLearnset,
- gVenusaurLevelUpLearnset,
- gCharmanderLevelUpLearnset,
- gCharmeleonLevelUpLearnset,
- gCharizardLevelUpLearnset,
- gSquirtleLevelUpLearnset,
- gWartortleLevelUpLearnset,
- gBlastoiseLevelUpLearnset,
- gCaterpieLevelUpLearnset,
- gMetapodLevelUpLearnset,
- gButterfreeLevelUpLearnset,
- gWeedleLevelUpLearnset,
- gKakunaLevelUpLearnset,
- gBeedrillLevelUpLearnset,
- gPidgeyLevelUpLearnset,
- gPidgeottoLevelUpLearnset,
- gPidgeotLevelUpLearnset,
- gRattataLevelUpLearnset,
- gRaticateLevelUpLearnset,
- gSpearowLevelUpLearnset,
- gFearowLevelUpLearnset,
- gEkansLevelUpLearnset,
- gArbokLevelUpLearnset,
- gPikachuLevelUpLearnset,
- gRaichuLevelUpLearnset,
- gSandshrewLevelUpLearnset,
- gSandslashLevelUpLearnset,
- gNidoranFLevelUpLearnset,
- gNidorinaLevelUpLearnset,
- gNidoqueenLevelUpLearnset,
- gNidoranMLevelUpLearnset,
- gNidorinoLevelUpLearnset,
- gNidokingLevelUpLearnset,
- gClefairyLevelUpLearnset,
- gClefableLevelUpLearnset,
- gVulpixLevelUpLearnset,
- gNinetalesLevelUpLearnset,
- gJigglypuffLevelUpLearnset,
- gWigglytuffLevelUpLearnset,
- gZubatLevelUpLearnset,
- gGolbatLevelUpLearnset,
- gOddishLevelUpLearnset,
- gGloomLevelUpLearnset,
- gVileplumeLevelUpLearnset,
- gParasLevelUpLearnset,
- gParasectLevelUpLearnset,
- gVenonatLevelUpLearnset,
- gVenomothLevelUpLearnset,
- gDiglettLevelUpLearnset,
- gDugtrioLevelUpLearnset,
- gMeowthLevelUpLearnset,
- gPersianLevelUpLearnset,
- gPsyduckLevelUpLearnset,
- gGolduckLevelUpLearnset,
- gMankeyLevelUpLearnset,
- gPrimeapeLevelUpLearnset,
- gGrowlitheLevelUpLearnset,
- gArcanineLevelUpLearnset,
- gPoliwagLevelUpLearnset,
- gPoliwhirlLevelUpLearnset,
- gPoliwrathLevelUpLearnset,
- gAbraLevelUpLearnset,
- gKadabraLevelUpLearnset,
- gAlakazamLevelUpLearnset,
- gMachopLevelUpLearnset,
- gMachokeLevelUpLearnset,
- gMachampLevelUpLearnset,
- gBellsproutLevelUpLearnset,
- gWeepinbellLevelUpLearnset,
- gVictreebelLevelUpLearnset,
- gTentacoolLevelUpLearnset,
- gTentacruelLevelUpLearnset,
- gGeodudeLevelUpLearnset,
- gGravelerLevelUpLearnset,
- gGolemLevelUpLearnset,
- gPonytaLevelUpLearnset,
- gRapidashLevelUpLearnset,
- gSlowpokeLevelUpLearnset,
- gSlowbroLevelUpLearnset,
- gMagnemiteLevelUpLearnset,
- gMagnetonLevelUpLearnset,
- gFarfetchdLevelUpLearnset,
- gDoduoLevelUpLearnset,
- gDodrioLevelUpLearnset,
- gSeelLevelUpLearnset,
- gDewgongLevelUpLearnset,
- gGrimerLevelUpLearnset,
- gMukLevelUpLearnset,
- gShellderLevelUpLearnset,
- gCloysterLevelUpLearnset,
- gGastlyLevelUpLearnset,
- gHaunterLevelUpLearnset,
- gGengarLevelUpLearnset,
- gOnixLevelUpLearnset,
- gDrowzeeLevelUpLearnset,
- gHypnoLevelUpLearnset,
- gKrabbyLevelUpLearnset,
- gKinglerLevelUpLearnset,
- gVoltorbLevelUpLearnset,
- gElectrodeLevelUpLearnset,
- gExeggcuteLevelUpLearnset,
- gExeggutorLevelUpLearnset,
- gCuboneLevelUpLearnset,
- gMarowakLevelUpLearnset,
- gHitmonleeLevelUpLearnset,
- gHitmonchanLevelUpLearnset,
- gLickitungLevelUpLearnset,
- gKoffingLevelUpLearnset,
- gWeezingLevelUpLearnset,
- gRhyhornLevelUpLearnset,
- gRhydonLevelUpLearnset,
- gChanseyLevelUpLearnset,
- gTangelaLevelUpLearnset,
- gKangaskhanLevelUpLearnset,
- gHorseaLevelUpLearnset,
- gSeadraLevelUpLearnset,
- gGoldeenLevelUpLearnset,
- gSeakingLevelUpLearnset,
- gStaryuLevelUpLearnset,
- gStarmieLevelUpLearnset,
- gMrmimeLevelUpLearnset,
- gScytherLevelUpLearnset,
- gJynxLevelUpLearnset,
- gElectabuzzLevelUpLearnset,
- gMagmarLevelUpLearnset,
- gPinsirLevelUpLearnset,
- gTaurosLevelUpLearnset,
- gMagikarpLevelUpLearnset,
- gGyaradosLevelUpLearnset,
- gLaprasLevelUpLearnset,
- gDittoLevelUpLearnset,
- gEeveeLevelUpLearnset,
- gVaporeonLevelUpLearnset,
- gJolteonLevelUpLearnset,
- gFlareonLevelUpLearnset,
- gPorygonLevelUpLearnset,
- gOmanyteLevelUpLearnset,
- gOmastarLevelUpLearnset,
- gKabutoLevelUpLearnset,
- gKabutopsLevelUpLearnset,
- gAerodactylLevelUpLearnset,
- gSnorlaxLevelUpLearnset,
- gArticunoLevelUpLearnset,
- gZapdosLevelUpLearnset,
- gMoltresLevelUpLearnset,
- gDratiniLevelUpLearnset,
- gDragonairLevelUpLearnset,
- gDragoniteLevelUpLearnset,
- gMewtwoLevelUpLearnset,
- gMewLevelUpLearnset,
- gChikoritaLevelUpLearnset,
- gBayleefLevelUpLearnset,
- gMeganiumLevelUpLearnset,
- gCyndaquilLevelUpLearnset,
- gQuilavaLevelUpLearnset,
- gTyphlosionLevelUpLearnset,
- gTotodileLevelUpLearnset,
- gCroconawLevelUpLearnset,
- gFeraligatrLevelUpLearnset,
- gSentretLevelUpLearnset,
- gFurretLevelUpLearnset,
- gHoothootLevelUpLearnset,
- gNoctowlLevelUpLearnset,
- gLedybaLevelUpLearnset,
- gLedianLevelUpLearnset,
- gSpinarakLevelUpLearnset,
- gAriadosLevelUpLearnset,
- gCrobatLevelUpLearnset,
- gChinchouLevelUpLearnset,
- gLanturnLevelUpLearnset,
- gPichuLevelUpLearnset,
- gCleffaLevelUpLearnset,
- gIgglybuffLevelUpLearnset,
- gTogepiLevelUpLearnset,
- gTogeticLevelUpLearnset,
- gNatuLevelUpLearnset,
- gXatuLevelUpLearnset,
- gMareepLevelUpLearnset,
- gFlaaffyLevelUpLearnset,
- gAmpharosLevelUpLearnset,
- gBellossomLevelUpLearnset,
- gMarillLevelUpLearnset,
- gAzumarillLevelUpLearnset,
- gSudowoodoLevelUpLearnset,
- gPolitoedLevelUpLearnset,
- gHoppipLevelUpLearnset,
- gSkiploomLevelUpLearnset,
- gJumpluffLevelUpLearnset,
- gAipomLevelUpLearnset,
- gSunkernLevelUpLearnset,
- gSunfloraLevelUpLearnset,
- gYanmaLevelUpLearnset,
- gWooperLevelUpLearnset,
- gQuagsireLevelUpLearnset,
- gEspeonLevelUpLearnset,
- gUmbreonLevelUpLearnset,
- gMurkrowLevelUpLearnset,
- gSlowkingLevelUpLearnset,
- gMisdreavusLevelUpLearnset,
- gUnownLevelUpLearnset,
- gWobbuffetLevelUpLearnset,
- gGirafarigLevelUpLearnset,
- gPinecoLevelUpLearnset,
- gForretressLevelUpLearnset,
- gDunsparceLevelUpLearnset,
- gGligarLevelUpLearnset,
- gSteelixLevelUpLearnset,
- gSnubbullLevelUpLearnset,
- gGranbullLevelUpLearnset,
- gQwilfishLevelUpLearnset,
- gScizorLevelUpLearnset,
- gShuckleLevelUpLearnset,
- gHeracrossLevelUpLearnset,
- gSneaselLevelUpLearnset,
- gTeddiursaLevelUpLearnset,
- gUrsaringLevelUpLearnset,
- gSlugmaLevelUpLearnset,
- gMagcargoLevelUpLearnset,
- gSwinubLevelUpLearnset,
- gPiloswineLevelUpLearnset,
- gCorsolaLevelUpLearnset,
- gRemoraidLevelUpLearnset,
- gOctilleryLevelUpLearnset,
- gDelibirdLevelUpLearnset,
- gMantineLevelUpLearnset,
- gSkarmoryLevelUpLearnset,
- gHoundourLevelUpLearnset,
- gHoundoomLevelUpLearnset,
- gKingdraLevelUpLearnset,
- gPhanpyLevelUpLearnset,
- gDonphanLevelUpLearnset,
- gPorygon2LevelUpLearnset,
- gStantlerLevelUpLearnset,
- gSmeargleLevelUpLearnset,
- gTyrogueLevelUpLearnset,
- gHitmontopLevelUpLearnset,
- gSmoochumLevelUpLearnset,
- gElekidLevelUpLearnset,
- gMagbyLevelUpLearnset,
- gMiltankLevelUpLearnset,
- gBlisseyLevelUpLearnset,
- gRaikouLevelUpLearnset,
- gEnteiLevelUpLearnset,
- gSuicuneLevelUpLearnset,
- gLarvitarLevelUpLearnset,
- gPupitarLevelUpLearnset,
- gTyranitarLevelUpLearnset,
- gLugiaLevelUpLearnset,
- gHoOhLevelUpLearnset,
- gCelebiLevelUpLearnset,
- gSpecies252LevelUpLearnset,
- gSpecies253LevelUpLearnset,
- gSpecies254LevelUpLearnset,
- gSpecies255LevelUpLearnset,
- gSpecies256LevelUpLearnset,
- gSpecies257LevelUpLearnset,
- gSpecies258LevelUpLearnset,
- gSpecies259LevelUpLearnset,
- gSpecies260LevelUpLearnset,
- gSpecies261LevelUpLearnset,
- gSpecies262LevelUpLearnset,
- gSpecies263LevelUpLearnset,
- gSpecies264LevelUpLearnset,
- gSpecies265LevelUpLearnset,
- gSpecies266LevelUpLearnset,
- gSpecies267LevelUpLearnset,
- gSpecies268LevelUpLearnset,
- gSpecies269LevelUpLearnset,
- gSpecies270LevelUpLearnset,
- gSpecies271LevelUpLearnset,
- gSpecies272LevelUpLearnset,
- gSpecies273LevelUpLearnset,
- gSpecies274LevelUpLearnset,
- gSpecies275LevelUpLearnset,
- gSpecies276LevelUpLearnset,
- gTreeckoLevelUpLearnset,
- gGrovyleLevelUpLearnset,
- gSceptileLevelUpLearnset,
- gTorchicLevelUpLearnset,
- gCombuskenLevelUpLearnset,
- gBlazikenLevelUpLearnset,
- gMudkipLevelUpLearnset,
- gMarshtompLevelUpLearnset,
- gSwampertLevelUpLearnset,
- gPoochyenaLevelUpLearnset,
- gMightyenaLevelUpLearnset,
- gZigzagoonLevelUpLearnset,
- gLinooneLevelUpLearnset,
- gWurmpleLevelUpLearnset,
- gSilcoonLevelUpLearnset,
- gBeautiflyLevelUpLearnset,
- gCascoonLevelUpLearnset,
- gDustoxLevelUpLearnset,
- gLotadLevelUpLearnset,
- gLombreLevelUpLearnset,
- gLudicoloLevelUpLearnset,
- gSeedotLevelUpLearnset,
- gNuzleafLevelUpLearnset,
- gShiftryLevelUpLearnset,
- gNincadaLevelUpLearnset,
- gNinjaskLevelUpLearnset,
- gShedinjaLevelUpLearnset,
- gTaillowLevelUpLearnset,
- gSwellowLevelUpLearnset,
- gShroomishLevelUpLearnset,
- gBreloomLevelUpLearnset,
- gSpindaLevelUpLearnset,
- gWingullLevelUpLearnset,
- gPelipperLevelUpLearnset,
- gSurskitLevelUpLearnset,
- gMasquerainLevelUpLearnset,
- gWailmerLevelUpLearnset,
- gWailordLevelUpLearnset,
- gSkittyLevelUpLearnset,
- gDelcattyLevelUpLearnset,
- gKecleonLevelUpLearnset,
- gBaltoyLevelUpLearnset,
- gClaydolLevelUpLearnset,
- gNosepassLevelUpLearnset,
- gTorkoalLevelUpLearnset,
- gSableyeLevelUpLearnset,
- gBarboachLevelUpLearnset,
- gWhiscashLevelUpLearnset,
- gLuvdiscLevelUpLearnset,
- gCorphishLevelUpLearnset,
- gCrawdauntLevelUpLearnset,
- gFeebasLevelUpLearnset,
- gMiloticLevelUpLearnset,
- gCarvanhaLevelUpLearnset,
- gSharpedoLevelUpLearnset,
- gTrapinchLevelUpLearnset,
- gVibravaLevelUpLearnset,
- gFlygonLevelUpLearnset,
- gMakuhitaLevelUpLearnset,
- gHariyamaLevelUpLearnset,
- gElectrikeLevelUpLearnset,
- gManectricLevelUpLearnset,
- gNumelLevelUpLearnset,
- gCameruptLevelUpLearnset,
- gSphealLevelUpLearnset,
- gSealeoLevelUpLearnset,
- gWalreinLevelUpLearnset,
- gCacneaLevelUpLearnset,
- gCacturneLevelUpLearnset,
- gSnoruntLevelUpLearnset,
- gGlalieLevelUpLearnset,
- gLunatoneLevelUpLearnset,
- gSolrockLevelUpLearnset,
- gAzurillLevelUpLearnset,
- gSpoinkLevelUpLearnset,
- gGrumpigLevelUpLearnset,
- gPlusleLevelUpLearnset,
- gMinunLevelUpLearnset,
- gMawileLevelUpLearnset,
- gMedititeLevelUpLearnset,
- gMedichamLevelUpLearnset,
- gSwabluLevelUpLearnset,
- gAltariaLevelUpLearnset,
- gWynautLevelUpLearnset,
- gDuskullLevelUpLearnset,
- gDusclopsLevelUpLearnset,
- gRoseliaLevelUpLearnset,
- gSlakothLevelUpLearnset,
- gVigorothLevelUpLearnset,
- gSlakingLevelUpLearnset,
- gGulpinLevelUpLearnset,
- gSwalotLevelUpLearnset,
- gTropiusLevelUpLearnset,
- gWhismurLevelUpLearnset,
- gLoudredLevelUpLearnset,
- gExploudLevelUpLearnset,
- gClamperlLevelUpLearnset,
- gHuntailLevelUpLearnset,
- gGorebyssLevelUpLearnset,
- gAbsolLevelUpLearnset,
- gShuppetLevelUpLearnset,
- gBanetteLevelUpLearnset,
- gSeviperLevelUpLearnset,
- gZangooseLevelUpLearnset,
- gRelicanthLevelUpLearnset,
- gAronLevelUpLearnset,
- gLaironLevelUpLearnset,
- gAggronLevelUpLearnset,
- gCastformLevelUpLearnset,
- gVolbeatLevelUpLearnset,
- gIllumiseLevelUpLearnset,
- gLileepLevelUpLearnset,
- gCradilyLevelUpLearnset,
- gAnorithLevelUpLearnset,
- gArmaldoLevelUpLearnset,
- gRaltsLevelUpLearnset,
- gKirliaLevelUpLearnset,
- gGardevoirLevelUpLearnset,
- gBagonLevelUpLearnset,
- gShelgonLevelUpLearnset,
- gSalamenceLevelUpLearnset,
- gBeldumLevelUpLearnset,
- gMetangLevelUpLearnset,
- gMetagrossLevelUpLearnset,
- gRegirockLevelUpLearnset,
- gRegiceLevelUpLearnset,
- gRegisteelLevelUpLearnset,
- gKyogreLevelUpLearnset,
- gGroudonLevelUpLearnset,
- gRayquazaLevelUpLearnset,
- gLatiasLevelUpLearnset,
- gLatiosLevelUpLearnset,
- gJirachiLevelUpLearnset,
- gDeoxysLevelUpLearnset,
- gChimechoLevelUpLearnset
-};
-
-#endif //POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h
deleted file mode 100644
index 5b79f4bc0..000000000
--- a/include/data/pokemon/level_up_learnsets.h
+++ /dev/null
@@ -1,5627 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_LEVEL_UP_LEARNSETS_H
-#define POKERUBY_LEVEL_UP_LEARNSETS_H
-
-#define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move)
-#define LEVEL_UP_END 0xffff
-
-const u16 gBulbasaurLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 4, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
- LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(25, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(32, MOVE_GROWTH),
- LEVEL_UP_MOVE(39, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gIvysaurLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE( 4, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
- LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(38, MOVE_GROWTH),
- LEVEL_UP_MOVE(47, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gVenusaurLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
- LEVEL_UP_MOVE( 4, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
- LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(41, MOVE_GROWTH),
- LEVEL_UP_MOVE(53, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gCharmanderLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_EMBER),
- LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(19, MOVE_RAGE),
- LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(31, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(37, MOVE_SLASH),
- LEVEL_UP_MOVE(43, MOVE_DRAGON_RAGE),
- LEVEL_UP_MOVE(49, MOVE_FIRE_SPIN),
- LEVEL_UP_END
-};
-
-const u16 gCharmeleonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 7, MOVE_EMBER),
- LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(20, MOVE_RAGE),
- LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(41, MOVE_SLASH),
- LEVEL_UP_MOVE(48, MOVE_DRAGON_RAGE),
- LEVEL_UP_MOVE(55, MOVE_FIRE_SPIN),
- LEVEL_UP_END
-};
-
-const u16 gCharizardLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE( 7, MOVE_EMBER),
- LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(20, MOVE_RAGE),
- LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(36, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(44, MOVE_SLASH),
- LEVEL_UP_MOVE(54, MOVE_DRAGON_RAGE),
- LEVEL_UP_MOVE(64, MOVE_FIRE_SPIN),
- LEVEL_UP_END
-};
-
-const u16 gSquirtleLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
- LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
- LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(18, MOVE_BITE),
- LEVEL_UP_MOVE(23, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE(28, MOVE_PROTECT),
- LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(40, MOVE_SKULL_BASH),
- LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gWartortleLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
- LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
- LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(19, MOVE_BITE),
- LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE(31, MOVE_PROTECT),
- LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(45, MOVE_SKULL_BASH),
- LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gBlastoiseLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
- LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
- LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
- LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(19, MOVE_BITE),
- LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE(31, MOVE_PROTECT),
- LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(55, MOVE_SKULL_BASH),
- LEVEL_UP_MOVE(68, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gCaterpieLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
- LEVEL_UP_END
-};
-
-const u16 gMetapodLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_END
-};
-
-const u16 gButterfreeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE(10, MOVE_CONFUSION),
- LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(18, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(23, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(28, MOVE_GUST),
- LEVEL_UP_MOVE(34, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(40, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(47, MOVE_SILVER_WIND),
- LEVEL_UP_END
-};
-
-const u16 gWeedleLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
- LEVEL_UP_END
-};
-
-const u16 gKakunaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_END
-};
-
-const u16 gBeedrillLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(20, MOVE_TWINEEDLE),
- LEVEL_UP_MOVE(25, MOVE_RAGE),
- LEVEL_UP_MOVE(30, MOVE_PURSUIT),
- LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE),
- LEVEL_UP_MOVE(40, MOVE_AGILITY),
- LEVEL_UP_MOVE(45, MOVE_ENDEAVOR),
- LEVEL_UP_END
-};
-
-const u16 gPidgeyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 9, MOVE_GUST),
- LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(19, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(25, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(31, MOVE_FEATHER_DANCE),
- LEVEL_UP_MOVE(39, MOVE_AGILITY),
- LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE),
- LEVEL_UP_END
-};
-
-const u16 gPidgeottoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_GUST),
- LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 9, MOVE_GUST),
- LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(20, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(27, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE),
- LEVEL_UP_MOVE(43, MOVE_AGILITY),
- LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE),
- LEVEL_UP_END
-};
-
-const u16 gPidgeotLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_GUST),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 9, MOVE_GUST),
- LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(20, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(27, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE),
- LEVEL_UP_MOVE(48, MOVE_AGILITY),
- LEVEL_UP_MOVE(62, MOVE_MIRROR_MOVE),
- LEVEL_UP_END
-};
-
-const u16 gRattataLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_HYPER_FANG),
- LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(27, MOVE_PURSUIT),
- LEVEL_UP_MOVE(34, MOVE_SUPER_FANG),
- LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
- LEVEL_UP_END
-};
-
-const u16 gRaticateLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_HYPER_FANG),
- LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(30, MOVE_PURSUIT),
- LEVEL_UP_MOVE(40, MOVE_SUPER_FANG),
- LEVEL_UP_MOVE(50, MOVE_ENDEAVOR),
- LEVEL_UP_END
-};
-
-const u16 gSpearowLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_LEER),
- LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(19, MOVE_PURSUIT),
- LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE),
- LEVEL_UP_MOVE(31, MOVE_MIRROR_MOVE),
- LEVEL_UP_MOVE(37, MOVE_DRILL_PECK),
- LEVEL_UP_MOVE(43, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gFearowLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE( 7, MOVE_LEER),
- LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(26, MOVE_PURSUIT),
- LEVEL_UP_MOVE(32, MOVE_MIRROR_MOVE),
- LEVEL_UP_MOVE(40, MOVE_DRILL_PECK),
- LEVEL_UP_MOVE(47, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gEkansLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
- LEVEL_UP_MOVE(13, MOVE_BITE),
- LEVEL_UP_MOVE(20, MOVE_GLARE),
- LEVEL_UP_MOVE(25, MOVE_SCREECH),
- LEVEL_UP_MOVE(32, MOVE_ACID),
- LEVEL_UP_MOVE(37, MOVE_STOCKPILE),
- LEVEL_UP_MOVE(37, MOVE_SWALLOW),
- LEVEL_UP_MOVE(37, MOVE_SPIT_UP),
- LEVEL_UP_MOVE(44, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gArbokLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
- LEVEL_UP_MOVE(13, MOVE_BITE),
- LEVEL_UP_MOVE(20, MOVE_GLARE),
- LEVEL_UP_MOVE(28, MOVE_SCREECH),
- LEVEL_UP_MOVE(38, MOVE_ACID),
- LEVEL_UP_MOVE(46, MOVE_STOCKPILE),
- LEVEL_UP_MOVE(46, MOVE_SWALLOW),
- LEVEL_UP_MOVE(46, MOVE_SPIT_UP),
- LEVEL_UP_MOVE(56, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gPikachuLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(20, MOVE_SLAM),
- LEVEL_UP_MOVE(26, MOVE_THUNDERBOLT),
- LEVEL_UP_MOVE(33, MOVE_AGILITY),
- LEVEL_UP_MOVE(41, MOVE_THUNDER),
- LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN),
- LEVEL_UP_END
-};
-
-const u16 gRaichuLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
- LEVEL_UP_END
-};
-
-const u16 gSandshrewLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_POISON_STING),
- LEVEL_UP_MOVE(23, MOVE_SLASH),
- LEVEL_UP_MOVE(30, MOVE_SWIFT),
- LEVEL_UP_MOVE(37, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(45, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
- LEVEL_UP_END
-};
-
-const u16 gSandslashLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_POISON_STING),
- LEVEL_UP_MOVE(24, MOVE_SLASH),
- LEVEL_UP_MOVE(33, MOVE_SWIFT),
- LEVEL_UP_MOVE(42, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(52, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE(62, MOVE_SANDSTORM),
- LEVEL_UP_END
-};
-
-const u16 gNidoranFLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE(17, MOVE_POISON_STING),
- LEVEL_UP_MOVE(20, MOVE_BITE),
- LEVEL_UP_MOVE(23, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(38, MOVE_FLATTER),
- LEVEL_UP_MOVE(47, MOVE_CRUNCH),
- LEVEL_UP_END
-};
-
-const u16 gNidorinaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE(18, MOVE_POISON_STING),
- LEVEL_UP_MOVE(22, MOVE_BITE),
- LEVEL_UP_MOVE(26, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(43, MOVE_FLATTER),
- LEVEL_UP_MOVE(53, MOVE_CRUNCH),
- LEVEL_UP_END
-};
-
-const u16 gNidoqueenLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE(23, MOVE_BODY_SLAM),
- LEVEL_UP_END
-};
-
-const u16 gNidoranMLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE(17, MOVE_POISON_STING),
- LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE(23, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(38, MOVE_FLATTER),
- LEVEL_UP_MOVE(47, MOVE_HORN_DRILL),
- LEVEL_UP_END
-};
-
-const u16 gNidorinoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE(18, MOVE_POISON_STING),
- LEVEL_UP_MOVE(22, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE(26, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(34, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(43, MOVE_FLATTER),
- LEVEL_UP_MOVE(53, MOVE_HORN_DRILL),
- LEVEL_UP_END
-};
-
-const u16 gNidokingLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE(23, MOVE_THRASH),
- LEVEL_UP_END
-};
-
-const u16 gClefairyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 5, MOVE_ENCORE),
- LEVEL_UP_MOVE( 9, MOVE_SING),
- LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(17, MOVE_FOLLOW_ME),
- LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
- LEVEL_UP_MOVE(25, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(29, MOVE_METRONOME),
- LEVEL_UP_MOVE(33, MOVE_COSMIC_POWER),
- LEVEL_UP_MOVE(37, MOVE_MOONLIGHT),
- LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(45, MOVE_METEOR_MASH),
- LEVEL_UP_END
-};
-
-const u16 gClefableLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SING),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
- LEVEL_UP_MOVE( 1, MOVE_METRONOME),
- LEVEL_UP_END
-};
-
-const u16 gVulpixLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 9, MOVE_ROAR),
- LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_WILL_O_WISP),
- LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(25, MOVE_IMPRISON),
- LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(33, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(37, MOVE_GRUDGE),
- LEVEL_UP_MOVE(41, MOVE_FIRE_SPIN),
- LEVEL_UP_END
-};
-
-const u16 gNinetalesLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN),
- LEVEL_UP_END
-};
-
-const u16 gJigglypuffLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SING),
- LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 9, MOVE_POUND),
- LEVEL_UP_MOVE(14, MOVE_DISABLE),
- LEVEL_UP_MOVE(19, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(24, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(29, MOVE_REST),
- LEVEL_UP_MOVE(34, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(39, MOVE_MIMIC),
- LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE),
- LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gWigglytuffLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SING),
- LEVEL_UP_MOVE( 1, MOVE_DISABLE),
- LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
- LEVEL_UP_END
-};
-
-const u16 gZubatLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(11, MOVE_ASTONISH),
- LEVEL_UP_MOVE(16, MOVE_BITE),
- LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(31, MOVE_AIR_CUTTER),
- LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(41, MOVE_POISON_FANG),
- LEVEL_UP_MOVE(46, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gGolbatLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCREECH),
- LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(11, MOVE_ASTONISH),
- LEVEL_UP_MOVE(16, MOVE_BITE),
- LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER),
- LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(49, MOVE_POISON_FANG),
- LEVEL_UP_MOVE(56, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gOddishLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(16, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(23, MOVE_ACID),
- LEVEL_UP_MOVE(32, MOVE_MOONLIGHT),
- LEVEL_UP_MOVE(39, MOVE_PETAL_DANCE),
- LEVEL_UP_END
-};
-
-const u16 gGloomLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(16, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(24, MOVE_ACID),
- LEVEL_UP_MOVE(35, MOVE_MOONLIGHT),
- LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
- LEVEL_UP_END
-};
-
-const u16 gVileplumeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
- LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
- LEVEL_UP_END
-};
-
-const u16 gParasLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE(25, MOVE_SPORE),
- LEVEL_UP_MOVE(31, MOVE_SLASH),
- LEVEL_UP_MOVE(37, MOVE_GROWTH),
- LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN),
- LEVEL_UP_MOVE(49, MOVE_AROMATHERAPY),
- LEVEL_UP_END
-};
-
-const u16 gParasectLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE(27, MOVE_SPORE),
- LEVEL_UP_MOVE(35, MOVE_SLASH),
- LEVEL_UP_MOVE(43, MOVE_GROWTH),
- LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN),
- LEVEL_UP_MOVE(59, MOVE_AROMATHERAPY),
- LEVEL_UP_END
-};
-
-const u16 gVenonatLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_DISABLE),
- LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
- LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(17, MOVE_CONFUSION),
- LEVEL_UP_MOVE(20, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE(28, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(33, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gVenomothLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_DISABLE),
- LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(17, MOVE_CONFUSION),
- LEVEL_UP_MOVE(20, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE(28, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(31, MOVE_GUST),
- LEVEL_UP_MOVE(36, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(42, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(52, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gDiglettLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 5, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(17, MOVE_DIG),
- LEVEL_UP_MOVE(25, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(33, MOVE_SLASH),
- LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(49, MOVE_FISSURE),
- LEVEL_UP_END
-};
-
-const u16 gDugtrioLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 5, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(17, MOVE_DIG),
- LEVEL_UP_MOVE(25, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(26, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE(38, MOVE_SLASH),
- LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(64, MOVE_FISSURE),
- LEVEL_UP_END
-};
-
-const u16 gMeowthLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE(11, MOVE_BITE),
- LEVEL_UP_MOVE(20, MOVE_PAY_DAY),
- LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(35, MOVE_SCREECH),
- LEVEL_UP_MOVE(41, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(46, MOVE_SLASH),
- LEVEL_UP_MOVE(50, MOVE_FAKE_OUT),
- LEVEL_UP_END
-};
-
-const u16 gPersianLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE(11, MOVE_BITE),
- LEVEL_UP_MOVE(20, MOVE_PAY_DAY),
- LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(38, MOVE_SCREECH),
- LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(53, MOVE_SLASH),
- LEVEL_UP_MOVE(59, MOVE_FAKE_OUT),
- LEVEL_UP_END
-};
-
-const u16 gPsyduckLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_DISABLE),
- LEVEL_UP_MOVE(16, MOVE_CONFUSION),
- LEVEL_UP_MOVE(23, MOVE_SCREECH),
- LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(40, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gGolduckLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_DISABLE),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_DISABLE),
- LEVEL_UP_MOVE(16, MOVE_CONFUSION),
- LEVEL_UP_MOVE(23, MOVE_SCREECH),
- LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(44, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gMankeyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 9, MOVE_LOW_KICK),
- LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP),
- LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(33, MOVE_SEISMIC_TOSS),
- LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP),
- LEVEL_UP_MOVE(45, MOVE_SCREECH),
- LEVEL_UP_MOVE(51, MOVE_THRASH),
- LEVEL_UP_END
-};
-
-const u16 gPrimeapeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
- LEVEL_UP_MOVE( 1, MOVE_RAGE),
- LEVEL_UP_MOVE( 9, MOVE_LOW_KICK),
- LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP),
- LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(28, MOVE_RAGE),
- LEVEL_UP_MOVE(36, MOVE_SEISMIC_TOSS),
- LEVEL_UP_MOVE(45, MOVE_CROSS_CHOP),
- LEVEL_UP_MOVE(54, MOVE_SCREECH),
- LEVEL_UP_MOVE(63, MOVE_THRASH),
- LEVEL_UP_END
-};
-
-const u16 gGrowlitheLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_ROAR),
- LEVEL_UP_MOVE( 7, MOVE_EMBER),
- LEVEL_UP_MOVE(13, MOVE_LEER),
- LEVEL_UP_MOVE(19, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
- LEVEL_UP_MOVE(37, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(43, MOVE_AGILITY),
- LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
- LEVEL_UP_END
-};
-
-const u16 gArcanineLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_ROAR),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(49, MOVE_EXTREME_SPEED),
- LEVEL_UP_END
-};
-
-const u16 gPoliwagLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM),
- LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gPoliwhirlLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(35, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM),
- LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gPoliwrathLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE( 1, MOVE_SUBMISSION),
- LEVEL_UP_MOVE(35, MOVE_SUBMISSION),
- LEVEL_UP_MOVE(51, MOVE_MIND_READER),
- LEVEL_UP_END
-};
-
-const u16 gAbraLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
- LEVEL_UP_END
-};
-
-const u16 gKadabraLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
- LEVEL_UP_MOVE( 1, MOVE_KINESIS),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE(16, MOVE_CONFUSION),
- LEVEL_UP_MOVE(18, MOVE_DISABLE),
- LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(23, MOVE_REFLECT),
- LEVEL_UP_MOVE(25, MOVE_RECOVER),
- LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY),
- LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(43, MOVE_TRICK),
- LEVEL_UP_END
-};
-
-const u16 gAlakazamLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
- LEVEL_UP_MOVE( 1, MOVE_KINESIS),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE(16, MOVE_CONFUSION),
- LEVEL_UP_MOVE(18, MOVE_DISABLE),
- LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(23, MOVE_REFLECT),
- LEVEL_UP_MOVE(25, MOVE_RECOVER),
- LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(33, MOVE_CALM_MIND),
- LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(43, MOVE_TRICK),
- LEVEL_UP_END
-};
-
-const u16 gMachopLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
- LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
- LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(25, MOVE_REVENGE),
- LEVEL_UP_MOVE(31, MOVE_VITAL_THROW),
- LEVEL_UP_MOVE(37, MOVE_SUBMISSION),
- LEVEL_UP_MOVE(40, MOVE_CROSS_CHOP),
- LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(49, MOVE_DYNAMIC_PUNCH),
- LEVEL_UP_END
-};
-
-const u16 gMachokeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
- LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
- LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(25, MOVE_REVENGE),
- LEVEL_UP_MOVE(33, MOVE_VITAL_THROW),
- LEVEL_UP_MOVE(41, MOVE_SUBMISSION),
- LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP),
- LEVEL_UP_MOVE(51, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH),
- LEVEL_UP_END
-};
-
-const u16 gMachampLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
- LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
- LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(25, MOVE_REVENGE),
- LEVEL_UP_MOVE(33, MOVE_VITAL_THROW),
- LEVEL_UP_MOVE(41, MOVE_SUBMISSION),
- LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP),
- LEVEL_UP_MOVE(51, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH),
- LEVEL_UP_END
-};
-
-const u16 gBellsproutLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
- LEVEL_UP_MOVE( 6, MOVE_GROWTH),
- LEVEL_UP_MOVE(11, MOVE_WRAP),
- LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(17, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(19, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(23, MOVE_ACID),
- LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(37, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(45, MOVE_SLAM),
- LEVEL_UP_END
-};
-
-const u16 gWeepinbellLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_GROWTH),
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 6, MOVE_GROWTH),
- LEVEL_UP_MOVE(11, MOVE_WRAP),
- LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(17, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(19, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(24, MOVE_ACID),
- LEVEL_UP_MOVE(33, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(42, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(54, MOVE_SLAM),
- LEVEL_UP_END
-};
-
-const u16 gVictreebelLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
- LEVEL_UP_END
-};
-
-const u16 gTentacoolLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(12, MOVE_CONSTRICT),
- LEVEL_UP_MOVE(19, MOVE_ACID),
- LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(30, MOVE_WRAP),
- LEVEL_UP_MOVE(36, MOVE_BARRIER),
- LEVEL_UP_MOVE(43, MOVE_SCREECH),
- LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gTentacruelLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
- LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(12, MOVE_CONSTRICT),
- LEVEL_UP_MOVE(19, MOVE_ACID),
- LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(30, MOVE_WRAP),
- LEVEL_UP_MOVE(38, MOVE_BARRIER),
- LEVEL_UP_MOVE(47, MOVE_SCREECH),
- LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gGeodudeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(26, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST),
- LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(41, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gGravelerLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(29, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST),
- LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gGolemLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(29, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST),
- LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gPonytaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 5, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(14, MOVE_EMBER),
- LEVEL_UP_MOVE(19, MOVE_STOMP),
- LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
- LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(38, MOVE_AGILITY),
- LEVEL_UP_MOVE(45, MOVE_BOUNCE),
- LEVEL_UP_MOVE(53, MOVE_FIRE_BLAST),
- LEVEL_UP_END
-};
-
-const u16 gRapidashLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 5, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(14, MOVE_EMBER),
- LEVEL_UP_MOVE(19, MOVE_STOMP),
- LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
- LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(38, MOVE_AGILITY),
- LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(50, MOVE_BOUNCE),
- LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST),
- LEVEL_UP_END
-};
-
-const u16 gSlowpokeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CURSE),
- LEVEL_UP_MOVE( 1, MOVE_YAWN),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 6, MOVE_GROWL),
- LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(20, MOVE_CONFUSION),
- LEVEL_UP_MOVE(29, MOVE_DISABLE),
- LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(43, MOVE_AMNESIA),
- LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gSlowbroLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CURSE),
- LEVEL_UP_MOVE( 1, MOVE_YAWN),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 6, MOVE_GROWL),
- LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(20, MOVE_CONFUSION),
- LEVEL_UP_MOVE(29, MOVE_DISABLE),
- LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(37, MOVE_WITHDRAW),
- LEVEL_UP_MOVE(46, MOVE_AMNESIA),
- LEVEL_UP_MOVE(54, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gMagnemiteLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE(11, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM),
- LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(26, MOVE_SPARK),
- LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
- LEVEL_UP_MOVE(38, MOVE_SWIFT),
- LEVEL_UP_MOVE(44, MOVE_SCREECH),
- LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
- LEVEL_UP_END
-};
-
-const u16 gMagnetonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE(11, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM),
- LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(26, MOVE_SPARK),
- LEVEL_UP_MOVE(35, MOVE_LOCK_ON),
- LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK),
- LEVEL_UP_MOVE(53, MOVE_SCREECH),
- LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON),
- LEVEL_UP_END
-};
-
-const u16 gFarfetchdLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(11, MOVE_LEER),
- LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE(26, MOVE_FURY_CUTTER),
- LEVEL_UP_MOVE(31, MOVE_SWORDS_DANCE),
- LEVEL_UP_MOVE(36, MOVE_AGILITY),
- LEVEL_UP_MOVE(41, MOVE_SLASH),
- LEVEL_UP_MOVE(46, MOVE_FALSE_SWIPE),
- LEVEL_UP_END
-};
-
-const u16 gDoduoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
- LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK),
- LEVEL_UP_MOVE(25, MOVE_RAGE),
- LEVEL_UP_MOVE(33, MOVE_UPROAR),
- LEVEL_UP_MOVE(37, MOVE_DRILL_PECK),
- LEVEL_UP_MOVE(45, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gDodrioLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
- LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
- LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK),
- LEVEL_UP_MOVE(25, MOVE_RAGE),
- LEVEL_UP_MOVE(38, MOVE_UPROAR),
- LEVEL_UP_MOVE(47, MOVE_DRILL_PECK),
- LEVEL_UP_MOVE(60, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gSeelLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
- LEVEL_UP_MOVE( 9, MOVE_GROWL),
- LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
- LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(29, MOVE_REST),
- LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(41, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(49, MOVE_SAFEGUARD),
- LEVEL_UP_END
-};
-
-const u16 gDewgongLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
- LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE( 9, MOVE_GROWL),
- LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
- LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(29, MOVE_REST),
- LEVEL_UP_MOVE(34, MOVE_SHEER_COLD),
- LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(51, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(64, MOVE_SAFEGUARD),
- LEVEL_UP_END
-};
-
-const u16 gGrimerLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 4, MOVE_HARDEN),
- LEVEL_UP_MOVE( 8, MOVE_DISABLE),
- LEVEL_UP_MOVE(13, MOVE_SLUDGE),
- LEVEL_UP_MOVE(19, MOVE_MINIMIZE),
- LEVEL_UP_MOVE(26, MOVE_SCREECH),
- LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR),
- LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB),
- LEVEL_UP_MOVE(53, MOVE_MEMENTO),
- LEVEL_UP_END
-};
-
-const u16 gMukLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 4, MOVE_HARDEN),
- LEVEL_UP_MOVE( 8, MOVE_DISABLE),
- LEVEL_UP_MOVE(13, MOVE_SLUDGE),
- LEVEL_UP_MOVE(19, MOVE_MINIMIZE),
- LEVEL_UP_MOVE(26, MOVE_SCREECH),
- LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR),
- LEVEL_UP_MOVE(47, MOVE_SLUDGE_BOMB),
- LEVEL_UP_MOVE(61, MOVE_MEMENTO),
- LEVEL_UP_END
-};
-
-const u16 gShellderLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
- LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(25, MOVE_PROTECT),
- LEVEL_UP_MOVE(33, MOVE_LEER),
- LEVEL_UP_MOVE(41, MOVE_CLAMP),
- LEVEL_UP_MOVE(49, MOVE_ICE_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gCloysterLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE( 1, MOVE_PROTECT),
- LEVEL_UP_MOVE(33, MOVE_SPIKES),
- LEVEL_UP_MOVE(41, MOVE_SPIKE_CANNON),
- LEVEL_UP_END
-};
-
-const u16 gGastlyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 1, MOVE_LICK),
- LEVEL_UP_MOVE( 8, MOVE_SPITE),
- LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(16, MOVE_CURSE),
- LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(33, MOVE_DREAM_EATER),
- LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND),
- LEVEL_UP_END
-};
-
-const u16 gHaunterLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 1, MOVE_LICK),
- LEVEL_UP_MOVE( 1, MOVE_SPITE),
- LEVEL_UP_MOVE( 8, MOVE_SPITE),
- LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(16, MOVE_CURSE),
- LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH),
- LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
- LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
- LEVEL_UP_END
-};
-
-const u16 gGengarLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 1, MOVE_LICK),
- LEVEL_UP_MOVE( 1, MOVE_SPITE),
- LEVEL_UP_MOVE( 8, MOVE_SPITE),
- LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(16, MOVE_CURSE),
- LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH),
- LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
- LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
- LEVEL_UP_END
-};
-
-const u16 gOnixLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SCREECH),
- LEVEL_UP_MOVE( 9, MOVE_BIND),
- LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(21, MOVE_HARDEN),
- LEVEL_UP_MOVE(25, MOVE_RAGE),
- LEVEL_UP_MOVE(33, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(37, MOVE_SLAM),
- LEVEL_UP_MOVE(45, MOVE_IRON_TAIL),
- LEVEL_UP_MOVE(49, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gDrowzeeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(10, MOVE_DISABLE),
- LEVEL_UP_MOVE(18, MOVE_CONFUSION),
- LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(31, MOVE_POISON_GAS),
- LEVEL_UP_MOVE(36, MOVE_MEDITATE),
- LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(43, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT),
- LEVEL_UP_END
-};
-
-const u16 gHypnoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 1, MOVE_DISABLE),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE(10, MOVE_DISABLE),
- LEVEL_UP_MOVE(18, MOVE_CONFUSION),
- LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(33, MOVE_POISON_GAS),
- LEVEL_UP_MOVE(40, MOVE_MEDITATE),
- LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(55, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT),
- LEVEL_UP_END
-};
-
-const u16 gKrabbyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 5, MOVE_LEER),
- LEVEL_UP_MOVE(12, MOVE_VICE_GRIP),
- LEVEL_UP_MOVE(16, MOVE_HARDEN),
- LEVEL_UP_MOVE(23, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(27, MOVE_STOMP),
- LEVEL_UP_MOVE(34, MOVE_GUILLOTINE),
- LEVEL_UP_MOVE(41, MOVE_PROTECT),
- LEVEL_UP_MOVE(45, MOVE_CRABHAMMER),
- LEVEL_UP_END
-};
-
-const u16 gKinglerLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
- LEVEL_UP_MOVE( 5, MOVE_LEER),
- LEVEL_UP_MOVE(12, MOVE_VICE_GRIP),
- LEVEL_UP_MOVE(16, MOVE_HARDEN),
- LEVEL_UP_MOVE(23, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(27, MOVE_STOMP),
- LEVEL_UP_MOVE(38, MOVE_GUILLOTINE),
- LEVEL_UP_MOVE(49, MOVE_PROTECT),
- LEVEL_UP_MOVE(57, MOVE_CRABHAMMER),
- LEVEL_UP_END
-};
-
-const u16 gVoltorbLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CHARGE),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 8, MOVE_SCREECH),
- LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM),
- LEVEL_UP_MOVE(21, MOVE_SPARK),
- LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(32, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(42, MOVE_SWIFT),
- LEVEL_UP_MOVE(46, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(49, MOVE_MIRROR_COAT),
- LEVEL_UP_END
-};
-
-const u16 gElectrodeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CHARGE),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SCREECH),
- LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
- LEVEL_UP_MOVE( 8, MOVE_SCREECH),
- LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM),
- LEVEL_UP_MOVE(21, MOVE_SPARK),
- LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(34, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(48, MOVE_SWIFT),
- LEVEL_UP_MOVE(54, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(59, MOVE_MIRROR_COAT),
- LEVEL_UP_END
-};
-
-const u16 gExeggcuteLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
- LEVEL_UP_MOVE( 1, MOVE_UPROAR),
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 7, MOVE_REFLECT),
- LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(19, MOVE_CONFUSION),
- LEVEL_UP_MOVE(25, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(31, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(37, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gExeggutorLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE(19, MOVE_STOMP),
- LEVEL_UP_MOVE(31, MOVE_EGG_BOMB),
- LEVEL_UP_END
-};
-
-const u16 gCuboneLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB),
- LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(17, MOVE_LEER),
- LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(25, MOVE_BONEMERANG),
- LEVEL_UP_MOVE(29, MOVE_RAGE),
- LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE),
- LEVEL_UP_MOVE(37, MOVE_THRASH),
- LEVEL_UP_MOVE(41, MOVE_BONE_RUSH),
- LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gMarowakLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB),
- LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB),
- LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(17, MOVE_LEER),
- LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(25, MOVE_BONEMERANG),
- LEVEL_UP_MOVE(32, MOVE_RAGE),
- LEVEL_UP_MOVE(39, MOVE_FALSE_SWIPE),
- LEVEL_UP_MOVE(46, MOVE_THRASH),
- LEVEL_UP_MOVE(53, MOVE_BONE_RUSH),
- LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gHitmonleeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_REVENGE),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE( 6, MOVE_MEDITATE),
- LEVEL_UP_MOVE(11, MOVE_ROLLING_KICK),
- LEVEL_UP_MOVE(16, MOVE_JUMP_KICK),
- LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
- LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(26, MOVE_HI_JUMP_KICK),
- LEVEL_UP_MOVE(31, MOVE_MIND_READER),
- LEVEL_UP_MOVE(36, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(41, MOVE_ENDURE),
- LEVEL_UP_MOVE(46, MOVE_MEGA_KICK),
- LEVEL_UP_MOVE(51, MOVE_REVERSAL),
- LEVEL_UP_END
-};
-
-const u16 gHitmonchanLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_REVENGE),
- LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
- LEVEL_UP_MOVE( 7, MOVE_AGILITY),
- LEVEL_UP_MOVE(13, MOVE_PURSUIT),
- LEVEL_UP_MOVE(20, MOVE_MACH_PUNCH),
- LEVEL_UP_MOVE(26, MOVE_THUNDER_PUNCH),
- LEVEL_UP_MOVE(26, MOVE_ICE_PUNCH),
- LEVEL_UP_MOVE(26, MOVE_FIRE_PUNCH),
- LEVEL_UP_MOVE(32, MOVE_SKY_UPPERCUT),
- LEVEL_UP_MOVE(38, MOVE_MEGA_PUNCH),
- LEVEL_UP_MOVE(44, MOVE_DETECT),
- LEVEL_UP_MOVE(50, MOVE_COUNTER),
- LEVEL_UP_END
-};
-
-const u16 gLickitungLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LICK),
- LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(18, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE(23, MOVE_STOMP),
- LEVEL_UP_MOVE(29, MOVE_WRAP),
- LEVEL_UP_MOVE(34, MOVE_DISABLE),
- LEVEL_UP_MOVE(40, MOVE_SLAM),
- LEVEL_UP_MOVE(45, MOVE_SCREECH),
- LEVEL_UP_MOVE(51, MOVE_REFRESH),
- LEVEL_UP_END
-};
-
-const u16 gKoffingLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 9, MOVE_SMOG),
- LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(21, MOVE_SLUDGE),
- LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(33, MOVE_HAZE),
- LEVEL_UP_MOVE(41, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(45, MOVE_DESTINY_BOND),
- LEVEL_UP_MOVE(49, MOVE_MEMENTO),
- LEVEL_UP_END
-};
-
-const u16 gWeezingLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SMOG),
- LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE( 9, MOVE_SMOG),
- LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(21, MOVE_SLUDGE),
- LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(33, MOVE_HAZE),
- LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(51, MOVE_DESTINY_BOND),
- LEVEL_UP_MOVE(58, MOVE_MEMENTO),
- LEVEL_UP_END
-};
-
-const u16 gRhyhornLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_STOMP),
- LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST),
- LEVEL_UP_MOVE(38, MOVE_HORN_DRILL),
- LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(57, MOVE_MEGAHORN),
- LEVEL_UP_END
-};
-
-const u16 gRhydonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_STOMP),
- LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(10, MOVE_STOMP),
- LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST),
- LEVEL_UP_MOVE(38, MOVE_HORN_DRILL),
- LEVEL_UP_MOVE(46, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(66, MOVE_MEGAHORN),
- LEVEL_UP_END
-};
-
-const u16 gChanseyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 9, MOVE_REFRESH),
- LEVEL_UP_MOVE(13, MOVE_SOFT_BOILED),
- LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(23, MOVE_MINIMIZE),
- LEVEL_UP_MOVE(29, MOVE_SING),
- LEVEL_UP_MOVE(35, MOVE_EGG_BOMB),
- LEVEL_UP_MOVE(41, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(49, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gTangelaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
- LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
- LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(10, MOVE_ABSORB),
- LEVEL_UP_MOVE(13, MOVE_GROWTH),
- LEVEL_UP_MOVE(19, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(22, MOVE_VINE_WHIP),
- LEVEL_UP_MOVE(28, MOVE_BIND),
- LEVEL_UP_MOVE(31, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(37, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(40, MOVE_SLAM),
- LEVEL_UP_MOVE(46, MOVE_TICKLE),
- LEVEL_UP_END
-};
-
-const u16 gKangaskhanLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 7, MOVE_BITE),
- LEVEL_UP_MOVE(13, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
- LEVEL_UP_MOVE(25, MOVE_MEGA_PUNCH),
- LEVEL_UP_MOVE(31, MOVE_RAGE),
- LEVEL_UP_MOVE(37, MOVE_ENDURE),
- LEVEL_UP_MOVE(43, MOVE_DIZZY_PUNCH),
- LEVEL_UP_MOVE(49, MOVE_REVERSAL),
- LEVEL_UP_END
-};
-
-const u16 gHorseaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(15, MOVE_LEER),
- LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(29, MOVE_TWISTER),
- LEVEL_UP_MOVE(36, MOVE_AGILITY),
- LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
- LEVEL_UP_END
-};
-
-const u16 gSeadraLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(15, MOVE_LEER),
- LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(29, MOVE_TWISTER),
- LEVEL_UP_MOVE(40, MOVE_AGILITY),
- LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE),
- LEVEL_UP_END
-};
-
-const u16 gGoldeenLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE(10, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE(24, MOVE_FLAIL),
- LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(38, MOVE_WATERFALL),
- LEVEL_UP_MOVE(43, MOVE_HORN_DRILL),
- LEVEL_UP_MOVE(52, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gSeakingLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(10, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE(24, MOVE_FLAIL),
- LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(41, MOVE_WATERFALL),
- LEVEL_UP_MOVE(49, MOVE_HORN_DRILL),
- LEVEL_UP_MOVE(61, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gStaryuLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE(15, MOVE_RECOVER),
- LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE),
- LEVEL_UP_MOVE(24, MOVE_SWIFT),
- LEVEL_UP_MOVE(28, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(33, MOVE_MINIMIZE),
- LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER),
- LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gStarmieLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE( 1, MOVE_RECOVER),
- LEVEL_UP_MOVE( 1, MOVE_SWIFT),
- LEVEL_UP_MOVE(33, MOVE_CONFUSE_RAY),
- LEVEL_UP_END
-};
-
-const u16 gMrmimeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BARRIER),
- LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE),
- LEVEL_UP_MOVE(13, MOVE_MEDITATE),
- LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(21, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(21, MOVE_REFLECT),
- LEVEL_UP_MOVE(25, MOVE_ENCORE),
- LEVEL_UP_MOVE(29, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(33, MOVE_RECYCLE),
- LEVEL_UP_MOVE(37, MOVE_TRICK),
- LEVEL_UP_MOVE(41, MOVE_ROLE_PLAY),
- LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(49, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(53, MOVE_SAFEGUARD),
- LEVEL_UP_END
-};
-
-const u16 gScytherLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(11, MOVE_PURSUIT),
- LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE),
- LEVEL_UP_MOVE(21, MOVE_AGILITY),
- LEVEL_UP_MOVE(26, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(31, MOVE_SLASH),
- LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
- LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
- LEVEL_UP_END
-};
-
-const u16 gJynxLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_LICK),
- LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS),
- LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE( 9, MOVE_LOVELY_KISS),
- LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(25, MOVE_ICE_PUNCH),
- LEVEL_UP_MOVE(35, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(41, MOVE_FAKE_TEARS),
- LEVEL_UP_MOVE(51, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(57, MOVE_PERISH_SONG),
- LEVEL_UP_MOVE(67, MOVE_BLIZZARD),
- LEVEL_UP_END
-};
-
-const u16 gElectabuzzLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
- LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH),
- LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(25, MOVE_SWIFT),
- LEVEL_UP_MOVE(36, MOVE_SCREECH),
- LEVEL_UP_MOVE(47, MOVE_THUNDERBOLT),
- LEVEL_UP_MOVE(58, MOVE_THUNDER),
- LEVEL_UP_END
-};
-
-const u16 gMagmarLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_SMOG),
- LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
- LEVEL_UP_MOVE( 7, MOVE_LEER),
- LEVEL_UP_MOVE(13, MOVE_SMOG),
- LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH),
- LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(33, MOVE_SUNNY_DAY),
- LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(57, MOVE_FIRE_BLAST),
- LEVEL_UP_END
-};
-
-const u16 gPinsirLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 7, MOVE_BIND),
- LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS),
- LEVEL_UP_MOVE(19, MOVE_HARDEN),
- LEVEL_UP_MOVE(25, MOVE_REVENGE),
- LEVEL_UP_MOVE(31, MOVE_BRICK_BREAK),
- LEVEL_UP_MOVE(37, MOVE_GUILLOTINE),
- LEVEL_UP_MOVE(43, MOVE_SUBMISSION),
- LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE),
- LEVEL_UP_END
-};
-
-const u16 gTaurosLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 8, MOVE_RAGE),
- LEVEL_UP_MOVE(13, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(26, MOVE_PURSUIT),
- LEVEL_UP_MOVE(34, MOVE_REST),
- LEVEL_UP_MOVE(43, MOVE_THRASH),
- LEVEL_UP_MOVE(53, MOVE_TAKE_DOWN),
- LEVEL_UP_END
-};
-
-const u16 gMagikarpLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE(15, MOVE_TACKLE),
- LEVEL_UP_MOVE(30, MOVE_FLAIL),
- LEVEL_UP_END
-};
-
-const u16 gGyaradosLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_THRASH),
- LEVEL_UP_MOVE(20, MOVE_BITE),
- LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE),
- LEVEL_UP_MOVE(30, MOVE_LEER),
- LEVEL_UP_MOVE(35, MOVE_TWISTER),
- LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
- LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gLaprasLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_SING),
- LEVEL_UP_MOVE( 7, MOVE_MIST),
- LEVEL_UP_MOVE(13, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(25, MOVE_PERISH_SONG),
- LEVEL_UP_MOVE(31, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(55, MOVE_SHEER_COLD),
- LEVEL_UP_END
-};
-
-const u16 gDittoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
- LEVEL_UP_END
-};
-
-const u16 gEeveeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_GROWL),
- LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(30, MOVE_BITE),
- LEVEL_UP_MOVE(36, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
- LEVEL_UP_END
-};
-
-const u16 gVaporeonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(30, MOVE_BITE),
- LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(42, MOVE_HAZE),
- LEVEL_UP_MOVE(47, MOVE_ACID_ARMOR),
- LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gJolteonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(30, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE),
- LEVEL_UP_MOVE(42, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(47, MOVE_AGILITY),
- LEVEL_UP_MOVE(52, MOVE_THUNDER),
- LEVEL_UP_END
-};
-
-const u16 gFlareonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_EMBER),
- LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(30, MOVE_BITE),
- LEVEL_UP_MOVE(36, MOVE_FIRE_SPIN),
- LEVEL_UP_MOVE(42, MOVE_SMOG),
- LEVEL_UP_MOVE(47, MOVE_LEER),
- LEVEL_UP_MOVE(52, MOVE_FLAMETHROWER),
- LEVEL_UP_END
-};
-
-const u16 gPorygonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
- LEVEL_UP_MOVE( 9, MOVE_AGILITY),
- LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(20, MOVE_RECOVER),
- LEVEL_UP_MOVE(24, MOVE_SHARPEN),
- LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
- LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK),
- LEVEL_UP_MOVE(44, MOVE_RECYCLE),
- LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON),
- LEVEL_UP_END
-};
-
-const u16 gOmanyteLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
- LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
- LEVEL_UP_MOVE(13, MOVE_BITE),
- LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(31, MOVE_LEER),
- LEVEL_UP_MOVE(37, MOVE_PROTECT),
- LEVEL_UP_MOVE(43, MOVE_TICKLE),
- LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gOmastarLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
- LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE(13, MOVE_BITE),
- LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(31, MOVE_LEER),
- LEVEL_UP_MOVE(37, MOVE_PROTECT),
- LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON),
- LEVEL_UP_MOVE(46, MOVE_TICKLE),
- LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gKabutoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE(13, MOVE_ABSORB),
- LEVEL_UP_MOVE(19, MOVE_LEER),
- LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(37, MOVE_ENDURE),
- LEVEL_UP_MOVE(43, MOVE_METAL_SOUND),
- LEVEL_UP_MOVE(49, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER),
- LEVEL_UP_END
-};
-
-const u16 gKabutopsLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE(13, MOVE_ABSORB),
- LEVEL_UP_MOVE(19, MOVE_LEER),
- LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(37, MOVE_ENDURE),
- LEVEL_UP_MOVE(40, MOVE_SLASH),
- LEVEL_UP_MOVE(46, MOVE_METAL_SOUND),
- LEVEL_UP_MOVE(55, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(65, MOVE_ANCIENT_POWER),
- LEVEL_UP_END
-};
-
-const u16 gAerodactylLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE( 8, MOVE_AGILITY),
- LEVEL_UP_MOVE(15, MOVE_BITE),
- LEVEL_UP_MOVE(22, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gSnorlaxLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 6, MOVE_AMNESIA),
- LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(15, MOVE_BELLY_DRUM),
- LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(24, MOVE_YAWN),
- LEVEL_UP_MOVE(28, MOVE_REST),
- LEVEL_UP_MOVE(28, MOVE_SNORE),
- LEVEL_UP_MOVE(33, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(37, MOVE_BLOCK),
- LEVEL_UP_MOVE(42, MOVE_COVET),
- LEVEL_UP_MOVE(46, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(51, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gArticunoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GUST),
- LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE(13, MOVE_MIST),
- LEVEL_UP_MOVE(25, MOVE_AGILITY),
- LEVEL_UP_MOVE(37, MOVE_MIND_READER),
- LEVEL_UP_MOVE(49, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(61, MOVE_REFLECT),
- LEVEL_UP_MOVE(73, MOVE_BLIZZARD),
- LEVEL_UP_MOVE(85, MOVE_SHEER_COLD),
- LEVEL_UP_END
-};
-
-const u16 gZapdosLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(25, MOVE_AGILITY),
- LEVEL_UP_MOVE(37, MOVE_DETECT),
- LEVEL_UP_MOVE(49, MOVE_DRILL_PECK),
- LEVEL_UP_MOVE(61, MOVE_CHARGE),
- LEVEL_UP_MOVE(73, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(85, MOVE_THUNDER),
- LEVEL_UP_END
-};
-
-const u16 gMoltresLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN),
- LEVEL_UP_MOVE(25, MOVE_AGILITY),
- LEVEL_UP_MOVE(37, MOVE_ENDURE),
- LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(61, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(73, MOVE_HEAT_WAVE),
- LEVEL_UP_MOVE(85, MOVE_SKY_ATTACK),
- LEVEL_UP_END
-};
-
-const u16 gDratiniLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(15, MOVE_TWISTER),
- LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
- LEVEL_UP_MOVE(29, MOVE_SLAM),
- LEVEL_UP_MOVE(36, MOVE_AGILITY),
- LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(50, MOVE_OUTRAGE),
- LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gDragonairLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE( 1, MOVE_TWISTER),
- LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(15, MOVE_TWISTER),
- LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
- LEVEL_UP_MOVE(29, MOVE_SLAM),
- LEVEL_UP_MOVE(38, MOVE_AGILITY),
- LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(56, MOVE_OUTRAGE),
- LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gDragoniteLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE( 1, MOVE_TWISTER),
- LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(15, MOVE_TWISTER),
- LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
- LEVEL_UP_MOVE(29, MOVE_SLAM),
- LEVEL_UP_MOVE(38, MOVE_AGILITY),
- LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(55, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(61, MOVE_OUTRAGE),
- LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gMewtwoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 1, MOVE_DISABLE),
- LEVEL_UP_MOVE(11, MOVE_BARRIER),
- LEVEL_UP_MOVE(22, MOVE_SWIFT),
- LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(55, MOVE_MIST),
- LEVEL_UP_MOVE(66, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(77, MOVE_AMNESIA),
- LEVEL_UP_MOVE(88, MOVE_RECOVER),
- LEVEL_UP_MOVE(99, MOVE_SAFEGUARD),
- LEVEL_UP_END
-};
-
-const u16 gMewLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE(10, MOVE_TRANSFORM),
- LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH),
- LEVEL_UP_MOVE(30, MOVE_METRONOME),
- LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER),
- LEVEL_UP_END
-};
-
-const u16 gChikoritaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(12, MOVE_REFLECT),
- LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(22, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE(29, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gBayleefLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE( 1, MOVE_REFLECT),
- LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(12, MOVE_REFLECT),
- LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(23, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(39, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gMeganiumLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE( 1, MOVE_REFLECT),
- LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(12, MOVE_REFLECT),
- LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(23, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(51, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gCyndaquilLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(12, MOVE_EMBER),
- LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(27, MOVE_FLAME_WHEEL),
- LEVEL_UP_MOVE(36, MOVE_SWIFT),
- LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER),
- LEVEL_UP_END
-};
-
-const u16 gQuilavaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(12, MOVE_EMBER),
- LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
- LEVEL_UP_MOVE(42, MOVE_SWIFT),
- LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER),
- LEVEL_UP_END
-};
-
-const u16 gTyphlosionLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(12, MOVE_EMBER),
- LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
- LEVEL_UP_MOVE(45, MOVE_SWIFT),
- LEVEL_UP_MOVE(60, MOVE_FLAMETHROWER),
- LEVEL_UP_END
-};
-
-const u16 gTotodileLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 7, MOVE_RAGE),
- LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(20, MOVE_BITE),
- LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(35, MOVE_SLASH),
- LEVEL_UP_MOVE(43, MOVE_SCREECH),
- LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gCroconawLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_RAGE),
- LEVEL_UP_MOVE( 7, MOVE_RAGE),
- LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(21, MOVE_BITE),
- LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(37, MOVE_SLASH),
- LEVEL_UP_MOVE(45, MOVE_SCREECH),
- LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gFeraligatrLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_RAGE),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 7, MOVE_RAGE),
- LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(21, MOVE_BITE),
- LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(38, MOVE_SLASH),
- LEVEL_UP_MOVE(47, MOVE_SCREECH),
- LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gSentretLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(17, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(24, MOVE_SLAM),
- LEVEL_UP_MOVE(31, MOVE_FOLLOW_ME),
- LEVEL_UP_MOVE(40, MOVE_REST),
- LEVEL_UP_MOVE(49, MOVE_AMNESIA),
- LEVEL_UP_END
-};
-
-const u16 gFurretLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(19, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(28, MOVE_SLAM),
- LEVEL_UP_MOVE(37, MOVE_FOLLOW_ME),
- LEVEL_UP_MOVE(48, MOVE_REST),
- LEVEL_UP_MOVE(59, MOVE_AMNESIA),
- LEVEL_UP_END
-};
-
-const u16 gHoothootLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 6, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(11, MOVE_PECK),
- LEVEL_UP_MOVE(16, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(22, MOVE_REFLECT),
- LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(34, MOVE_CONFUSION),
- LEVEL_UP_MOVE(48, MOVE_DREAM_EATER),
- LEVEL_UP_END
-};
-
-const u16 gNoctowlLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 6, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(11, MOVE_PECK),
- LEVEL_UP_MOVE(16, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(25, MOVE_REFLECT),
- LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(41, MOVE_CONFUSION),
- LEVEL_UP_MOVE(57, MOVE_DREAM_EATER),
- LEVEL_UP_END
-};
-
-const u16 gLedybaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
- LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(22, MOVE_REFLECT),
- LEVEL_UP_MOVE(22, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(36, MOVE_SWIFT),
- LEVEL_UP_MOVE(43, MOVE_AGILITY),
- LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gLedianLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
- LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(24, MOVE_REFLECT),
- LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(33, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(42, MOVE_SWIFT),
- LEVEL_UP_MOVE(51, MOVE_AGILITY),
- LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gSpinarakLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
- LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
- LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(23, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(37, MOVE_SPIDER_WEB),
- LEVEL_UP_MOVE(45, MOVE_AGILITY),
- LEVEL_UP_MOVE(53, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gAriadosLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
- LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
- LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
- LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(43, MOVE_SPIDER_WEB),
- LEVEL_UP_MOVE(53, MOVE_AGILITY),
- LEVEL_UP_MOVE(63, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gCrobatLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCREECH),
- LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(11, MOVE_ASTONISH),
- LEVEL_UP_MOVE(16, MOVE_BITE),
- LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER),
- LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(49, MOVE_POISON_FANG),
- LEVEL_UP_MOVE(56, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gChinchouLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(13, MOVE_FLAIL),
- LEVEL_UP_MOVE(17, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(25, MOVE_SPARK),
- LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(49, MOVE_CHARGE),
- LEVEL_UP_END
-};
-
-const u16 gLanturnLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(13, MOVE_FLAIL),
- LEVEL_UP_MOVE(17, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(25, MOVE_SPARK),
- LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(61, MOVE_CHARGE),
- LEVEL_UP_END
-};
-
-const u16 gPichuLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE( 1, MOVE_CHARM),
- LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
- LEVEL_UP_END
-};
-
-const u16 gCleffaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_CHARM),
- LEVEL_UP_MOVE( 4, MOVE_ENCORE),
- LEVEL_UP_MOVE( 8, MOVE_SING),
- LEVEL_UP_MOVE(13, MOVE_SWEET_KISS),
- LEVEL_UP_END
-};
-
-const u16 gIgglybuffLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SING),
- LEVEL_UP_MOVE( 1, MOVE_CHARM),
- LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 9, MOVE_POUND),
- LEVEL_UP_MOVE(14, MOVE_SWEET_KISS),
- LEVEL_UP_END
-};
-
-const u16 gTogepiLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_CHARM),
- LEVEL_UP_MOVE( 6, MOVE_METRONOME),
- LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
- LEVEL_UP_MOVE(16, MOVE_YAWN),
- LEVEL_UP_MOVE(21, MOVE_ENCORE),
- LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME),
- LEVEL_UP_MOVE(31, MOVE_WISH),
- LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gTogeticLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_CHARM),
- LEVEL_UP_MOVE( 6, MOVE_METRONOME),
- LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
- LEVEL_UP_MOVE(16, MOVE_YAWN),
- LEVEL_UP_MOVE(21, MOVE_ENCORE),
- LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME),
- LEVEL_UP_MOVE(31, MOVE_WISH),
- LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gNatuLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(20, MOVE_TELEPORT),
- LEVEL_UP_MOVE(30, MOVE_WISH),
- LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gXatuLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(20, MOVE_TELEPORT),
- LEVEL_UP_MOVE(35, MOVE_WISH),
- LEVEL_UP_MOVE(35, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(65, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gMareepLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(23, MOVE_COTTON_SPORE),
- LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(37, MOVE_THUNDER),
- LEVEL_UP_END
-};
-
-const u16 gFlaaffyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE),
- LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(45, MOVE_THUNDER),
- LEVEL_UP_END
-};
-
-const u16 gAmpharosLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE),
- LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH),
- LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(57, MOVE_THUNDER),
- LEVEL_UP_END
-};
-
-const u16 gBellossomLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
- LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
- LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gMarillLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(28, MOVE_DOUBLE_EDGE),
- LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gAzumarillLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE),
- LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gSudowoodoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE( 1, MOVE_MIMIC),
- LEVEL_UP_MOVE( 9, MOVE_FLAIL),
- LEVEL_UP_MOVE(17, MOVE_LOW_KICK),
- LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(33, MOVE_BLOCK),
- LEVEL_UP_MOVE(41, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(49, MOVE_SLAM),
- LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gPolitoedLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
- LEVEL_UP_MOVE(35, MOVE_PERISH_SONG),
- LEVEL_UP_MOVE(51, MOVE_SWAGGER),
- LEVEL_UP_END
-};
-
-const u16 gHoppipLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_TACKLE),
- LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(25, MOVE_COTTON_SPORE),
- LEVEL_UP_MOVE(30, MOVE_MEGA_DRAIN),
- LEVEL_UP_END
-};
-
-const u16 gSkiploomLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_TACKLE),
- LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(22, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(29, MOVE_COTTON_SPORE),
- LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN),
- LEVEL_UP_END
-};
-
-const u16 gJumpluffLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_TACKLE),
- LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
- LEVEL_UP_MOVE(22, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE),
- LEVEL_UP_MOVE(44, MOVE_MEGA_DRAIN),
- LEVEL_UP_END
-};
-
-const u16 gAipomLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_ASTONISH),
- LEVEL_UP_MOVE(18, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(25, MOVE_TICKLE),
- LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(38, MOVE_SWIFT),
- LEVEL_UP_MOVE(43, MOVE_SCREECH),
- LEVEL_UP_MOVE(50, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gSunkernLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 6, MOVE_GROWTH),
- LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(18, MOVE_INGRAIN),
- LEVEL_UP_MOVE(25, MOVE_ENDEAVOR),
- LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY),
- LEVEL_UP_MOVE(37, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN),
- LEVEL_UP_END
-};
-
-const u16 gSunfloraLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 6, MOVE_GROWTH),
- LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(18, MOVE_INGRAIN),
- LEVEL_UP_MOVE(25, MOVE_BULLET_SEED),
- LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY),
- LEVEL_UP_MOVE(37, MOVE_PETAL_DANCE),
- LEVEL_UP_MOVE(42, MOVE_SOLAR_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gYanmaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
- LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(19, MOVE_SONIC_BOOM),
- LEVEL_UP_MOVE(25, MOVE_DETECT),
- LEVEL_UP_MOVE(31, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(37, MOVE_UPROAR),
- LEVEL_UP_MOVE(43, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(49, MOVE_SCREECH),
- LEVEL_UP_END
-};
-
-const u16 gWooperLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(11, MOVE_SLAM),
- LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(21, MOVE_AMNESIA),
- LEVEL_UP_MOVE(31, MOVE_YAWN),
- LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(51, MOVE_MIST),
- LEVEL_UP_MOVE(51, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gQuagsireLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(11, MOVE_SLAM),
- LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(23, MOVE_AMNESIA),
- LEVEL_UP_MOVE(35, MOVE_YAWN),
- LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(61, MOVE_MIST),
- LEVEL_UP_MOVE(61, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gEspeonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_CONFUSION),
- LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(30, MOVE_SWIFT),
- LEVEL_UP_MOVE(36, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(42, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(47, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(52, MOVE_MORNING_SUN),
- LEVEL_UP_END
-};
-
-const u16 gUmbreonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_PURSUIT),
- LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(36, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(47, MOVE_SCREECH),
- LEVEL_UP_MOVE(52, MOVE_MOONLIGHT),
- LEVEL_UP_END
-};
-
-const u16 gMurkrowLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
- LEVEL_UP_MOVE(14, MOVE_PURSUIT),
- LEVEL_UP_MOVE(22, MOVE_HAZE),
- LEVEL_UP_MOVE(27, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(35, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(40, MOVE_TAUNT),
- LEVEL_UP_MOVE(48, MOVE_MEAN_LOOK),
- LEVEL_UP_END
-};
-
-const u16 gSlowkingLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CURSE),
- LEVEL_UP_MOVE( 1, MOVE_YAWN),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 6, MOVE_GROWL),
- LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(20, MOVE_CONFUSION),
- LEVEL_UP_MOVE(29, MOVE_DISABLE),
- LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(43, MOVE_SWAGGER),
- LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-const u16 gMisdreavusLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
- LEVEL_UP_MOVE( 6, MOVE_SPITE),
- LEVEL_UP_MOVE(11, MOVE_ASTONISH),
- LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(23, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(30, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT),
- LEVEL_UP_MOVE(45, MOVE_PERISH_SONG),
- LEVEL_UP_MOVE(53, MOVE_GRUDGE),
- LEVEL_UP_END
-};
-
-const u16 gUnownLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
- LEVEL_UP_END
-};
-
-const u16 gWobbuffetLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_COUNTER),
- LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
- LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
- LEVEL_UP_END
-};
-
-const u16 gGirafarigLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
- LEVEL_UP_MOVE(13, MOVE_CONFUSION),
- LEVEL_UP_MOVE(19, MOVE_STOMP),
- LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(31, MOVE_AGILITY),
- LEVEL_UP_MOVE(37, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(43, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(49, MOVE_CRUNCH),
- LEVEL_UP_END
-};
-
-const u16 gPinecoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_PROTECT),
- LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE(29, MOVE_BIDE),
- LEVEL_UP_MOVE(36, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(43, MOVE_SPIKES),
- LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gForretressLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_PROTECT),
- LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE(29, MOVE_BIDE),
- LEVEL_UP_MOVE(39, MOVE_EXPLOSION),
- LEVEL_UP_MOVE(49, MOVE_SPIKES),
- LEVEL_UP_MOVE(59, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gDunsparceLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_RAGE),
- LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(11, MOVE_YAWN),
- LEVEL_UP_MOVE(14, MOVE_GLARE),
- LEVEL_UP_MOVE(21, MOVE_SPITE),
- LEVEL_UP_MOVE(24, MOVE_PURSUIT),
- LEVEL_UP_MOVE(31, MOVE_SCREECH),
- LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
- LEVEL_UP_END
-};
-
-const u16 gGligarLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_HARDEN),
- LEVEL_UP_MOVE(20, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(36, MOVE_SLASH),
- LEVEL_UP_MOVE(44, MOVE_SCREECH),
- LEVEL_UP_MOVE(52, MOVE_GUILLOTINE),
- LEVEL_UP_END
-};
-
-const u16 gSteelixLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SCREECH),
- LEVEL_UP_MOVE( 9, MOVE_BIND),
- LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(21, MOVE_HARDEN),
- LEVEL_UP_MOVE(25, MOVE_RAGE),
- LEVEL_UP_MOVE(33, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(37, MOVE_SLAM),
- LEVEL_UP_MOVE(45, MOVE_IRON_TAIL),
- LEVEL_UP_MOVE(49, MOVE_CRUNCH),
- LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gSnubbullLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 8, MOVE_CHARM),
- LEVEL_UP_MOVE(13, MOVE_BITE),
- LEVEL_UP_MOVE(19, MOVE_LICK),
- LEVEL_UP_MOVE(26, MOVE_ROAR),
- LEVEL_UP_MOVE(34, MOVE_RAGE),
- LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(53, MOVE_CRUNCH),
- LEVEL_UP_END
-};
-
-const u16 gGranbullLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 8, MOVE_CHARM),
- LEVEL_UP_MOVE(13, MOVE_BITE),
- LEVEL_UP_MOVE(19, MOVE_LICK),
- LEVEL_UP_MOVE(28, MOVE_ROAR),
- LEVEL_UP_MOVE(38, MOVE_RAGE),
- LEVEL_UP_MOVE(49, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(61, MOVE_CRUNCH),
- LEVEL_UP_END
-};
-
-const u16 gQwilfishLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPIKES),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE(10, MOVE_HARDEN),
- LEVEL_UP_MOVE(10, MOVE_MINIMIZE),
- LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE),
- LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gScizorLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(11, MOVE_PURSUIT),
- LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE),
- LEVEL_UP_MOVE(21, MOVE_AGILITY),
- LEVEL_UP_MOVE(26, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(31, MOVE_SLASH),
- LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
- LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
- LEVEL_UP_END
-};
-
-const u16 gShuckleLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
- LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
- LEVEL_UP_MOVE( 9, MOVE_WRAP),
- LEVEL_UP_MOVE(14, MOVE_ENCORE),
- LEVEL_UP_MOVE(23, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(28, MOVE_BIDE),
- LEVEL_UP_MOVE(37, MOVE_REST),
- LEVEL_UP_END
-};
-
-const u16 gHeracrossLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE(11, MOVE_ENDURE),
- LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(23, MOVE_BRICK_BREAK),
- LEVEL_UP_MOVE(30, MOVE_COUNTER),
- LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(45, MOVE_REVERSAL),
- LEVEL_UP_MOVE(53, MOVE_MEGAHORN),
- LEVEL_UP_END
-};
-
-const u16 gSneaselLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_TAUNT),
- LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(15, MOVE_SCREECH),
- LEVEL_UP_MOVE(22, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(36, MOVE_AGILITY),
- LEVEL_UP_MOVE(43, MOVE_ICY_WIND),
- LEVEL_UP_MOVE(50, MOVE_SLASH),
- LEVEL_UP_MOVE(57, MOVE_BEAT_UP),
- LEVEL_UP_MOVE(64, MOVE_METAL_CLAW),
- LEVEL_UP_END
-};
-
-const u16 gTeddiursaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 7, MOVE_LICK),
- LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS),
- LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(31, MOVE_REST),
- LEVEL_UP_MOVE(37, MOVE_SLASH),
- LEVEL_UP_MOVE(43, MOVE_SNORE),
- LEVEL_UP_MOVE(49, MOVE_THRASH),
- LEVEL_UP_END
-};
-
-const u16 gUrsaringLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_LICK),
- LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE( 7, MOVE_LICK),
- LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS),
- LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(31, MOVE_REST),
- LEVEL_UP_MOVE(37, MOVE_SLASH),
- LEVEL_UP_MOVE(43, MOVE_SNORE),
- LEVEL_UP_MOVE(49, MOVE_THRASH),
- LEVEL_UP_END
-};
-
-const u16 gSlugmaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_YAWN),
- LEVEL_UP_MOVE( 1, MOVE_SMOG),
- LEVEL_UP_MOVE( 8, MOVE_EMBER),
- LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(22, MOVE_HARDEN),
- LEVEL_UP_MOVE(29, MOVE_AMNESIA),
- LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(43, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(50, MOVE_BODY_SLAM),
- LEVEL_UP_END
-};
-
-const u16 gMagcargoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_YAWN),
- LEVEL_UP_MOVE( 1, MOVE_SMOG),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE( 8, MOVE_EMBER),
- LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(22, MOVE_HARDEN),
- LEVEL_UP_MOVE(29, MOVE_AMNESIA),
- LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(60, MOVE_BODY_SLAM),
- LEVEL_UP_END
-};
-
-const u16 gSwinubLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE(19, MOVE_ENDURE),
- LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(37, MOVE_MIST),
- LEVEL_UP_MOVE(46, MOVE_BLIZZARD),
- LEVEL_UP_MOVE(55, MOVE_AMNESIA),
- LEVEL_UP_END
-};
-
-const u16 gPiloswineLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE( 1, MOVE_ENDURE),
- LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE(19, MOVE_ENDURE),
- LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(42, MOVE_MIST),
- LEVEL_UP_MOVE(56, MOVE_BLIZZARD),
- LEVEL_UP_MOVE(70, MOVE_AMNESIA),
- LEVEL_UP_END
-};
-
-const u16 gCorsolaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 6, MOVE_HARDEN),
- LEVEL_UP_MOVE(12, MOVE_BUBBLE),
- LEVEL_UP_MOVE(17, MOVE_RECOVER),
- LEVEL_UP_MOVE(17, MOVE_REFRESH),
- LEVEL_UP_MOVE(23, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(28, MOVE_SPIKE_CANNON),
- LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
- LEVEL_UP_MOVE(39, MOVE_MIRROR_COAT),
- LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER),
- LEVEL_UP_END
-};
-
-const u16 gRemoraidLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(11, MOVE_LOCK_ON),
- LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(44, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gOctilleryLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
- LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA),
- LEVEL_UP_MOVE(38, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(54, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gDelibirdLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PRESENT),
- LEVEL_UP_END
-};
-
-const u16 gMantineLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(29, MOVE_AGILITY),
- LEVEL_UP_MOVE(36, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(43, MOVE_WATER_PULSE),
- LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY),
- LEVEL_UP_END
-};
-
-const u16 gSkarmoryLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_SWIFT),
- LEVEL_UP_MOVE(16, MOVE_AGILITY),
- LEVEL_UP_MOVE(26, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(29, MOVE_AIR_CUTTER),
- LEVEL_UP_MOVE(32, MOVE_STEEL_WING),
- LEVEL_UP_MOVE(42, MOVE_SPIKES),
- LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
- LEVEL_UP_END
-};
-
-const u16 gHoundourLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 7, MOVE_HOWL),
- LEVEL_UP_MOVE(13, MOVE_SMOG),
- LEVEL_UP_MOVE(19, MOVE_ROAR),
- LEVEL_UP_MOVE(25, MOVE_BITE),
- LEVEL_UP_MOVE(31, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(49, MOVE_CRUNCH),
- LEVEL_UP_END
-};
-
-const u16 gHoundoomLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 1, MOVE_HOWL),
- LEVEL_UP_MOVE( 7, MOVE_HOWL),
- LEVEL_UP_MOVE(13, MOVE_SMOG),
- LEVEL_UP_MOVE(19, MOVE_ROAR),
- LEVEL_UP_MOVE(27, MOVE_BITE),
- LEVEL_UP_MOVE(35, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(43, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(59, MOVE_CRUNCH),
- LEVEL_UP_END
-};
-
-const u16 gKingdraLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(15, MOVE_LEER),
- LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(29, MOVE_TWISTER),
- LEVEL_UP_MOVE(40, MOVE_AGILITY),
- LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE),
- LEVEL_UP_END
-};
-
-const u16 gPhanpyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(17, MOVE_FLAIL),
- LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(33, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(41, MOVE_ENDURE),
- LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gDonphanLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(17, MOVE_FLAIL),
- LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(33, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(41, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
- LEVEL_UP_END
-};
-
-const u16 gPorygon2LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
- LEVEL_UP_MOVE( 9, MOVE_AGILITY),
- LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(20, MOVE_RECOVER),
- LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
- LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK),
- LEVEL_UP_MOVE(44, MOVE_RECYCLE),
- LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON),
- LEVEL_UP_END
-};
-
-const u16 gStantlerLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 7, MOVE_LEER),
- LEVEL_UP_MOVE(13, MOVE_ASTONISH),
- LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(25, MOVE_STOMP),
- LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(49, MOVE_CALM_MIND),
- LEVEL_UP_END
-};
-
-const u16 gSmeargleLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SKETCH),
- LEVEL_UP_MOVE(11, MOVE_SKETCH),
- LEVEL_UP_MOVE(21, MOVE_SKETCH),
- LEVEL_UP_MOVE(31, MOVE_SKETCH),
- LEVEL_UP_MOVE(41, MOVE_SKETCH),
- LEVEL_UP_MOVE(51, MOVE_SKETCH),
- LEVEL_UP_MOVE(61, MOVE_SKETCH),
- LEVEL_UP_MOVE(71, MOVE_SKETCH),
- LEVEL_UP_MOVE(81, MOVE_SKETCH),
- LEVEL_UP_MOVE(91, MOVE_SKETCH),
- LEVEL_UP_END
-};
-
-const u16 gTyrogueLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gHitmontopLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_REVENGE),
- LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK),
- LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(13, MOVE_PURSUIT),
- LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(20, MOVE_TRIPLE_KICK),
- LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE(31, MOVE_COUNTER),
- LEVEL_UP_MOVE(37, MOVE_AGILITY),
- LEVEL_UP_MOVE(43, MOVE_DETECT),
- LEVEL_UP_MOVE(49, MOVE_ENDEAVOR),
- LEVEL_UP_END
-};
-
-const u16 gSmoochumLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_LICK),
- LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS),
- LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE(21, MOVE_CONFUSION),
- LEVEL_UP_MOVE(25, MOVE_SING),
- LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(37, MOVE_FAKE_TEARS),
- LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(49, MOVE_PERISH_SONG),
- LEVEL_UP_MOVE(57, MOVE_BLIZZARD),
- LEVEL_UP_END
-};
-
-const u16 gElekidLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH),
- LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(25, MOVE_SWIFT),
- LEVEL_UP_MOVE(33, MOVE_SCREECH),
- LEVEL_UP_MOVE(41, MOVE_THUNDERBOLT),
- LEVEL_UP_MOVE(49, MOVE_THUNDER),
- LEVEL_UP_END
-};
-
-const u16 gMagbyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 7, MOVE_LEER),
- LEVEL_UP_MOVE(13, MOVE_SMOG),
- LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH),
- LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY),
- LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(49, MOVE_FIRE_BLAST),
- LEVEL_UP_END
-};
-
-const u16 gMiltankLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 4, MOVE_GROWL),
- LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(13, MOVE_STOMP),
- LEVEL_UP_MOVE(19, MOVE_MILK_DRINK),
- LEVEL_UP_MOVE(26, MOVE_BIDE),
- LEVEL_UP_MOVE(34, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(43, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(53, MOVE_HEAL_BELL),
- LEVEL_UP_END
-};
-
-const u16 gBlisseyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 7, MOVE_REFRESH),
- LEVEL_UP_MOVE(10, MOVE_SOFT_BOILED),
- LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(18, MOVE_MINIMIZE),
- LEVEL_UP_MOVE(23, MOVE_SING),
- LEVEL_UP_MOVE(28, MOVE_EGG_BOMB),
- LEVEL_UP_MOVE(33, MOVE_DEFENSE_CURL),
- LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gRaikouLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK),
- LEVEL_UP_MOVE(21, MOVE_ROAR),
- LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(41, MOVE_SPARK),
- LEVEL_UP_MOVE(51, MOVE_REFLECT),
- LEVEL_UP_MOVE(61, MOVE_CRUNCH),
- LEVEL_UP_MOVE(71, MOVE_THUNDER),
- LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
- LEVEL_UP_END
-};
-
-const u16 gEnteiLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE(11, MOVE_EMBER),
- LEVEL_UP_MOVE(21, MOVE_ROAR),
- LEVEL_UP_MOVE(31, MOVE_FIRE_SPIN),
- LEVEL_UP_MOVE(41, MOVE_STOMP),
- LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(61, MOVE_SWAGGER),
- LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST),
- LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
- LEVEL_UP_END
-};
-
-const u16 gSuicuneLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(31, MOVE_GUST),
- LEVEL_UP_MOVE(41, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(51, MOVE_MIST),
- LEVEL_UP_MOVE(61, MOVE_MIRROR_COAT),
- LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
- LEVEL_UP_END
-};
-
-const u16 gLarvitarLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(15, MOVE_SCREECH),
- LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(29, MOVE_THRASH),
- LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(43, MOVE_CRUNCH),
- LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gPupitarLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
- LEVEL_UP_MOVE( 1, MOVE_SCREECH),
- LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(15, MOVE_SCREECH),
- LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(29, MOVE_THRASH),
- LEVEL_UP_MOVE(38, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(47, MOVE_CRUNCH),
- LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gTyranitarLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
- LEVEL_UP_MOVE( 1, MOVE_SCREECH),
- LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(15, MOVE_SCREECH),
- LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(29, MOVE_THRASH),
- LEVEL_UP_MOVE(38, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(47, MOVE_CRUNCH),
- LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gLugiaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(22, MOVE_GUST),
- LEVEL_UP_MOVE(33, MOVE_RECOVER),
- LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(66, MOVE_SWIFT),
- LEVEL_UP_MOVE(77, MOVE_AEROBLAST),
- LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT),
- LEVEL_UP_END
-};
-
-const u16 gHoOhLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(22, MOVE_GUST),
- LEVEL_UP_MOVE(33, MOVE_RECOVER),
- LEVEL_UP_MOVE(44, MOVE_FIRE_BLAST),
- LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY),
- LEVEL_UP_MOVE(66, MOVE_SWIFT),
- LEVEL_UP_MOVE(77, MOVE_SACRED_FIRE),
- LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT),
- LEVEL_UP_END
-};
-
-const u16 gCelebiLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 1, MOVE_RECOVER),
- LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL),
- LEVEL_UP_MOVE(10, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(50, MOVE_PERISH_SONG),
- LEVEL_UP_END
-};
-
-const u16 gSpecies252LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies253LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies254LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies255LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies256LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies257LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies258LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies259LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies260LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies261LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies262LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies263LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies264LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies265LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies266LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies267LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies268LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies269LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies270LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies271LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies272LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies273LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies274LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies275LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gSpecies276LevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_END
-};
-
-const u16 gTreeckoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 6, MOVE_ABSORB),
- LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_PURSUIT),
- LEVEL_UP_MOVE(21, MOVE_SCREECH),
- LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(31, MOVE_AGILITY),
- LEVEL_UP_MOVE(36, MOVE_SLAM),
- LEVEL_UP_MOVE(41, MOVE_DETECT),
- LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN),
- LEVEL_UP_END
-};
-
-const u16 gGrovyleLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 6, MOVE_ABSORB),
- LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
- LEVEL_UP_MOVE(17, MOVE_PURSUIT),
- LEVEL_UP_MOVE(23, MOVE_SCREECH),
- LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE),
- LEVEL_UP_MOVE(35, MOVE_AGILITY),
- LEVEL_UP_MOVE(41, MOVE_SLAM),
- LEVEL_UP_MOVE(47, MOVE_DETECT),
- LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE),
- LEVEL_UP_END
-};
-
-const u16 gSceptileLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 6, MOVE_ABSORB),
- LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
- LEVEL_UP_MOVE(17, MOVE_PURSUIT),
- LEVEL_UP_MOVE(23, MOVE_SCREECH),
- LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE),
- LEVEL_UP_MOVE(35, MOVE_AGILITY),
- LEVEL_UP_MOVE(43, MOVE_SLAM),
- LEVEL_UP_MOVE(51, MOVE_DETECT),
- LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE),
- LEVEL_UP_END
-};
-
-const u16 gTorchicLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(10, MOVE_EMBER),
- LEVEL_UP_MOVE(16, MOVE_PECK),
- LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
- LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(34, MOVE_SLASH),
- LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE),
- LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
- LEVEL_UP_END
-};
-
-const u16 gCombuskenLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(13, MOVE_EMBER),
- LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE(17, MOVE_PECK),
- LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(28, MOVE_BULK_UP),
- LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(39, MOVE_SLASH),
- LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE),
- LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT),
- LEVEL_UP_END
-};
-
-const u16 gBlazikenLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(13, MOVE_EMBER),
- LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
- LEVEL_UP_MOVE(17, MOVE_PECK),
- LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(28, MOVE_BULK_UP),
- LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK),
- LEVEL_UP_MOVE(42, MOVE_SLASH),
- LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE),
- LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT),
- LEVEL_UP_END
-};
-
-const u16 gMudkipLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(15, MOVE_BIDE),
- LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(24, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL),
- LEVEL_UP_MOVE(37, MOVE_PROTECT),
- LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(46, MOVE_ENDEAVOR),
- LEVEL_UP_END
-};
-
-const u16 gMarshtompLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(15, MOVE_BIDE),
- LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(20, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(25, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER),
- LEVEL_UP_MOVE(42, MOVE_PROTECT),
- LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(53, MOVE_ENDEAVOR),
- LEVEL_UP_END
-};
-
-const u16 gSwampertLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(15, MOVE_BIDE),
- LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE(20, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(25, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER),
- LEVEL_UP_MOVE(46, MOVE_PROTECT),
- LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(61, MOVE_ENDEAVOR),
- LEVEL_UP_END
-};
-
-const u16 gPoochyenaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 5, MOVE_HOWL),
- LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_BITE),
- LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(21, MOVE_ROAR),
- LEVEL_UP_MOVE(25, MOVE_SWAGGER),
- LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(37, MOVE_TAUNT),
- LEVEL_UP_MOVE(41, MOVE_CRUNCH),
- LEVEL_UP_MOVE(45, MOVE_THIEF),
- LEVEL_UP_END
-};
-
-const u16 gMightyenaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_HOWL),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 5, MOVE_HOWL),
- LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_BITE),
- LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(22, MOVE_ROAR),
- LEVEL_UP_MOVE(27, MOVE_SWAGGER),
- LEVEL_UP_MOVE(32, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(42, MOVE_TAUNT),
- LEVEL_UP_MOVE(47, MOVE_CRUNCH),
- LEVEL_UP_MOVE(52, MOVE_THIEF),
- LEVEL_UP_END
-};
-
-const u16 gZigzagoonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 9, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(21, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE),
- LEVEL_UP_MOVE(29, MOVE_COVET),
- LEVEL_UP_MOVE(33, MOVE_FLAIL),
- LEVEL_UP_MOVE(37, MOVE_REST),
- LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM),
- LEVEL_UP_END
-};
-
-const u16 gLinooneLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
- LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 9, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(23, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(35, MOVE_COVET),
- LEVEL_UP_MOVE(41, MOVE_SLASH),
- LEVEL_UP_MOVE(47, MOVE_REST),
- LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM),
- LEVEL_UP_END
-};
-
-const u16 gWurmpleLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
- LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
- LEVEL_UP_END
-};
-
-const u16 gSilcoonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_END
-};
-
-const u16 gBeautiflyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE(10, MOVE_ABSORB),
- LEVEL_UP_MOVE(13, MOVE_GUST),
- LEVEL_UP_MOVE(17, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(20, MOVE_MORNING_SUN),
- LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(31, MOVE_ATTRACT),
- LEVEL_UP_MOVE(34, MOVE_SILVER_WIND),
- LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN),
- LEVEL_UP_END
-};
-
-const u16 gCascoonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_END
-};
-
-const u16 gDustoxLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE(10, MOVE_CONFUSION),
- LEVEL_UP_MOVE(13, MOVE_GUST),
- LEVEL_UP_MOVE(17, MOVE_PROTECT),
- LEVEL_UP_MOVE(20, MOVE_MOONLIGHT),
- LEVEL_UP_MOVE(24, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
- LEVEL_UP_MOVE(34, MOVE_SILVER_WIND),
- LEVEL_UP_MOVE(38, MOVE_TOXIC),
- LEVEL_UP_END
-};
-
-const u16 gLotadLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 3, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_ABSORB),
- LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
- LEVEL_UP_MOVE(21, MOVE_MIST),
- LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(43, MOVE_MEGA_DRAIN),
- LEVEL_UP_END
-};
-
-const u16 gLombreLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 3, MOVE_GROWL),
- LEVEL_UP_MOVE( 7, MOVE_ABSORB),
- LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
- LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
- LEVEL_UP_MOVE(25, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(31, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE(37, MOVE_THIEF),
- LEVEL_UP_MOVE(43, MOVE_UPROAR),
- LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gLudicoloLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
- LEVEL_UP_END
-};
-
-const u16 gSeedotLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BIDE),
- LEVEL_UP_MOVE( 3, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_GROWTH),
- LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
- LEVEL_UP_MOVE(21, MOVE_SYNTHESIS),
- LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY),
- LEVEL_UP_MOVE(43, MOVE_EXPLOSION),
- LEVEL_UP_END
-};
-
-const u16 gNuzleafLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 3, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_GROWTH),
- LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
- LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
- LEVEL_UP_MOVE(25, MOVE_TORMENT),
- LEVEL_UP_MOVE(31, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND),
- LEVEL_UP_MOVE(43, MOVE_SWAGGER),
- LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY),
- LEVEL_UP_END
-};
-
-const u16 gShiftryLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 1, MOVE_GROWTH),
- LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
- LEVEL_UP_END
-};
-
-const u16 gNincadaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(19, MOVE_MIND_READER),
- LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE),
- LEVEL_UP_MOVE(31, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(38, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(45, MOVE_DIG),
- LEVEL_UP_END
-};
-
-const u16 gNinjaskLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(19, MOVE_MIND_READER),
- LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER),
- LEVEL_UP_MOVE(20, MOVE_SCREECH),
- LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
- LEVEL_UP_MOVE(31, MOVE_SLASH),
- LEVEL_UP_MOVE(38, MOVE_AGILITY),
- LEVEL_UP_MOVE(45, MOVE_BATON_PASS),
- LEVEL_UP_END
-};
-
-const u16 gShedinjaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
- LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(19, MOVE_MIND_READER),
- LEVEL_UP_MOVE(25, MOVE_SPITE),
- LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL),
- LEVEL_UP_MOVE(45, MOVE_GRUDGE),
- LEVEL_UP_END
-};
-
-const u16 gTaillowLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(26, MOVE_ENDEAVOR),
- LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE),
- LEVEL_UP_MOVE(43, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gSwellowLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
- LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE),
- LEVEL_UP_MOVE(49, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gShroomishLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 4, MOVE_TACKLE),
- LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(28, MOVE_POISON_POWDER),
- LEVEL_UP_MOVE(36, MOVE_GROWTH),
- LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN),
- LEVEL_UP_MOVE(54, MOVE_SPORE),
- LEVEL_UP_END
-};
-
-const u16 gBreloomLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE( 4, MOVE_TACKLE),
- LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH),
- LEVEL_UP_MOVE(28, MOVE_COUNTER),
- LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT),
- LEVEL_UP_MOVE(45, MOVE_MIND_READER),
- LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH),
- LEVEL_UP_END
-};
-
-const u16 gSpindaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 5, MOVE_UPROAR),
- LEVEL_UP_MOVE(12, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(23, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(27, MOVE_DIZZY_PUNCH),
- LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE),
- LEVEL_UP_MOVE(38, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
- LEVEL_UP_MOVE(49, MOVE_FLAIL),
- LEVEL_UP_MOVE(56, MOVE_THRASH),
- LEVEL_UP_END
-};
-
-const u16 gWingullLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_MIST),
- LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(43, MOVE_PURSUIT),
- LEVEL_UP_MOVE(55, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gPelipperLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE( 3, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_MIST),
- LEVEL_UP_MOVE(25, MOVE_PROTECT),
- LEVEL_UP_MOVE(33, MOVE_STOCKPILE),
- LEVEL_UP_MOVE(33, MOVE_SWALLOW),
- LEVEL_UP_MOVE(47, MOVE_SPIT_UP),
- LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gSurskitLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(31, MOVE_AGILITY),
- LEVEL_UP_MOVE(37, MOVE_MIST),
- LEVEL_UP_MOVE(37, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gMasquerainLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE(26, MOVE_GUST),
- LEVEL_UP_MOVE(33, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(40, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(47, MOVE_SILVER_WIND),
- LEVEL_UP_MOVE(53, MOVE_WHIRLWIND),
- LEVEL_UP_END
-};
-
-const u16 gWailmerLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 5, MOVE_GROWL),
- LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(14, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL),
- LEVEL_UP_MOVE(23, MOVE_ASTONISH),
- LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
- LEVEL_UP_MOVE(32, MOVE_MIST),
- LEVEL_UP_MOVE(37, MOVE_REST),
- LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT),
- LEVEL_UP_MOVE(46, MOVE_AMNESIA),
- LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gWailordLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
- LEVEL_UP_MOVE( 5, MOVE_GROWL),
- LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(14, MOVE_ROLLOUT),
- LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL),
- LEVEL_UP_MOVE(23, MOVE_ASTONISH),
- LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
- LEVEL_UP_MOVE(32, MOVE_MIST),
- LEVEL_UP_MOVE(37, MOVE_REST),
- LEVEL_UP_MOVE(44, MOVE_WATER_SPOUT),
- LEVEL_UP_MOVE(52, MOVE_AMNESIA),
- LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gSkittyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 7, MOVE_ATTRACT),
- LEVEL_UP_MOVE(13, MOVE_SING),
- LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP),
- LEVEL_UP_MOVE(19, MOVE_ASSIST),
- LEVEL_UP_MOVE(25, MOVE_CHARM),
- LEVEL_UP_MOVE(27, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(31, MOVE_COVET),
- LEVEL_UP_MOVE(37, MOVE_HEAL_BELL),
- LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gDelcattyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
- LEVEL_UP_MOVE( 1, MOVE_SING),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
- LEVEL_UP_END
-};
-
-const u16 gKecleonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_THIEF),
- LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 1, MOVE_LICK),
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 4, MOVE_BIND),
- LEVEL_UP_MOVE( 7, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(24, MOVE_SCREECH),
- LEVEL_UP_MOVE(31, MOVE_SLASH),
- LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE),
- LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER),
- LEVEL_UP_END
-};
-
-const u16 gBaltoyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 3, MOVE_HARDEN),
- LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(11, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
- LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(37, MOVE_COSMIC_POWER),
- LEVEL_UP_MOVE(45, MOVE_EXPLOSION),
- LEVEL_UP_END
-};
-
-const u16 gClaydolLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE( 3, MOVE_HARDEN),
- LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
- LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(11, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
- LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT),
- LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM),
- LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER),
- LEVEL_UP_MOVE(55, MOVE_EXPLOSION),
- LEVEL_UP_END
-};
-
-const u16 gNosepassLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(16, MOVE_BLOCK),
- LEVEL_UP_MOVE(22, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(37, MOVE_REST),
- LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON),
- LEVEL_UP_MOVE(46, MOVE_LOCK_ON),
- LEVEL_UP_END
-};
-
-const u16 gTorkoalLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 4, MOVE_SMOG),
- LEVEL_UP_MOVE( 7, MOVE_CURSE),
- LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN),
- LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN),
- LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(27, MOVE_PROTECT),
- LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(40, MOVE_AMNESIA),
- LEVEL_UP_MOVE(43, MOVE_FLAIL),
- LEVEL_UP_MOVE(46, MOVE_HEAT_WAVE),
- LEVEL_UP_END
-};
-
-const u16 gSableyeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 5, MOVE_FORESIGHT),
- LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(13, MOVE_ASTONISH),
- LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(21, MOVE_FAKE_OUT),
- LEVEL_UP_MOVE(25, MOVE_DETECT),
- LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(33, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
- LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK),
- LEVEL_UP_END
-};
-
-const u16 gBarboachLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(21, MOVE_AMNESIA),
- LEVEL_UP_MOVE(26, MOVE_REST),
- LEVEL_UP_MOVE(26, MOVE_SNORE),
- LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(41, MOVE_FISSURE),
- LEVEL_UP_END
-};
-
-const u16 gWhiscashLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TICKLE),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(21, MOVE_AMNESIA),
- LEVEL_UP_MOVE(26, MOVE_REST),
- LEVEL_UP_MOVE(26, MOVE_SNORE),
- LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(56, MOVE_FISSURE),
- LEVEL_UP_END
-};
-
-const u16 gLuvdiscLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 4, MOVE_CHARM),
- LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(16, MOVE_AGILITY),
- LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(28, MOVE_ATTRACT),
- LEVEL_UP_MOVE(36, MOVE_SWEET_KISS),
- LEVEL_UP_MOVE(40, MOVE_FLAIL),
- LEVEL_UP_MOVE(48, MOVE_SAFEGUARD),
- LEVEL_UP_END
-};
-
-const u16 gCorphishLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_MOVE(10, MOVE_VICE_GRIP),
- LEVEL_UP_MOVE(13, MOVE_LEER),
- LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(23, MOVE_PROTECT),
- LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE(32, MOVE_TAUNT),
- LEVEL_UP_MOVE(35, MOVE_CRABHAMMER),
- LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE),
- LEVEL_UP_MOVE(44, MOVE_GUILLOTINE),
- LEVEL_UP_END
-};
-
-const u16 gCrawdauntLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_MOVE(10, MOVE_VICE_GRIP),
- LEVEL_UP_MOVE(13, MOVE_LEER),
- LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
- LEVEL_UP_MOVE(23, MOVE_PROTECT),
- LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE(34, MOVE_TAUNT),
- LEVEL_UP_MOVE(39, MOVE_CRABHAMMER),
- LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE),
- LEVEL_UP_MOVE(52, MOVE_GUILLOTINE),
- LEVEL_UP_END
-};
-
-const u16 gFeebasLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE(15, MOVE_TACKLE),
- LEVEL_UP_MOVE(30, MOVE_FLAIL),
- LEVEL_UP_END
-};
-
-const u16 gMiloticLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 5, MOVE_WRAP),
- LEVEL_UP_MOVE(10, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE(15, MOVE_REFRESH),
- LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
- LEVEL_UP_MOVE(25, MOVE_TWISTER),
- LEVEL_UP_MOVE(30, MOVE_RECOVER),
- LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(45, MOVE_ATTRACT),
- LEVEL_UP_MOVE(50, MOVE_SAFEGUARD),
- LEVEL_UP_END
-};
-
-const u16 gCarvanhaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 7, MOVE_RAGE),
- LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(22, MOVE_CRUNCH),
- LEVEL_UP_MOVE(28, MOVE_SCREECH),
- LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(37, MOVE_SWAGGER),
- LEVEL_UP_MOVE(43, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gSharpedoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_RAGE),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 7, MOVE_RAGE),
- LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(22, MOVE_CRUNCH),
- LEVEL_UP_MOVE(28, MOVE_SCREECH),
- LEVEL_UP_MOVE(33, MOVE_SLASH),
- LEVEL_UP_MOVE(38, MOVE_TAUNT),
- LEVEL_UP_MOVE(43, MOVE_SWAGGER),
- LEVEL_UP_MOVE(48, MOVE_SKULL_BASH),
- LEVEL_UP_MOVE(53, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gTrapinchLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE(33, MOVE_CRUNCH),
- LEVEL_UP_MOVE(41, MOVE_DIG),
- LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gVibravaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE(33, MOVE_CRUNCH),
- LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
- LEVEL_UP_MOVE(41, MOVE_SCREECH),
- LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gFlygonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
- LEVEL_UP_MOVE(33, MOVE_CRUNCH),
- LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
- LEVEL_UP_MOVE(41, MOVE_SCREECH),
- LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
- LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gMakuhitaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(10, MOVE_ARM_THRUST),
- LEVEL_UP_MOVE(13, MOVE_VITAL_THROW),
- LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
- LEVEL_UP_MOVE(22, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE(31, MOVE_SMELLING_SALT),
- LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM),
- LEVEL_UP_MOVE(40, MOVE_ENDURE),
- LEVEL_UP_MOVE(46, MOVE_SEISMIC_TOSS),
- LEVEL_UP_MOVE(49, MOVE_REVERSAL),
- LEVEL_UP_END
-};
-
-const u16 gHariyamaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
- LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(10, MOVE_ARM_THRUST),
- LEVEL_UP_MOVE(13, MOVE_VITAL_THROW),
- LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
- LEVEL_UP_MOVE(22, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE(33, MOVE_SMELLING_SALT),
- LEVEL_UP_MOVE(40, MOVE_BELLY_DRUM),
- LEVEL_UP_MOVE(44, MOVE_ENDURE),
- LEVEL_UP_MOVE(51, MOVE_SEISMIC_TOSS),
- LEVEL_UP_MOVE(55, MOVE_REVERSAL),
- LEVEL_UP_END
-};
-
-const u16 gElectrikeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE( 9, MOVE_LEER),
- LEVEL_UP_MOVE(12, MOVE_HOWL),
- LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(20, MOVE_SPARK),
- LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(28, MOVE_ROAR),
- LEVEL_UP_MOVE(33, MOVE_BITE),
- LEVEL_UP_MOVE(36, MOVE_THUNDER),
- LEVEL_UP_MOVE(41, MOVE_CHARGE),
- LEVEL_UP_END
-};
-
-const u16 gManectricLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_HOWL),
- LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE( 9, MOVE_LEER),
- LEVEL_UP_MOVE(12, MOVE_HOWL),
- LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(20, MOVE_SPARK),
- LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(31, MOVE_ROAR),
- LEVEL_UP_MOVE(39, MOVE_BITE),
- LEVEL_UP_MOVE(45, MOVE_THUNDER),
- LEVEL_UP_MOVE(53, MOVE_CHARGE),
- LEVEL_UP_END
-};
-
-const u16 gNumelLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE(11, MOVE_EMBER),
- LEVEL_UP_MOVE(19, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(31, MOVE_AMNESIA),
- LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER),
- LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gCameruptLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_EMBER),
- LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(11, MOVE_EMBER),
- LEVEL_UP_MOVE(19, MOVE_MAGNITUDE),
- LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(31, MOVE_AMNESIA),
- LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(45, MOVE_ERUPTION),
- LEVEL_UP_MOVE(55, MOVE_FISSURE),
- LEVEL_UP_END
-};
-
-const u16 gSphealLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 7, MOVE_ENCORE),
- LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
- LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(31, MOVE_HAIL),
- LEVEL_UP_MOVE(37, MOVE_REST),
- LEVEL_UP_MOVE(37, MOVE_SNORE),
- LEVEL_UP_MOVE(43, MOVE_BLIZZARD),
- LEVEL_UP_MOVE(49, MOVE_SHEER_COLD),
- LEVEL_UP_END
-};
-
-const u16 gSealeoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_ENCORE),
- LEVEL_UP_MOVE( 7, MOVE_ENCORE),
- LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
- LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(31, MOVE_HAIL),
- LEVEL_UP_MOVE(39, MOVE_REST),
- LEVEL_UP_MOVE(39, MOVE_SNORE),
- LEVEL_UP_MOVE(47, MOVE_BLIZZARD),
- LEVEL_UP_MOVE(55, MOVE_SHEER_COLD),
- LEVEL_UP_END
-};
-
-const u16 gWalreinLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_ENCORE),
- LEVEL_UP_MOVE( 7, MOVE_ENCORE),
- LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
- LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
- LEVEL_UP_MOVE(31, MOVE_HAIL),
- LEVEL_UP_MOVE(39, MOVE_REST),
- LEVEL_UP_MOVE(39, MOVE_SNORE),
- LEVEL_UP_MOVE(50, MOVE_BLIZZARD),
- LEVEL_UP_MOVE(61, MOVE_SHEER_COLD),
- LEVEL_UP_END
-};
-
-const u16 gCacneaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 5, MOVE_ABSORB),
- LEVEL_UP_MOVE( 9, MOVE_GROWTH),
- LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE),
- LEVEL_UP_MOVE(25, MOVE_INGRAIN),
- LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(33, MOVE_SPIKES),
- LEVEL_UP_MOVE(37, MOVE_NEEDLE_ARM),
- LEVEL_UP_MOVE(41, MOVE_COTTON_SPORE),
- LEVEL_UP_MOVE(45, MOVE_SANDSTORM),
- LEVEL_UP_END
-};
-
-const u16 gCacturneLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 1, MOVE_GROWTH),
- LEVEL_UP_MOVE( 5, MOVE_ABSORB),
- LEVEL_UP_MOVE( 9, MOVE_GROWTH),
- LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE),
- LEVEL_UP_MOVE(25, MOVE_INGRAIN),
- LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(35, MOVE_SPIKES),
- LEVEL_UP_MOVE(41, MOVE_NEEDLE_ARM),
- LEVEL_UP_MOVE(47, MOVE_COTTON_SPORE),
- LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
- LEVEL_UP_END
-};
-
-const u16 gSnoruntLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(10, MOVE_BITE),
- LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
- LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(25, MOVE_PROTECT),
- LEVEL_UP_MOVE(28, MOVE_CRUNCH),
- LEVEL_UP_MOVE(34, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(37, MOVE_HAIL),
- LEVEL_UP_MOVE(43, MOVE_BLIZZARD),
- LEVEL_UP_END
-};
-
-const u16 gGlalieLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(10, MOVE_BITE),
- LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
- LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(25, MOVE_PROTECT),
- LEVEL_UP_MOVE(28, MOVE_CRUNCH),
- LEVEL_UP_MOVE(34, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(42, MOVE_HAIL),
- LEVEL_UP_MOVE(53, MOVE_BLIZZARD),
- LEVEL_UP_MOVE(61, MOVE_SHEER_COLD),
- LEVEL_UP_END
-};
-
-const u16 gLunatoneLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
- LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(25, MOVE_PSYWAVE),
- LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER),
- LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(49, MOVE_EXPLOSION),
- LEVEL_UP_END
-};
-
-const u16 gSolrockLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
- LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN),
- LEVEL_UP_MOVE(25, MOVE_PSYWAVE),
- LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER),
- LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE),
- LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
- LEVEL_UP_MOVE(49, MOVE_EXPLOSION),
- LEVEL_UP_END
-};
-
-const u16 gAzurillLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 3, MOVE_CHARM),
- LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
- LEVEL_UP_MOVE(10, MOVE_BUBBLE),
- LEVEL_UP_MOVE(15, MOVE_SLAM),
- LEVEL_UP_MOVE(21, MOVE_WATER_GUN),
- LEVEL_UP_END
-};
-
-const u16 gSpoinkLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
- LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(19, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT),
- LEVEL_UP_MOVE(34, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(37, MOVE_REST),
- LEVEL_UP_MOVE(37, MOVE_SNORE),
- LEVEL_UP_MOVE(43, MOVE_BOUNCE),
- LEVEL_UP_END
-};
-
-const u16 gGrumpigLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
- LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
- LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
- LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
- LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
- LEVEL_UP_MOVE(19, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT),
- LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(43, MOVE_REST),
- LEVEL_UP_MOVE(43, MOVE_SNORE),
- LEVEL_UP_MOVE(55, MOVE_BOUNCE),
- LEVEL_UP_END
-};
-
-const u16 gPlusleLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(19, MOVE_SPARK),
- LEVEL_UP_MOVE(22, MOVE_ENCORE),
- LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
- LEVEL_UP_MOVE(31, MOVE_CHARGE),
- LEVEL_UP_MOVE(37, MOVE_THUNDER),
- LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(47, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gMinunLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
- LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(19, MOVE_SPARK),
- LEVEL_UP_MOVE(22, MOVE_ENCORE),
- LEVEL_UP_MOVE(28, MOVE_CHARM),
- LEVEL_UP_MOVE(31, MOVE_CHARGE),
- LEVEL_UP_MOVE(37, MOVE_THUNDER),
- LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(47, MOVE_AGILITY),
- LEVEL_UP_END
-};
-
-const u16 gMawileLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS),
- LEVEL_UP_MOVE(11, MOVE_BITE),
- LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(21, MOVE_VICE_GRIP),
- LEVEL_UP_MOVE(26, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(31, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(36, MOVE_CRUNCH),
- LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(46, MOVE_STOCKPILE),
- LEVEL_UP_MOVE(46, MOVE_SWALLOW),
- LEVEL_UP_MOVE(46, MOVE_SPIT_UP),
- LEVEL_UP_END
-};
-
-const u16 gMedititeLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BIDE),
- LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
- LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
- LEVEL_UP_MOVE(12, MOVE_DETECT),
- LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER),
- LEVEL_UP_MOVE(22, MOVE_MIND_READER),
- LEVEL_UP_MOVE(28, MOVE_CALM_MIND),
- LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK),
- LEVEL_UP_MOVE(38, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(42, MOVE_REVERSAL),
- LEVEL_UP_MOVE(48, MOVE_RECOVER),
- LEVEL_UP_END
-};
-
-const u16 gMedichamLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
- LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
- LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
- LEVEL_UP_MOVE( 1, MOVE_BIDE),
- LEVEL_UP_MOVE( 1, MOVE_MEDITATE),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 1, MOVE_DETECT),
- LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
- LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
- LEVEL_UP_MOVE(12, MOVE_DETECT),
- LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER),
- LEVEL_UP_MOVE(22, MOVE_MIND_READER),
- LEVEL_UP_MOVE(28, MOVE_CALM_MIND),
- LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK),
- LEVEL_UP_MOVE(40, MOVE_PSYCH_UP),
- LEVEL_UP_MOVE(46, MOVE_REVERSAL),
- LEVEL_UP_MOVE(54, MOVE_RECOVER),
- LEVEL_UP_END
-};
-
-const u16 gSwabluLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
- LEVEL_UP_MOVE(11, MOVE_SING),
- LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(28, MOVE_MIST),
- LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE),
- LEVEL_UP_MOVE(41, MOVE_REFRESH),
- LEVEL_UP_MOVE(48, MOVE_PERISH_SONG),
- LEVEL_UP_END
-};
-
-const u16 gAltariaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PECK),
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 1, MOVE_SING),
- LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
- LEVEL_UP_MOVE(11, MOVE_SING),
- LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(28, MOVE_MIST),
- LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
- LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE),
- LEVEL_UP_MOVE(45, MOVE_REFRESH),
- LEVEL_UP_MOVE(54, MOVE_PERISH_SONG),
- LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK),
- LEVEL_UP_END
-};
-
-const u16 gWynautLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SPLASH),
- LEVEL_UP_MOVE( 1, MOVE_CHARM),
- LEVEL_UP_MOVE( 1, MOVE_ENCORE),
- LEVEL_UP_MOVE(15, MOVE_COUNTER),
- LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT),
- LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND),
- LEVEL_UP_END
-};
-
-const u16 gDuskullLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE( 5, MOVE_DISABLE),
- LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(16, MOVE_ASTONISH),
- LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(27, MOVE_PURSUIT),
- LEVEL_UP_MOVE(34, MOVE_CURSE),
- LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP),
- LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT),
- LEVEL_UP_END
-};
-
-const u16 gDusclopsLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_BIND),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE( 1, MOVE_DISABLE),
- LEVEL_UP_MOVE( 5, MOVE_DISABLE),
- LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
- LEVEL_UP_MOVE(16, MOVE_ASTONISH),
- LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(27, MOVE_PURSUIT),
- LEVEL_UP_MOVE(34, MOVE_CURSE),
- LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH),
- LEVEL_UP_MOVE(41, MOVE_WILL_O_WISP),
- LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK),
- LEVEL_UP_MOVE(58, MOVE_FUTURE_SIGHT),
- LEVEL_UP_END
-};
-
-const u16 gRoseliaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ABSORB),
- LEVEL_UP_MOVE( 5, MOVE_GROWTH),
- LEVEL_UP_MOVE( 9, MOVE_POISON_STING),
- LEVEL_UP_MOVE(13, MOVE_STUN_SPORE),
- LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN),
- LEVEL_UP_MOVE(21, MOVE_LEECH_SEED),
- LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF),
- LEVEL_UP_MOVE(29, MOVE_GRASS_WHISTLE),
- LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN),
- LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(41, MOVE_INGRAIN),
- LEVEL_UP_MOVE(45, MOVE_TOXIC),
- LEVEL_UP_MOVE(49, MOVE_PETAL_DANCE),
- LEVEL_UP_MOVE(53, MOVE_AROMATHERAPY),
- LEVEL_UP_MOVE(57, MOVE_SYNTHESIS),
- LEVEL_UP_END
-};
-
-const u16 gSlakothLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_YAWN),
- LEVEL_UP_MOVE( 7, MOVE_ENCORE),
- LEVEL_UP_MOVE(13, MOVE_SLACK_OFF),
- LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(25, MOVE_AMNESIA),
- LEVEL_UP_MOVE(31, MOVE_COVET),
- LEVEL_UP_MOVE(37, MOVE_COUNTER),
- LEVEL_UP_MOVE(43, MOVE_FLAIL),
- LEVEL_UP_END
-};
-
-const u16 gVigorothLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE( 1, MOVE_ENCORE),
- LEVEL_UP_MOVE( 1, MOVE_UPROAR),
- LEVEL_UP_MOVE( 7, MOVE_ENCORE),
- LEVEL_UP_MOVE(13, MOVE_UPROAR),
- LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES),
- LEVEL_UP_MOVE(25, MOVE_ENDURE),
- LEVEL_UP_MOVE(31, MOVE_SLASH),
- LEVEL_UP_MOVE(37, MOVE_COUNTER),
- LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH),
- LEVEL_UP_MOVE(49, MOVE_REVERSAL),
- LEVEL_UP_END
-};
-
-const u16 gSlakingLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_YAWN),
- LEVEL_UP_MOVE( 1, MOVE_ENCORE),
- LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
- LEVEL_UP_MOVE( 7, MOVE_ENCORE),
- LEVEL_UP_MOVE(13, MOVE_SLACK_OFF),
- LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(25, MOVE_AMNESIA),
- LEVEL_UP_MOVE(31, MOVE_COVET),
- LEVEL_UP_MOVE(36, MOVE_SWAGGER),
- LEVEL_UP_MOVE(37, MOVE_COUNTER),
- LEVEL_UP_MOVE(43, MOVE_FLAIL),
- LEVEL_UP_END
-};
-
-const u16 gGulpinLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 6, MOVE_YAWN),
- LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
- LEVEL_UP_MOVE(14, MOVE_SLUDGE),
- LEVEL_UP_MOVE(17, MOVE_AMNESIA),
- LEVEL_UP_MOVE(23, MOVE_ENCORE),
- LEVEL_UP_MOVE(28, MOVE_TOXIC),
- LEVEL_UP_MOVE(34, MOVE_STOCKPILE),
- LEVEL_UP_MOVE(34, MOVE_SPIT_UP),
- LEVEL_UP_MOVE(34, MOVE_SWALLOW),
- LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB),
- LEVEL_UP_END
-};
-
-const u16 gSwalotLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_YAWN),
- LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
- LEVEL_UP_MOVE( 1, MOVE_SLUDGE),
- LEVEL_UP_MOVE( 6, MOVE_YAWN),
- LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
- LEVEL_UP_MOVE(14, MOVE_SLUDGE),
- LEVEL_UP_MOVE(17, MOVE_AMNESIA),
- LEVEL_UP_MOVE(23, MOVE_ENCORE),
- LEVEL_UP_MOVE(26, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(31, MOVE_TOXIC),
- LEVEL_UP_MOVE(40, MOVE_STOCKPILE),
- LEVEL_UP_MOVE(40, MOVE_SPIT_UP),
- LEVEL_UP_MOVE(40, MOVE_SWALLOW),
- LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB),
- LEVEL_UP_END
-};
-
-const u16 gTropiusLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_GUST),
- LEVEL_UP_MOVE( 7, MOVE_GROWTH),
- LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF),
- LEVEL_UP_MOVE(17, MOVE_STOMP),
- LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
- LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF),
- LEVEL_UP_MOVE(37, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM),
- LEVEL_UP_MOVE(47, MOVE_SYNTHESIS),
- LEVEL_UP_END
-};
-
-const u16 gWhismurLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 5, MOVE_UPROAR),
- LEVEL_UP_MOVE(11, MOVE_ASTONISH),
- LEVEL_UP_MOVE(15, MOVE_HOWL),
- LEVEL_UP_MOVE(21, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(25, MOVE_STOMP),
- LEVEL_UP_MOVE(31, MOVE_SCREECH),
- LEVEL_UP_MOVE(35, MOVE_ROAR),
- LEVEL_UP_MOVE(41, MOVE_REST),
- LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK),
- LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
- LEVEL_UP_END
-};
-
-const u16 gLoudredLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_UPROAR),
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 1, MOVE_HOWL),
- LEVEL_UP_MOVE( 5, MOVE_UPROAR),
- LEVEL_UP_MOVE(11, MOVE_ASTONISH),
- LEVEL_UP_MOVE(15, MOVE_HOWL),
- LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(29, MOVE_STOMP),
- LEVEL_UP_MOVE(37, MOVE_SCREECH),
- LEVEL_UP_MOVE(43, MOVE_ROAR),
- LEVEL_UP_MOVE(51, MOVE_REST),
- LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK),
- LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE),
- LEVEL_UP_END
-};
-
-const u16 gExploudLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_POUND),
- LEVEL_UP_MOVE( 1, MOVE_UPROAR),
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 1, MOVE_HOWL),
- LEVEL_UP_MOVE( 5, MOVE_UPROAR),
- LEVEL_UP_MOVE(11, MOVE_ASTONISH),
- LEVEL_UP_MOVE(15, MOVE_HOWL),
- LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
- LEVEL_UP_MOVE(29, MOVE_STOMP),
- LEVEL_UP_MOVE(37, MOVE_SCREECH),
- LEVEL_UP_MOVE(40, MOVE_HYPER_BEAM),
- LEVEL_UP_MOVE(45, MOVE_ROAR),
- LEVEL_UP_MOVE(55, MOVE_REST),
- LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK),
- LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE),
- LEVEL_UP_END
-};
-
-const u16 gClamperlLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_CLAMP),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
- LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
- LEVEL_UP_END
-};
-
-const u16 gHuntailLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
- LEVEL_UP_MOVE( 8, MOVE_BITE),
- LEVEL_UP_MOVE(15, MOVE_SCREECH),
- LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
- LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(36, MOVE_CRUNCH),
- LEVEL_UP_MOVE(43, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gGorebyssLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
- LEVEL_UP_MOVE( 8, MOVE_CONFUSION),
- LEVEL_UP_MOVE(15, MOVE_AGILITY),
- LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
- LEVEL_UP_MOVE(29, MOVE_AMNESIA),
- LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(43, MOVE_BATON_PASS),
- LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gAbsolLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 5, MOVE_LEER),
- LEVEL_UP_MOVE( 9, MOVE_TAUNT),
- LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND),
- LEVEL_UP_MOVE(21, MOVE_BITE),
- LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE),
- LEVEL_UP_MOVE(31, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(36, MOVE_SLASH),
- LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(46, MOVE_PERISH_SONG),
- LEVEL_UP_END
-};
-
-const u16 gShuppetLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE( 8, MOVE_SCREECH),
- LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(20, MOVE_CURSE),
- LEVEL_UP_MOVE(25, MOVE_SPITE),
- LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP),
- LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL),
- LEVEL_UP_MOVE(49, MOVE_SNATCH),
- LEVEL_UP_MOVE(56, MOVE_GRUDGE),
- LEVEL_UP_END
-};
-
-const u16 gBanetteLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE( 1, MOVE_SCREECH),
- LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE( 1, MOVE_CURSE),
- LEVEL_UP_MOVE( 8, MOVE_SCREECH),
- LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(20, MOVE_CURSE),
- LEVEL_UP_MOVE(25, MOVE_SPITE),
- LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP),
- LEVEL_UP_MOVE(39, MOVE_FAINT_ATTACK),
- LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
- LEVEL_UP_MOVE(55, MOVE_SNATCH),
- LEVEL_UP_MOVE(64, MOVE_GRUDGE),
- LEVEL_UP_END
-};
-
-const u16 gSeviperLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 7, MOVE_LICK),
- LEVEL_UP_MOVE(10, MOVE_BITE),
- LEVEL_UP_MOVE(16, MOVE_POISON_TAIL),
- LEVEL_UP_MOVE(19, MOVE_SCREECH),
- LEVEL_UP_MOVE(25, MOVE_GLARE),
- LEVEL_UP_MOVE(28, MOVE_CRUNCH),
- LEVEL_UP_MOVE(34, MOVE_POISON_FANG),
- LEVEL_UP_MOVE(37, MOVE_SWAGGER),
- LEVEL_UP_MOVE(43, MOVE_HAZE),
- LEVEL_UP_END
-};
-
-const u16 gZangooseLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 4, MOVE_LEER),
- LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(10, MOVE_SWORDS_DANCE),
- LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER),
- LEVEL_UP_MOVE(19, MOVE_SLASH),
- LEVEL_UP_MOVE(25, MOVE_PURSUIT),
- LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW),
- LEVEL_UP_MOVE(37, MOVE_TAUNT),
- LEVEL_UP_MOVE(46, MOVE_DETECT),
- LEVEL_UP_MOVE(55, MOVE_FALSE_SWIPE),
- LEVEL_UP_END
-};
-
-const u16 gRelicanthLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
- LEVEL_UP_MOVE(22, MOVE_YAWN),
- LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(36, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(50, MOVE_REST),
- LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
- LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP),
- LEVEL_UP_END
-};
-
-const u16 gAronLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 4, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(21, MOVE_ROAR),
- LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
- LEVEL_UP_MOVE(34, MOVE_PROTECT),
- LEVEL_UP_MOVE(39, MOVE_METAL_SOUND),
- LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gLaironLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
- LEVEL_UP_MOVE( 4, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(21, MOVE_ROAR),
- LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
- LEVEL_UP_MOVE(37, MOVE_PROTECT),
- LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
- LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gAggronLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
- LEVEL_UP_MOVE( 4, MOVE_HARDEN),
- LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
- LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(21, MOVE_ROAR),
- LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
- LEVEL_UP_MOVE(37, MOVE_PROTECT),
- LEVEL_UP_MOVE(50, MOVE_METAL_SOUND),
- LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gCastformLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(10, MOVE_EMBER),
- LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
- LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE),
- LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY),
- LEVEL_UP_MOVE(20, MOVE_HAIL),
- LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL),
- LEVEL_UP_END
-};
-
-const u16 gVolbeatLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(13, MOVE_MOONLIGHT),
- LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW),
- LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM),
- LEVEL_UP_MOVE(29, MOVE_PROTECT),
- LEVEL_UP_MOVE(33, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gIllumiseLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TACKLE),
- LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
- LEVEL_UP_MOVE( 9, MOVE_CHARM),
- LEVEL_UP_MOVE(13, MOVE_MOONLIGHT),
- LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
- LEVEL_UP_MOVE(21, MOVE_WISH),
- LEVEL_UP_MOVE(25, MOVE_ENCORE),
- LEVEL_UP_MOVE(29, MOVE_FLATTER),
- LEVEL_UP_MOVE(33, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(37, MOVE_COVET),
- LEVEL_UP_END
-};
-
-const u16 gLileepLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
- LEVEL_UP_MOVE(15, MOVE_ACID),
- LEVEL_UP_MOVE(22, MOVE_INGRAIN),
- LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(36, MOVE_AMNESIA),
- LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(50, MOVE_STOCKPILE),
- LEVEL_UP_MOVE(50, MOVE_SPIT_UP),
- LEVEL_UP_MOVE(50, MOVE_SWALLOW),
- LEVEL_UP_END
-};
-
-const u16 gCradilyLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
- LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
- LEVEL_UP_MOVE( 1, MOVE_ACID),
- LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
- LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
- LEVEL_UP_MOVE(15, MOVE_ACID),
- LEVEL_UP_MOVE(22, MOVE_INGRAIN),
- LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
- LEVEL_UP_MOVE(36, MOVE_AMNESIA),
- LEVEL_UP_MOVE(48, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(60, MOVE_STOCKPILE),
- LEVEL_UP_MOVE(60, MOVE_SPIT_UP),
- LEVEL_UP_MOVE(60, MOVE_SWALLOW),
- LEVEL_UP_END
-};
-
-const u16 gAnorithLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_MOVE(13, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(31, MOVE_PROTECT),
- LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(43, MOVE_FURY_CUTTER),
- LEVEL_UP_MOVE(49, MOVE_SLASH),
- LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST),
- LEVEL_UP_END
-};
-
-const u16 gArmaldoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
- LEVEL_UP_MOVE( 1, MOVE_HARDEN),
- LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
- LEVEL_UP_MOVE( 7, MOVE_HARDEN),
- LEVEL_UP_MOVE(13, MOVE_MUD_SPORT),
- LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
- LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(31, MOVE_PROTECT),
- LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
- LEVEL_UP_MOVE(55, MOVE_SLASH),
- LEVEL_UP_MOVE(64, MOVE_ROCK_BLAST),
- LEVEL_UP_END
-};
-
-const u16 gRaltsLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
- LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(16, MOVE_TELEPORT),
- LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
- LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(31, MOVE_IMPRISON),
- LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(41, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(46, MOVE_DREAM_EATER),
- LEVEL_UP_END
-};
-
-const u16 gKirliaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
- LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
- LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(16, MOVE_TELEPORT),
- LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
- LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(33, MOVE_IMPRISON),
- LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(47, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(54, MOVE_DREAM_EATER),
- LEVEL_UP_END
-};
-
-const u16 gGardevoirLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_GROWL),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
- LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
- LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
- LEVEL_UP_MOVE(16, MOVE_TELEPORT),
- LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
- LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(33, MOVE_IMPRISON),
- LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(51, MOVE_HYPNOSIS),
- LEVEL_UP_MOVE(60, MOVE_DREAM_EATER),
- LEVEL_UP_END
-};
-
-const u16 gBagonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_RAGE),
- LEVEL_UP_MOVE( 5, MOVE_BITE),
- LEVEL_UP_MOVE( 9, MOVE_LEER),
- LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(25, MOVE_EMBER),
- LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH),
- LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(41, MOVE_CRUNCH),
- LEVEL_UP_MOVE(49, MOVE_DRAGON_CLAW),
- LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gShelgonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_RAGE),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
- LEVEL_UP_MOVE( 5, MOVE_BITE),
- LEVEL_UP_MOVE( 9, MOVE_LEER),
- LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(25, MOVE_EMBER),
- LEVEL_UP_MOVE(30, MOVE_PROTECT),
- LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH),
- LEVEL_UP_MOVE(47, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(56, MOVE_CRUNCH),
- LEVEL_UP_MOVE(69, MOVE_DRAGON_CLAW),
- LEVEL_UP_MOVE(78, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gSalamenceLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_RAGE),
- LEVEL_UP_MOVE( 1, MOVE_BITE),
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
- LEVEL_UP_MOVE( 5, MOVE_BITE),
- LEVEL_UP_MOVE( 9, MOVE_LEER),
- LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
- LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
- LEVEL_UP_MOVE(25, MOVE_EMBER),
- LEVEL_UP_MOVE(30, MOVE_PROTECT),
- LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH),
- LEVEL_UP_MOVE(47, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(50, MOVE_FLY),
- LEVEL_UP_MOVE(61, MOVE_CRUNCH),
- LEVEL_UP_MOVE(79, MOVE_DRAGON_CLAW),
- LEVEL_UP_MOVE(93, MOVE_DOUBLE_EDGE),
- LEVEL_UP_END
-};
-
-const u16 gBeldumLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
- LEVEL_UP_END
-};
-
-const u16 gMetangLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(20, MOVE_CONFUSION),
- LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(26, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(32, MOVE_PURSUIT),
- LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(50, MOVE_METEOR_MASH),
- LEVEL_UP_MOVE(56, MOVE_AGILITY),
- LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gMetagrossLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(20, MOVE_CONFUSION),
- LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(26, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(32, MOVE_PURSUIT),
- LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(55, MOVE_METEOR_MASH),
- LEVEL_UP_MOVE(66, MOVE_AGILITY),
- LEVEL_UP_MOVE(77, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gRegirockLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
- LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
- LEVEL_UP_MOVE(17, MOVE_CURSE),
- LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
- LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
- LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
- LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gRegiceLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
- LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
- LEVEL_UP_MOVE(17, MOVE_CURSE),
- LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
- LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(41, MOVE_AMNESIA),
- LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
- LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
- LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gRegisteelLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
- LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW),
- LEVEL_UP_MOVE(17, MOVE_CURSE),
- LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
- LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
- LEVEL_UP_MOVE(41, MOVE_AMNESIA),
- LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
- LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
- LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gKyogreLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
- LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
- LEVEL_UP_MOVE(30, MOVE_CALM_MIND),
- LEVEL_UP_MOVE(35, MOVE_ICE_BEAM),
- LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
- LEVEL_UP_MOVE(50, MOVE_REST),
- LEVEL_UP_MOVE(60, MOVE_SHEER_COLD),
- LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE),
- LEVEL_UP_MOVE(75, MOVE_WATER_SPOUT),
- LEVEL_UP_END
-};
-
-const u16 gGroudonLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
- LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(20, MOVE_SLASH),
- LEVEL_UP_MOVE(30, MOVE_BULK_UP),
- LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE),
- LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST),
- LEVEL_UP_MOVE(50, MOVE_REST),
- LEVEL_UP_MOVE(60, MOVE_FISSURE),
- LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM),
- LEVEL_UP_MOVE(75, MOVE_ERUPTION),
- LEVEL_UP_END
-};
-
-const u16 gRayquazaLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_TWISTER),
- LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
- LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
- LEVEL_UP_MOVE(20, MOVE_DRAGON_CLAW),
- LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE),
- LEVEL_UP_MOVE(35, MOVE_CRUNCH),
- LEVEL_UP_MOVE(45, MOVE_FLY),
- LEVEL_UP_MOVE(50, MOVE_REST),
- LEVEL_UP_MOVE(60, MOVE_EXTREME_SPEED),
- LEVEL_UP_MOVE(65, MOVE_OUTRAGE),
- LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gLatiasLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
- LEVEL_UP_MOVE( 5, MOVE_WISH),
- LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
- LEVEL_UP_MOVE(25, MOVE_WATER_SPORT),
- LEVEL_UP_MOVE(30, MOVE_REFRESH),
- LEVEL_UP_MOVE(35, MOVE_MIST_BALL),
- LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(45, MOVE_RECOVER),
- LEVEL_UP_MOVE(50, MOVE_CHARM),
- LEVEL_UP_END
-};
-
-const u16 gLatiosLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
- LEVEL_UP_MOVE( 5, MOVE_MEMENTO),
- LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
- LEVEL_UP_MOVE(25, MOVE_PROTECT),
- LEVEL_UP_MOVE(30, MOVE_REFRESH),
- LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE),
- LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(45, MOVE_RECOVER),
- LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
- LEVEL_UP_END
-};
-
-const u16 gJirachiLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WISH),
- LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
- LEVEL_UP_MOVE( 5, MOVE_REST),
- LEVEL_UP_MOVE(10, MOVE_SWIFT),
- LEVEL_UP_MOVE(15, MOVE_HELPING_HAND),
- LEVEL_UP_MOVE(20, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(25, MOVE_REFRESH),
- LEVEL_UP_MOVE(30, MOVE_REST),
- LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE),
- LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT),
- LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER),
- LEVEL_UP_MOVE(50, MOVE_DOOM_DESIRE),
- LEVEL_UP_END
-};
-
-const u16 gDeoxysLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_LEER),
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE),
- LEVEL_UP_MOVE(10, MOVE_TELEPORT),
- LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF),
- LEVEL_UP_MOVE(20, MOVE_PURSUIT),
- LEVEL_UP_MOVE(25, MOVE_PSYCHIC),
- LEVEL_UP_MOVE(30, MOVE_SNATCH),
- LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER),
- LEVEL_UP_MOVE(40, MOVE_RECOVER),
- LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST),
- LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM),
- LEVEL_UP_END
-};
-
-const u16 gChimechoLevelUpLearnset[] = {
- LEVEL_UP_MOVE( 1, MOVE_WRAP),
- LEVEL_UP_MOVE( 6, MOVE_GROWL),
- LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
- LEVEL_UP_MOVE(14, MOVE_CONFUSION),
- LEVEL_UP_MOVE(17, MOVE_TAKE_DOWN),
- LEVEL_UP_MOVE(22, MOVE_UPROAR),
- LEVEL_UP_MOVE(25, MOVE_YAWN),
- LEVEL_UP_MOVE(30, MOVE_PSYWAVE),
- LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE),
- LEVEL_UP_MOVE(38, MOVE_HEAL_BELL),
- LEVEL_UP_MOVE(41, MOVE_SAFEGUARD),
- LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
- LEVEL_UP_END
-};
-
-#endif //POKERUBY_LEVEL_UP_LEARNSETS_H
diff --git a/include/data/pokemon/nature_stats.h b/include/data/pokemon/nature_stats.h
deleted file mode 100644
index 27bd98f9d..000000000
--- a/include/data/pokemon/nature_stats.h
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_NATURE_STATS_H
-#define POKERUBY_NATURE_STATS_H
-
-const s8 gNatureStatTable[][5] = {
- // Atk Def Spd Sp.Atk Sp.Def
- { 0, 0, 0, 0, 0}, // Hardy
- { 1, -1, 0, 0, 0}, // Lonely
- { 1, 0, -1, 0, 0}, // Brave
- { 1, 0, 0, -1, 0}, // Adamant
- { 1, 0, 0, 0, -1}, // Naughty
- { -1, 1, 0, 0, 0}, // Bold
- { 0, 0, 0, 0, 0}, // Docile
- { 0, 1, -1, 0, 0}, // Relaxed
- { 0, 1, 0, -1, 0}, // Impish
- { 0, 1, 0, 0, -1}, // Lax
- { -1, 0, 1, 0, 0}, // Timid
- { 0, -1, 1, 0, 0}, // Hasty
- { 0, 0, 0, 0, 0}, // Serious
- { 0, 0, 1, -1, 0}, // Jolly
- { 0, 0, 1, 0, -1}, // Naive
- { -1, 0, 0, 1, 0}, // Modest
- { 0, -1, 0, 1, 0}, // Mild
- { 0, 0, -1, 1, 0}, // Quiet
- { 0, 0, 0, 0, 0}, // Bashful
- { 0, 0, 0, 1, -1}, // Rash
- { -1, 0, 0, 0, 1}, // Calm
- { 0, -1, 0, 0, 1}, // Gentle
- { 0, 0, -1, 0, 1}, // Sassy
- { 0, 0, 0, -1, 1}, // Careful
- { 0, 0, 0, 0, 0} // Quirky
-};
-
-#endif //POKERUBY_NATURE_STATS_H
diff --git a/include/data/pokemon/spinda_spots.h b/include/data/pokemon/spinda_spots.h
deleted file mode 100644
index 234cdf00e..000000000
--- a/include/data/pokemon/spinda_spots.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_SPINDA_SPOTS_H
-#define POKERUBY_SPINDA_SPOTS_H
-
-const struct SpindaSpot gSpindaSpotGraphics[] = {
- {16, 14, INCBIN_U16("graphics/spinda_spots/spot_0.bin")},
- {40, 15, INCBIN_U16("graphics/spinda_spots/spot_1.bin")},
- {22, 32, INCBIN_U16("graphics/spinda_spots/spot_2.bin")},
- {34, 33, INCBIN_U16("graphics/spinda_spots/spot_3.bin")}
-};
-
-#endif //POKERUBY_SPINDA_SPOTS_H
diff --git a/include/data/pokemon/tmhm_learnsets.h b/include/data/pokemon/tmhm_learnsets.h
deleted file mode 100644
index fa48f7f5c..000000000
--- a/include/data/pokemon/tmhm_learnsets.h
+++ /dev/null
@@ -1,431 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_TMHM_LEARNSETS_H
-#define POKERUBY_TMHM_LEARNSETS_H
-
-// TO-DO: Rewrite this declaration to allow assignment of TM/HM learns by name.
-// These are 58-bit numbers aligned to 64 bits. The least significant bit represents TM01,
-// while the most significant bit represents HM08.
-
-asm(
- ".align 2\n"
- ".global gTMHMLearnsets\n"
- "gTMHMLearnsets:\n"
-
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ??????????
- ".8byte 0b0011100100000111100000100010000100001101010000011100100000\n" // Bulbasaur
- ".8byte 0b0011100100000111100000100010000100001101010000011100100000\n" // Ivysaur
- ".8byte 0b0011100100000111100000100010000110001101010100011100110000\n" // Venusaur
- ".8byte 0b0010100110000111101010010011001100010100010000011000100011\n" // Charmander
- ".8byte 0b0010100110000111101010010011001100010100010000011000100011\n" // Charmeleon
- ".8byte 0b0010101110010111101010010011001110010100010100011000110011\n" // Charizard
- ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Squirtle
- ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Wartortle
- ".8byte 0b1110110000000111100000000011001110010100110111001001110101\n" // Blastoise
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Caterpie
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Metapod
- ".8byte 0b0001000000101111101000000010110100001111110100011000100000\n" // Butterfree
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Weedle
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Kakuna
- ".8byte 0b0010000100001111101000100011000100001101010100011000100000\n" // Beedrill
- ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Pidgey
- ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Pidgeotto
- ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Pidgeot
- ".8byte 0b0010000100001111100000001010101101110100110011111000100000\n" // Rattata
- ".8byte 0b0010100100001111100000001010101101110100110111111000110000\n" // Raticate
- ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Spearow
- ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Fearow
- ".8byte 0b0000100001001111110000100010001110010101110000011000100000\n" // Ekans
- ".8byte 0b0000100001001111110000100010001110010101110100011000100000\n" // Arbok
- ".8byte 0b0011100000000111100000001011001101110100111000001000100001\n" // Pikachu
- ".8byte 0b0011100000001111100000001011001101110100111100001000100001\n" // Raichu
- ".8byte 0b0010100100001111101101000011001110010100010000011000100001\n" // Sandshrew
- ".8byte 0b0010100100001111101101000011001110010100010100011000100001\n" // Sandslash
- ".8byte 0b0010100100001111101000101010001101110100110011011000100100\n" // Nidoran♀
- ".8byte 0b0010100100001111101000101010001101110100110011011000100100\n" // Nidorina
- ".8byte 0b0010110100001111111111111011101111110100110111111000110101\n" // Nidoqueen
- ".8byte 0b0010100100001111100000101010001101110100110011011000100100\n" // Nidoran♂
- ".8byte 0b0010100100001111100000101010001101110100110011011000100100\n" // Nidorino
- ".8byte 0b0010110100001111110111111011101111110100110111111000110101\n" // Nidoking
- ".8byte 0b0001100001000111100010011111111101111110111011011000101101\n" // Clefairy
- ".8byte 0b0001100001000111100010011111111101111110111111011000101101\n" // Clefable
- ".8byte 0b0000000010000111100010010010001100010110010000011000110000\n" // Vulpix
- ".8byte 0b0000000010000111100010010010001100010110010100011000110000\n" // Ninetales
- ".8byte 0b0001100001000111100010011111111101101110111011011000100101\n" // Jigglypuff
- ".8byte 0b0001100001000111100010011111111101101110111111011000100101\n" // Wigglytuff
- ".8byte 0b0000000001011111111000100010100100000101110000111000100000\n" // Zubat
- ".8byte 0b0000000001011111111000100010100100000101110100111000100000\n" // Golbat
- ".8byte 0b0001000100000111100000100010000100001101010000011100100000\n" // Oddish
- ".8byte 0b0001000100000111100000100010000100001101010000011100100000\n" // Gloom
- ".8byte 0b0001000100000111100000100010000100001101010100011100100000\n" // Vileplume
- ".8byte 0b0011000100001111101000100010001100001101010000011100100000\n" // Paras
- ".8byte 0b0011000100001111101000100010001100001101010100011100100000\n" // Parasect
- ".8byte 0b0001000000101111100000100010010100001101010000011000100000\n" // Venonat
- ".8byte 0b0001000000101111101000100010010100001101010100011000100000\n" // Venomoth
- ".8byte 0b0010000100001111101100100010001110000100010000011000100000\n" // Diglett
- ".8byte 0b0010000100001111101100100010001110000100010100011000100000\n" // Dugtrio
- ".8byte 0b0001000101001111111000001010101101110100110000111000100100\n" // Meowth
- ".8byte 0b0001000101001111111000001010101101110100110100111000110100\n" // Persian
- ".8byte 0b1111110000000111101000000011001100010100110011001001101101\n" // Psyduck
- ".8byte 0b1111110000000111101000000011001100010100110111001001101101\n" // Golduck
- ".8byte 0b0010100010001111101100000011001111110100110000111010100001\n" // Mankey
- ".8byte 0b0010100010001111101100000011001111110100110100111010100001\n" // Primeape
- ".8byte 0b0010100010001111101010010010001100010100010000011000110000\n" // Growlithe
- ".8byte 0b0010100010001111101010010010001100010100010100011000110000\n" // Arcanine
- ".8byte 0b1100010000001111100000000010011100000100110011001001100100\n" // Poliwag
- ".8byte 0b1110110000001111100000000011011110000100110011001001100101\n" // Poliwhirl
- ".8byte 0b1110110000001111100100000011011110000100110111001011100101\n" // Poliwrath
- ".8byte 0b0001000001101111110000001110110100010110111000111000101001\n" // Abra
- ".8byte 0b0001000001101111110000001110110100010110111000111000101001\n" // Kadabra
- ".8byte 0b0001000001101111110000001110110100010110111100111000101001\n" // Alakazam
- ".8byte 0b0010100000001111100110010011001110000100110000011010100001\n" // Machop
- ".8byte 0b0010100000001111100110010011001110000100110000011010100001\n" // Machoke
- ".8byte 0b0010100000001111100110010011001110000100110100011010100001\n" // Machamp
- ".8byte 0b0001000100001111100000100010000100001101010000011100100000\n" // Bellsprout
- ".8byte 0b0001000100001111100000100010000100001101010000011100100000\n" // Weepinbell
- ".8byte 0b0001000100001111100000100010000100001101010100011100100000\n" // Victreebel
- ".8byte 0b1100010100001111100000100010000100000101110011001001100100\n" // Tentacool
- ".8byte 0b1100010100001111100000100010000100000101110111001001100100\n" // Tentacruel
- ".8byte 0b0010100000000111100111010011001110000100010000011000100001\n" // Geodude
- ".8byte 0b0010100000000111100111010011001110000100010000011000100001\n" // Graveler
- ".8byte 0b0010100000000111100111010011001110000100010100011000110001\n" // Golem
- ".8byte 0b0000100010000111100010010010000100011100010000011000100000\n" // Ponyta
- ".8byte 0b0000100010000111100010010010000100011100010100011000100000\n" // Rapidash
- ".8byte 0b1001110000100111100010010010111110010110110011011001101100\n" // Slowpoke
- ".8byte 0b1011110000100111100010010011111110010110110111011001101101\n" // Slowbro
- ".8byte 0b0001000000000011100000001110000101100100110000011000100000\n" // Magnemite
- ".8byte 0b0001000000000011100000001110000101100100110100011000100000\n" // Magneton
- ".8byte 0b0000001100011111101000000010000100010100010000011000100000\n" // Farfetch'd
- ".8byte 0b0000001000011111101000000010000100000100010000011000100000\n" // Doduo
- ".8byte 0b0000001000011111111000000010000100000100010100111000100000\n" // Dodrio
- ".8byte 0b1100010000001111100000000010000100000110110011001001100100\n" // Seel
- ".8byte 0b1100010000001111100000000010000100000110110111001001100100\n" // Dewgong
- ".8byte 0b0000000000001111110110111010001101100101110000111000100000\n" // Grimer
- ".8byte 0b0010100000001111110110111011001101100101110100111000100001\n" // Muk
- ".8byte 0b1000010000000111100000000010000100000100110011001001100100\n" // Shellder
- ".8byte 0b1000010000000111110000000010000100000100110111001001100100\n" // Cloyster
- ".8byte 0b0000000001101111110000100010110100100101110000111000100000\n" // Gastly
- ".8byte 0b0000000001101111110000100010110100100101110000111000100000\n" // Haunter
- ".8byte 0b0010100001101111110000100011110101100101110100111000100001\n" // Gengar
- ".8byte 0b0010100000000111110101000010001110010100010000111000110000\n" // Onix
- ".8byte 0b0001000001101111110000000111110100000110111000111000101001\n" // Drowzee
- ".8byte 0b0001000001101111110000000111110100000110111100111000101001\n" // Hypno
- ".8byte 0b1010110100001111100100000010001100000100110011001001100100\n" // Krabby
- ".8byte 0b1010110100001111100100000010001100000100110111001001100100\n" // Kingler
- ".8byte 0b0001000000001011110000001010000101100100111000101000100000\n" // Voltorb
- ".8byte 0b0001000000001011110000001010000101100100111100101000100000\n" // Electrode
- ".8byte 0b0001100000101111100000100110010100001101011000011100100000\n" // Exeggcute
- ".8byte 0b0001100000101111100000100110010100001101011100011100100000\n" // Exeggutor
- ".8byte 0b0010100000001111101111010011001110010100010011011000100001\n" // Cubone
- ".8byte 0b0010100000001111101111010011001110010100010111011000100001\n" // Marowak
- ".8byte 0b0010100000001111100100000011000110000100110000011010100001\n" // Hitmonlee
- ".8byte 0b0010100000001111100100000011000110000100110000011010100001\n" // Hitmonchan
- ".8byte 0b0010110100001111100111011011101111111100110111011000100101\n" // Lickitung
- ".8byte 0b0001000000001111110010111010100101100100110000111000100000\n" // Koffing
- ".8byte 0b0001000000001111110010111010100101100100110100111000100000\n" // Weezing
- ".8byte 0b0010100000001111100111011010001111110100110011011000110000\n" // Rhyhorn
- ".8byte 0b0010110100001111100111011011001111110100110111011000110001\n" // Rhydon
- ".8byte 0b0011100001100111100111011011110111111110111111011001101101\n" // Chansey
- ".8byte 0b0011000100001111100000100010000100001101010100011100100000\n" // Tangela
- ".8byte 0b0010110100001111101111011011101111111100110111011001110101\n" // Kangaskhan
- ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Horsea
- ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Seadra
- ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Goldeen
- ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Seaking
- ".8byte 0b1101010000000011100000000110010101100100111011001001100100\n" // Staryu
- ".8byte 0b1101010000100011100000000110010101100100111111001001100100\n" // Starmie
- ".8byte 0b0001000001101111110000001111110101101110111100111000101001\n" // Mr. mime
- ".8byte 0b0010000100011111101000000010000100000100110100011000100000\n" // Scyther
- ".8byte 0b0001000000101111110000000111110100000100111111101001101101\n" // Jynx
- ".8byte 0b0011100000001111100000001011010101110100111100001000100001\n" // Electabuzz
- ".8byte 0b0010100000001111100010010011010100010100010100011000100001\n" // Magmar
- ".8byte 0b0010100100001111100100000011001110000100110100011010100001\n" // Pinsir
- ".8byte 0b0010110000000111100111011010000111111100110111011000100100\n" // Tauros
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Magikarp
- ".8byte 0b1110110000000111110011010010000111100100110111101001110100\n" // Gyarados
- ".8byte 0b1110110000000111100000001010010101110110110111001001110100\n" // Lapras
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Ditto
- ".8byte 0b0000000000000111100000000010101100010100110000011000100000\n" // Eevee
- ".8byte 0b1100010000000111100000000010101100010100110111011001110100\n" // Vaporeon
- ".8byte 0b0001000000000111100000001010101101110100110100011000110000\n" // Jolteon
- ".8byte 0b0000000010000111100010010010101100010100110100011000110000\n" // Flareon
- ".8byte 0b0001000000001011101000001010110101111100110111011000100000\n" // Porygon
- ".8byte 0b1110010000001111100101000010000100000100110011001001100100\n" // Omanyte
- ".8byte 0b1110010000001111100101000010000100000100110111001001100100\n" // Omastar
- ".8byte 0b0110010000001111101101000010001100000101110011001001100100\n" // Kabuto
- ".8byte 0b1110010100001111101101000011001100000101110111001001100100\n" // Kabutops
- ".8byte 0b0010101000011111111111010010000110010100110100111000110010\n" // Aerodactyl
- ".8byte 0b0000110000000111100111011011110111101100110111011000100101\n" // Snorlax
- ".8byte 0b0010001000010011101001000110000100000100110111011001110100\n" // Articuno
- ".8byte 0b0011001000010011101001001010000101100100111100011000110000\n" // Zapdos
- ".8byte 0b0010001010010011101011010010000100000110110100011000110000\n" // Moltres
- ".8byte 0b0100010000000111100010011010000101110110110111011001100100\n" // Dratini
- ".8byte 0b0100010000000111100010011010000101110110110111011001100100\n" // Dragonair
- ".8byte 0b1110111100010111101111011011000111110110110111011001110111\n" // Dragonite
- ".8byte 0b0011100001100011111111011111110111111110111111111011101101\n" // Mewtwo
- ".8byte 0b1111111111111111111111111111111111111111111111111111111111\n" // Mew
- ".8byte 0b0001000100000111100000000110000100011111011000011100100000\n" // Chikorita
- ".8byte 0b0011100100000111100000000110000100011111011000011100100000\n" // Bayleef
- ".8byte 0b0011100100000111100000000110000110011111011100011100100000\n" // Meganium
- ".8byte 0b0000000110000111101010010010001100000100010000011000100000\n" // Cyndaquil
- ".8byte 0b0010100110000111101010010011001100000100010000011000110001\n" // Quilava
- ".8byte 0b0010100110000111101010010011001110000100010100011000110001\n" // Typhlosion
- ".8byte 0b1100010100000111101000000011001100010100110011001001100101\n" // Totodile
- ".8byte 0b1110110100000111101000000011001100010100110011001001110101\n" // Croconaw
- ".8byte 0b1110110100000111101000000011001110010100110111001001110111\n" // Feraligatr
- ".8byte 0b0000010100001111100000011011101100111100110001011000100101\n" // Sentret
- ".8byte 0b0010110100001111100000011011101101111100110111011000100101\n" // Furret
- ".8byte 0b0001001000011111101000000110110100000100110000011000100000\n" // Hoothoot
- ".8byte 0b0001001000011111101000000110110100000100110100011000100000\n" // Noctowl
- ".8byte 0b0001000000001111101000000111001100001111011000011000100001\n" // Ledyba
- ".8byte 0b0001000000001111101000000111001100001111011100011000100001\n" // Ledian
- ".8byte 0b0001000000001111100000100010011100001101010000011000100000\n" // Spinarak
- ".8byte 0b0001000000001111100000100010011100001101010100011000100000\n" // Ariados
- ".8byte 0b0000001001011111111000100010100100000101110100111000100000\n" // Crobat
- ".8byte 0b1101010000000111100000001010000101100100110011001001100100\n" // Chinchou
- ".8byte 0b1101010000000111100000001010000101100100110111001001100100\n" // Lanturn
- ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Pichu
- ".8byte 0b0001000000000111100010011110111100011110111000011000100100\n" // Cleffa
- ".8byte 0b0001000000000111100010011110111100001110111000011000100100\n" // Igglybuff
- ".8byte 0b0011000000000111100010011110110100001110111000011000100100\n" // Togepi
- ".8byte 0b0011001000010111101010011111110100001110111100011000100101\n" // Togetic
- ".8byte 0b0001000000111111101000000110110100001101111000011000101000\n" // Natu
- ".8byte 0b0001001000111111101000000110110100001101111100011000101000\n" // Xatu
- ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Mareep
- ".8byte 0b0011100000000111100000001011000101110100111000001000100001\n" // Flaaffy
- ".8byte 0b0011100000000111100000001011000101110100111100001000100001\n" // Ampharos
- ".8byte 0b0001000100000111100000100010000100001111010100011100100000\n" // Bellossom
- ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Marill
- ".8byte 0b1110110000000111100000000011001100010100110111001001100101\n" // Azumarill
- ".8byte 0b0010100000001111100101000011001110000100010000111000101001\n" // Sudowoodo
- ".8byte 0b1110110000001111100000000011011110000100110111001001100101\n" // Politoed
- ".8byte 0b0001000000000111101000000010000100001101010000011100100000\n" // Hoppip
- ".8byte 0b0001000000000111101000000010000100001101010000011100100000\n" // Skiploom
- ".8byte 0b0001000000000111101000000010000100001101010100011100100000\n" // Jumpluff
- ".8byte 0b0010100101001111101000001011101101111100110000111000100101\n" // Aipom
- ".8byte 0b0001000100000111100000100010000100001111011000011100100000\n" // Sunkern
- ".8byte 0b0001000100000111100000100010000100001111011100011100100000\n" // Sunflora
- ".8byte 0b0001000000011111101000000010110100001101010000011000100000\n" // Yanma
- ".8byte 0b1111010000000111100001100010001110010100110011001001100100\n" // Wooper
- ".8byte 0b1111110000000111100101100011001110010100110111001001100101\n" // Quagsire
- ".8byte 0b0001000100100111100000000110111100010100111100011000101000\n" // Espeon
- ".8byte 0b0001000101000111110000000010111100010100110100111000100000\n" // Umbreon
- ".8byte 0b0000001001011111111000000010100100000100110000111000101000\n" // Murkrow
- ".8byte 0b1011110000100111100010010011111110010110110111011001101101\n" // Slowking
- ".8byte 0b0001000001101111111000001010110101100100110000111000101000\n" // Misdreavus
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Unown
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wobbuffet
- ".8byte 0b0011100000101111100000001110110111110100111000011000101000\n" // Girafarig
- ".8byte 0b0010100000000111100001000110001110001101011000011000100000\n" // Pineco
- ".8byte 0b0010100000000111100001000110001110001101011100011000100000\n" // Forretress
- ".8byte 0b0010100000001111100110011010101111111100110011011000101100\n" // Dunsparce
- ".8byte 0b0010100100011111101101100010001110010100110000011000100000\n" // Gligar
- ".8byte 0b0010100100000111110101000010001110010100010100111000110000\n" // Steelix
- ".8byte 0b0010100010001111110010111011101111101100110000111010110101\n" // Snubbull
- ".8byte 0b0010100010001111110110111011101111111100110100111010110101\n" // Granbull
- ".8byte 0b1100010000000111100000101010100100000100110011001001100100\n" // Qwilfish
- ".8byte 0b0010100100011111101001000010000100000100110100011000100000\n" // Scizor
- ".8byte 0b0011100000000111100101100010001110000110010000011000100000\n" // Shuckle
- ".8byte 0b0010100100001111100100000011001110000100110100011010100001\n" // Heracross
- ".8byte 0b0010110101001111111000000011101100010100110011111001101001\n" // Sneasel
- ".8byte 0b0010100100001111111000000011001110000100110000111010110001\n" // Teddiursa
- ".8byte 0b0010100100001111111100000011001110000100110100111010110001\n" // Ursaring
- ".8byte 0b0010000010000111100010010110000100000100011000011000100000\n" // Slugma
- ".8byte 0b0010100010000111100111010110000110000100011100011000100000\n" // Magcargo
- ".8byte 0b0010100000000111100101000110001110000100111011001001110000\n" // Swinub
- ".8byte 0b0010100000000111100101000110001110000100111111001001110000\n" // Piloswine
- ".8byte 0b0010110000000111100101000110111110000110111011011001101100\n" // Corsola
- ".8byte 0b1100010000001111100010010010010100000100110111011000100100\n" // Remoraid
- ".8byte 0b1100010000001111100010110010010100000100110111011100100100\n" // Octillery
- ".8byte 0b0000001000001111101000000010000100000100110011001001100101\n" // Delibird
- ".8byte 0b1100010000000111101000000010000110000100110011001001100100\n" // Mantine
- ".8byte 0b0010001100011111111001000010000100000100010000111000110000\n" // Skarmory
- ".8byte 0b0010000011001111110010110010100100011100010000111000110000\n" // Houndour
- ".8byte 0b0010100011001111110010110010100100011100010100111000110000\n" // Houndoom
- ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Kingdra
- ".8byte 0b0010100000000111100101000010000110010100010000011000110000\n" // Phanpy
- ".8byte 0b0010100000000111100101000010000110010100010100011000110000\n" // Donphan
- ".8byte 0b0001000000001011101000001010110101111100110111011000100000\n" // Porygon2
- ".8byte 0b0001000000101111100000001110110111111100111000011000111000\n" // Stantler
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Smeargle
- ".8byte 0b0010100000001111100000000011000110000100110000011010100000\n" // Tyrogue
- ".8byte 0b0010100000001111100001000011001110000100110000011010100000\n" // Hitmontop
- ".8byte 0b0001000000101111100000000110110100000100111011001001101100\n" // Smoochum
- ".8byte 0b0011000000001111100000001011010101100100111000001000100001\n" // Elekid
- ".8byte 0b0010000000001111100010010011010100010100010000011000100001\n" // Magby
- ".8byte 0b0010110000000111100101001011100111111100110111011000100101\n" // Miltank
- ".8byte 0b0011100001100111100111011011110111111110111111011001101101\n" // Blissey
- ".8byte 0b0011100100000011100001001110001101110100110100011000111000\n" // Raikou
- ".8byte 0b0011100100000011100011010110001100011100110100011000111000\n" // Entei
- ".8byte 0b1110010100000011100001000110001100010100110111011001111100\n" // Suicune
- ".8byte 0b0010000000000111110001000011001110000100110100111000100000\n" // Larvitar
- ".8byte 0b0010000000000111110001000011001110000100110100111000100000\n" // Pupitar
- ".8byte 0b0010110100000111111111011011001111110100110111111000110111\n" // Tyranitar
- ".8byte 0b1110111000110011101001001110110111110111111111011001111100\n" // Lugia
- ".8byte 0b0011101010010011101011011110110111101111111100011000111000\n" // Ho-Oh
- ".8byte 0b0001000100100011101001001110110100001111111100011000101100\n" // Celebi
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0011100100000111101100000011001100011111010000011100100001\n" // Treecko
- ".8byte 0b0011100100000111101100000011001100011111010000011100100001\n" // Grovyle
- ".8byte 0b0011100100000111101100000011001110011111010100011100110011\n" // Sceptile
- ".8byte 0b0010100110000111101110010010001100000100010000011000100000\n" // Torchic
- ".8byte 0b0010100110000111101110010011001100000100010000011010100001\n" // Combusken
- ".8byte 0b0010100110000111101110010011001110000100010100011010110001\n" // Blaziken
- ".8byte 0b1110110000000111100100000010001100010100110011001001100100\n" // Mudkip
- ".8byte 0b1110110000000111100100000010001110010100110011001001100100\n" // Marshtomp
- ".8byte 0b1110110000000111100100000011001110010100110111001001110101\n" // Swampert
- ".8byte 0b0010000001001111110000000010101100010100110000111000110000\n" // Poochyena
- ".8byte 0b0010100001001111110000000010101100010100110100111000110000\n" // Mightyena
- ".8byte 0b0010010100001111100000001010101101110100110011011000100100\n" // Zigzagoon
- ".8byte 0b0010110100001111100000001010101101110100110111011000110100\n" // Linoone
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wurmple
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Silcoon
- ".8byte 0b0001000000001111101000000010110100001111010100011000100000\n" // Beautifly
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Cascoon
- ".8byte 0b0001000000001111101000100010110100001101011100011000100000\n" // Dustox
- ".8byte 0b0001010000001111100000000010000100001101110011011101100100\n" // Lotad
- ".8byte 0b1111110000001111100000000011000100001101110011011101100100\n" // Lombre
- ".8byte 0b1111110000001111100000000011000100001101110111011101100101\n" // Ludicolo
- ".8byte 0b0011000000000111100000000010101100001101010000011100100000\n" // Seedot
- ".8byte 0b0011100100001111110100000011101100001101010100011100100000\n" // Nuzleaf
- ".8byte 0b0011100100001111111100000011101100001101010100011100100000\n" // Shiftry
- ".8byte 0b0001000100000011101001000010101100001101010000011000100000\n" // Nincada
- ".8byte 0b0001000100001111101001000010101100001101010100011000100000\n" // Ninjask
- ".8byte 0b0001000100001011101001000010101100001101010100011000100000\n" // Shedinja
- ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Taillow
- ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Swellow
- ".8byte 0b0001000001000111100000100010000100001111010000011100100000\n" // Shroomish
- ".8byte 0b0011100101000111100000100011000100011111010100011110100001\n" // Breloom
- ".8byte 0b0011100001101111100100001011111100000110110000011000101101\n" // Spinda
- ".8byte 0b0000001000011111101000001010000100000100110011001001100100\n" // Wingull
- ".8byte 0b0000011000011111101000001010000100000100110111001001100100\n" // Pelipper
- ".8byte 0b0001000000001111100000000010100100001101110011011000100100\n" // Surskit
- ".8byte 0b0001000000001111101000000010100100001101110111011000100100\n" // Masquerain
- ".8byte 0b1110110000000111100100000010000110000100110011001001110100\n" // Wailmer
- ".8byte 0b1110110000000111100100000010000110000100110111001001110100\n" // Wailord
- ".8byte 0b0001000000000111100000001010101101111110110011011000101100\n" // Skitty
- ".8byte 0b0011100000000111100000001010101101111110110111011000101100\n" // Delcatty
- ".8byte 0b0011100101101111101110011011101101111100110011011000100101\n" // Kecleon
- ".8byte 0b0001000000100011100101000110111110001100111001011000100000\n" // Baltoy
- ".8byte 0b0011100000100011100101000110111110001100111101011000100000\n" // Claydol
- ".8byte 0b0010100000000111110101001010000111100100010000111000100000\n" // Nosepass
- ".8byte 0b0010100010000111100010110010000100010100010000011000100000\n" // Torkoal
- ".8byte 0b0011000101001111111100001011111100000100110000111000101101\n" // Sableye
- ".8byte 0b1100010000000111100101000010000110000100110011001001100100\n" // Barboach
- ".8byte 0b1110110000000111100101000010000110000100110111001001100100\n" // Whiscash
- ".8byte 0b1100010000000111100000000010000100000110110011001001100100\n" // Luvdisc
- ".8byte 0b0110110100000111101100100011001100000100110011101001100100\n" // Corphish
- ".8byte 0b1110110100000111101100100011001100000100110111101001100100\n" // Crawdaunt
- ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Feebas
- ".8byte 0b1100010000000111100000000010000100010110110111001001100100\n" // Milotic
- ".8byte 0b1100010000001111110000000010000100000100110011101001100100\n" // Carvanha
- ".8byte 0b1110110000001111110100000010000110000100110111101001110100\n" // Sharpedo
- ".8byte 0b0010100000000111100101000010001110001101010100011000100000\n" // Trapinch
- ".8byte 0b0010101000010111100101000010001110001101010100011000100000\n" // Vibrava
- ".8byte 0b0010101000010111100111010010001110011101010100011000100010\n" // Flygon
- ".8byte 0b0010110000000111100100000011001110000100110000011010100001\n" // Makuhita
- ".8byte 0b0010110000000111100100000011001110000100110100011010100001\n" // Hariyama
- ".8byte 0b0001100000001111100000001010000101110100110000001000110000\n" // Electrike
- ".8byte 0b0001100000001111100000001010000101110100110100001000110000\n" // Manectric
- ".8byte 0b0010100010000111100111010010001110000100010000011000100000\n" // Numel
- ".8byte 0b0010100010000111100111010010001110000100010100011000110000\n" // Camerupt
- ".8byte 0b1110110000000111100100000010000110010100110011001001100100\n" // Spheal
- ".8byte 0b1110110000000111100100000010000110010100110011001001110100\n" // Sealeo
- ".8byte 0b1110110000000111100100000010000110010100110111001001110100\n" // Walrein
- ".8byte 0b0001000100000111100001000010000100001101010000011100100001\n" // Cacnea
- ".8byte 0b0001100100000111100001000010000100001101010100011100100001\n" // Cacturne
- ".8byte 0b0001000000000111100000000010100100000110111011001001100100\n" // Snorunt
- ".8byte 0b0001000000000111110000000010100110000110111111101001100100\n" // Glalie
- ".8byte 0b0001000000100011100101000110110110000110111101001000101000\n" // Lunatone
- ".8byte 0b0001000010100011100111010110110110001110011100011000101000\n" // Solrock
- ".8byte 0b0100010000000111100000000010000100010100110011001001100100\n" // Azurill
- ".8byte 0b0001000001101111110000001110110100010100111000111000101000\n" // Spoink
- ".8byte 0b0001000001101111110000001110110100010100111100111000101001\n" // Grumpig
- ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Plusle
- ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Minun
- ".8byte 0b0010100000000111110111110011000100001100110101111000100001\n" // Mawile
- ".8byte 0b0011100000000111100100000111110100000100111000011010101001\n" // Meditite
- ".8byte 0b0011100000000111100100000111110100000100111100011010101001\n" // Medicham
- ".8byte 0b0000001000011111101000000010000100001110110001011000100000\n" // Swablu
- ".8byte 0b0010001000011111101010010010000110011110110101011000110010\n" // Altaria
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wynaut
- ".8byte 0b0001000001101111110000000010110100000100110011111000101000\n" // Duskull
- ".8byte 0b0011100001101111110100000010110110000100110111111000101001\n" // Dusclops
- ".8byte 0b0001000100000111100000100010100100001101010000011100100000\n" // Roselia
- ".8byte 0b0010100100000111101010011011100101101100110011011010100101\n" // Slakoth
- ".8byte 0b0010100100000111101010011011100111101100110011111010110101\n" // Vigoroth
- ".8byte 0b0010100100000111101010011011100111101100110111111010110101\n" // Slaking
- ".8byte 0b0010100001000111100000101010100100001101110001011100100100\n" // Gulpin
- ".8byte 0b0010100001000111100000101010100100001101110101011100100100\n" // Swalot
- ".8byte 0b0011101100010111101000000010000110001111010100011100110000\n" // Tropius
- ".8byte 0b0000000000000111100010011010100100001100110011011000110100\n" // Whismur
- ".8byte 0b0010100010000111110010011011100110001100110011111000110100\n" // Loudred
- ".8byte 0b0010100010000111110010011011100110001100110111111000110100\n" // Exploud
- ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Clamperl
- ".8byte 0b1100010001000111100100000010000100000100110111001001100100\n" // Huntail
- ".8byte 0b1100010000000111100000000010110100000110110111001001100100\n" // Gorebyss
- ".8byte 0b0011100101001111111011011010100101110100110111111001101100\n" // Absol
- ".8byte 0b0001000001101111110000001010110101100100110000111000101000\n" // Shuppet
- ".8byte 0b0001000001101111110000001010110101100100110100111000101000\n" // Banette
- ".8byte 0b0010100001001111100000110010001110010101110000111000100000\n" // Seviper
- ".8byte 0b0010100000001111101010011011101101111101110011111000110101\n" // Zangoose
- ".8byte 0b1110010000000111100101000010000110000110110111001001101100\n" // Relicanth
- ".8byte 0b0010100100000111101101001010001110010100110000011000110100\n" // Aron
- ".8byte 0b0010100100000111101101001010001110010100110000011000110100\n" // Lairon
- ".8byte 0b0010110100000111101111011011001111111100110111111000110111\n" // Aggron
- ".8byte 0b0001000000001111100011011010100101101100110011011001100100\n" // Castform
- ".8byte 0b0001000000001111101000001011100101101101111000011000100101\n" // Volbeat
- ".8byte 0b0001000000001111101000001011100101101101111000011000100101\n" // Illumise
- ".8byte 0b0000000000000111100001100010000100001101010000011100100000\n" // Lileep
- ".8byte 0b0010100000000111100101100010000110001101010100011100100000\n" // Cradily
- ".8byte 0b0010000100000111101101000011001100000100010000011000100100\n" // Anorith
- ".8byte 0b0010100100000111101101000011001110010100010100011000100100\n" // Armaldo
- ".8byte 0b0001000001101111110000001110110100100110111000111000101000\n" // Ralts
- ".8byte 0b0001000001101111110000001110110100100110111000111000101000\n" // Kirlia
- ".8byte 0b0001000001101111110000001110110100100110111100111000101000\n" // Gardevoir
- ".8byte 0b0010100100000111101110010011000100000100110000011000110010\n" // Bagon
- ".8byte 0b0010100100000111101110010011000100000100110000011000110010\n" // Shelgon
- ".8byte 0b0010101100010111101110010011000110010100110100011000110010\n" // Salamence
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Beldum
- ".8byte 0b0011100100000011101101100111110110000100111100011000100000\n" // Metang
- ".8byte 0b0011100100000011101101100111110110000100111100011000100000\n" // Metagross
- ".8byte 0b0010100000000011100101001011001111100110010100011000100001\n" // Regirock
- ".8byte 0b0010100000000011100000001011000111100110110111001001100001\n" // Regice
- ".8byte 0b0010100000000011101101001011000111100110110100011000100001\n" // Registeel
- ".8byte 0b1110110000000011100100001011000111100110110111001001111100\n" // Kyogre
- ".8byte 0b0010100110000011101111011011001111111110010100011010110010\n" // Groudon
- ".8byte 0b1110111010000011101011011011000111111100110111011010110110\n" // Rayquaza
- ".8byte 0b1101011100010111101001001110110111101110111101011000111110\n" // Latias
- ".8byte 0b1101011100010111101001001110110111101110111101011000111110\n" // Latios
- ".8byte 0b0001000000100011101001001110110101100110111100011000101100\n" // Jirachi
- ".8byte 0b0011100101100011111100001111110101101110111101111000101101\n" // Deoxys
- ".8byte 0b0001000001100111110000001110110100000110111000111000101000\n" // Chimecho
-);
-
-#endif //POKERUBY_TMHM_LEARNSETS_H
diff --git a/include/data/pokemon/trainer_class_lookups.h b/include/data/pokemon/trainer_class_lookups.h
deleted file mode 100644
index 0aea322a0..000000000
--- a/include/data/pokemon/trainer_class_lookups.h
+++ /dev/null
@@ -1,168 +0,0 @@
-//
-// Created by Scott Norton on 6/27/17.
-//
-
-#ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H
-#define POKERUBY_TRAINER_CLASS_LOOKUPS_H
-
-const u8 gTrainerClassToPicIndex[] = {
- TRAINER_PIC_ARCHIE, // AQUA_LEADER
- TRAINER_PIC_AQUA_GRUNT_M, // TEAM_AQUA_M
- TRAINER_PIC_AQUA_GRUNT_F, // TEAM_AQUA_F
- TRAINER_PIC_AROMA_LADY, // AROMA_LADY
- TRAINER_PIC_RUIN_MANIAC, // RUIN_MANIAC
- TRAINER_PIC_INTERVIEWER, // INTERVIEWER
- TRAINER_PIC_TUBER_F, // TUBER_F
- TRAINER_PIC_TUBER_M, // TUBER_M
- TRAINER_PIC_COOL_TRAINER_M, // COOL_TRAINER_M
- TRAINER_PIC_COOL_TRAINER_F, // COOL_TRAINER_F
- TRAINER_PIC_HEX_MANIAC, // HEX_MANIAC
- TRAINER_PIC_LADY, // LADY
- TRAINER_PIC_BEAUTY, // BEAUTY
- TRAINER_PIC_RICH_BOY, // RICH_BOY
- TRAINER_PIC_POKEMANIAC, // POKEMANIAC
- TRAINER_PIC_SWIMMER_M, // SWIMMER_M
- TRAINER_PIC_BLACK_BELT, // BLACK_BELT
- TRAINER_PIC_GUITARIST, // GUITARIST
- TRAINER_PIC_KINDLER, // KINDLER
- TRAINER_PIC_CAMPER, // CAMPER
- TRAINER_PIC_BUG_MANIAC, // BUG_MANIAC
- TRAINER_PIC_PSYCHIC_M, // PSYCHIC_M
- TRAINER_PIC_PSYCHIC_F, // PSYCHIC_F
- TRAINER_PIC_GENTLEMAN, // GENTLEMAN
- TRAINER_PIC_SIDNEY, // ELITE_FOUR_M
- TRAINER_PIC_PHOEBE, // ELITE_FOUR_F
- TRAINER_PIC_ROXANNE, // LEADER_F
- TRAINER_PIC_BRAWLY, // LEADER_M
- TRAINER_PIC_TATE_AND_LIZA, // LEADER_MF
- TRAINER_PIC_SCHOOL_KID_M, // SCHOOL_KID_M
- TRAINER_PIC_SCHOOL_KID_F, // SCHOOL_KID_F
- TRAINER_PIC_SR_AND_JR, // SR_AND_JR
- TRAINER_PIC_POKEFAN_M, // POKEFAN_M
- TRAINER_PIC_POKEFAN_F, // POKEFAN_F
- TRAINER_PIC_EXPERT_M, // EXPERT_M
- TRAINER_PIC_EXPERT_F, // EXPERT_F
- TRAINER_PIC_YOUNGSTER, // YOUNGSTER
- TRAINER_PIC_STEVEN, // CHAMPION
- TRAINER_PIC_FISHERMAN, // FISHERMAN
- TRAINER_PIC_CYCLING_TRIATHLETE_M, // CYCLING_TRIATHLETE_M
- TRAINER_PIC_CYCLING_TRIATHLETE_F, // CYCLING_TRIATHLETE_F
- TRAINER_PIC_RUNNING_TRIATHLETE_M, // RUNNING_TRIATHLETE_M
- TRAINER_PIC_RUNNING_TRIATHLETE_F, // RUNNING_TRIATHLETE_F
- TRAINER_PIC_SWIMMING_TRIATHLETE_M, // SWIMMING_TRIATHLETE_M
- TRAINER_PIC_SWIMMING_TRIATHLETE_F, // SWIMMING_TRIATHLETE_F
- TRAINER_PIC_DRAGON_TAMER, // DRAGON_TAMER
- TRAINER_PIC_BIRD_KEEPER, // BIRD_KEEPER
- TRAINER_PIC_NINJA_BOY, // NINJA_BOY
- TRAINER_PIC_BATTLE_GIRL, // BATTLE_GIRL
- TRAINER_PIC_PARASOL_LADY, // PARASOL_LADY
- TRAINER_PIC_SWIMMER_F, // SWIMMER_F
- TRAINER_PIC_PICNICKER, // PICNICKER
- TRAINER_PIC_TWINS, // TWINS
- TRAINER_PIC_SAILOR, // SAILOR
- TRAINER_PIC_YOUNGSTER, // BOARDER_1
- TRAINER_PIC_YOUNGSTER, // BOARDER_2
- TRAINER_PIC_COLLECTOR, // COLLECTOR
- TRAINER_PIC_WALLY, // WALLY
- TRAINER_PIC_BRENDAN, // BRENDAN_1
- TRAINER_PIC_BRENDAN, // BRENDAN_2
- TRAINER_PIC_BRENDAN, // BRENDAN_3
- TRAINER_PIC_MAY, // MAY_1
- TRAINER_PIC_MAY, // MAY_2
- TRAINER_PIC_MAY, // MAY_3
- TRAINER_PIC_POKEMON_BREEDER_M, // POKEMON_BREEDER_M
- TRAINER_PIC_POKEMON_BREEDER_F, // POKEMON_BREEDER_F
- TRAINER_PIC_POKEMON_RANGER_M, // POKEMON_RANGER_M
- TRAINER_PIC_POKEMON_RANGER_F, // POKEMON_RANGER_F
- TRAINER_PIC_MAXIE, // MAGMA_LEADER
- TRAINER_PIC_MAGMA_GRUNT_M, // TEAM_MAGMA_M
- TRAINER_PIC_MAGMA_GRUNT_F, // TEAM_MAGMA_F
- TRAINER_PIC_LASS, // LASS
- TRAINER_PIC_BUG_CATCHER, // BUG_CATCHER
- TRAINER_PIC_HIKER, // HIKER
- TRAINER_PIC_YOUNG_COUPLE, // YOUNG_COUPLE
- TRAINER_PIC_OLD_COUPLE, // OLD_COUPLE
- TRAINER_PIC_SIS_AND_BRO // SIS_AND_BRO
-};
-
-const u8 gTrainerClassToNameIndex[] = {
- TRAINER_CLASS_NAME_AQUA_LEADER, // AQUA_LEADER
- TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_M
- TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_F
- TRAINER_CLASS_NAME_AROMA_LADY, // AROMA_LADY
- TRAINER_CLASS_NAME_RUIN_MANIAC, // RUIN_MANIAC
- TRAINER_CLASS_NAME_INTERVIEWER, // INTERVIEWER
- TRAINER_CLASS_NAME_TUBER_F, // TUBER_F
- TRAINER_CLASS_NAME_TUBER_M, // TUBER_M
- TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_M
- TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_F
- TRAINER_CLASS_NAME_HEX_MANIAC, // HEX_MANIAC
- TRAINER_CLASS_NAME_LADY, // LADY
- TRAINER_CLASS_NAME_BEAUTY, // BEAUTY
- TRAINER_CLASS_NAME_RICH_BOY, // RICH_BOY
- TRAINER_CLASS_NAME_POKEMANIAC, // POKEMANIAC
- TRAINER_CLASS_NAME_SWIMMER_M, // SWIMMER_M
- TRAINER_CLASS_NAME_BLACK_BELT, // BLACK_BELT
- TRAINER_CLASS_NAME_GUITARIST, // GUITARIST
- TRAINER_CLASS_NAME_KINDLER, // KINDLER
- TRAINER_CLASS_NAME_CAMPER, // CAMPER
- TRAINER_CLASS_NAME_BUG_MANIAC, // BUG_MANIAC
- TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_M
- TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_F
- TRAINER_CLASS_NAME_GENTLEMAN, // GENTLEMAN
- TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_M
- TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_F
- TRAINER_CLASS_NAME_LEADER, // LEADER_F
- TRAINER_CLASS_NAME_LEADER, // LEADER_M
- TRAINER_CLASS_NAME_LEADER, // LEADER_MF
- TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_M
- TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_F
- TRAINER_CLASS_NAME_SR_AND_JR, // SR_AND_JR
- TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_M
- TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_F
- TRAINER_CLASS_NAME_EXPERT, // EXPERT_M
- TRAINER_CLASS_NAME_EXPERT, // EXPERT_F
- TRAINER_CLASS_NAME_YOUNGSTER, // YOUNGSTER
- TRAINER_CLASS_NAME_CHAMPION, // CHAMPION
- TRAINER_CLASS_NAME_FISHERMAN, // FISHERMAN
- TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_F
- TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_F
- TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_F
- TRAINER_CLASS_NAME_DRAGON_TAMER, // DRAGON_TAMER
- TRAINER_CLASS_NAME_BIRD_KEEPER, // BIRD_KEEPER
- TRAINER_CLASS_NAME_NINJA_BOY, // NINJA_BOY
- TRAINER_CLASS_NAME_BATTLE_GIRL, // BATTLE_GIRL
- TRAINER_CLASS_NAME_PARASOL_LADY, // PARASOL_LADY
- TRAINER_CLASS_NAME_SWIMMER_F, // SWIMMER_F
- TRAINER_CLASS_NAME_PICNICKER, // PICNICKER
- TRAINER_CLASS_NAME_TWINS, // TWINS
- TRAINER_CLASS_NAME_SAILOR, // SAILOR
- TRAINER_CLASS_NAME_BOARDER, // BOARDER_1
- TRAINER_CLASS_NAME_BOARDER, // BOARDER_2
- TRAINER_CLASS_NAME_COLLECTOR, // COLLECTOR
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // WALLY
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_1
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_2
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_3
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_1
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_2
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_3
- TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_M
- TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_F
- TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_M
- TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_F
- TRAINER_CLASS_NAME_MAGMA_LEADER, // MAGMA_LEADER
- TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_M
- TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_F
- TRAINER_CLASS_NAME_LASS, // LASS
- TRAINER_CLASS_NAME_BUG_CATCHER, // BUG_CATCHER
- TRAINER_CLASS_NAME_HIKER, // HIKER
- TRAINER_CLASS_NAME_YOUNG_COUPLE, // YOUNG_COUPLE
- TRAINER_CLASS_NAME_OLD_COUPLE, // OLD_COUPLE
- TRAINER_CLASS_NAME_SIS_AND_BRO // SIS_AND_BRO
-};
-
-#endif //POKERUBY_TRAINER_CLASS_LOOKUPS_H
diff --git a/include/data2.h b/include/data2.h
index 2837a4451..97cb4fd7a 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -3,12 +3,7 @@
#include "sprite.h"
-struct UnknownStructD2
-{
- u32 unk0;
- u32 unk4;
- u32 unk8;
-};
+struct UnknownTaskStruct;
struct MonCoords
{
@@ -27,7 +22,7 @@ extern const struct SpriteFrameImage gSpriteImageTable_81E7A70[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7B70[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7BEC[];
-extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18;
+extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18[];
extern const union AnimCmd *const gSpriteAnimTable_81E7C64[];
extern struct MonCoords gMonFrontPicCoords[];
extern struct MonCoords gMonBackPicCoords[];
@@ -44,10 +39,10 @@ extern u8 gEnemyMonElevation[];
extern const u8 gTrainerClassNames[][13];
extern const struct Trainer gTrainers[];
extern u8 gSpeciesNames[][11];
-extern u8 gMoveNames[][13];
+extern const u8 gMoveNames[][13];
extern const u8 gAbilityNames[][13];
extern const u8 gTypeNames[][7];
-extern const struct UnknownStructD2 gUnknown_081F9674;
+extern const struct UnknownTaskStruct gUnknown_081F9674;
extern const u8 gUnknown_081F96C8[];
extern struct CompressedSpriteSheet gUnknown_081FAEA4;
extern struct CompressedSpritePalette gUnknown_081FAEAC;
diff --git a/include/daycare.h b/include/daycare.h
index b90c50610..c612113b9 100644
--- a/include/daycare.h
+++ b/include/daycare.h
@@ -1,14 +1,17 @@
#ifndef GUARD_DAYCARE_H
#define GUARD_DAYCARE_H
-u8 Daycare_CountPokemon(struct BoxPokemon *);
-void sub_8041324(struct BoxPokemon *, struct RecordMixing_UnknownStruct *);
-void sub_8041790(int i);
-u16 sub_8041870(u16);
-void sub_8041940(void);
-void sub_8041950(void);
-void sub_8042044(struct Pokemon *mon, u16, u8);
-u8 sub_80422A0(void);
-u8 daycare_relationship_score_from_savegame(void);
+u8 *GetMonNick(struct Pokemon *, u8 *);
+u8 *GetBoxMonNick(struct BoxPokemon *, u8 *);
+u8 CountPokemonInDaycare(struct DayCare *);
+void InitDaycareMailRecordMixing(struct BoxPokemon *, struct RecordMixingDayCareMail *);
+void Debug_AddDaycareSteps(u16 i);
+u16 GetEggSpecies(u16);
+void TriggerPendingDaycareEgg(void);
+void TriggerPendingDaycareMaleEgg(void);
+void CreateEgg(struct Pokemon *mon, u16, u8);
+u8 ShouldEggHatch(void);
+u8 GetDaycareCompatibilityScoreFromSave(void);
+bool8 NameHasGenderSymbol(const u8 *, u8);
#endif // GUARD_DAYCARE_H
diff --git a/include/decompress.h b/include/decompress.h
index 84c1f29c0..01f66971c 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -3,7 +3,7 @@
#include "sprite.h"
-void sub_800D238(const void *src, void *dest);
+void LZDecompressWram(const void *src, void *dest);
void LZDecompressVram(const void *src, void *dest);
void LoadCompressedObjectPic(const struct CompressedSpriteSheet *a);
void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *a, void *buffer);
diff --git a/include/decoration.h b/include/decoration.h
index 2e72e305a..972e82faf 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -3,130 +3,6 @@
#include "task.h"
-enum DecoId {
- /*000*/ DECOR_NONE,
- /*001*/ DECOR_SMALL_DESK,
- /*002*/ DECOR_POKEMON_DESK,
- /*003*/ DECOR_HEAVY_DESK,
- /*004*/ DECOR_RAGGED_DESK,
- /*005*/ DECOR_COMFORT_DESK,
- /*006*/ DECOR_PRETTY_DESK,
- /*007*/ DECOR_BRICK_DESK,
- /*008*/ DECOR_CAMP_DESK,
- /*009*/ DECOR_HARD_DESK,
- /*010*/ DECOR_SMALL_CHAIR,
- /*011*/ DECOR_POKEMON_CHAIR,
- /*012*/ DECOR_HEAVY_CHAIR,
- /*013*/ DECOR_PRETTY_CHAIR,
- /*014*/ DECOR_COMFORT_CHAIR,
- /*015*/ DECOR_RAGGED_CHAIR,
- /*016*/ DECOR_BRICK_CHAIR,
- /*017*/ DECOR_CAMP_CHAIR,
- /*018*/ DECOR_HARD_CHAIR,
- /*019*/ DECOR_RED_PLANT,
- /*020*/ DECOR_TROPICAL_PLANT,
- /*021*/ DECOR_PRETTY_FLOWERS,
- /*022*/ DECOR_COLORFUL_PLANT,
- /*023*/ DECOR_BIG_PLANT,
- /*024*/ DECOR_GORGEOUS_PLANT,
- /*025*/ DECOR_RED_BRICK,
- /*026*/ DECOR_YELLOW_BRICK,
- /*027*/ DECOR_BLUE_BRICK,
- /*028*/ DECOR_RED_BALLOON,
- /*029*/ DECOR_BLUE_BALLOON,
- /*030*/ DECOR_YELLOW_BALLOON,
- /*031*/ DECOR_RED_TENT,
- /*032*/ DECOR_BLUE_TENT,
- /*033*/ DECOR_SOLID_BOARD,
- /*034*/ DECOR_SLIDE,
- /*035*/ DECOR_FENCE_LENGTH,
- /*036*/ DECOR_FENCE_WIDTH,
- /*037*/ DECOR_TIRE,
- /*038*/ DECOR_STAND,
- /*039*/ DECOR_MUD_BALL,
- /*040*/ DECOR_BREAKABLE_DOOR,
- /*041*/ DECOR_SAND_ORNAMENT,
- /*042*/ DECOR_SILVER_SHIELD,
- /*043*/ DECOR_GOLD_SHIELD,
- /*044*/ DECOR_GLASS_ORNAMENT,
- /*045*/ DECOR_TV,
- /*046*/ DECOR_ROUND_TV,
- /*047*/ DECOR_CUTE_TV,
- /*048*/ DECOR_GLITTER_MAT,
- /*049*/ DECOR_JUMP_MAT,
- /*050*/ DECOR_SPIN_MAT,
- /*051*/ DECOR_C_LOW_NOTE_MAT,
- /*052*/ DECOR_D_NOTE_MAT,
- /*053*/ DECOR_E_NOTE_MAT,
- /*054*/ DECOR_F_NOTE_MAT,
- /*055*/ DECOR_G_NOTE_MAT,
- /*056*/ DECOR_A_NOTE_MAT,
- /*057*/ DECOR_B_NOTE_MAT,
- /*058*/ DECOR_C_HIGH_NOTE_MAT,
- /*059*/ DECOR_SURF_MAT,
- /*060*/ DECOR_THUNDER_MAT,
- /*061*/ DECOR_FIRE_BLAST_MAT,
- /*062*/ DECOR_POWDER_SNOW_MAT,
- /*063*/ DECOR_ATTRACT_MAT,
- /*064*/ DECOR_FISSURE_MAT,
- /*065*/ DECOR_SPIKES_MAT,
- /*066*/ DECOR_BALL_POSTER,
- /*067*/ DECOR_GREEN_POSTER,
- /*068*/ DECOR_RED_POSTER,
- /*069*/ DECOR_BLUE_POSTER,
- /*070*/ DECOR_CUTE_POSTER,
- /*071*/ DECOR_PIKA_POSTER,
- /*072*/ DECOR_LONG_POSTER,
- /*073*/ DECOR_SEA_POSTER,
- /*074*/ DECOR_SKY_POSTER,
- /*075*/ DECOR_KISS_POSTER,
- /*076*/ DECOR_PICHU_DOLL,
- /*077*/ DECOR_PIKACHU_DOLL,
- /*078*/ DECOR_MARILL_DOLL,
- /*079*/ DECOR_TOGEPI_DOLL,
- /*080*/ DECOR_CYNDAQUIL_DOLL,
- /*081*/ DECOR_CHIKORITA_DOLL,
- /*082*/ DECOR_TOTODILE_DOLL,
- /*083*/ DECOR_JIGGLYPUFF_DOLL,
- /*084*/ DECOR_MEOWTH_DOLL,
- /*085*/ DECOR_CLEFAIRY_DOLL,
- /*086*/ DECOR_DITTO_DOLL,
- /*087*/ DECOR_SMOOCHUM_DOLL,
- /*088*/ DECOR_TREECKO_DOLL,
- /*089*/ DECOR_TORCHIC_DOLL,
- /*090*/ DECOR_MUDKIP_DOLL,
- /*091*/ DECOR_DUSKULL_DOLL,
- /*092*/ DECOR_WYNAUT_DOLL,
- /*093*/ DECOR_BALTOY_DOLL,
- /*094*/ DECOR_KECLEON_DOLL,
- /*095*/ DECOR_AZURILL_DOLL,
- /*096*/ DECOR_SKITTY_DOLL,
- /*097*/ DECOR_SWABLU_DOLL,
- /*098*/ DECOR_GULPIN_DOLL,
- /*099*/ DECOR_LOTAD_DOLL,
- /*100*/ DECOR_SEEDOT_DOLL,
- /*101*/ DECOR_PIKA_CUSHION,
- /*102*/ DECOR_ROUND_CUSHION,
- /*103*/ DECOR_KISS_CUSHION,
- /*104*/ DECOR_ZIGZAG_CUSHION,
- /*105*/ DECOR_SPIN_CUSHION,
- /*106*/ DECOR_DIAMOND_CUSHION,
- /*107*/ DECOR_BALL_CUSHION,
- /*108*/ DECOR_GRASS_CUSHION,
- /*109*/ DECOR_FIRE_CUSHION,
- /*110*/ DECOR_WATER_CUSHION,
- /*111*/ DECOR_SNORLAX_DOLL,
- /*112*/ DECOR_RHYDON_DOLL,
- /*113*/ DECOR_LAPRAS_DOLL,
- /*114*/ DECOR_VENUSAUR_DOLL,
- /*115*/ DECOR_CHARIZARD_DOLL,
- /*116*/ DECOR_BLASTOISE_DOLL,
- /*117*/ DECOR_WAILMER_DOLL,
- /*118*/ DECOR_REGIROCK_DOLL,
- /*119*/ DECOR_REGICE_DOLL,
- /*120*/ DECOR_REGISTEEL_DOLL
-};
-
enum DecorPerm {
/*
* The nomenclature here describes collision and placement permissions, in that order.
@@ -204,9 +80,6 @@ struct UnkStruct_803EC860
extern const struct UnkStruct_803EC860 gUnknown_083EC860[];
-extern u8 ewram[];
-#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
-
struct UnkStruct_02038900
{
/*0x000; 0x02038900*/ const struct Decoration *decoration;
@@ -291,7 +164,9 @@ extern void sub_8134104(u8); // src/decoration_inventory
extern bool8 sub_807D770(void);
extern void sub_8109DAC(u8); // src/trader
extern void ReshowPlayerPC(u8); // src/player_pc
+void Task_SecretBasePC_Decoration(u8);
+void Task_SecretBasePC_Decoration(u8 taskId);
void sub_80FE2B4(void);
void Task_DecorationPCProcessMenuInput(u8);
void sub_80FE394(void);
diff --git a/include/dewford_trend.h b/include/dewford_trend.h
index 26075d633..16b2bdd75 100644
--- a/include/dewford_trend.h
+++ b/include/dewford_trend.h
@@ -1,10 +1,8 @@
#ifndef GUARD_DEWFORDTREND_H
#define GUARD_DEWFORDTREND_H
-#define ARRAY_2007800 ((struct EasyChatPair *)(unk_2000000 + 0x7800))
-#define ARRAY_2007900 ((struct EasyChatPair *)(unk_2000000 + 0x7900))
-
void InitDewfordTrend(void);
+bool8 sub_80FA364(u16 *a);
void sub_80FA4E4(void *, u32, u8);
void UpdateDewfordTrendPerDay(u16);
diff --git a/include/diploma.h b/include/diploma.h
index 81e9e3bb2..8d730fa05 100644
--- a/include/diploma.h
+++ b/include/diploma.h
@@ -1,6 +1,6 @@
#ifndef GUARD_DIPLOMA_H
#define GUARD_DIPLOMA_H
-void sub_8145D88(void);
+void CB2_ShowDiploma(void);
#endif // GUARD_DIPLOMA_H
diff --git a/include/easy_chat.h b/include/easy_chat.h
index 03e9bb737..c68a3fa02 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -1,48 +1,142 @@
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H
-enum {
- EC_GROUP_POKEMON,
- EC_GROUP_TRAINER,
- EC_GROUP_STATUS,
- EC_GROUP_BATTLE,
- EC_GROUP_GREETINGS,
- EC_GROUP_PEOPLE,
- EC_GROUP_VOICES,
- EC_GROUP_SPEECH,
- EC_GROUP_ENDINGS,
- EC_GROUP_FEELINGS,
- EC_GROUP_CONDITIONS,
- EC_GROUP_ACTIONS,
- EC_GROUP_LIFESTYLE,
- EC_GROUP_HOBBIES,
- EC_GROUP_TIME,
- EC_GROUP_MISC,
- EC_GROUP_ADJECTIVES,
- EC_GROUP_EVENTS,
- EC_GROUP_MOVE_1,
- EC_GROUP_MOVE_2,
- EC_GROUP_TRENDY_SAYING,
- EC_GROUP_POKEMON_2,
+struct Sprite;
+
+struct UnknownEasyChatStruct1
+{
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+ void *unk8;
+};
+
+struct Shared1000
+{
+ void (*unk0)(void); // main cb 2
+ u16 *unk4;
+ u8 unk8;
+ u8 unk9;
+ u8 unkA; // length of unkC array
+ u8 unkB; // reporter talked to (Gabby or Ty)
+ u16 unkC[9];
+ void (*unk20)(void);
+ u16 unk24;
+ u8 unk26;
+ u8 unk27;
+ u16 unk28;
+ u8 unk2A[11][2];
+ u8 unk40[4][14];
+ u8 unk78[5];
+ u8 unk7D;
+ u8 unk7E[5];
+ s8 unk83;
+ s8 unk84;
+ s8 unk85;
+ s8 unk86;
+ bool8 unk87;
+ u16 unk88;
+ u16 unk8A;
+ u8 unk8C[(0x96-0x8C)/2][2];
+ u8 unk96;
+ u8 filler97;
+ struct Sprite *unk98;
+ struct Sprite *unk9C;
+ struct Sprite *unkA0;
+ struct Sprite *unkA4;
+ struct Sprite *unkA8;
+ struct Sprite *unkAC[2];
+ struct Sprite *unkB4[2];
+ u8 unkBC;
+ u8 fillerBD;
+ u16 unkBE;
+ u8 fillerC0[2];
+ u16 unkC2; // length of unkC8 and unk148 arrays
+ u16 unkC4;
+ u8 fillerC6[2];
+ u16 unkC8[(0x148-0xC8)/16][8];
+ struct UnknownEasyChatStruct1 unk148[(0x1A8-0x148)/12];
+ s8 unk1A8;
+ s8 unk1A9;
+ s8 unk1AA[0xB5-0xAA];
+ s8 unk1B5;
+ s8 unk1B6;
+ s8 unk1B7;
+ u8 unk1B8;
+ u8 unk1B9;
+ u16 unk1BA;
+ u16 unk1BC;
+ u8 unk1BE;
+ s8 unk1BF;
+ s8 unk1C0;
+ u8 filler1C1[3];
+ void (*unk1C4)(void);
+ u8 unk1C8[0x500];
+ u8 unk6C8[0xB78-0x6C8];
+#if GERMAN
+ u16 unkB78[27][270];
+#else
+ u16 unkB78[27][255];
+#endif
+ u16 unk4142[(0x78-0x42)/2]; //0x446C
+ u16 unk4178[(0x41A4-0x4178)/2]; // unknown length
+ const u8 *ecWordStrings[0x16][0x100]; //0x44CE in german
+ s8 unk99A4;
+ s8 unk99A5;
+ s8 unk99A6[130];
+ s8 unk9A28;
+ s8 unk9A29;
+ u16 unk9A2A[(0x9C32-0x9A2A)/4][2]; // unknown length
+ u8 unk9C32;
+ u8 filler9C33;
+ u16 unk9C34[3][9];
+ u8 filler9C6A[2];
+ s8 *unk9C6C;
+ u8 unk9C70;
+ s8 unk9C71;
+ u8 filler9C72[2];
+ struct Sprite *unk9C74;
+ u8 filler9C78[4];
+ u16 unk9C7C; // this is at 0x9FA8 in German
+ s16 unk9C7E;
+ u8 unk9C80[0xC9-0x80];
+ u8 unk9CC9[0xD12-0xCC9];
+ u8 unk9D12[0x5B-0x12];
+ u8 unk9D5B[0xA4-0x5B];
+ u8 unk9DA4[0xC9-0xA4];
+ u8 unk9DC9[0xE14 - 0xDC9];
+ u8 unk9E14[0xE41 - 0xE14];
+ u8 unk9E41[0x6E - 0x41];
+ u8 unk9E6E[0xEE - 0x6E];
+ u8 unk9EEE[0xF6E - 0xEEE];
+ u8 unk9F6E[0x8E - 0x6E]; // unknown length
+ u8 unk9F8E[7]; // unknown length
};
+extern u8 gUnknown_020388AC;
+
+// const pointer to shared1000. easy_chat might be two separate files.
+extern struct Shared1000 *const gEasyChatStruct;
+void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3);
u16 sub_80EB72C(u16 group);
void sub_80EB6FC(u16 *, u16);
void InitEasyChatPhrases(void);
u8 sub_80EAD7C(u8 group);
u16 sub_80EAE88(u8);
u8 sub_80EB37C(u16);
-u8* sub_80EB3FC(u8 *, u16);
+u8* EasyChat_GetWordText(u8 *, u16);
u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16);
u16 sub_80EB784(u16 group);
u8 sub_80EB868(u8);
void sub_80EB890(u8);
u8 sub_80EB8C0(void);
u16 sub_80EB8EC(void);
+u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3);
#if GERMAN
-u32 de_sub_80EB748(u32, u32);
+u32 de_sub_80EB748(s32, s32);
#endif
#endif // GUARD_EASYCHAT_H
diff --git a/include/event_data.h b/include/event_data.h
index 98e4a6da3..5656ab8dc 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -1,12 +1,12 @@
#ifndef GUARD_EVENT_DATA_H
#define GUARD_EVENT_DATA_H
-#include "flags.h"
-#include "vars.h"
+#include "constants/flags.h"
+#include "constants/vars.h"
void InitEventData(void);
void ClearTempFieldEventData(void);
-void ClearUpperFlags(void);
+void ClearDailyFlags(void);
void DisableNationalPokedex(void);
void EnableNationalPokedex(void);
bool32 IsNationalPokedexEnabled(void);
@@ -22,7 +22,7 @@ bool8 VarSet(u16 id, u16 value);
u8 VarGetFieldObjectGraphicsId(u8 id);
u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
-u8 FlagReset(u16 id);
+u8 FlagClear(u16 id);
bool8 FlagGet(u16 id);
extern u16 gSpecialVar_0x8000;
@@ -37,8 +37,8 @@ extern u16 gSpecialVar_0x8008;
extern u16 gSpecialVar_0x8009;
extern u16 gSpecialVar_0x800A;
extern u16 gSpecialVar_0x800B;
-extern u16 gScriptResult;
-extern u16 gScriptLastTalked;
-extern u16 gScriptFacing;
+extern u16 gSpecialVar_Result;
+extern u16 gSpecialVar_LastTalked;
+extern u16 gSpecialVar_Facing;
#endif // GUARD_EVENT_DATA_H
diff --git a/include/evolution_graphics.h b/include/evolution_graphics.h
index c217f22af..a960f637b 100644
--- a/include/evolution_graphics.h
+++ b/include/evolution_graphics.h
@@ -6,8 +6,10 @@ void LoadEvoSparkleSpriteAndPal(void);
u8 LaunchTask_PreEvoSparklesSet1(u16 arg0);
u8 LaunchTask_PreEvoSparklesSet2(void);
u8 LaunchTask_PostEvoSparklesSet1(void);
-u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 arg0);
-u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 arg0);
+u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species);
+u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species);
u8 sub_8149E7C(u8 preEvoSpriteID, u8 postEvoSpriteID);
+#define EvoGraphicsTaskEvoStop data[8]
+
#endif // GUARD_EVOLUTION_GRAPHICS_H
diff --git a/include/evolution_scene.h b/include/evolution_scene.h
new file mode 100644
index 000000000..48bd6ebe1
--- /dev/null
+++ b/include/evolution_scene.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_EVOLUTION_SCENE_H
+#define GUARD_EVOLUTION_SCENE_H
+
+void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
+void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
+void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
+
+extern void (*gCB2_AfterEvolution)(void);
+
+#endif // GUARD_EVOLUTION_SCENE_H
diff --git a/include/ewram.h b/include/ewram.h
new file mode 100755
index 000000000..b07820090
--- /dev/null
+++ b/include/ewram.h
@@ -0,0 +1,274 @@
+#ifndef GUARD_EWRAM_H
+#define GUARD_EWRAM_H
+
+extern u8 gSharedMem[];
+#define ewram_addr 0x02000000 // used in gSharedMem addr hacks
+
+// Note: we have duplicate ewram labels because its clear some memory
+// regions overlap others but have different definitions. Until some
+// dupes can be determined to be the same, they will be deliberate
+// seperated.
+#define eWeatherPaletteData (*(struct WeatherPaletteData *)gSharedMem)
+#define BATTLE_STRUCT ((struct BattleStruct *) (gSharedMem + 0x0))
+#define ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0))
+#define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0))
+#define ewramBerryPic (gSharedMem + 0x0)
+#define ewram0_3 (*(struct UnknownStruct3 *)(gSharedMem + 0x0))
+#define ewram0_4 (*(struct Unk2000000 *)(gSharedMem + 0x0))
+#define ewram0_5 (*(struct UnkStruct *)(gSharedMem + 0x0))
+#define eMatsudaDebugVar (gSharedMem[0x0])
+#define eBrendanSprite (gSharedMem + 0x0)
+#define ewram0_6 (u32)(&gSharedMem[0])
+#define ewram0_7 (&gSharedMem[0])
+#define eSaveSection (struct SaveSection *)(gSharedMem + 0x0)
+#define ewram0arr ((u8 (*)[32])gSharedMem)
+#define eVoidSharedArr (void *)(ewram_addr + 0x0)
+#define eVoidSharedArr2 (u32)(ewram_addr) // ew(ram)
+#define eSlotMachine ((struct SlotMachineEwramStruct *)(gSharedMem + 0x0))
+#define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20))
+#define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0))
+#define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0))
+#define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4))
+#define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520))
+#define ewram520_2 (u8 *)(ewram_addr + 0x520)
+#define eMaySprite (gSharedMem + 0x800)
+#define ewram888 (gSharedMem + 0x888)
+#define ewramBlankMapName (gSharedMem + 0xA48)
+#define ewramA6E (gSharedMem[0xA6E])
+#define ewram01000 (*(struct Unk2001000 *)(gSharedMem + 0x1000))
+#define ewramBerryPicTemp (gSharedMem + 0x1000)
+#define EWRAM_1000 (*(struct Struct2001000 *)(gSharedMem + 0x1000))
+#define gUnk20011fa (u8 *)(&gSharedMem[0x11FA])
+#define gUnk2002694 (u8 *)(&gSharedMem[0x2694])
+#define gUnk20026A6 (u8 *)(&gSharedMem[0x26A6])
+#define gUnk20026e4 (u8 *)(&gSharedMem[0x26E4])
+#define ewram4000 (gSharedMem + 0x4000)
+#define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000))
+#define ARRAY_2007800 ((struct EasyChatPair *)(gSharedMem + 0x7800))
+#define ARRAY_2007900 ((struct EasyChatPair *)(gSharedMem + 0x7900))
+#define ewram_2008000 (*(struct PlayerRecords *)(gSharedMem + 0x08000))
+#define ewram8000 (&gSharedMem[0x8000])
+#define ePokedexPalAddr1 (void *)(gSharedMem + 0x8000)
+#define ewram8800 (&gSharedMem[0x8800])
+#define ewram9000 (&gSharedMem[0x9000])
+#define ewram9000_hack (void *)(ewram_addr + 0x9000) // TODO: Fix this.
+#define ewram9800 (&gSharedMem[0x9800])
+#define ewramA000 (&gSharedMem[0xA000])
+#define ewramA800 (&gSharedMem[0xA800])
+#define ewramB000 (&gSharedMem[0xB000])
+#define ewramB800 (&gSharedMem[0xB800])
+#define TRANSITION_STRUCT (*(struct TransitionData *) (gSharedMem + 0xC000))
+#define ewramC000 (&gSharedMem[0xC000])
+#define ePokedexPalAddr2 (void *)(gSharedMem + 0xC000)
+#define ewramC03C (&gSharedMem[0xC03C])
+#define ewramC800 (&gSharedMem[0xC800])
+#define ewramD000 (&gSharedMem[0xD000])
+#define ewramD800 (&gSharedMem[0xD800])
+#define ewramE000 (&gSharedMem[0xE000])
+#define ewramE800 (&gSharedMem[0xE800])
+#define ewramF000 (&gSharedMem[0xF000])
+#define ewramF800 (&gSharedMem[0xF800])
+#define ewram_2010000 (*(struct TradeEwramStruct *)(gSharedMem + 0x10000))
+#define ewram10000 (&gSharedMem[0x10000])
+#define eSlotMachineGfxBuffer (void *)(gSharedMem + 0x10000) // slot machine
+#define ePokedexPalAddr3 (void *)(gSharedMem + 0x10000)
+#define ewram10800 (&gSharedMem[0x10800])
+#define ewram11000 (&gSharedMem[0x11000])
+#define ewram11800 (&gSharedMem[0x11800])
+#define ewram12000 (&gSharedMem[0x12000])
+#define ewram12800 (&gSharedMem[0x12800])
+#define ewram13000 (&gSharedMem[0x13000])
+#define eSlotMachineReelTimeGfxBuffer (&gSharedMem[0x13200])
+#define ewram13800 (&gSharedMem[0x13800])
+#define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000))
+#define ewram14000 (&gSharedMem[0x14000])
+#define ePokedexPalAddr4 (void *)(gSharedMem + 0x14000)
+#define ewram14000arr(i, data) (gSharedMem[0x14000 + i + data])
+#define ewram14004arr(i, data) (gSharedMem[0x14004 + i + data])
+#define ewram14008arr(i, data) (gSharedMem[0x14008 + data + i])
+#define ewram14800 (&gSharedMem[0x14800])
+#define EWRAM_14800 ((u16 *)(gSharedMem + 0x14800))
+#define sEvoInfo ((*(struct EvoInfo*)(gSharedMem + 0x14800)))
+#define EWRAM_15000 ((u8 *)(gSharedMem + 0x15000))
+#define ewram15000 (&gSharedMem[0x15000])
+#define ewram15000arr(i, data) (gSharedMem[0x15000 + data + i])
+#define ewram15800 (&gSharedMem[0x15800])
+#define ewram15DDE (gSharedMem[0x15DDE])
+#define ewram15DDF (gSharedMem[0x15DDF])
+#define ewram15DE0 ((*(struct ContestEntry*)(gSharedMem + 0x15DE0)))
+#define ewram15E00 ((*(struct Unk2015E00*)(gSharedMem + 0x15E00)))
+#define ewram16000 (gSharedMem[0x16000])
+#define ewram16000_2 (&gSharedMem[0x16000])
+#define ewram16001 (gSharedMem[0x16001])
+#define ewram16002 (gSharedMem[0x16002])
+#define ewram16003 (gSharedMem[0x16003])
+#define ewram16004arr(i, bank) (gSharedMem[0x16004 + i + bank * 2])
+#define ewram1600C (gSharedMem[0x1600C])
+#define ewram1600E (gSharedMem[0x1600E])
+#define ewram16010arr(bank) (gSharedMem[0x16010 + bank])
+#define ewram1601B (gSharedMem[0x1601B])
+#define eDynamicMoveType (gSharedMem[0x1601C])
+#define eFocusPunchBank (gSharedMem[0x1601D])
+#define eDmgMultiplier (gSharedMem[0x1601F])
+#define ewram16020 ((u8 *)(gSharedMem + 0x16020))
+#define ewram16020arr(i) (gSharedMem[0x16020 + i])
+#define ewram16054 (gSharedMem[0x16054])
+#define ewram16056 (gSharedMem[0x16056])
+#define ewram16058 (gSharedMem[0x16058])
+#define ewram16059 (gSharedMem[0x16059])
+#define ewram16060(bank) (gSharedMem[0x16060 + bank])
+#define BATTLE_PARTY_ID(bank) (gSharedMem[0x16064 + bank])
+#define ewram16064 (&gSharedMem[0x16064])
+#define ewram16064arr(bank) (gSharedMem[0x16064 + bank])
+#define ewram16068arr(i) (gSharedMem[0x16068 + i])
+#define UNK_201606C_ARRAY (gSharedMem + 0x1606C) // lazy define but whatever.
+#define ewram1606Carr(i, a) (gSharedMem[0x1606C + i + a * 3])
+#define ewram16078 (gSharedMem[0x16078])
+#define ewram16084 (gSharedMem[0x16084])
+#define ewram16086 (gSharedMem[0x16086])
+#define ewram16087 (gSharedMem[0x16087])
+#define ewram16088 (gSharedMem[0x16088])
+#define ewram16088_2 (*(u8 *)(gSharedMem + 0x16088))
+#define ewram16089 (gSharedMem[0x16089])
+#define ewram16089_2 (*(u8 *)(gSharedMem + 0x16089))
+#define ewram1608Carr(bank) (gSharedMem[0x1608C + bank])
+#define EWRAM_1609D (gSharedMem[0x1609D])
+#define ewram160A1 (gSharedMem[0x160A1])
+#define ewram160A4 (gSharedMem[0x160A4])
+#define ewram160A5 (gSharedMem[0x160A5])
+#define ewram160A6 (gSharedMem[0x160A6])
+#define ewram160A8 (gSharedMem[0x160A8])
+#define ewram160A9 (gSharedMem[0x160A9])
+#define ewram160AA (gSharedMem[0x160AA])
+#define ewram160AB (gSharedMem[0x160AB])
+#define ewram160AC ((u8 *)(gSharedMem + 0x160AC))
+#define ewram160ACarr(i) (gSharedMem[0x160AC + i])
+#define ewram160ACarr2(i, bank) (gSharedMem[0x160AC + i + bank * 2])
+#define ewram160BC ((u16 *)(gSharedMem + 0x160BC)) // hp
+#define ewram160BCarr(bank) (gSharedMem[0x160BC + bank * 2])
+#define ewram160C0 (gSharedMem[0x160C0])
+#define ewram160C2_Flags ((u16 *)(gSharedMem + 0x160C2))
+#define ewram160C4_Callback ((MainCallback *)(gSharedMem + 0x160C4))
+#define ewram160C8 (gSharedMem[0x160C8])
+#define ewram160C8arr(bank) (gSharedMem[0x160C8 + (bank / 2)])
+#define ewram160C9 (gSharedMem[0x160C9])
+#define ewram160CB (gSharedMem[0x160CB])
+#define ewram160CC ((u8 *)(gSharedMem + 0x160CC))
+#define ewram160CCarr(i) (gSharedMem[0x160CC + i])
+#define USED_HELD_ITEM(bank) ((((u16*)(&gSharedMem[0x160CC + bank * 2]))))
+#define USED_HELD_ITEMS(bank) (*(u16 *)&gSharedMem[0x160CC + 2 * (bank)])
+#define ewram160D4(bank) (gSharedMem[0x160D4 + (bank / 2) * 2])
+#define ewram160D8(bank) (gSharedMem[0x160D8 + (bank / 2)])
+#define ewram160DA(bank) (gSharedMem[0x160DA + (bank / 2)])
+#define ewram160DD (gSharedMem[0x160DD])
+#define ewram160E0(i) (gSharedMem[0x160E0 + i])
+#define ewram160E6 (gSharedMem[0x160E6])
+#define ewram160E7 (gSharedMem[0x160E7])
+#define CHOICED_MOVE(bank) (((u16*)(&gSharedMem[0x160E8 + bank * 2])))
+#define ewram160E8 ((u8 *)(gSharedMem + 0x160E8))
+#define ewram160E8arr(i) (gSharedMem[0x160E8 + i])
+#define ewram160E8arr2(i, bank) (gSharedMem[0x160E8 + i + bank * 2])
+#define ewram160F0 ((u8 *)(gSharedMem + 0x160F0))
+#define ewram160F0arr(i) (gSharedMem[0x160F0 + i])
+#define ewram160F8 (gSharedMem[0x160F8])
+#define ewram160F9 (gSharedMem[0x160F9])
+#define eStatHp (gSharedMem[0x160FA])
+#define ewram160FB (gSharedMem[0x160FB])
+#define ewram16100 ((u8 *)(gSharedMem + 0x16100))
+#define ewram16100arr(i) (gSharedMem[0x16100 + i])
+#define ewram16100arr2(i, bank) (gSharedMem[0x16100 + i + bank * 4])
+#define ewram16108 ((u8 *)(gSharedMem + 0x16108))
+#define ewram16108arr(i) (gSharedMem[0x16108 + i])
+#define ewram16110 (gSharedMem[0x16110])
+#define ewram16111 (gSharedMem[0x16111])
+#define eMultihitMoveEffect (gSharedMem[0x16112])
+#define ewram16113 (gSharedMem[0x16113])
+#define ewram16400 (gSharedMem + 0x16400)
+#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
+#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (gSharedMem + 0x16A00))
+#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00))
+#define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2])
+#define ewram16800 (&gSharedMem[0x16800])
+#define ewram17000 (&gSharedMem[0x17000])
+#define eLearnMoveStruct (struct LearnMoveStruct *)(gSharedMem + 0x17000)
+#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000))
+#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
+#define ewram17002 (&gSharedMem[0x17002])
+#define eFlashFireArr (*(struct Struct2017100 *)(gSharedMem + 0x17100))
+#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (gSharedMem + 0x17110))
+#define ewram17130 (gSharedMem[0x17130])
+#define B_FUNCTION_STACK ((struct funcStack *) (gSharedMem + 0x17140))
+#define ewram17160 (gSharedMem[0x17160])
+#define ewram17800 ((struct Struct2017800 *) (gSharedMem + 0x17800))
+#define ewram17800_2 (&gSharedMem[0x17800])
+#define EWRAM_17800 ((struct UnknownStruct1 *)(gSharedMem + 0x17800))
+#define eTransformStatuses ((struct TransformStatus *)(gSharedMem + 0x17800))
+#define ewram17810 ((struct Struct2017810 *) (gSharedMem + 0x17810))
+#define EWRAM_17810 ((struct UnknownStruct3 *)(gSharedMem + 0x17810))
+#define ewram17840 (*(struct Struct2017840 *) (gSharedMem + 0x17840))
+#define ewram17850 ((struct UnknownStruct5 *)(gSharedMem + 0x17850))
+#define ewram17E00 ((u16 *)(gSharedMem + 0x17E00))
+#define ewram_2018000 (*(struct PlayerRecords *)(gSharedMem + 0x18000))
+#define EWRAM_18000 ((u16 *)(gSharedMem + 0x18000))
+#define ewram18000 ((u16 *)(gSharedMem + 0x18000))
+#define ewram18000_2 (&gSharedMem[0x18000])
+#define ewram18000_3 *(struct Pokemon **)(gSharedMem + 0x18000)
+#define eBerryBlenderData (struct BerryBlenderData*)(&gSharedMem[0x18000])
+#define eEggHatchData (struct EggHatchData*)(&gSharedMem[0x18000])
+#define ePokedexView1 (struct PokedexView *)(gSharedMem + 0x18000)
+#define UNK_2018000_STRUCT (*(struct UnknownStruct2018000 *)(gSharedMem + 0x18000))
+#define pssData (*(struct PokemonSummaryScreenStruct *)(gSharedMem + 0x18000))
+#define ewram18300 ((u16 *)(gSharedMem + 0x18300))
+#define ewram18800 (&gSharedMem[0x18800])
+#define ePokedexView2 (struct PokedexView *)(gSharedMem + 0x18800)
+#define ewram189a0 ((u16 *)(gSharedMem + 0x189A0))
+#define ewram18a20 ((u16 *)(gSharedMem + 0x18A20))
+#define ewram18a32 ((u16 *)(gSharedMem + 0x18A32))
+#define ewram18a80 ((u16 *)(gSharedMem + 0x18a80))
+#define ewram19000 (&gSharedMem[0x19000])
+#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
+#define ePokedexView3 (struct PokedexView *)(gSharedMem + 0x19000)
+#define eRoulette ((struct Roulette *)(gSharedMem + 0x19000))
+#define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348))
+#define ewram19800 (&gSharedMem[0x19800])
+#define ePokedexView4 (struct PokedexView *)(gSharedMem + 0x19800)
+#define ewram1A000 (&gSharedMem[0x1A000])
+#define ewram1A800 (&gSharedMem[0x1A800])
+#define ewram1B000 (*(struct Unk201B000 *)(gSharedMem + 0x1B000))
+#define ewram1B000_alt (*(struct Struct201B000 *)(gSharedMem + 0x1B000))
+#define EWRAM_1B000 ewram1B000_alt // FIXME
+#define EWRAM_1B000_2 (*(struct Struct201B000 *)(gSharedMem + 0x1B000))
+#define ewram1B000_2 (&gSharedMem[0x1B000])
+#define ewram1B800 (&gSharedMem[0x1B800])
+#define EWRAM_1C000 (*(struct Struct201C000 *)(gSharedMem + 0x1C000))
+#define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000))
+#define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar
+#define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000])
+#define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800))
+#define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000))
+#define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000))
+#define ewram1D400 ((u16 *)(gSharedMem + 0x1D400))
+#define ewramSavedItemsPocket ((struct ItemSlot *)(gSharedMem + 0x1E000)) // saved items pocket (for Wally battle)
+#define ewram1E000(i) (gSharedMem[0x1E000 + i])
+#define eHallOfFameMons2 (struct HallofFameMons*)(&gSharedMem[0x1E000])
+#define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000)
+#define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000))
+#define ewram1E000_2 (const u8 *)(gSharedMem + 0x1E000)
+#define HALL_OF_FAME_SHEET_1 ((u8 *)(gSharedMem + 0x1E800))
+#define ewram_1f000 (*(struct DecoPCPointers *)(gSharedMem + 0x1f000))
+#define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
+#define HALL_OF_FAME_SHEET_2 ((u8 *)(gSharedMem + 0x1F000))
+#define EWRAM_1F800 ((u16 *)(gSharedMem + 0x1F800))
+#define ewram_1F800_2 (const u16 *)(gSharedMem + 0x1F800)
+#define ewram1FE00 (*(struct Unk201FE00 *)(gSharedMem + 0x1FE00))
+#define eMailboxInfo (*(struct MailboxStruct *)(gSharedMem + 0x1FE00))
+#define eCutGrassSpriteArray (gSharedMem + 0x1FFF0) // 8 sprite IDs
+#define ewram1FFFC (gSharedMem[0x1FFFC])
+#define ewram1FFFD (gSharedMem[0x1FFFD])
+#define gHelperState (gSharedMem[0x1FFFE])
+#define ewram1FFFE (gSharedMem[0x1FFFE])
+#define gReshowState (gSharedMem[0x1FFFF])
+#define ewramBagSetupStep (gSharedMem[0x1FFFF])
+#define ewram1FFFF (gSharedMem[0x1FFFF])
+
+#endif
diff --git a/include/field_camera.h b/include/field_camera.h
index 4ce207541..17126d190 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -11,7 +11,7 @@ struct CameraSomething
s32 unk14;
};
-extern struct Camera gUnknown_0202E844;
+extern struct Camera gCamera;
void move_tilemap_camera_to_upper_left_corner(void);
void sub_8057A58(void);
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index a85e02132..2d5693e40 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -30,7 +30,7 @@ u8 *sub_80682A8(struct MapPosition *, u8, u8);
void overworld_poison_timer_set(void);
void prev_quest_postbuffer_cursor_backup_reset(void);
u8 *sub_8068E24(struct MapPosition *);
-u8 *GetFieldObjectScriptPointerForComparison();
+u8 *GetFieldObjectScriptPointerPlayerFacing(void);
bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *);
bool8 sub_8068870(u16 a);
bool8 sub_8068894(void);
diff --git a/include/field_door.h b/include/field_door.h
index 1759e0dc1..091aac27f 100644
--- a/include/field_door.h
+++ b/include/field_door.h
@@ -5,8 +5,8 @@ struct DoorGraphics
{
u16 metatileNum;
u8 unk2;
- void *tiles;
- void *palette;
+ const void *tiles;
+ const void *palette;
};
struct DoorAnimFrame
@@ -20,6 +20,6 @@ void FieldSetDoorClosed(u32, u32);
s8 FieldAnimateDoorClose(u32, u32);
s8 FieldAnimateDoorOpen(u32, u32);
bool8 FieldIsDoorAnimationRunning(void);
-u32 sub_8058790(u32 x, u32 y);
+u32 GetDoorSoundEffect(u32 x, u32 y);
#endif
diff --git a/include/field_effect.h b/include/field_effect.h
index f43b15afb..bb859074f 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -67,7 +67,7 @@ enum FieldEffectScriptIdx
FLDEFF_CUT_GRASS,
FLDEFF_FIELD_MOVE_SHOW_MON_INIT,
FLDEFF_USE_FLY_ANCIENT_TOMB,
- FLDEFF_PCTURN_ON,
+ FLDEFF_SECRET_BASE_PC_TURN_ON,
FLDEFF_HALL_OF_FAME_RECORD,
FLDEFF_USE_TELEPORT
};
@@ -252,7 +252,8 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite);
void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
void sub_80878A8(void);
void sub_8087BA8(void);
+void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
-extern u32 gUnknown_0202FF84[8];
+extern s32 gFieldEffectArguments[8];
#endif // GUARD_FIELD_EFFECT_H
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index a1dd53a2b..7bba24fa6 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_EFFECT_HELPERS_H
#define GUARD_FIELD_EFFECT_HELPERS_H
+extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
+
void sub_812869C(struct MapObject *);
bool8 sub_81286C4(struct MapObject *);
void oamc_shadow(struct Sprite *);
@@ -26,6 +28,9 @@ void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y);
void sub_8127ED0(u8, u8);
void sub_8127F28(u8, u8, s16);
u8 sub_8128124(u8 id);
-void ash(s16, s16, u16, u8);
+void ash(s16, s16, u16, s16);
+void SetUpReflection(struct MapObject *mapObj, struct Sprite *sprite, u8 a);
+u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct MapObject *mapObject);
+u8 sub_8126FF0(u8, u8, u8, s16, s16);
#endif // GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index 111dc92a6..4377367f7 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -13,7 +13,7 @@ void sub_8080A3C(void);
void sub_8080AC4(void);
void mapldr_default();
void sub_8080B60(void);
-void atk17_seteffectuser(void);
+void atk17_seteffectsecondary(void);
void sub_8080E28(void);
void sub_8080E44(void);
bool32 sub_8080E70(void);
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index d2a1a9b1f..cf3be36b2 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -3,22 +3,24 @@
#include "sprite.h"
+extern const u8 gUnknown_0830FD14[];
+
#define fieldmap_object_cb(setup, callback, table) \
static u8 callback(struct MapObject *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
- meta_step(&gMapObjects[sprite->data0], sprite, callback);\
+ meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\
}\
static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\
{\
- return table[sprite->data1](mapObject, sprite);\
+ return table[sprite->data[1]](mapObject, sprite);\
}
#define fieldmap_object_null_cb(setup, callback) \
static u8 callback(struct MapObject *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
- meta_step(&gMapObjects[sprite->data0], sprite, callback);\
+ meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\
}\
static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\
{\
@@ -36,6 +38,9 @@ extern const u16 gMapObjectPalette19[];
extern const u32 gMapObjectPic_MovingBox[32];
extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[];
+extern const u8 gFieldEffectPic_CutGrass[];
+extern const u16 gFieldEffectObjectPalette6[];
+
void sub_805C058(struct MapObject *mapObject, s16 a, s16 b);
void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18);
void MoveCoords(u8 direction, s16 *x, s16 *y);
@@ -54,17 +59,15 @@ u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3);
u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3);
u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3);
-u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8(u8));
extern struct CameraSomething gUnknown_03004880;
extern u16 gUnknown_03004898;
@@ -318,7 +321,7 @@ u8 get_go_fast_image_anim_num(u8);
u8 get_go_faster_image_anim_num(u8);
u8 sub_805FD78(u8);
-int state_to_direction(u8, u8, u8);
+u32 state_to_direction(u8, u32, u32);
void sub_805AA98();
void sub_805AAB0(void);
@@ -334,7 +337,7 @@ void RemoveFieldObjectInternal(struct MapObject *);
u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
u8 show_sprite(u8, u8, u8);
void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables);
-u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority);
+u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 sub_805B410(u8, u8, s16, s16, u8, u8);
void sub_805B55C(s16 a, s16 b);
void sub_805B710(u16 i, u16 i1);
@@ -344,7 +347,7 @@ void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
void FieldObjectHandleDynamicGraphicsId(struct MapObject *);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
-void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
+void FieldObjectGetLocalIdAndMap(struct MapObject *, void *, void *, void *);
void sub_805BCC0(s16 x, s16 y);
void sub_805BCF0(u8, u8, u8, u8);
void sub_805BD48(u8, u8, u8);
@@ -379,14 +382,14 @@ u8 sub_805FDF8(u8);
u8 sub_805FE08(u8);
void npc_set_running_behaviour_etc(struct MapObject *, u8);
u8 npc_running_behaviour_by_direction(u8);
-u8 npc_block_way(struct MapObject *, s16, s16, u8);
+u8 npc_block_way(struct MapObject *, s16, s16, u32);
u8 sub_8060024(struct MapObject *, s16, s16, u8);
-u8 sub_8060234(u8, u8, u8);
+bool8 IsBerryTreeSparkling(u8, u8, u8);
void sub_8060288(u8, u8, u8);
void sub_8060388(s16, s16, s16 *, s16 *);
void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1);
void GetFieldObjectMovingCameraOffset(s16 *, s16 *);
-void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1);
+void FieldObjectMoveDestCoords(struct MapObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8);
@@ -396,21 +399,23 @@ void FieldObjectClearAnim(struct MapObject *);
bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 FieldObjectGetSpecialAnim(struct MapObject *);
-u8 GetFaceDirectionAnimId(u8);
-u8 GetSimpleGoAnimId(u8);
-u8 GetGoSpeed0AnimId(u8 a);
-u8 sub_8060744(u8 a);
-u8 d2s_08064034(u8 a);
-u8 sub_806079C(u8 a);
-u8 sub_80607F4(u8 a);
-u8 GetJumpLedgeAnimId(u8 a);
-u8 sub_806084C(u8);
-u8 sub_8060878(u8);
-u8 sub_80608D0(u8);
-u8 GetStepInPlaceDelay32AnimId(u8 a);
-u8 GetStepInPlaceDelay16AnimId(u8);
-u8 GetStepInPlaceDelay8AnimId(u8 a);
-u8 GetStepInPlaceDelay4AnimId(u8 a);
+u8 GetFaceDirectionAnimId(u32);
+u8 GetSimpleGoAnimId(u32);
+u8 GetGoSpeed0AnimId(u32);
+u8 sub_8060744(u32);
+u8 d2s_08064034(u32);
+u8 sub_806079C(u32);
+u8 sub_80607C8(u32);
+u8 sub_80607F4(u32);
+u8 GetJumpLedgeAnimId(u32);
+u8 sub_806084C(u32);
+u8 sub_8060878(u32);
+u8 sub_80608A4(u32);
+u8 sub_80608D0(u32);
+u8 GetStepInPlaceDelay32AnimId(u32);
+u8 GetStepInPlaceDelay16AnimId(u32);
+u8 GetStepInPlaceDelay8AnimId(u32);
+u8 GetStepInPlaceDelay4AnimId(u32);
u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
u8 sub_80609D8(u8);
u8 sub_8060A04(u8);
@@ -427,5 +432,9 @@ void sub_80634D0(struct MapObject *, struct Sprite *);
u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
void CameraObjectSetFollowedObjectId(u8);
u8 sub_805ADDC(u8);
+void sub_8060320(u32, s16 *, s16 *, s16, s16);
+u8 obj_unfreeze(struct Sprite *, s16, s16, u8);
+u16 npc_paltag_by_palslot(u8);
+void sub_8060470(s16 *, s16 *, s16, s16);
#endif // GUARD_FIELD_MAP_OBJ_H
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
index fd29a9a7f..f760bf153 100644
--- a/include/field_map_obj_helpers.h
+++ b/include/field_map_obj_helpers.h
@@ -18,4 +18,6 @@ void DoShadowFieldEffect(struct MapObject *mapObject);
u8 sub_8064704(struct Sprite *);
u8 sub_806478C(struct Sprite *);
void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3);
+void DoRippleFieldEffect(struct MapObject *mapObj, struct Sprite *sprite);
+
#endif
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 86b1af3fb..1b25aad24 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -19,7 +19,7 @@ u8 ForcedMovement_SlideSouth(void);
u8 ForcedMovement_SlideNorth(void);
u8 ForcedMovement_SlideWest(void);
u8 ForcedMovement_SlideEast(void);
-u8 sub_8058C04(void);
+u8 ForcedMovement_MatJump(void);
u8 sub_8058C10(void);
u8 ForcedMovement_MuddySlope(void);
void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys);
@@ -37,23 +37,23 @@ void sub_80591F4(struct MapObject *a);
void sub_8059204(void);
u8 player_get_x22(void);
void PlayerSetAnimId(u8 a, u8 b);
-void PlayerGoSpeed0(u8 a);
-void sub_80593C4(u8 a);
+void PlayerGoSpeed1(u8 a);
+void PlayerGoSpeed2(u8 a);
void npc_use_some_d2s(u8 a);
-void sub_80593F4(u8 a);
+void PlayerGoSpeed4(u8 a);
void sub_805940C(u8 a);
void PlayerOnBikeCollide(u8);
void PlayerFaceDirection(u8 a);
void PlayerTurnInPlace(u8 a);
void PlayerJumpLedge(u8 a);
void sub_80594C0(void);
-void sub_8059504(u8 a);
+void PlayerIdleWheelie(u8 a);
void PlayerStartWheelie(u8 a);
-void sub_8059534(u8 a);
-void sub_805954C(u8 a);
-void sub_8059570(u8 a);
-void sub_8059594(u8 a);
-void sub_80595B8(u8 a);
+void PlayerEndWheelie(u8 a);
+void PlayerStandingHoppingWheelie(u8 a);
+void PlayerMovingHoppingWheelie(u8 a);
+void PlayerLedgeHoppingWheelie(u8 a);
+void PlayerAcroTurnJump(u8 a);
void sub_80595DC(u8 a);
void sub_8059600(u8 a);
void sub_8059618(u8 a);
@@ -64,7 +64,7 @@ u8 player_get_direction_lower_nybble(void);
u8 player_get_direction_upper_nybble(void);
u8 PlayerGetZCoord(void);
u8 TestPlayerAvatarFlags(u8);
-// sub_80597D0
+u8 sub_80597D0(void);
u8 GetPlayerAvatarObjectId(void);
void sub_80597E8(void);
void sub_80597F4(void);
@@ -83,11 +83,11 @@ void sub_8059B88(u8);
void sub_8059BF4(void);
// sub_8059C3C
void sub_8059C94(u8);
-// sub_8059D08
+void sub_8059D08(u8);
u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c);
u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c);
u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c);
-u8 sub_805A000(struct Task *task, struct MapObject *mapObject);
+u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct MapObject *mapObject);
u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject);
u8 sub_805A100(struct Task *task, struct MapObject *mapObject);
u8 sub_805A178(struct Task *task, struct MapObject *mapObject);
diff --git a/include/field_poison.h b/include/field_poison.h
index 8e8e2746f..df0b31434 100644
--- a/include/field_poison.h
+++ b/include/field_poison.h
@@ -1,6 +1,6 @@
#ifndef GUARD_FIELD_POISON_H
#define GUARD_FIELD_POISON_H
-s32 overworld_poison(void);
+s32 DoPoisonFieldEffect(void);
#endif // GUARD_FIELD_POISON_H
diff --git a/include/field_special_scene.h b/include/field_special_scene.h
index d674f09df..240e9ecb6 100644
--- a/include/field_special_scene.h
+++ b/include/field_special_scene.h
@@ -1,8 +1,8 @@
#ifndef GUARD_FIELD_SPECIAL_SCENE_H
#define GUARD_FIELD_SPECIAL_SCENE_H
-s32 GetTruckCameraBobbingY(int a1);
-s32 GetTruckBoxMovement(int a1);
+s16 GetTruckCameraBobbingY(int a1);
+s16 GetTruckBoxMovement(int a1);
void Task_Truck1(u8 taskId);
void Task_Truck2(u8 taskId);
void Task_Truck3(u8 taskId);
diff --git a/include/field_specials.h b/include/field_specials.h
index d61aa3b20..52325879c 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -25,5 +25,6 @@ void ScriptShowElevatorMenu(void);
void SetShoalItemFlag(u16);
u8 GetLeadMonIndex(void);
void ResetFanClub(void);
+u8 sub_810FB10(u8 a0);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_weather.h b/include/field_weather.h
index 409f76028..267650a2a 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -1,15 +1,130 @@
#ifndef GUARD_WEATHER_H
#define GUARD_WEATHER_H
-void sub_807C828(void);
+struct Sprite;
+
+struct Weather
+{
+ union
+ {
+ struct
+ {
+ struct Sprite *rainSprites[24];
+ struct Sprite *snowflakeSprites[101];
+ struct Sprite *cloudSprites[3];
+ } s1;
+ struct
+ {
+ u8 filler0[0xA0];
+ struct Sprite *fog1Sprites[20];
+ struct Sprite *ashSprites[20];
+ struct Sprite *fog2Sprites[20];
+ struct Sprite *sandstormSprites1[20];
+ struct Sprite *sandstormSprites2[5];
+ } s2;
+ } sprites;
+ u8 unknown_200[2][32];
+ u8 filler_240[0x460-0x240];
+ u8 unk460[2][32];
+ u8 filler4A0[0x6B6-0x4A0];
+ s8 unknown_6B6;
+ u8 filler_6B7[0xC0-0xB7];
+ s8 unknown_6C0;
+ s8 unknown_6C1;
+ u8 unknown_6C2;
+ u8 unknown_6C3;
+ u16 unknown_6C4;
+ u8 unknown_6C6;
+ u8 unknown_6C7;
+ u8 unknown_6C8;
+ u8 unknown_6C9;
+ u8 unknown_6CA;
+ u8 unknown_6CB;
+ u16 initStep;
+ u16 finishStep;
+ u8 currWeather;
+ u8 nextWeather;
+ u8 weatherGfxLoaded;
+ u8 unknown_6D3;
+ u8 unknown_6D4;
+ u8 unknown_6D5;
+ u16 unknown_6D6;
+ u8 unknown_6D8;
+ u8 unknown_6D9;
+ u8 rainSpriteCount;
+ u8 unknown_6DB;
+ u8 unknown_6DC;
+ u8 rainStrength;
+ /*0x6DE*/ u8 cloudSpritesCreated;
+ u8 filler_6DF[1];
+ u16 unknown_6E0;
+ u16 unknown_6E2;
+ u8 snowflakeSpriteCount;
+ u8 unknown_6E5;
+ u16 unknown_6E6;
+ u16 thunderCounter;
+ u8 unknown_6EA;
+ u8 unknown_6EB;
+ u8 unknown_6EC;
+ u8 unknown_6ED;
+ u16 fog1ScrollPosX;
+ u16 unknown_6F0;
+ u16 unknown_6F2;
+ u8 unknown_6F4[6];
+ u8 unknown_6FA;
+ u8 fog1SpritesCreated;
+ u16 unknown_6FC;
+ u16 unknown_6FE;
+ u8 ashSpritesCreated;
+ u8 filler_701[3];
+ u32 unknown_704;
+ u32 unknown_708;
+ u8 filler_70C[2];
+ u16 unknown_70E;
+ u16 unknown_710;
+ u16 unknown_712;
+ u16 unknown_714;
+ u8 sandstormSprites1Created;
+ u8 sandstormSprites2Created;
+ u16 unknown_718;
+ u16 unknown_71A;
+ u16 unknown_71C;
+ u16 unknown_71E;
+ u16 unknown_720;
+ u16 unknown_722;
+ u8 fog2SpritesCreated;
+ u8 filler_725[1];
+ u16 unknown_726;
+ u16 unknown_728;
+ u16 unknown_72A;
+ u16 unknown_72C;
+ u8 unknown_72E;
+ u8 filler_72F;
+ u16 currBlendEVA;
+ u16 currBlendEVB;
+ u16 targetBlendEVA;
+ u16 targetBlendEVB;
+ u8 unknown_738;
+ u8 unknown_739;
+ u8 blendDelay;
+ u8 filler_73B[0x3C-0x3B];
+ s16 unknown_73C;
+ s16 unknown_73E;
+ s16 unknown_740;
+ s16 unknown_742;
+ u8 filler_744[0xD-4];
+ s8 unknown_74D;
+ u8 unknown_74E;
+};
+
+void StartWeather(void);
void DoWeatherEffect(u8 effect);
void sub_807C988(u8 effect);
void sub_807C9B4(u8 effect);
-void sub_807C9E4(u8);
-void sub_807CA34(u8);
+void Task_WeatherInit(u8);
+void Task_WeatherMain(u8);
void sub_807CAE8(void);
void nullsub_38(void);
-u32 sub_807CB0C(void);
void sub_807CB10(void);
void sub_807CC24(void);
void sub_807CCAC(void);
@@ -20,8 +135,9 @@ void nullsub_39(void);
// ASM
void sub_807CEBC(u8, u8, s8);
-void sub_807D1BC(u8, u8, u8, u8, u16);
-void sub_807D304(int, u8, u16);
+//void sub_807D1BC(u8, u8, u8, u8, u16);
+void sub_807D1BC(u8 a, u8 a2, s8 c, u8 d, u16 e);
+void sub_807D304(s8 a, u8 arg2, u16 c);
void sub_807D424(u8, u16);
// ...
void fade_screen(u8, u8);
@@ -29,7 +145,7 @@ void fade_screen(u8, u8);
void sub_807D78C(u8 tag);
void sub_807D874(u8);
// ...
-void sub_807DB64(u8, u8);
+void Weather_SetBlendCoeffs(u8, u8);
// ...
void sub_807DE68(void);
// ...
@@ -37,14 +153,18 @@ void PlayRainSoundEffect(void);
// ...
void SetSav1Weather(u32);
u8 GetSav1Weather(void);
-void sub_80806E4(void);
+void SetSav1WeatherFromCurrMapHeader(void);
// ...
void DoCurrentWeather(void);
void sub_8080750();
-u8 sub_807D770(void);
+bool8 sub_807D770(void);
bool8 sub_807DDFC(void);
void SetWeather(u32);
void UpdateWeatherPerDay(u16);
+extern struct Weather gWeather;
+
+extern struct Weather *const gWeatherPtr;
+
#endif // GUARD_WEATHER_H
diff --git a/include/flags.h b/include/flags.h
deleted file mode 100644
index a60de6ea0..000000000
--- a/include/flags.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef GUARD_FLAGS_H
-#define GUARD_FLAGS_H
-
-#define TRAINER_FLAG_START 0x500
-
-// SYSTEM FLAGS
-
-#define SYS_POKEMON_GET 0x800
-#define SYS_POKEDEX_GET 0x801
-#define SYS_POKENAV_GET 0x802
-#define SYS_GAME_CLEAR 0x804
-#define SYS_CHAT_USED 0x805
-#define SYS_HIPSTER_MEET 0x806
-
-// badges
-#define BADGE01_GET 0x807
-#define BADGE02_GET 0x808
-#define BADGE03_GET 0x809
-#define BADGE04_GET 0x80A
-#define BADGE05_GET 0x80B
-#define BADGE06_GET 0x80C
-#define BADGE07_GET 0x80D
-#define BADGE08_GET 0x80E
-
-// cities and towns
-#define FLAG_VISITED_LITTLEROOT_TOWN 0x80F
-#define FLAG_VISITED_OLDALE_TOWN 0x810
-#define FLAG_VISITED_DEWFORD_TOWN 0x811
-#define FLAG_VISITED_LAVARIDGE_TOWN 0x812
-#define FLAG_VISITED_FALLARBOR_TOWN 0x813
-#define FLAG_VISITED_VERDANTURF_TOWN 0x814
-#define FLAG_VISITED_PACIFIDLOG_TOWN 0x815
-#define FLAG_VISITED_PETALBURG_CITY 0x816
-#define FLAG_VISITED_SLATEPORT_CITY 0x817
-#define FLAG_VISITED_MAUVILLE_CITY 0x818
-#define FLAG_VISITED_RUSTBORO_CITY 0x819
-#define FLAG_VISITED_FORTREE_CITY 0x81A
-#define FLAG_VISITED_LILYCOVE_CITY 0x81B
-#define FLAG_VISITED_MOSSDEEP_CITY 0x81C
-#define FLAG_VISITED_SOOTOPOLIS_CITY 0x81D
-#define FLAG_VISITED_EVER_GRANDE_CITY 0x81E
-
-#define SYS_USE_FLASH 0x828
-#define SYS_USE_STRENGTH 0x829
-#define SYS_WEATHER_CTRL 0x82A
-#define SYS_CYCLING_ROAD 0x82B
-#define SYS_SAFARI_MODE 0x82C
-#define SYS_CRUISE_MODE 0x82D
-
-#define SYS_TV_HOME 0x830
-#define SYS_TV_WATCH 0x831
-#define SYS_TV_START 0x832
-#define SYS_POPWORD_INPUT 0x833
-#define SYS_MIX_RECORD 0x834
-#define SYS_CLOCK_SET 0x835
-#define SYS_NATIONAL_DEX 0x836
-#define SYS_CAVE_SHIP 0x837
-#define SYS_CAVE_WONDER 0x838
-#define SYS_CAVE_BATTLE 0x839
-#define SYS_SHOAL_TIDE 0x83A
-#define SYS_RIBBON_GET 0x83B
-
-#define FLAG_UNLOCK_BATTLE_TOWER 0x848
-#define FLAG_UNLOCK_SOUTHERN_ISLAND 0x849
-
-#define SYS_PC_LANETTE 0x84B
-#define SYS_EXDATA_ENABLE 0x84C
-#define SYS_ENC_UP_ITEM 0x84D
-#define SYS_ENC_DOWN_ITEM 0x84E
-#define SYS_BRAILLE_DIG 0x84F
-#define SYS_BRAILLE_STRENGTH 0x850
-#define SYS_BRAILLE_WAIT 0x851
-#define SYS_BRAILLE_FLY 0x852
-#define SYS_HAS_EON_TICKET 0x853
-
-#define SYS_POKEMON_LEAGUE_FLY 0x854
-
-#define SYS_TV_LATI 0x85D
-
-#define SYS_SHOAL_ITEM 0x85F
-#define SYS_B_DASH 0x860 // got Running Shoes
-#define SYS_CTRL_OBJ_DELETE 0x861
-#define SYS_RESET_RTC_ENABLE 0x862
-
-// SPECIAL FLAGS (unknown purpose)
-
-#define SPECIAL_FLAG_1 0x4001
-
-#endif // GUARD_FLAGS_H
-
-bool8 FlagGet(u16 flag);
diff --git a/include/fldeff_80C5CD4.h b/include/fldeff_80C5CD4.h
deleted file mode 100644
index 413e8ad96..000000000
--- a/include/fldeff_80C5CD4.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef GUARD_FLDEFF_80C5CD4_H
-#define GUARD_FLDEFF_80C5CD4_H
-
-void DoFieldPoisonEffect(void);
-bool32 FieldPoisonEffectIsRunning(void);
-void CreateRecordMixingSprite(void);
-void DestroyRecordMixingSprite(void);
-
-#endif // GUARD_FLDEFF_80C5CD4_H
diff --git a/include/fldeff_decoration.h b/include/fldeff_decoration.h
new file mode 100644
index 000000000..50b075b89
--- /dev/null
+++ b/include/fldeff_decoration.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_FLDEFF_DECORATION_H
+#define GUARD_FLDEFF_DECORATION_H
+
+void sub_80C68A4(s16 metatileId, s16 x, s16 y);
+void sub_80C6A54(s16 x, s16 y);
+void DoDecorationSoundEffect(s16 metatileId);
+void DoYellowCave4Sparkle(void);
+
+#endif // GUARD_FLDEFF_DECORATION_H
diff --git a/include/fldeff_poison.h b/include/fldeff_poison.h
new file mode 100644
index 000000000..fe3308ba9
--- /dev/null
+++ b/include/fldeff_poison.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FLDEFF_POISON_H
+#define GUARD_FLDEFF_POISON_H
+
+void DoFieldPoisonEffect(void);
+bool32 FieldPoisonEffectIsRunning(void);
+
+#endif // GUARD_FLDEFF_POISON_H
diff --git a/include/fldeff_recordmixing.h b/include/fldeff_recordmixing.h
new file mode 100644
index 000000000..550705eb6
--- /dev/null
+++ b/include/fldeff_recordmixing.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FLDEFF_RECORDMIXING_H
+#define GUARD_FLDEFF_RECORDMIXING_H
+
+u8 CreateRecordMixingSprite(void);
+void DestroyRecordMixingSprite(void);
+
+#endif // GUARD_FLDEFF_RECORDMIXING_H
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 0f7f06755..7fd429d9e 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -29,15 +29,16 @@
#define BG_VRAM VRAM
#define BG_VRAM_SIZE 0x10000
-#define BG_CHAR_ADDR(n) (BG_VRAM + (0x4000 * (n)))
-#define BG_SCREEN_ADDR(n) (BG_VRAM + (0x800 * (n)))
+#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (0x4000 * (n)))
+#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (0x800 * (n)))
+#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n)))
// text-mode BG
-#define OBJ_VRAM0 (VRAM + 0x10000)
+#define OBJ_VRAM0 (void *)(VRAM + 0x10000)
#define OBJ_VRAM0_SIZE 0x8000
// bitmap-mode BG
-#define OBJ_VRAM1 (VRAM + 0x14000)
+#define OBJ_VRAM1 (void *)(VRAM + 0x14000)
#define OBJ_VRAM1_SIZE 0x4000
#define OAM 0x7000000
diff --git a/include/gba/flash_internal.h b/include/gba/flash_internal.h
index cbcfb5466..39e14ef73 100644
--- a/include/gba/flash_internal.h
+++ b/include/gba/flash_internal.h
@@ -35,7 +35,7 @@ struct FlashType {
struct FlashSetupInfo
{
u16 (*programFlashByte)(u16, u32, u8);
- u16 (*programFlashSector)(u16, u8 *);
+ u16 (*programFlashSector)(u16, void *);
u16 (*eraseFlashChip)(void);
u16 (*eraseFlashSector)(u16);
u16 (*WaitForFlashWrite)(u8, u8 *, u8);
@@ -46,7 +46,7 @@ struct FlashSetupInfo
extern u16 gFlashNumRemainingBytes;
extern u16 (*ProgramFlashByte)(u16, u32, u8);
-extern u16 (*ProgramFlashSector)(u16, u8 *);
+extern u16 (*ProgramFlashSector)(u16, void *);
extern u16 (*EraseFlashChip)(void);
extern u16 (*EraseFlashSector)(u16);
extern u16 (*WaitForFlashWrite)(u8, u8 *, u8);
@@ -67,15 +67,15 @@ void SetReadFlash1(u16 *dest);
void StopFlashTimer(void);
u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src);
-void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size);
-u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n);
+void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size);
+u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n);
u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData);
u16 EraseFlashChip_MX(void);
u16 EraseFlashSector_MX(u16 sectorNum);
u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data);
-u16 ProgramFlashSector_MX(u16 sectorNum, u8 *src);
+u16 ProgramFlashSector_MX(u16 sectorNum, void *src);
// agb_flash_1m
u16 IdentifyFlash(void);
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index d483d4ddc..6dbe5e8ed 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -539,7 +539,28 @@
#define BGCNT_AFF1024x1024 0xC000
// BLDCNT
-
+// Bits 0-5 select layers for the 1st target
+#define BLDCNT_TGT1_BG0 (1 << 0)
+#define BLDCNT_TGT1_BG1 (1 << 1)
+#define BLDCNT_TGT1_BG2 (1 << 2)
+#define BLDCNT_TGT1_BG3 (1 << 3)
+#define BLDCNT_TGT1_OBJ (1 << 4)
+#define BLDCNT_TGT1_BD (1 << 5)
+// Bits 6-7 select the special effect
+#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
+#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
+#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
+#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
+// Bits 8-13 select layers for the 2nd target
+#define BLDCNT_TGT2_BG0 (1 << 8)
+#define BLDCNT_TGT2_BG1 (1 << 9)
+#define BLDCNT_TGT2_BG2 (1 << 10)
+#define BLDCNT_TGT2_BG3 (1 << 11)
+#define BLDCNT_TGT2_OBJ (1 << 12)
+#define BLDCNT_TGT2_BD (1 << 13)
+
+// BLDALPHA
+#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
// SOUNDCNT_H
#define SOUND_CGB_MIX_QUARTER 0x0000
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index 572b77711..ff92fcc40 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -404,10 +404,6 @@ void SampleFreqSet(u32 freq);
void m4aSoundVSyncOn(void);
void m4aSoundVSyncOff(void);
-void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo);
-void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
-void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch);
-void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan);
void ClearModM(struct MusicPlayerTrack *track);
void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth);
void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed);
diff --git a/include/gba/macro.h b/include/gba/macro.h
index 230fb4383..dcad009e1 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -84,4 +84,87 @@
dmaRegs[5]; \
}
+#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = (void *)(dest); \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaCopy##bit(dmaNum, _src, _dest, (block)); \
+ _src += (block); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaCopy##bit(dmaNum, _src, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaClearLarge(dmaNum, dest, size, block, bit) \
+{ \
+ const void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, 0, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, 0, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16)
+#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32)
+
+#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16)
+#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32)
+
+#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = (void *)(dest); \
+ u32 _size = size; \
+ DmaCopy##bit(dmaNum, _src, _dest, _size); \
+}
+
+#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16)
+#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32)
+
+#define DmaFillLarge(dmaNum, fillval, dest, size, block, bit) \
+{ \
+ void *_dest = (void *)(dest); \
+ u32 _size = (u32)(size); \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, fillval, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, fillval, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaFill16Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 16)
+#define DmaFill32Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 32)
+
+#define DmaFillDefvars(dmaNum, fillval, dest, size, bit) \
+{ \
+ void *_dest = (void *)(dest); \
+ u32 _size = (u##bit)(size); \
+ DmaFill##bit(dmaNum, fillval, _dest, _size); \
+}
+
+#define DmaFill16Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 16)
+#define DmaFill32Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 32)
+
#endif // GUARD_GBA_MACRO_H
diff --git a/include/gba/types.h b/include/gba/types.h
index 480619d21..33ae7df9a 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -28,6 +28,17 @@ typedef u8 bool8;
typedef u16 bool16;
typedef u32 bool32;
+struct BgCnt
+{
+ u16 priority:2;
+ u16 charBaseBlock:2;
+ u16 dummy:4;
+ u16 screenBaseBlock:5;
+ u16 areaOverflowMode:1;
+ u16 screenSize:2;
+};
+typedef volatile struct BgCnt vBgCnt;
+
struct PlttData
{
u16 r:5; // red
diff --git a/include/global.berry.h b/include/global.berry.h
index 6632e55e2..21a0dd500 100644
--- a/include/global.berry.h
+++ b/include/global.berry.h
@@ -3,33 +3,33 @@
struct Berry
{
- const u8 name[7];
- u8 firmness;
- u16 size;
- u8 maxYield;
- u8 minYield;
- const u8 *description1;
- const u8 *description2;
- u8 stageDuration;
- u8 spicy;
- u8 dry;
- u8 sweet;
- u8 bitter;
- u8 sour;
- u8 smoothness;
+ /*0x00*/ const u8 name[7];
+ /*0x07*/ u8 firmness;
+ /*0x08*/ u16 size;
+ /*0x0A*/ u8 maxYield;
+ /*0x0B*/ u8 minYield;
+ /*0x0C*/ const u8 *description1;
+ /*0x10*/ const u8 *description2;
+ /*0x14*/ u8 stageDuration;
+ /*0x15*/ u8 spicy;
+ /*0x16*/ u8 dry;
+ /*0x17*/ u8 sweet;
+ /*0x18*/ u8 bitter;
+ /*0x19*/ u8 sour;
+ /*0x1A*/ u8 smoothness;
};
struct EnigmaBerry
{
- struct Berry berry;
- u8 pic[(6 * 6) * TILE_SIZE_4BPP];
- u16 palette[16];
- u8 description1[45];
- u8 description2[45];
- u8 itemEffect[18];
- u8 holdEffect;
- u8 holdEffectParam;
- u32 checksum;
+ /*0x000*/ struct Berry berry;
+ /*0x01B*/ u8 pic[(6 * 6) * TILE_SIZE_4BPP];
+ /*0x49C*/ u16 palette[16];
+ /*0x4BC*/ u8 description1[45];
+ /*0x4E9*/ u8 description2[45];
+ /*0x516*/ u8 itemEffect[18];
+ /*0x528*/ u8 holdEffect;
+ /*0x529*/ u8 holdEffectParam;
+ /*0x52C*/ u32 checksum;
};
struct BattleEnigmaBerry
@@ -42,16 +42,21 @@ struct BattleEnigmaBerry
struct BerryTree
{
- u8 berry;
- u8 stage:7;
- u8 growthSparkle:1;
- u16 minutesUntilNextStage;
- u8 berryYield;
- u8 regrowthCount:4;
- u8 watered1:1;
- u8 watered2:1;
- u8 watered3:1;
- u8 watered4:1;
+ /*0x00*/ u8 berry;
+ /*0x01*/ u8 stage:7;
+ /*
+ A berry sparkle is a state that a berry tree
+ can be in after growing within the player's
+ viewport.
+ */
+ /*0x01*/ bool8 growthSparkle:1;
+ /*0x02*/ u16 minutesUntilNextStage;
+ /*0x04*/ u8 berryYield;
+ /*0x05*/ u8 regrowthCount:4;
+ /*0x05*/ u8 watered1:1;
+ /*0x05*/ u8 watered2:1;
+ /*0x05*/ u8 watered3:1;
+ /*0x05*/ u8 watered4:1;
};
#endif // GUARD_GLOBAL_BERRY_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 4029132e8..a828cf131 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -14,16 +14,16 @@ enum
// map types
enum
{
- MAP_TYPE_0,
- MAP_TYPE_TOWN,
- MAP_TYPE_CITY,
- MAP_TYPE_ROUTE,
- MAP_TYPE_UNDERGROUND,
- MAP_TYPE_UNDERWATER,
- MAP_TYPE_6,
- MAP_TYPE_7,
- MAP_TYPE_INDOOR,
- MAP_TYPE_SECRET_BASE
+ MAP_TYPE_0, // 0
+ MAP_TYPE_TOWN, // 1
+ MAP_TYPE_CITY, // 2
+ MAP_TYPE_ROUTE, // 3
+ MAP_TYPE_UNDERGROUND, // 4
+ MAP_TYPE_UNDERWATER, // 5
+ MAP_TYPE_6, // 6
+ MAP_TYPE_7, // 7
+ MAP_TYPE_INDOOR, // 8
+ MAP_TYPE_SECRET_BASE // 9
};
// map battle scenes
@@ -111,17 +111,17 @@ struct CoordEvent
struct BgEvent
{
- u16 x, y;
- u8 unk4;
- u8 kind;
- // 0x2 padding for the union beginning.
- union { // carried over from diego's FR/LG work, seems to be the same struct
+ /*0x00*/u16 x;
+ /*0x02*/u16 y;
+ /*0x04*/u8 unk4;
+ /*0x05*/u8 kind;
+ /*0x08*/union { // carried over from diego's FR/LG work, seems to be the same struct
// in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union.
u8 *script;
- // hidden item type probably
+ // hidden item type
struct {
- u8 filler6[0x2];
+ u16 item;
u16 hiddenItemId; // flag offset to determine flag lookup
} hiddenItem;
@@ -224,7 +224,14 @@ struct MapObject
/*0x14*/ struct Coords16 coords3;
/*0x18*/ u8 mapobj_unk_18:4; //current direction?
/*0x18*/ u8 placeholder18:4;
- /*0x19*/ u8 mapobj_unk_19;
+ /*0x19*/ union __attribute__((packed)) {
+ u8 as_byte;
+ struct __attribute__((packed)) {
+ u8 x:4;
+ u8 y:4;
+ } __attribute((aligned (1))) as_nybbles;
+ } __attribute((aligned (1))) range;
+ // /*0x19*/ u8 mapobj_unk_19;
/*0x1A*/ u8 mapobj_unk_1A;
/*0x1B*/ u8 mapobj_unk_1B;
/*0x1C*/ u8 mapobj_unk_1C;
@@ -237,68 +244,6 @@ struct MapObject
/*size = 0x24*/
};
-// THIS IS NEEDED TO MAKE TRAINER_SEE.C MATCH, PLEASE DO NOT REMOVE UNLESS YOU FIX CHECKPATHBETWEENTRAINERANDPLAYER
-struct MapObject2
-{
- /*0x00*/ u32 active:1;
- u32 mapobj_bit_1:1;
- u32 mapobj_bit_2:1;
- u32 mapobj_bit_3:1;
- u32 mapobj_bit_4:1;
- u32 mapobj_bit_5:1;
- u32 mapobj_bit_6:1;
- u32 mapobj_bit_7:1;
- /*0x01*/ u32 mapobj_bit_8:1;
- u32 mapobj_bit_9:1;
- u32 mapobj_bit_10:1;
- u32 mapobj_bit_11:1;
- u32 mapobj_bit_12:1;
- u32 mapobj_bit_13:1;
- u32 mapobj_bit_14:1;
- u32 mapobj_bit_15:1;
- /*0x02*/ u32 mapobj_bit_16:1;
- u32 mapobj_bit_17:1;
- u32 mapobj_bit_18:1;
- u32 mapobj_bit_19:1;
- u32 mapobj_bit_20:1;
- u32 mapobj_bit_21:1;
- u32 mapobj_bit_22:1;
- u32 mapobj_bit_23:1;
- /*0x03*/ u32 mapobj_bit_24:1;
- u32 mapobj_bit_25:1;
- u32 mapobj_bit_26:1;
- u32 mapobj_bit_27:1;
- u32 mapobj_bit_28:1;
- u32 mapobj_bit_29:1;
- u32 mapobj_bit_30:1;
- u32 mapobj_bit_31:1;
- /*0x04*/ u8 spriteId;
- /*0x05*/ u8 graphicsId;
- /*0x06*/ u8 animPattern;
- /*0x07*/ u8 trainerType;
- /*0x08*/ u8 localId;
- /*0x09*/ u8 mapNum;
- /*0x0A*/ u8 mapGroup;
- /*0x0B*/ u8 mapobj_unk_0B_0:4;
- u8 elevation:4;
- /*0x0C*/ struct Coords16 coords1;
- /*0x10*/ struct Coords16 coords2;
- /*0x14*/ struct Coords16 coords3;
- /*0x18*/ u8 mapobj_unk_18:4;
- /*0x18*/ u8 placeholder18:4;
- /*0x19*/ u8 mapobj_unk_19:4;
- /*0x19*/ u8 mapobj_unk_19b:4;
- /*0x1A*/ u8 mapobj_unk_1A;
- /*0x1B*/ u8 mapobj_unk_1B;
- /*0x1C*/ u8 mapobj_unk_1C;
- /*0x1D*/ u8 trainerRange_berryTreeId;
- /*0x1E*/ u8 mapobj_unk_1E;
- /*0x1F*/ u8 mapobj_unk_1F;
- /*0x20*/ u8 mapobj_unk_20;
- /*0x21*/ u8 mapobj_unk_21;
- /*size = 0x24*/
-};
-
struct MapObjectGraphicsInfo
{
/*0x00*/ u16 tileTag;
@@ -353,25 +298,42 @@ enum
COLLISION_LEDGE_JUMP = 6
};
+// player running states
+enum
+{
+ NOT_MOVING,
+ TURN_DIRECTION, // not the same as turning! turns your avatar without moving. also known as a turn frame in some circles
+ MOVING,
+};
+
+// player tile transition states
+enum
+{
+ T_NOT_MOVING,
+ T_TILE_TRANSITION,
+ T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary.
+};
+
struct PlayerAvatar /* 0x202E858 */
{
/*0x00*/ u8 flags;
- /*0x01*/ u8 bike;
- /*0x02*/ u8 running2;
- /*0x03*/ u8 running1;
+ /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags
+ /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.
+ /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.
/*0x04*/ u8 spriteId;
/*0x05*/ u8 mapObjectId;
- /*0x06*/ u8 unk6;
+ /*0x06*/ bool8 preventStep;
/*0x07*/ u8 gender;
- u8 acroBikeState;
- u8 unk9;
- u8 bikeFrameCounter;
- u8 unkB;
- u32 unkC;
- u32 unk10;
- u8 unk14[8];
- u8 unk1C[8];
- // TODO: rest of struct
+ /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie
+ /*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here.
+ /*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike.
+ /*0x0B*/ u8 bikeSpeed;
+ // acro bike only
+ /*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs.
+ /*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only
+ // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
+ /*0x14*/ u8 dirTimerHistory[8];
+ /*0x1C*/ u8 abStartSelectTimerHistory[8];
};
struct Camera
diff --git a/include/global.h b/include/global.h
index f076274cc..eea1574b7 100644
--- a/include/global.h
+++ b/include/global.h
@@ -5,7 +5,7 @@
#include "config.h"
// IDE support
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__CYGWIN__)
#define _(x) x
#define __(x) x
#define INCBIN_U8 {0}
@@ -14,9 +14,9 @@
#define INCBIN_S8 {0}
#define INCBIN_S16 {0}
#define INCBIN_S32 {0}
-void * memcpy (void *, const void *, size_t);
-void * memset (void *, int, size_t);
-int strcmp (const char *, const char *);
+void *memcpy (void *, const void *, size_t);
+void *memset (void *, int, size_t);
+int strcmp (const char *, const char *);
#endif
// Prevent cross-jump optimization.
@@ -27,21 +27,14 @@ int strcmp (const char *, const char *);
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n")
-#define nonmatching(fndec, x) {\
-__attribute__((naked))\
-fndec\
-{\
- asm_unified(x);\
-}\
-}
-
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
+#define POKEMON_SLOTS_NUMBER 412
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
-#define min(a, b) (a >= b ? a : b)
-#define max(a, b) (a <= b ? a : b)
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#define max(a, b) ((a) >= (b) ? (a) : (b))
// why does GF hate 2d arrays
#define MULTI_DIM_ARR(x, dim, y) ((x) * dim + (y))
@@ -49,10 +42,28 @@ fndec\
// dim access enums
enum
{
- B_8 = 1,
- B_16 = 2,
- B_32 = 4
-};
+ B_8 = 1,
+ B_16 = 2,
+ B_32 = 4
+};
+
+// There are many quirks in the source code which have overarching behavioral differences from
+// a number of other files. For example, diploma.c seems to declare rodata before each use while
+// other files declare out of order and must be at the beginning. There are also a number of
+// macros which differ from one file to the next due to the method of obtaining the result, such
+// as these below. Because of this, there is a theory (Two Team Theory) that states that these
+// programming projects had more than 1 "programming team" which utilized different macros for
+// each of the files that were worked on.
+#define T1_READ_8(ptr) ((ptr)[0])
+#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
+#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24))
+#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr)
+
+// T2_READ_8 is a duplicate to remain consistent with each group.
+#define T2_READ_8(ptr) ((ptr)[0])
+#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
+#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
+#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
enum
{
@@ -129,13 +140,13 @@ struct UCoords16
struct SecretBaseRecord
{
- /*ID?*/ /*0x1A08*/ u8 sbr_field_0;
+ /*0x1A08*/ u8 secretBaseId;
/*0x1A09*/ u8 sbr_field_1_0:4;
/*0x1A09*/ u8 gender:1;
/*0x1A09*/ u8 sbr_field_1_5:1;
/*0x1A09*/ u8 sbr_field_1_6:2;
- /*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes?
- /*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
+ /*0x1A0A*/ u8 playerName[OT_NAME_LENGTH];
+ /*0x1A11*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
/*0x1A16*/ u16 sbr_field_e;
/*0x1A18*/ u8 sbr_field_10;
/*0x1A19*/ u8 sbr_field_11;
@@ -149,7 +160,7 @@ struct SecretBaseRecord
/*0x1AA2*/ u8 partyEVs[6];
};
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "global.fieldmap.h"
#include "global.berry.h"
#include "pokemon.h"
@@ -211,12 +222,6 @@ struct RamScript
struct RamScriptData data;
};
-struct SB1_2EFC_Struct
-{
- u16 var;
- u8 unknown[0x1E];
-};
-
struct EasyChatPair
{
u16 unk0_0:7;
@@ -228,8 +233,8 @@ struct EasyChatPair
struct TVShowCommon
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u8 pad02[20];
/*0x16*/ u16 var16[3];
/*0x1C*/ u8 srcTrainerId3Lo;
@@ -244,8 +249,8 @@ struct TVShowCommon
struct TVShowFanClubLetter
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u16 pad04[6];
/*0x10*/ u8 playerName[8];
@@ -254,8 +259,8 @@ struct TVShowFanClubLetter
struct TVShowRecentHappenings
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u16 var02;
/*0x04*/ u16 var04[6];
/*0x10*/ u8 playerName[8];
@@ -265,8 +270,8 @@ struct TVShowRecentHappenings
struct TVShowFanclubOpinions
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u16 var02;
/*0x04*/ u8 var04A:4;
/*0x04*/ u8 var04B:4;
@@ -281,16 +286,16 @@ struct TVShowFanclubOpinions
struct TVShowUnknownType04
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u8 pad02[4];
/*0x06*/ u16 var06;
};
struct TVShowNameRaterShow
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u8 pokemonName[11];
/*0x0F*/ u8 trainerName[11];
@@ -303,8 +308,8 @@ struct TVShowNameRaterShow
struct TVShowBravoTrainerPokemonProfiles
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u16 var04[2];
/*0x08*/ u8 pokemonNickname[11];
@@ -320,8 +325,8 @@ struct TVShowBravoTrainerPokemonProfiles
struct TVShowBravoTrainerBattleTowerSpotlight
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u8 trainerName[8];
/*0x0A*/ u16 species;
/*0x0C*/ u8 pokemonName[8];
@@ -336,8 +341,8 @@ struct TVShowBravoTrainerBattleTowerSpotlight
struct TVShowPokemonToday
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u8 language;
/*0x03*/ u8 language2;
/*0x04*/ u8 nickname[11];
@@ -349,8 +354,8 @@ struct TVShowPokemonToday
struct TVShowSmartShopper
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u8 priceReduced;
/*0x03*/ u8 language;
/*0x04*/ u8 pad04[2];
@@ -362,8 +367,8 @@ struct TVShowSmartShopper
struct TVShowPokemonTodayFailed
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u8 language;
/*0x03*/ u8 pad03[9];
/*0x0c*/ u16 species;
@@ -376,8 +381,8 @@ struct TVShowPokemonTodayFailed
struct TVShowPokemonAngler
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 var04;
@@ -388,8 +393,8 @@ struct TVShowPokemonAngler
struct TVShowWorldOfMasters
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u16 var02;
/*0x04*/ u16 var04;
/*0x06*/ u16 var06;
@@ -402,8 +407,8 @@ struct TVShowWorldOfMasters
struct TVShowMassOutbreak
{
- /*0x00*/ u8 var00;
- /*0x01*/ u8 var01;
+ /*0x00*/ u8 kind;
+ /*0x01*/ bool8 active;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 moves[4];
@@ -415,7 +420,7 @@ struct TVShowMassOutbreak
/*0x13*/ u8 probability;
/*0x14*/ u8 level;
/*0x15*/ u8 var15;
- /*0x16*/ u16 var16;
+ /*0x16*/ u16 daysLeft;
/*0x18*/ u8 language;
u8 pad19[11];
};
@@ -447,69 +452,75 @@ struct MailStruct
/*0x20*/ u16 itemId;
};
-struct UnkMauvilleOldManStruct
+
+// Mauville Pokemon Center men
+
+struct MauvilleManCommon
+{
+ u8 id;
+};
+
+struct MauvilleManBard
{
- u8 unk_2D94;
- u8 unk_2D95;
- /*0x2D96*/ u16 mauvilleOldMan_ecArray[6];
- /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6];
- /*0x2DAE*/ u8 playerName[8];
- /*0x2DB6*/ u8 filler_2DB6[0x3];
- /*0x2DB9*/ u8 playerTrainerId[4];
- u8 unk_2DBD;
+ /*0x00*/ u8 id;
+ /*0x02*/ u16 songLyrics[6];
+ /*0x0E*/ u16 temporaryLyrics[6];
+ /*0x1A*/ u8 playerName[8];
+ /*0x22*/ u8 filler_2DB6[0x3];
+ /*0x25*/ u8 playerTrainerId[4];
+ /*0x29*/ bool8 hasChangedSong;
}; /*size = 0x2C*/
-struct UnkMauvilleOldManStruct2
+struct MauvilleManHipster
{
- u8 filler0;
- u8 unk1;
- u8 unk2;
- u16 mauvilleOldMan_ecArray[10];
- u8 mauvilleOldMan_ecArray2[12];
- u8 fillerF[0x2];
-}; /*size = 0x2C*/
+ u8 id;
+ bool8 alreadySpoken;
+};
-struct MauvilleOldManTrader
+struct MauvilleManTrader
{
- u8 unk0;
+ u8 id;
u8 unk1[4];
u8 unk5[4][11];
- u8 unk31;
+ bool8 alreadyTraded;
};
-typedef union OldMan
-{
- struct UnkMauvilleOldManStruct oldMan1;
- struct UnkMauvilleOldManStruct2 oldMan2;
- struct MauvilleOldManTrader trader;
- u8 filler[0x40];
-} OldMan;
-
-struct Unk_SB_Access_Struct1
+struct MauvilleManStoryteller
{
- u8 filler0[0xF8];
- struct SB1_2EFC_Struct sb1_2EFC_struct[5];
+ u8 id;
+ bool8 alreadyRecorded;
+ u8 filler2[2];
+ u8 gameStatIDs[4];
+ u8 trainerNames[4][7];
+ u8 statValues[4][4];
};
-struct Unk_SB_Access_Struct2
+struct MauvilleManGiddy
{
- /*0x0000*/ struct SB1_2EFC_Struct sb1_2EFC_struct2[12]; // each is 0x20
- /*0x2F84*/ u8 filler[0x18];
-};
+ /*0x00*/ u8 id;
+ /*0x01*/ u8 taleCounter;
+ /*0x02*/ u8 questionNum;
+ /*0x04*/ u16 randomWords[10];
+ /*0x18*/ u8 questionList[12];
+}; /*size = 0x2C*/
-/*0x2E04*/
-typedef union SB_Struct
+
+union MauvilleMan
{
- struct Unk_SB_Access_Struct1 unkSB1;
- struct Unk_SB_Access_Struct2 unkSB2;
-} SB_Struct;
-// size is 0x198
+ struct MauvilleManCommon common;
+ struct MauvilleManBard bard;
+ struct MauvilleManHipster hipster;
+ struct MauvilleManTrader trader;
+ struct MauvilleManStoryteller storyteller;
+ struct MauvilleManGiddy giddy;
+ u8 filler[0x40]; // needed to pad out the struct
+};
-struct UnknownSaveStruct2ABC
+struct PokeNews
{
- u8 val0;
- u8 val1;
- u16 val2;
+ u8 kind;
+ u8 state;
+ u16 days;
};
struct GabbyAndTyData
@@ -534,18 +545,34 @@ struct GabbyAndTyData
/*2b1b*/ u8 valB_5:3;
};
-struct RecordMixing_UnknownStructSub
+struct DayCareMail
+{
+ /*0x00*/ struct MailStruct message;
+ /*0x24*/ u8 names[19];
+};
+
+struct DayCareStepCountersEtc {
+ u32 steps[2];
+ u16 pendingEggPersonality;
+ u8 eggCycleStepsRemaining;
+};
+
+struct RecordMixingDayCareMail
{
- u32 unk0;
- u8 data[0x34];
- //u8 data[0x38];
+ struct DayCareMail mail[2];
+ u32 numDaycareMons;
+ u16 itemsHeld[2]; // marks whether or not each daycare mon is currently holding an item.
};
-struct RecordMixing_UnknownStruct
+struct DayCareMisc
{
- struct RecordMixing_UnknownStructSub data[2];
- u32 unk70;
- u16 unk74[0x2];
+ struct DayCareMail mail[2];
+ struct DayCareStepCountersEtc countersEtc;
+};
+
+struct DayCare {
+ struct BoxPokemon mons[2];
+ struct DayCareMisc misc;
};
struct LinkBattleRecord
@@ -571,18 +598,33 @@ struct RecordMixingGift
struct RecordMixingGiftData data;
};
+struct ContestWinner
+{
+ /*0x00*/ u32 personality; // personality
+ /*0x04*/ u32 otId; // otId
+ /*0x08*/ u16 species; // species
+ /*0x0A*/ u8 contestCategory;
+ /*0x0B*/ u8 nickname[0x16-0xB];
+ /*0x16*/ u8 trainerName[0x20-0x16];
+};
+
+// there should be enough flags for all 412 slots
+// each slot takes up 8 flags
+// if the value is not divisible by 8, we need to account for the reminder as well
+#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0))
+
struct SaveBlock1 /* 0x02025734 */
{
/*0x00*/ struct Coords16 pos;
/*0x04*/ struct WarpData location;
/*0x0C*/ struct WarpData warp1;
/*0x14*/ struct WarpData warp2;
- /*0x1C*/ struct WarpData warp3;
+ /*0x1C*/ struct WarpData lastHealLocation;
/*0x24*/ struct WarpData warp4;
- /*0x2C*/ u16 battleMusic;
+ /*0x2C*/ u16 savedMusic;
/*0x2E*/ u8 weather;
/*0x2F*/ u8 filler_2F;
- /*0x30*/ u8 flashUsed;
+ /*0x30*/ u8 flashLevel; // flash level on current map, 0 being normal and 4 being the darkest
/*0x32*/ u16 mapDataId;
/*0x34*/ u16 mapView[0x100];
/*0x234*/ u8 playerPartyCount;
@@ -597,7 +639,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x640*/ struct ItemSlot bagPocket_TMHM[64];
/*0x740*/ struct ItemSlot bagPocket_Berries[46];
/*0x7F8*/ struct Pokeblock pokeblocks[40];
- /*0x938*/ u8 unk938[52]; // pokedex related
+ /*0x938*/ u8 dexSeen2[DEX_FLAGS_NO];
/*0x96C*/ u16 berryBlenderRecords[3];
/*0x972*/ u8 filler_972[0x6];
/*0x978*/ u16 trainerRematchStepCounter;
@@ -621,7 +663,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x272C*/ u8 decorCushion[10];
/*0x2736*/ u8 padding_2736[2];
/*0x2738*/ TVShow tvShows[25];
- /*0x2ABC*/ struct UnknownSaveStruct2ABC unknown_2ABC[16];
+ /*0x2ABC*/ struct PokeNews pokeNews[16];
/*0x2AFC*/ u16 outbreakPokemonSpecies;
/*0x2AFE*/ u8 outbreakLocationMapNum;
/*0x2AFF*/ u8 outbreakLocationMapGroup;
@@ -633,31 +675,29 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2B0D*/ u8 outbreakPokemonProbability;
/*0x2B0E*/ u16 outbreakUnk5;
/*0x2B10*/ struct GabbyAndTyData gabbyAndTyData;
- /*0x2B1C*/ u16 unk2B1C[6];
- /*0x2B28*/ u16 unk2B28[6];
- /*0x2B34*/ u16 unk2B34[6];
- /*0x2B40*/ u16 unk2B40[6];
+ /*0x2B1C*/ struct {
+ /*0x2B1C*/ u16 unk2B1C[6];
+ /*0x2B28*/ u16 unk2B28[6];
+ /*0x2B34*/ u16 unk2B34[6];
+ /*0x2B40*/ u16 unk2B40[6];
+ } easyChats;
/*0x2B4C*/ struct MailStruct mail[16];
- /*0x2D8C*/ u8 unk2D8C[4];
+ /*0x2D8C*/ u8 unk2D8C[4]; // What is this? Apparently it's supposed to be 64 bytes in size.
/*0x2D90*/ u8 filler_2D90[0x4];
- /*0x2D94*/ OldMan oldMan;
+ /*0x2D94*/ union MauvilleMan mauvilleMan;
/*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
- /*0x2DFC*/ u8 filler_2DFC[0x8];
- /*0x2E04*/ SB_Struct sbStruct;
- /*0x2F9C*/ struct BoxPokemon daycareData[2];
- /*0x303C*/ struct RecordMixing_UnknownStruct filler_303C;
- /*0x30AC*/ u8 filler_30B4[0x2];
- /*0x30B6*/ u8 filler_30B6;
- /*0x30B7*/ u8 filler_30B7[1];
+ /*0x2DFC*/ struct ContestWinner contestWinners[8];
+ /*0x2EFC*/ struct ContestWinner museumPortraits[5];
+ /*0x2F9C*/ struct DayCare daycare;
/*0x30B8*/ struct LinkBattleRecord linkBattleRecords[5];
/*0x3108*/ u8 filler_3108[8];
- /*0x3110*/ u8 giftRibbons[7];
- /*0x3117*/ u8 filler_311B[0x2D];
+ /*0x3110*/ u8 giftRibbons[11];
+ /*0x3117*/ u8 filler_311B[0x29];
/*0x3144*/ struct Roamer roamer;
/*0x3160*/ struct EnigmaBerry enigmaBerry;
/*0x3690*/ struct RamScript ramScript;
/*0x3A7C*/ struct RecordMixingGift recordMixingGift;
- /*0x3A8C*/ u8 unk3A8C[52]; //pokedex related
+ /*0x3A8C*/ u8 dexSeen3[DEX_FLAGS_NO];
};
extern struct SaveBlock1 gSaveBlock1;
@@ -679,30 +719,78 @@ struct Pokedex
/*0x04*/ u32 unownPersonality; // set when you first see Unown
/*0x08*/ u32 spindaPersonality; // set when you first see Spinda
/*0x0C*/ u32 unknown3;
- /*0x10*/ u8 owned[52];
- /*0x44*/ u8 seen[52];
+ /*0x10*/ u8 owned[DEX_FLAGS_NO];
+ /*0x44*/ u8 seen[DEX_FLAGS_NO];
};
-struct SaveBlock2_Sub
+struct BattleTowerTrainer
{
- /*0x0000, 0x00A8*/ u8 filler_000[0x3D8];
- /*0x03D8, 0x0480*/ u16 var_480;
- /*0x03DA, 0x0482*/ u16 var_482;
- /*0x03DC, 0x0484*/ u8 filler_3DC[0x14];
- /*0x03F0, 0x0498*/ u8 ereaderTrainer[0xBC];
- /*0x04AC, 0x0554*/ u8 var_4AC;
- /*0x04AD, 0x0555*/ u8 var_4AD;
+ u8 trainerClass;
+ u8 name[8];
+ u8 teamFlags;
+ struct {
+ u16 easyChat[6];
+ } greeting;
+};
+
+struct BattleTowerRecord // record mixing
+{
+ /*0x00*/u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
+ /*0x01*/u8 trainerClass;
+ /*0x02*/u16 winStreak;
+ /*0x04*/u8 name[8];
+ /*0x0C*/u8 trainerId[4];
+ /*0x10*/struct {
+ u16 easyChat[6];
+ } greeting;
+ /*0x1C*/struct UnknownPokemonStruct party[3];
+ /*0xA0*/u32 checksum;
+};
+
+struct BattleTowerEReaderTrainer
+{
+ /*0x00*/u8 unk0;
+ /*0x01*/u8 trainerClass;
+ /*0x02*/u16 winStreak;
+ /*0x04*/u8 name[8];
+ /*0x0C*/u8 trainerId[4];
+ /*0x10*/struct {
+ u16 easyChat[6];
+ } greeting;
+ /*0x1C*/struct {
+ u16 easyChat[6];
+ } farewellPlayerLost;
+ /*0x28*/struct {
+ u16 easyChat[6];
+ } farewellPlayerWon;
+ /*0x34*/struct UnknownPokemonStruct party[3];
+ /*0xB8*/u32 checksum;
+};
+
+struct BattleTowerData
+{
+ /*0x0000, 0x00A8*/ struct BattleTowerRecord playerRecord;
+ /*0x00A4, 0x014C*/ struct BattleTowerRecord records[5]; // from record mixing
+ /*0x03D8, 0x0480*/ u16 firstMonSpecies; // species of the first pokemon in the player's battle tower party
+ /*0x03DA, 0x0482*/ u16 defeatedBySpecies; // species of the pokemon that defated the player
+ /*0x03DC, 0x0484*/ u8 defeatedByTrainerName[8];
+ /*0x03E4, 0x048C*/ u8 firstMonNickname[POKEMON_NAME_LENGTH]; // nickname of the first pokemon in the player's battle tower party
+ /*0x03F0, 0x0498*/ struct BattleTowerEReaderTrainer ereaderTrainer;
+ /*0x04AC, 0x0554*/ u8 battleTowerLevelType:1; // 0 = level 50; 1 = level 100
+ /*0x04AC, 0x0554*/ u8 unk_554:1;
+ /*0x04AD, 0x0555*/ u8 battleOutcome;
/*0x04AE, 0x0556*/ u8 var_4AE[2];
- /*0x04B0, 0x0558*/ u16 var_4B0;
- /*0x04B2, 0x055A*/ u16 var_4B2;
- /*0x04B4, 0x055C*/ u16 var_4B4;
- /*0x04B6, 0x055E*/ u16 var_4B6;
- /*0x04B8, 0x0560*/ u16 recordWinStreak[2];
- /*0x04BC, 0x0564*/ u8 filler_4BC[0xC];
- /*0x04C8, 0x0570*/ u16 var_4C8;
- /*0x04CA, 0x0572*/ u16 var_4CA;
- /*0x04CC, 0x0574*/ u16 winStreak[2];
- /*0x04D0, 0x0578*/ u8 var_4D0;
+ /*0x04B0, 0x0558*/ u16 curChallengeBattleNum[2]; // 1-based index of battle in the current challenge. (challenges consist of 7 battles)
+ /*0x04B4, 0x055C*/ u16 curStreakChallengesNum[2]; // 1-based index of the current challenge in the current streak.
+ /*0x04B8, 0x0560*/ u16 recordWinStreaks[2];
+ /*0x04BC, 0x0564*/ u8 battleTowerTrainerId; // index for gBattleTowerTrainers table
+ /*0x04BD, 0x0565*/ u8 selectedPartyMons[0x3]; // indices of the 3 selected player party mons.
+ /*0x04C0, 0x0568*/ u16 prizeItem;
+ /*0x04C2, 0x056A*/ u8 filler_4C2[0x6];
+ /*0x04C8, 0x0570*/ u16 totalBattleTowerWins;
+ /*0x04CA, 0x0572*/ u16 bestBattleTowerWinStreak;
+ /*0x04CC, 0x0574*/ u16 currentWinStreaks[2];
+ /*0x04D0, 0x0578*/ u8 lastStreakLevelType; // 0 = level 50, 1 = level 100. level type of the last streak. Used by tv to report the level mode.
/*0x04D1, 0x0579*/ u8 filler_4D1[0x317];
};
@@ -727,7 +815,7 @@ struct SaveBlock2 /* 0x02024EA4 */
/*0x90*/ u8 filler_90[0x8];
/*0x98*/ struct Time localTimeOffset;
/*0xA0*/ struct Time lastBerryTreeUpdate;
- /*0xA8*/ struct SaveBlock2_Sub filler_A8;
+ /*0xA8*/ struct BattleTowerData battleTower;
};
struct MapPosition
@@ -755,5 +843,6 @@ struct HallOfFame
extern struct HallOfFame gHallOfFame;
extern struct SaveBlock2 gSaveBlock2;
+extern u8 ewram[];
#endif // GUARD_GLOBAL_H
diff --git a/include/graphics.h b/include/graphics.h
index 5632cb831..00a210350 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -28,8 +28,38 @@ extern const u8 gInterfaceGfx_PremierBall[];
extern const u8 gInterfacePal_PremierBall[];
extern const u8 gUnknown_08D030D0[];
+extern const u8 gUnknown_08D17144[];
+extern const u8 gUnknown_08D1725C[];
+extern const u8 gUnknown_08D17424[];
+extern const u8 gUnknown_08D17C3C[];
+extern const u8 gContestMiscGfx[];
+extern const u8 gContestAudienceGfx[];
+extern const u8 gContestJudgeSymbolsGfx[];
+extern const u8 gContest3Pal[];
+extern const u8 gTiles_8D1975C[];
+extern const u8 gUnknown_08D1977C[];
+extern const u8 gUnknown_08D1A250[];
+extern const u8 gUnknown_08D1A364[];
+extern const u8 gUnknown_08D1A490[];
+extern const u8 gUnknown_08D1A618[];
+
+extern const u8 gContestJudgeGfx[];
+extern const u8 gContest2Pal[];
+
extern const u8 gMonFootprint_QuestionMark[];
+extern const u8 gContestNextTurnGfx[];
+extern const u8 gContestNextTurnNumbersGfx[];
+extern const u8 gContestNextTurnRandomGfx[];
+extern const u8 gBattleAnimSpriteSheet_264[];
+extern const u8 gBattleAnimSpritePalette_264[];
+extern const u8 gBattleAnimSpritePalette_265[];
+extern const u8 gBattleAnimSpritePalette_067[];
+extern const u8 gBattleAnimSpritePalette_068[];
+extern const u8 gContestApplauseGfx[];
+extern const u8 gContestApplauseMeterGfx[];
+extern const u16 gContestPal[];
+
// data/graphics/pokemon/graphics.inc
extern const u8 gMonFrontPic_Bulbasaur[];
extern const u8 gMonPalette_Bulbasaur[];
@@ -2551,6 +2581,44 @@ extern const u8 gBerryPalette_Lansat[];
extern const u8 gBerryPalette_Starf[];
extern const u8 gBerryPalette_Enigma[];
+// data/graphics.s
+extern const u16 gMailPalette_Orange[];
+extern const u16 gMailPalette_Harbor[];
+extern const u16 gMailPalette_Glitter[];
+extern const u16 gMailPalette_Mech[];
+extern const u16 gMailPalette_Wood[];
+extern const u16 gMailPalette_Wave[];
+extern const u16 gMailPalette_Bead[];
+extern const u16 gMailPalette_Shadow[];
+extern const u16 gMailPalette_Tropic[];
+extern const u16 gMailPalette_Dream[];
+extern const u16 gMailPalette_Fab[];
+extern const u16 gMailPalette_Retro[];
+extern const u8 gMailTiles_Orange[];
+extern const u8 gMailTiles_Harbor[];
+extern const u8 gMailTiles_Glitter[];
+extern const u8 gMailTiles_Mech[];
+extern const u8 gMailTiles_Wood[];
+extern const u8 gMailTiles_Wave[];
+extern const u8 gMailTiles_Bead[];
+extern const u8 gMailTiles_Shadow[];
+extern const u8 gMailTiles_Tropic[];
+extern const u8 gMailTiles_Dream[];
+extern const u8 gMailTiles_Fab[];
+extern const u8 gMailTiles_Retro[];
+extern const u8 gMailTilemap_Orange[];
+extern const u8 gMailTilemap_Harbor[];
+extern const u8 gMailTilemap_Glitter[];
+extern const u8 gMailTilemap_Mech[];
+extern const u8 gMailTilemap_Wood[];
+extern const u8 gMailTilemap_Wave[];
+extern const u8 gMailTilemap_Bead[];
+extern const u8 gMailTilemap_Shadow[];
+extern const u8 gMailTilemap_Tropic[];
+extern const u8 gMailTilemap_Dream[];
+extern const u8 gMailTilemap_Fab[];
+extern const u8 gMailTilemap_Retro[];
+
extern const u8 gUnknown_08E96EC8[];
extern const u8 gMenuTrainerCard_Gfx[];
@@ -2564,4 +2632,115 @@ extern const u8 gUnknown_08E8CFC0[];
extern const u8 gUnknown_08E8D4C0[];
extern const u8 gUnknown_08E8D9C0[];
+extern const u8 gUnknown_08EA1DEC[];
+extern const u16 gUnknown_08EA0328[];
+extern const u16 gUnknown_08EA02C8[];
+extern const u16 gUnknown_08EA0348[];
+extern const u16 gUnknown_08EA15C8[];
+extern const u16 gTradeMonBoxTilemap[];
+extern const u8 gUnknown_08D00000[];
+extern const u16 gUnknown_08D00524[];
+extern const u8 gUnknown_08D004E0[];
+
+extern const u8 gNamingScreenBackButtonTiles[];
+extern const u8 gNamingScreenOKButtonTiles[];
+extern const u8 gNamingScreenChangeKeyboardBoxTiles[];
+extern const u8 gNamingScreenChangeKeyboardButtonTiles[];
+extern const u8 gNamingScreenLowerTextTiles[];
+extern const u8 gNamingScreenUpperTextTiles[];
+extern const u8 gNamingScreenOthersTextTiles[];
+extern const u8 gNamingScreenCursorTiles[];
+extern const u8 gNamingScreenActiveCursorSmallTiles[];
+extern const u8 gNamingScreenActiveCursorBigTiles[];
+extern const u8 gNamingScreenRightPointingTriangleTiles[];
+extern const u8 gNamingScreenUnderscoreTiles[];
+extern const u16 gNamingScreenPalettes[][16];
+
+extern const u8 gMenuWordGroupIndicator_Gfx[];
+extern const u8 gMenuWordGroupFrame_Gfx[];
+extern const u16 gMenuWordGroupIndicator_Pal[];
+extern const u16 gMenuWordGroupFrame1_Pal[];
+extern const u16 gMenuWordGroupFrame2_Pal[];
+
+extern const u8 gUnknown_08E94510[];
+extern const u8 gUnknown_08E94550[];
+extern const u8 gUnknown_08E94590[];
+extern const u8 gUnknown_08E945D0[];
+extern const u8 gUnknown_08E94AD0[];
+extern const u8 gUnknown_08E953D0[];
+extern const u8 gUnknown_08E954B0[];
+extern const u8 gUnknown_08E95774[];
+extern const u16 gUnknown_08E95A18[];
+extern const u16 gUnknown_08E95AB8[];
+extern const u16 gUnknown_08E95FB8[];
+
+extern const u16 gSlotMachineSpritePalette0[];
+extern const u16 gSlotMachineSpritePalette1[];
+extern const u16 gSlotMachineSpritePalette2[];
+extern const u16 gSlotMachineSpritePalette3[];
+extern const u16 gSlotMachineSpritePalette4[];
+extern const u16 gSlotMachineSpritePalette5[];
+extern const u16 gSlotMachineSpritePalette6[];
+extern const u8 gSlotMachine_Gfx[];
+
+extern const u8 gSlotMachineReelSymbol1Tiles[];
+extern const u8 gSlotMachineReelSymbol2Tiles[];
+extern const u8 gSlotMachineReelSymbol3Tiles[];
+extern const u8 gSlotMachineReelSymbol4Tiles[];
+extern const u8 gSlotMachineReelSymbol5Tiles[];
+extern const u8 gSlotMachineReelSymbol6Tiles[];
+extern const u8 gSlotMachineReelSymbol7Tiles[];
+extern const u8 gSlotMachineNumber0Tiles[];
+extern const u8 gSlotMachineNumber1Tiles[];
+extern const u8 gSlotMachineNumber2Tiles[];
+extern const u8 gSlotMachineNumber3Tiles[];
+extern const u8 gSlotMachineNumber4Tiles[];
+extern const u8 gSlotMachineNumber5Tiles[];
+extern const u8 gSlotMachineNumber6Tiles[];
+extern const u8 gSlotMachineNumber7Tiles[];
+extern const u8 gSlotMachineNumber8Tiles[];
+extern const u8 gSlotMachineNumber9Tiles[];
+extern const u8 gSpriteImage_8E98828[];
+extern const u8 gSpriteImage_8E98848[];
+extern const u8 gSpriteImage_8E98868[];
+extern const u8 gSpriteImage_8E988E8[];
+extern const u8 gSpriteImage_8E98968[];
+extern const u8 gSpriteImage_8E989E8[];
+extern const u8 gSpriteImage_8E98A68[];
+extern const u8 gSpriteImage_8E98AE8[];
+extern const u8 gSpriteImage_8E98B68[];
+extern const u8 gSpriteImage_8E98BE8[];
+extern const u8 gSpriteImage_8E98CE8[];
+extern const u8 gSpriteImage_8E98DE8[];
+extern const u8 gSpriteImage_8E98FE8[];
+extern const u8 gSpriteImage_8E991E8[];
+extern const u8 gSpriteImage_8E993E8[];
+extern const u8 gUnknownPalette_08E997E8[];
+extern const u8 gSpriteImage_8E99808[];
+extern const u8 gSlotMachineReelTimeLights_Gfx[];
+extern const u8 gUnknown_08E99FB0[];
+extern const u8 gUnknown_08E9A100[];
+extern const u8 gUnknown_08E9A300[];
+extern const u8 gUnknown_08E9AB00[];
+extern const u8 gUnknown_08E9AB40[];
+extern const u8 gUnknown_08E9AB60[];
+extern const u8 gUnknown_08E9ABB4[];
+extern const u8 gUnknown_08E9AC2C[];
+extern const u8 gUnknown_08E9AC4C[];
+
+extern const u8 gInterviewOutlineCursorTiles[];
+extern const u8 gTitleScreenPressStart_Gfx[];
+extern const u16 gTitleScreenLogoShinePalette[];
+extern const u8 gUnknown_08E9D8CC[];
+extern const u8 gVersionTiles[];
+extern const u16 gUnknown_08E9F624[];
+extern const u8 gUnknown_08E9F7E4[];
+
+extern const u8 gCableCar_Gfx[];
+extern const u8 gCableCarDoor_Gfx[];
+extern const u8 gCableCarCord_Gfx[];
+extern const u16 gCableCar_Pal[];
+extern const u16 gCableCarBG_Pal[];
+extern const u8 gCableCarBG_Gfx[];
+
#endif // GUARD_GRAPHICS_H
diff --git a/include/heated_rock.h b/include/heated_rock.h
new file mode 100644
index 000000000..26856fe7f
--- /dev/null
+++ b/include/heated_rock.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_HEATED_ROCK_H
+#define GUARD_HEATED_ROCK_H
+
+// heated_rock (moves heated rock sprites)
+// Used in Eruption.
+
+u16 sub_80D5940(u8 spriteId);
+void sub_80D5994(struct Sprite *sprite, s16 x, s16 y);
+
+#endif // GUARD_HEATED_ROCK_H \ No newline at end of file
diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h
index 2718d2f9f..303f50095 100644
--- a/include/intro_credits_graphics.h
+++ b/include/intro_credits_graphics.h
@@ -1,14 +1,14 @@
#ifndef GUARD_INTRO_CREDITS_GRAPHICS_H
#define GUARD_INTRO_CREDITS_GRAPHICS_H
-extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet;
-extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet;
-extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet;
-extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet;
-extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet;
+extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[];
+extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet[];
+extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[];
+extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet[];
+extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet[];
extern const struct SpritePalette gIntro2SpritePalettes[];
-extern const struct CompressedSpriteSheet gUnknown_08416E24;
-extern const struct CompressedSpriteSheet gUnknown_08416E34;
+extern const struct CompressedSpriteSheet gUnknown_08416E24[];
+extern const struct CompressedSpriteSheet gUnknown_08416E34[];
void load_intro_part2_graphics(u8 a);
void sub_8148C78(u8 a);
diff --git a/include/item_use.h b/include/item_use.h
index 1558f7691..ee7939824 100644
--- a/include/item_use.h
+++ b/include/item_use.h
@@ -1,7 +1,7 @@
#ifndef GUARD_ITEM_USE_H
#define GUARD_ITEM_USE_H
-extern u16 gScriptItemId;
+extern u16 gSpecialVar_ItemId;
void ItemUseOutOfBattle_Mail(u8);
void ItemUseOutOfBattle_Bike(u8);
@@ -38,7 +38,7 @@ void sub_80C9FC0(u8);
void ItemUseOutOfBattle_Repel(u8);
void ItemUseOutOfBattle_BlackWhiteFlute(u8);
void task08_080A1C44(u8);
-u8 sub_80CA1C8(void);
+u8 CanUseEscapeRopeOnCurrMap(void);
void ItemUseOutOfBattle_EscapeRope(u8);
void ItemUseOutOfBattle_EvolutionStone(u8);
void ItemUseInBattle_PokeBall(u8);
@@ -49,5 +49,6 @@ void ItemUseInBattle_Escape(u8);
void ItemUseOutOfBattle_EnigmaBerry(u8);
void ItemUseInBattle_EnigmaBerry(u8);
void ItemUseOutOfBattle_CannotUse(u8);
+u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId);
#endif // GUARD_ITEM_USE_H
diff --git a/include/items.h b/include/items.h
deleted file mode 100644
index 69515f18e..000000000
--- a/include/items.h
+++ /dev/null
@@ -1,389 +0,0 @@
-#ifndef GUARD_ITEMS_H
-#define GUARD_ITEMS_H
-
-enum
-{
- ITEM_NONE, // 0x000
- ITEM_MASTER_BALL, // 0x001
- ITEM_ULTRA_BALL, // 0x002
- ITEM_GREAT_BALL, // 0x003
- ITEM_POKE_BALL, // 0x004
- ITEM_SAFARI_BALL, // 0x005
- ITEM_NET_BALL, // 0x006
- ITEM_DIVE_BALL, // 0x007
- ITEM_NEST_BALL, // 0x008
- ITEM_REPEAT_BALL, // 0x009
- ITEM_TIMER_BALL, // 0x00a
- ITEM_LUXURY_BALL, // 0x00b
- ITEM_PREMIER_BALL, // 0x00c
- ITEM_POTION, // 0x00d
- ITEM_ANTIDOTE, // 0x00e
- ITEM_BURN_HEAL, // 0x00f
- ITEM_ICE_HEAL, // 0x010
- ITEM_AWAKENING, // 0x011
- ITEM_PARALYZE_HEAL, // 0x012
- ITEM_FULL_RESTORE, // 0x013
- ITEM_MAX_POTION, // 0x014
- ITEM_HYPER_POTION, // 0x015
- ITEM_SUPER_POTION, // 0x016
- ITEM_FULL_HEAL, // 0x017
- ITEM_REVIVE, // 0x018
- ITEM_MAX_REVIVE, // 0x019
- ITEM_FRESH_WATER, // 0x01a
- ITEM_SODA_POP, // 0x01b
- ITEM_LEMONADE, // 0x01c
- ITEM_MOOMOO_MILK, // 0x01d
- ITEM_ENERGY_POWDER, // 0x01e
- ITEM_ENERGY_ROOT, // 0x01f
- ITEM_HEAL_POWDER, // 0x020
- ITEM_REVIVAL_HERB, // 0x021
- ITEM_ETHER, // 0x022
- ITEM_MAX_ETHER, // 0x023
- ITEM_ELIXIR, // 0x024
- ITEM_MAX_ELIXIR, // 0x025
- ITEM_LAVA_COOKIE, // 0x026
- ITEM_BLUE_FLUTE, // 0x027
- ITEM_YELLOW_FLUTE, // 0x028
- ITEM_RED_FLUTE, // 0x029
- ITEM_BLACK_FLUTE, // 0x02a
- ITEM_WHITE_FLUTE, // 0x02b
- ITEM_BERRY_JUICE, // 0x02c
- ITEM_SACRED_ASH, // 0x02d
- ITEM_SHOAL_SALT, // 0x02e
- ITEM_SHOAL_SHELL, // 0x02f
- ITEM_RED_SHARD, // 0x030
- ITEM_BLUE_SHARD, // 0x031
- ITEM_YELLOW_SHARD, // 0x032
- ITEM_GREEN_SHARD, // 0x033
- ITEM_034,
- ITEM_035,
- ITEM_036,
- ITEM_037,
- ITEM_038,
- ITEM_039,
- ITEM_03A,
- ITEM_03B,
- ITEM_03C,
- ITEM_03D,
- ITEM_03E,
- ITEM_HP_UP, // 0x03f
- ITEM_PROTEIN, // 0x040
- ITEM_IRON, // 0x041
- ITEM_CARBOS, // 0x042
- ITEM_CALCIUM, // 0x043
- ITEM_RARE_CANDY, // 0x044
- ITEM_PP_UP, // 0x045
- ITEM_ZINC, // 0x046
- ITEM_PP_MAX, // 0x047
- ITEM_048,
- ITEM_GUARD_SPEC, // 0x049
- ITEM_DIRE_HIT, // 0x04a
- ITEM_X_ATTACK, // 0x04b
- ITEM_X_DEFEND, // 0x04c
- ITEM_X_SPEED, // 0x04d
- ITEM_X_ACCURACY, // 0x04e
- ITEM_X_SPECIAL, // 0x04f
- ITEM_POKE_DOLL, // 0x050
- ITEM_FLUFFY_TAIL, // 0x051
- ITEM_052,
- ITEM_SUPER_REPEL, // 0x053
- ITEM_MAX_REPEL, // 0x054
- ITEM_ESCAPE_ROPE, // 0x055
- ITEM_REPEL, // 0x056
- ITEM_057,
- ITEM_058,
- ITEM_059,
- ITEM_05A,
- ITEM_05B,
- ITEM_05C,
- ITEM_SUN_STONE, // 0x05d
- ITEM_MOON_STONE, // 0x05e
- ITEM_FIRE_STONE, // 0x05f
- ITEM_THUNDER_STONE, // 0x060
- ITEM_WATER_STONE, // 0x061
- ITEM_LEAF_STONE, // 0x062
- ITEM_063,
- ITEM_064,
- ITEM_065,
- ITEM_066,
- ITEM_TINY_MUSHROOM, // 0x067
- ITEM_BIG_MUSHROOM, // 0x068
- ITEM_069,
- ITEM_PEARL, // 0x06a
- ITEM_BIG_PEARL, // 0x06b
- ITEM_STARDUST, // 0x06c
- ITEM_STAR_PIECE, // 0x06d
- ITEM_NUGGET, // 0x06e
- ITEM_HEART_SCALE, // 0x06f
- ITEM_070,
- ITEM_071,
- ITEM_072,
- ITEM_073,
- ITEM_074,
- ITEM_075,
- ITEM_076,
- ITEM_077,
- ITEM_078,
- ITEM_ORANGE_MAIL, // 0x079
- ITEM_HARBOR_MAIL, // 0x07a
- ITEM_GLITTER_MAIL, // 0x07b
- ITEM_MECH_MAIL, // 0x07c
- ITEM_WOOD_MAIL, // 0x07d
- ITEM_WAVE_MAIL, // 0x07e
- ITEM_BEAD_MAIL, // 0x07f
- ITEM_SHADOW_MAIL, // 0x080
- ITEM_TROPIC_MAIL, // 0x081
- ITEM_DREAM_MAIL, // 0x082
- ITEM_FAB_MAIL, // 0x083
- ITEM_RETRO_MAIL, // 0x084
- ITEM_CHERI_BERRY, // 0x085
- ITEM_CHESTO_BERRY, // 0x086
- ITEM_PECHA_BERRY, // 0x087
- ITEM_RAWST_BERRY, // 0x088
- ITEM_ASPEAR_BERRY, // 0x089
- ITEM_LEPPA_BERRY, // 0x08a
- ITEM_ORAN_BERRY, // 0x08b
- ITEM_PERSIM_BERRY, // 0x08c
- ITEM_LUM_BERRY, // 0x08d
- ITEM_SITRUS_BERRY, // 0x08e
- ITEM_FIGY_BERRY, // 0x08f
- ITEM_WIKI_BERRY, // 0x090
- ITEM_MAGO_BERRY, // 0x091
- ITEM_AGUAV_BERRY, // 0x092
- ITEM_IAPAPA_BERRY, // 0x093
- ITEM_RAZZ_BERRY, // 0x094
- ITEM_BLUK_BERRY, // 0x095
- ITEM_NANAB_BERRY, // 0x096
- ITEM_WEPEAR_BERRY, // 0x097
- ITEM_PINAP_BERRY, // 0x098
- ITEM_POMEG_BERRY, // 0x099
- ITEM_KELPSY_BERRY, // 0x09a
- ITEM_QUALOT_BERRY, // 0x09b
- ITEM_HONDEW_BERRY, // 0x09c
- ITEM_GREPA_BERRY, // 0x09d
- ITEM_TAMATO_BERRY, // 0x09e
- ITEM_CORNN_BERRY, // 0x09f
- ITEM_MAGOST_BERRY, // 0x0a0
- ITEM_RABUTA_BERRY, // 0x0a1
- ITEM_NOMEL_BERRY, // 0x0a2
- ITEM_SPELON_BERRY, // 0x0a3
- ITEM_PAMTRE_BERRY, // 0x0a4
- ITEM_WATMEL_BERRY, // 0x0a5
- ITEM_DURIN_BERRY, // 0x0a6
- ITEM_BELUE_BERRY, // 0x0a7
- ITEM_LIECHI_BERRY, // 0x0a8
- ITEM_GANLON_BERRY, // 0x0a9
- ITEM_SALAC_BERRY, // 0x0aa
- ITEM_PETAYA_BERRY, // 0x0ab
- ITEM_APICOT_BERRY, // 0x0ac
- ITEM_LANSAT_BERRY, // 0x0ad
- ITEM_STARF_BERRY, // 0x0ae
- ITEM_ENIGMA_BERRY, // 0x0af
- ITEM_0B0,
- ITEM_0B1,
- ITEM_0B2,
- ITEM_BRIGHT_POWDER, // 0x0b3
- ITEM_WHITE_HERB, // 0x0b4
- ITEM_MACHO_BRACE, // 0x0b5
- ITEM_EXP_SHARE, // 0x0b6
- ITEM_QUICK_CLAW, // 0x0b7
- ITEM_SOOTHE_BELL, // 0x0b8
- ITEM_MENTAL_HERB, // 0x0b9
- ITEM_CHOICE_BAND, // 0x0ba
- ITEM_KINGS_ROCK, // 0x0bb
- ITEM_SILVER_POWDER, // 0x0bc
- ITEM_AMULET_COIN, // 0x0bd
- ITEM_CLEANSE_TAG, // 0x0be
- ITEM_SOUL_DEW, // 0x0bf
- ITEM_DEEP_SEA_TOOTH, // 0x0c0
- ITEM_DEEP_SEA_SCALE, // 0x0c1
- ITEM_SMOKE_BALL, // 0x0c2
- ITEM_EVERSTONE, // 0x0c3
- ITEM_FOCUS_BAND, // 0x0c4
- ITEM_LUCKY_EGG, // 0x0c5
- ITEM_SCOPE_LENS, // 0x0c6
- ITEM_METAL_COAT, // 0x0c7
- ITEM_LEFTOVERS, // 0x0c8
- ITEM_DRAGON_SCALE, // 0x0c9
- ITEM_LIGHT_BALL, // 0x0ca
- ITEM_SOFT_SAND, // 0x0cb
- ITEM_HARD_STONE, // 0x0cc
- ITEM_MIRACLE_SEED, // 0x0cd
- ITEM_BLACK_GLASSES, // 0x0ce
- ITEM_BLACK_BELT, // 0x0cf
- ITEM_MAGNET, // 0x0d0
- ITEM_MYSTIC_WATER, // 0x0d1
- ITEM_SHARP_BEAK, // 0x0d2
- ITEM_POISON_BARB, // 0x0d3
- ITEM_NEVER_MELT_ICE, // 0x0d4
- ITEM_SPELL_TAG, // 0x0d5
- ITEM_TWISTED_SPOON, // 0x0d6
- ITEM_CHARCOAL, // 0x0d7
- ITEM_DRAGON_FANG, // 0x0d8
- ITEM_SILK_SCARF, // 0x0d9
- ITEM_UP_GRADE, // 0x0da
- ITEM_SHELL_BELL, // 0x0db
- ITEM_SEA_INCENSE, // 0x0dc
- ITEM_LAX_INCENSE, // 0x0dd
- ITEM_LUCKY_PUNCH, // 0x0de
- ITEM_METAL_POWDER, // 0x0df
- ITEM_THICK_CLUB, // 0x0e0
- ITEM_STICK, // 0x0e1
- ITEM_0E2,
- ITEM_0E3,
- ITEM_0E4,
- ITEM_0E5,
- ITEM_0E6,
- ITEM_0E7,
- ITEM_0E8,
- ITEM_0E9,
- ITEM_0EA,
- ITEM_0EB,
- ITEM_0EC,
- ITEM_0ED,
- ITEM_0EE,
- ITEM_0EF,
- ITEM_0F0,
- ITEM_0F1,
- ITEM_0F2,
- ITEM_0F3,
- ITEM_0F4,
- ITEM_0F5,
- ITEM_0F6,
- ITEM_0F7,
- ITEM_0F8,
- ITEM_0F9,
- ITEM_0FA,
- ITEM_0FB,
- ITEM_0FC,
- ITEM_0FD,
- ITEM_RED_SCARF, // 0x0fe
- ITEM_BLUE_SCARF, // 0x0ff
- ITEM_PINK_SCARF, // 0x100
- ITEM_GREEN_SCARF, // 0x101
- ITEM_YELLOW_SCARF, // 0x102
- ITEM_MACH_BIKE, // 0x103
- ITEM_COIN_CASE, // 0x104
- ITEM_ITEMFINDER, // 0x105
- ITEM_OLD_ROD, // 0x106
- ITEM_GOOD_ROD, // 0x107
- ITEM_SUPER_ROD, // 0x108
- ITEM_SS_TICKET, // 0x109
- ITEM_CONTEST_PASS, // 0x10a
- ITEM_10B,
- ITEM_WAILMER_PAIL, // 0x10c
- ITEM_DEVON_GOODS, // 0x10d
- ITEM_SOOT_SACK, // 0x10e
- ITEM_BASEMENT_KEY, // 0x10f
- ITEM_ACRO_BIKE, // 0x110
- ITEM_POKEBLOCK_CASE, // 0x111
- ITEM_LETTER, // 0x112
- ITEM_EON_TICKET, // 0x113
- ITEM_RED_ORB, // 0x114
- ITEM_BLUE_ORB, // 0x115
- ITEM_SCANNER, // 0x116
- ITEM_GO_GOGGLES, // 0x117
- ITEM_METEORITE, // 0x118
- ITEM_ROOM_1_KEY, // 0x119
- ITEM_ROOM_2_KEY, // 0x11a
- ITEM_ROOM_4_KEY, // 0x11b
- ITEM_ROOM_6_KEY, // 0x11c
- ITEM_STORAGE_KEY, // 0x11d
- ITEM_ROOT_FOSSIL, // 0x11e
- ITEM_CLAW_FOSSIL, // 0x11f
- ITEM_DEVON_SCOPE, // 0x120
- ITEM_TM01, // 0x121
- ITEM_TM02, // 0x122
- ITEM_TM03, // 0x123
- ITEM_TM04, // 0x124
- ITEM_TM05, // 0x125
- ITEM_TM06, // 0x126
- ITEM_TM07, // 0x127
- ITEM_TM08, // 0x128
- ITEM_TM09, // 0x129
- ITEM_TM10, // 0x12a
- ITEM_TM11, // 0x12b
- ITEM_TM12, // 0x12c
- ITEM_TM13, // 0x12d
- ITEM_TM14, // 0x12e
- ITEM_TM15, // 0x12f
- ITEM_TM16, // 0x130
- ITEM_TM17, // 0x131
- ITEM_TM18, // 0x132
- ITEM_TM19, // 0x133
- ITEM_TM20, // 0x134
- ITEM_TM21, // 0x135
- ITEM_TM22, // 0x136
- ITEM_TM23, // 0x137
- ITEM_TM24, // 0x138
- ITEM_TM25, // 0x139
- ITEM_TM26, // 0x13a
- ITEM_TM27, // 0x13b
- ITEM_TM28, // 0x13c
- ITEM_TM29, // 0x13d
- ITEM_TM30, // 0x13e
- ITEM_TM31, // 0x13f
- ITEM_TM32, // 0x140
- ITEM_TM33, // 0x141
- ITEM_TM34, // 0x142
- ITEM_TM35, // 0x143
- ITEM_TM36, // 0x144
- ITEM_TM37, // 0x145
- ITEM_TM38, // 0x146
- ITEM_TM39, // 0x147
- ITEM_TM40, // 0x148
- ITEM_TM41, // 0x149
- ITEM_TM42, // 0x14a
- ITEM_TM43, // 0x14b
- ITEM_TM44, // 0x14c
- ITEM_TM45, // 0x14d
- ITEM_TM46, // 0x14e
- ITEM_TM47, // 0x14f
- ITEM_TM48, // 0x150
- ITEM_TM49, // 0x151
- ITEM_TM50, // 0x152
- ITEM_HM01, // 0x153
- ITEM_HM02, // 0x154
- ITEM_HM03, // 0x155
- ITEM_HM04, // 0x156
- ITEM_HM05, // 0x157
- ITEM_HM06, // 0x158
- ITEM_HM07, // 0x159
- ITEM_HM08, // 0x15a
- ITEM_15B,
- ITEM_15C,
-
- // FireRed/LeafGreen
- ITEM_OAKS_PARCEL, // 0x15d
- ITEM_POKE_FLUTE, // 0x15e
- ITEM_SECRET_KEY, // 0x15f
- ITEM_BIKE_VOUCHER, // 0x160
- ITEM_GOLD_TEETH, // 0x161
- ITEM_OLD_AMBER, // 0x162
- ITEM_CARD_KEY, // 0x163
- ITEM_LIFT_KEY, // 0x164
- ITEM_HELIX_FOSSIL, // 0x165
- ITEM_DOME_FOSSIL, // 0x166
- ITEM_SILPH_SCOPE, // 0x167
- ITEM_BICYCLE, // 0x168
- ITEM_TOWN_MAP, // 0x169
- ITEM_VS_SEEKER, // 0x16a
- ITEM_FAME_CHECKER, // 0x16b
- ITEM_TM_CASE, // 0x16c
- ITEM_BERRY_POUCH, // 0x16d
- ITEM_TEACHY_TV, // 0x16e
- ITEM_TRI_PASS, // 0x16f
- ITEM_RAINBOW_PASS, // 0x170
- ITEM_TEA, // 0x171
- ITEM_MYSTIC_TICKET, // 0x172
- ITEM_AURORA_TICKET, // 0x173
- ITEM_POWDER_JAR, // 0x174
- ITEM_RUBY, // 0x175
- ITEM_SAPPHIRE, // 0x176
-
- // Emerald
- ITEM_MAGMA_EMBLEM, // 0x177
- ITEM_OLD_SEA_MAP, // 0x178
-};
-
-#endif // GUARD_ITEMS_H
diff --git a/include/landmark.h b/include/landmark.h
index eee5ac8c2..395905033 100644
--- a/include/landmark.h
+++ b/include/landmark.h
@@ -1,6 +1,6 @@
#ifndef GUARD_LANDMARK_H
#define GUARD_LANDMARK_H
-u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count);
+const u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count);
#endif // GUARD_LANDMARK_H
diff --git a/include/learn_move.h b/include/learn_move.h
index 85fbf046e..fca236ec9 100644
--- a/include/learn_move.h
+++ b/include/learn_move.h
@@ -1,6 +1,6 @@
#ifndef GUARD_LEARN_MOVE_H
#define GUARD_LEARN_MOVE_H
-void sub_8132670(void);
+void TeachMoveTutorMove(void);
#endif // GUARD_LEARN_MOVE_H
diff --git a/include/m4a.h b/include/m4a.h
index b6c8f9072..57a749a58 100644
--- a/include/m4a.h
+++ b/include/m4a.h
@@ -8,6 +8,7 @@ void m4aSoundVSync(void);
void m4aSoundInit(void);
void m4aSoundMain(void);
void m4aSongNumStart(u16);
+void m4aSongNumStartOrChange(u16);
void m4aSongNumStop(u16 n);
void m4aMPlayAllStop(void);
void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
@@ -16,4 +17,9 @@ void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
+void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo);
+void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
+void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch);
+void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan);
+
#endif //GUARD_M4A_H
diff --git a/include/mail_data.h b/include/mail_data.h
index df4b385a1..2659c0d37 100644
--- a/include/mail_data.h
+++ b/include/mail_data.h
@@ -11,6 +11,6 @@ u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *);
void TakeMailFromMon(struct Pokemon *);
u8 TakeMailFromMon2(struct Pokemon *);
bool8 ItemIsMail(u16);
-bool8 ItemIsMail(u16);
+bool8 MonHasMail(struct Pokemon *);
#endif // GUARD_MAIL_DATA_H
diff --git a/include/map_constants.h b/include/map_constants.h
deleted file mode 100644
index f525f43a3..000000000
--- a/include/map_constants.h
+++ /dev/null
@@ -1,1098 +0,0 @@
-#ifndef GUARD_MAP_CONSTANTS_H
-#define GUARD_MAP_CONSTANTS_H
-
-//--------------------------------------------------
-// Map Group 0
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PETALBURG_CITY,
- MAP_ID_SLATEPORT_CITY,
- MAP_ID_MAUVILLE_CITY,
- MAP_ID_RUSTBORO_CITY,
- MAP_ID_FORTREE_CITY,
- MAP_ID_LILYCOVE_CITY,
- MAP_ID_MOSSDEEP_CITY,
- MAP_ID_SOOTOPOLIS_CITY,
- MAP_ID_EVER_GRANDE_CITY,
- MAP_ID_LITTLEROOT_TOWN,
- MAP_ID_OLDALE_TOWN,
- MAP_ID_DEWFORD_TOWN,
- MAP_ID_LAVARIDGE_TOWN,
- MAP_ID_FALLARBOR_TOWN,
- MAP_ID_VERDANTURF_TOWN,
- MAP_ID_PACIFIDLOG_TOWN,
- MAP_ID_ROUTE101,
- MAP_ID_ROUTE102,
- MAP_ID_ROUTE103,
- MAP_ID_ROUTE104,
- MAP_ID_ROUTE105,
- MAP_ID_ROUTE106,
- MAP_ID_ROUTE107,
- MAP_ID_ROUTE108,
- MAP_ID_ROUTE109,
- MAP_ID_ROUTE110,
- MAP_ID_ROUTE111,
- MAP_ID_ROUTE112,
- MAP_ID_ROUTE113,
- MAP_ID_ROUTE114,
- MAP_ID_ROUTE115,
- MAP_ID_ROUTE116,
- MAP_ID_ROUTE117,
- MAP_ID_ROUTE118,
- MAP_ID_ROUTE119,
- MAP_ID_ROUTE120,
- MAP_ID_ROUTE121,
- MAP_ID_ROUTE122,
- MAP_ID_ROUTE123,
- MAP_ID_ROUTE124,
- MAP_ID_ROUTE125,
- MAP_ID_ROUTE126,
- MAP_ID_ROUTE127,
- MAP_ID_ROUTE128,
- MAP_ID_ROUTE129,
- MAP_ID_ROUTE130,
- MAP_ID_ROUTE131,
- MAP_ID_ROUTE132,
- MAP_ID_ROUTE133,
- MAP_ID_ROUTE134,
- MAP_ID_UNDERWATER1,
- MAP_ID_UNDERWATER2,
- MAP_ID_UNDERWATER3,
- MAP_ID_UNDERWATER4,
-};
-
-#define MAP_GROUP_PETALBURG_CITY 0
-#define MAP_GROUP_SLATEPORT_CITY 0
-#define MAP_GROUP_MAUVILLE_CITY 0
-#define MAP_GROUP_RUSTBORO_CITY 0
-#define MAP_GROUP_FORTREE_CITY 0
-#define MAP_GROUP_LILYCOVE_CITY 0
-#define MAP_GROUP_MOSSDEEP_CITY 0
-#define MAP_GROUP_SOOTOPOLIS_CITY 0
-#define MAP_GROUP_EVER_GRANDE_CITY 0
-#define MAP_GROUP_LITTLEROOT_TOWN 0
-#define MAP_GROUP_OLDALE_TOWN 0
-#define MAP_GROUP_DEWFORD_TOWN 0
-#define MAP_GROUP_LAVARIDGE_TOWN 0
-#define MAP_GROUP_FALLARBOR_TOWN 0
-#define MAP_GROUP_VERDANTURF_TOWN 0
-#define MAP_GROUP_PACIFIDLOG_TOWN 0
-#define MAP_GROUP_ROUTE101 0
-#define MAP_GROUP_ROUTE102 0
-#define MAP_GROUP_ROUTE103 0
-#define MAP_GROUP_ROUTE104 0
-#define MAP_GROUP_ROUTE105 0
-#define MAP_GROUP_ROUTE106 0
-#define MAP_GROUP_ROUTE107 0
-#define MAP_GROUP_ROUTE108 0
-#define MAP_GROUP_ROUTE109 0
-#define MAP_GROUP_ROUTE110 0
-#define MAP_GROUP_ROUTE111 0
-#define MAP_GROUP_ROUTE112 0
-#define MAP_GROUP_ROUTE113 0
-#define MAP_GROUP_ROUTE114 0
-#define MAP_GROUP_ROUTE115 0
-#define MAP_GROUP_ROUTE116 0
-#define MAP_GROUP_ROUTE117 0
-#define MAP_GROUP_ROUTE118 0
-#define MAP_GROUP_ROUTE119 0
-#define MAP_GROUP_ROUTE120 0
-#define MAP_GROUP_ROUTE121 0
-#define MAP_GROUP_ROUTE122 0
-#define MAP_GROUP_ROUTE123 0
-#define MAP_GROUP_ROUTE124 0
-#define MAP_GROUP_ROUTE125 0
-#define MAP_GROUP_ROUTE126 0
-#define MAP_GROUP_ROUTE127 0
-#define MAP_GROUP_ROUTE128 0
-#define MAP_GROUP_ROUTE129 0
-#define MAP_GROUP_ROUTE130 0
-#define MAP_GROUP_ROUTE131 0
-#define MAP_GROUP_ROUTE132 0
-#define MAP_GROUP_ROUTE133 0
-#define MAP_GROUP_ROUTE134 0
-#define MAP_GROUP_UNDERWATER1 0
-#define MAP_GROUP_UNDERWATER2 0
-#define MAP_GROUP_UNDERWATER3 0
-#define MAP_GROUP_UNDERWATER4 0
-
-//--------------------------------------------------
-// Map Group 1
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F,
- MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F,
- MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F,
- MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F,
- MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB,
-};
-
-#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1
-
-//--------------------------------------------------
-// Map Group 2
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_OLDALE_TOWN_HOUSE1,
- MAP_ID_OLDALE_TOWN_HOUSE2,
- MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F,
- MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F,
- MAP_ID_OLDALE_TOWN_MART,
-};
-
-#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2
-#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2
-#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2
-#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2
-#define MAP_GROUP_OLDALE_TOWN_MART 2
-
-//--------------------------------------------------
-// Map Group 3
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_DEWFORD_TOWN_HOUSE1,
- MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F,
- MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F,
- MAP_ID_DEWFORD_TOWN_GYM,
- MAP_ID_DEWFORD_TOWN_HALL,
- MAP_ID_DEWFORD_TOWN_HOUSE2,
-};
-
-#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3
-#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3
-#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3
-#define MAP_GROUP_DEWFORD_TOWN_GYM 3
-#define MAP_GROUP_DEWFORD_TOWN_HALL 3
-#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3
-
-//--------------------------------------------------
-// Map Group 4
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LAVARIDGE_TOWN_HERB_SHOP,
- MAP_ID_LAVARIDGE_TOWN_GYM_1F,
- MAP_ID_LAVARIDGE_TOWN_GYM_B1F,
- MAP_ID_LAVARIDGE_TOWN_HOUSE,
- MAP_ID_LAVARIDGE_TOWN_MART,
- MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F,
- MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F,
-};
-
-#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4
-#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4
-#define MAP_GROUP_LAVARIDGE_TOWN_MART 4
-#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4
-
-//--------------------------------------------------
-// Map Group 5
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_FALLARBOR_TOWN_MART,
- MAP_ID_FALLARBOR_TOWN_CONTEST_LOBBY,
- MAP_ID_FALLARBOR_TOWN_CONTEST_HALL,
- MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F,
- MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F,
- MAP_ID_FALLARBOR_TOWN_HOUSE1,
- MAP_ID_FALLARBOR_TOWN_HOUSE2,
-};
-
-#define MAP_GROUP_FALLARBOR_TOWN_MART 5
-#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_LOBBY 5
-#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_HALL 5
-#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5
-#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5
-#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5
-#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5
-
-//--------------------------------------------------
-// Map Group 6
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_VERDANTURF_TOWN_CONTEST_LOBBY,
- MAP_ID_VERDANTURF_TOWN_CONTEST_HALL,
- MAP_ID_VERDANTURF_TOWN_MART,
- MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F,
- MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F,
- MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE,
- MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE,
- MAP_ID_VERDANTURF_TOWN_HOUSE,
-};
-
-#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_LOBBY 6
-#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_HALL 6
-#define MAP_GROUP_VERDANTURF_TOWN_MART 6
-#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6
-#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6
-#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6
-#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6
-#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6
-
-//--------------------------------------------------
-// Map Group 7
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F,
- MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE1,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE2,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE3,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE4,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE5,
-};
-
-#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7
-
-//--------------------------------------------------
-// Map Group 8
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PETALBURG_CITY_WALLYS_HOUSE,
- MAP_ID_PETALBURG_CITY_GYM,
- MAP_ID_PETALBURG_CITY_HOUSE1,
- MAP_ID_PETALBURG_CITY_HOUSE2,
- MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F,
- MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F,
- MAP_ID_PETALBURG_CITY_MART,
-};
-
-#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8
-#define MAP_GROUP_PETALBURG_CITY_GYM 8
-#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8
-#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8
-#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8
-#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8
-#define MAP_GROUP_PETALBURG_CITY_MART 8
-
-//--------------------------------------------------
-// Map Group 9
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F,
- MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F,
- MAP_ID_SLATEPORT_CITY_CONTEST_LOBBY,
- MAP_ID_SLATEPORT_CITY_CONTEST_HALL,
- MAP_ID_SLATEPORT_CITY_HOUSE1,
- MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB,
- MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F,
- MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F,
- MAP_ID_SLATEPORT_CITY_HARBOR,
- MAP_ID_SLATEPORT_CITY_HOUSE2,
- MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F,
- MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F,
- MAP_ID_SLATEPORT_CITY_MART,
-};
-
-#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_CONTEST_LOBBY 9
-#define MAP_GROUP_SLATEPORT_CITY_CONTEST_HALL 9
-#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9
-#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9
-#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_MART 9
-
-//--------------------------------------------------
-// Map Group 10
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_MAUVILLE_CITY_GYM,
- MAP_ID_MAUVILLE_CITY_BIKE_SHOP,
- MAP_ID_MAUVILLE_CITY_HOUSE1,
- MAP_ID_MAUVILLE_CITY_GAME_CORNER,
- MAP_ID_MAUVILLE_CITY_HOUSE2,
- MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F,
- MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F,
- MAP_ID_MAUVILLE_CITY_MART,
-};
-
-#define MAP_GROUP_MAUVILLE_CITY_GYM 10
-#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10
-#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10
-#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10
-#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10
-#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10
-#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10
-#define MAP_GROUP_MAUVILLE_CITY_MART 10
-
-//--------------------------------------------------
-// Map Group 11
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F,
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F,
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F,
- MAP_ID_RUSTBORO_CITY_GYM,
- MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL,
- MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F,
- MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F,
- MAP_ID_RUSTBORO_CITY_MART,
- MAP_ID_RUSTBORO_CITY_FLAT1_1F,
- MAP_ID_RUSTBORO_CITY_FLAT1_2F,
- MAP_ID_RUSTBORO_CITY_HOUSE1,
- MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE,
- MAP_ID_RUSTBORO_CITY_HOUSE2,
- MAP_ID_RUSTBORO_CITY_FLAT2_1F,
- MAP_ID_RUSTBORO_CITY_FLAT2_2F,
- MAP_ID_RUSTBORO_CITY_FLAT2_3F,
- MAP_ID_RUSTBORO_CITY_HOUSE3,
-};
-
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11
-#define MAP_GROUP_RUSTBORO_CITY_GYM 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_MART 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11
-#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11
-
-//--------------------------------------------------
-// Map Group 12
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_FORTREE_CITY_HOUSE1,
- MAP_ID_FORTREE_CITY_GYM,
- MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F,
- MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F,
- MAP_ID_FORTREE_CITY_MART,
- MAP_ID_FORTREE_CITY_HOUSE2,
- MAP_ID_FORTREE_CITY_HOUSE3,
- MAP_ID_FORTREE_CITY_HOUSE4,
- MAP_ID_FORTREE_CITY_HOUSE5,
- MAP_ID_FORTREE_CITY_DECORATION_SHOP,
-};
-
-#define MAP_GROUP_FORTREE_CITY_HOUSE1 12
-#define MAP_GROUP_FORTREE_CITY_GYM 12
-#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12
-#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12
-#define MAP_GROUP_FORTREE_CITY_MART 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE2 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE3 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE4 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE5 12
-#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12
-
-//--------------------------------------------------
-// Map Group 13
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F,
- MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F,
- MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F,
- MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F,
- MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY,
- MAP_ID_LILYCOVE_CITY_CONTEST_HALL,
- MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F,
- MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F,
- MAP_ID_LILYCOVE_CITY_UNUSED_MART,
- MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB,
- MAP_ID_LILYCOVE_CITY_HARBOR,
- MAP_ID_LILYCOVE_CITY_EMPTY_MAP,
- MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE,
- MAP_ID_LILYCOVE_CITY_HOUSE1,
- MAP_ID_LILYCOVE_CITY_HOUSE2,
- MAP_ID_LILYCOVE_CITY_HOUSE3,
- MAP_ID_LILYCOVE_CITY_HOUSE4,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR,
-};
-
-#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13
-#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13
-#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13
-#define MAP_GROUP_LILYCOVE_CITY_EMPTY_MAP 13
-#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13
-
-//--------------------------------------------------
-// Map Group 14
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_MOSSDEEP_CITY_GYM,
- MAP_ID_MOSSDEEP_CITY_HOUSE1,
- MAP_ID_MOSSDEEP_CITY_HOUSE2,
- MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F,
- MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F,
- MAP_ID_MOSSDEEP_CITY_MART,
- MAP_ID_MOSSDEEP_CITY_HOUSE3,
- MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE,
- MAP_ID_MOSSDEEP_CITY_HOUSE4,
- MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F,
- MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F,
- MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F,
- MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F,
-};
-
-#define MAP_GROUP_MOSSDEEP_CITY_GYM 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14
-#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14
-#define MAP_GROUP_MOSSDEEP_CITY_MART 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14
-#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14
-#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14
-#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14
-
-//--------------------------------------------------
-// Map Group 15
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SOOTOPOLIS_CITY_GYM_1F,
- MAP_ID_SOOTOPOLIS_CITY_GYM_B1F,
- MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F,
- MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F,
- MAP_ID_SOOTOPOLIS_CITY_MART,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE1,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE2,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE3,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE4,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE5,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE6,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE7,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE8,
-};
-
-#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15
-
-//--------------------------------------------------
-// Map Group 16
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM,
- MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM,
- MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR1,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR2,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR3,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR4,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR5,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE,
- MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F,
-};
-
-#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE 16
-#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16
-
-//--------------------------------------------------
-// Map Group 17
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE104_MR_BRINEYS_HOUSE,
- MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP,
-};
-
-#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17
-#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17
-
-//--------------------------------------------------
-// Map Group 18
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE,
- MAP_ID_ROUTE111_OLD_LADYS_REST_STOP,
-};
-
-#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18
-#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18
-
-//--------------------------------------------------
-// Map Group 19
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE112_CABLE_CAR_STATION,
- MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION,
-};
-
-#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19
-#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19
-
-//--------------------------------------------------
-// Map Group 20
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE,
- MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL,
- MAP_ID_ROUTE114_LANETTES_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20
-#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20
-#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20
-
-//--------------------------------------------------
-// Map Group 21
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21
-
-//--------------------------------------------------
-// Map Group 22
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE117_POKEMON_DAY_CARE,
-};
-
-#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22
-
-//--------------------------------------------------
-// Map Group 23
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE,
-};
-
-#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23
-
-//--------------------------------------------------
-// Map Group 24
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_METEOR_FALLS_1F_1R,
- MAP_ID_METEOR_FALLS_1F_2R,
- MAP_ID_METEOR_FALLS_B1F_1R,
- MAP_ID_METEOR_FALLS_B1F_2R,
- MAP_ID_RUSTURF_TUNNEL,
- MAP_ID_UNDERWATER_SOOTOPOLIS_CITY,
- MAP_ID_DESERT_RUINS,
- MAP_ID_GRANITE_CAVE_1F,
- MAP_ID_GRANITE_CAVE_B1F,
- MAP_ID_GRANITE_CAVE_B2F,
- MAP_ID_GRANITE_CAVE_STEVENS_ROOM,
- MAP_ID_PETALBURG_WOODS,
- MAP_ID_MT_CHIMNEY,
- MAP_ID_JAGGED_PASS,
- MAP_ID_FIERY_PATH,
- MAP_ID_MT_PYRE_1F,
- MAP_ID_MT_PYRE_2F,
- MAP_ID_MT_PYRE_3F,
- MAP_ID_MT_PYRE_4F,
- MAP_ID_MT_PYRE_5F,
- MAP_ID_MT_PYRE_6F,
- MAP_ID_MT_PYRE_EXTERIOR,
- MAP_ID_MT_PYRE_SUMMIT,
- MAP_ID_AQUA_HIDEOUT_1F,
- MAP_ID_AQUA_HIDEOUT_B1F,
- MAP_ID_AQUA_HIDEOUT_B2F,
- MAP_ID_UNDERWATER_SEAFLOOR_CAVERN,
- MAP_ID_SEAFLOOR_CAVERN_ENTRANCE,
- MAP_ID_SEAFLOOR_CAVERN_ROOM1,
- MAP_ID_SEAFLOOR_CAVERN_ROOM2,
- MAP_ID_SEAFLOOR_CAVERN_ROOM3,
- MAP_ID_SEAFLOOR_CAVERN_ROOM4,
- MAP_ID_SEAFLOOR_CAVERN_ROOM5,
- MAP_ID_SEAFLOOR_CAVERN_ROOM6,
- MAP_ID_SEAFLOOR_CAVERN_ROOM7,
- MAP_ID_SEAFLOOR_CAVERN_ROOM8,
- MAP_ID_SEAFLOOR_CAVERN_ROOM9,
- MAP_ID_CAVE_OF_ORIGIN_ENTRANCE,
- MAP_ID_CAVE_OF_ORIGIN_1F,
- MAP_ID_CAVE_OF_ORIGIN_B1F,
- MAP_ID_CAVE_OF_ORIGIN_B2F,
- MAP_ID_CAVE_OF_ORIGIN_B3F,
- MAP_ID_CAVE_OF_ORIGIN_B4F,
- MAP_ID_VICTORY_ROAD_1F,
- MAP_ID_VICTORY_ROAD_B1F,
- MAP_ID_VICTORY_ROAD_B2F,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM,
- MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM,
- MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM,
- MAP_ID_NEW_MAUVILLE_ENTRANCE,
- MAP_ID_NEW_MAUVILLE_INSIDE,
- MAP_ID_ABANDONED_SHIP_DECK,
- MAP_ID_ABANDONED_SHIP_CORRIDORS_1F,
- MAP_ID_ABANDONED_SHIP_ROOMS_1F,
- MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS2_B1F,
- MAP_ID_ABANDONED_SHIP_UNDERWATER1,
- MAP_ID_ABANDONED_SHIP_ROOM_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS2_1F,
- MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE,
- MAP_ID_ABANDONED_SHIP_UNDERWATER2,
- MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS,
- MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS,
- MAP_ID_ISLAND_CAVE,
- MAP_ID_ANCIENT_TOMB,
- MAP_ID_UNDERWATER_ROUTE134,
- MAP_ID_UNDERWATER_SEALED_CHAMBER,
- MAP_ID_SEALED_CHAMBER_OUTER_ROOM,
- MAP_ID_SEALED_CHAMBER_INNER_ROOM,
- MAP_ID_SCORCHED_SLAB,
- MAP_ID_MAGMA_HIDEOUT_1F,
- MAP_ID_MAGMA_HIDEOUT_B1F,
- MAP_ID_MAGMA_HIDEOUT_B2F,
- MAP_ID_SKY_PILLAR_ENTRANCE,
- MAP_ID_SKY_PILLAR_OUTSIDE,
- MAP_ID_SKY_PILLAR_1F,
- MAP_ID_SKY_PILLAR_2F,
- MAP_ID_SKY_PILLAR_3F,
- MAP_ID_SKY_PILLAR_4F,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM,
- MAP_ID_SKY_PILLAR_5F,
- MAP_ID_SKY_PILLAR_TOP,
-};
-
-#define MAP_GROUP_METEOR_FALLS_1F_1R 24
-#define MAP_GROUP_METEOR_FALLS_1F_2R 24
-#define MAP_GROUP_METEOR_FALLS_B1F_1R 24
-#define MAP_GROUP_METEOR_FALLS_B1F_2R 24
-#define MAP_GROUP_RUSTURF_TUNNEL 24
-#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24
-#define MAP_GROUP_DESERT_RUINS 24
-#define MAP_GROUP_GRANITE_CAVE_1F 24
-#define MAP_GROUP_GRANITE_CAVE_B1F 24
-#define MAP_GROUP_GRANITE_CAVE_B2F 24
-#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24
-#define MAP_GROUP_PETALBURG_WOODS 24
-#define MAP_GROUP_MT_CHIMNEY 24
-#define MAP_GROUP_JAGGED_PASS 24
-#define MAP_GROUP_FIERY_PATH 24
-#define MAP_GROUP_MT_PYRE_1F 24
-#define MAP_GROUP_MT_PYRE_2F 24
-#define MAP_GROUP_MT_PYRE_3F 24
-#define MAP_GROUP_MT_PYRE_4F 24
-#define MAP_GROUP_MT_PYRE_5F 24
-#define MAP_GROUP_MT_PYRE_6F 24
-#define MAP_GROUP_MT_PYRE_EXTERIOR 24
-#define MAP_GROUP_MT_PYRE_SUMMIT 24
-#define MAP_GROUP_AQUA_HIDEOUT_1F 24
-#define MAP_GROUP_AQUA_HIDEOUT_B1F 24
-#define MAP_GROUP_AQUA_HIDEOUT_B2F 24
-#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24
-#define MAP_GROUP_VICTORY_ROAD_1F 24
-#define MAP_GROUP_VICTORY_ROAD_B1F 24
-#define MAP_GROUP_VICTORY_ROAD_B2F 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24
-#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24
-#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24
-#define MAP_GROUP_ABANDONED_SHIP_DECK 24
-#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24
-#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24
-#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24
-#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24
-#define MAP_GROUP_ISLAND_CAVE 24
-#define MAP_GROUP_ANCIENT_TOMB 24
-#define MAP_GROUP_UNDERWATER_ROUTE134 24
-#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24
-#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24
-#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24
-#define MAP_GROUP_SCORCHED_SLAB 24
-#define MAP_GROUP_MAGMA_HIDEOUT_1F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24
-#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24
-#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24
-#define MAP_GROUP_SKY_PILLAR_1F 24
-#define MAP_GROUP_SKY_PILLAR_2F 24
-#define MAP_GROUP_SKY_PILLAR_3F 24
-#define MAP_GROUP_SKY_PILLAR_4F 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24
-#define MAP_GROUP_SKY_PILLAR_5F 24
-#define MAP_GROUP_SKY_PILLAR_TOP 24
-
-//--------------------------------------------------
-// Map Group 25
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SECRET_BASE_RED_CAVE1,
- MAP_ID_SECRET_BASE_BROWN_CAVE1,
- MAP_ID_SECRET_BASE_BLUE_CAVE1,
- MAP_ID_SECRET_BASE_YELLOW_CAVE1,
- MAP_ID_SECRET_BASE_TREE1,
- MAP_ID_SECRET_BASE_SHRUB1,
- MAP_ID_SECRET_BASE_RED_CAVE2,
- MAP_ID_SECRET_BASE_BROWN_CAVE2,
- MAP_ID_SECRET_BASE_BLUE_CAVE2,
- MAP_ID_SECRET_BASE_YELLOW_CAVE2,
- MAP_ID_SECRET_BASE_TREE2,
- MAP_ID_SECRET_BASE_SHRUB2,
- MAP_ID_SECRET_BASE_RED_CAVE3,
- MAP_ID_SECRET_BASE_BROWN_CAVE3,
- MAP_ID_SECRET_BASE_BLUE_CAVE3,
- MAP_ID_SECRET_BASE_YELLOW_CAVE3,
- MAP_ID_SECRET_BASE_TREE3,
- MAP_ID_SECRET_BASE_SHRUB3,
- MAP_ID_SECRET_BASE_RED_CAVE4,
- MAP_ID_SECRET_BASE_BROWN_CAVE4,
- MAP_ID_SECRET_BASE_BLUE_CAVE4,
- MAP_ID_SECRET_BASE_YELLOW_CAVE4,
- MAP_ID_SECRET_BASE_TREE4,
- MAP_ID_SECRET_BASE_SHRUB4,
- MAP_ID_SINGLE_BATTLE_COLOSSEUM,
- MAP_ID_TRADE_CENTER,
- MAP_ID_RECORD_CORNER,
- MAP_ID_DOUBLE_BATTLE_COLOSSEUM,
- MAP_ID_LINK_CONTEST_ROOM1,
- MAP_ID_UNKNOWN_MAP_25_29,
- MAP_ID_UNKNOWN_MAP_25_30,
- MAP_ID_UNKNOWN_MAP_25_31,
- MAP_ID_UNKNOWN_MAP_25_32,
- MAP_ID_UNKNOWN_MAP_25_33,
- MAP_ID_UNKNOWN_MAP_25_34,
- MAP_ID_LINK_CONTEST_ROOM2,
- MAP_ID_LINK_CONTEST_ROOM3,
- MAP_ID_LINK_CONTEST_ROOM4,
- MAP_ID_LINK_CONTEST_ROOM5,
- MAP_ID_LINK_CONTEST_ROOM6,
- MAP_ID_INSIDE_OF_TRUCK,
- MAP_ID_SS_TIDAL_CORRIDOR,
- MAP_ID_SS_TIDAL_LOWER_DECK,
- MAP_ID_SS_TIDAL_ROOMS,
-};
-
-#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_TREE1 25
-#define MAP_GROUP_SECRET_BASE_SHRUB1 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_TREE2 25
-#define MAP_GROUP_SECRET_BASE_SHRUB2 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_TREE3 25
-#define MAP_GROUP_SECRET_BASE_SHRUB3 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_TREE4 25
-#define MAP_GROUP_SECRET_BASE_SHRUB4 25
-#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25
-#define MAP_GROUP_TRADE_CENTER 25
-#define MAP_GROUP_RECORD_CORNER 25
-#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25
-#define MAP_GROUP_LINK_CONTEST_ROOM1 25
-#define MAP_GROUP_UNKNOWN_MAP_25_29 25
-#define MAP_GROUP_UNKNOWN_MAP_25_30 25
-#define MAP_GROUP_UNKNOWN_MAP_25_31 25
-#define MAP_GROUP_UNKNOWN_MAP_25_32 25
-#define MAP_GROUP_UNKNOWN_MAP_25_33 25
-#define MAP_GROUP_UNKNOWN_MAP_25_34 25
-#define MAP_GROUP_LINK_CONTEST_ROOM2 25
-#define MAP_GROUP_LINK_CONTEST_ROOM3 25
-#define MAP_GROUP_LINK_CONTEST_ROOM4 25
-#define MAP_GROUP_LINK_CONTEST_ROOM5 25
-#define MAP_GROUP_LINK_CONTEST_ROOM6 25
-#define MAP_GROUP_INSIDE_OF_TRUCK 25
-#define MAP_GROUP_SS_TIDAL_CORRIDOR 25
-#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25
-#define MAP_GROUP_SS_TIDAL_ROOMS 25
-
-//--------------------------------------------------
-// Map Group 26
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SAFARI_ZONE_NORTHWEST,
- MAP_ID_SAFARI_ZONE_NORTHEAST,
- MAP_ID_SAFARI_ZONE_SOUTHWEST,
- MAP_ID_SAFARI_ZONE_SOUTHEAST,
- MAP_ID_BATTLE_TOWER_OUTSIDE,
- MAP_ID_BATTLE_TOWER_LOBBY,
- MAP_ID_BATTLE_TOWER_ELEVATOR,
- MAP_ID_BATTLE_TOWER_CORRIDOR,
- MAP_ID_BATTLE_TOWER_BATTLE_ROOM,
- MAP_ID_SOUTHERN_ISLAND_EXTERIOR,
- MAP_ID_SOUTHERN_ISLAND_INTERIOR,
- MAP_ID_SAFARI_ZONE_REST_HOUSE,
-};
-
-#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26
-#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26
-#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26
-#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26
-#define MAP_GROUP_BATTLE_TOWER_OUTSIDE 26
-#define MAP_GROUP_BATTLE_TOWER_LOBBY 26
-#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26
-#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26
-#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26
-#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26
-#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26
-#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26
-
-//--------------------------------------------------
-// Map Group 27
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE104_PROTOTYPE,
- MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP,
-};
-
-#define MAP_GROUP_ROUTE104_PROTOTYPE 27
-#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27
-
-//--------------------------------------------------
-// Map Group 28
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE109_SEASHORE_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28
-
-//--------------------------------------------------
-// Map Group 29
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE,
- MAP_ID_ROUTE110_TRICK_HOUSE_END,
- MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8,
- MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE,
- MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE,
-};
-
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29
-#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29
-#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29
-
-//--------------------------------------------------
-// Map Group 30
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE113_GLASS_WORKSHOP,
-};
-
-#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30
-
-//--------------------------------------------------
-// Map Group 31
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31
-
-//--------------------------------------------------
-// Map Group 32
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F,
- MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F,
- MAP_ID_ROUTE119_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32
-#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32
-#define MAP_GROUP_ROUTE119_HOUSE 32
-
-//--------------------------------------------------
-// Map Group 33
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33
-
-#endif // GUARD_MAP_CONSTANTS_H
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
index f7352be22..9fb57743e 100644
--- a/include/map_obj_lock.h
+++ b/include/map_obj_lock.h
@@ -7,7 +7,7 @@ bool8 sub_8064CFC(void);
void ScriptFreezeMapObjects(void);
void sub_8064D38(u8 taskId);
bool8 sub_8064DB4(void);
-void sub_8064DD8(void);
+void LockSelectedMapObject(void);
void sub_8064E2C(void);
void unref_sub_8064E5C(void);
void sub_8064EAC(void);
diff --git a/include/map_object_constants.h b/include/map_object_constants.h
deleted file mode 100644
index 79482b54a..000000000
--- a/include/map_object_constants.h
+++ /dev/null
@@ -1,239 +0,0 @@
-#ifndef GUARD_MAP_OBJECT_CONSTANTS_H
-#define GUARD_MAP_OBJECT_CONSTANTS_H
-
-enum
-{
- MAP_OBJ_GFX_BRENDAN_NORMAL,
- MAP_OBJ_GFX_BRENDAN_MACH_BIKE,
- MAP_OBJ_GFX_BRENDAN_SURFING,
- MAP_OBJ_GFX_BRENDAN_FIELD_MOVE,
- MAP_OBJ_GFX_QUINTY_PLUMP,
- MAP_OBJ_GFX_LITTLE_BOY_1,
- MAP_OBJ_GFX_LITTLE_GIRL_1,
- MAP_OBJ_GFX_BOY_1,
- MAP_OBJ_GFX_GIRL_1,
- MAP_OBJ_GFX_BOY_2,
- MAP_OBJ_GFX_GIRL_2,
- MAP_OBJ_GFX_LITTLE_BOY_2,
- MAP_OBJ_GFX_LITTLE_GIRL_2,
- MAP_OBJ_GFX_BOY_3,
- MAP_OBJ_GFX_GIRL_3,
- MAP_OBJ_GFX_BOY_4,
- MAP_OBJ_GFX_WOMAN_1,
- MAP_OBJ_GFX_FAT_MAN,
- MAP_OBJ_GFX_WOMAN_2,
- MAP_OBJ_GFX_MAN_1,
- MAP_OBJ_GFX_WOMAN_3,
- MAP_OBJ_GFX_OLD_MAN_1,
- MAP_OBJ_GFX_OLD_WOMAN_1,
- MAP_OBJ_GFX_MAN_2,
- MAP_OBJ_GFX_WOMAN_4,
- MAP_OBJ_GFX_MAN_3,
- MAP_OBJ_GFX_WOMAN_5,
- MAP_OBJ_GFX_COOK,
- MAP_OBJ_GFX_WOMAN_6,
- MAP_OBJ_GFX_OLD_MAN_2,
- MAP_OBJ_GFX_OLD_WOMAN_2,
- MAP_OBJ_GFX_CAMPER,
- MAP_OBJ_GFX_PICNICKER,
- MAP_OBJ_GFX_MAN_4,
- MAP_OBJ_GFX_WOMAN_7,
- MAP_OBJ_GFX_YOUNGSTER,
- MAP_OBJ_GFX_BUG_CATCHER,
- MAP_OBJ_GFX_PSYCHIC_M,
- MAP_OBJ_GFX_SCHOOL_KID_M,
- MAP_OBJ_GFX_MANIAC,
- MAP_OBJ_GFX_HEX_MANIAC,
- MAP_OBJ_GFX_WOMAN_8,
- MAP_OBJ_GFX_SWIMMER_M,
- MAP_OBJ_GFX_SWIMMER_F,
- MAP_OBJ_GFX_BLACK_BELT,
- MAP_OBJ_GFX_BEAUTY,
- MAP_OBJ_GFX_SCIENTIST_1,
- MAP_OBJ_GFX_LASS,
- MAP_OBJ_GFX_GENTLEMAN,
- MAP_OBJ_GFX_SAILOR,
- MAP_OBJ_GFX_FISHERMAN,
- MAP_OBJ_GFX_RUNNING_TRIATHLETE_M,
- MAP_OBJ_GFX_RUNNING_TRIATHLETE_F,
- MAP_OBJ_GFX_TUBER_F,
- MAP_OBJ_GFX_TUBER_M,
- MAP_OBJ_GFX_HIKER,
- MAP_OBJ_GFX_CYCLING_TRIATHLETE_M,
- MAP_OBJ_GFX_CYCLING_TRIATHLETE_F,
- MAP_OBJ_GFX_NURSE,
- MAP_OBJ_GFX_ITEM_BALL,
- MAP_OBJ_GFX_BERRY_TREE,
- MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES,
- MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES,
- MAP_OBJ_GFX_BRENDAN_ACRO_BIKE,
- MAP_OBJ_GFX_PROF_BIRCH,
- MAP_OBJ_GFX_MAN_5,
- MAP_OBJ_GFX_MAN_6,
- MAP_OBJ_GFX_REPORTER_M,
- MAP_OBJ_GFX_REPORTER_F,
- MAP_OBJ_GFX_BARD,
- MAP_OBJ_GFX_HIPSTER,
- MAP_OBJ_GFX_TRADER,
- MAP_OBJ_GFX_STORYTELLER,
- MAP_OBJ_GFX_GIDDY,
- MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1,
- MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2,
- MAP_OBJ_GFX_UNUSED_NATU_DOLL,
- MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL,
- MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL,
- MAP_OBJ_GFX_UNUSED_WOOPER_DOLL,
- MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL,
- MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL,
- MAP_OBJ_GFX_CUTTABLE_TREE,
- MAP_OBJ_GFX_MART_EMPLOYEE,
- MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN,
- MAP_OBJ_GFX_TEALA,
- MAP_OBJ_GFX_BREAKABLE_ROCK,
- MAP_OBJ_GFX_PUSHABLE_BOULDER,
- MAP_OBJ_GFX_MR_BRINEYS_BOAT,
- MAP_OBJ_GFX_MAY_NORMAL,
- MAP_OBJ_GFX_MAY_MACH_BIKE,
- MAP_OBJ_GFX_MAY_ACRO_BIKE,
- MAP_OBJ_GFX_MAY_SURFING,
- MAP_OBJ_GFX_MAY_FIELD_MOVE,
- MAP_OBJ_GFX_TRUCK,
- MAP_OBJ_GFX_MACHOKE_CARRYING_BOX,
- MAP_OBJ_GFX_MACHOKE_FACING_AWAY,
- MAP_OBJ_GFX_BIRCHS_BAG,
- MAP_OBJ_GFX_POOCHYENA,
- MAP_OBJ_GFX_ARTIST,
- MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL,
- MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE,
- MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE,
- MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING,
- MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE,
- MAP_OBJ_GFX_RIVAL_MAY_NORMAL,
- MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE,
- MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE,
- MAP_OBJ_GFX_RIVAL_MAY_SURFING,
- MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE,
- MAP_OBJ_GFX_CAMERAMAN,
- MAP_OBJ_GFX_BRENDAN_UNDERWATER,
- MAP_OBJ_GFX_MAY_UNDERWATER,
- MAP_OBJ_GFX_MOVING_BOX,
- MAP_OBJ_GFX_CABLE_CAR,
- MAP_OBJ_GFX_SCIENTIST_2,
- MAP_OBJ_GFX_MAN_7,
- MAP_OBJ_GFX_AQUA_MEMBER_M,
- MAP_OBJ_GFX_AQUA_MEMBER_F,
- MAP_OBJ_GFX_MAGMA_MEMBER_M,
- MAP_OBJ_GFX_MAGMA_MEMBER_F,
- MAP_OBJ_GFX_SIDNEY,
- MAP_OBJ_GFX_PHOEBE,
- MAP_OBJ_GFX_GLACIA,
- MAP_OBJ_GFX_DRAKE,
- MAP_OBJ_GFX_ROXANNE,
- MAP_OBJ_GFX_BRAWLY,
- MAP_OBJ_GFX_WATTSON,
- MAP_OBJ_GFX_FLANNERY,
- MAP_OBJ_GFX_NORMAN,
- MAP_OBJ_GFX_WINONA,
- MAP_OBJ_GFX_LIZA,
- MAP_OBJ_GFX_TATE,
- MAP_OBJ_GFX_WALLACE,
- MAP_OBJ_GFX_STEVEN,
- MAP_OBJ_GFX_WALLY,
- MAP_OBJ_GFX_LITTLE_BOY_3,
- MAP_OBJ_GFX_BRENDAN_FISHING,
- MAP_OBJ_GFX_MAY_FISHING,
- MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN,
- MAP_OBJ_GFX_SS_TIDAL,
- MAP_OBJ_GFX_SUBMARINE_SHADOW,
- MAP_OBJ_GFX_PICHU_DOLL,
- MAP_OBJ_GFX_PIKACHU_DOLL,
- MAP_OBJ_GFX_MARILL_DOLL,
- MAP_OBJ_GFX_TOGEPI_DOLL,
- MAP_OBJ_GFX_CYNDAQUIL_DOLL,
- MAP_OBJ_GFX_CHIKORITA_DOLL,
- MAP_OBJ_GFX_TOTODILE_DOLL,
- MAP_OBJ_GFX_JIGGLYPUFF_DOLL,
- MAP_OBJ_GFX_MEOWTH_DOLL,
- MAP_OBJ_GFX_CLEFAIRY_DOLL,
- MAP_OBJ_GFX_DITTO_DOLL,
- MAP_OBJ_GFX_SMOOCHUM_DOLL,
- MAP_OBJ_GFX_TREECKO_DOLL,
- MAP_OBJ_GFX_TORCHIC_DOLL,
- MAP_OBJ_GFX_MUDKIP_DOLL,
- MAP_OBJ_GFX_DUSKULL_DOLL,
- MAP_OBJ_GFX_WYNAUT_DOLL,
- MAP_OBJ_GFX_BALTOY_DOLL,
- MAP_OBJ_GFX_KECLEON_DOLL,
- MAP_OBJ_GFX_AZURILL_DOLL,
- MAP_OBJ_GFX_SKITTY_DOLL,
- MAP_OBJ_GFX_SWABLU_DOLL,
- MAP_OBJ_GFX_GULPIN_DOLL,
- MAP_OBJ_GFX_LOTAD_DOLL,
- MAP_OBJ_GFX_SEEDOT_DOLL,
- MAP_OBJ_GFX_PIKA_CUSHION,
- MAP_OBJ_GFX_ROUND_CUSHION,
- MAP_OBJ_GFX_KISS_CUSHION,
- MAP_OBJ_GFX_ZIGZAG_CUSHION,
- MAP_OBJ_GFX_SPIN_CUSHION,
- MAP_OBJ_GFX_DIAMOND_CUSHION,
- MAP_OBJ_GFX_BALL_CUSHION,
- MAP_OBJ_GFX_GRASS_CUSHION,
- MAP_OBJ_GFX_FIRE_CUSHION,
- MAP_OBJ_GFX_WATER_CUSHION,
- MAP_OBJ_GFX_BIG_SNORLAX_DOLL,
- MAP_OBJ_GFX_BIG_RHYDON_DOLL,
- MAP_OBJ_GFX_BIG_LAPRAS_DOLL,
- MAP_OBJ_GFX_BIG_VENUSAUR_DOLL,
- MAP_OBJ_GFX_BIG_CHARIZARD_DOLL,
- MAP_OBJ_GFX_BIG_BLASTOISE_DOLL,
- MAP_OBJ_GFX_BIG_WAILMER_DOLL,
- MAP_OBJ_GFX_BIG_REGIROCK_DOLL,
- MAP_OBJ_GFX_BIG_REGICE_DOLL,
- MAP_OBJ_GFX_BIG_REGISTEEL_DOLL,
- MAP_OBJ_GFX_LATIAS,
- MAP_OBJ_GFX_LATIOS,
- MAP_OBJ_GFX_BOY_5,
- MAP_OBJ_GFX_CONTEST_JUDGE,
- MAP_OBJ_GFX_BRENDAN_WATERING,
- MAP_OBJ_GFX_MAY_WATERING,
- MAP_OBJ_GFX_BRENDAN_DECORATING,
- MAP_OBJ_GFX_MAY_DECORATING,
- MAP_OBJ_GFX_ARCHIE,
- MAP_OBJ_GFX_MAXIE,
- MAP_OBJ_GFX_KYOGRE_1,
- MAP_OBJ_GFX_GROUDON_1,
- MAP_OBJ_GFX_FOSSIL,
- MAP_OBJ_GFX_REGIROCK,
- MAP_OBJ_GFX_REGICE,
- MAP_OBJ_GFX_REGISTEEL,
- MAP_OBJ_GFX_SKITTY,
- MAP_OBJ_GFX_KECLEON_1,
- MAP_OBJ_GFX_KYOGRE_2,
- MAP_OBJ_GFX_GROUDON_2,
- MAP_OBJ_GFX_RAYQUAZA,
- MAP_OBJ_GFX_ZIGZAGOON,
- MAP_OBJ_GFX_PIKACHU,
- MAP_OBJ_GFX_AZUMARILL,
- MAP_OBJ_GFX_WINGULL,
- MAP_OBJ_GFX_KECLEON_2,
- MAP_OBJ_GFX_TUBER_M_SWIMMING,
- MAP_OBJ_GFX_AZURILL,
- MAP_OBJ_GFX_MOM,
- MAP_OBJ_GFX_LINK_BRENDAN,
- MAP_OBJ_GFX_LINK_MAY,
-};
-
-enum {
- SHADOW_SIZE_S,
- SHADOW_SIZE_M,
- SHADOW_SIZE_L,
- SHADOW_SIZE_XL
-};
-
-enum {
- TRACKS_NONE,
- TRACKS_FOOT,
- TRACKS_BIKE_TIRE
-};
-
-#endif // GUARD_MAP_OBJECT_CONSTANTS_H
diff --git a/include/matsuda_debug_menu.h b/include/matsuda_debug_menu.h
index 5df53d688..60f2dc48c 100644
--- a/include/matsuda_debug_menu.h
+++ b/include/matsuda_debug_menu.h
@@ -7,5 +7,31 @@ void sub_80AB184(void);
void sub_80AA280(u8);
void sub_80AA5E8(u8);
void sub_80AA658(u8);
+u8 MatsudaDebugMenu_Contest(void);
+u8 MatsudaDebugMenu_ContestResults(void);
+u8 MatsudaDebugMenu_ContestComm(void);
+u8 MatsudaDebugMenu_CommTest(void);
+u8 MatsudaDebugMenu_SetHighScore(void);
+u8 MatsudaDebugMenu_ResetHighScore(void);
+u8 MatsudaDebugMenu_SetArtMuseumItems(void);
+void sub_80AA754(struct Sprite *sprite);
+void sub_80AA8C8(struct Sprite *, s8);
+void sub_80AA8D8(struct Sprite *, s8);
+void sub_80AA8E8(struct Sprite *, s8);
+void sub_80AA8F8(struct Sprite *, s8);
+void sub_80AAC5C(struct Sprite *, s8);
+void sub_80AAC5C(struct Sprite *, s8);
+void sub_80AA930(struct Sprite *, s8);
+void sub_80AA974(struct Sprite *, s8);
+void sub_80AA9B8(struct Sprite *, s8);
+void sub_80AA9FC(struct Sprite *, s8);
+void sub_80AAA40(struct Sprite *, s8);
+void sub_80AAA84(struct Sprite *, s8);
+void sub_80AAAF0(struct Sprite *, s8);
+void sub_80AAB30(struct Sprite *, s8);
+void sub_80AAB70(struct Sprite *, s8);
+void sub_80AABB0(struct Sprite *, s8);
+void sub_80AABF0(struct Sprite *, s8);
+void sub_80AAD44(struct Sprite *, s8);
#endif
diff --git a/include/mauville_old_man.h b/include/mauville_man.h
index 473fcf5c8..622cd1bfb 100644
--- a/include/mauville_old_man.h
+++ b/include/mauville_man.h
@@ -1,11 +1,10 @@
#ifndef GUARD_MAUVILLE_OLD_MAN_H
#define GUARD_MAUVILLE_OLD_MAN_H
-void SetMauvilleOldMan(void);
-void sub_80F7DC0(void);
+#include "constants/mauville_man.h"
+
+void SetupMauvilleOldMan(void);
void sub_80F7F30(void);
-void sub_80F7F80(u8);
void sub_80F83D0(void);
-void sub_80F83F8(void);
#endif // GUARD_MAUVILLE_OLD_MAN_H
diff --git a/include/menu.h b/include/menu.h
index e1bb4f1e4..9a5ca62a0 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -1,6 +1,7 @@
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
+#include "task.h"
#include "text.h"
struct MenuAction
@@ -12,7 +13,7 @@ struct MenuAction
struct MenuAction2
{
const u8 *text;
- void (*func)(u8);
+ TaskFunc func;
};
extern const struct MenuAction gMenuYesNoItems[];
@@ -43,7 +44,7 @@ u16 unref_sub_8071F98(u8, u8);
void unref_sub_8071FBC(u16, u8, u8, u8, u8);
void MenuDisplayMessageBox(void);
void MenuPrintMessage(const u8 *, u8, u8);
-void sub_8072044(const u8 *);
+void MenuPrintMessageDefaultCoords(const u8 *);
void MenuSetText(const u8 *);
u8 MenuUpdateWindowText(void);
u8 unref_sub_8072098(void);
@@ -59,7 +60,7 @@ void sub_807274C(u8, u8, u8, u8, const struct MenuAction[], u8, u32);
s8 sub_80727CC(void);
u8 sub_807288C(u8);
void PrintMenuItems(u8, u8, u8, const struct MenuAction[]);
-void PrintMenuItemsReordered(u8, u8, u8, const struct MenuAction[], const u8*);
+void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction2 menuItems[], const u8 *order);
void InitYesNoMenu(u8, u8, u8);
void DisplayYesNoMenu(u8, u8, u32);
s8 ProcessMenuInputNoWrap_(void);
diff --git a/include/money.h b/include/money.h
index 06ac00e92..9f4ef71bc 100644
--- a/include/money.h
+++ b/include/money.h
@@ -2,16 +2,16 @@
#define GUARD_MONEY_H
bool8 IsEnoughMoney(u32, u32);
-void sub_80B79B8(u32 *, u32);
-void sub_80B79E0(u32 *, u32);
-void sub_80B79F8(u8 *buffer, u32 arg1, u8 arg2);
-void sub_80B7A94(u32 arg0, u8 arg1, u8 x, u8 y);
+void AddMoney(u32 *, u32);
+void RemoveMoney(u32 *, u32);
+void GetMoneyAmountText(u8 *buffer, u32 arg1, u8 arg2);
+void PrintMoneyAmount(u32 arg0, u8 arg1, u8 x, u8 y);
void sub_80B7AEC(u32, u8 left, u8 top);
void sub_80B7B34(u8, u8, int);
-void sub_80B7BEC(u32, u8, u8);
-void sub_80B7C14(u32, u8, u8);
-void RemoveMoneyLabelObject(u8, u8);
-bool8 sub_80B7CE8(void);
-void sub_80B7D0C(void);
+void UpdateMoneyWindow(u32, u8, u8);
+void OpenMoneyWindow(u32, u8, u8);
+void CloseMoneyWindow(u8, u8);
+bool8 HasEnoughMoneyFor(void);
+void PayMoneyFor(void);
#endif // GUARD_MONEY_H
diff --git a/include/mori_debug_menu.h b/include/mori_debug_menu.h
index f1dc0de93..9b0a39fe3 100644
--- a/include/mori_debug_menu.h
+++ b/include/mori_debug_menu.h
@@ -3,14 +3,14 @@
bool8 sub_8083D4C(void);
u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr);
-s8 MoriDebugMenu_Egg(void);
-s8 MoriDebugMenu_MaleEgg(void);
-s8 MoriDebugMenu_1000Steps(void);
-s8 MoriDebugMenu_10000Steps(void);
-s8 MoriDebugMenu_MoveTutor(void);
-s8 MoriDebugMenu_BreedEgg(void);
-s8 MoriDebugMenu_LongName(void);
-s8 MoriDebugMenu_PokeblockCase(void);
+u8 MoriDebugMenu_Egg(void);
+u8 MoriDebugMenu_MaleEgg(void);
+u8 MoriDebugMenu_1000Steps(void);
+u8 MoriDebugMenu_10000Steps(void);
+u8 MoriDebugMenu_MoveTutor(void);
+u8 MoriDebugMenu_BreedEgg(void);
+u8 MoriDebugMenu_LongName(void);
+u8 MoriDebugMenu_PokeblockCase(void);
bool8 MoriDebugMenuProcessInput(void);
s8 InitMoriDebugMenu(void);
diff --git a/include/moves.h b/include/moves.h
deleted file mode 100644
index e3b6d3113..000000000
--- a/include/moves.h
+++ /dev/null
@@ -1,363 +0,0 @@
-#ifndef GUARD_MOVES_H
-#define GUARD_MOVES_H
-
-enum
-{
- MOVE_NONE,
- MOVE_POUND,
- MOVE_KARATE_CHOP,
- MOVE_DOUBLE_SLAP,
- MOVE_COMET_PUNCH,
- MOVE_MEGA_PUNCH,
- MOVE_PAY_DAY,
- MOVE_FIRE_PUNCH,
- MOVE_ICE_PUNCH,
- MOVE_THUNDER_PUNCH,
- MOVE_SCRATCH,
- MOVE_VICE_GRIP,
- MOVE_GUILLOTINE,
- MOVE_RAZOR_WIND,
- MOVE_SWORDS_DANCE,
- MOVE_CUT,
- MOVE_GUST,
- MOVE_WING_ATTACK,
- MOVE_WHIRLWIND,
- MOVE_FLY,
- MOVE_BIND,
- MOVE_SLAM,
- MOVE_VINE_WHIP,
- MOVE_STOMP,
- MOVE_DOUBLE_KICK,
- MOVE_MEGA_KICK,
- MOVE_JUMP_KICK,
- MOVE_ROLLING_KICK,
- MOVE_SAND_ATTACK,
- MOVE_HEADBUTT,
- MOVE_HORN_ATTACK,
- MOVE_FURY_ATTACK,
- MOVE_HORN_DRILL,
- MOVE_TACKLE,
- MOVE_BODY_SLAM,
- MOVE_WRAP,
- MOVE_TAKE_DOWN,
- MOVE_THRASH,
- MOVE_DOUBLE_EDGE,
- MOVE_TAIL_WHIP,
- MOVE_POISON_STING,
- MOVE_TWINEEDLE,
- MOVE_PIN_MISSILE,
- MOVE_LEER,
- MOVE_BITE,
- MOVE_GROWL,
- MOVE_ROAR,
- MOVE_SING,
- MOVE_SUPERSONIC,
- MOVE_SONIC_BOOM,
- MOVE_DISABLE,
- MOVE_ACID,
- MOVE_EMBER,
- MOVE_FLAMETHROWER,
- MOVE_MIST,
- MOVE_WATER_GUN,
- MOVE_HYDRO_PUMP,
- MOVE_SURF,
- MOVE_ICE_BEAM,
- MOVE_BLIZZARD,
- MOVE_PSYBEAM,
- MOVE_BUBBLE_BEAM,
- MOVE_AURORA_BEAM,
- MOVE_HYPER_BEAM,
- MOVE_PECK,
- MOVE_DRILL_PECK,
- MOVE_SUBMISSION,
- MOVE_LOW_KICK,
- MOVE_COUNTER,
- MOVE_SEISMIC_TOSS,
- MOVE_STRENGTH,
- MOVE_ABSORB,
- MOVE_MEGA_DRAIN,
- MOVE_LEECH_SEED,
- MOVE_GROWTH,
- MOVE_RAZOR_LEAF,
- MOVE_SOLAR_BEAM,
- MOVE_POISON_POWDER,
- MOVE_STUN_SPORE,
- MOVE_SLEEP_POWDER,
- MOVE_PETAL_DANCE,
- MOVE_STRING_SHOT,
- MOVE_DRAGON_RAGE,
- MOVE_FIRE_SPIN,
- MOVE_THUNDER_SHOCK,
- MOVE_THUNDERBOLT,
- MOVE_THUNDER_WAVE,
- MOVE_THUNDER,
- MOVE_ROCK_THROW,
- MOVE_EARTHQUAKE,
- MOVE_FISSURE,
- MOVE_DIG,
- MOVE_TOXIC,
- MOVE_CONFUSION,
- MOVE_PSYCHIC,
- MOVE_HYPNOSIS,
- MOVE_MEDITATE,
- MOVE_AGILITY,
- MOVE_QUICK_ATTACK,
- MOVE_RAGE,
- MOVE_TELEPORT,
- MOVE_NIGHT_SHADE,
- MOVE_MIMIC,
- MOVE_SCREECH,
- MOVE_DOUBLE_TEAM,
- MOVE_RECOVER,
- MOVE_HARDEN,
- MOVE_MINIMIZE,
- MOVE_SMOKESCREEN,
- MOVE_CONFUSE_RAY,
- MOVE_WITHDRAW,
- MOVE_DEFENSE_CURL,
- MOVE_BARRIER,
- MOVE_LIGHT_SCREEN,
- MOVE_HAZE,
- MOVE_REFLECT,
- MOVE_FOCUS_ENERGY,
- MOVE_BIDE,
- MOVE_METRONOME,
- MOVE_MIRROR_MOVE,
- MOVE_SELF_DESTRUCT,
- MOVE_EGG_BOMB,
- MOVE_LICK,
- MOVE_SMOG,
- MOVE_SLUDGE,
- MOVE_BONE_CLUB,
- MOVE_FIRE_BLAST,
- MOVE_WATERFALL,
- MOVE_CLAMP,
- MOVE_SWIFT,
- MOVE_SKULL_BASH,
- MOVE_SPIKE_CANNON,
- MOVE_CONSTRICT,
- MOVE_AMNESIA,
- MOVE_KINESIS,
- MOVE_SOFT_BOILED,
- MOVE_HI_JUMP_KICK,
- MOVE_GLARE,
- MOVE_DREAM_EATER,
- MOVE_POISON_GAS,
- MOVE_BARRAGE,
- MOVE_LEECH_LIFE,
- MOVE_LOVELY_KISS,
- MOVE_SKY_ATTACK,
- MOVE_TRANSFORM,
- MOVE_BUBBLE,
- MOVE_DIZZY_PUNCH,
- MOVE_SPORE,
- MOVE_FLASH,
- MOVE_PSYWAVE,
- MOVE_SPLASH,
- MOVE_ACID_ARMOR,
- MOVE_CRABHAMMER,
- MOVE_EXPLOSION,
- MOVE_FURY_SWIPES,
- MOVE_BONEMERANG,
- MOVE_REST,
- MOVE_ROCK_SLIDE,
- MOVE_HYPER_FANG,
- MOVE_SHARPEN,
- MOVE_CONVERSION,
- MOVE_TRI_ATTACK,
- MOVE_SUPER_FANG,
- MOVE_SLASH,
- MOVE_SUBSTITUTE,
- MOVE_STRUGGLE,
- MOVE_SKETCH,
- MOVE_TRIPLE_KICK,
- MOVE_THIEF,
- MOVE_SPIDER_WEB,
- MOVE_MIND_READER,
- MOVE_NIGHTMARE,
- MOVE_FLAME_WHEEL,
- MOVE_SNORE,
- MOVE_CURSE,
- MOVE_FLAIL,
- MOVE_CONVERSION_2,
- MOVE_AEROBLAST,
- MOVE_COTTON_SPORE,
- MOVE_REVERSAL,
- MOVE_SPITE,
- MOVE_POWDER_SNOW,
- MOVE_PROTECT,
- MOVE_MACH_PUNCH,
- MOVE_SCARY_FACE,
- MOVE_FAINT_ATTACK,
- MOVE_SWEET_KISS,
- MOVE_BELLY_DRUM,
- MOVE_SLUDGE_BOMB,
- MOVE_MUD_SLAP,
- MOVE_OCTAZOOKA,
- MOVE_SPIKES,
- MOVE_ZAP_CANNON,
- MOVE_FORESIGHT,
- MOVE_DESTINY_BOND,
- MOVE_PERISH_SONG,
- MOVE_ICY_WIND,
- MOVE_DETECT,
- MOVE_BONE_RUSH,
- MOVE_LOCK_ON,
- MOVE_OUTRAGE,
- MOVE_SANDSTORM,
- MOVE_GIGA_DRAIN,
- MOVE_ENDURE,
- MOVE_CHARM,
- MOVE_ROLLOUT,
- MOVE_FALSE_SWIPE,
- MOVE_SWAGGER,
- MOVE_MILK_DRINK,
- MOVE_SPARK,
- MOVE_FURY_CUTTER,
- MOVE_STEEL_WING,
- MOVE_MEAN_LOOK,
- MOVE_ATTRACT,
- MOVE_SLEEP_TALK,
- MOVE_HEAL_BELL,
- MOVE_RETURN,
- MOVE_PRESENT,
- MOVE_FRUSTRATION,
- MOVE_SAFEGUARD,
- MOVE_PAIN_SPLIT,
- MOVE_SACRED_FIRE,
- MOVE_MAGNITUDE,
- MOVE_DYNAMIC_PUNCH,
- MOVE_MEGAHORN,
- MOVE_DRAGON_BREATH,
- MOVE_BATON_PASS,
- MOVE_ENCORE,
- MOVE_PURSUIT,
- MOVE_RAPID_SPIN,
- MOVE_SWEET_SCENT,
- MOVE_IRON_TAIL,
- MOVE_METAL_CLAW,
- MOVE_VITAL_THROW,
- MOVE_MORNING_SUN,
- MOVE_SYNTHESIS,
- MOVE_MOONLIGHT,
- MOVE_HIDDEN_POWER,
- MOVE_CROSS_CHOP,
- MOVE_TWISTER,
- MOVE_RAIN_DANCE,
- MOVE_SUNNY_DAY,
- MOVE_CRUNCH,
- MOVE_MIRROR_COAT,
- MOVE_PSYCH_UP,
- MOVE_EXTREME_SPEED,
- MOVE_ANCIENT_POWER,
- MOVE_SHADOW_BALL,
- MOVE_FUTURE_SIGHT,
- MOVE_ROCK_SMASH,
- MOVE_WHIRLPOOL,
- MOVE_BEAT_UP,
- MOVE_FAKE_OUT,
- MOVE_UPROAR,
- MOVE_STOCKPILE,
- MOVE_SPIT_UP,
- MOVE_SWALLOW,
- MOVE_HEAT_WAVE,
- MOVE_HAIL,
- MOVE_TORMENT,
- MOVE_FLATTER,
- MOVE_WILL_O_WISP,
- MOVE_MEMENTO,
- MOVE_FACADE,
- MOVE_FOCUS_PUNCH,
- MOVE_SMELLING_SALT,
- MOVE_FOLLOW_ME,
- MOVE_NATURE_POWER,
- MOVE_CHARGE,
- MOVE_TAUNT,
- MOVE_HELPING_HAND,
- MOVE_TRICK,
- MOVE_ROLE_PLAY,
- MOVE_WISH,
- MOVE_ASSIST,
- MOVE_INGRAIN,
- MOVE_SUPERPOWER,
- MOVE_MAGIC_COAT,
- MOVE_RECYCLE,
- MOVE_REVENGE,
- MOVE_BRICK_BREAK,
- MOVE_YAWN,
- MOVE_KNOCK_OFF,
- MOVE_ENDEAVOR,
- MOVE_ERUPTION,
- MOVE_SKILL_SWAP,
- MOVE_IMPRISON,
- MOVE_REFRESH,
- MOVE_GRUDGE,
- MOVE_SNATCH,
- MOVE_SECRET_POWER,
- MOVE_DIVE,
- MOVE_ARM_THRUST,
- MOVE_CAMOUFLAGE,
- MOVE_TAIL_GLOW,
- MOVE_LUSTER_PURGE,
- MOVE_MIST_BALL,
- MOVE_FEATHER_DANCE,
- MOVE_TEETER_DANCE,
- MOVE_BLAZE_KICK,
- MOVE_MUD_SPORT,
- MOVE_ICE_BALL,
- MOVE_NEEDLE_ARM,
- MOVE_SLACK_OFF,
- MOVE_HYPER_VOICE,
- MOVE_POISON_FANG,
- MOVE_CRUSH_CLAW,
- MOVE_BLAST_BURN,
- MOVE_HYDRO_CANNON,
- MOVE_METEOR_MASH,
- MOVE_ASTONISH,
- MOVE_WEATHER_BALL,
- MOVE_AROMATHERAPY,
- MOVE_FAKE_TEARS,
- MOVE_AIR_CUTTER,
- MOVE_OVERHEAT,
- MOVE_ODOR_SLEUTH,
- MOVE_ROCK_TOMB,
- MOVE_SILVER_WIND,
- MOVE_METAL_SOUND,
- MOVE_GRASS_WHISTLE,
- MOVE_TICKLE,
- MOVE_COSMIC_POWER,
- MOVE_WATER_SPOUT,
- MOVE_SIGNAL_BEAM,
- MOVE_SHADOW_PUNCH,
- MOVE_EXTRASENSORY,
- MOVE_SKY_UPPERCUT,
- MOVE_SAND_TOMB,
- MOVE_SHEER_COLD,
- MOVE_MUDDY_WATER,
- MOVE_BULLET_SEED,
- MOVE_AERIAL_ACE,
- MOVE_ICICLE_SPEAR,
- MOVE_IRON_DEFENSE,
- MOVE_BLOCK,
- MOVE_HOWL,
- MOVE_DRAGON_CLAW,
- MOVE_FRENZY_PLANT,
- MOVE_BULK_UP,
- MOVE_BOUNCE,
- MOVE_MUD_SHOT,
- MOVE_POISON_TAIL,
- MOVE_COVET,
- MOVE_VOLT_TACKLE,
- MOVE_MAGICAL_LEAF,
- MOVE_WATER_SPORT,
- MOVE_CALM_MIND,
- MOVE_LEAF_BLADE,
- MOVE_DRAGON_DANCE,
- MOVE_ROCK_BLAST,
- MOVE_SHOCK_WAVE,
- MOVE_WATER_PULSE,
- MOVE_DOOM_DESIRE,
- MOVE_PSYCHO_BOOST,
-};
-
-#endif // GUARD_MOVES_H \ No newline at end of file
diff --git a/include/mystery_event_msg.h b/include/mystery_event_msg.h
new file mode 100644
index 000000000..5523be694
--- /dev/null
+++ b/include/mystery_event_msg.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_MYSTERY_EVENT_MSG_H
+#define GUARD_MYSTERY_EVENT_MSG_H
+
+extern const u8 gOtherText_BerryObtainedDadHasIt[];
+extern const u8 gOtherText_BerryTransformed[];
+extern const u8 gOtherText_BerryAlreadyObtained[];
+extern const u8 gOtherText_SpecialRibbonReceived[];
+extern const u8 gOtherText_DexUpgraded[];
+extern const u8 gOtherText_RareWordAdded[];
+extern const u8 gOtherText_PokeWasSentOver[];
+extern const u8 gOtherText_PartyIsFull[];
+extern const u8 gOtherText_NewTrainerInHoenn[];
+extern const u8 gOtherText_NewAdversaryInBattleTower[];
+extern const u8 gOtherText_DataCannotUseVersion[];
+
+#endif //GUARD_MYSTERY_EVENT_MSG_H
diff --git a/include/new_game.h b/include/new_game.h
index f59154af4..5be7f6265 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -6,7 +6,7 @@ void copy_word_to_mem(u8 *copyTo, u8 *copyFrom);
void InitPlayerTrainerId(void);
void SetDefaultOptions(void);
void ClearPokedexFlags(void);
-void sub_8052DA8(void);
+void ResetContestAndMuseumWinners(void);
void sub_8052DE4(void);
void WarpToTruck(void);
void ClearSav2(void);
diff --git a/include/opponent_constants.h b/include/opponent_constants.h
deleted file mode 100644
index 1829facaa..000000000
--- a/include/opponent_constants.h
+++ /dev/null
@@ -1,702 +0,0 @@
-#ifndef GUARD_OPPONENT_CONSTANTS_H
-#define GUARD_OPPONENT_CONSTANTS_H
-
-enum
-{
- OPPONENT_NONE,
- OPPONENT_ARCHIE_1,
- OPPONENT_GRUNT_1,
- OPPONENT_GRUNT_2,
- OPPONENT_GRUNT_3,
- OPPONENT_GRUNT_4,
- OPPONENT_GRUNT_5,
- OPPONENT_GRUNT_6,
- OPPONENT_GRUNT_7,
- OPPONENT_GRUNT_8,
- OPPONENT_GRUNT_9,
- OPPONENT_GRUNT_10,
- OPPONENT_GRUNT_11,
- OPPONENT_GRUNT_12,
- OPPONENT_GRUNT_13,
- OPPONENT_GRUNT_14,
- OPPONENT_GRUNT_15,
- OPPONENT_GRUNT_16,
- OPPONENT_GRUNT_17,
- OPPONENT_GRUNT_18,
- OPPONENT_GRUNT_19,
- OPPONENT_GRUNT_20,
- OPPONENT_GRUNT_21,
- OPPONENT_GRUNT_22,
- OPPONENT_GRUNT_23,
- OPPONENT_GRUNT_24,
- OPPONENT_GRUNT_25,
- OPPONENT_GRUNT_26,
- OPPONENT_GRUNT_27,
- OPPONENT_ANONYMOUS_1,
- OPPONENT_MATT_1,
- OPPONENT_MATT_2,
- OPPONENT_SHELLY_1,
- OPPONENT_SHELLY_2,
- OPPONENT_ARCHIE_2,
- OPPONENT_ARCHIE_3,
- OPPONENT_DAISY,
- OPPONENT_ROSE_1,
- OPPONENT_LILY,
- OPPONENT_VIOLET,
- OPPONENT_ROSE_2,
- OPPONENT_ROSE_3,
- OPPONENT_ROSE_4,
- OPPONENT_ROSE_5,
- OPPONENT_DUSTY_1,
- OPPONENT_CHIP,
- OPPONENT_FOSTER,
- OPPONENT_DUSTY_2,
- OPPONENT_DUSTY_3,
- OPPONENT_DUSTY_4,
- OPPONENT_DUSTY_5,
- OPPONENT_GABBY_AND_TY_1,
- OPPONENT_GABBY_AND_TY_2,
- OPPONENT_GABBY_AND_TY_3,
- OPPONENT_GABBY_AND_TY_4,
- OPPONENT_GABBY_AND_TY_5,
- OPPONENT_GABBY_AND_TY_6,
- OPPONENT_LOLA_1,
- OPPONENT_CARMEN,
- OPPONENT_GWEN,
- OPPONENT_LOLA_2,
- OPPONENT_LOLA_3,
- OPPONENT_LOLA_4,
- OPPONENT_LOLA_5,
- OPPONENT_RICKY_1,
- OPPONENT_SIMON,
- OPPONENT_CHARLIE,
- OPPONENT_RICKY_2,
- OPPONENT_RICKY_3,
- OPPONENT_RICKY_4,
- OPPONENT_RICKY_5,
- OPPONENT_RANDALL,
- OPPONENT_PARKER,
- OPPONENT_GEORGE,
- OPPONENT_BERKE,
- OPPONENT_CLYDE,
- OPPONENT_VINCENT,
- OPPONENT_LEROY,
- OPPONENT_WILTON_1,
- OPPONENT_EDGAR,
- OPPONENT_ALBERT,
- OPPONENT_SAMUEL,
- OPPONENT_VITO,
- OPPONENT_OWEN,
- OPPONENT_WILTON_2,
- OPPONENT_WILTON_3,
- OPPONENT_WILTON_4,
- OPPONENT_WILTON_5,
- OPPONENT_WARREN,
- OPPONENT_MARY,
- OPPONENT_LORI,
- OPPONENT_JODY,
- OPPONENT_WENDY,
- OPPONENT_ELAINE,
- OPPONENT_BROOKE_1,
- OPPONENT_JENNIFER,
- OPPONENT_HOPE,
- OPPONENT_SHANNON,
- OPPONENT_MICHELLE,
- OPPONENT_CAROLINE,
- OPPONENT_JULIE,
- OPPONENT_BROOKE_2,
- OPPONENT_BROOKE_3,
- OPPONENT_BROOKE_4,
- OPPONENT_BROOKE_5,
- OPPONENT_PATRICIA,
- OPPONENT_KINDRA,
- OPPONENT_TAMMY,
- OPPONENT_VALERIE_1,
- OPPONENT_TASHA,
- OPPONENT_VALERIE_2,
- OPPONENT_VALERIE_3,
- OPPONENT_VALERIE_4,
- OPPONENT_VALERIE_5,
- OPPONENT_CINDY_1,
- OPPONENT_ANONYMOUS_2,
- OPPONENT_BRIANNA_1,
- OPPONENT_CINDY_2,
- OPPONENT_BRIANNA_2,
- OPPONENT_ANETTE,
- OPPONENT_CINDY_3,
- OPPONENT_CINDY_4,
- OPPONENT_CINDY_5,
- OPPONENT_CINDY_6,
- OPPONENT_MELISSA,
- OPPONENT_SHEILA,
- OPPONENT_SHIRLEY,
- OPPONENT_JESSICA_1,
- OPPONENT_CONNIE,
- OPPONENT_BRIDGET,
- OPPONENT_OLIVIA,
- OPPONENT_TIFFANY,
- OPPONENT_JESSICA_2,
- OPPONENT_JESSICA_3,
- OPPONENT_JESSICA_4,
- OPPONENT_JESSICA_5,
- OPPONENT_WINSTON_1,
- OPPONENT_ANONYMOUS_3,
- OPPONENT_GARRET,
- OPPONENT_WINSTON_2,
- OPPONENT_WINSTON_3,
- OPPONENT_WINSTON_4,
- OPPONENT_WINSTON_5,
- OPPONENT_STEVE_1,
- OPPONENT_CHRIS,
- OPPONENT_MARK,
- OPPONENT_KENN,
- OPPONENT_STEVE_2,
- OPPONENT_STEVE_3,
- OPPONENT_STEVE_4,
- OPPONENT_STEVE_5,
- OPPONENT_LUIS,
- OPPONENT_AUSTIN,
- OPPONENT_DOUGLAS,
- OPPONENT_DARRIN,
- OPPONENT_TONY_1,
- OPPONENT_JEROME,
- OPPONENT_MATTHEW,
- OPPONENT_DAVID,
- OPPONENT_SPENCER,
- OPPONENT_ROLAND,
- OPPONENT_CODY,
- OPPONENT_STAN,
- OPPONENT_BARRY,
- OPPONENT_DEAN,
- OPPONENT_RODNEY,
- OPPONENT_RICHARD,
- OPPONENT_HERMAN,
- OPPONENT_ANONYMOUS_4,
- OPPONENT_GILBERT,
- OPPONENT_FRANKLIN,
- OPPONENT_DANNY,
- OPPONENT_JACK,
- OPPONENT_DUDLEY,
- OPPONENT_CHAD,
- OPPONENT_TONY_2,
- OPPONENT_TONY_3,
- OPPONENT_TONY_4,
- OPPONENT_TONY_5,
- OPPONENT_HIDEKI,
- OPPONENT_HITOSHI,
- OPPONENT_KIYO,
- OPPONENT_KOICHI,
- OPPONENT_NOB_1,
- OPPONENT_NOB_2,
- OPPONENT_NOB_3,
- OPPONENT_NOB_4,
- OPPONENT_NOB_5,
- OPPONENT_YUJI,
- OPPONENT_DAISUKE,
- OPPONENT_ATSUSHI,
- OPPONENT_KIRK,
- OPPONENT_SCOTT,
- OPPONENT_HARVEY,
- OPPONENT_SHAWN,
- OPPONENT_RANDY,
- OPPONENT_DALTON_1,
- OPPONENT_DALTON_2,
- OPPONENT_DALTON_3,
- OPPONENT_DALTON_4,
- OPPONENT_DALTON_5,
- OPPONENT_COLE,
- OPPONENT_FLINT,
- OPPONENT_AXLE,
- OPPONENT_JAKE,
- OPPONENT_ANDY,
- OPPONENT_BERNIE_1,
- OPPONENT_BERNIE_2,
- OPPONENT_BERNIE_3,
- OPPONENT_BERNIE_4,
- OPPONENT_BERNIE_5,
- OPPONENT_DREW,
- OPPONENT_CLIFF,
- OPPONENT_LARRY,
- OPPONENT_SHANE,
- OPPONENT_JUSTIN,
- OPPONENT_ETHAN_1,
- OPPONENT_JEFF,
- OPPONENT_TRAVIS,
- OPPONENT_ETHAN_2,
- OPPONENT_ETHAN_3,
- OPPONENT_ETHAN_4,
- OPPONENT_ETHAN_5,
- OPPONENT_BRENT,
- OPPONENT_DONALD,
- OPPONENT_TAYLOR,
- OPPONENT_BRANDON_1,
- OPPONENT_DEREK,
- OPPONENT_BRANDON_2,
- OPPONENT_BRANDON_3,
- OPPONENT_BRANDON_4,
- OPPONENT_BRANDON_5,
- OPPONENT_EDWARD,
- OPPONENT_PRESTON,
- OPPONENT_VIRGIL,
- OPPONENT_FRITZ,
- OPPONENT_WILLIAM,
- OPPONENT_JOSHUA,
- OPPONENT_CAMERON_1,
- OPPONENT_CAMERON_2,
- OPPONENT_CAMERON_3,
- OPPONENT_CAMERON_4,
- OPPONENT_CAMERON_5,
- OPPONENT_JACLYN,
- OPPONENT_HANNAH,
- OPPONENT_SAMANTHA,
- OPPONENT_MAURA,
- OPPONENT_KAYLA,
- OPPONENT_ALEXIS,
- OPPONENT_JACKI_1,
- OPPONENT_JACKI_2,
- OPPONENT_JACKI_3,
- OPPONENT_JACKI_4,
- OPPONENT_JACKI_5,
- OPPONENT_WALTER_1,
- OPPONENT_TUCKER,
- OPPONENT_THOMAS,
- OPPONENT_WALTER_2,
- OPPONENT_WALTER_3,
- OPPONENT_WALTER_4,
- OPPONENT_WALTER_5,
- OPPONENT_SIDNEY,
- OPPONENT_PHOEBE,
- OPPONENT_GLACIA,
- OPPONENT_DRAKE,
- OPPONENT_ROXANNE,
- OPPONENT_BRAWLY,
- OPPONENT_WATTSON,
- OPPONENT_FLANNERY,
- OPPONENT_NORMAN,
- OPPONENT_WINONA,
- OPPONENT_TATE_AND_LIZA,
- OPPONENT_WALLACE,
- OPPONENT_JERRY_1,
- OPPONENT_TED,
- OPPONENT_PAUL,
- OPPONENT_JERRY_2,
- OPPONENT_JERRY_3,
- OPPONENT_JERRY_4,
- OPPONENT_JERRY_5,
- OPPONENT_KAREN_1,
- OPPONENT_GEORGIA,
- OPPONENT_KAREN_2,
- OPPONENT_KAREN_3,
- OPPONENT_KAREN_4,
- OPPONENT_KAREN_5,
- OPPONENT_KATE_AND_JOY,
- OPPONENT_ANNA_AND_MEG_1,
- OPPONENT_ANNA_AND_MEG_2,
- OPPONENT_ANNA_AND_MEG_3,
- OPPONENT_ANNA_AND_MEG_4,
- OPPONENT_ANNA_AND_MEG_5,
- OPPONENT_VICTOR,
- OPPONENT_MIGUEL_1,
- OPPONENT_COLTON,
- OPPONENT_MIGUEL_2,
- OPPONENT_MIGUEL_3,
- OPPONENT_MIGUEL_4,
- OPPONENT_MIGUEL_5,
- OPPONENT_VICTORIA,
- OPPONENT_VANESSA,
- OPPONENT_MARISSA,
- OPPONENT_ISABEL_1,
- OPPONENT_ISABEL_2,
- OPPONENT_ISABEL_3,
- OPPONENT_ISABEL_4,
- OPPONENT_ISABEL_5,
- OPPONENT_TIMOTHY_1,
- OPPONENT_TIMOTHY_2,
- OPPONENT_TIMOTHY_3,
- OPPONENT_TIMOTHY_4,
- OPPONENT_TIMOTHY_5,
- OPPONENT_VICKY,
- OPPONENT_SHELBY_1,
- OPPONENT_SHELBY_2,
- OPPONENT_SHELBY_3,
- OPPONENT_SHELBY_4,
- OPPONENT_SHELBY_5,
- OPPONENT_CALVIN_1,
- OPPONENT_BILLY,
- OPPONENT_JOSH,
- OPPONENT_TOMMY,
- OPPONENT_JOEY,
- OPPONENT_BEN,
- OPPONENT_ANONYMOUS_5,
- OPPONENT_KEVIN,
- OPPONENT_NEAL,
- OPPONENT_DILLON,
- OPPONENT_CALVIN_2,
- OPPONENT_CALVIN_3,
- OPPONENT_CALVIN_4,
- OPPONENT_CALVIN_5,
- OPPONENT_EDDIE,
- OPPONENT_ALLEN,
- OPPONENT_TIMMY,
- OPPONENT_STEVEN,
- OPPONENT_ANDREW,
- OPPONENT_IVAN,
- OPPONENT_CLAUDE,
- OPPONENT_ELLIOT_1,
- OPPONENT_NED,
- OPPONENT_DALE,
- OPPONENT_NOLAN,
- OPPONENT_BARNY,
- OPPONENT_WADE,
- OPPONENT_CARTER,
- OPPONENT_ELLIOT_2,
- OPPONENT_ELLIOT_3,
- OPPONENT_ELLIOT_4,
- OPPONENT_ELLIOT_5,
- OPPONENT_RONALD,
- OPPONENT_JACOB,
- OPPONENT_ANTHONY,
- OPPONENT_BENJAMIN_1,
- OPPONENT_BENJAMIN_2,
- OPPONENT_BENJAMIN_3,
- OPPONENT_BENJAMIN_4,
- OPPONENT_BENJAMIN_5,
- OPPONENT_ABIGAIL_1,
- OPPONENT_JASMINE,
- OPPONENT_ABIGAIL_2,
- OPPONENT_ABIGAIL_3,
- OPPONENT_ABIGAIL_4,
- OPPONENT_ABIGAIL_5,
- OPPONENT_DYLAN_1,
- OPPONENT_DYLAN_2,
- OPPONENT_DYLAN_3,
- OPPONENT_DYLAN_4,
- OPPONENT_DYLAN_5,
- OPPONENT_MARIA_1,
- OPPONENT_MARIA_2,
- OPPONENT_MARIA_3,
- OPPONENT_MARIA_4,
- OPPONENT_MARIA_5,
- OPPONENT_CALEB,
- OPPONENT_ANONYMOUS_6,
- OPPONENT_ISAIAH_1,
- OPPONENT_ANONYMOUS_7,
- OPPONENT_CHASE,
- OPPONENT_ISAIAH_2,
- OPPONENT_ISAIAH_3,
- OPPONENT_ISAIAH_4,
- OPPONENT_ISAIAH_5,
- OPPONENT_ANONYMOUS_8,
- OPPONENT_CONNOR,
- OPPONENT_ANONYMOUS_9,
- OPPONENT_KATELYN_1,
- OPPONENT_ALLISON,
- OPPONENT_KATELYN_2,
- OPPONENT_KATELYN_3,
- OPPONENT_KATELYN_4,
- OPPONENT_KATELYN_5,
- OPPONENT_NICOLAS_1,
- OPPONENT_NICOLAS_2,
- OPPONENT_NICOLAS_3,
- OPPONENT_NICOLAS_4,
- OPPONENT_NICOLAS_5,
- OPPONENT_AARON,
- OPPONENT_PERRY,
- OPPONENT_HUGH,
- OPPONENT_PHIL,
- OPPONENT_JARED,
- OPPONENT_ANONYMOUS_10,
- OPPONENT_TANNER,
- OPPONENT_WILL,
- OPPONENT_COLIN,
- OPPONENT_ROBERT_1,
- OPPONENT_BENNY,
- OPPONENT_CHESTER,
- OPPONENT_ROBERT_2,
- OPPONENT_ROBERT_3,
- OPPONENT_ROBERT_4,
- OPPONENT_ROBERT_5,
- OPPONENT_ALEX,
- OPPONENT_BECK,
- OPPONENT_YASU,
- OPPONENT_TAKASHI,
- OPPONENT_MAKOTO,
- OPPONENT_HIDEO_1,
- OPPONENT_LAO_1,
- OPPONENT_LUNG,
- OPPONENT_LAO_2,
- OPPONENT_LAO_3,
- OPPONENT_LAO_4,
- OPPONENT_LAO_5,
- OPPONENT_TESSA,
- OPPONENT_LAURA,
- OPPONENT_CYNDY_1,
- OPPONENT_CORA,
- OPPONENT_JILL,
- OPPONENT_CYNDY_2,
- OPPONENT_CYNDY_3,
- OPPONENT_CYNDY_4,
- OPPONENT_CYNDY_5,
- OPPONENT_MADELINE_1,
- OPPONENT_CLARISSA,
- OPPONENT_ANGELICA,
- OPPONENT_MADELINE_2,
- OPPONENT_MADELINE_3,
- OPPONENT_MADELINE_4,
- OPPONENT_MADELINE_5,
- OPPONENT_BEVERLY,
- OPPONENT_DAWN,
- OPPONENT_NICOLE,
- OPPONENT_DENISE,
- OPPONENT_BETH,
- OPPONENT_TARA,
- OPPONENT_MISSY,
- OPPONENT_ALICE,
- OPPONENT_JENNY_1,
- OPPONENT_GRACE,
- OPPONENT_TANYA,
- OPPONENT_SHARON,
- OPPONENT_NIKKI,
- OPPONENT_BRENDA,
- OPPONENT_KATIE,
- OPPONENT_SUSIE,
- OPPONENT_KARA,
- OPPONENT_DANA,
- OPPONENT_ERIN,
- OPPONENT_DEBRA,
- OPPONENT_LINDA,
- OPPONENT_KAYLEE,
- OPPONENT_LAUREL,
- OPPONENT_DARCY,
- OPPONENT_JENNY_2,
- OPPONENT_JENNY_3,
- OPPONENT_JENNY_4,
- OPPONENT_JENNY_5,
- OPPONENT_HEIDI,
- OPPONENT_BECKY,
- OPPONENT_CAROL,
- OPPONENT_NANCY,
- OPPONENT_MARTHA,
- OPPONENT_DIANA_1,
- OPPONENT_NINA,
- OPPONENT_IRENE,
- OPPONENT_DIANA_2,
- OPPONENT_DIANA_3,
- OPPONENT_DIANA_4,
- OPPONENT_DIANA_5,
- OPPONENT_AMY_AND_LIV_1,
- OPPONENT_AMY_AND_LIV_2,
- OPPONENT_GINA_AND_MIA_1,
- OPPONENT_MIU_AND_YUKI,
- OPPONENT_AMY_AND_LIV_3,
- OPPONENT_GINA_AND_MIA_2,
- OPPONENT_AMY_AND_LIV_4,
- OPPONENT_AMY_AND_LIV_5,
- OPPONENT_AMY_AND_LIV_6,
- OPPONENT_HUEY,
- OPPONENT_EDMOND,
- OPPONENT_ERNEST_1,
- OPPONENT_DWAYNE,
- OPPONENT_PHILLIP,
- OPPONENT_LEONARD,
- OPPONENT_DUNCAN,
- OPPONENT_ERNEST_2,
- OPPONENT_ERNEST_3,
- OPPONENT_ERNEST_4,
- OPPONENT_ERNEST_5,
- OPPONENT_ANONYMOUS_11,
- OPPONENT_ANONYMOUS_12,
- OPPONENT_ANONYMOUS_13,
- OPPONENT_SONNY,
- OPPONENT_DONOVAN,
- OPPONENT_GERALD,
- OPPONENT_KELVIN,
- OPPONENT_KODY,
- OPPONENT_TEVIN,
- OPPONENT_DAMON,
- OPPONENT_PABLO,
- OPPONENT_EDWIN_1,
- OPPONENT_HECTOR_1,
- OPPONENT_HECTOR_2,
- OPPONENT_EDWIN_2,
- OPPONENT_EDWIN_3,
- OPPONENT_EDWIN_4,
- OPPONENT_EDWIN_5,
- OPPONENT_WALLY_1,
- OPPONENT_BRENDAN_1,
- OPPONENT_BRENDAN_2,
- OPPONENT_BRENDAN_3,
- OPPONENT_BRENDAN_4,
- OPPONENT_BRENDAN_5,
- OPPONENT_BRENDAN_6,
- OPPONENT_BRENDAN_7,
- OPPONENT_BRENDAN_8,
- OPPONENT_BRENDAN_9,
- OPPONENT_MAY_1,
- OPPONENT_MAY_2,
- OPPONENT_MAY_3,
- OPPONENT_MAY_4,
- OPPONENT_MAY_5,
- OPPONENT_MAY_6,
- OPPONENT_MAY_7,
- OPPONENT_MAY_8,
- OPPONENT_MAY_9,
- OPPONENT_ISAAC_1,
- OPPONENT_RILEY,
- OPPONENT_AIDAN,
- OPPONENT_ISAAC_2,
- OPPONENT_ISAAC_3,
- OPPONENT_ISAAC_4,
- OPPONENT_ISAAC_5,
- OPPONENT_LYDIA_1,
- OPPONENT_ALEXIA,
- OPPONENT_DANIELLE,
- OPPONENT_LYDIA_2,
- OPPONENT_LYDIA_3,
- OPPONENT_LYDIA_4,
- OPPONENT_LYDIA_5,
- OPPONENT_JACKSON_1,
- OPPONENT_CARLOS,
- OPPONENT_SEBASTIAN,
- OPPONENT_JACKSON_2,
- OPPONENT_JACKSON_3,
- OPPONENT_JACKSON_4,
- OPPONENT_JACKSON_5,
- OPPONENT_CATHERINE_1,
- OPPONENT_JENNA,
- OPPONENT_SOPHIA,
- OPPONENT_CATHERINE_2,
- OPPONENT_CATHERINE_3,
- OPPONENT_CATHERINE_4,
- OPPONENT_CATHERINE_5,
- OPPONENT_MAXIE_1,
- OPPONENT_GRUNT_28,
- OPPONENT_GRUNT_29,
- OPPONENT_GRUNT_30,
- OPPONENT_GRUNT_31,
- OPPONENT_GRUNT_32,
- OPPONENT_GRUNT_33,
- OPPONENT_GRUNT_34,
- OPPONENT_GRUNT_35,
- OPPONENT_GRUNT_36,
- OPPONENT_GRUNT_37,
- OPPONENT_GRUNT_38,
- OPPONENT_GRUNT_39,
- OPPONENT_GRUNT_40,
- OPPONENT_GRUNT_41,
- OPPONENT_GRUNT_42,
- OPPONENT_GRUNT_43,
- OPPONENT_GRUNT_44,
- OPPONENT_GRUNT_45,
- OPPONENT_GRUNT_46,
- OPPONENT_GRUNT_47,
- OPPONENT_GRUNT_48,
- OPPONENT_GRUNT_49,
- OPPONENT_GRUNT_50,
- OPPONENT_GRUNT_51,
- OPPONENT_GRUNT_52,
- OPPONENT_GRUNT_53,
- OPPONENT_GRUNT_54,
- OPPONENT_ANONYMOUS_14,
- OPPONENT_ANONYMOUS_15,
- OPPONENT_TABITHA_1,
- OPPONENT_TABITHA_2,
- OPPONENT_ANONYMOUS_16,
- OPPONENT_COURTNEY_1,
- OPPONENT_COURTNEY_2,
- OPPONENT_MAXIE_2,
- OPPONENT_MAXIE_3,
- OPPONENT_TIANA,
- OPPONENT_HALEY_1,
- OPPONENT_JANICE,
- OPPONENT_VIVI,
- OPPONENT_HALEY_2,
- OPPONENT_HALEY_3,
- OPPONENT_HALEY_4,
- OPPONENT_HALEY_5,
- OPPONENT_SALLY,
- OPPONENT_ROBIN,
- OPPONENT_ANDREA,
- OPPONENT_CRISSY,
- OPPONENT_RICK,
- OPPONENT_LYLE,
- OPPONENT_JOSE,
- OPPONENT_DOUG,
- OPPONENT_GREG,
- OPPONENT_KENT,
- OPPONENT_JAMES_1,
- OPPONENT_JAMES_2,
- OPPONENT_JAMES_3,
- OPPONENT_JAMES_4,
- OPPONENT_JAMES_5,
- OPPONENT_BRICE,
- OPPONENT_TRENT_1,
- OPPONENT_LENNY,
- OPPONENT_LUCAS_1,
- OPPONENT_ALAN,
- OPPONENT_CLARK,
- OPPONENT_ERIC,
- OPPONENT_LUCAS_2,
- OPPONENT_MIKE_1,
- OPPONENT_MIKE_2,
- OPPONENT_TRENT_2,
- OPPONENT_TRENT_3,
- OPPONENT_TRENT_4,
- OPPONENT_TRENT_5,
- OPPONENT_DEZ_AND_LUKE,
- OPPONENT_LEA_AND_JED,
- OPPONENT_LOIS_AND_HAL_1,
- OPPONENT_LOIS_AND_HAL_2,
- OPPONENT_LOIS_AND_HAL_3,
- OPPONENT_LOIS_AND_HAL_4,
- OPPONENT_LOIS_AND_HAL_5,
- OPPONENT_JOHANNA,
- OPPONENT_ZANE,
- OPPONENT_VIVIAN,
- OPPONENT_SADIE,
- OPPONENT_HIDEO_2,
- OPPONENT_KEIGO,
- OPPONENT_TSUNAO,
- OPPONENT_TERRELL,
- OPPONENT_KYLEE,
- OPPONENT_WALLY_2,
- OPPONENT_WALLY_3,
- OPPONENT_WALLY_4,
- OPPONENT_WALLY_5,
- OPPONENT_WALLY_6,
- OPPONENT_BRENDAN_10,
- OPPONENT_BRENDAN_11,
- OPPONENT_BRENDAN_12,
- OPPONENT_MAY_10,
- OPPONENT_MAY_11,
- OPPONENT_MAY_12,
- OPPONENT_JONAH,
- OPPONENT_HENRY,
- OPPONENT_ROGER,
- OPPONENT_ALEXA,
- OPPONENT_RUBEN,
- OPPONENT_KOJI,
- OPPONENT_WAYNE,
- OPPONENT_BYRON,
- OPPONENT_REED,
- OPPONENT_TISHA,
- OPPONENT_TORI_AND_TIA,
- OPPONENT_KIM_AND_IRIS,
- OPPONENT_TYRA_AND_IVY,
- OPPONENT_MEL_AND_PAUL,
- OPPONENT_JOHN_AND_JAY_1,
- OPPONENT_JOHN_AND_JAY_2,
- OPPONENT_JOHN_AND_JAY_3,
- OPPONENT_JOHN_AND_JAY_4,
- OPPONENT_JOHN_AND_JAY_5,
- OPPONENT_RELI_AND_IAN,
- OPPONENT_RITA_AND_SAM_1,
- OPPONENT_RITA_AND_SAM_2,
- OPPONENT_RITA_AND_SAM_3,
- OPPONENT_RITA_AND_SAM_4,
- OPPONENT_RITA_AND_SAM_5,
- OPPONENT_LISA_AND_RAY,
- OPPONENT_EUGENE,
-};
-
-#endif // GUARD_OPPONENT_CONSTANTS_H
diff --git a/include/rom4.h b/include/overworld.h
index daccad7e9..0954f1b63 100644
--- a/include/rom4.h
+++ b/include/overworld.h
@@ -22,42 +22,42 @@ struct UCoords32
u32 x, y;
};
-extern struct UCoords32 gUnknown_0821664C[];
+extern const struct UCoords32 gUnknown_0821664C[];
extern void (*gFieldCallback)(void);
// sub_8052F5C
-void flag_var_implications_of_teleport_(void);
-void new_game(void);
-void sub_8053014(void);
-void sub_8053050(void);
+void Overworld_ResetStateAfterFly(void);
+void Overworld_ResetStateAfterTeleport(void);
+void Overworld_ResetStateAfterDigEscRope(void);
+void Overworld_ResetStateAfterWhiteOut(void);
// sub_805308C
void ResetGameStats(void);
void IncrementGameStat(u8 index);
u32 GetGameStat(u8 index);
void SetGameStat(u8, u32);
-// sub_8053154
-// sub_8053198
-void update_saveblock1_field_object_coords(u8, s16, s16);
-void update_saveblock1_field_object_movement_behavior(u8, u8);
+// LoadMapObjTemplatesFromHeader
+// LoadSaveblockMapObjScripts
+void Overworld_SetMapObjTemplateCoords(u8, s16, s16);
+void Overworld_SetMapObjTemplateMovementType(u8, u8);
// mapdata_load_assets_to_gpu_and_full_redraw
// get_mapdata_header
-// warp_shift
-// warp_set
+// ApplyCurrentWarp
+// SetWarpData
// warp_data_is_not_neg_1
-struct MapHeader * const get_mapheader_by_bank_and_number(u16 mapGroup, u16 mapNum);
+struct MapHeader * const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum);
struct MapHeader * const warp1_get_mapheader(void);
// set_current_map_header_from_sav1_save_old_name
-// sub_805338C
+// LoadSaveblockMapHeader
// sub_80533CC
void warp_in(void);
-void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId);
void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId);
void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
void sub_8053538(u8);
-void sub_8053570(void);
-void sub_8053588(u8);
+void Overworld_SetWarpDestToLastHealLoc(void);
+void Overworld_SetHealLocationWarp(u8);
void sub_80535C4(s16 a1, s16 a2);
void sub_805363C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void sub_8053678(void);
@@ -69,7 +69,7 @@ void sub_8053720(s16, s16);
// unref_sub_8053790
void sub_80537CC(u8);
void gpu_sync_bg_hide();
-// sub_8053818
+// GetMapConnection
// sub_8053850
bool8 sub_80538B0(u16 x, u16 y);
bool8 sub_80538D0(u16 x, u16 y);
@@ -81,37 +81,37 @@ void walkrun_find_lowest_active_bit_in_bitfield(void);
u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3);
u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8);
u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void);
-bool32 IsBikingAllowedByMap(void);
-void sub_8053C98(void);
-void sub_8053CE4(s32 a1);
-u8 sav1_get_flash_used_on_map(void);
+bool32 Overworld_IsBikingAllowed(void);
+void SetDefaultFlashLevel(void);
+void Overworld_SetFlashLevel(s32 a1);
+u8 Overworld_GetFlashLevel(void);
void sub_8053D14(u16);
// sub_8053D30
// sub_8053D6C
-// sub_8053D9C
-// sav1_map_get_music
-// warp1_target_get_music
-// call_map_music_set_to_zero
-void sub_8053E90(void);
-void sav1_set_battle_music_maybe(u16);
-void sav1_reset_battle_music_maybe(void);
+// GetLocationMusic
+// GetCurrLocationDefaultMusic
+// GetWarpDestinationMusic
+// Overworld_ResetMapMusic
+void Overworld_PlaySpecialMapMusic(void);
+void Overworld_SetSavedMusic(u16);
+void Overworld_ClearSavedMusic(void);
void sub_8053F0C(void);
-void sub_8053F84(void);
-void sub_8053FB0(u16);
-// is_warp1_light_level_8_or_9
+void Overworld_ChangeMusicToDefault(void);
+void Overworld_ChangeMusicTo(u16);
+// GetMapMusicFadeoutSpeed
void sub_8053FF8(void);
bool8 sub_8054034(void);
-void sub_8054044(void);
-// sub_8054050
-void sub_80540D0(s16 *, u16 *);
-void sub_8054164(void);
-u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
-// get_map_light_level_from_warp
-u8 sav1_map_get_light_level(void);
-u8 get_map_light_from_warp0(void);
-bool8 is_light_level_1_2_3_5_or_6(u8 a1);
-bool8 is_light_level_1_2_3_or_6(u8 a1);
-u8 is_light_level_8_or_9(u8);
+void Overworld_FadeOutMapMusic(void);
+// PlayAmbientCry
+void UpdateAmbientCry(s16 *, u16 *);
+void ChooseAmbientCrySpecies(void);
+u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum);
+// GetMapTypeByWarpData
+u8 Overworld_GetMapTypeOfSaveblockLocation(void);
+u8 get_map_type_from_warp0(void);
+bool8 is_map_type_1_2_3_5_or_6(u8 a1);
+bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 a1);
+u8 Overworld_MapTypeIsIndoors(u8);
// unref_sub_8054260
u8 sav1_map_get_name();
// sav1_map_get_battletype
@@ -119,8 +119,8 @@ u8 sav1_map_get_name();
bool32 is_c1_link_related_active(void);
// c1_overworld_normal
// c1_overworld
-// c2_overworld_basic
-void sub_8054398(void);
+// OverworldBasic
+void CB2_OverworldBasic(void);
void c2_overworld(void);
// set_callback1
// sub_80543DC
@@ -233,5 +233,6 @@ u8 npc_something3(u8, u8);
u8 LinkPlayerDetectCollision(u8, u8, s16, s16);
void CreateLinkPlayerSprite(u8);
void SpriteCB_LinkPlayer(struct Sprite *);
+void sub_805465C(void);
#endif // GUARD_ROM4_H
diff --git a/include/party_menu.h b/include/party_menu.h
index 9ce476869..3998054da 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -1,36 +1,53 @@
#ifndef GUARD_PARTY_MENU_H
#define GUARD_PARTY_MENU_H
+#include "menu.h"
#include "task.h"
-struct PartyMenuItem
+
+enum
{
- const u8 *text;
- TaskFunc func;
+ PARTY_MENU_TYPE_STANDARD,
+ PARTY_MENU_TYPE_BATTLE,
+ PARTY_MENU_TYPE_CONTEST,
+ PARTY_MENU_TYPE_IN_GAME_TRADE,
+ PARTY_MENU_TYPE_BATTLE_TOWER,
+ PARTY_MENU_TYPE_LINK_MULTI_BATTLE,
+ PARTY_MENU_TYPE_DAYCARE,
+ PARTY_MENU_TYPE_MOVE_TUTOR,
+};
+
+// The party menu screen is presented differently depending on which menu layout is set.
+enum
+{
+ PARTY_MENU_LAYOUT_STANDARD,
+ PARTY_MENU_LAYOUT_DOUBLE_BATTLE,
+ PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE,
+ PARTY_MENU_LAYOUT_MULTI_BATTLE,
};
struct PartyPopupMenu
{
- u8 unk0;
- u8 unk1;
- const u8 *unk4;
+ /*0x0*/u8 numChoices; // number of menu choices
+ /*0x1*/u8 width; // menu width (number of characters it can fit horizontally)
+ /*0x4*/const u8 *items; // menu item ids (ids for a MenuAction2 array)
};
// TODO: Unify these two structs
-#define DATA_COUNT (6)
struct Unk201B000
{
- //u8 filler0[0x260];
struct Pokemon unk0[6];
- u8 filler258[1];
- u8 unk259;
- u8 filler25A[6];
- u8 unk260;
+ u8 menuType;
+ u8 promptTextId;
+ u8 filler25A[2];
+ TaskFunc menuHandler;
+ u8 menuHandlerTaskId;
u8 unk261;
u8 unk262;
u8 unk263;
- s16 unk264[DATA_COUNT * 2]; // This may be a union
+ // Stat growth upon level-up. First 6 bytes = old stats, Second 6 bytes = new stats.
+ s16 statGrowths[NUM_STATS * 2];
u8 filler27C[2];
s16 unk27E;
s16 unk280;
@@ -40,77 +57,111 @@ struct Unk201B000
struct Struct201B000
{
u8 filler0[0x259];
- u8 unk259;
+ u8 promptTextId;
u8 filler25A[6];
- u8 unk260;
+ u8 menuHandlerTaskId;
u8 unk261;
u8 unk262;
- s16 unk264;
- s16 unk266;
- u8 filler268[10];
+ s16 setupState;
+ s16 monIndex;
+ s16 unk268;
+ u8 filler26A[8];
u16 unk272;
u8 filler274[14];
u16 unk282;
};
-extern u8 ewram[];
-#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
-#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000))
-#define EWRAM_1B000 ewram1B000_alt
+struct Unk2001000
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ s16 unk8;
+ s16 unkA;
+ TaskFunc unkC;
+ u16 array[53561];
+};
-void sub_806AEDC(void);
-void sub_806AF4C();
-void OpenPartyMenu(u8, u8);
-void OpenPartyMenu();
-u8 sub_806B124(void);
-u8 IsLinkDoubleBattle(void);
-u8 sub_806B58C(u8);
-u8 sub_806B58C(u8);
+struct UnknownPokemonStruct2
+{
+ /*0x00*/ u16 species;
+ /*0x02*/ u16 heldItem;
+ /*0x04*/ u8 nickname[11];
+ /*0x0F*/ u8 level;
+ /*0x10*/ u16 hp;
+ /*0x12*/ u16 maxhp;
+ /*0x14*/ u32 status;
+ /*0x18*/ u32 personality;
+ /*0x1C*/ u8 gender;
+ /*0x1D*/ u8 language;
+};
+
+void CB2_PartyMenuMain(void);
+void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed);
+void SetPartyMenuSettings(u8 menuType, u8 battleTypeFlags, TaskFunc menuHandlerFunc, u8 textId);
+void OpenPartyMenu(u8 menuType, u8 battleFlags);
+bool8 InitPartyMenu(void);
+bool8 IsLinkDoubleBattle(void);
+u8 DrawPartyMonBackground(u8);
+void sub_806B908(void);
void sub_806BC3C(u8, u8);
+void sub_806BCE8(void);
u8 sub_806BD58(u8, u8);
u8 sub_806BD58(u8, u8);
-u16 sub_806BD80(); // undefined args in battle_party_menu.c
-void task_pc_turn_off();
-void sub_806BF74();
-void sub_806C994();
-u8 sub_806CA38(u8);
-void sub_806CB74(u8 taskId);
+u16 HandleDefaultPartyMenuInput(u8 taskId);
+u16 HandleBattleTowerPartyMenuInput(u8 taskId);
+void task_pc_turn_off(const u8 *a, u8 b);
+void ChangePartyMenuSelection(u8 taskId, s8 directionPressed);
+void SelectBattleTowerOKButton(u8 taskId);
+void sub_806C994(u8 taskId, u8 b);
+u8 sub_806CA38(u8 taskID);
+void HandlePartyMenuSwitchPokemonInput(u8 taskId);
void sub_806CCE4(void);
void sub_806CD44(u8 taskId);
-void sub_806D538();
-void sub_806D538();
-void sub_806D538();
+void sub_806D3B4(u8 taskId, u16 species1, u16 species2);
+void sub_806D4AC(u8 taskId, u16 species, u8 c);
+void sub_806D50C(u8 taskId, u8 monIndex);
+void PrintPartyMenuPromptText(u8 textId, u8 b);
void sub_806D5A4(void);
-void SetMonIconAnim();
-void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *);
-void LoadHeldItemIconGraphics(void);
+void SetMonIconAnim(u8 spriteId, struct Pokemon *pokemon);
+void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 c, struct Pokemon *pokemon);
+void TryCreatePartyMenuMonIcon(u8 a, u8 monIndex, struct Pokemon *pokemon);
void LoadHeldItemIconGraphics(void);
-void CreateHeldItemIcons_806DC34(); // undefined args
-void CreateHeldItemIcons_806DC34();
-u8 GetMonIconSpriteId_maybe();
-void SetHeldItemIconVisibility();
-void TryPrintPartyMenuMonNickname();
+void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c);
+void SetMonIconSpriteId(u8 taskId, u8 monIndex, u8 spriteId);
+void CreateHeldItemIcon_806DCD4(u8 taskId, u8 monIndex, u16 item);
+void CreateHeldItemIcons_806DC34(u8 taskId);
+void CreateHeldItemIcons(u8 *a, u8 *b, u8 c);
+void SetHeldItemIconVisibility(u8 a, u8 monIndex);
+void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer);
+void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon);
void PrintPartyMenuMonNicknames(void);
-void PrintPartyMenuMonNicknames(void);
-void GetMonNickname(struct Pokemon *mon, u8 *nickname);
-void PartyMenuClearLevelStatusTilemap();
-void PartyMenuPrintMonLevelOrStatus();
-void PartyMenuPrintMonsLevelOrStatus(void);
+void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon);
+u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer);
+void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status);
+void PartyMenuDoPrintLevel(u8 monIndex, u8 b, u8 level);
+void PartyMenuPrintLevel(u8 monIndex, u8 b, struct Pokemon *pokemon);
+void PartyMenuPrintMonLevelOrStatus(u8 monIndex, struct Pokemon *pokemon);
void PartyMenuPrintMonsLevelOrStatus(void);
-void PartyMenuDoPrintHP(u8, int, u16, u16);
+void PartyMenuDoPrintGenderIcon(u16 species, u8 gender, u8 c, u8 monIndex, u8 *nickname);
+void PartyMenuPrintGenderIcon(u8 monIndex, u8 b, struct Pokemon *pokemon);
+void PartyMenuDoPrintHP(u8 monIndex, u8 b, u16 currentHP, u16 maxHP);
void PartyMenuTryPrintMonsHP(void);
void nullsub_13(void);
+void PartyMenuDoDrawHPBar(u8 monIndex, u8 b, u16 currentHP, u16 maxHP);
+void PartyMenuDrawHPBar(u8 monIndex, u8 b, struct Pokemon *pokemon);
+void PartyMenuTryDrawHPBar(u8 monIndex, struct Pokemon *pokemon);
void PartyMenuDrawHPBars(void);
-void sub_806E6F0();
-void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int);
-void sub_806E7D0(u8, const struct PartyPopupMenu *);
-TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8);
-void sub_8070968();
-void sub_8070A20();
-void Task_RareCandy3(u8);
-void sub_8070C54();
-void DoEvolutionStoneItemEffect(u8, u16, TaskFunc);
-u8 GetItemEffectType();
+void SwapPokemon(struct Pokemon *a, struct Pokemon *b);
+void SetPartyPopupMenuOffsets(u8 menuIndex, u8 *left, u8 *top, const struct PartyPopupMenu *menu);
+void ShowPartyPopupMenu(u8 menuIndex, const struct PartyPopupMenu *menu, const struct MenuAction2 *menuActions, u8 cursorPos);
+void ClosePartyPopupMenu(u8 index, const struct PartyPopupMenu *menu);
+TaskFunc PartyMenuGetPopupMenuFunc(u8 menuIndex, const struct PartyPopupMenu *menus, const struct MenuAction2 *menuActions, u8 itemIndex);
u8 sub_806E834(const u8 *message, u8 arg1);
void sub_806E8D0(u8 taskId, u16 b, TaskFunc c);
void party_menu_link_mon_held_item_object(u8);
@@ -150,6 +201,21 @@ void DoPPUpItemEffect(u8, u16, TaskFunc);
void DoRareCandyItemEffect(u8, u16, TaskFunc);
void Task_RareCandy1(u8);
void Task_RareCandy2(u8);
-void sub_8070848(u8 taskId);
+void PrintStatGrowthsInLevelUpWindow(u8 taskId);
+void PrintNewStatsInLevelUpWindow(u8 taskId);
+void RedrawPokemonInfoInMenu(u8, struct Pokemon *);
+void Task_RareCandy3(u8);
+void TeachMonMoveInPartyMenu(u8);
+void DoEvolutionStoneItemEffect(u8 taskId, u16 evolutionStoneItem, TaskFunc c);
+u8 GetItemEffectType(u16 item);
+void SetupDefaultPartyMenuSwitchPokemon(u8 taskId);
+void sub_806CD5C(u8 taskId);
+void DoTakeMail(u8 taskId, TaskFunc func);
+void PartyMenuTryGiveMonHeldItem_806ECE8(u8 taskId, TaskFunc func);
+void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func);
+void sub_806D668(u8 monIndex);
+void TaughtMove(u8 taskId);
+void StopTryingToTeachMove_806F588(u8 taskId);
+bool8 IsHMMove(u16 move);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/player_pc.h b/include/player_pc.h
index 8debeda88..625155b57 100644
--- a/include/player_pc.h
+++ b/include/player_pc.h
@@ -13,13 +13,14 @@
#define SWAP_ITEM_INDEX data[8]
#define SWITCH_MODE_ACTIVE data[9]
+// this is potentially an ewram access occuring in high ewram. TODO: investigate this further.
#define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2])
// defined and used in the above macro
enum
{
- ITEM_ID,
- QUANTITY
+ PC_ITEM_ID,
+ PC_QUANTITY
};
// player PC menu options
diff --git a/include/pokeball.h b/include/pokeball.h
index 19f813415..0a709c869 100644
--- a/include/pokeball.h
+++ b/include/pokeball.h
@@ -7,5 +7,6 @@ void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u32 s
void sub_804777C(u8);
void sub_80478DC(u8);
void sub_804794C(u8);
+u8 sub_8047580(u8, u8, u8, u8, u8, u8, u8, u32);
#endif // GUARD_POKEBALL_H
diff --git a/include/pokedex.h b/include/pokedex.h
index 1bc63a4ff..d8416889a 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -9,10 +9,20 @@ void CB2_InitPokedex(void);
u8 sub_809070C(u16 dexNum, u32 b, u32 c);
const u8 *GetPokemonCategory(u16);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
-s8 GetNationalPokedexFlag(u16, u8);
+
+enum
+{
+ FLAG_GET_SEEN,
+ FLAG_GET_CAUGHT,
+ FLAG_SET_SEEN,
+ FLAG_SET_CAUGHT
+};
+
+s8 GetSetPokedexFlag(u16, u8);
+
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
-bool8 sub_8090FC0(void);
+bool8 CompletedHoennPokedex(void);
u16 sub_8090FF4(void);
#endif // GUARD_POKEDEX_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 594295b40..71b35e65c 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -32,7 +32,7 @@
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
-#define MON_DATA_SPD_EV 29
+#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
@@ -45,7 +45,7 @@
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
-#define MON_DATA_SPD_IV 42
+#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
@@ -64,7 +64,7 @@
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
-#define MON_DATA_SPD 61
+#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
@@ -89,10 +89,12 @@
#define MON_DATA_83 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
-#define MON_DATA_SPD2 86
+#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
+#define MAX_LEVEL 100
+
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
@@ -286,29 +288,29 @@ struct Pokemon
struct UnknownPokemonStruct
{
- u16 species;
- u16 heldItem;
- u16 moves[4];
- u8 level;
- u8 ppBonuses;
- u8 hpEV;
- u8 attackEV;
- u8 defenseEV;
- u8 speedEV;
- u8 spAttackEV;
- u8 spDefenseEV;
- u32 otId;
- u32 hpIV:5;
- u32 attackIV:5;
- u32 defenseIV:5;
- u32 speedIV:5;
- u32 spAttackIV:5;
- u32 spDefenseIV:5;
- u32 gap:1;
- u32 altAbility:1;
- u32 personality;
- u8 nickname[POKEMON_NAME_LENGTH + 1];
- u8 friendship;
+ /*0x00*/u16 species;
+ /*0x02*/u16 heldItem;
+ /*0x04*/u16 moves[4];
+ /*0x0C*/u8 level;
+ /*0x0D*/u8 ppBonuses;
+ /*0x0E*/u8 hpEV;
+ /*0x0F*/u8 attackEV;
+ /*0x10*/u8 defenseEV;
+ /*0x11*/u8 speedEV;
+ /*0x12*/u8 spAttackEV;
+ /*0x13*/u8 spDefenseEV;
+ /*0x14*/u32 otId;
+ /*0x18*/u32 hpIV:5;
+ /*0x18*/u32 attackIV:5;
+ /*0x19*/u32 defenseIV:5;
+ /*0x19*/u32 speedIV:5;
+ /*0x1A*/u32 spAttackIV:5;
+ /*0x1A*/u32 spDefenseIV:5;
+ /*0x1B*/u32 gap:1;
+ /*0x1B*/u32 altAbility:1;
+ /*0x1C*/u32 personality;
+ /*0x20*/u8 nickname[POKEMON_NAME_LENGTH + 1];
+ /*0x2B*/u8 friendship;
};
struct BattlePokemon
@@ -361,6 +363,16 @@ enum
STAT_STAGE_EVASION, // 7
};
+enum
+{
+ STAT_HP, // 0
+ STAT_ATK, // 1
+ STAT_DEF, // 2
+ STAT_SPD, // 3
+ STAT_SPATK, // 4
+ STAT_SPDEF, // 5
+};
+
struct BaseStats
{
/*0x00*/ u8 baseHP;
@@ -391,7 +403,7 @@ struct BaseStats
/*0x17*/ u8 ability2;
/*0x18*/ u8 safariZoneFleeRate;
/*0x19*/ u8 bodyColor:7;
- u8 unk19_7:1;
+ u8 noFlip:1;
};
struct BattleMove
@@ -403,7 +415,7 @@ struct BattleMove
u8 pp;
u8 secondaryEffectChance;
u8 target;
- u8 priority;
+ s8 priority;
u8 flags;
u8 pad[3];
};
@@ -510,7 +522,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src);
void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
void CalculateMonStats(struct Pokemon *mon);
-void sub_803B4B4(struct Pokemon *src, struct Pokemon *dest);
+void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromMonExp(struct Pokemon *mon);
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
@@ -520,7 +532,7 @@ void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
void GiveMonInitialMoveset(struct Pokemon *mon);
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
-u16 sub_803B7C8(struct Pokemon *mon, u8 a2);
+u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
@@ -539,11 +551,13 @@ union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality,
// but they are not used since some code erroneously omits the third arg.
// u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data);
// u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data);
+// void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg);
+// void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg);
u32 GetMonData();
u32 GetBoxMonData();
+void SetMonData();
+void SetBoxMonData();
-void SetMonData(struct Pokemon *mon, s32 field, const u8 *data);
-void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const u8 *data);
void CopyMon(void *dest, void *src, size_t size);
u8 GiveMonToPlayer(struct Pokemon *mon);
u8 SendMonToPC(struct Pokemon *mon);
@@ -566,12 +580,15 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex);
u8 GetNature(struct Pokemon *mon);
u8 GetNatureFromPersonality(u32 personality);
+u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
+
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex);
void MonRestorePP(struct Pokemon *);
u8 *sub_803F378(u16 itemId);
+u16 SpeciesToPokedexNum(u16 species);
u16 NationalPokedexNumToSpecies(u16 nationalNum);
u16 NationalToHoennOrder(u16);
u16 SpeciesToNationalPokedexNum(u16);
@@ -589,15 +606,27 @@ u8 sub_8040574(struct Pokemon *party);
void ClearBattleMonForms(void);
void sub_80408BC();
void current_map_music_set__default_for_battle(u16);
-const u8 *pokemon_get_pal(struct Pokemon *mon);
-const u8 *species_and_otid_get_pal(u16, u32, u32);
-const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
+const u8 *GetMonSpritePal(struct Pokemon *mon);
+const u8 *GetMonSpritePalFromOtIdPersonality(u16, u32, u32);
+const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16, u32, u32);
bool8 IsOtherTrainer(u32, u8 *);
void sub_8040B8C(void);
void SetWildMonHeldItem(void);
u8 *sub_8040D08();
-bool32 sub_8040D3C(u16 species, u8 *name, u8 language);
+bool32 ShouldHideGenderIconForLanguage(u16 species, u8 *name, u8 language);
+bool32 ShouldHideGenderIcon(u16 species, u8 *name);
s8 sub_8040A54(struct Pokemon *, u8);
u16 GetMonEVCount(struct Pokemon *);
+u16 GetEvolutionTargetSpecies(struct Pokemon *, u8, u16);
+const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *);
+bool8 IsPokeSpriteNotFlipped(u16);
+u8 GetLevelUpMovesBySpecies(u16, u16 *);
+u8 TryIncrementMonLevel(struct Pokemon *);
+bool8 IsShiny(struct Pokemon *mon);
+void RandomlyGivePartyPokerus(struct Pokemon *party);
+void PartySpreadPokerus(struct Pokemon *party);
+
+struct Sprite *sub_80F7920(u16, u16, const u16 *);
+
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index 98f984564..7e26c1c9b 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -1,7 +1,8 @@
#ifndef GUARD_POKEMON_ICON_H
#define GUARD_POKEMON_ICON_H
-u8 CreateMonIcon();
+u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
+u8 UpdateMonIconFrame(struct Sprite *sprite);
u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
u16 GetUnownLetterByPersonality(u32);
u16 sub_809D4A8(u16);
@@ -9,6 +10,7 @@ void sub_809D510(struct Sprite *);
void sub_809D51C(void);
void sub_809D580(u16);
void sub_809D608(u16);
-void UpdateMonIconFrame(struct Sprite *sprite);
+void sub_809D62C(struct Sprite *sprite);
+void sub_809D824(struct Sprite *sprite, u8 animNum);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h
index fc43a44c6..57a313d89 100644
--- a/include/pokemon_menu.h
+++ b/include/pokemon_menu.h
@@ -1,15 +1,51 @@
#ifndef GUARD_POKEMON_MENU_H
#define GUARD_POKEMON_MENU_H
+#include "menu.h"
+
+#define POKEMENU_FIRST_FIELD_MOVE_ID 10
+
+enum
+{
+ POKEMENU_SUMMARY, // 0
+ POKEMENU_SWITCH, // 1
+ POKEMENU_ITEM, // 2
+ POKEMENU_CANCEL, // 3
+ POKEMENU_GIVE_ITEM, // 4
+ POKEMENU_TAKE_ITEM, // 5
+ POKEMENU_TAKE_MAIL, // 6
+ POKEMENU_MAIL, // 7
+ POKEMENU_READ_MAIL, // 8
+ POKEMENU_CANCEL_SUBMENU, // 9
+ POKEMENU_CUT, // 10
+ POKEMENU_FLASH, // 11
+ POKEMENU_ROCK_SMASH, // 12
+ POKEMENU_STRENGTH, // 13
+ POKEMENU_SURF, // 14
+ POKEMENU_FLY, // 15
+ POKEMENU_DIVE, // 16
+ POKEMENU_WATERFALL, // 17
+ POKEMENU_TELEPORT, // 18
+ POKEMENU_DIG, // 19
+ POKEMENU_SECRET_POWER, // 20
+ POKEMENU_MILK_DRINK, // 21
+ POKEMENU_SOFT_BOILED, // 22
+ POKEMENU_SWEET_SCENT, // 23
+};
+
+extern u8 gLastFieldPokeMenuOpened;
+extern void (*gUnknown_03005CE4)(void);
+
+void HandleDefaultPartyMenu(u8 taskID);
+void sub_808B5B4(u32 taskID);
void sub_8089A70(void);
-void sub_808A004();
-void sub_808AB90(void);
-void sub_808AB90(void); // unknown args
-void sub_808AB90(void);
+void sub_8089C50(u8 arg0, u8 arg1, u8 arg2, u8 noOfOptions, const struct MenuAction2 *menuActions, const u8 *order);
+void DoPokemonMenu_Switch(u8 taskID);
+void FieldCallback_Teleport(void);
void sub_808AD58(void);
void sub_808B020(void);
-void sub_808B0C0(u8);
+void sub_808B0C0(u8 taskID);
void sub_808B508(u8);
-void sub_808B564();
+void sub_808B564(void);
#endif // GUARD_POKEMON_MENU_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index bd4e7915b..9fe3436ef 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -2,5 +2,7 @@
#define GUARD_POKEMON_STORAGE_SYSTEM_H
void ResetPokemonStorageSystem(void);
+void BoxMonRestorePP(struct BoxPokemon *);
+void party_compaction(void);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h
index c1b99c367..945e810a3 100644
--- a/include/pokemon_summary_screen.h
+++ b/include/pokemon_summary_screen.h
@@ -1,11 +1,65 @@
#ifndef GUARD_POKEMON_SUMMARY_SCREEN_H
#define GUARD_POKEMON_SUMMARY_SCREEN_H
+#include "main.h"
+#include "task.h"
+
extern const u8 *const gNatureNames[];
-void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(void), int);
-void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32);
-void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32);
+// The Pokemon Summary Screen can operate in different modes. Certain features,
+// such as move re-ordering, are available in the different modes.
+enum PokemonSummaryScreenMode
+{
+ PSS_MODE_NORMAL,
+ PSS_MODE_MOVES_ONLY,
+ PSS_MODE_SELECT_MOVE,
+ PSS_MODE_UNKNOWN, // TODO: this mode might be used by pokemon_storage_system
+ PSS_MODE_NO_MOVE_ORDER_EDIT,
+ PSS_MODE_PC_NORMAL,
+ PSS_MODE_PC_MOVES_ONLY,
+};
+
+enum PokemonSummaryScreenPage
+{
+ PSS_PAGE_INFO,
+ PSS_PAGE_SKILLS,
+ PSS_PAGE_BATTLE_MOVES,
+ PSS_PAGE_CONTEST_MOVES,
+};
+
+struct PokemonSummaryScreenStruct
+{
+ /*0x00*/ union {
+ struct Pokemon *partyMons;
+ struct BoxPokemon *boxMons;
+ } monList;
+ /*0x04*/ MainCallback callback;
+ /*0x08*/ u8 mode; // see enum PokemonSummaryScreenMode
+ /*0x09*/ u8 monIndex;
+ /*0x0A*/ u8 maxMonIndex;
+ /*0x0B*/ u8 page; // enum PokemonSummaryScreenPage
+ /*0x0C*/ u8 monSpriteId;
+ /*0x0D*/ u8 ballSpriteId;
+ /*0x0E*/ bool8 usingPC;
+ /*0x0F*/ u8 inputHandlingTaskId;
+ /*0x10*/ struct Pokemon loadedMon;
+ /*0x74*/ u8 loadGfxState;
+ /*0x75*/ u8 firstPage;
+ /*0x76*/ u8 lastPage;
+ /*0x77*/ u8 unk77;
+ /*0x78*/ u8 unk78;
+ /*0x79*/ u8 selectedMoveIndex;
+ /*0x7A*/ u8 switchMoveIndex;
+ /*0x7B*/ bool8 disableMoveOrderEditing;
+ /*0x7C*/ u16 moveToLearn;
+ /*0x7E*/ u8 headerTextId; // used as index into sPageHeaderTexts
+ /*0x7F*/ u8 headerActionTextId; // used as index into sPageHeaderTexts
+ /*0x80*/ u8 bgToggle;
+ /*0x84*/ TaskFunc unk84;
+};
+
+void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u8);
+void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16);
u8 sub_809FA30(void);
u8 pokemon_ailments_get_primary(u32);
u8 GetMonStatusAndPokerus();
@@ -14,4 +68,5 @@ u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level);
u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon);
bool8 CheckPartyPokerus(struct Pokemon *, u8);
+
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
diff --git a/include/pokenav.h b/include/pokenav.h
index 70cc4135f..f77f93e2d 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKENAV_H
#define GUARD_POKENAV_H
+#include "region_map.h"
+
struct UnkPokenavStruct_Sub {
/*0x0*/ u16 unk0;
/*0x2*/ u8 filler2[6];
@@ -30,28 +32,61 @@ struct UnkPokenavStruct_Sub2 {
/*0x26*/ u16 unk26;
};
+struct UnkPokenavStruct_Sub3 {
+ /*0x00*/s16 unk0;
+};
+
struct UnkUsePokeblockSub {
/*0*/ u8 fil0[2];
/*2*/ u8 partyIdx:5;
+ /*2*/ u16 unk2:9;
};
struct UnkPokenavStruct {
- /*0x0000*/ u8 filler0000[0x30c];
- /*0x0000*/ u16 unk030C;
- /*0x0000*/ u8 filler030E[0x6a9e];
+ /*0x0000*/ u8 filler0000[0x306];
+ /*0x0306*/ u16 unk306;
+ /*0x0306*/ u8 filler0308[0x4];
+ /*0x030C*/ union { // TODO: what?
+ u16 val;
+ struct UnkPokenavStruct_Sub3 unk030C;
+ } unk030C;
+ /*0x0310*/ u8 filler030E[0x6a90];
+ /*0x6DA0*/ u16 unk6DA0;
+ /*0x6DA2*/ u16 unk6DA2;
+ /*0x6DA4*/ u16 taskId6DA4;
+ /*0x6DA6*/ u8 filler6DA6[0x6];
/*0x6DAC*/ u8 unk6DAC;
- /*0x6DAD*/ u8 filler6DAD[0x8fd];
+ /*0x6DAD*/ u8 filler6DAD[0x6B];
+ /*0x6E18*/ struct RegionMap regionMap;
+ /*0x7698*/ u16 unk7698;
+ /*0x769A*/ u16 unk769A;
+ /*0x769C*/ u8 unk769C;
+ /*0x769D*/ u8 unk769D;
+ /*0x769E*/ u8 unk769E;
+ /*0x769F*/ u8 filler769F[0xB];
/*0x76AA*/ u8 unk76AA;
/*0x76AB*/ u8 filler76AB[0x10bd];
/*0x8768*/ struct UnkPokenavStruct_Sub2 *unk8768;
- /*0x876C*/ u8 filler876C[0x6e];
+ /*0x876C*/ u8 filler876C[0x2];
+ /*0x876E*/ u8 unk876E;
+ /*0x876F*/ u8 filler876F[0x7];
+ /*0x8776*/ u16 unk8776;
+ /*0x8778*/ u16 unk8778;
+ /*0x877A*/ u8 filler877A[0xE];
+ /*0x8788*/ u8 unk8788[0x40];
+ /*0x87C8*/ u8 unk87C8;
+ /*0x87C9*/ u8 filler87C9;
+ /*0x87CA*/ u8 unk87CA;
+ /*0x87CB*/ u8 filler87CB[0xF];
/*0x87DA*/ s16 unk87DA;
/*0x87DC*/ s16 unk87DC;
/*0x87DE*/ s16 unk87DE;
/*0x87E0*/ void *unk87E0;
/*0x87E4*/ u8 filler87E4[0x44];
/*0x8828*/ u8 unk8828;
- /*0x8829*/ u8 filler8829[0x113];
+ /*0x8829*/ u8 unk8829[3][64];
+ /*0x88E9*/ u8 unk88E9[3][24];
+ /*0x8931*/ u8 unk8931[11];
/*0x893C*/ struct UnkUsePokeblockSub unk893c[0x1ab];
/*0x8fe8*/ u8 fil8fe8[1];
/*0x8fe9*/ s8 unk8fe9;
@@ -61,11 +96,20 @@ struct UnkPokenavStruct {
/*0x9004*/ u8 unk9004[3][20];
/*0x9040*/ u8 unk9040[0x304];
/*0x9344*/ u8 unk9344;
- /*0x9345*/ u8 filler9345[0x3ba3];
+ /*0x9345*/ u8 filler9345[0x2955];
+ /*0xBC9A*/ u8 unkBC9A;
+ /*0xBC9B*/ u8 unkBC9B;
+ /*0xBC9C*/ u8 unkBC9C[22][200];
+ /*0xCDCC*/ const u8 *unkCDCC[16][2];
+ /*0xCE4C*/ u16 unkCE4C;
+ /*0xCE4E*/ u16 unkCE4E;
+ /*0xCE50*/ u16 unkCE50;
+ /*0xCE52*/ u16 palettesCE52[30];
+ /*0xCE8E*/ u16 palettesCE8E[0x2D];
/*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78];
/*0xD158*/ u16 unkD158;
/*0xD15A*/ u8 fillerD15A[6];
- /*0xD162*/ u16 unkD160;
+ /*0xD160*/ u16 unkD160;
/*0xD162*/ u8 unkD162[2];
/*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164;
};
diff --git a/include/rng.h b/include/random.h
index dec8c6e26..a928a97b5 100644
--- a/include/rng.h
+++ b/include/random.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_RNG_H
-#define GUARD_RNG_H
+#ifndef GUARD_RANDOM_H
+#define GUARD_RANDOM_H
extern u32 gRngValue;
@@ -12,4 +12,5 @@ u16 Random(void);
//Sets the initial seed value of the pseudorandom number generator
void SeedRng(u16 seed);
-#endif // GUARD_RNG_H
+#endif // GUARD_RANDOM_H
+
diff --git a/include/record_mixing.h b/include/record_mixing.h
index ca60b04a7..96105f3f7 100644
--- a/include/record_mixing.h
+++ b/include/record_mixing.h
@@ -21,7 +21,7 @@ u16 *GetPlayerRecvBuffer(u8 player);
void sub_80B9A78(void);
void sub_80B9A88(u8 *a);
void sub_80B9B1C(u8 *a, size_t size, u8 index);
-void sub_80B9B70(u8 *a, size_t size, u8 index);
+void sub_80B9B70(void *a, u32 size, u8 index);
u8 sub_80B9BBC(u16 *a);
void sub_80B9BC4(u8 *, size_t, u8[][2], u8 d, u8 e);
u8 sub_80B9C4C(u8 *a);
diff --git a/include/region_map.h b/include/region_map.h
index 3d970fa0a..254307052 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -3,11 +3,11 @@
struct RegionMap
{
- u8 mapSecName[0x14];
- u16 mapSecId;
- u8 unk16;
- u8 everGrandeCityArea;
- u8 (*inputCallback)(void);
+ u8 mapSectionName[20];
+ /*0x14*/ u16 mapSectionId;
+ /*0x16*/ u8 unk16;
+ /*0x17*/ u8 everGrandeCityArea;
+ /*0x18*/ u8 (*inputCallback)(void);
struct Sprite *cursorSprite;
struct Sprite *playerIconSprite;
s32 bg2x;
@@ -62,10 +62,10 @@ void sub_80FAEC4(void);
u8 sub_80FAFC0(void);
void UpdateRegionMapVideoRegs(void);
void sub_80FB2A4(s16, s16);
-u16 sub_80FBA04(u16 mapSecId);
+u16 sub_80FBA04(u16 mapSectionId);
void CreateRegionMapCursor(u16, u16);
void CreateRegionMapPlayerIcon(u16, u16);
-const u8 *GetMapSectionName(u8 *dest, u16 mapSecId, u16 length);
+const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length);
const u8 *CopyMapName(u8 *dest, u16 b);
const u8 *CopyLocationName(u8 *dest, u16 b);
diff --git a/include/region_map_sections.h b/include/region_map_sections.h
new file mode 100755
index 000000000..a3bd60b59
--- /dev/null
+++ b/include/region_map_sections.h
@@ -0,0 +1,60 @@
+#ifndef GUARD_REGIONMAPSEC_H
+#define GUARD_REGIONMAPSEC_H
+
+enum
+{
+ MAPSEC_LittlerootTown, // 0x00
+ MAPSEC_OldaleTown, // 0x01
+ MAPSEC_DewfordTown, // 0x02
+ MAPSEC_LavaridgeTown, // 0x03
+ MAPSEC_FallarborTown, // 0x04
+ MAPSEC_VerdanturfTown, // 0x05
+ MAPSEC_PacifidlogTown, // 0x06
+ MAPSEC_PetalburgCity, // 0x07
+ MAPSEC_SlateportCity, // 0x08
+ MAPSEC_MauvilleCity, // 0x09
+ MAPSEC_RustboroCity, // 0x0A
+ MAPSEC_FortreeCity, // 0x0B
+ MAPSEC_LilycoveCity, // 0x0C
+ MAPSEC_MossdeepCity, // 0x0D
+ MAPSEC_SootopolisCity, // 0x0E
+ MAPSEC_EverGrandeCity, // 0x0F
+ MAPSEC_Route101, // 0x10
+ MAPSEC_Route102, // 0x11
+ MAPSEC_Route103, // 0x12
+ MAPSEC_Route104, // 0x13
+ MAPSEC_Route105, // 0x14
+ MAPSEC_Route106, // 0x15
+ MAPSEC_Route107, // 0x16
+ MAPSEC_Route108, // 0x17
+ MAPSEC_Route109, // 0x18
+ MAPSEC_Route110, // 0x19
+ MAPSEC_Route111, // 0x1A
+ MAPSEC_Route112, // 0x1B
+ MAPSEC_Route113, // 0x1C
+ MAPSEC_Route114, // 0x1D
+ MAPSEC_Route115, // 0x1E
+ MAPSEC_Route116, // 0x1F
+ MAPSEC_Route117, // 0x20
+ MAPSEC_Route118, // 0x21
+ MAPSEC_Route119, // 0x22
+ MAPSEC_Route120, // 0x23
+ MAPSEC_Route121, // 0x24
+ MAPSEC_Route122, // 0x25
+ MAPSEC_Route123, // 0x26
+ MAPSEC_Route124, // 0x27
+ MAPSEC_Route125, // 0x28
+ MAPSEC_Route126, // 0x29
+ MAPSEC_Route127, // 0x2A
+ MAPSEC_Route128, // 0x2B
+ MAPSEC_Route129, // 0x2C
+ MAPSEC_Route130, // 0x2D
+ MAPSEC_Route131, // 0x2E
+ MAPSEC_Route132, // 0x2F
+ MAPSEC_Route133, // 0x30
+ MAPSEC_Route134, // 0x31
+ MAPSEC_MtChimney = 0x38, // 0x38
+ MAPSEC_Nothing = 0x58, // 0x58
+};
+
+#endif // GUARD_REGIONMAPSEC_H
diff --git a/include/roamer.h b/include/roamer.h
index 9d5f3c4ed..86908bd00 100644
--- a/include/roamer.h
+++ b/include/roamer.h
@@ -7,5 +7,7 @@ void UpdateLocationHistoryForRoamer(void);
void RoamerMoveToOtherLocationSet(void);
void RoamerMove();
u8 TryStartRoamerEncounter(void);
+void UpdateRoamerHPStatus(struct Pokemon *mon);
+void SetRoamerInactive(void);
#endif
diff --git a/include/rom3.h b/include/rom3.h
index 81bb56df1..19c6def25 100644
--- a/include/rom3.h
+++ b/include/rom3.h
@@ -1,6 +1,12 @@
#ifndef GUARD_ROM3_H
#define GUARD_ROM3_H
+struct HpAndStatus
+{
+ u16 hp;
+ u32 status;
+};
+
struct DisableStruct;
void sub_800B858(void);
@@ -55,7 +61,7 @@ void Emitcmd44(u8 a, u16 b);
void EmitFaintingCry(u8 a);
void EmitIntroSlide(u8 a, u8 b);
void EmitTrainerBallThrow(u8 a);
-void Emitcmd48(u8 a, u8 *b, u8 c);
+void EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c); //0x30
void Emitcmd49(u8 a);
void Emitcmd50(u8 a);
void EmitSpriteInvisibility(u8 a, u8 b);
diff --git a/include/rom6.h b/include/rom6.h
index e7a3ba48e..8c3691624 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ROM6_H
#define GUARD_ROM6_H
+extern struct MapPosition gUnknown_0203923C;
+
bool8 npc_before_player_of_type(u8);
u8 oei_task_add(void);
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
index 11e94e1f5..21ec88a90 100644
--- a/include/rom_8077ABC.h
+++ b/include/rom_8077ABC.h
@@ -4,10 +4,16 @@
#include "sprite.h"
#include "task.h"
-u8 sub_8077ABC(u8, u8);
+struct Struct_sub_8078914 {
+ u8 *field_0;
+ u8 *field_4;
+ u8 field_8;
+};
+
+u8 GetBankPosition(u8, u8);
u8 sub_8077E44(u8 slot, u16 species, u8 a3);
-u8 obj_id_for_side_relative_to_move(u8 side);
-void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite *));
+u8 GetAnimBankSpriteId(u8 side);
+void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *));
void sub_8078314(struct Sprite *sprite);
void sub_8078364(struct Sprite *sprite);
void sub_8078458(struct Sprite *sprite);
@@ -19,11 +25,10 @@ u8 GetBankSide(u8 slot);
u8 GetBankSide(u8);
u8 GetBankIdentity(u8);
u8 GetBankIdentity(u8 slot);
-u8 GetBankByPlayerAI(u8);
-u8 GetBankByPlayerAI(u8);
-u8 GetBankByPlayerAI(u8 state);
-u8 sub_8078874(u8);
-bool8 sub_8078874(u8);
+u8 GetBankByIdentity(u8);
+u8 GetBankByIdentity(u8);
+u8 GetBankByIdentity(u8 state);
+bool8 IsBankSpritePresent(u8);
bool8 IsDoubleBattle();
u8 IsDoubleBattle(void);
bool8 IsDoubleBattle(void);
@@ -41,13 +46,17 @@ void sub_8078E70(u8 sprite, u8);
void sub_8078F40(u8 sprite);
void sub_8078F9C(u8 sprite);
void sub_8079518(struct Sprite *sprite);
+void sub_8079534(struct Sprite *sprite);
void sub_80796F8(u8 task);
void sub_80797EC(struct Task *task);
void sub_8079814(u8 taskId);
void sub_8079A64(u8 sprite);
u16 sub_8079B10(u8 sprite);
-void sub_8079BF4(s16 *bottom, s16 *top, void *ptr);
+void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr);
void *sub_8079BFC(s16 bottom, s16 top);
+// u8 a2 := u8 sprite
+void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
+u8 sub_8079C74(struct Task *task);
void sub_8079E24();
u8 sub_8079E90(u8 slot);
u8 GetBankIdentity_permutated(u8 slot);
@@ -55,5 +64,44 @@ void sub_807A784(u8 taskId);
void sub_807A850(struct Task *task, u8 taskId);
void sub_807A8D4(struct Sprite *sprite);
void sub_807A960(struct Sprite *sprite);
+void sub_8078A34(struct Sprite *sprite);
+void sub_80787B0(struct Sprite *sprite, u8);
+void sub_8078764(struct Sprite *sprite, u8);
+void sub_8078B34(struct Sprite *sprite);
+void sub_8078D60(struct Sprite *sprite);
+void sub_80786EC(struct Sprite *sprite);
+void sub_80782D8(struct Sprite *sprite);
+void sub_8078CC0(struct Sprite *sprite);
+void sub_8078600(struct Sprite *sprite);
+void sub_8078504(struct Sprite *sprite);
+void sub_807861C(struct Sprite *sprite);
+void sub_8078650(struct Sprite *sprite);
+void sub_8078394(struct Sprite *sprite);
+void sub_80785E4(struct Sprite *sprite);
+void sub_8078278(struct Sprite *sprite);
+void sub_8078C00(struct Sprite *sprite);
+void sub_8078114(struct Sprite *sprite);
+void sub_8078174(struct Sprite *sprite);
+void sub_80793C4(struct Sprite *sprite);
+void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4);
+u8 sub_8079ED4(u8 slot);
+int sub_807A100(u8 slot, u8 a2);
+u16 sub_80790F0(s16 a, s16 b);
+void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation);
+void sub_807867C(struct Sprite *sprite, s16 a2);
+u8 sub_8077EE4(u8 slot, u8 a2);
+u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
+u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4);
+s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1);
+void obj_delete_but_dont_free_vram(struct Sprite *sprite);
+void sub_8079108(u16 a1, bool8 a2);
+void sub_80798F4(struct Task *task, u8 a2, const void *a3);
+bool8 sub_807992C(struct Task *task);
+u8 sub_8077FC0(u8 slot);
+void move_anim_8074EE0(struct Sprite *sprite);
+bool8 sub_8078718(struct Sprite *sprite);
+bool8 sub_8078CE8(struct Sprite *sprite);
+void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
+void sub_8078BD4(struct Sprite *sprite);
#endif // GUARD_ROM_8077ABC_H
diff --git a/include/roulette.h b/include/roulette.h
new file mode 100644
index 000000000..7d114a073
--- /dev/null
+++ b/include/roulette.h
@@ -0,0 +1,38 @@
+#ifndef GUARD_ROULETTE_H
+#define GUARD_ROULETTE_H
+
+struct UnkStruct1
+{
+ u16 var00;
+ u16 var02;
+ u8 var04;
+ u8 var05;
+ u8 var06;
+ s8 var07_0:5;
+ s8 var07_5:2;
+ s8 var07_7:1;
+};
+
+struct UnkStruct3
+{
+ u8 var00_0:7;
+ u8 var00_7:1;
+ u8 var01;
+ s8 var02;
+ s8 var03;
+ struct UnkStruct1 var04;
+};
+
+struct UnkStruct0
+{
+ u8 var00;
+ u8 var01;
+ u16 var02; //flag for each UnkStruct3
+ struct UnkStruct3 var04[0x10];
+};
+
+s16 sub_81174C4(s16, s16);
+s16 sub_81174E0(s16);
+void PlayRoulette(void);
+
+#endif
diff --git a/include/roulette_util.h b/include/roulette_util.h
new file mode 100644
index 000000000..daeaeeeef
--- /dev/null
+++ b/include/roulette_util.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_ROULETTE_UTIL_H
+#define GUARD_ROULETTE_UTIL_H
+
+#include "roulette.h"
+
+void sub_8124918(struct UnkStruct0 *);
+u8 sub_812492C(struct UnkStruct0 *, u8, struct UnkStruct1 *);
+void task_tutorial_controls_fadein(struct UnkStruct0 *);
+void sub_8124CE8(struct UnkStruct0 *, u16);
+void sub_8124D3C(struct UnkStruct0 *, u16);
+void sub_8124DDC(u16 *, u16, u8, u8, u8, u8);
+void sub_8124E2C(u16 *, u16 *, u8, u8, u8, u8);
+
+#endif
diff --git a/include/save.h b/include/save.h
index 6c47c6f60..c35ad547a 100644
--- a/include/save.h
+++ b/include/save.h
@@ -3,7 +3,7 @@
struct SaveSectionLocation
{
- void *data;
+ u8 *data;
u16 size;
};
diff --git a/include/script.h b/include/script.h
index 2a738698c..5a899cf4a 100644
--- a/include/script.h
+++ b/include/script.h
@@ -11,7 +11,7 @@ struct ScriptContext
u8 stackDepth;
u8 mode;
u8 comparisonResult;
- u8 (*nativePtr)(void);
+ bool8 (*nativePtr)(void);
const u8 *scriptPtr;
const u8 *stack[20];
ScrCmdFunc *cmdTable;
@@ -23,7 +23,7 @@ struct ScriptContext
void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd);
u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr);
-void SetupNativeScript(struct ScriptContext *ctx, void *ptr);
+void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void));
void StopScript(struct ScriptContext *ctx);
u8 RunScriptCommand(struct ScriptContext *ctx);
u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr);
@@ -42,16 +42,12 @@ void ScriptContext1_SetupScript(const u8 *ptr);
void ScriptContext1_Stop(void);
void EnableBothScriptContexts(void);
void ScriptContext2_RunNewScript(const u8 *ptr);
-u8 *mapheader_get_tagged_pointer(u8 tag);
-void mapheader_run_script_by_tag(u8 tag);
-u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag);
void mapheader_run_script_with_tag_x1(void);
void mapheader_run_script_with_tag_x3(void);
void mapheader_run_script_with_tag_x5(void);
void mapheader_run_script_with_tag_x6(void);
bool8 mapheader_run_first_tag2_script_list_match(void);
void mapheader_run_first_tag4_script_list_match(void);
-u32 CalculateRamScriptChecksum(void);
void ClearRamScript(void);
bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
u8 *GetRamScript(u8 objectId, u8 *script);
diff --git a/include/script_menu.h b/include/script_menu.h
index cc5c442ec..dca8c26a7 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -1,33 +1,19 @@
#ifndef GUARD_SCRIPTMENU_H
#define GUARD_SCRIPTMENU_H
-struct MultichoiceListStruct
-{
- struct MenuAction *list;
- u8 count;
-};
+struct MenuAction;
extern const u8 *const gUnknown_083CE048[];
-bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4);
-bool8 sub_80B50B0(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
-u16 GetStringWidthInTilesForScriptMenu(const u8 *str);
-void DrawMultichoiceMenu(u8, u8, u8, struct MenuAction *list, u8, u8);
-void sub_80B5230(u8, u8, u8, u8, u8, u8);
-void sub_80B52B4(u8);
+bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
+bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
bool8 Multichoice(u8 var1, u8 var2, u8 var3, u8 var4);
-void sub_80B53B4(u8, u8, u8, struct MenuAction *list, u8);
-bool8 yes_no_box(u8 var1, u8 var2);
-bool8 IsScriptActive(void); // unused
-void task_yes_no_maybe(u8);
-bool8 sub_80B5578(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
-void sub_80B5684(u8);
-bool8 TryCreatePCMenu(void);
-void CreatePCMenu(void);
-void sub_80B5838(void);
-void task_picbox(u8 taskId);
-bool8 sub_80B58C4(u16 var1, u8 var2, u8 var3);
-void *picbox_close(void);
-bool8 sub_80B59AC(void);
+bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
+bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
+bool8 ScrSpecial_CreatePCMenu(void);
+void ScriptMenu_CreatePCMenu(void);
+void ScriptMenu_DisplayPCStartupPrompt(void);
+bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
+bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
#endif
diff --git a/include/script_movement.h b/include/script_movement.h
index e3cdc25b3..17c1abed7 100644
--- a/include/script_movement.h
+++ b/include/script_movement.h
@@ -1,8 +1,8 @@
#ifndef GUARD_SCRIPT_MOVEMENT_H
#define GUARD_SCRIPT_MOVEMENT_H
-bool8 exec_movement(u8, u8, u8, u8 *);
-bool8 sub_80A212C(u8, u8, u8);
+bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
+bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
void sub_80A2178(void);
#endif // GUARD_SCRIPT_MOVEMENT_H
diff --git a/include/script_pokemon_80C4.h b/include/script_pokemon_80C4.h
index 629980a2d..fab07994e 100644
--- a/include/script_pokemon_80C4.h
+++ b/include/script_pokemon_80C4.h
@@ -8,10 +8,10 @@ void ReducePlayerPartyToThree(void);
u8 sub_80C4D50(void);
void ShowContestWinner(void);
-void HealPlayerParty();
+void ScrSpecial_HealPlayerParty();
u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
u8 ScriptGiveEgg(u16);
-void ScriptWildBattle(u16, u8, u16);
+void CreateScriptedWildMon(u16, u8, u16);
void ScriptSetMonMoveSlot(u8, u16, u8);
#endif
diff --git a/include/script_pokemon_80F9.h b/include/script_pokemon_80F9.h
index d65c99c15..eed32f5cf 100644
--- a/include/script_pokemon_80F9.h
+++ b/include/script_pokemon_80F9.h
@@ -7,11 +7,13 @@ struct UnknownStruct2018000
u8 unk8;
};
-extern struct UnknownStruct2018000 unk_2018000;
-
-void sub_80F9A8C(u8);
+void OpenPartyMenuFromScriptContext(u8 taskId);
void sub_80F9C00(void);
void sub_80F9E1C(void);
void sub_80F99CC(void);
+void HandleSelectPartyMenu(u8 taskId);
+bool8 SetupContestPartyMenu(void);
+void HandleMoveTutorPartyMenu(u8 taskId);
+bool8 SetupMoveTutorPartyMenu(void);
#endif
diff --git a/include/secret_base.h b/include/secret_base.h
index bb747bb02..a3fa22c05 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -1,17 +1,24 @@
#ifndef GUARD_SECRET_BASE_H
#define GUARD_SECRET_BASE_H
+// Maximum number of secret bases the game can store. This include 1 for the player, and up to 19 others from linked players.
+#define MAX_SECRET_BASES 20
+
void ResetSecretBases(void);
-void sub_80BB970(struct MapEvents *);
+void sub_80BB5E4(void);
+void sub_80BB63C(void);
+void sub_80BB800(void);
+void sub_80BB970(struct MapEvents *events);
u8 sub_80BBB24(void);
-void sub_80BBCCC(u8);
-void sub_80BC038();
+void sub_80BBCCC(u8 flagIn);
+void sub_80BBFD8(struct MapPosition *, struct MapEvents *);
+void sub_80BC038(struct MapPosition *, struct MapEvents *);
u8 sub_80BC050();
-u8 *GetSecretBaseMapName(u8 *);
+u8 *GetSecretBaseMapName(u8 *dest);
void sub_80BC300();
-const u8 sub_80BCCA4(u8);
-u8 *sub_80BCCE8(void);
-void sub_80BCF1C(u8);
-void sub_80BD674(void *, u32, u8);
+u8 sub_80BCCA4(u8 secretBaseIndex);
+const u8 *GetSecretBaseTrainerLoseText(void);
+void sub_80BCF1C(u8 taskId);
+void sub_80BD674(void *playerRecords, u32 size, u8 c);
#endif // GUARD_SECRET_BASE_H
diff --git a/include/slot_machine.h b/include/slot_machine.h
index c39aa7ca8..f886d9239 100644
--- a/include/slot_machine.h
+++ b/include/slot_machine.h
@@ -1,8 +1,79 @@
#ifndef GUARD_SLOT_MACHINE_H
#define GUARD_SLOT_MACHINE_H
-void PlaySlotMachine(u8, void *);
+enum {
+ SLOT_MACHINE_TAG_7_RED,
+ SLOT_MACHINE_TAG_7_BLUE,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_REPLAY
+};
+
+enum {
+ SLOT_MACHINE_MATCHED_1CHERRY,
+ SLOT_MACHINE_MATCHED_2CHERRY,
+ SLOT_MACHINE_MATCHED_REPLAY,
+ SLOT_MACHINE_MATCHED_LOTAD,
+ SLOT_MACHINE_MATCHED_AZURILL,
+ SLOT_MACHINE_MATCHED_POWER,
+ SLOT_MACHINE_MATCHED_777_MIXED,
+ SLOT_MACHINE_MATCHED_777_RED,
+ SLOT_MACHINE_MATCHED_777_BLUE,
+ SLOT_MACHINE_MATCHED_NONE
+};
+
+struct SlotMachineEwramStruct {
+ /*0x00*/ u8 state;
+ /*0x01*/ u8 unk01;
+ /*0x02*/ u8 pikaPower;
+ /*0x03*/ u8 unk03;
+ /*0x04*/ u8 unk04;
+ /*0x05*/ u8 unk05;
+ /*0x06*/ u8 unk06;
+ /*0x07*/ u8 unk07;
+ /*0x08*/ u16 matchedSymbols;
+ /*0x0A*/ u8 unk0A;
+ /*0x0B*/ u8 unk0B;
+ /*0x0C*/ s16 coins;
+ /*0x0E*/ s16 payout;
+ /*0x10*/ s16 unk10;
+ /*0x12*/ s16 bet;
+ /*0x14*/ s16 unk14;
+ /*0x16*/ s16 unk16;
+ /*0x18*/ s16 unk18;
+ /*0x1A*/ s16 unk1A;
+ /*0x1C*/ s16 unk1C[3];
+ /*0x22*/ u16 unk22[3];
+ /*0x28*/ s16 reelPositions[3];
+ /*0x2E*/ s16 unk2E[3];
+ /*0x34*/ s16 unk34[3];
+ /*0x3A*/ u8 reelTasks[3];
+ /*0x3D*/ u8 unk3D;
+ /*0x3E*/ u8 unk3E;
+ /*0x3F*/ u8 unk3F;
+ /*0x40*/ u8 unk40;
+ /*0x41*/ u8 unk41;
+ /*0x42*/ u8 unk42;
+ /*0x43*/ u8 unk43;
+ /*0x44*/ u8 unk44[5];
+ /*0x49*/ u8 unk49[2];
+ /*0x49*/ u8 unk4B[3];
+ /*0x4E*/ u8 unk4E[2];
+ /*0x50*/ u8 unk50[2];
+ /*0x52*/ u8 unk52[2];
+ /*0x54*/ u8 unk54[4];
+ /*0x58*/ u16 win0h;
+ /*0x5a*/ u16 win0v;
+ /*0x5c*/ u16 winIn;
+ /*0x5e*/ u16 winOut;
+ /*0x60*/ u16 backupMapMusic;
+ /*0x64*/ MainCallback prevMainCb;
+};
+
+void PlaySlotMachine(u8 arg0, MainCallback cb);
void sub_8104DA4(void);
-u8 sub_8105BB4(u8, u8, s16);
+u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2);
#endif // GUARD_SLOT_MACHINE_H
diff --git a/include/songs.h b/include/songs.h
deleted file mode 100644
index afd26d683..000000000
--- a/include/songs.h
+++ /dev/null
@@ -1,374 +0,0 @@
-#ifndef GUARD_SONGS_H
-#define GUARD_SONGS_H
-
-enum
-{
- /*0x00*/ SE_STOP,
- /*0x01*/ SE_KAIFUKU,
- /*0x02*/ SE_PC_LOGON,
- /*0x03*/ SE_PC_OFF,
- /*0x04*/ SE_PC_ON,
- /*0x05*/ SE_SELECT,
- /*0x06*/ SE_WIN_OPEN,
- /*0x07*/ SE_WALL_HIT,
- /*0x08*/ SE_DOOR,
- /*0x09*/ SE_KAIDAN,
- /*0x0A*/ SE_DANSA,
- /*0x0B*/ SE_JITENSYA,
- /*0x0C*/ SE_KOUKA_L,
- /*0x0D*/ SE_KOUKA_M,
- /*0x0E*/ SE_KOUKA_H,
- /*0x0F*/ SE_BOWA2,
- /*0x10*/ SE_POKE_DEAD,
- /*0x11*/ SE_NIGERU,
- /*0x12*/ SE_JIDO_DOA,
- /*0x13*/ SE_NAMINORI,
- /*0x14*/ SE_BAN,
- /*0x15*/ SE_PIN,
- /*0x16*/ SE_BOO,
- /*0x17*/ SE_BOWA,
- /*0x18*/ SE_JYUNI,
- /*0x19*/ SE_A,
- /*0x1A*/ SE_I,
- /*0x1B*/ SE_U,
- /*0x1C*/ SE_E,
- /*0x1D*/ SE_O,
- /*0x1E*/ SE_N,
- /*0x1F*/ SE_SEIKAI,
- /*0x20*/ SE_HAZURE,
- /*0x21*/ SE_EXP,
- /*0x22*/ SE_JITE_PYOKO,
- /*0x23*/ SE_MU_PACHI,
- /*0x24*/ SE_TK_KASYA,
- /*0x25*/ SE_FU_ZAKU,
- /*0x26*/ SE_FU_ZAKU2,
- /*0x27*/ SE_FU_ZUZUZU,
- /*0x28*/ SE_RU_GASHIN,
- /*0x29*/ SE_RU_GASYAN,
- /*0x2A*/ SE_RU_BARI,
- /*0x2B*/ SE_RU_HYUU,
- /*0x2C*/ SE_KI_GASYAN,
- /*0x2D*/ SE_TK_WARPIN,
- /*0x2E*/ SE_TK_WARPOUT,
- /*0x2F*/ SE_TU_SAA,
- /*0x30*/ SE_HI_TURUN,
- /*0x31*/ SE_TRACK_MOVE,
- /*0x32*/ SE_TRACK_STOP,
- /*0x33*/ SE_TRACK_HAIK,
- /*0x34*/ SE_TRACK_DOOR,
- /*0x35*/ SE_MOTER,
- /*0x36*/ SE_CARD,
- /*0x37*/ SE_SAVE,
- /*0x38*/ SE_KON,
- /*0x39*/ SE_KON2,
- /*0x3A*/ SE_KON3,
- /*0x3B*/ SE_KON4,
- /*0x3C*/ SE_SUIKOMU,
- /*0x3D*/ SE_NAGERU,
- SE_TOY_C,
- SE_TOY_D,
- SE_TOY_E,
- SE_TOY_F,
- SE_TOY_G,
- SE_TOY_A,
- SE_TOY_B,
- SE_TOY_C1,
- SE_MIZU,
- SE_HASHI,
- SE_DAUGI,
- SE_PINPON,
- SE_FUUSEN1,
- SE_FUUSEN2,
- SE_FUUSEN3,
- SE_TOY_KABE,
- SE_TOY_DANGO,
- SE_DOKU,
- SE_ESUKA,
- SE_T_AME,
- SE_T_AME_E,
- SE_T_OOAME,
- SE_T_OOAME_E,
- SE_T_KOAME,
- SE_T_KOAME_E,
- SE_T_KAMI,
- SE_T_KAMI2,
- SE_ELEBETA,
- /*0x5A*/ SE_HINSI,
- /*0x5B*/ SE_EXPMAX,
- /*0x5C*/ SE_TAMAKORO,
- /*0x5D*/ SE_TAMAKORO_E,
- /*0x5E*/ SE_BASABASA,
- /*0x5F*/ SE_REGI,
- SE_C_GAJI,
- SE_C_MAKU_U,
- SE_C_MAKU_D,
- SE_C_PASI,
- SE_C_SYU,
- SE_C_PIKON,
- /*0x66*/ SE_REAPOKE,
- /*0x67*/ SE_OP_BASYU,
- /*0x68*/ SE_BT_START,
- SE_DENDOU,
- SE_JIHANKI,
- SE_TAMA,
- SE_Z_SCROLL,
- /*0x6D*/ SE_Z_PAGE,
- /*0x6E*/ SE_PN_ON,
- /*0x6F*/ SE_PN_OFF,
- /*0x70*/ SE_Z_SEARCH,
- /*0x71*/ SE_TAMAGO,
- /*0x72*/ SE_TB_START,
- /*0x73*/ SE_TB_KON,
- /*0x74*/ SE_TB_KARA,
- /*0x75*/ SE_BIDORO,
- /*0x76*/ SE_W085,
- /*0x77*/ SE_W085B,
- /*0x78*/ SE_W231,
- /*0x79*/ SE_W171,
- /*0x7A*/ SE_W233,
- /*0x7B*/ SE_W233B,
- /*0x7C*/ SE_W145,
- /*0x7D*/ SE_W145B,
- /*0x7E*/ SE_W145C,
- /*0x7F*/ SE_W240,
- /*0x80*/ SE_W015,
- /*0x81*/ SE_W081,
- /*0x82*/ SE_W081B,
- /*0x83*/ SE_W088,
- /*0x84*/ SE_W016,
- /*0x85*/ SE_W016B,
- /*0x86*/ SE_W003,
- /*0x87*/ SE_W104,
- /*0x88*/ SE_W013,
- /*0x89*/ SE_W196,
- /*0x8A*/ SE_W086,
- /*0x8B*/ SE_W004,
- /*0x8C*/ SE_W025,
- /*0x8D*/ SE_W025B,
- SE_W152,
- SE_W026,
- SE_W172,
- SE_W172B,
- SE_W053,
- SE_W007,
- SE_W092,
- SE_W221,
- SE_W221B,
- SE_W052,
- SE_W036,
- SE_W059,
- SE_W059B,
- SE_W010,
- SE_W011,
- SE_W017,
- SE_W019,
- SE_W028,
- SE_W013B,
- SE_W044,
- SE_W029,
- SE_W057,
- SE_W056,
- SE_W250,
- SE_W030,
- SE_W039,
- SE_W054,
- SE_W077,
- SE_W020,
- SE_W082,
- SE_W047,
- SE_W195,
- SE_W006,
- SE_W091,
- SE_W146,
- SE_W120,
- SE_W153,
- SE_W071B,
- SE_W071,
- SE_W103,
- /*0xB6*/ SE_W062,
- /*0xB7*/ SE_W062B,
- /*0xB8*/ SE_W048,
- /*0xB9*/ SE_W187,
- /*0xBA*/ SE_W118,
- /*0xBB*/ SE_W155,
- /*0xBC*/ SE_W122,
- /*0xBD*/ SE_W060,
- /*0xBE*/ SE_W185,
- /*0xBF*/ SE_W014,
- /*0xC0*/ SE_W043,
- /*0xC1*/ SE_W207,
- /*0xC2*/ SE_W207B,
- /*0xC3*/ SE_W215,
- /*0xC4*/ SE_W109,
- /*0xC5*/ SE_W173,
- /*0xC6*/ SE_W280,
- /*0xC7*/ SE_W202,
- /*0xC8*/ SE_W060B,
- /*0xC9*/ SE_W076,
- /*0xCA*/ SE_W080,
- /*0xCB*/ SE_W100,
- /*0xCC*/ SE_W107,
- SE_W166,
- SE_W129,
- SE_W115,
- SE_W112,
- SE_W197,
- SE_W199,
- SE_W236,
- SE_W204,
- SE_W268,
- SE_W070,
- SE_W063,
- SE_W127,
- SE_W179,
- SE_W151,
- SE_W201,
- SE_W161,
- SE_W161B,
- SE_W227,
- SE_W227B,
- SE_W226,
- SE_W208,
- SE_W213,
- SE_W213B,
- SE_W234,
- SE_W260,
- SE_W328,
- SE_W320,
- SE_W255,
- SE_W291,
- SE_W089,
- SE_W239,
- SE_W230,
- SE_W281,
- SE_W327,
- SE_W287,
- SE_W257,
- SE_W253,
- SE_W258,
- SE_W322,
- SE_W298,
- SE_W287B,
- SE_W114,
- SE_W063B,
- BGM_STOP = 349,
- BGM_TETSUJI,
- BGM_FIELD13,
- BGM_KACHI22,
- BGM_KACHI2,
- BGM_KACHI3,
- BGM_KACHI5,
- BGM_PCC,
- BGM_NIBI,
- BGM_SUIKUN,
- BGM_DOORO1,
- BGM_DOORO_X1,
- BGM_DOORO_X3,
- BGM_MACHI_S2,
- BGM_MACHI_S4,
- BGM_GIM,
- BGM_NAMINORI,
- BGM_DAN01,
- /*0x16F*/ BGM_FANFA1,
- /*0x170*/ BGM_ME_ASA,
- /*0x171*/ BGM_ME_BACHI,
- /*0x172*/ BGM_FANFA4,
- /*0x173*/ BGM_FANFA5,
- /*0x174*/ BGM_ME_WAZA,
- /*0x175*/ BGM_BIJYUTU,
- /*0x176*/ BGM_DOORO_X4,
- /*0x177*/ BGM_FUNE_KAN,
- /*0x178*/ BGM_ME_SHINKA,
- /*0x179*/ BGM_SHINKA,
- /*0x17A*/ BGM_ME_WASURE,
- /*0x17B*/ BGM_SYOUJOEYE,
- /*0x17C*/ BGM_BOYEYE,
- /*0x17D*/ BGM_DAN02,
- /*0x17E*/ BGM_MACHI_S3,
- /*0x17F*/ BGM_ODAMAKI,
- /*0x180*/ BGM_B_TOWER,
- /*0x181*/ BGM_SWIMEYE,
- /*0x182*/ BGM_DAN03,
- /*0x183*/ BGM_ME_KINOMI,
- /*0x184*/ BGM_ME_TAMA,
- /*0x185*/ BGM_ME_B_BIG,
- /*0x186*/ BGM_ME_B_SMALL,
- /*0x187*/ BGM_ME_ZANNEN,
- /*0x188*/ BGM_BD_TIME,
- /*0x189*/ BGM_TEST1,
- /*0x18A*/ BGM_TEST2,
- /*0x18B*/ BGM_TEST3,
- /*0x18C*/ BGM_TEST4,
- /*0x18D*/ BGM_TEST,
- /*0x18E*/ BGM_GOMACHI0,
- /*0x18F*/ BGM_GOTOWN,
- /*0x190*/ BGM_POKECEN,
- /*0x191*/ BGM_NEXTROAD,
- /*0x192*/ BGM_GRANROAD,
- /*0x193*/ BGM_CYCLING,
- BGM_FRIENDLY,
- BGM_MISHIRO,
- BGM_TOZAN,
- BGM_GIRLEYE,
- BGM_MINAMO,
- BGM_ASHROAD,
- BGM_EVENT0,
- BGM_DEEPDEEP,
- BGM_KACHI1,
- BGM_TITLE3,
- BGM_DEMO1,
- BGM_GIRL_SUP,
- BGM_HAGESHII,
- BGM_KAKKOII,
- BGM_KAZANBAI,
- BGM_AQA_0,
- BGM_TSURETEK,
- BGM_BOY_SUP,
- BGM_RAINBOW,
- BGM_AYASII,
- BGM_KACHI4,
- BGM_ROPEWAY,
- BGM_CASINO,
- BGM_HIGHTOWN,
- BGM_SAFARI,
- BGM_C_ROAD,
- BGM_AJITO,
- BGM_M_BOAT,
- BGM_M_DUNGON,
- BGM_FINECITY,
- BGM_MACHUPI,
- BGM_P_SCHOOL,
- BGM_DENDOU,
- BGM_TONEKUSA,
- BGM_MABOROSI,
- BGM_CON_FAN,
- BGM_CONTEST0,
- BGM_MGM0,
- BGM_T_BATTLE,
- BGM_OOAME,
- BGM_HIDERI,
- BGM_RUNECITY,
- BGM_CON_K,
- BGM_EIKOU_R,
- BGM_KARAKURI,
- BGM_HUTAGO,
- BGM_SITENNOU,
- BGM_YAMA_EYE,
- BGM_CONLOBBY,
- BGM_INTER_V,
- BGM_DAIGO,
- BGM_THANKFOR,
- BGM_END,
- BGM_BATTLE27, // wild
- BGM_BATTLE31, // aqua/magma grunt
- BGM_BATTLE20, // trainer
- BGM_BATTLE32, // gym leader
- BGM_BATTLE33, // champion
- BGM_BATTLE36, // regi
- BGM_BATTLE34, // weather trio
- BGM_BATTLE35, // rival
- BGM_BATTLE38, // elite four
- BGM_BATTLE30, // aqua/magma leader
-};
-
-#endif // GUARD_SONGS_H
diff --git a/include/species.h b/include/species.h
deleted file mode 100644
index e33481afd..000000000
--- a/include/species.h
+++ /dev/null
@@ -1,452 +0,0 @@
-#ifndef GUARD_SPECIES_H
-#define GUARD_SPECIES_H
-
-enum {
- SPECIES_NONE, // 0x000
- SPECIES_BULBASAUR, // 0x001
- SPECIES_IVYSAUR, // 0x002
- SPECIES_VENUSAUR, // 0x003
- SPECIES_CHARMANDER, // 0x004
- SPECIES_CHARMELEON, // 0x005
- SPECIES_CHARIZARD, // 0x006
- SPECIES_SQUIRTLE, // 0x007
- SPECIES_WARTORTLE, // 0x008
- SPECIES_BLASTOISE, // 0x009
- SPECIES_CATERPIE, // 0x00a
- SPECIES_METAPOD, // 0x00b
- SPECIES_BUTTERFREE, // 0x00c
- SPECIES_WEEDLE, // 0x00d
- SPECIES_KAKUNA, // 0x00e
- SPECIES_BEEDRILL, // 0x00f
- SPECIES_PIDGEY, // 0x010
- SPECIES_PIDGEOTTO, // 0x011
- SPECIES_PIDGEOT, // 0x012
- SPECIES_RATTATA, // 0x013
- SPECIES_RATICATE, // 0x014
- SPECIES_SPEAROW, // 0x015
- SPECIES_FEAROW, // 0x016
- SPECIES_EKANS, // 0x017
- SPECIES_ARBOK, // 0x018
- SPECIES_PIKACHU, // 0x019
- SPECIES_RAICHU, // 0x01a
- SPECIES_SANDSHREW, // 0x01b
- SPECIES_SANDSLASH, // 0x01c
- SPECIES_NIDORAN_F, // 0x01d
- SPECIES_NIDORINA, // 0x01e
- SPECIES_NIDOQUEEN, // 0x01f
- SPECIES_NIDORAN_M, // 0x020
- SPECIES_NIDORINO, // 0x021
- SPECIES_NIDOKING, // 0x022
- SPECIES_CLEFAIRY, // 0x023
- SPECIES_CLEFABLE, // 0x024
- SPECIES_VULPIX, // 0x025
- SPECIES_NINETALES, // 0x026
- SPECIES_JIGGLYPUFF, // 0x027
- SPECIES_WIGGLYTUFF, // 0x028
- SPECIES_ZUBAT, // 0x029
- SPECIES_GOLBAT, // 0x02a
- SPECIES_ODDISH, // 0x02b
- SPECIES_GLOOM, // 0x02c
- SPECIES_VILEPLUME, // 0x02d
- SPECIES_PARAS, // 0x02e
- SPECIES_PARASECT, // 0x02f
- SPECIES_VENONAT, // 0x030
- SPECIES_VENOMOTH, // 0x031
- SPECIES_DIGLETT, // 0x032
- SPECIES_DUGTRIO, // 0x033
- SPECIES_MEOWTH, // 0x034
- SPECIES_PERSIAN, // 0x035
- SPECIES_PSYDUCK, // 0x036
- SPECIES_GOLDUCK, // 0x037
- SPECIES_MANKEY, // 0x038
- SPECIES_PRIMEAPE, // 0x039
- SPECIES_GROWLITHE, // 0x03a
- SPECIES_ARCANINE, // 0x03b
- SPECIES_POLIWAG, // 0x03c
- SPECIES_POLIWHIRL, // 0x03d
- SPECIES_POLIWRATH, // 0x03e
- SPECIES_ABRA, // 0x03f
- SPECIES_KADABRA, // 0x040
- SPECIES_ALAKAZAM, // 0x041
- SPECIES_MACHOP, // 0x042
- SPECIES_MACHOKE, // 0x043
- SPECIES_MACHAMP, // 0x044
- SPECIES_BELLSPROUT, // 0x045
- SPECIES_WEEPINBELL, // 0x046
- SPECIES_VICTREEBEL, // 0x047
- SPECIES_TENTACOOL, // 0x048
- SPECIES_TENTACRUEL, // 0x049
- SPECIES_GEODUDE, // 0x04a
- SPECIES_GRAVELER, // 0x04b
- SPECIES_GOLEM, // 0x04c
- SPECIES_PONYTA, // 0x04d
- SPECIES_RAPIDASH, // 0x04e
- SPECIES_SLOWPOKE, // 0x04f
- SPECIES_SLOWBRO, // 0x050
- SPECIES_MAGNEMITE, // 0x051
- SPECIES_MAGNETON, // 0x052
- SPECIES_FARFETCHD, // 0x053
- SPECIES_DODUO, // 0x054
- SPECIES_DODRIO, // 0x055
- SPECIES_SEEL, // 0x056
- SPECIES_DEWGONG, // 0x057
- SPECIES_GRIMER, // 0x058
- SPECIES_MUK, // 0x059
- SPECIES_SHELLDER, // 0x05a
- SPECIES_CLOYSTER, // 0x05b
- SPECIES_GASTLY, // 0x05c
- SPECIES_HAUNTER, // 0x05d
- SPECIES_GENGAR, // 0x05e
- SPECIES_ONIX, // 0x05f
- SPECIES_DROWZEE, // 0x060
- SPECIES_HYPNO, // 0x061
- SPECIES_KRABBY, // 0x062
- SPECIES_KINGLER, // 0x063
- SPECIES_VOLTORB, // 0x064
- SPECIES_ELECTRODE, // 0x065
- SPECIES_EXEGGCUTE, // 0x066
- SPECIES_EXEGGUTOR, // 0x067
- SPECIES_CUBONE, // 0x068
- SPECIES_MAROWAK, // 0x069
- SPECIES_HITMONLEE, // 0x06a
- SPECIES_HITMONCHAN, // 0x06b
- SPECIES_LICKITUNG, // 0x06c
- SPECIES_KOFFING, // 0x06d
- SPECIES_WEEZING, // 0x06e
- SPECIES_RHYHORN, // 0x06f
- SPECIES_RHYDON, // 0x070
- SPECIES_CHANSEY, // 0x071
- SPECIES_TANGELA, // 0x072
- SPECIES_KANGASKHAN, // 0x073
- SPECIES_HORSEA, // 0x074
- SPECIES_SEADRA, // 0x075
- SPECIES_GOLDEEN, // 0x076
- SPECIES_SEAKING, // 0x077
- SPECIES_STARYU, // 0x078
- SPECIES_STARMIE, // 0x079
- SPECIES_MR_MIME, // 0x07a
- SPECIES_SCYTHER, // 0x07b
- SPECIES_JYNX, // 0x07c
- SPECIES_ELECTABUZZ, // 0x07d
- SPECIES_MAGMAR, // 0x07e
- SPECIES_PINSIR, // 0x07f
- SPECIES_TAUROS, // 0x080
- SPECIES_MAGIKARP, // 0x081
- SPECIES_GYARADOS, // 0x082
- SPECIES_LAPRAS, // 0x083
- SPECIES_DITTO, // 0x084
- SPECIES_EEVEE, // 0x085
- SPECIES_VAPOREON, // 0x086
- SPECIES_JOLTEON, // 0x087
- SPECIES_FLAREON, // 0x088
- SPECIES_PORYGON, // 0x089
- SPECIES_OMANYTE, // 0x08a
- SPECIES_OMASTAR, // 0x08b
- SPECIES_KABUTO, // 0x08c
- SPECIES_KABUTOPS, // 0x08d
- SPECIES_AERODACTYL, // 0x08e
- SPECIES_SNORLAX, // 0x08f
- SPECIES_ARTICUNO, // 0x090
- SPECIES_ZAPDOS, // 0x091
- SPECIES_MOLTRES, // 0x092
- SPECIES_DRATINI, // 0x093
- SPECIES_DRAGONAIR, // 0x094
- SPECIES_DRAGONITE, // 0x095
- SPECIES_MEWTWO, // 0x096
- SPECIES_MEW, // 0x097
- SPECIES_CHIKORITA, // 0x098
- SPECIES_BAYLEEF, // 0x099
- SPECIES_MEGANIUM, // 0x09a
- SPECIES_CYNDAQUIL, // 0x09b
- SPECIES_QUILAVA, // 0x09c
- SPECIES_TYPHLOSION, // 0x09d
- SPECIES_TOTODILE, // 0x09e
- SPECIES_CROCONAW, // 0x09f
- SPECIES_FERALIGATR, // 0x0a0
- SPECIES_SENTRET, // 0x0a1
- SPECIES_FURRET, // 0x0a2
- SPECIES_HOOTHOOT, // 0x0a3
- SPECIES_NOCTOWL, // 0x0a4
- SPECIES_LEDYBA, // 0x0a5
- SPECIES_LEDIAN, // 0x0a6
- SPECIES_SPINARAK, // 0x0a7
- SPECIES_ARIADOS, // 0x0a8
- SPECIES_CROBAT, // 0x0a9
- SPECIES_CHINCHOU, // 0x0aa
- SPECIES_LANTURN, // 0x0ab
- SPECIES_PICHU, // 0x0ac
- SPECIES_CLEFFA, // 0x0ad
- SPECIES_IGGLYBUFF, // 0x0ae
- SPECIES_TOGEPI, // 0x0af
- SPECIES_TOGETIC, // 0x0b0
- SPECIES_NATU, // 0x0b1
- SPECIES_XATU, // 0x0b2
- SPECIES_MAREEP, // 0x0b3
- SPECIES_FLAAFFY, // 0x0b4
- SPECIES_AMPHAROS, // 0x0b5
- SPECIES_BELLOSSOM, // 0x0b6
- SPECIES_MARILL, // 0x0b7
- SPECIES_AZUMARILL, // 0x0b8
- SPECIES_SUDOWOODO, // 0x0b9
- SPECIES_POLITOED, // 0x0ba
- SPECIES_HOPPIP, // 0x0bb
- SPECIES_SKIPLOOM, // 0x0bc
- SPECIES_JUMPLUFF, // 0x0bd
- SPECIES_AIPOM, // 0x0be
- SPECIES_SUNKERN, // 0x0bf
- SPECIES_SUNFLORA, // 0x0c0
- SPECIES_YANMA, // 0x0c1
- SPECIES_WOOPER, // 0x0c2
- SPECIES_QUAGSIRE, // 0x0c3
- SPECIES_ESPEON, // 0x0c4
- SPECIES_UMBREON, // 0x0c5
- SPECIES_MURKROW, // 0x0c6
- SPECIES_SLOWKING, // 0x0c7
- SPECIES_MISDREAVUS, // 0x0c8
- SPECIES_UNOWN, // 0x0c9
- SPECIES_WOBBUFFET, // 0x0ca
- SPECIES_GIRAFARIG, // 0x0cb
- SPECIES_PINECO, // 0x0cc
- SPECIES_FORRETRESS, // 0x0cd
- SPECIES_DUNSPARCE, // 0x0ce
- SPECIES_GLIGAR, // 0x0cf
- SPECIES_STEELIX, // 0x0d0
- SPECIES_SNUBBULL, // 0x0d1
- SPECIES_GRANBULL, // 0x0d2
- SPECIES_QWILFISH, // 0x0d3
- SPECIES_SCIZOR, // 0x0d4
- SPECIES_SHUCKLE, // 0x0d5
- SPECIES_HERACROSS, // 0x0d6
- SPECIES_SNEASEL, // 0x0d7
- SPECIES_TEDDIURSA, // 0x0d8
- SPECIES_URSARING, // 0x0d9
- SPECIES_SLUGMA, // 0x0da
- SPECIES_MAGCARGO, // 0x0db
- SPECIES_SWINUB, // 0x0dc
- SPECIES_PILOSWINE, // 0x0dd
- SPECIES_CORSOLA, // 0x0de
- SPECIES_REMORAID, // 0x0df
- SPECIES_OCTILLERY, // 0x0e0
- SPECIES_DELIBIRD, // 0x0e1
- SPECIES_MANTINE, // 0x0e2
- SPECIES_SKARMORY, // 0x0e3
- SPECIES_HOUNDOUR, // 0x0e4
- SPECIES_HOUNDOOM, // 0x0e5
- SPECIES_KINGDRA, // 0x0e6
- SPECIES_PHANPY, // 0x0e7
- SPECIES_DONPHAN, // 0x0e8
- SPECIES_PORYGON2, // 0x0e9
- SPECIES_STANTLER, // 0x0ea
- SPECIES_SMEARGLE, // 0x0eb
- SPECIES_TYROGUE, // 0x0ec
- SPECIES_HITMONTOP, // 0x0ed
- SPECIES_SMOOCHUM, // 0x0ee
- SPECIES_ELEKID, // 0x0ef
- SPECIES_MAGBY, // 0x0f0
- SPECIES_MILTANK, // 0x0f1
- SPECIES_BLISSEY, // 0x0f2
- SPECIES_RAIKOU, // 0x0f3
- SPECIES_ENTEI, // 0x0f4
- SPECIES_SUICUNE, // 0x0f5
- SPECIES_LARVITAR, // 0x0f6
- SPECIES_PUPITAR, // 0x0f7
- SPECIES_TYRANITAR, // 0x0f8
- SPECIES_LUGIA, // 0x0f9
- SPECIES_HO_OH, // 0x0fa
- SPECIES_CELEBI, // 0x0fb
-
- SPECIES_OLD_UNOWN_B,
- SPECIES_OLD_UNOWN_C,
- SPECIES_OLD_UNOWN_D,
- SPECIES_OLD_UNOWN_E,
- SPECIES_OLD_UNOWN_F,
- SPECIES_OLD_UNOWN_G,
- SPECIES_OLD_UNOWN_H,
- SPECIES_OLD_UNOWN_I,
- SPECIES_OLD_UNOWN_J,
- SPECIES_OLD_UNOWN_K,
- SPECIES_OLD_UNOWN_L,
- SPECIES_OLD_UNOWN_M,
- SPECIES_OLD_UNOWN_N,
- SPECIES_OLD_UNOWN_O,
- SPECIES_OLD_UNOWN_P,
- SPECIES_OLD_UNOWN_Q,
- SPECIES_OLD_UNOWN_R,
- SPECIES_OLD_UNOWN_S,
- SPECIES_OLD_UNOWN_T,
- SPECIES_OLD_UNOWN_U,
- SPECIES_OLD_UNOWN_V,
- SPECIES_OLD_UNOWN_W,
- SPECIES_OLD_UNOWN_X,
- SPECIES_OLD_UNOWN_Y,
- SPECIES_OLD_UNOWN_Z,
-
- SPECIES_TREECKO, // 0x115
- SPECIES_GROVYLE, // 0x116
- SPECIES_SCEPTILE, // 0x117
- SPECIES_TORCHIC, // 0x118
- SPECIES_COMBUSKEN, // 0x119
- SPECIES_BLAZIKEN, // 0x11a
- SPECIES_MUDKIP, // 0x11b
- SPECIES_MARSHTOMP, // 0x11c
- SPECIES_SWAMPERT, // 0x11d
- SPECIES_POOCHYENA, // 0x11e
- SPECIES_MIGHTYENA, // 0x11f
- SPECIES_ZIGZAGOON, // 0x120
- SPECIES_LINOONE, // 0x121
- SPECIES_WURMPLE, // 0x122
- SPECIES_SILCOON, // 0x123
- SPECIES_BEAUTIFLY, // 0x124
- SPECIES_CASCOON, // 0x125
- SPECIES_DUSTOX, // 0x126
- SPECIES_LOTAD, // 0x127
- SPECIES_LOMBRE, // 0x128
- SPECIES_LUDICOLO, // 0x129
- SPECIES_SEEDOT, // 0x12a
- SPECIES_NUZLEAF, // 0x12b
- SPECIES_SHIFTRY, // 0x12c
- SPECIES_NINCADA, // 0x12d
- SPECIES_NINJASK, // 0x12e
- SPECIES_SHEDINJA, // 0x12f
- SPECIES_TAILLOW, // 0x130
- SPECIES_SWELLOW, // 0x131
- SPECIES_SHROOMISH, // 0x132
- SPECIES_BRELOOM, // 0x133
- SPECIES_SPINDA, // 0x134
- SPECIES_WINGULL, // 0x135
- SPECIES_PELIPPER, // 0x136
- SPECIES_SURSKIT, // 0x137
- SPECIES_MASQUERAIN, // 0x138
- SPECIES_WAILMER, // 0x139
- SPECIES_WAILORD, // 0x13a
- SPECIES_SKITTY, // 0x13b
- SPECIES_DELCATTY, // 0x13c
- SPECIES_KECLEON, // 0x13d
- SPECIES_BALTOY, // 0x13e
- SPECIES_CLAYDOL, // 0x13f
- SPECIES_NOSEPASS, // 0x140
- SPECIES_TORKOAL, // 0x141
- SPECIES_SABLEYE, // 0x142
- SPECIES_BARBOACH, // 0x143
- SPECIES_WHISCASH, // 0x144
- SPECIES_LUVDISC, // 0x145
- SPECIES_CORPHISH, // 0x146
- SPECIES_CRAWDAUNT, // 0x147
- SPECIES_FEEBAS, // 0x148
- SPECIES_MILOTIC, // 0x149
- SPECIES_CARVANHA, // 0x14a
- SPECIES_SHARPEDO, // 0x14b
- SPECIES_TRAPINCH, // 0x14c
- SPECIES_VIBRAVA, // 0x14d
- SPECIES_FLYGON, // 0x14e
- SPECIES_MAKUHITA, // 0x14f
- SPECIES_HARIYAMA, // 0x150
- SPECIES_ELECTRIKE, // 0x151
- SPECIES_MANECTRIC, // 0x152
- SPECIES_NUMEL, // 0x153
- SPECIES_CAMERUPT, // 0x154
- SPECIES_SPHEAL, // 0x155
- SPECIES_SEALEO, // 0x156
- SPECIES_WALREIN, // 0x157
- SPECIES_CACNEA, // 0x158
- SPECIES_CACTURNE, // 0x159
- SPECIES_SNORUNT, // 0x15a
- SPECIES_GLALIE, // 0x15b
- SPECIES_LUNATONE, // 0x15c
- SPECIES_SOLROCK, // 0x15d
- SPECIES_AZURILL, // 0x15e
- SPECIES_SPOINK, // 0x15f
- SPECIES_GRUMPIG, // 0x160
- SPECIES_PLUSLE, // 0x161
- SPECIES_MINUN, // 0x162
- SPECIES_MAWILE, // 0x163
- SPECIES_MEDITITE, // 0x164
- SPECIES_MEDICHAM, // 0x165
- SPECIES_SWABLU, // 0x166
- SPECIES_ALTARIA, // 0x167
- SPECIES_WYNAUT, // 0x168
- SPECIES_DUSKULL, // 0x169
- SPECIES_DUSCLOPS, // 0x16a
- SPECIES_ROSELIA, // 0x16b
- SPECIES_SLAKOTH, // 0x16c
- SPECIES_VIGOROTH, // 0x16d
- SPECIES_SLAKING, // 0x16e
- SPECIES_GULPIN, // 0x16f
- SPECIES_SWALOT, // 0x170
- SPECIES_TROPIUS, // 0x171
- SPECIES_WHISMUR, // 0x172
- SPECIES_LOUDRED, // 0x173
- SPECIES_EXPLOUD, // 0x174
- SPECIES_CLAMPERL, // 0x175
- SPECIES_HUNTAIL, // 0x176
- SPECIES_GOREBYSS, // 0x177
- SPECIES_ABSOL, // 0x178
- SPECIES_SHUPPET, // 0x179
- SPECIES_BANETTE, // 0x17a
- SPECIES_SEVIPER, // 0x17b
- SPECIES_ZANGOOSE, // 0x17c
- SPECIES_RELICANTH, // 0x17d
- SPECIES_ARON, // 0x17e
- SPECIES_LAIRON, // 0x17f
- SPECIES_AGGRON, // 0x180
- SPECIES_CASTFORM, // 0x181
- SPECIES_VOLBEAT, // 0x182
- SPECIES_ILLUMISE, // 0x183
- SPECIES_LILEEP, // 0x184
- SPECIES_CRADILY, // 0x185
- SPECIES_ANORITH, // 0x186
- SPECIES_ARMALDO, // 0x187
- SPECIES_RALTS, // 0x188
- SPECIES_KIRLIA, // 0x189
- SPECIES_GARDEVOIR, // 0x18a
- SPECIES_BAGON, // 0x18b
- SPECIES_SHELGON, // 0x18c
- SPECIES_SALAMENCE, // 0x18d
- SPECIES_BELDUM, // 0x18e
- SPECIES_METANG, // 0x18f
- SPECIES_METAGROSS, // 0x190
- SPECIES_REGIROCK, // 0x191
- SPECIES_REGICE, // 0x192
- SPECIES_REGISTEEL, // 0x193
- SPECIES_KYOGRE, // 0x194
- SPECIES_GROUDON, // 0x195
- SPECIES_RAYQUAZA, // 0x196
- SPECIES_LATIAS, // 0x197
- SPECIES_LATIOS, // 0x198
- SPECIES_JIRACHI, // 0x199
- SPECIES_DEOXYS, // 0x19a
- SPECIES_CHIMECHO, // 0x19b
- SPECIES_EGG, // 0x19c
-
- SPECIES_UNOWN_B,
- SPECIES_UNOWN_C,
- SPECIES_UNOWN_D,
- SPECIES_UNOWN_E,
- SPECIES_UNOWN_F,
- SPECIES_UNOWN_G,
- SPECIES_UNOWN_H,
- SPECIES_UNOWN_I,
- SPECIES_UNOWN_J,
- SPECIES_UNOWN_K,
- SPECIES_UNOWN_L,
- SPECIES_UNOWN_M,
- SPECIES_UNOWN_N,
- SPECIES_UNOWN_O,
- SPECIES_UNOWN_P,
- SPECIES_UNOWN_Q,
- SPECIES_UNOWN_R,
- SPECIES_UNOWN_S,
- SPECIES_UNOWN_T,
- SPECIES_UNOWN_U,
- SPECIES_UNOWN_V,
- SPECIES_UNOWN_W,
- SPECIES_UNOWN_X,
- SPECIES_UNOWN_Y,
- SPECIES_UNOWN_Z,
- SPECIES_UNOWN_EMARK,
- SPECIES_UNOWN_QMARK,
-};
-
-#define NUM_SPECIES SPECIES_EGG
-
-#endif // GUARD_SPECIES_H
diff --git a/include/sprite.h b/include/sprite.h
index 5682a7c1d..b72c09989 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -120,10 +120,6 @@ union AffineAnimCmd
{.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
#define AFFINEANIMCMD_END \
{.type = AFFINEANIMCMDTYPE_END}
-#define AFFINEANIMCMD_LOOP(_count) \
- {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}}
-#define AFFINEANIMCMD_JUMP(_target) \
- {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
struct AffineAnimState
{
@@ -172,6 +168,8 @@ struct SpriteTemplate
void (*callback)(struct Sprite *);
};
+typedef void (*SpriteCallback)(struct Sprite *);
+
struct Sprite
{
/*0x00*/ struct OamData oam;
@@ -180,7 +178,7 @@ struct Sprite
/*0x10*/ const union AffineAnimCmd *const *affineAnims;
/*0x14*/ const struct SpriteTemplate *template;
/*0x18*/ const struct SubspriteTable *subspriteTables;
- /*0x1C*/ void (*callback)(struct Sprite *);
+ /*0x1C*/ SpriteCallback callback;
/*0x20*/ struct Coords16 pos1;
/*0x24*/ struct Coords16 pos2;
@@ -195,14 +193,7 @@ struct Sprite
/*0x2D*/ u8 animLoopCounter;
// general purpose data fields
- /*0x2E*/ s16 data0;
- /*0x30*/ s16 data1;
- /*0x32*/ s16 data2;
- /*0x34*/ s16 data3;
- /*0x36*/ s16 data4;
- /*0x38*/ s16 data5;
- /*0x3A*/ s16 data6;
- /*0x3C*/ s16 data7;
+ /*0x2E*/ s16 data[8];
/*0x3E*/ u16 inUse:1; //1
u16 coordOffsetEnabled:1; //2
@@ -229,12 +220,23 @@ struct Sprite
/*0x43*/ u8 subpriority;
};
+struct OamMatrix
+{
+ s16 a;
+ s16 b;
+ s16 c;
+ s16 d;
+};
+
extern const struct OamData gDummyOamData;
extern const union AnimCmd *const gDummySpriteAnimTable[];
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
+extern u8 gReservedSpritePaletteCount;
+
+extern u8 gOamLimit;
extern struct Sprite gSprites[];
@@ -244,7 +246,7 @@ void BuildOamBuffer(void);
u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
u8 CreateInvisibleSprite(void (*callback)(struct Sprite *));
-u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
+u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
void DestroySprite(struct Sprite *sprite);
void ResetOamRange(u8 a, u8 b);
void LoadOam(void);
@@ -252,12 +254,12 @@ void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d);
void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode);
void SpriteCallbackDummy(struct Sprite *sprite);
void ProcessSpriteCopyRequests(void);
-void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size);
+void RequestSpriteCopy(const void *src, u8 *dest, u16 size);
void FreeSpriteTiles(struct Sprite *sprite);
void FreeSpritePalette(struct Sprite *sprite);
void FreeSpriteOamMatrix(struct Sprite *sprite);
void DestroySpriteAndFreeResources(struct Sprite *sprite);
-void sub_800142C(u32 a1, u32 a2, u16 *a3, u16 a4, u32 a5);
+void DrawPartyMenuMonText(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 a5);
void AnimateSprite(struct Sprite *sprite);
void StartSpriteAnim(struct Sprite *sprite, u8 animNum);
void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum);
@@ -299,4 +301,6 @@ u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
+extern const struct SpriteTemplate gDummySpriteTemplate;
+
#endif // GUARD_SPRITE_H
diff --git a/include/start_menu.h b/include/start_menu.h
index 5169b3bf0..d3f77dc99 100644
--- a/include/start_menu.h
+++ b/include/start_menu.h
@@ -5,7 +5,7 @@
void CreateStartMenuTask(void (*func)(u8));
void sub_80712B4(u8 taskId);
void sub_8071310(void);
-void InitSaveDialog(void);
+void ScrSpecial_DoSaveDialog(void);
void sub_8071B28(void);
#endif // GUARD_STARTER_CHOOSE_H
diff --git a/include/string_util.h b/include/string_util.h
index 7a4bfa4c1..55fa988b4 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -29,7 +29,7 @@ u8 *ConvertIntToHexStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8
u8 *ConvertIntToDecimalString(u8 *dest, s32 value);
u8 *StringExpandPlaceholders(u8 *dest, const u8 *src);
u8 *StringBraille(u8 *dest, const u8 *src);
-u8 *GetExpandedPlaceholder(u32 id);
+const u8 *GetExpandedPlaceholder(u32 id);
u8 *StringFill(u8 *dest, u8 c, u16 n);
u8 *StringCopyPadded(u8 *dest, const u8 *src, u8 c, u16 n);
u8 *StringFillWithTerminator(u8 *dest, u16 n);
diff --git a/include/strings2.h b/include/strings2.h
index 600bb2d31..8052c6c4a 100644
--- a/include/strings2.h
+++ b/include/strings2.h
@@ -319,4 +319,8 @@ extern const u8 gOtherText_OK[];
// wallclock
extern const u8 gOtherText_CorrectTimePrompt[];
+#if GERMAN
+extern const u8 deuOtherText_ForgotAndLearned[];
+#endif
+
#endif // GUARD_STRINGS2_H
diff --git a/include/text.h b/include/text.h
index 9a70dec11..ebc4ebe7e 100644
--- a/include/text.h
+++ b/include/text.h
@@ -2,6 +2,7 @@
#define GUARD_TEXT_H
#define CHAR_SPACE 0x00
+#define CHAR_SONG_WORD_SEPARATOR 0x37 // separates words in the bard song. Not sure if it's used for anything else
#define CHAR_0 0xA1
#define CHAR_QUESTION_MARK 0xAC
#define CHAR_PERIOD 0xAD
@@ -125,7 +126,7 @@ struct Window
/*0x20*/ const u8 *text;
/*0x24*/ u8 *tileData;
/*0x28*/ u16 *tilemap;
- /*0x2C*/ struct WindowConfig *config;
+ /*0x2C*/ const struct WindowConfig *config;
};
extern vu16 *const gBGControlRegs[];
@@ -202,6 +203,7 @@ extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
+extern u8 gTileBuffer[];
void LoadFontDefaultPalette(const struct WindowConfig *winConfig);
void SetUpWindowConfig(const struct WindowConfig *winConfig);
@@ -244,8 +246,8 @@ u8 sub_8004D38(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 l
u8 sub_8004DB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top, u16 a6);
u8 sub_8004E24(struct Window *win);
void sub_8004E28(struct Window *win, u8 *foreground, u8 *background, u8 *shadow);
-void sub_8004E3C(struct WindowConfig *winConfig, u8 *tileData, const u8 *text);
-u8 GetStringWidthGivenWindowConfig(struct WindowConfig *winConfig, const u8 *s);
+void sub_8004E3C(const struct WindowConfig *winConfig, u8 *tileData, const u8 *text);
+u8 GetStringWidthGivenWindowConfig(const struct WindowConfig *winConfig, const u8 *s);
void ConvertInternationalString(u8 *s, u8 language);
void StripExtCtrlCodes(u8 *str);
s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2);
diff --git a/include/text_window.h b/include/text_window.h
index afd645540..7df1453ca 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -5,8 +5,8 @@
struct FrameGraphics
{
- u8 *tiles;
- u16 *palette;
+ const u8 *tiles;
+ const u16 *palette;
};
u16 SetTextWindowBaseTileNum(u16 baseTileNum);
diff --git a/include/trade.h b/include/trade.h
new file mode 100644
index 000000000..46f58a802
--- /dev/null
+++ b/include/trade.h
@@ -0,0 +1,61 @@
+
+#ifndef GUARD_TRADE_H
+#define GUARD_TRADE_H
+
+struct TradeEwramSubstruct2 {
+ /*0x0000*/ u8 filler_0000;
+ /*0x0004*/ struct Window window;
+ /*0x0034*/ u8 textWindowBaseTileNum;
+ /*0x0038*/ struct Pokemon pokemon;
+ /*0x009c*/ u8 unk_009c;
+ /*0x009d*/ u8 unk_009d;
+ /*0x009e*/ u16 linkData[10];
+ /*0x00b2*/ u8 unk_00b2;
+ /*0x00b3*/ u8 unk_00b3;
+ /*0x00b4*/ u16 unk_00b4;
+ /*0x00b6*/ u16 unk_00b6;
+ // Sprite indices
+ /*0x00b8*/ u8 pokePicSpriteIdxs[2];
+ /*0x00ba*/ u8 unk_00ba;
+ /*0x00bb*/ u8 unk_00bb;
+ /*0x00bc*/ u8 unk_00bc;
+ /*0x00bd*/ u8 unk_00bd;
+ // Timer
+ /*0x00c0*/ u32 unk_00c0;
+ // Scene index
+ /*0x00c4*/ u16 unk_00c4;
+ /*0x00c6*/ u8 filler_00c6[0x3c];
+ /*0x0102*/ u8 unk_0102;
+ /*0x0103*/ u8 unk_0103;
+ /*0x0104*/ u16 unk_0104;
+ /*0x0106*/ u16 unk_0106;
+ /*0x0108*/ u16 unk_0108;
+ /*0x010a*/ u16 unk_010a;
+ /*0x010c*/ u16 unk_010c;
+ /*0x010e*/ s16 unk_010e;
+ /*0x0110*/ s16 bg1vofs;
+ /*0x0112*/ s16 bg1hofs;
+ /*0x0114*/ s16 bg2vofs;
+ /*0x0116*/ s16 bg2hofs;
+ /*0x0118*/ u16 unk_0118;
+ /*0x011a*/ u16 unk_011a;
+ /*0x011c*/ u16 unk_011c;
+ /*0x011e*/ u8 isLinkTrade;
+ /*0x0120*/ u16 tradeSpecies[2];
+ /*0x0124*/ u16 unk_0124;
+};
+
+extern struct TradeEwramSubstruct2 *gUnknown_03004828;
+extern const u16 gUnknown_0820C9F8[][16];
+extern const u32 gUnknown_0820CA98[];
+extern const u16 gUnknown_0820F798[];
+
+void sub_8047CD8(void);
+void sub_804E174(void);
+extern const u8 gOtherText_MaleSymbol3[2];
+extern const u8 gOtherText_FemaleSymbol3[2];
+extern const u8 gOtherText_GenderlessSymbol[2];
+
+void sub_804E22C(void);
+
+#endif //POKERUBY_TRADE_H
diff --git a/include/trader.h b/include/trader.h
index 24a9f2a07..832a04b65 100644
--- a/include/trader.h
+++ b/include/trader.h
@@ -1,6 +1,7 @@
#ifndef GUARD_TRADER_H
#define GUARD_TRADER_H
-void sub_81099CC(void);
+void TraderSetup(void);
+void sub_8109A20(void);
#endif // GUARD_TRADER_H
diff --git a/include/trainer.h b/include/trainer.h
index 2e0beb342..e8f2776d2 100644
--- a/include/trainer.h
+++ b/include/trainer.h
@@ -17,83 +17,83 @@
#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
enum {
- TRAINER_CLASS_AQUA_LEADER,
- TRAINER_CLASS_TEAM_AQUA_M,
- TRAINER_CLASS_TEAM_AQUA_F,
- TRAINER_CLASS_AROMA_LADY,
- TRAINER_CLASS_RUIN_MANIAC,
- TRAINER_CLASS_INTERVIEWER,
- TRAINER_CLASS_TUBER_F,
- TRAINER_CLASS_TUBER_M,
- TRAINER_CLASS_COOL_TRAINER_M,
- TRAINER_CLASS_COOL_TRAINER_F,
- TRAINER_CLASS_HEX_MANIAC,
- TRAINER_CLASS_LADY,
- TRAINER_CLASS_BEAUTY,
- TRAINER_CLASS_RICH_BOY,
- TRAINER_CLASS_POKEMANIAC,
- TRAINER_CLASS_SWIMMER_M,
- TRAINER_CLASS_BLACK_BELT,
- TRAINER_CLASS_GUITARIST,
- TRAINER_CLASS_KINDLER,
- TRAINER_CLASS_CAMPER,
- TRAINER_CLASS_BUG_MANIAC,
- TRAINER_CLASS_PSYCHIC_M,
- TRAINER_CLASS_PSYCHIC_F,
- TRAINER_CLASS_GENTLEMAN,
- TRAINER_CLASS_ELITE_FOUR_M,
- TRAINER_CLASS_ELITE_FOUR_F,
- TRAINER_CLASS_LEADER_F,
- TRAINER_CLASS_LEADER_M,
- TRAINER_CLASS_LEADER_MF,
- TRAINER_CLASS_SCHOOL_KID_M,
- TRAINER_CLASS_SCHOOL_KID_F,
- TRAINER_CLASS_SR_AND_JR,
- TRAINER_CLASS_POKEFAN_M,
- TRAINER_CLASS_POKEFAN_F,
- TRAINER_CLASS_EXPERT_M,
- TRAINER_CLASS_EXPERT_F,
- TRAINER_CLASS_YOUNGSTER,
- TRAINER_CLASS_CHAMPION,
- TRAINER_CLASS_FISHERMAN,
- TRAINER_CLASS_CYCLING_TRIATHLETE_M,
- TRAINER_CLASS_CYCLING_TRIATHLETE_F,
- TRAINER_CLASS_RUNNING_TRIATHLETE_M,
- TRAINER_CLASS_RUNNING_TRIATHLETE_F,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
- TRAINER_CLASS_DRAGON_TAMER,
- TRAINER_CLASS_BIRD_KEEPER,
- TRAINER_CLASS_NINJA_BOY,
- TRAINER_CLASS_BATTLE_GIRL,
- TRAINER_CLASS_PARASOL_LADY,
- TRAINER_CLASS_SWIMMER_F,
- TRAINER_CLASS_PICNICKER,
- TRAINER_CLASS_TWINS,
- TRAINER_CLASS_SAILOR,
- TRAINER_CLASS_BOARDER_1,
- TRAINER_CLASS_BOARDER_2,
- TRAINER_CLASS_COLLECTOR,
- TRAINER_CLASS_WALLY,
- TRAINER_CLASS_BRENDAN_1,
- TRAINER_CLASS_BRENDAN_2,
- TRAINER_CLASS_BRENDAN_3,
- TRAINER_CLASS_MAY_1,
- TRAINER_CLASS_MAY_2,
- TRAINER_CLASS_MAY_3,
- TRAINER_CLASS_POKEMON_BREEDER_M,
- TRAINER_CLASS_POKEMON_BREEDER_F,
- TRAINER_CLASS_POKEMON_RANGER_M,
- TRAINER_CLASS_POKEMON_RANGER_F,
- TRAINER_CLASS_MAGMA_LEADER,
- TRAINER_CLASS_TEAM_MAGMA_M,
- TRAINER_CLASS_TEAM_MAGMA_F,
- TRAINER_CLASS_LASS,
- TRAINER_CLASS_BUG_CATCHER,
- TRAINER_CLASS_HIKER,
- TRAINER_CLASS_YOUNG_COUPLE,
- TRAINER_CLASS_OLD_COUPLE,
- TRAINER_CLASS_SIS_AND_BRO
+ FACILITY_CLASS_AQUA_LEADER,
+ FACILITY_CLASS_TEAM_AQUA_M,
+ FACILITY_CLASS_TEAM_AQUA_F,
+ FACILITY_CLASS_AROMA_LADY,
+ FACILITY_CLASS_RUIN_MANIAC,
+ FACILITY_CLASS_INTERVIEWER,
+ FACILITY_CLASS_TUBER_F,
+ FACILITY_CLASS_TUBER_M,
+ FACILITY_CLASS_COOL_TRAINER_M,
+ FACILITY_CLASS_COOL_TRAINER_F,
+ FACILITY_CLASS_HEX_MANIAC,
+ FACILITY_CLASS_LADY,
+ FACILITY_CLASS_BEAUTY,
+ FACILITY_CLASS_RICH_BOY,
+ FACILITY_CLASS_POKEMANIAC,
+ FACILITY_CLASS_SWIMMER_M,
+ FACILITY_CLASS_BLACK_BELT,
+ FACILITY_CLASS_GUITARIST,
+ FACILITY_CLASS_KINDLER,
+ FACILITY_CLASS_CAMPER,
+ FACILITY_CLASS_BUG_MANIAC,
+ FACILITY_CLASS_PSYCHIC_M,
+ FACILITY_CLASS_PSYCHIC_F,
+ FACILITY_CLASS_GENTLEMAN,
+ FACILITY_CLASS_ELITE_FOUR_M,
+ FACILITY_CLASS_ELITE_FOUR_F,
+ FACILITY_CLASS_LEADER_F,
+ FACILITY_CLASS_LEADER_M,
+ FACILITY_CLASS_LEADER_MF,
+ FACILITY_CLASS_SCHOOL_KID_M,
+ FACILITY_CLASS_SCHOOL_KID_F,
+ FACILITY_CLASS_SR_AND_JR,
+ FACILITY_CLASS_POKEFAN_M,
+ FACILITY_CLASS_POKEFAN_F,
+ FACILITY_CLASS_EXPERT_M,
+ FACILITY_CLASS_EXPERT_F,
+ FACILITY_CLASS_YOUNGSTER,
+ FACILITY_CLASS_CHAMPION,
+ FACILITY_CLASS_FISHERMAN,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_M,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_F,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_M,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_F,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
+ FACILITY_CLASS_DRAGON_TAMER,
+ FACILITY_CLASS_BIRD_KEEPER,
+ FACILITY_CLASS_NINJA_BOY,
+ FACILITY_CLASS_BATTLE_GIRL,
+ FACILITY_CLASS_PARASOL_LADY,
+ FACILITY_CLASS_SWIMMER_F,
+ FACILITY_CLASS_PICNICKER,
+ FACILITY_CLASS_TWINS,
+ FACILITY_CLASS_SAILOR,
+ FACILITY_CLASS_BOARDER_1,
+ FACILITY_CLASS_BOARDER_2,
+ FACILITY_CLASS_COLLECTOR,
+ FACILITY_CLASS_WALLY,
+ FACILITY_CLASS_BRENDAN_1,
+ FACILITY_CLASS_BRENDAN_2,
+ FACILITY_CLASS_BRENDAN_3,
+ FACILITY_CLASS_MAY_1,
+ FACILITY_CLASS_MAY_2,
+ FACILITY_CLASS_MAY_3,
+ FACILITY_CLASS_POKEMON_BREEDER_M,
+ FACILITY_CLASS_POKEMON_BREEDER_F,
+ FACILITY_CLASS_POKEMON_RANGER_M,
+ FACILITY_CLASS_POKEMON_RANGER_F,
+ FACILITY_CLASS_MAGMA_LEADER,
+ FACILITY_CLASS_TEAM_MAGMA_M,
+ FACILITY_CLASS_TEAM_MAGMA_F,
+ FACILITY_CLASS_LASS,
+ FACILITY_CLASS_BUG_CATCHER,
+ FACILITY_CLASS_HIKER,
+ FACILITY_CLASS_YOUNG_COUPLE,
+ FACILITY_CLASS_OLD_COUPLE,
+ FACILITY_CLASS_SIS_AND_BRO
};
enum {
@@ -183,64 +183,64 @@ enum {
};
enum {
- TRAINER_CLASS_NAME_POKEMON_TRAINER_1,
- TRAINER_CLASS_NAME_POKEMON_TRAINER_2,
- TRAINER_CLASS_NAME_AQUA_LEADER,
- TRAINER_CLASS_NAME_TEAM_AQUA,
- TRAINER_CLASS_NAME_AQUA_ADMIN,
- TRAINER_CLASS_NAME_AROMA_LADY,
- TRAINER_CLASS_NAME_RUIN_MANIAC,
- TRAINER_CLASS_NAME_INTERVIEWER,
- TRAINER_CLASS_NAME_TUBER_F,
- TRAINER_CLASS_NAME_TUBER_M,
- TRAINER_CLASS_NAME_COOL_TRAINER,
- TRAINER_CLASS_NAME_HEX_MANIAC,
- TRAINER_CLASS_NAME_LADY,
- TRAINER_CLASS_NAME_BEAUTY,
- TRAINER_CLASS_NAME_RICH_BOY,
- TRAINER_CLASS_NAME_POKEMANIAC,
- TRAINER_CLASS_NAME_SWIMMER_M,
- TRAINER_CLASS_NAME_BLACK_BELT,
- TRAINER_CLASS_NAME_GUITARIST,
- TRAINER_CLASS_NAME_KINDLER,
- TRAINER_CLASS_NAME_CAMPER,
- TRAINER_CLASS_NAME_BUG_MANIAC,
- TRAINER_CLASS_NAME_PSYCHIC,
- TRAINER_CLASS_NAME_GENTLEMAN,
- TRAINER_CLASS_NAME_ELITE_FOUR,
- TRAINER_CLASS_NAME_LEADER,
- TRAINER_CLASS_NAME_SCHOOL_KID,
- TRAINER_CLASS_NAME_SR_AND_JR,
- TRAINER_CLASS_NAME_WINSTRATE,
- TRAINER_CLASS_NAME_POKEFAN,
- TRAINER_CLASS_NAME_EXPERT,
- TRAINER_CLASS_NAME_YOUNGSTER,
- TRAINER_CLASS_NAME_CHAMPION,
- TRAINER_CLASS_NAME_FISHERMAN,
- TRAINER_CLASS_NAME_TRIATHLETE,
- TRAINER_CLASS_NAME_DRAGON_TAMER,
- TRAINER_CLASS_NAME_BIRD_KEEPER,
- TRAINER_CLASS_NAME_NINJA_BOY,
- TRAINER_CLASS_NAME_BATTLE_GIRL,
- TRAINER_CLASS_NAME_PARASOL_LADY,
- TRAINER_CLASS_NAME_SWIMMER_F,
- TRAINER_CLASS_NAME_PICNICKER,
- TRAINER_CLASS_NAME_TWINS,
- TRAINER_CLASS_NAME_SAILOR,
- TRAINER_CLASS_NAME_BOARDER,
- TRAINER_CLASS_NAME_COLLECTOR,
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3,
- TRAINER_CLASS_NAME_POKEMON_BREEDER,
- TRAINER_CLASS_NAME_POKEMON_RANGER,
- TRAINER_CLASS_NAME_MAGMA_LEADER,
- TRAINER_CLASS_NAME_TEAM_MAGMA,
- TRAINER_CLASS_NAME_MAGMA_ADMIN,
- TRAINER_CLASS_NAME_LASS,
- TRAINER_CLASS_NAME_BUG_CATCHER,
- TRAINER_CLASS_NAME_HIKER,
- TRAINER_CLASS_NAME_YOUNG_COUPLE,
- TRAINER_CLASS_NAME_OLD_COUPLE,
- TRAINER_CLASS_NAME_SIS_AND_BRO
+ TRAINER_CLASS_POKEMON_TRAINER_1,
+ TRAINER_CLASS_POKEMON_TRAINER_2,
+ TRAINER_CLASS_AQUA_LEADER,
+ TRAINER_CLASS_TEAM_AQUA,
+ TRAINER_CLASS_AQUA_ADMIN,
+ TRAINER_CLASS_AROMA_LADY,
+ TRAINER_CLASS_RUIN_MANIAC,
+ TRAINER_CLASS_INTERVIEWER,
+ TRAINER_CLASS_TUBER_F,
+ TRAINER_CLASS_TUBER_M,
+ TRAINER_CLASS_COOL_TRAINER,
+ TRAINER_CLASS_HEX_MANIAC,
+ TRAINER_CLASS_LADY,
+ TRAINER_CLASS_BEAUTY,
+ TRAINER_CLASS_RICH_BOY,
+ TRAINER_CLASS_POKEMANIAC,
+ TRAINER_CLASS_SWIMMER_M,
+ TRAINER_CLASS_BLACK_BELT,
+ TRAINER_CLASS_GUITARIST,
+ TRAINER_CLASS_KINDLER,
+ TRAINER_CLASS_CAMPER,
+ TRAINER_CLASS_BUG_MANIAC,
+ TRAINER_CLASS_PSYCHIC,
+ TRAINER_CLASS_GENTLEMAN,
+ TRAINER_CLASS_ELITE_FOUR,
+ TRAINER_CLASS_LEADER,
+ TRAINER_CLASS_SCHOOL_KID,
+ TRAINER_CLASS_SR_AND_JR,
+ TRAINER_CLASS_WINSTRATE,
+ TRAINER_CLASS_POKEFAN,
+ TRAINER_CLASS_EXPERT,
+ TRAINER_CLASS_YOUNGSTER,
+ TRAINER_CLASS_CHAMPION,
+ TRAINER_CLASS_FISHERMAN,
+ TRAINER_CLASS_TRIATHLETE,
+ TRAINER_CLASS_DRAGON_TAMER,
+ TRAINER_CLASS_BIRD_KEEPER,
+ TRAINER_CLASS_NINJA_BOY,
+ TRAINER_CLASS_BATTLE_GIRL,
+ TRAINER_CLASS_PARASOL_LADY,
+ TRAINER_CLASS_SWIMMER_F,
+ TRAINER_CLASS_PICNICKER,
+ TRAINER_CLASS_TWINS,
+ TRAINER_CLASS_SAILOR,
+ TRAINER_CLASS_BOARDER,
+ TRAINER_CLASS_COLLECTOR,
+ TRAINER_CLASS_POKEMON_TRAINER_3,
+ TRAINER_CLASS_POKEMON_BREEDER,
+ TRAINER_CLASS_POKEMON_RANGER,
+ TRAINER_CLASS_MAGMA_LEADER,
+ TRAINER_CLASS_TEAM_MAGMA,
+ TRAINER_CLASS_MAGMA_ADMIN,
+ TRAINER_CLASS_LASS,
+ TRAINER_CLASS_BUG_CATCHER,
+ TRAINER_CLASS_HIKER,
+ TRAINER_CLASS_YOUNG_COUPLE,
+ TRAINER_CLASS_OLD_COUPLE,
+ TRAINER_CLASS_SIS_AND_BRO
};
#endif // GUARD_TRAINER_H
diff --git a/include/trainer_see.h b/include/trainer_see.h
index b80a41641..e36df981b 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -5,33 +5,7 @@
#include "task.h"
bool8 CheckTrainers(void);
-bool8 CheckTrainer(u8);
-u8 TrainerCanApproachPlayer(struct MapObject *);
-bool8 IsTrainerInRangeSouth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
-bool8 IsTrainerInRangeNorth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
-bool8 IsTrainerInRangeWest(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
-bool8 IsTrainerInRangeEast(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
-bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *, u8, u8);
-void sub_80842C8(struct MapObject *, u8);
-void sub_80842FC(void (*func)(u8));
-void RunTrainerSeeFuncList(u8);
-u8 sub_8084394(void);
-s8 sub_8084398(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_80843DC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_808441C(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_8084478(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_8084534(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_8084578(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_80845AC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_80845C8(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_80845FC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-s8 sub_80846C8(u8 taskId, struct Task *task, struct MapObject *trainerObj);
-void sub_80846E4(u8 taskId);
void sub_8084794(struct MapObject *var);
-void sub_80847C8(void);
-void sub_80847D8(u8);
-void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3);
-void objc_exclamation_mark_probably(struct Sprite *sprite);
+void ScrSpecial_EndTrainerApproach(void);
#endif // GUARD_TRAINER_SEE_H
diff --git a/include/tv.h b/include/tv.h
index 3243fff2c..2edccb365 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -18,8 +18,6 @@ enum
TVSHOW_MASS_OUTBREAK = 41,
};
-extern u8 *const gUnknown_083D1464[3];
-
void ClearTVShowData(void);
u8 sub_80BDEAC(u8 *);
void sub_80BE028(void);
@@ -28,6 +26,7 @@ void sub_80BE138(TVShow *show);
void sub_80BE160(TVShow *show);
void sub_80BE160(TVShow *);
void sub_80BE188(void);
+void sub_80BE23C(u16);
void sub_80BE320(void);
void StartMassOutbreak(void);
void sub_80BE5FC(void);
@@ -44,7 +43,7 @@ void sub_80BEA5C(u16);
void sub_80BEA88(void);
void sub_80BEA88(void);
void sub_80BEB20(void);
-int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0);
+int sub_80BEBC8(struct PokeNews *arg0);
extern void sub_80BEBF4(void);
void sub_80BEC10(u8);
bool8 GetPriceReduction(u8);
@@ -81,7 +80,7 @@ void sub_80C01D4(void);
void sub_80C03A8(u8 showidx);
void sub_80C03C8(u16 species, u8 showidx);
void sub_80C0408(void);
-bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2);
+bool8 sub_80C06E8(struct PokeNews *arg0, struct PokeNews *arg1, s8 arg2);
void TVShowConvertInternationalString(u8 *, u8 *, u8);
void DoTVShowTheNameRaterShow(void);
void DoTVShowPokemonTodaySuccessfulCapture(void);
@@ -107,5 +106,7 @@ void sub_80BE3BC(void);
void UpdateTVShowsPerDay(u16);
void sub_80C045C();
void sub_80BF088(u8, s32);
+void sub_80BFD20(void);
+void PutPokemonTodayCaughtOnAir(void);
#endif // GUARD_TV_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
index dc07767d6..011e5f5b5 100644
--- a/include/unknown_task.h
+++ b/include/unknown_task.h
@@ -1,14 +1,42 @@
#ifndef GUARD_UNKNOWN_TASK_H
#define GUARD_UNKNOWN_TASK_H
+struct UnknownTaskStruct
+{
+ volatile void *dest;
+ u32 control;
+ u8 unk8;
+ u8 unk9;
+};
+
+struct UnknownTaskStruct2
+{
+ void *src[2];
+ volatile void *dest;
+ u32 unkC;
+ void (*unk10)(void);
+ u8 srcBank;
+ u8 unk15;
+ u8 unk16;
+ u8 unk17;
+ u8 taskId;
+ u8 filler19[0x7];
+};
+
+extern struct UnknownTaskStruct2 gUnknown_03004DC0;
+
+extern u16 gUnknown_03004DE0[][0x3C0];
+
void remove_some_task(void);
void remove_some_task(void);
void dp12_8087EA4(void);
void dp12_8087EA4(void);
-void sub_80895F8(u32 i, u32 i1, u32 i2);
-void sub_80895F8();
+//void sub_80895F8(u32 i, u32 i1, u32 i2);
+//void sub_80895F8();
+void sub_80895F8(struct UnknownTaskStruct unk);
void sub_8089668(void);
void sub_8089668();
-void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6);
+//void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6);
+u8 sub_8089944(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
#endif // GUARD_UNKNOWN_TASK_H
diff --git a/include/use_pokeblock.h b/include/use_pokeblock.h
new file mode 100644
index 000000000..978476d89
--- /dev/null
+++ b/include/use_pokeblock.h
@@ -0,0 +1,13 @@
+//
+// Created by Scott Norton on 5/31/17.
+//
+
+#ifndef POKERUBY_USE_POKEBLOCK_H
+#define POKERUBY_USE_POKEBLOCK_H
+
+extern void *gUnknown_02030400;
+extern s16 gUnknown_02039312;
+
+void sub_8136130(struct Pokeblock *, MainCallback);
+
+#endif //POKERUBY_USE_POKEBLOCK_H
diff --git a/include/util.h b/include/util.h
index cd50b75cc..676c3bd9b 100644
--- a/include/util.h
+++ b/include/util.h
@@ -10,5 +10,7 @@ u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *));
void StoreWordInTwoHalfwords(u16 *, u32);
void LoadWordFromTwoHalfwords(u16 *, u32 *);
u16 CalcCRC16(u8 *data, int length);
+void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha);
+void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output);
#endif // GUARD_UTIL_H
diff --git a/include/vars.h b/include/vars.h
deleted file mode 100644
index efbb462a4..000000000
--- a/include/vars.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef GUARD_VARS_H
-#define GUARD_VARS_H
-
-#define VAR_0x4000 0x4000
-#define VAR_0x4001 0x4001
-#define VAR_0x4002 0x4002
-#define VAR_0x4003 0x4003
-#define VAR_0x4004 0x4004
-#define VAR_0x4005 0x4005
-#define VAR_0x4006 0x4006
-#define VAR_0x4007 0x4007
-#define VAR_0x4008 0x4008
-#define VAR_0x4009 0x4009
-#define VAR_0x400A 0x400A
-#define VAR_0x401F 0x401F
-#define VAR_RECYCLE_GOODS 0x4020
-#define VAR_REPEL_STEP_COUNT 0x4021
-#define VAR_ICE_STEP_COUNT 0x4022
-#define VAR_FIRST_POKE 0x4023
-#define VAR_MIRAGE_RND_H 0x4024
-#define VAR_MIRAGE_RND_L 0x4025
-#define VAR_SECRET_BASE_MAP 0x4026
-
-#define VAR_HAPPINESS_STEP_COUNTER 0x402A
-#define VAR_POISON_STEP_COUNTER 0x402B
-#define VAR_RESET_RTC_ENABLE 0x402C
-
-#define VAR_DAYS 0x4040
-
-#define VAR_DEPT_STORE_FLOOR 0x4043
-#define VAR_POKELOT_PRIZE 0x4045
-#define VAR_NATIONAL_DEX 0x4046
-#define VAR_SHROOMISH_SIZE_RECORD 0x4047
-#define VAR_ASH_GATHER_COUNT 0x4048
-#define VAR_BIRCH_STATE 0x4049
-#define VAR_CRUISE_STEP_COUNT 0x404A
-#define VAR_POKELOT_RND1 0x404B
-#define VAR_POKELOT_RND2 0x404C
-
-#define VAR_BARBOACH_SIZE_RECORD 0x404F
-
-#define VAR_0x4054 0x4054
-
-#define VAR_0x4089 0x4089
-#define VAR_0x4095 0x4095
-#define VAR_0x4097 0x4097
-#define VAR_0x409a 0x409a
-#define VAR_PORTHOLE 0x40B4
-
-#define VAR_0x40BC 0x40BC
-#define VAR_0x40C2 0x40C2
-
-#endif // GUARD_VARS_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
index a4485b08d..c9d7c3fa1 100644
--- a/include/wild_encounter.h
+++ b/include/wild_encounter.h
@@ -18,22 +18,22 @@ struct WildPokemonHeader
{
u8 mapGroup;
u8 mapNum;
- struct WildPokemonInfo *landMonsInfo;
- struct WildPokemonInfo *waterMonsInfo;
- struct WildPokemonInfo *rockSmashMonsInfo;
- struct WildPokemonInfo *fishingMonsInfo;
+ const struct WildPokemonInfo *landMonsInfo;
+ const struct WildPokemonInfo *waterMonsInfo;
+ const struct WildPokemonInfo *rockSmashMonsInfo;
+ const struct WildPokemonInfo *fishingMonsInfo;
};
-extern struct WildPokemonHeader gWildMonHeaders[];
+extern const struct WildPokemonHeader gWildMonHeaders[];
void DisableWildEncounters(bool8 disabled);
bool8 StandardWildEncounter(u16 a, u16 b);
-void RockSmashWildEncounter(void);
+void ScrSpecial_RockSmashWildEncounter(void);
bool8 SweetScentWildEncounter(void);
-bool8 GetFishingWildMonListHeader(void);
+bool8 DoesCurrentMapHaveFishingMons(void);
void FishingWildEncounter(u8 rod);
u16 GetLocalWildMon(bool8 *isWaterMon);
-u16 GetMirageIslandMon(void);
+u16 GetLocalWaterMon(void);
bool8 UpdateRepelCounter(void);
#endif // GUARD_WILD_ENCOUNTER_H