diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/data2.h | 9 | ||||
-rw-r--r-- | include/pokemon.h | 84 | ||||
-rw-r--r-- | include/trainer.h | 227 |
3 files changed, 309 insertions, 11 deletions
diff --git a/include/data2.h b/include/data2.h index f292472ef..2289969b8 100644 --- a/include/data2.h +++ b/include/data2.h @@ -18,6 +18,15 @@ struct MonCoords u8 y_offset; }; +extern const struct OamData gOamData_81F96F0; +extern const struct OamData gOamData_81F96E8; +extern const struct SpriteFrameImage gSpriteImageTable_81E7A10[]; +extern const struct SpriteFrameImage gSpriteImageTable_81E7A30[]; +extern const struct SpriteFrameImage gSpriteImageTable_81E7A50[]; +extern const struct SpriteFrameImage gSpriteImageTable_81E7A70[]; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7B70[]; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7BEC[]; + extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18; extern const union AnimCmd *const gSpriteAnimTable_81E7C64[]; extern struct MonCoords gMonFrontPicCoords[]; diff --git a/include/pokemon.h b/include/pokemon.h index be8e4e56d..fe0a49d48 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -122,6 +122,25 @@ #define UNOWN_FORM_COUNT 28 enum { + EGG_GROUP_NONE, + EGG_GROUP_MONSTER, + EGG_GROUP_WATER_1, + EGG_GROUP_BUG, + EGG_GROUP_FLYING, + EGG_GROUP_FIELD, + EGG_GROUP_FAIRY, + EGG_GROUP_GRASS, + EGG_GROUP_HUMAN_LIKE, + EGG_GROUP_WATER_3, + EGG_GROUP_MINERAL, + EGG_GROUP_AMORPHOUS, + EGG_GROUP_WATER_2, + EGG_GROUP_DITTO, + EGG_GROUP_DRAGON, + EGG_GROUP_UNDISCOVERED +}; + +enum { NATURE_HARDY, NATURE_LONELY, NATURE_BRAVE, @@ -384,6 +403,55 @@ struct PokemonStorage u8 unkArray[14]; }; +struct SpindaSpot +{ + u8 x, y; + u16 image[16]; +}; + +struct __attribute__((packed)) LevelUpMove { + u16 move:9; + u16 level:7; +}; + +enum { + GROWTH_MEDIUM_FAST, + GROWTH_ERRATIC, + GROWTH_FLUCTUATING, + GROWTH_MEDIUM_SLOW, + GROWTH_FAST, + GROWTH_SLOW +}; + +enum { + BODY_COLOR_RED, + BODY_COLOR_BLUE, + BODY_COLOR_YELLOW, + BODY_COLOR_GREEN, + BODY_COLOR_BLACK, + BODY_COLOR_BROWN, + BODY_COLOR_PURPLE, + BODY_COLOR_GRAY, + BODY_COLOR_WHITE, + BODY_COLOR_PINK +}; + +#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220 +#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220 +#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220 +#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level +#define EVO_TRADE 0x0005 // Pokémon is traded +#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item +#define EVO_ITEM 0x0007 // specified item is used on Pokémon +#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense +#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense +#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense +#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value +#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value +#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask) +#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja) +#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value + struct Evolution { u16 method; @@ -396,19 +464,13 @@ struct EvolutionData struct Evolution evolutions[5]; }; -extern const u8 *const gItemEffectTable[]; -extern u8 gTrainerClassToPicIndex[]; -extern u8 gTrainerClassToNameIndex[]; -extern const u32 gExperienceTables[8][101]; -extern const struct BaseStats gBaseStats[]; -extern struct EvolutionData gEvolutionTable[]; -extern const u16 *gLevelUpLearnsets[]; -extern u8 gUnknown_08208238[]; -extern u8 gUnknown_0820823C[]; -extern u8 gStatStageRatios[][2]; - extern struct Pokemon gPlayerParty[PARTY_SIZE]; extern struct Pokemon gEnemyParty[PARTY_SIZE]; +extern const u8 *const gItemEffectTable[]; +extern const struct BaseStats gBaseStats[]; +extern const u32 gExperienceTables[][101]; +extern const u16 *const gLevelUpLearnsets[]; +extern const struct EvolutionData gEvolutionTable[]; void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroMonData(struct Pokemon *mon); diff --git a/include/trainer.h b/include/trainer.h index 232cde608..2e0beb342 100644 --- a/include/trainer.h +++ b/include/trainer.h @@ -16,4 +16,231 @@ #define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12 #define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen +enum { + TRAINER_CLASS_AQUA_LEADER, + TRAINER_CLASS_TEAM_AQUA_M, + TRAINER_CLASS_TEAM_AQUA_F, + TRAINER_CLASS_AROMA_LADY, + TRAINER_CLASS_RUIN_MANIAC, + TRAINER_CLASS_INTERVIEWER, + TRAINER_CLASS_TUBER_F, + TRAINER_CLASS_TUBER_M, + TRAINER_CLASS_COOL_TRAINER_M, + TRAINER_CLASS_COOL_TRAINER_F, + TRAINER_CLASS_HEX_MANIAC, + TRAINER_CLASS_LADY, + TRAINER_CLASS_BEAUTY, + TRAINER_CLASS_RICH_BOY, + TRAINER_CLASS_POKEMANIAC, + TRAINER_CLASS_SWIMMER_M, + TRAINER_CLASS_BLACK_BELT, + TRAINER_CLASS_GUITARIST, + TRAINER_CLASS_KINDLER, + TRAINER_CLASS_CAMPER, + TRAINER_CLASS_BUG_MANIAC, + TRAINER_CLASS_PSYCHIC_M, + TRAINER_CLASS_PSYCHIC_F, + TRAINER_CLASS_GENTLEMAN, + TRAINER_CLASS_ELITE_FOUR_M, + TRAINER_CLASS_ELITE_FOUR_F, + TRAINER_CLASS_LEADER_F, + TRAINER_CLASS_LEADER_M, + TRAINER_CLASS_LEADER_MF, + TRAINER_CLASS_SCHOOL_KID_M, + TRAINER_CLASS_SCHOOL_KID_F, + TRAINER_CLASS_SR_AND_JR, + TRAINER_CLASS_POKEFAN_M, + TRAINER_CLASS_POKEFAN_F, + TRAINER_CLASS_EXPERT_M, + TRAINER_CLASS_EXPERT_F, + TRAINER_CLASS_YOUNGSTER, + TRAINER_CLASS_CHAMPION, + TRAINER_CLASS_FISHERMAN, + TRAINER_CLASS_CYCLING_TRIATHLETE_M, + TRAINER_CLASS_CYCLING_TRIATHLETE_F, + TRAINER_CLASS_RUNNING_TRIATHLETE_M, + TRAINER_CLASS_RUNNING_TRIATHLETE_F, + TRAINER_CLASS_SWIMMING_TRIATHLETE_M, + TRAINER_CLASS_SWIMMING_TRIATHLETE_F, + TRAINER_CLASS_DRAGON_TAMER, + TRAINER_CLASS_BIRD_KEEPER, + TRAINER_CLASS_NINJA_BOY, + TRAINER_CLASS_BATTLE_GIRL, + TRAINER_CLASS_PARASOL_LADY, + TRAINER_CLASS_SWIMMER_F, + TRAINER_CLASS_PICNICKER, + TRAINER_CLASS_TWINS, + TRAINER_CLASS_SAILOR, + TRAINER_CLASS_BOARDER_1, + TRAINER_CLASS_BOARDER_2, + TRAINER_CLASS_COLLECTOR, + TRAINER_CLASS_WALLY, + TRAINER_CLASS_BRENDAN_1, + TRAINER_CLASS_BRENDAN_2, + TRAINER_CLASS_BRENDAN_3, + TRAINER_CLASS_MAY_1, + TRAINER_CLASS_MAY_2, + TRAINER_CLASS_MAY_3, + TRAINER_CLASS_POKEMON_BREEDER_M, + TRAINER_CLASS_POKEMON_BREEDER_F, + TRAINER_CLASS_POKEMON_RANGER_M, + TRAINER_CLASS_POKEMON_RANGER_F, + TRAINER_CLASS_MAGMA_LEADER, + TRAINER_CLASS_TEAM_MAGMA_M, + TRAINER_CLASS_TEAM_MAGMA_F, + TRAINER_CLASS_LASS, + TRAINER_CLASS_BUG_CATCHER, + TRAINER_CLASS_HIKER, + TRAINER_CLASS_YOUNG_COUPLE, + TRAINER_CLASS_OLD_COUPLE, + TRAINER_CLASS_SIS_AND_BRO +}; + +enum { + TRAINER_PIC_BRENDAN, + TRAINER_PIC_MAY, + TRAINER_PIC_LASS, + TRAINER_PIC_YOUNGSTER, + TRAINER_PIC_HIKER, + TRAINER_PIC_BEAUTY, + TRAINER_PIC_FISHERMAN, + TRAINER_PIC_LADY, + TRAINER_PIC_CYCLING_TRIATHLETE_M, + TRAINER_PIC_AQUA_GRUNT_M, + TRAINER_PIC_TWINS, + TRAINER_PIC_SWIMMER_F, + TRAINER_PIC_BUG_CATCHER, + TRAINER_PIC_SCHOOL_KID_M, + TRAINER_PIC_RICH_BOY, + TRAINER_PIC_SR_AND_JR, + TRAINER_PIC_BLACK_BELT, + TRAINER_PIC_WALLY, + TRAINER_PIC_AQUA_GRUNT_F, + TRAINER_PIC_TUBER_F, + TRAINER_PIC_HEX_MANIAC, + TRAINER_PIC_POKEMON_BREEDER_F, + TRAINER_PIC_MAGMA_GRUNT_M, + TRAINER_PIC_MAGMA_GRUNT_F, + TRAINER_PIC_INTERVIEWER, + TRAINER_PIC_TUBER_M, + TRAINER_PIC_YOUNG_COUPLE, + TRAINER_PIC_GUITARIST, + TRAINER_PIC_GENTLEMAN, + TRAINER_PIC_STEVEN, + TRAINER_PIC_MAXIE, + TRAINER_PIC_RUNNING_TRIATHLETE_F, + TRAINER_PIC_RUNNING_TRIATHLETE_M, + TRAINER_PIC_BATTLE_GIRL, + TRAINER_PIC_CYCLING_TRIATHLETE_F, + TRAINER_PIC_SWIMMER_M, + TRAINER_PIC_POKEFAN_F, + TRAINER_PIC_EXPERT_M, + TRAINER_PIC_EXPERT_F, + TRAINER_PIC_SWIMMING_TRIATHLETE_M, + TRAINER_PIC_SWIMMING_TRIATHLETE_F, + TRAINER_PIC_DRAGON_TAMER, + TRAINER_PIC_BIRD_KEEPER, + TRAINER_PIC_NINJA_BOY, + TRAINER_PIC_PARASOL_LADY, + TRAINER_PIC_BUG_MANIAC, + TRAINER_PIC_SAILOR, + TRAINER_PIC_COLLECTOR, + TRAINER_PIC_POKEMON_BREEDER_M, + TRAINER_PIC_POKEMON_RANGER_M, + TRAINER_PIC_POKEMON_RANGER_F, + TRAINER_PIC_MAGMA_ADMIN_M, + TRAINER_PIC_MAGMA_ADMIN_F, + TRAINER_PIC_AROMA_LADY, + TRAINER_PIC_RUIN_MANIAC, + TRAINER_PIC_COOL_TRAINER_M, + TRAINER_PIC_COOL_TRAINER_F, + TRAINER_PIC_POKEMANIAC, + TRAINER_PIC_KINDLER, + TRAINER_PIC_CAMPER, + TRAINER_PIC_PICNICKER, + TRAINER_PIC_PSYCHIC_M, + TRAINER_PIC_PSYCHIC_F, + TRAINER_PIC_SCHOOL_KID_F, + TRAINER_PIC_POKEFAN_M, + TRAINER_PIC_SIS_AND_BRO, + TRAINER_PIC_OLD_COUPLE, + TRAINER_PIC_AQUA_ADMIN_M, + TRAINER_PIC_AQUA_ADMIN_F, + TRAINER_PIC_UNUSED_AQUA, + TRAINER_PIC_ARCHIE, + TRAINER_PIC_ROXANNE, + TRAINER_PIC_BRAWLY, + TRAINER_PIC_WATTSON, + TRAINER_PIC_FLANNERY, + TRAINER_PIC_NORMAN, + TRAINER_PIC_WINONA, + TRAINER_PIC_TATE_AND_LIZA, + TRAINER_PIC_WALLACE, + TRAINER_PIC_SIDNEY, + TRAINER_PIC_PHOEBE, + TRAINER_PIC_GLACIA, + TRAINER_PIC_DRAKE, +}; + +enum { + TRAINER_CLASS_NAME_POKEMON_TRAINER_1, + TRAINER_CLASS_NAME_POKEMON_TRAINER_2, + TRAINER_CLASS_NAME_AQUA_LEADER, + TRAINER_CLASS_NAME_TEAM_AQUA, + TRAINER_CLASS_NAME_AQUA_ADMIN, + TRAINER_CLASS_NAME_AROMA_LADY, + TRAINER_CLASS_NAME_RUIN_MANIAC, + TRAINER_CLASS_NAME_INTERVIEWER, + TRAINER_CLASS_NAME_TUBER_F, + TRAINER_CLASS_NAME_TUBER_M, + TRAINER_CLASS_NAME_COOL_TRAINER, + TRAINER_CLASS_NAME_HEX_MANIAC, + TRAINER_CLASS_NAME_LADY, + TRAINER_CLASS_NAME_BEAUTY, + TRAINER_CLASS_NAME_RICH_BOY, + TRAINER_CLASS_NAME_POKEMANIAC, + TRAINER_CLASS_NAME_SWIMMER_M, + TRAINER_CLASS_NAME_BLACK_BELT, + TRAINER_CLASS_NAME_GUITARIST, + TRAINER_CLASS_NAME_KINDLER, + TRAINER_CLASS_NAME_CAMPER, + TRAINER_CLASS_NAME_BUG_MANIAC, + TRAINER_CLASS_NAME_PSYCHIC, + TRAINER_CLASS_NAME_GENTLEMAN, + TRAINER_CLASS_NAME_ELITE_FOUR, + TRAINER_CLASS_NAME_LEADER, + TRAINER_CLASS_NAME_SCHOOL_KID, + TRAINER_CLASS_NAME_SR_AND_JR, + TRAINER_CLASS_NAME_WINSTRATE, + TRAINER_CLASS_NAME_POKEFAN, + TRAINER_CLASS_NAME_EXPERT, + TRAINER_CLASS_NAME_YOUNGSTER, + TRAINER_CLASS_NAME_CHAMPION, + TRAINER_CLASS_NAME_FISHERMAN, + TRAINER_CLASS_NAME_TRIATHLETE, + TRAINER_CLASS_NAME_DRAGON_TAMER, + TRAINER_CLASS_NAME_BIRD_KEEPER, + TRAINER_CLASS_NAME_NINJA_BOY, + TRAINER_CLASS_NAME_BATTLE_GIRL, + TRAINER_CLASS_NAME_PARASOL_LADY, + TRAINER_CLASS_NAME_SWIMMER_F, + TRAINER_CLASS_NAME_PICNICKER, + TRAINER_CLASS_NAME_TWINS, + TRAINER_CLASS_NAME_SAILOR, + TRAINER_CLASS_NAME_BOARDER, + TRAINER_CLASS_NAME_COLLECTOR, + TRAINER_CLASS_NAME_POKEMON_TRAINER_3, + TRAINER_CLASS_NAME_POKEMON_BREEDER, + TRAINER_CLASS_NAME_POKEMON_RANGER, + TRAINER_CLASS_NAME_MAGMA_LEADER, + TRAINER_CLASS_NAME_TEAM_MAGMA, + TRAINER_CLASS_NAME_MAGMA_ADMIN, + TRAINER_CLASS_NAME_LASS, + TRAINER_CLASS_NAME_BUG_CATCHER, + TRAINER_CLASS_NAME_HIKER, + TRAINER_CLASS_NAME_YOUNG_COUPLE, + TRAINER_CLASS_NAME_OLD_COUPLE, + TRAINER_CLASS_NAME_SIS_AND_BRO +}; + #endif // GUARD_TRAINER_H |