diff options
Diffstat (limited to 'include')
49 files changed, 2642 insertions, 1158 deletions
| diff --git a/include/battle.h b/include/battle.h index 86e15ad49..f973849b7 100644 --- a/include/battle.h +++ b/include/battle.h @@ -245,12 +245,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 atk23StateTracker;      /*0x16010*/ u8 moveTarget[4];      /*0x16014*/ u8 unk16014;      /*0x16015*/ u8 unk16015; @@ -798,7 +797,7 @@ void BattleTurnPassed(void);  // asm/battle_2.o  void sub_8012324(void);  void sub_8012FBC(u8, u8); -u8 b_first_side(u8, u8, u8); +u8 GetWhoStrikesFirst(u8, u8, u8);  void TurnValuesCleanUp(u8);  void SpecialStatusesClear(void);  void sub_80138F0(void); diff --git a/include/battle_anim.h b/include/battle_anim.h index 48ceece21..2386c515c 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -53,14 +53,14 @@ struct UnknownStruct3  };  void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c); -bool8 b_side_obj__get_some_boolean(u8 a); +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 DestroyAnimVisualTask(u8 task);  void DestroyAnimVisualTask(u8 task); -bool8 b_side_obj__get_some_boolean(u8); +bool8 IsAnimBankSpriteVisible(u8);  u8 IsContest(); diff --git a/include/data/field_map_obj/anim_func_ptrs.h b/include/data/field_map_obj/anim_func_ptrs.h index 63575727d..1d1fac71e 100644 --- a/include/data/field_map_obj/anim_func_ptrs.h +++ b/include/data/field_map_obj/anim_func_ptrs.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/18/2017. +  //  #ifndef 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 index 8595f97e7..49c14e8c2 100644 --- a/include/data/field_map_obj/base_oam.h +++ b/include/data/field_map_obj/base_oam.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef 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 index 53a0fd482..5b60fee6f 100644 --- a/include/data/field_map_obj/berry_tree_graphics_tables.h +++ b/include/data/field_map_obj/berry_tree_graphics_tables.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef 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 index d24a47184..a324066b7 100644 --- a/include/data/field_map_obj/callback_subroutine_pointers.h +++ b/include/data/field_map_obj/callback_subroutine_pointers.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/18/2017. +  //  #ifndef POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H @@ -394,7 +394,7 @@ u8 (*const gUnknown_08375588[])(struct MapObject *, struct Sprite *) = {      sub_805F3C4  }; -u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)) = { +u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8(u8)) = {      sub_805F3EC,      sub_805F3F0,      sub_805F438, 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 index 8e19747ce..320af1ff8 100644 --- a/include/data/field_map_obj/field_effect_object_template_pointers.h +++ b/include/data/field_map_obj/field_effect_object_template_pointers.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef 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 index dc8a38542..9d3ae343d 100644 --- a/include/data/field_map_obj/field_effect_objects.h +++ b/include/data/field_map_obj/field_effect_objects.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef 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 index 0d6e299ee..0993f3efd 100644 --- a/include/data/field_map_obj/map_object_anims.h +++ b/include/data/field_map_obj/map_object_anims.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef 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 index 818c5b90c..7b021b66d 100644 --- a/include/data/field_map_obj/map_object_graphics_info.h +++ b/include/data/field_map_obj/map_object_graphics_info.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef 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 index c36827709..22a052b0d 100644 --- a/include/data/field_map_obj/map_object_graphics_info_pointers.h +++ b/include/data/field_map_obj/map_object_graphics_info_pointers.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef 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 index 37d579512..ecb5c8836 100644 --- a/include/data/field_map_obj/map_object_pic_tables.h +++ b/include/data/field_map_obj/map_object_pic_tables.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef 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 index f928db88a..951d71e99 100644 --- a/include/data/field_map_obj/map_object_subsprites.h +++ b/include/data/field_map_obj/map_object_subsprites.h @@ -1,5 +1,5 @@  // -// Created by scott on 6/17/2017. +  //  #ifndef POKERUBY_MAP_OBJECT_SUBSPRITES_H diff --git a/include/data/pokemon/base_stats.h b/include/data/pokemon/base_stats.h index eadfbfe30..37f59e1c6 100644 --- a/include/data/pokemon/base_stats.h +++ b/include/data/pokemon/base_stats.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_BASE_STATS_H diff --git a/include/data/pokemon/cry_ids.h b/include/data/pokemon/cry_ids.h index d965a41cf..6207a92f0 100644 --- a/include/data/pokemon/cry_ids.h +++ b/include/data/pokemon/cry_ids.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_CRY_IDS_H diff --git a/include/data/pokemon/dex_order.h b/include/data/pokemon/dex_order.h index 6f8582533..cbb7182ed 100644 --- a/include/data/pokemon/dex_order.h +++ b/include/data/pokemon/dex_order.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_DEX_ORDER_H diff --git a/include/data/pokemon/egg_moves.h b/include/data/pokemon/egg_moves.h new file mode 100644 index 000000000..ab1b1dd33 --- /dev/null +++ b/include/data/pokemon/egg_moves.h @@ -0,0 +1,1318 @@ +// + +// + +#ifndef POKERUBY_DAYCARE_H +#define POKERUBY_DAYCARE_H + +#define EGG_MOVES_SPECIES_OFFSET 20000 +#define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves + +#endif //POKERUBY_DAYCARE_H + +const u16 gEggMoves[] = { +    egg_moves(BULBASAUR, +              MOVE_LIGHT_SCREEN, +              MOVE_SKULL_BASH, +              MOVE_SAFEGUARD, +              MOVE_CHARM, +              MOVE_PETAL_DANCE, +              MOVE_MAGICAL_LEAF, +              MOVE_GRASS_WHISTLE, +              MOVE_CURSE), + +    egg_moves(CHARMANDER, +              MOVE_BELLY_DRUM, +              MOVE_ANCIENT_POWER, +              MOVE_ROCK_SLIDE, +              MOVE_BITE, +              MOVE_OUTRAGE, +              MOVE_BEAT_UP, +              MOVE_SWORDS_DANCE, +              MOVE_DRAGON_DANCE), + +    egg_moves(SQUIRTLE, +              MOVE_MIRROR_COAT, +              MOVE_HAZE, +              MOVE_MIST, +              MOVE_FORESIGHT, +              MOVE_FLAIL, +              MOVE_REFRESH, +              MOVE_MUD_SPORT, +              MOVE_YAWN), + +    egg_moves(PIDGEY, +              MOVE_PURSUIT, +              MOVE_FAINT_ATTACK, +              MOVE_FORESIGHT, +              MOVE_STEEL_WING, +              MOVE_AIR_CUTTER), + +    egg_moves(RATTATA, +              MOVE_SCREECH, +              MOVE_FLAME_WHEEL, +              MOVE_FURY_SWIPES, +              MOVE_BITE, +              MOVE_COUNTER, +              MOVE_REVERSAL, +              MOVE_UPROAR, +              MOVE_SWAGGER), + +    egg_moves(SPEAROW, +              MOVE_FAINT_ATTACK, +              MOVE_FALSE_SWIPE, +              MOVE_SCARY_FACE, +              MOVE_QUICK_ATTACK, +              MOVE_TRI_ATTACK, +              MOVE_ASTONISH, +              MOVE_SKY_ATTACK), + +    egg_moves(EKANS, +              MOVE_PURSUIT, +              MOVE_SLAM, +              MOVE_SPITE, +              MOVE_BEAT_UP, +              MOVE_POISON_FANG), + +    egg_moves(SANDSHREW, +              MOVE_FLAIL, +              MOVE_SAFEGUARD, +              MOVE_COUNTER, +              MOVE_RAPID_SPIN, +              MOVE_ROCK_SLIDE, +              MOVE_METAL_CLAW, +              MOVE_SWORDS_DANCE, +              MOVE_CRUSH_CLAW), + +    egg_moves(NIDORAN_F, +              MOVE_SUPERSONIC, +              MOVE_DISABLE, +              MOVE_TAKE_DOWN, +              MOVE_FOCUS_ENERGY, +              MOVE_CHARM, +              MOVE_COUNTER, +              MOVE_BEAT_UP), + +    egg_moves(NIDORAN_M, +              MOVE_COUNTER, +              MOVE_DISABLE, +              MOVE_SUPERSONIC, +              MOVE_TAKE_DOWN, +              MOVE_AMNESIA, +              MOVE_CONFUSION, +              MOVE_BEAT_UP), + +    egg_moves(VULPIX, +              MOVE_FAINT_ATTACK, +              MOVE_HYPNOSIS, +              MOVE_FLAIL, +              MOVE_SPITE, +              MOVE_DISABLE, +              MOVE_HOWL, +              MOVE_PSYCH_UP, +              MOVE_HEAT_WAVE), + +    egg_moves(ZUBAT, +              MOVE_QUICK_ATTACK, +              MOVE_PURSUIT, +              MOVE_FAINT_ATTACK, +              MOVE_GUST, +              MOVE_WHIRLWIND, +              MOVE_CURSE), + +    egg_moves(ODDISH, +              MOVE_SWORDS_DANCE, +              MOVE_RAZOR_LEAF, +              MOVE_FLAIL, +              MOVE_SYNTHESIS, +              MOVE_CHARM, +              MOVE_INGRAIN), + +    egg_moves(PARAS, +              MOVE_FALSE_SWIPE, +              MOVE_SCREECH, +              MOVE_COUNTER, +              MOVE_PSYBEAM, +              MOVE_FLAIL, +              MOVE_SWEET_SCENT, +              MOVE_LIGHT_SCREEN, +              MOVE_PURSUIT), + +    egg_moves(VENONAT, +              MOVE_BATON_PASS, +              MOVE_SCREECH, +              MOVE_GIGA_DRAIN, +              MOVE_SIGNAL_BEAM), + +    egg_moves(DIGLETT, +              MOVE_FAINT_ATTACK, +              MOVE_SCREECH, +              MOVE_ANCIENT_POWER, +              MOVE_PURSUIT, +              MOVE_BEAT_UP, +              MOVE_UPROAR, +              MOVE_ROCK_SLIDE), + +    egg_moves(MEOWTH, +              MOVE_SPITE, +              MOVE_CHARM, +              MOVE_HYPNOSIS, +              MOVE_AMNESIA, +              MOVE_PSYCH_UP, +              MOVE_ASSIST), + +    egg_moves(PSYDUCK, +              MOVE_HYPNOSIS, +              MOVE_PSYBEAM, +              MOVE_FORESIGHT, +              MOVE_LIGHT_SCREEN, +              MOVE_FUTURE_SIGHT, +              MOVE_PSYCHIC, +              MOVE_CROSS_CHOP, +              MOVE_REFRESH), + +    egg_moves(MANKEY, +              MOVE_ROCK_SLIDE, +              MOVE_FORESIGHT, +              MOVE_MEDITATE, +              MOVE_COUNTER, +              MOVE_REVERSAL, +              MOVE_BEAT_UP, +              MOVE_REVENGE, +              MOVE_SMELLING_SALT), + +    egg_moves(GROWLITHE, +              MOVE_BODY_SLAM, +              MOVE_SAFEGUARD, +              MOVE_CRUNCH, +              MOVE_THRASH, +              MOVE_FIRE_SPIN, +              MOVE_HOWL, +              MOVE_HEAT_WAVE), + +    egg_moves(POLIWAG, +              MOVE_MIST, +              MOVE_SPLASH, +              MOVE_BUBBLE_BEAM, +              MOVE_HAZE, +              MOVE_MIND_READER, +              MOVE_WATER_SPORT, +              MOVE_ICE_BALL), + +    egg_moves(ABRA, +              MOVE_ENCORE, +              MOVE_BARRIER, +              MOVE_KNOCK_OFF, +              MOVE_FIRE_PUNCH, +              MOVE_THUNDER_PUNCH, +              MOVE_ICE_PUNCH), + +    egg_moves(MACHOP, +              MOVE_LIGHT_SCREEN, +              MOVE_MEDITATE, +              MOVE_ROLLING_KICK, +              MOVE_ENCORE, +              MOVE_SMELLING_SALT, +              MOVE_COUNTER, +              MOVE_ROCK_SLIDE), + +    egg_moves(BELLSPROUT, +              MOVE_SWORDS_DANCE, +              MOVE_ENCORE, +              MOVE_REFLECT, +              MOVE_SYNTHESIS, +              MOVE_LEECH_LIFE, +              MOVE_INGRAIN, +              MOVE_MAGICAL_LEAF), + +    egg_moves(TENTACOOL, +              MOVE_AURORA_BEAM, +              MOVE_MIRROR_COAT, +              MOVE_RAPID_SPIN, +              MOVE_HAZE, +              MOVE_SAFEGUARD, +              MOVE_CONFUSE_RAY), + +    egg_moves(GEODUDE, +              MOVE_MEGA_PUNCH, +              MOVE_ROCK_SLIDE, +              MOVE_BLOCK), + +    egg_moves(PONYTA, +              MOVE_FLAME_WHEEL, +              MOVE_THRASH, +              MOVE_DOUBLE_KICK, +              MOVE_HYPNOSIS, +              MOVE_CHARM, +              MOVE_DOUBLE_EDGE), + +    egg_moves(SLOWPOKE, +              MOVE_SAFEGUARD, +              MOVE_BELLY_DRUM, +              MOVE_FUTURE_SIGHT, +              MOVE_STOMP, +              MOVE_MUD_SPORT, +              MOVE_SLEEP_TALK, +              MOVE_SNORE), + +    egg_moves(FARFETCHD, +              MOVE_STEEL_WING, +              MOVE_FORESIGHT, +              MOVE_MIRROR_MOVE, +              MOVE_GUST, +              MOVE_QUICK_ATTACK, +              MOVE_FLAIL, +              MOVE_FEATHER_DANCE, +              MOVE_CURSE), + +    egg_moves(DODUO, +              MOVE_QUICK_ATTACK, +              MOVE_SUPERSONIC, +              MOVE_HAZE, +              MOVE_FAINT_ATTACK, +              MOVE_FLAIL, +              MOVE_ENDEAVOR), + +    egg_moves(SEEL, +              MOVE_LICK, +              MOVE_PERISH_SONG, +              MOVE_DISABLE, +              MOVE_HORN_DRILL, +              MOVE_SLAM, +              MOVE_ENCORE, +              MOVE_FAKE_OUT, +              MOVE_ICICLE_SPEAR), + +    egg_moves(GRIMER, +              MOVE_HAZE, +              MOVE_MEAN_LOOK, +              MOVE_LICK, +              MOVE_IMPRISON, +              MOVE_CURSE, +              MOVE_SHADOW_PUNCH, +              MOVE_EXPLOSION), + +    egg_moves(SHELLDER, +              MOVE_BUBBLE_BEAM, +              MOVE_TAKE_DOWN, +              MOVE_BARRIER, +              MOVE_RAPID_SPIN, +              MOVE_SCREECH, +              MOVE_ICICLE_SPEAR), + +    egg_moves(GASTLY, +              MOVE_PSYWAVE, +              MOVE_PERISH_SONG, +              MOVE_HAZE, +              MOVE_ASTONISH, +              MOVE_WILL_O_WISP, +              MOVE_GRUDGE, +              MOVE_EXPLOSION), + +    egg_moves(ONIX, +              MOVE_ROCK_SLIDE, +              MOVE_FLAIL, +              MOVE_EXPLOSION, +              MOVE_BLOCK), + +    egg_moves(DROWZEE, +              MOVE_BARRIER, +              MOVE_ASSIST, +              MOVE_ROLE_PLAY, +              MOVE_FIRE_PUNCH, +              MOVE_THUNDER_PUNCH, +              MOVE_ICE_PUNCH), + +    egg_moves(KRABBY, +              MOVE_DIG, +              MOVE_HAZE, +              MOVE_AMNESIA, +              MOVE_FLAIL, +              MOVE_SLAM, +              MOVE_KNOCK_OFF, +              MOVE_SWORDS_DANCE), + +    egg_moves(EXEGGCUTE, +              MOVE_SYNTHESIS, +              MOVE_MOONLIGHT, +              MOVE_REFLECT, +              MOVE_ANCIENT_POWER, +              MOVE_PSYCH_UP, +              MOVE_INGRAIN, +              MOVE_CURSE), + +    egg_moves(CUBONE, +              MOVE_ROCK_SLIDE, +              MOVE_ANCIENT_POWER, +              MOVE_BELLY_DRUM, +              MOVE_SCREECH, +              MOVE_SKULL_BASH, +              MOVE_PERISH_SONG, +              MOVE_SWORDS_DANCE), + +    egg_moves(LICKITUNG, +              MOVE_BELLY_DRUM, +              MOVE_MAGNITUDE, +              MOVE_BODY_SLAM, +              MOVE_CURSE, +              MOVE_SMELLING_SALT, +              MOVE_SLEEP_TALK, +              MOVE_SNORE, +              MOVE_SUBSTITUTE), + +    egg_moves(KOFFING, +              MOVE_SCREECH, +              MOVE_PSYWAVE, +              MOVE_PSYBEAM, +              MOVE_DESTINY_BOND, +              MOVE_PAIN_SPLIT, +              MOVE_WILL_O_WISP), + +    egg_moves(RHYHORN, +              MOVE_CRUNCH, +              MOVE_REVERSAL, +              MOVE_ROCK_SLIDE, +              MOVE_COUNTER, +              MOVE_MAGNITUDE, +              MOVE_SWORDS_DANCE, +              MOVE_CURSE, +              MOVE_CRUSH_CLAW), + +    egg_moves(CHANSEY, +              MOVE_PRESENT, +              MOVE_METRONOME, +              MOVE_HEAL_BELL, +              MOVE_AROMATHERAPY, +              MOVE_SUBSTITUTE), + +    egg_moves(TANGELA, +              MOVE_FLAIL, +              MOVE_CONFUSION, +              MOVE_MEGA_DRAIN, +              MOVE_REFLECT, +              MOVE_AMNESIA, +              MOVE_LEECH_SEED, +              MOVE_NATURE_POWER), + +    egg_moves(KANGASKHAN, +              MOVE_STOMP, +              MOVE_FORESIGHT, +              MOVE_FOCUS_ENERGY, +              MOVE_SAFEGUARD, +              MOVE_DISABLE, +              MOVE_COUNTER, +              MOVE_CRUSH_CLAW, +              MOVE_SUBSTITUTE), + +    egg_moves(HORSEA, +              MOVE_FLAIL, +              MOVE_AURORA_BEAM, +              MOVE_OCTAZOOKA, +              MOVE_DISABLE, +              MOVE_SPLASH, +              MOVE_DRAGON_RAGE, +              MOVE_DRAGON_BREATH), + +    egg_moves(GOLDEEN, +              MOVE_PSYBEAM, +              MOVE_HAZE, +              MOVE_HYDRO_PUMP, +              MOVE_SLEEP_TALK, +              MOVE_MUD_SPORT), + +    egg_moves(MR_MIME, +              MOVE_FUTURE_SIGHT, +              MOVE_HYPNOSIS, +              MOVE_MIMIC, +              MOVE_PSYCH_UP, +              MOVE_FAKE_OUT, +              MOVE_TRICK), + +    egg_moves(SCYTHER, +              MOVE_COUNTER, +              MOVE_SAFEGUARD, +              MOVE_BATON_PASS, +              MOVE_RAZOR_WIND, +              MOVE_REVERSAL, +              MOVE_LIGHT_SCREEN, +              MOVE_ENDURE, +              MOVE_SILVER_WIND), + +    egg_moves(PINSIR, +              MOVE_FURY_ATTACK, +              MOVE_FLAIL, +              MOVE_FALSE_SWIPE, +              MOVE_FAINT_ATTACK), + +    egg_moves(LAPRAS, +              MOVE_FORESIGHT, +              MOVE_SUBSTITUTE, +              MOVE_TICKLE, +              MOVE_REFRESH, +              MOVE_DRAGON_DANCE, +              MOVE_CURSE, +              MOVE_SLEEP_TALK, +              MOVE_HORN_DRILL), + +    egg_moves(EEVEE, +              MOVE_CHARM, +              MOVE_FLAIL, +              MOVE_ENDURE, +              MOVE_CURSE, +              MOVE_TICKLE, +              MOVE_WISH), + +    egg_moves(OMANYTE, +              MOVE_BUBBLE_BEAM, +              MOVE_AURORA_BEAM, +              MOVE_SLAM, +              MOVE_SUPERSONIC, +              MOVE_HAZE, +              MOVE_ROCK_SLIDE, +              MOVE_SPIKES), + +    egg_moves(KABUTO, +              MOVE_BUBBLE_BEAM, +              MOVE_AURORA_BEAM, +              MOVE_RAPID_SPIN, +              MOVE_DIG, +              MOVE_FLAIL, +              MOVE_KNOCK_OFF, +              MOVE_CONFUSE_RAY), + +    egg_moves(AERODACTYL, +              MOVE_WHIRLWIND, +              MOVE_PURSUIT, +              MOVE_FORESIGHT, +              MOVE_STEEL_WING, +              MOVE_DRAGON_BREATH, +              MOVE_CURSE), + +    egg_moves(SNORLAX, +              MOVE_LICK, +              MOVE_CHARM, +              MOVE_DOUBLE_EDGE, +              MOVE_CURSE, +              MOVE_FISSURE, +              MOVE_SUBSTITUTE), + +    egg_moves(DRATINI, +              MOVE_LIGHT_SCREEN, +              MOVE_MIST, +              MOVE_HAZE, +              MOVE_SUPERSONIC, +              MOVE_DRAGON_BREATH, +              MOVE_DRAGON_DANCE), + +    egg_moves(CHIKORITA, +              MOVE_VINE_WHIP, +              MOVE_LEECH_SEED, +              MOVE_COUNTER, +              MOVE_ANCIENT_POWER, +              MOVE_FLAIL, +              MOVE_NATURE_POWER, +              MOVE_INGRAIN, +              MOVE_GRASS_WHISTLE), + +    egg_moves(CYNDAQUIL, +              MOVE_FURY_SWIPES, +              MOVE_QUICK_ATTACK, +              MOVE_REVERSAL, +              MOVE_THRASH, +              MOVE_FORESIGHT, +              MOVE_COVET, +              MOVE_HOWL, +              MOVE_CRUSH_CLAW), + +    egg_moves(TOTODILE, +              MOVE_CRUNCH, +              MOVE_THRASH, +              MOVE_HYDRO_PUMP, +              MOVE_ANCIENT_POWER, +              MOVE_ROCK_SLIDE, +              MOVE_MUD_SPORT, +              MOVE_WATER_SPORT, +              MOVE_DRAGON_CLAW), + +    egg_moves(SENTRET, +              MOVE_DOUBLE_EDGE, +              MOVE_PURSUIT, +              MOVE_SLASH, +              MOVE_FOCUS_ENERGY, +              MOVE_REVERSAL, +              MOVE_SUBSTITUTE, +              MOVE_TRICK, +              MOVE_ASSIST), + +    egg_moves(HOOTHOOT, +              MOVE_MIRROR_MOVE, +              MOVE_SUPERSONIC, +              MOVE_FAINT_ATTACK, +              MOVE_WING_ATTACK, +              MOVE_WHIRLWIND, +              MOVE_SKY_ATTACK, +              MOVE_FEATHER_DANCE), + +    egg_moves(LEDYBA, +              MOVE_PSYBEAM, +              MOVE_BIDE, +              MOVE_SILVER_WIND), + +    egg_moves(SPINARAK, +              MOVE_PSYBEAM, +              MOVE_DISABLE, +              MOVE_SONIC_BOOM, +              MOVE_BATON_PASS, +              MOVE_PURSUIT, +              MOVE_SIGNAL_BEAM), + +    egg_moves(CHINCHOU, +              MOVE_FLAIL, +              MOVE_SCREECH, +              MOVE_AMNESIA), + +    egg_moves(PICHU, +              MOVE_REVERSAL, +              MOVE_BIDE, +              MOVE_PRESENT, +              MOVE_ENCORE, +              MOVE_DOUBLE_SLAP, +              MOVE_WISH, +              MOVE_CHARGE), + +    egg_moves(CLEFFA, +              MOVE_PRESENT, +              MOVE_METRONOME, +              MOVE_AMNESIA, +              MOVE_BELLY_DRUM, +              MOVE_SPLASH, +              MOVE_MIMIC, +              MOVE_WISH, +              MOVE_SUBSTITUTE), + +    egg_moves(IGGLYBUFF, +              MOVE_PERISH_SONG, +              MOVE_PRESENT, +              MOVE_FAINT_ATTACK, +              MOVE_WISH, +              MOVE_FAKE_TEARS), + +    egg_moves(TOGEPI, +              MOVE_PRESENT, +              MOVE_MIRROR_MOVE, +              MOVE_PECK, +              MOVE_FORESIGHT, +              MOVE_FUTURE_SIGHT, +              MOVE_SUBSTITUTE, +              MOVE_PSYCH_UP), + +    egg_moves(NATU, +              MOVE_HAZE, +              MOVE_DRILL_PECK, +              MOVE_QUICK_ATTACK, +              MOVE_FAINT_ATTACK, +              MOVE_STEEL_WING, +              MOVE_PSYCH_UP, +              MOVE_FEATHER_DANCE, +              MOVE_REFRESH), + +    egg_moves(MAREEP, +              MOVE_TAKE_DOWN, +              MOVE_BODY_SLAM, +              MOVE_SAFEGUARD, +              MOVE_SCREECH, +              MOVE_REFLECT, +              MOVE_ODOR_SLEUTH, +              MOVE_CHARGE), + +    egg_moves(MARILL, +              MOVE_LIGHT_SCREEN, +              MOVE_PRESENT, +              MOVE_AMNESIA, +              MOVE_FUTURE_SIGHT, +              MOVE_BELLY_DRUM, +              MOVE_PERISH_SONG, +              MOVE_SUPERSONIC, +              MOVE_SUBSTITUTE), + +    egg_moves(SUDOWOODO, +              MOVE_SELF_DESTRUCT), + +    egg_moves(HOPPIP, +              MOVE_CONFUSION, +              MOVE_ENCORE, +              MOVE_DOUBLE_EDGE, +              MOVE_REFLECT, +              MOVE_AMNESIA, +              MOVE_HELPING_HAND, +              MOVE_PSYCH_UP), + +    egg_moves(AIPOM, +              MOVE_COUNTER, +              MOVE_SCREECH, +              MOVE_PURSUIT, +              MOVE_AGILITY, +              MOVE_SPITE, +              MOVE_SLAM, +              MOVE_DOUBLE_SLAP, +              MOVE_BEAT_UP), + +    egg_moves(SUNKERN, +              MOVE_GRASS_WHISTLE, +              MOVE_ENCORE, +              MOVE_LEECH_SEED, +              MOVE_NATURE_POWER, +              MOVE_CURSE, +              MOVE_HELPING_HAND), + +    egg_moves(YANMA, +              MOVE_WHIRLWIND, +              MOVE_REVERSAL, +              MOVE_LEECH_LIFE, +              MOVE_SIGNAL_BEAM, +              MOVE_SILVER_WIND), + +    egg_moves(WOOPER, +              MOVE_BODY_SLAM, +              MOVE_ANCIENT_POWER, +              MOVE_SAFEGUARD, +              MOVE_CURSE, +              MOVE_MUD_SPORT, +              MOVE_STOCKPILE, +              MOVE_SWALLOW, +              MOVE_SPIT_UP), + +    egg_moves(MURKROW, +              MOVE_WHIRLWIND, +              MOVE_DRILL_PECK, +              MOVE_MIRROR_MOVE, +              MOVE_WING_ATTACK, +              MOVE_SKY_ATTACK, +              MOVE_CONFUSE_RAY, +              MOVE_FEATHER_DANCE, +              MOVE_PERISH_SONG), + +    egg_moves(MISDREAVUS, +              MOVE_SCREECH, +              MOVE_DESTINY_BOND, +              MOVE_PSYCH_UP, +              MOVE_IMPRISON), + +    egg_moves(GIRAFARIG, +              MOVE_TAKE_DOWN, +              MOVE_AMNESIA, +              MOVE_FORESIGHT, +              MOVE_FUTURE_SIGHT, +              MOVE_BEAT_UP, +              MOVE_PSYCH_UP, +              MOVE_WISH, +              MOVE_MAGIC_COAT), + +    egg_moves(PINECO, +              MOVE_REFLECT, +              MOVE_PIN_MISSILE, +              MOVE_FLAIL, +              MOVE_SWIFT, +              MOVE_COUNTER, +              MOVE_SAND_TOMB), + +    egg_moves(DUNSPARCE, +              MOVE_BIDE, +              MOVE_ANCIENT_POWER, +              MOVE_ROCK_SLIDE, +              MOVE_BITE, +              MOVE_HEADBUTT, +              MOVE_ASTONISH, +              MOVE_CURSE), + +    egg_moves(GLIGAR, +              MOVE_METAL_CLAW, +              MOVE_WING_ATTACK, +              MOVE_RAZOR_WIND, +              MOVE_COUNTER, +              MOVE_SAND_TOMB), + +    egg_moves(SNUBBULL, +              MOVE_METRONOME, +              MOVE_FAINT_ATTACK, +              MOVE_REFLECT, +              MOVE_PRESENT, +              MOVE_CRUNCH, +              MOVE_HEAL_BELL, +              MOVE_SNORE, +              MOVE_SMELLING_SALT), + +    egg_moves(QWILFISH, +              MOVE_FLAIL, +              MOVE_HAZE, +              MOVE_BUBBLE_BEAM, +              MOVE_SUPERSONIC, +              MOVE_ASTONISH), + +    egg_moves(SHUCKLE, +              MOVE_SWEET_SCENT), + +    egg_moves(HERACROSS, +              MOVE_HARDEN, +              MOVE_BIDE, +              MOVE_FLAIL, +              MOVE_FALSE_SWIPE), + +    egg_moves(SNEASEL, +              MOVE_COUNTER, +              MOVE_SPITE, +              MOVE_FORESIGHT, +              MOVE_REFLECT, +              MOVE_BITE, +              MOVE_CRUSH_CLAW, +              MOVE_FAKE_OUT), + +    egg_moves(TEDDIURSA, +              MOVE_CRUNCH, +              MOVE_TAKE_DOWN, +              MOVE_SEISMIC_TOSS, +              MOVE_COUNTER, +              MOVE_METAL_CLAW, +              MOVE_FAKE_TEARS, +              MOVE_YAWN, +              MOVE_SLEEP_TALK), + +    egg_moves(SLUGMA, +              MOVE_ACID_ARMOR, +              MOVE_HEAT_WAVE), + +    egg_moves(SWINUB, +              MOVE_TAKE_DOWN, +              MOVE_BITE, +              MOVE_BODY_SLAM, +              MOVE_ROCK_SLIDE, +              MOVE_ANCIENT_POWER, +              MOVE_MUD_SHOT, +              MOVE_ICICLE_SPEAR, +              MOVE_DOUBLE_EDGE), + +    egg_moves(CORSOLA, +              MOVE_ROCK_SLIDE, +              MOVE_SCREECH, +              MOVE_MIST, +              MOVE_AMNESIA, +              MOVE_BARRIER, +              MOVE_INGRAIN, +              MOVE_CONFUSE_RAY, +              MOVE_ICICLE_SPEAR), + +    egg_moves(REMORAID, +              MOVE_AURORA_BEAM, +              MOVE_OCTAZOOKA, +              MOVE_SUPERSONIC, +              MOVE_HAZE, +              MOVE_SCREECH, +              MOVE_THUNDER_WAVE, +              MOVE_ROCK_BLAST), + +    egg_moves(DELIBIRD, +              MOVE_AURORA_BEAM, +              MOVE_QUICK_ATTACK, +              MOVE_FUTURE_SIGHT, +              MOVE_SPLASH, +              MOVE_RAPID_SPIN, +              MOVE_ICE_BALL), + +    egg_moves(MANTINE, +              MOVE_TWISTER, +              MOVE_HYDRO_PUMP, +              MOVE_HAZE, +              MOVE_SLAM, +              MOVE_MUD_SPORT, +              MOVE_ROCK_SLIDE), + +    egg_moves(SKARMORY, +              MOVE_DRILL_PECK, +              MOVE_PURSUIT, +              MOVE_WHIRLWIND, +              MOVE_SKY_ATTACK, +              MOVE_CURSE), + +    egg_moves(HOUNDOUR, +              MOVE_FIRE_SPIN, +              MOVE_RAGE, +              MOVE_PURSUIT, +              MOVE_COUNTER, +              MOVE_SPITE, +              MOVE_REVERSAL, +              MOVE_BEAT_UP, +              MOVE_WILL_O_WISP), + +    egg_moves(PHANPY, +              MOVE_FOCUS_ENERGY, +              MOVE_BODY_SLAM, +              MOVE_ANCIENT_POWER, +              MOVE_SNORE, +              MOVE_COUNTER, +              MOVE_FISSURE), + +    egg_moves(STANTLER, +              MOVE_SPITE, +              MOVE_DISABLE, +              MOVE_BITE, +              MOVE_SWAGGER, +              MOVE_PSYCH_UP, +              MOVE_EXTRASENSORY), + +    egg_moves(TYROGUE, +              MOVE_RAPID_SPIN, +              MOVE_HI_JUMP_KICK, +              MOVE_MACH_PUNCH, +              MOVE_MIND_READER, +              MOVE_HELPING_HAND), + +    egg_moves(SMOOCHUM, +              MOVE_MEDITATE, +              MOVE_PSYCH_UP, +              MOVE_FAKE_OUT, +              MOVE_WISH, +              MOVE_ICE_PUNCH), + +    egg_moves(ELEKID, +              MOVE_KARATE_CHOP, +              MOVE_BARRIER, +              MOVE_ROLLING_KICK, +              MOVE_MEDITATE, +              MOVE_CROSS_CHOP, +              MOVE_FIRE_PUNCH, +              MOVE_ICE_PUNCH), + +    egg_moves(MAGBY, +              MOVE_KARATE_CHOP, +              MOVE_MEGA_PUNCH, +              MOVE_BARRIER, +              MOVE_SCREECH, +              MOVE_CROSS_CHOP, +              MOVE_THUNDER_PUNCH), + +    egg_moves(MILTANK, +              MOVE_PRESENT, +              MOVE_REVERSAL, +              MOVE_SEISMIC_TOSS, +              MOVE_ENDURE, +              MOVE_PSYCH_UP, +              MOVE_CURSE, +              MOVE_HELPING_HAND, +              MOVE_SLEEP_TALK), + +    egg_moves(LARVITAR, +              MOVE_PURSUIT, +              MOVE_STOMP, +              MOVE_OUTRAGE, +              MOVE_FOCUS_ENERGY, +              MOVE_ANCIENT_POWER, +              MOVE_DRAGON_DANCE, +              MOVE_CURSE), + +    egg_moves(TREECKO, +              MOVE_CRUNCH, +              MOVE_MUD_SPORT, +              MOVE_ENDEAVOR, +              MOVE_LEECH_SEED, +              MOVE_DRAGON_BREATH, +              MOVE_CRUSH_CLAW), + +    egg_moves(TORCHIC, +              MOVE_COUNTER, +              MOVE_REVERSAL, +              MOVE_ENDURE, +              MOVE_SWAGGER, +              MOVE_ROCK_SLIDE, +              MOVE_SMELLING_SALT), + +    egg_moves(MUDKIP, +              MOVE_REFRESH, +              MOVE_UPROAR, +              MOVE_CURSE, +              MOVE_STOMP, +              MOVE_ICE_BALL, +              MOVE_MIRROR_COAT), + +    egg_moves(POOCHYENA, +              MOVE_ASTONISH, +              MOVE_POISON_FANG, +              MOVE_COVET, +              MOVE_LEER, +              MOVE_YAWN), + +    egg_moves(ZIGZAGOON, +              MOVE_CHARM, +              MOVE_PURSUIT, +              MOVE_SUBSTITUTE, +              MOVE_TICKLE, +              MOVE_TRICK), + +    egg_moves(LOTAD, +              MOVE_SYNTHESIS, +              MOVE_RAZOR_LEAF, +              MOVE_SWEET_SCENT, +              MOVE_LEECH_SEED, +              MOVE_FLAIL, +              MOVE_WATER_GUN), + +    egg_moves(SEEDOT, +              MOVE_LEECH_SEED, +              MOVE_AMNESIA, +              MOVE_QUICK_ATTACK, +              MOVE_RAZOR_WIND, +              MOVE_TAKE_DOWN, +              MOVE_FALSE_SWIPE), + +    egg_moves(NINCADA, +              MOVE_ENDURE, +              MOVE_FAINT_ATTACK, +              MOVE_GUST, +              MOVE_SILVER_WIND), + +    egg_moves(TAILLOW, +              MOVE_PURSUIT, +              MOVE_SUPERSONIC, +              MOVE_REFRESH, +              MOVE_MIRROR_MOVE, +              MOVE_RAGE, +              MOVE_SKY_ATTACK), + +    egg_moves(SHROOMISH, +              MOVE_FAKE_TEARS, +              MOVE_SWAGGER, +              MOVE_CHARM, +              MOVE_FALSE_SWIPE, +              MOVE_HELPING_HAND), + +    egg_moves(SPINDA, +              MOVE_ENCORE, +              MOVE_ROCK_SLIDE, +              MOVE_ASSIST, +              MOVE_DISABLE, +              MOVE_BATON_PASS, +              MOVE_WISH, +              MOVE_TRICK, +              MOVE_SMELLING_SALT), + +    egg_moves(WINGULL, +              MOVE_MIST, +              MOVE_TWISTER, +              MOVE_AGILITY, +              MOVE_GUST, +              MOVE_WATER_SPORT), + +    egg_moves(SURSKIT, +              MOVE_FORESIGHT, +              MOVE_MUD_SHOT, +              MOVE_PSYBEAM, +              MOVE_HYDRO_PUMP, +              MOVE_MIND_READER), + +    egg_moves(WAILMER, +              MOVE_DOUBLE_EDGE, +              MOVE_THRASH, +              MOVE_SWAGGER, +              MOVE_SNORE, +              MOVE_SLEEP_TALK, +              MOVE_CURSE, +              MOVE_FISSURE, +              MOVE_TICKLE), + +    egg_moves(SKITTY, +              MOVE_HELPING_HAND, +              MOVE_PSYCH_UP, +              MOVE_UPROAR, +              MOVE_FAKE_TEARS, +              MOVE_WISH, +              MOVE_BATON_PASS, +              MOVE_SUBSTITUTE, +              MOVE_TICKLE), + +    egg_moves(KECLEON, +              MOVE_DISABLE, +              MOVE_MAGIC_COAT, +              MOVE_TRICK), + +    egg_moves(NOSEPASS, +              MOVE_MAGNITUDE, +              MOVE_ROLLOUT, +              MOVE_EXPLOSION), + +    egg_moves(TORKOAL, +              MOVE_ERUPTION, +              MOVE_ENDURE, +              MOVE_SLEEP_TALK, +              MOVE_YAWN), + +    egg_moves(SABLEYE, +              MOVE_PSYCH_UP, +              MOVE_RECOVER, +              MOVE_MOONLIGHT), + +    egg_moves(BARBOACH, +              MOVE_THRASH, +              MOVE_WHIRLPOOL, +              MOVE_SPARK), + +    egg_moves(LUVDISC, +              MOVE_SPLASH, +              MOVE_SUPERSONIC, +              MOVE_WATER_SPORT, +              MOVE_MUD_SPORT), + +    egg_moves(CORPHISH, +              MOVE_MUD_SPORT, +              MOVE_ENDEAVOR, +              MOVE_BODY_SLAM, +              MOVE_ANCIENT_POWER), + +    egg_moves(FEEBAS, +              MOVE_MIRROR_COAT, +              MOVE_DRAGON_BREATH, +              MOVE_MUD_SPORT, +              MOVE_HYPNOSIS, +              MOVE_LIGHT_SCREEN, +              MOVE_CONFUSE_RAY), + +    egg_moves(CARVANHA, +              MOVE_HYDRO_PUMP, +              MOVE_DOUBLE_EDGE, +              MOVE_THRASH), + +    egg_moves(TRAPINCH, +              MOVE_FOCUS_ENERGY, +              MOVE_QUICK_ATTACK, +              MOVE_GUST), + +    egg_moves(MAKUHITA, +              MOVE_FAINT_ATTACK, +              MOVE_DETECT, +              MOVE_FORESIGHT, +              MOVE_HELPING_HAND, +              MOVE_CROSS_CHOP, +              MOVE_REVENGE, +              MOVE_DYNAMIC_PUNCH, +              MOVE_COUNTER), + +    egg_moves(ELECTRIKE, +              MOVE_CRUNCH, +              MOVE_HEADBUTT, +              MOVE_UPROAR, +              MOVE_CURSE, +              MOVE_SWIFT), + +    egg_moves(NUMEL, +              MOVE_HOWL, +              MOVE_SCARY_FACE, +              MOVE_BODY_SLAM, +              MOVE_ROLLOUT, +              MOVE_DEFENSE_CURL, +              MOVE_STOMP), + +    egg_moves(SPHEAL, +              MOVE_WATER_SPORT, +              MOVE_STOCKPILE, +              MOVE_SWALLOW, +              MOVE_SPIT_UP, +              MOVE_YAWN, +              MOVE_ROCK_SLIDE, +              MOVE_CURSE, +              MOVE_FISSURE), + +    egg_moves(CACNEA, +              MOVE_GRASS_WHISTLE, +              MOVE_ACID, +              MOVE_TEETER_DANCE, +              MOVE_DYNAMIC_PUNCH, +              MOVE_COUNTER), + +    egg_moves(SNORUNT, +              MOVE_BLOCK, +              MOVE_SPIKES), + +    egg_moves(AZURILL, +              MOVE_ENCORE, +              MOVE_SING, +              MOVE_REFRESH, +              MOVE_SLAM, +              MOVE_TICKLE), + +    egg_moves(SPOINK, +              MOVE_FUTURE_SIGHT, +              MOVE_EXTRASENSORY, +              MOVE_SUBSTITUTE, +              MOVE_TRICK), + +    egg_moves(PLUSLE, +              MOVE_SUBSTITUTE, +              MOVE_WISH), + +    egg_moves(MINUN, +              MOVE_SUBSTITUTE, +              MOVE_WISH), + +    egg_moves(MAWILE, +              MOVE_SWORDS_DANCE, +              MOVE_FALSE_SWIPE, +              MOVE_POISON_FANG, +              MOVE_PSYCH_UP, +              MOVE_ANCIENT_POWER, +              MOVE_TICKLE), + +    egg_moves(MEDITITE, +              MOVE_FIRE_PUNCH, +              MOVE_THUNDER_PUNCH, +              MOVE_ICE_PUNCH, +              MOVE_FORESIGHT, +              MOVE_FAKE_OUT, +              MOVE_BATON_PASS, +              MOVE_DYNAMIC_PUNCH), + +    egg_moves(SWABLU, +              MOVE_AGILITY, +              MOVE_HAZE, +              MOVE_PURSUIT, +              MOVE_RAGE), + +    egg_moves(DUSKULL, +              MOVE_IMPRISON, +              MOVE_DESTINY_BOND, +              MOVE_PAIN_SPLIT, +              MOVE_GRUDGE, +              MOVE_MEMENTO, +              MOVE_FAINT_ATTACK), + +    egg_moves(ROSELIA, +              MOVE_SPIKES, +              MOVE_SYNTHESIS, +              MOVE_PIN_MISSILE, +              MOVE_COTTON_SPORE), + +    egg_moves(SLAKOTH, +              MOVE_PURSUIT, +              MOVE_SLASH, +              MOVE_BODY_SLAM, +              MOVE_SNORE, +              MOVE_CRUSH_CLAW, +              MOVE_CURSE, +              MOVE_SLEEP_TALK), + +    egg_moves(GULPIN, +              MOVE_DREAM_EATER, +              MOVE_ACID_ARMOR, +              MOVE_SMOG, +              MOVE_PAIN_SPLIT), + +    egg_moves(TROPIUS, +              MOVE_HEADBUTT, +              MOVE_SLAM, +              MOVE_RAZOR_WIND, +              MOVE_LEECH_SEED, +              MOVE_NATURE_POWER), + +    egg_moves(WHISMUR, +              MOVE_TAKE_DOWN, +              MOVE_SNORE, +              MOVE_SWAGGER, +              MOVE_EXTRASENSORY, +              MOVE_SMELLING_SALT), + +    egg_moves(CLAMPERL, +              MOVE_REFRESH, +              MOVE_MUD_SPORT, +              MOVE_BODY_SLAM, +              MOVE_SUPERSONIC, +              MOVE_BARRIER, +              MOVE_CONFUSE_RAY), + +    egg_moves(ABSOL, +              MOVE_BATON_PASS, +              MOVE_FAINT_ATTACK, +              MOVE_DOUBLE_EDGE, +              MOVE_MAGIC_COAT, +              MOVE_CURSE, +              MOVE_SUBSTITUTE), + +    egg_moves(SHUPPET, +              MOVE_DISABLE, +              MOVE_DESTINY_BOND, +              MOVE_FORESIGHT, +              MOVE_ASTONISH, +              MOVE_IMPRISON), + +    egg_moves(SEVIPER, +              MOVE_STOCKPILE, +              MOVE_SWALLOW, +              MOVE_SPIT_UP, +              MOVE_BODY_SLAM), + +    egg_moves(ZANGOOSE, +              MOVE_FLAIL, +              MOVE_DOUBLE_KICK, +              MOVE_RAZOR_WIND, +              MOVE_COUNTER, +              MOVE_ROAR, +              MOVE_CURSE), + +    egg_moves(RELICANTH, +              MOVE_MAGNITUDE, +              MOVE_SKULL_BASH, +              MOVE_WATER_SPORT, +              MOVE_AMNESIA, +              MOVE_SLEEP_TALK, +              MOVE_ROCK_SLIDE), + +    egg_moves(ARON, +              MOVE_ENDEAVOR, +              MOVE_BODY_SLAM, +              MOVE_STOMP, +              MOVE_SMELLING_SALT), + +    egg_moves(CASTFORM, +              MOVE_FUTURE_SIGHT, +              MOVE_PSYCH_UP), + +    egg_moves(VOLBEAT, +              MOVE_BATON_PASS, +              MOVE_SILVER_WIND, +              MOVE_TRICK), + +    egg_moves(ILLUMISE, +              MOVE_BATON_PASS, +              MOVE_SILVER_WIND, +              MOVE_GROWTH), + +    egg_moves(LILEEP, +              MOVE_BARRIER, +              MOVE_RECOVER, +              MOVE_MIRROR_COAT, +              MOVE_ROCK_SLIDE), + +    egg_moves(ANORITH, +              MOVE_RAPID_SPIN, +              MOVE_KNOCK_OFF, +              MOVE_SWORDS_DANCE, +              MOVE_ROCK_SLIDE), + +    egg_moves(RALTS, +              MOVE_DISABLE, +              MOVE_WILL_O_WISP, +              MOVE_MEAN_LOOK, +              MOVE_MEMENTO, +              MOVE_DESTINY_BOND), + +    egg_moves(BAGON, +              MOVE_HYDRO_PUMP, +              MOVE_THRASH, +              MOVE_DRAGON_RAGE, +              MOVE_TWISTER, +              MOVE_DRAGON_DANCE), + +    egg_moves(CHIMECHO, +              MOVE_DISABLE, +              MOVE_CURSE, +              MOVE_HYPNOSIS, +              MOVE_DREAM_EATER), + +    0xFFFF +}; diff --git a/include/data/pokemon/evolution.h b/include/data/pokemon/evolution.h index 51e993347..919416fee 100644 --- a/include/data/pokemon/evolution.h +++ b/include/data/pokemon/evolution.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_EVOLUTION_H diff --git a/include/data/pokemon/experience_tables.h b/include/data/pokemon/experience_tables.h index 70c5e88ed..2fb416fe9 100644 --- a/include/data/pokemon/experience_tables.h +++ b/include/data/pokemon/experience_tables.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_EXPERIENCE_TABLES_H diff --git a/include/data/pokemon/item_effects.h b/include/data/pokemon/item_effects.h index b07573933..cd06228dd 100644 --- a/include/data/pokemon/item_effects.h +++ b/include/data/pokemon/item_effects.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_ITEM_EFFECTS_H diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h index 753947d51..19761c996 100644 --- a/include/data/pokemon/level_up_learnset_pointers.h +++ b/include/data/pokemon/level_up_learnset_pointers.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h index 5b79f4bc0..bc1de82de 100644 --- a/include/data/pokemon/level_up_learnsets.h +++ b/include/data/pokemon/level_up_learnsets.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_LEVEL_UP_LEARNSETS_H diff --git a/include/data/pokemon/nature_stats.h b/include/data/pokemon/nature_stats.h index 27bd98f9d..fcef2a0ac 100644 --- a/include/data/pokemon/nature_stats.h +++ b/include/data/pokemon/nature_stats.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_NATURE_STATS_H diff --git a/include/data/pokemon/spinda_spots.h b/include/data/pokemon/spinda_spots.h index 234cdf00e..d045e0734 100644 --- a/include/data/pokemon/spinda_spots.h +++ b/include/data/pokemon/spinda_spots.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_SPINDA_SPOTS_H diff --git a/include/data/pokemon/tmhm_learnsets.h b/include/data/pokemon/tmhm_learnsets.h index fa48f7f5c..02cd22d56 100644 --- a/include/data/pokemon/tmhm_learnsets.h +++ b/include/data/pokemon/tmhm_learnsets.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_TMHM_LEARNSETS_H diff --git a/include/data/pokemon/trainer_class_lookups.h b/include/data/pokemon/trainer_class_lookups.h index 0aea322a0..c86e795c4 100644 --- a/include/data/pokemon/trainer_class_lookups.h +++ b/include/data/pokemon/trainer_class_lookups.h @@ -1,5 +1,5 @@  // -// Created by Scott Norton on 6/27/17. +  //  #ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H diff --git a/include/daycare.h b/include/daycare.h index b90c50610..e46351d72 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -1,14 +1,15 @@  #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); +u8 Daycare_CountPokemon(struct DayCareData *); +void sub_8041324(struct BoxPokemon *, struct RecordMixingDayCareMail *); +void sub_8041790(u16 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); +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/easy_chat.h b/include/easy_chat.h index 702082966..8a820353f 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -27,1038 +27,1046 @@ enum      EC_GROUP_POKEMON_2,  }; -// 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 +enum { +    EC_WORD_I_CHOOSE_YOU = EC_GROUP_TRAINER << 9, +    EC_WORD_GOTCHA, +    EC_WORD_TRADE, +    EC_WORD_SAPPHIRE, +    EC_WORD_EVOLVE, +    EC_WORD_ENCYCLOPEDIA, +    EC_WORD_NATURE, +    EC_WORD_CENTER, +    EC_WORD_EGG, +    EC_WORD_LINK, +    EC_WORD_SP_ABILITY, +    EC_WORD_TRAINER, +    EC_WORD_VERSION, +    EC_WORD_POKENAV, +    EC_WORD_POKEMON, +    EC_WORD_GET, +    EC_WORD_POKEDEX, +    EC_WORD_RUBY, +    EC_WORD_LEVEL +}; +enum { +    EC_WORD_DARK = EC_GROUP_STATUS << 9, +    EC_WORD_STENCH, +    EC_WORD_THICK_FAT, +    EC_WORD_RAIN_DISH, +    EC_WORD_DRIZZLE, +    EC_WORD_ARENA_TRAP, +    EC_WORD_INTIMIDATE, +    EC_WORD_ROCK_HEAD, +    EC_WORD_COLOR, +    EC_WORD_ALT_COLOR, +    EC_WORD_ROCK, +    EC_WORD_BEAUTIFUL, +    EC_WORD_BEAUTY, +    EC_WORD_AIR_LOCK, +    EC_WORD_PSYCHIC, +    EC_WORD_HYPER_CUTTER, +    EC_WORD_FIGHTING, +    EC_WORD_SHADOW_TAG, +    EC_WORD_SMART, +    EC_WORD_SMARTNESS, +    EC_WORD_SPEED_BOOST, +    EC_WORD_COOL, +    EC_WORD_COOLNESS, +    EC_WORD_BATTLE_ARMOR, +    EC_WORD_CUTE, +    EC_WORD_CUTENESS, +    EC_WORD_STURDY, +    EC_WORD_SUCTION_CUPS, +    EC_WORD_GRASS, +    EC_WORD_CLEAR_BODY, +    EC_WORD_TORRENT, +    EC_WORD_GHOST, +    EC_WORD_ICE, +    EC_WORD_GUTS, +    EC_WORD_ROUGH_SKIN, +    EC_WORD_SHELL_ARMOR, +    EC_WORD_NATURAL_CURE, +    EC_WORD_DAMP, +    EC_WORD_GROUND, +    EC_WORD_LIMBER, +    EC_WORD_MAGNET_PULL, +    EC_WORD_WHITE_SMOKE, +    EC_WORD_SYNCHRONIZE, +    EC_WORD_OVERGROW, +    EC_WORD_SWIFT_SWIM, +    EC_WORD_SAND_STREAM, +    EC_WORD_SAND_VEIL, +    EC_WORD_KEEN_EYE, +    EC_WORD_INNER_FOCUS, +    EC_WORD_STATIC, +    EC_WORD_TYPE, +    EC_WORD_TOUGH, +    EC_WORD_TOUGHNESS, +    EC_WORD_SHED_SKIN, +    EC_WORD_HUGE_POWER, +    EC_WORD_VOLT_ABSORB, +    EC_WORD_WATER_ABSORB, +    EC_WORD_ELECTRIC, +    EC_WORD_FORECAST, +    EC_WORD_SERENE_GRACE, +    EC_WORD_POISON, +    EC_WORD_POISON_POINT, +    EC_WORD_DRAGON, +    EC_WORD_TRACE, +    EC_WORD_OBLIVIOUS, +    EC_WORD_TRUANT, +    EC_WORD_RUN_AWAY, +    EC_WORD_STICKY_HOLD, +    EC_WORD_CLOUD_NINE, +    EC_WORD_NORMAL, +    EC_WORD_STEEL, +    EC_WORD_ILLUMINATE, +    EC_WORD_EARLY_BIRD, +    EC_WORD_HUSTLE, +    EC_WORD_SHINE, +    EC_WORD_FLYING, +    EC_WORD_DROUGHT, +    EC_WORD_LIGHTNINGROD, +    EC_WORD_COMPOUNDEYES, +    EC_WORD_MARVEL_SCALE, +    EC_WORD_WONDER_GUARD, +    EC_WORD_INSOMNIA, +    EC_WORD_LEVITATE, +    EC_WORD_PLUS, +    EC_WORD_PRESSURE, +    EC_WORD_LIQUID_OOZE, +    EC_WORD_COLOR_CHANGE, +    EC_WORD_SOUNDPROOF, +    EC_WORD_EFFECT_SPORE, +    EC_WORD_PKRS, +    EC_WORD_FIRE, +    EC_WORD_FLAME_BODY, +    EC_WORD_MINUS, +    EC_WORD_OWN_TEMPO, +    EC_WORD_MAGMA_ARMOR, +    EC_WORD_WATER, +    EC_WORD_WATER_VEIL, +    EC_WORD_BUG, +    EC_WORD_SWARM, +    EC_WORD_CUTE_CHARM, +    EC_WORD_IMMUNITY, +    EC_WORD_BLAZE, +    EC_WORD_PICKUP, +    EC_WORD_PATTERN, +    EC_WORD_FLASH_FIRE, +    EC_WORD_VITAL_SPIRIT, +    EC_WORD_CHLOROPHYLL, +    EC_WORD_PURE_POWER, +    EC_WORD_SHIELD_DUST, +}; +enum { +    EC_WORD_MATCH_UP = EC_GROUP_BATTLE << 9, +    EC_WORD_GO, +    EC_WORD_NO_1, +    EC_WORD_DECIDE, +    EC_WORD_LET_ME_WIN, +    EC_WORD_WINS, +    EC_WORD_WIN, +    EC_WORD_WON, +    EC_WORD_IF_I_WIN, +    EC_WORD_WHEN_I_WIN, +    EC_WORD_CAN_T_WIN, +    EC_WORD_CAN_WIN, +    EC_WORD_NO_MATCH, +    EC_WORD_SPIRIT, +    EC_WORD_DECIDED, +    EC_WORD_TRUMP_CARD, +    EC_WORD_TAKE_THAT, +    EC_WORD_COME_ON, +    EC_WORD_ATTACK, +    EC_WORD_SURRENDER, +    EC_WORD_GUTSY, +    EC_WORD_TALENT, +    EC_WORD_STRATEGY, +    EC_WORD_SMITE, +    EC_WORD_MATCH, +    EC_WORD_VICTORY, +    EC_WORD_OFFENSIVE, +    EC_WORD_SENSE, +    EC_WORD_VERSUS, +    EC_WORD_FIGHTS, +    EC_WORD_POWER, +    EC_WORD_CHALLENGE, +    EC_WORD_STRONG, +    EC_WORD_TOO_STRONG, +    EC_WORD_GO_EASY, +    EC_WORD_FOE, +    EC_WORD_GENIUS, +    EC_WORD_LEGEND, +    EC_WORD_ESCAPE, +    EC_WORD_AIM, +    EC_WORD_BATTLE, +    EC_WORD_FIGHT, +    EC_WORD_RESUSCITATE, +    EC_WORD_POINTS, +    EC_WORD_SERIOUS, +    EC_WORD_GIVE_UP, +    EC_WORD_LOSS, +    EC_WORD_IF_I_LOSE, +    EC_WORD_LOST, +    EC_WORD_LOSE, +    EC_WORD_GUARD, +    EC_WORD_PARTNER, +    EC_WORD_REJECT, +    EC_WORD_ACCEPT, +    EC_WORD_INVINCIBLE, +    EC_WORD_RECEIVED, +    EC_WORD_EASY, +    EC_WORD_WEAK, +    EC_WORD_TOO_WEAK, +    EC_WORD_PUSHOVER, +    EC_WORD_LEADER, +    EC_WORD_RULE, +    EC_WORD_MOVE +}; +enum { +    EC_WORD_THANKS = EC_GROUP_GREETINGS << 9, +    EC_WORD_YES, +    EC_WORD_HERE_GOES, +    EC_WORD_HERE_I_COME, +    EC_WORD_HERE_IT_IS, +    EC_WORD_YEAH, +    EC_WORD_WELCOME, +    EC_WORD_OI, +    EC_WORD_HOW_DO, +    EC_WORD_CONGRATS, +    EC_WORD_GIVE_ME, +    EC_WORD_SORRY, +    EC_WORD_APOLOGIZE, +    EC_WORD_FORGIVE, +    EC_WORD_HEY_THERE, +    EC_WORD_HELLO, +    EC_WORD_GOOD_BYE, +    EC_WORD_THANK_YOU, +    EC_WORD_I_VE_ARRIVED, +    EC_WORD_PARDON, +    EC_WORD_EXCUSE, +    EC_WORD_SEE_YA, +    EC_WORD_EXCUSE_ME, +    EC_WORD_WELL_THEN, +    EC_WORD_GO_AHEAD, +    EC_WORD_APPRECIATE, +    EC_WORD_HEY_QUES, +    EC_WORD_WHAT_S_UP_QUES, +    EC_WORD_HUH_QUES, +    EC_WORD_NO, +    EC_WORD_HI, +    EC_WORD_YEAH_YEAH, +    EC_WORD_BYE_BYE, +    EC_WORD_MEET_YOU, +    EC_WORD_HEY, +    EC_WORD_SMELL, +    EC_WORD_LISTENING, +    EC_WORD_HOO_HAH, +    EC_WORD_YAHOO, +    EC_WORD_YO, +    EC_WORD_COME_OVER, +    EC_WORD_COUNT_ON +}; +enum { +    EC_WORD_OPPONENT = EC_GROUP_PEOPLE << 9, +    EC_WORD_I, +    EC_WORD_YOU, +    EC_WORD_YOURS, +    EC_WORD_SON, +    EC_WORD_YOUR, +    EC_WORD_YOU_RE, +    EC_WORD_YOU_VE, +    EC_WORD_MOTHER, +    EC_WORD_GRANDFATHER, +    EC_WORD_UNCLE, +    EC_WORD_FATHER, +    EC_WORD_BOY, +    EC_WORD_ADULT, +    EC_WORD_BROTHER, +    EC_WORD_SISTER, +    EC_WORD_GRANDMOTHER, +    EC_WORD_AUNT, +    EC_WORD_PARENT, +    EC_WORD_MAN, +    EC_WORD_ME, +    EC_WORD_GIRL, +    EC_WORD_BABE, +    EC_WORD_FAMILY, +    EC_WORD_HER, +    EC_WORD_HIM, +    EC_WORD_HE, +    EC_WORD_PLACE, +    EC_WORD_DAUGHTER, +    EC_WORD_HIS, +    EC_WORD_HE_S, +    EC_WORD_AREN_T, +    EC_WORD_SIBLINGS, +    EC_WORD_KID, +    EC_WORD_CHILDREN, +    EC_WORD_MR, +    EC_WORD_MRS, +    EC_WORD_MYSELF, +    EC_WORD_I_WAS, +    EC_WORD_TO_ME, +    EC_WORD_MY, +    EC_WORD_I_AM, +    EC_WORD_I_VE, +    EC_WORD_WHO, +    EC_WORD_SOMEONE, +    EC_WORD_WHO_WAS, +    EC_WORD_TO_WHOM, +    EC_WORD_WHOSE, +    EC_WORD_WHO_IS, +    EC_WORD_IT_S, +    EC_WORD_LADY, +    EC_WORD_FRIEND, +    EC_WORD_ALLY, +    EC_WORD_PERSON, +    EC_WORD_DUDE, +    EC_WORD_THEY, +    EC_WORD_THEY_WERE, +    EC_WORD_TO_THEM, +    EC_WORD_THEIR, +    EC_WORD_THEY_RE, +    EC_WORD_THEY_VE, +    EC_WORD_WE, +    EC_WORD_BEEN, +    EC_WORD_TO_US, +    EC_WORD_OUR, +    EC_WORD_WE_RE, +    EC_WORD_RIVAL, +    EC_WORD_WE_VE, +    EC_WORD_WOMAN, +    EC_WORD_SHE, +    EC_WORD_SHE_WAS, +    EC_WORD_TO_HER, +    EC_WORD_HERS, +    EC_WORD_SHE_IS, +    EC_WORD_SOME +}; +enum { +    EC_WORD_EXCL = EC_GROUP_VOICES << 9, +    EC_WORD_EXCL_EXCL, +    EC_WORD_QUES_EXCL, +    EC_WORD_QUES, +    EC_WORD_ELLIPSIS, +    EC_WORD_ELLIPSIS_EXCL, +    EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, +    EC_WORD_DASH, +    EC_WORD_DASH_DASH_DASH, +    EC_WORD_UH_OH, +    EC_WORD_WAAAH, +    EC_WORD_AHAHA, +    EC_WORD_OH_QUES, +    EC_WORD_NOPE, +    EC_WORD_URGH, +    EC_WORD_HMM, +    EC_WORD_WHOAH, +    EC_WORD_WROOOAAR_EXCL, +    EC_WORD_WOW, +    EC_WORD_GIGGLE, +    EC_WORD_SIGH, +    EC_WORD_UNBELIEVABLE, +    EC_WORD_CRIES, +    EC_WORD_AGREE, +    EC_WORD_EH_QUES, +    EC_WORD_CRY, +    EC_WORD_EHEHE, +    EC_WORD_OI_OI_OI, +    EC_WORD_OH_YEAH, +    EC_WORD_OH, +    EC_WORD_OOPS, +    EC_WORD_SHOCKED, +    EC_WORD_EEK, +    EC_WORD_GRAAAH, +    EC_WORD_GWAHAHAHA, +    EC_WORD_WAY, +    EC_WORD_TCH, +    EC_WORD_HEHE, +    EC_WORD_HAH, +    EC_WORD_YUP, +    EC_WORD_HAHAHA, +    EC_WORD_AIYEEH, +    EC_WORD_HIYAH, +    EC_WORD_FUFUFU, +    EC_WORD_LOL, +    EC_WORD_SNORT, +    EC_WORD_HUMPH, +    EC_WORD_HEHEHE, +    EC_WORD_HEH, +    EC_WORD_HOHOHO, +    EC_WORD_UH_HUH, +    EC_WORD_OH_DEAR, +    EC_WORD_ARRGH, +    EC_WORD_MUFUFU, +    EC_WORD_MMM, +    EC_WORD_OH_KAY, +    EC_WORD_OKAY, +    EC_WORD_LALALA, +    EC_WORD_YAY, +    EC_WORD_AWW, +    EC_WORD_WOWEE, +    EC_WORD_GWAH, +    EC_WORD_WAHAHAHA +}; +enum { +    EC_WORD_LISTEN = EC_GROUP_SPEECH << 9, +    EC_WORD_NOT_VERY, +    EC_WORD_MEAN, +    EC_WORD_LIE, +    EC_WORD_LAY, +    EC_WORD_RECOMMEND, +    EC_WORD_NITWIT, +    EC_WORD_QUITE, +    EC_WORD_FROM, +    EC_WORD_FEELING, +    EC_WORD_BUT, +    EC_WORD_HOWEVER, +    EC_WORD_CASE, +    EC_WORD_THE, +    EC_WORD_MISS, +    EC_WORD_HOW, +    EC_WORD_HIT, +    EC_WORD_ENOUGH, +    EC_WORD_A_LOT, +    EC_WORD_A_LITTLE, +    EC_WORD_ABSOLUTELY, +    EC_WORD_AND, +    EC_WORD_ONLY, +    EC_WORD_AROUND, +    EC_WORD_PROBABLY, +    EC_WORD_IF, +    EC_WORD_VERY, +    EC_WORD_A_TINY_BIT, +    EC_WORD_WILD, +    EC_WORD_THAT_S, +    EC_WORD_JUST, +    EC_WORD_EVEN_SO, +    EC_WORD_MUST_BE, +    EC_WORD_NATURALLY, +    EC_WORD_FOR_NOW, +    EC_WORD_UNDERSTOOD, +    EC_WORD_JOKING, +    EC_WORD_READY, +    EC_WORD_SOMETHING, +    EC_WORD_SOMEHOW, +    EC_WORD_ALTHOUGH, +    EC_WORD_ALSO, +    EC_WORD_PERFECT, +    EC_WORD_AS_MUCH_AS, +    EC_WORD_REALLY, +    EC_WORD_TRULY, +    EC_WORD_SERIOUSLY, +    EC_WORD_TOTALLY, +    EC_WORD_UNTIL, +    EC_WORD_AS_IF, +    EC_WORD_MOOD, +    EC_WORD_RATHER, +    EC_WORD_AWFULLY, +    EC_WORD_MODE, +    EC_WORD_MORE, +    EC_WORD_TOO_LATE, +    EC_WORD_FINALLY, +    EC_WORD_ANY, +    EC_WORD_INSTEAD, +    EC_WORD_FANTASTIC +}; +enum { +    EC_WORD_WILL = EC_GROUP_ENDINGS << 9, +    EC_WORD_WILL_BE_HERE, +    EC_WORD_OR, +    EC_WORD_TIMES, +    EC_WORD_WONDER, +    EC_WORD_IS_IT_QUES, +    EC_WORD_BE, +    EC_WORD_GIMME, +    EC_WORD_COULD, +    EC_WORD_LIKELY_TO, +    EC_WORD_WOULD, +    EC_WORD_IS, +    EC_WORD_ISN_T_IT_QUES, +    EC_WORD_LET_S, +    EC_WORD_OTHER, +    EC_WORD_ARE, +    EC_WORD_WAS, +    EC_WORD_WERE, +    EC_WORD_THOSE, +    EC_WORD_ISN_T, +    EC_WORD_WON_T, +    EC_WORD_CAN_T, +    EC_WORD_CAN, +    EC_WORD_DON_T, +    EC_WORD_DO, +    EC_WORD_DOES, +    EC_WORD_WHOM, +    EC_WORD_WHICH, +    EC_WORD_WASN_T, +    EC_WORD_WEREN_T, +    EC_WORD_HAVE, +    EC_WORD_HAVEN_T, +    EC_WORD_A, +    EC_WORD_AN, +    EC_WORD_NOT, +    EC_WORD_THERE, +    EC_WORD_OK_QUES, +    EC_WORD_SO, +    EC_WORD_MAYBE, +    EC_WORD_ABOUT, +    EC_WORD_OVER, +    EC_WORD_IT, +    EC_WORD_ALL, +    EC_WORD_FOR, +    EC_WORD_ON, +    EC_WORD_OFF, +    EC_WORD_AS, +    EC_WORD_TO, +    EC_WORD_WITH, +    EC_WORD_BETTER, +    EC_WORD_EVER, +    EC_WORD_SINCE, +    EC_WORD_OF, +    EC_WORD_BELONGS_TO, +    EC_WORD_AT, +    EC_WORD_IN, +    EC_WORD_OUT, +    EC_WORD_TOO, +    EC_WORD_LIKE, +    EC_WORD_DID, +    EC_WORD_DIDN_T, +    EC_WORD_DOESN_T, +    EC_WORD_WITHOUT, +    EC_WORD_AFTER, +    EC_WORD_BEFORE, +    EC_WORD_WHILE, +    EC_WORD_THAN, +    EC_WORD_ONCE, +    EC_WORD_ANYWHERE +}; +enum { +    EC_WORD_MEET = EC_GROUP_FEELINGS << 9, +    EC_WORD_PLAY, +    EC_WORD_HURRIED, +    EC_WORD_GOES, +    EC_WORD_GIDDY, +    EC_WORD_HAPPY, +    EC_WORD_HAPPINESS, +    EC_WORD_EXCITE, +    EC_WORD_IMPORTANT, +    EC_WORD_FUNNY, +    EC_WORD_GOT, +    EC_WORD_GO_HOME, +    EC_WORD_DISAPPOINTED, +    EC_WORD_DISAPPOINTS, +    EC_WORD_SAD, +    EC_WORD_TRY, +    EC_WORD_TRIES, +    EC_WORD_HEARS, +    EC_WORD_THINK, +    EC_WORD_HEAR, +    EC_WORD_WANTS, +    EC_WORD_MISHEARD, +    EC_WORD_DISLIKE, +    EC_WORD_ANGRY, +    EC_WORD_ANGER, +    EC_WORD_SCARY, +    EC_WORD_LONESOME, +    EC_WORD_DISAPPOINT, +    EC_WORD_JOY, +    EC_WORD_GETS, +    EC_WORD_NEVER, +    EC_WORD_DARN, +    EC_WORD_DOWNCAST, +    EC_WORD_INCREDIBLE, +    EC_WORD_LIKES, +    EC_WORD_DISLIKES, +    EC_WORD_BORING, +    EC_WORD_CARE, +    EC_WORD_CARES, +    EC_WORD_ALL_RIGHT, +    EC_WORD_ADORE, +    EC_WORD_DISASTER, +    EC_WORD_ENJOY, +    EC_WORD_ENJOYS, +    EC_WORD_EAT, +    EC_WORD_LACKING, +    EC_WORD_BAD, +    EC_WORD_HARD, +    EC_WORD_TERRIBLE, +    EC_WORD_SHOULD, +    EC_WORD_NICE, +    EC_WORD_DRINK, +    EC_WORD_SURPRISE, +    EC_WORD_FEAR, +    EC_WORD_WANT, +    EC_WORD_WAIT, +    EC_WORD_SATISFIED, +    EC_WORD_SEE, +    EC_WORD_RARE, +    EC_WORD_NEGATIVE, +    EC_WORD_DONE, +    EC_WORD_DANGER, +    EC_WORD_DEFEATED, +    EC_WORD_BEAT, +    EC_WORD_GREAT, +    EC_WORD_ROMANTIC, +    EC_WORD_QUESTION, +    EC_WORD_UNDERSTAND, +    EC_WORD_UNDERSTANDS +}; +enum { +    EC_WORD_HOT = EC_GROUP_CONDITIONS << 9, +    EC_WORD_EXISTS, +    EC_WORD_EXCESS, +    EC_WORD_APPROVED, +    EC_WORD_HAS, +    EC_WORD_GOOD, +    EC_WORD_LESS, +    EC_WORD_MOMENTUM, +    EC_WORD_GOING, +    EC_WORD_WEIRD, +    EC_WORD_BUSY, +    EC_WORD_TOGETHER, +    EC_WORD_FULL, +    EC_WORD_ABSENT, +    EC_WORD_BEING, +    EC_WORD_NEED, +    EC_WORD_TASTY, +    EC_WORD_SKILLED, +    EC_WORD_NOISY, +    EC_WORD_BIG, +    EC_WORD_LATE, +    EC_WORD_CLOSE, +    EC_WORD_DOCILE, +    EC_WORD_AMUSING, +    EC_WORD_ENTERTAINING, +    EC_WORD_PERFECTION, +    EC_WORD_PRETTY, +    EC_WORD_HEALTHY, +    EC_WORD_EXCELLENT, +    EC_WORD_UPSIDE_DOWN, +    EC_WORD_COLD, +    EC_WORD_REFRESHING, +    EC_WORD_UNAVOIDABLE, +    EC_WORD_MUCH, +    EC_WORD_OVERWHELMING, +    EC_WORD_FABULOUS, +    EC_WORD_ELSE, +    EC_WORD_EXPENSIVE, +    EC_WORD_CORRECT, +    EC_WORD_IMPOSSIBLE, +    EC_WORD_SMALL, +    EC_WORD_DIFFERENT, +    EC_WORD_TIRED, +    EC_WORD_SKILL, +    EC_WORD_TOP, +    EC_WORD_NON_STOP, +    EC_WORD_PREPOSTEROUS, +    EC_WORD_NONE, +    EC_WORD_NOTHING, +    EC_WORD_NATURAL, +    EC_WORD_BECOMES, +    EC_WORD_LUKEWARM, +    EC_WORD_FAST, +    EC_WORD_LOW, +    EC_WORD_AWFUL, +    EC_WORD_ALONE, +    EC_WORD_BORED, +    EC_WORD_SECRET, +    EC_WORD_MYSTERY, +    EC_WORD_LACKS, +    EC_WORD_BEST, +    EC_WORD_LOUSY, +    EC_WORD_MISTAKE, +    EC_WORD_KIND, +    EC_WORD_WELL, +    EC_WORD_WEAKENED, +    EC_WORD_SIMPLE, +    EC_WORD_SEEMS, +    EC_WORD_BADLY +}; +enum { +    EC_WORD_MEETS = EC_GROUP_ACTIONS << 9, +    EC_WORD_CONCEDE, +    EC_WORD_GIVE, +    EC_WORD_GIVES, +    EC_WORD_PLAYED, +    EC_WORD_PLAYS, +    EC_WORD_COLLECT, +    EC_WORD_WALKING, +    EC_WORD_WALKS, +    EC_WORD_SAYS, +    EC_WORD_WENT, +    EC_WORD_SAID, +    EC_WORD_WAKE_UP, +    EC_WORD_WAKES_UP, +    EC_WORD_ANGERS, +    EC_WORD_TEACH, +    EC_WORD_TEACHES, +    EC_WORD_PLEASE, +    EC_WORD_LEARN, +    EC_WORD_CHANGE, +    EC_WORD_STORY, +    EC_WORD_TRUST, +    EC_WORD_LAVISH, +    EC_WORD_LISTENS, +    EC_WORD_HEARING, +    EC_WORD_TRAINS, +    EC_WORD_CHOOSE, +    EC_WORD_COME, +    EC_WORD_CAME, +    EC_WORD_SEARCH, +    EC_WORD_MAKE, +    EC_WORD_CAUSE, +    EC_WORD_KNOW, +    EC_WORD_KNOWS, +    EC_WORD_REFUSE, +    EC_WORD_STORES, +    EC_WORD_BRAG, +    EC_WORD_IGNORANT, +    EC_WORD_THINKS, +    EC_WORD_BELIEVE, +    EC_WORD_SLIDE, +    EC_WORD_EATS, +    EC_WORD_USE, +    EC_WORD_USES, +    EC_WORD_USING, +    EC_WORD_COULDN_T, +    EC_WORD_CAPABLE, +    EC_WORD_DISAPPEAR, +    EC_WORD_APPEAR, +    EC_WORD_THROW, +    EC_WORD_WORRY, +    EC_WORD_SLEPT, +    EC_WORD_SLEEP, +    EC_WORD_RELEASE, +    EC_WORD_DRINKS, +    EC_WORD_RUNS, +    EC_WORD_RUN, +    EC_WORD_WORKS, +    EC_WORD_WORKING, +    EC_WORD_TALKING, +    EC_WORD_TALK, +    EC_WORD_SINK, +    EC_WORD_SMACK, +    EC_WORD_PRETEND, +    EC_WORD_PRAISE, +    EC_WORD_OVERDO, +    EC_WORD_SHOW, +    EC_WORD_LOOKS, +    EC_WORD_SEES, +    EC_WORD_SEEK, +    EC_WORD_OWN, +    EC_WORD_TAKE, +    EC_WORD_ALLOW, +    EC_WORD_FORGET, +    EC_WORD_FORGETS, +    EC_WORD_APPEARS, +    EC_WORD_FAINT, +    EC_WORD_FAINTED +}; +enum { +    EC_WORD_CHORES = EC_GROUP_LIFESTYLE << 9, +    EC_WORD_HOME, +    EC_WORD_MONEY, +    EC_WORD_ALLOWANCE, +    EC_WORD_BATH, +    EC_WORD_CONVERSATION, +    EC_WORD_SCHOOL, +    EC_WORD_COMMEMORATE, +    EC_WORD_HABIT, +    EC_WORD_GROUP, +    EC_WORD_WORD, +    EC_WORD_STORE, +    EC_WORD_SERVICE, +    EC_WORD_WORK, +    EC_WORD_SYSTEM, +    EC_WORD_TRAIN, +    EC_WORD_CLASS, +    EC_WORD_LESSONS, +    EC_WORD_INFORMATION, +    EC_WORD_LIVING, +    EC_WORD_TEACHER, +    EC_WORD_TOURNAMENT, +    EC_WORD_LETTER, +    EC_WORD_EVENT, +    EC_WORD_DIGITAL, +    EC_WORD_TEST, +    EC_WORD_DEPT_STORE, +    EC_WORD_TELEVISION, +    EC_WORD_PHONE, +    EC_WORD_ITEM, +    EC_WORD_NAME, +    EC_WORD_NEWS, +    EC_WORD_POPULAR, +    EC_WORD_PARTY, +    EC_WORD_STUDY, +    EC_WORD_MACHINE, +    EC_WORD_MAIL, +    EC_WORD_MESSAGE, +    EC_WORD_PROMISE, +    EC_WORD_DREAM, +    EC_WORD_KINDERGARTEN, +    EC_WORD_LIFE, +    EC_WORD_RADIO, +    EC_WORD_RENTAL, +    EC_WORD_WORLD +}; +enum { +    EC_WORD_IDOL = EC_GROUP_HOBBIES << 9, +    EC_WORD_ANIME, +    EC_WORD_SONG, +    EC_WORD_MOVIE, +    EC_WORD_SWEETS, +    EC_WORD_CHAT, +    EC_WORD_CHILD_S_PLAY, +    EC_WORD_TOYS, +    EC_WORD_MUSIC, +    EC_WORD_CARDS, +    EC_WORD_SHOPPING, +    EC_WORD_CAMERA, +    EC_WORD_VIEWING, +    EC_WORD_SPECTATOR, +    EC_WORD_GOURMET, +    EC_WORD_GAME, +    EC_WORD_RPG, +    EC_WORD_COLLECTION, +    EC_WORD_COMPLETE, +    EC_WORD_MAGAZINE, +    EC_WORD_WALK, +    EC_WORD_BIKE, +    EC_WORD_HOBBY, +    EC_WORD_SPORTS, +    EC_WORD_SOFTWARE, +    EC_WORD_SONGS, +    EC_WORD_DIET, +    EC_WORD_TREASURE, +    EC_WORD_TRAVEL, +    EC_WORD_DANCE, +    EC_WORD_CHANNEL, +    EC_WORD_MAKING, +    EC_WORD_FISHING, +    EC_WORD_DATE, +    EC_WORD_DESIGN, +    EC_WORD_LOCOMOTIVE, +    EC_WORD_PLUSH_DOLL, +    EC_WORD_PC, +    EC_WORD_FLOWERS, +    EC_WORD_HERO, +    EC_WORD_NAP, +    EC_WORD_HEROINE, +    EC_WORD_FASHION, +    EC_WORD_ADVENTURE, +    EC_WORD_BOARD, +    EC_WORD_BALL, +    EC_WORD_BOOK, +    EC_WORD_FESTIVAL, +    EC_WORD_COMICS, +    EC_WORD_HOLIDAY, +    EC_WORD_PLANS, +    EC_WORD_TRENDY, +    EC_WORD_VACATION, +    EC_WORD_LOOK +}; +enum { +    EC_WORD_FALL = EC_GROUP_TIME << 9, +    EC_WORD_MORNING, +    EC_WORD_TOMORROW, +    EC_WORD_LAST, +    EC_WORD_DAY, +    EC_WORD_SOMETIME, +    EC_WORD_ALWAYS, +    EC_WORD_CURRENT, +    EC_WORD_FOREVER, +    EC_WORD_DAYS, +    EC_WORD_END, +    EC_WORD_TUESDAY, +    EC_WORD_YESTERDAY, +    EC_WORD_TODAY, +    EC_WORD_FRIDAY, +    EC_WORD_MONDAY, +    EC_WORD_LATER, +    EC_WORD_EARLIER, +    EC_WORD_ANOTHER, +    EC_WORD_TIME, +    EC_WORD_FINISH, +    EC_WORD_WEDNESDAY, +    EC_WORD_SOON, +    EC_WORD_START, +    EC_WORD_MONTH, +    EC_WORD_STOP, +    EC_WORD_NOW, +    EC_WORD_FINAL, +    EC_WORD_NEXT, +    EC_WORD_AGE, +    EC_WORD_SATURDAY, +    EC_WORD_SUMMER, +    EC_WORD_SUNDAY, +    EC_WORD_BEGINNING, +    EC_WORD_SPRING, +    EC_WORD_DAYTIME, +    EC_WORD_WINTER, +    EC_WORD_DAILY, +    EC_WORD_OLDEN, +    EC_WORD_ALMOST, +    EC_WORD_NEARLY, +    EC_WORD_THURSDAY, +    EC_WORD_NIGHTTIME, +    EC_WORD_NIGHT, +    EC_WORD_WEEK +}; +enum { +    EC_WORD_HIGHS = EC_GROUP_MISC << 9, +    EC_WORD_LOWS, +    EC_WORD_UM, +    EC_WORD_REAR, +    EC_WORD_THINGS, +    EC_WORD_THING, +    EC_WORD_BELOW, +    EC_WORD_ABOVE, +    EC_WORD_BACK, +    EC_WORD_HIGH, +    EC_WORD_HERE, +    EC_WORD_INSIDE, +    EC_WORD_OUTSIDE, +    EC_WORD_BESIDE, +    EC_WORD_THIS_IS_IT_EXCL, +    EC_WORD_THIS, +    EC_WORD_EVERY, +    EC_WORD_THESE, +    EC_WORD_THESE_WERE, +    EC_WORD_DOWN, +    EC_WORD_THAT, +    EC_WORD_THOSE_ARE, +    EC_WORD_THOSE_WERE, +    EC_WORD_THAT_S_IT_EXCL, +    EC_WORD_AM, +    EC_WORD_THAT_WAS, +    EC_WORD_FRONT, +    EC_WORD_UP, +    EC_WORD_CHOICE, +    EC_WORD_FAR, +    EC_WORD_AWAY, +    EC_WORD_NEAR, +    EC_WORD_WHERE, +    EC_WORD_WHEN, +    EC_WORD_WHAT, +    EC_WORD_DEEP, +    EC_WORD_SHALLOW, +    EC_WORD_WHY, +    EC_WORD_CONFUSED, +    EC_WORD_OPPOSITE, +    EC_WORD_LEFT, +    EC_WORD_RIGHT +}; +enum { +    EC_WORD_WANDERING = EC_GROUP_ADJECTIVES << 9, +    EC_WORD_RICKETY, +    EC_WORD_ROCK_SOLID, +    EC_WORD_HUNGRY, +    EC_WORD_TIGHT, +    EC_WORD_TICKLISH, +    EC_WORD_TWIRLING, +    EC_WORD_SPIRALING, +    EC_WORD_THIRSTY, +    EC_WORD_LOLLING, +    EC_WORD_SILKY, +    EC_WORD_SADLY, +    EC_WORD_HOPELESS, +    EC_WORD_USELESS, +    EC_WORD_DROOLING, +    EC_WORD_EXCITING, +    EC_WORD_THICK, +    EC_WORD_SMOOTH, +    EC_WORD_SLIMY, +    EC_WORD_THIN, +    EC_WORD_BREAK, +    EC_WORD_VORACIOUS, +    EC_WORD_SCATTER, +    EC_WORD_AWESOME, +    EC_WORD_WIMPY, +    EC_WORD_WOBBLY, +    EC_WORD_SHAKY, +    EC_WORD_RIPPED, +    EC_WORD_SHREDDED, +    EC_WORD_INCREASING, +    EC_WORD_YET, +    EC_WORD_DESTROYED, +    EC_WORD_FIERY, +    EC_WORD_LOVEY_DOVEY, +    EC_WORD_HAPPILY, +    EC_WORD_ANTICIPATION +}; +enum { +    EC_WORD_APPEAL = EC_GROUP_EVENTS << 9, +    EC_WORD_EVENTS, +    EC_WORD_STAY_AT_HOME, +    EC_WORD_BERRY, +    EC_WORD_CONTEST, +    EC_WORD_MC, +    EC_WORD_JUDGE, +    EC_WORD_SUPER, +    EC_WORD_STAGE, +    EC_WORD_HALL_OF_FAME, +    EC_WORD_EVOLUTION, +    EC_WORD_HYPER, +    EC_WORD_BATTLE_TOWER, +    EC_WORD_LEADERS, +    EC_WORD_BATTLE_ROOM, +    EC_WORD_HIDDEN, +    EC_WORD_SECRET_BASE, +    EC_WORD_BLEND, +    EC_WORD_POKEBLOCK, +    EC_WORD_MASTER, +    EC_WORD_RANK, +    EC_WORD_RIBBON +}; +enum { +    EC_WORD_KTHX_BYE = EC_GROUP_TRENDY_SAYING << 9, +    EC_WORD_YES_SIR_EXCL, +    EC_WORD_AVANT_GARDE, +    EC_WORD_COUPLE, +    EC_WORD_MUCH_OBLIGED, +    EC_WORD_YEEHAW_EXCL, +    EC_WORD_MEGA, +    EC_WORD_1_HIT_KO_EXCL, +    EC_WORD_DESTINY, +    EC_WORD_CANCEL, +    EC_WORD_NEW, +    EC_WORD_FLATTEN, +    EC_WORD_KIDDING, +    EC_WORD_LOSER, +    EC_WORD_LOSING, +    EC_WORD_HAPPENING, +    EC_WORD_HIP_AND, +    EC_WORD_SHAKE, +    EC_WORD_SHADY, +    EC_WORD_UPBEAT, +    EC_WORD_MODERN, +    EC_WORD_SMELL_YA, +    EC_WORD_BANG, +    EC_WORD_KNOCKOUT, +    EC_WORD_HASSLE, +    EC_WORD_WINNER, +    EC_WORD_FEVER, +    EC_WORD_WANNABE, +    EC_WORD_BABY, +    EC_WORD_HEART, +    EC_WORD_OLD, +    EC_WORD_YOUNG, +    EC_WORD_UGLY +}; -// 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 << 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) +extern u8 gUnknown_020388AC; +  u16 sub_80EB72C(u16 group);  void sub_80EB6FC(u16 *, u16);  void InitEasyChatPhrases(void); 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_effect_helpers.h b/include/field_effect_helpers.h index 11e96254d..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,9 +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 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); +u8 sub_8126FF0(u8, u8, u8, s16, s16);  #endif // GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index d2a1a9b1f..641a28ed3 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -3,6 +3,8 @@  #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)\ @@ -54,17 +56,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 +318,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); @@ -379,14 +379,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);  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 +396,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 +429,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/gba/macro.h b/include/gba/macro.h index 230fb4383..1e0254806 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -84,4 +84,38 @@      dmaRegs[5];                                                 \  } +#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ +{                                                         \ +    const void *_src = src;                               \ +    void *_dest = 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 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 DmaCopyDefvars(dmaNum, src, dest, size, bit) \ +{                                                    \ +    const void *_src = src;                          \ +    void *_dest = 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) +  #endif // GUARD_GBA_MACRO_H diff --git a/include/global.h b/include/global.h index 79269937f..f0eb7401f 100644 --- a/include/global.h +++ b/include/global.h @@ -37,6 +37,7 @@ fndec\  #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) +#define POKEMON_SLOTS_NUMBER 412  #define POKEMON_NAME_LENGTH 10  #define OT_NAME_LENGTH 7 @@ -560,18 +561,34 @@ struct GabbyAndTyData      /*2b1b*/ u8 valB_5:3;  }; -struct RecordMixing_UnknownStructSub +struct DayCareMail  { -    u32 unk0; -    u8 data[0x34]; -    //u8 data[0x38]; +    /*0x00*/ struct MailStruct message; +    /*0x24*/ u8 names[19];  }; -struct RecordMixing_UnknownStruct +struct DayCareStepCountersEtc { +    u32 steps[2]; +    u16 personalityLo; +    u8 unk_11a; +}; + +struct RecordMixingDayCareMail  { -    struct RecordMixing_UnknownStructSub data[2]; +    struct DayCareMail mail[2];      u32 unk70; -    u16 unk74[0x2]; +    u16 unk74[2]; +}; + +struct DayCareMisc +{ +    struct DayCareMail mail[2]; +    struct DayCareStepCountersEtc countersEtc; +}; + +struct DayCareData { +    struct BoxPokemon mons[2]; +    struct DayCareMisc misc;  };  struct LinkBattleRecord @@ -597,15 +614,20 @@ struct RecordMixingGift      struct RecordMixingGiftData data;  }; +// 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 flashLevel;  // flash level on current map, 0 being normal and 4 being the darkest @@ -623,7 +645,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; @@ -670,20 +692,16 @@ struct SaveBlock1 /* 0x02025734 */      /*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]; +    /*0x2F9C*/ struct DayCareData daycareData;      /*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; @@ -705,8 +723,8 @@ 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 diff --git a/include/graphics.h b/include/graphics.h index 5632cb831..f3a722b40 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2564,4 +2564,13 @@ 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[];  #endif  // GUARD_GRAPHICS_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/menu_cursor.h b/include/menu_cursor.h index ca82ef244..6d31cc29f 100644 --- a/include/menu_cursor.h +++ b/include/menu_cursor.h @@ -21,4 +21,8 @@ void sub_814AD7C(u8 a1, u8 a2);  void sub_814ADC8(void);  void sub_814ADF4(u8 a1); +#if GERMAN +extern const u32 gUnknown_0842F798[2]; +#endif +  #endif // GUARD_MENU_CURSOR_H diff --git a/include/overworld.h b/include/overworld.h index fcdc8ed97..0954f1b63 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -26,23 +26,23 @@ extern const struct UCoords32 gUnknown_0821664C[];  extern void (*gFieldCallback)(void);  // sub_8052F5C -void flag_var_implications_of_teleport_(void); +void Overworld_ResetStateAfterFly(void);  void Overworld_ResetStateAfterTeleport(void); -void sub_8053014(void); -void sub_8053050(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 +// LoadMapObjTemplatesFromHeader  // LoadSaveblockMapObjScripts -void Overworld_SaveMapObjCoords(u8, s16, s16); -void Overworld_SaveMapObjMovementType(u8, u8); +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 Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum);  struct MapHeader * const warp1_get_mapheader(void); @@ -50,14 +50,14 @@ struct MapHeader * const warp1_get_mapheader(void);  // 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,7 +81,7 @@ 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 Overworld_IsBikeAllowedOnCurrentMap(void); +bool32 Overworld_IsBikingAllowed(void);  void SetDefaultFlashLevel(void);  void Overworld_SetFlashLevel(s32 a1);  u8 Overworld_GetFlashLevel(void); @@ -89,19 +89,19 @@ void sub_8053D14(u16);  // sub_8053D30  // sub_8053D6C  // GetLocationMusic -// 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); +// 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 Overworld_ChangeMusicToDefault(void);  void Overworld_ChangeMusicTo(u16);  // GetMapMusicFadeoutSpeed  void sub_8053FF8(void);  bool8 sub_8054034(void); -void sub_8054044(void); +void Overworld_FadeOutMapMusic(void);  // PlayAmbientCry  void UpdateAmbientCry(s16 *, u16 *);  void ChooseAmbientCrySpecies(void); @@ -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 cefe7de4f..6f0077f8c 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -106,6 +106,7 @@ void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c);  void SetMonIconSpriteId_maybe(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); 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..c47494e1f 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -9,7 +9,17 @@ 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); diff --git a/include/pokemon.h b/include/pokemon.h index 2266c2ea4..4c3e27609 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -93,6 +93,8 @@  #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 @@ -391,7 +393,7 @@ struct BaseStats      /*0x17*/ u8 ability2;      /*0x18*/ u8 safariZoneFleeRate;      /*0x19*/ u8 bodyColor:7; -             u8 unk19_7:1; +             u8 noFlip:1;  };  struct BattleMove @@ -510,7 +512,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); @@ -591,9 +593,9 @@ 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); @@ -602,6 +604,11 @@ 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 *);  #endif // GUARD_POKEMON_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/rom_8077ABC.h b/include/rom_8077ABC.h index 11e94e1f5..94e535df5 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -4,10 +4,18 @@  #include "sprite.h"  #include "task.h" +enum +{ +    ANIM_BANK_ATK, +    ANIM_BANK_DEF, +    ANIM_BANK_ATK_PARTNER, +    ANIM_BANK_DEF_PARTNER +}; +  u8 sub_8077ABC(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 StoreSpriteCallbackInData6(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); @@ -22,8 +30,8 @@ u8 GetBankIdentity(u8 slot);  u8 GetBankByPlayerAI(u8);  u8 GetBankByPlayerAI(u8);  u8 GetBankByPlayerAI(u8 state); -u8 sub_8078874(u8); -bool8 sub_8078874(u8); +u8 AnimBankSpriteExists(u8); +bool8 AnimBankSpriteExists(u8);  bool8 IsDoubleBattle();  u8 IsDoubleBattle(void);  bool8 IsDoubleBattle(void); @@ -55,5 +63,6 @@ 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);  #endif // GUARD_ROM_8077ABC_H diff --git a/include/sprite.h b/include/sprite.h index 4fda9b30d..54ea02816 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -299,4 +299,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/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 7125bc803..ebc4ebe7e 100644 --- a/include/text.h +++ b/include/text.h @@ -126,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[]; @@ -203,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); @@ -245,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/trade.h b/include/trade.h index a4f05e8ed..642bdcd65 100644 --- a/include/trade.h +++ b/include/trade.h @@ -1,18 +1,64 @@ +  #ifndef GUARD_TRADE_H  #define GUARD_TRADE_H -struct SomeTradeStruct -{ -    u8 unk0; -    u8 unk1; -    u8 unk2; -    u8 unk3; -    struct Window field_4; -    u8 field_34; +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 SomeTradeStruct* gUnknown_03004828; +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); +u16 sub_804DB2C(void); +void sub_804DB68(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); +u16 sub_804D89C(void); -#endif // GUARD_TRADE_H +#endif //POKERUBY_TRADE_H diff --git a/include/util.h b/include/util.h index cd50b75cc..87fa4aecc 100644 --- a/include/util.h +++ b/include/util.h @@ -10,5 +10,6 @@ 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);  #endif // GUARD_UTIL_H | 
