summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/data2.h9
-rw-r--r--include/pokemon.h84
-rw-r--r--include/trainer.h227
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