diff options
Diffstat (limited to 'include/data.h')
-rw-r--r-- | include/data.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/include/data.h b/include/data.h new file mode 100644 index 000000000..f1a4caa6a --- /dev/null +++ b/include/data.h @@ -0,0 +1,119 @@ +#ifndef GUARD_DATA_H +#define GUARD_DATA_H + +#include "constants/moves.h" +#include "constants/species.h" + +#define SPECIES_SHINY_TAG 500 + +struct MonCoords +{ + // This would use a bitfield, but some function + // uses it as a u8 and casting won't match. + u8 size; // u8 width:4, height:4; + u8 y_offset; +}; + +struct TrainerMonNoItemDefaultMoves +{ + u16 iv; + u8 lvl; + u16 species; +}; + +struct TrainerMonItemDefaultMoves +{ + u16 iv; + u8 lvl; + u16 species; + u16 heldItem; +}; + +struct TrainerMonNoItemCustomMoves +{ + u16 iv; + u8 lvl; + u16 species; + u16 moves[4]; +}; + +struct TrainerMonItemCustomMoves +{ + u16 iv; + u8 lvl; + u16 species; + u16 heldItem; + u16 moves[4]; +}; + +union TrainerMonPtr +{ + const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves; + const struct TrainerMonNoItemCustomMoves *NoItemCustomMoves; + const struct TrainerMonItemDefaultMoves *ItemDefaultMoves; + const struct TrainerMonItemCustomMoves *ItemCustomMoves; +}; + +struct Trainer +{ + /*0x00*/ u8 partyFlags; + /*0x01*/ u8 trainerClass; + /*0x02*/ u8 encounterMusic_gender; // last bit is gender + /*0x03*/ u8 trainerPic; + /*0x04*/ u8 trainerName[12]; + /*0x10*/ u16 items[4]; + /*0x18*/ bool8 doubleBattle; + /*0x1C*/ u32 aiFlags; + /*0x20*/ u8 partySize; + /*0x24*/ union TrainerMonPtr party; +}; + +#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) + +extern const u16 gUnknown_082FF1D8[]; +extern const u32 gUnknown_082FF1F8[]; + +extern const struct SpriteFrameImage gUnknown_082FF3A8[]; +extern const struct SpriteFrameImage gUnknown_082FF3C8[]; +extern const struct SpriteFrameImage gUnknown_082FF3E8[]; +extern const struct SpriteFrameImage gUnknown_082FF408[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Brendan[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_May[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Wally[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Steven[]; + +extern const union AffineAnimCmd *const gUnknown_082FF618[]; +extern const union AffineAnimCmd *const gUnknown_082FF694[]; +extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; + +extern const union AnimCmd *const gUnknown_082FF70C[]; +extern const struct MonCoords gMonFrontPicCoords[]; +extern const struct CompressedSpriteSheet gMonStillFrontPicTable[]; +extern const struct MonCoords gMonBackPicCoords[]; +extern const struct CompressedSpriteSheet gMonBackPicTable[]; +extern const struct CompressedSpritePalette gMonPaletteTable[]; +extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; +extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; +extern const struct MonCoords gTrainerFrontPicCoords[]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[]; +extern const struct MonCoords gTrainerBackPicCoords[]; +extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; // functionally unused +extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; + +extern const u8 gEnemyMonElevation[NUM_SPECIES]; + +extern const union AnimCmd *const *const gMonFrontAnimsPtrTable[]; +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; + +extern const struct Trainer gTrainers[]; +extern const u8 gTrainerClassNames[][13]; +extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; +extern const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1]; + +#endif // GUARD_DATA_H |