Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef unsigned char char_t;
- typedef unsigned short short_t;
- enum Type { NORMAL = 0x00, FIGHTING = 0x01, FLYING = 0x02, POISON = 0x03,
- GROUND = 0x04, ROCK = 0x05, BUG = 0x06, GHOST = 0x07, STEEL = 0x08, FIRE = 0x09,
- WATER = 0x0A, GRASS = 0x0B, ELECTRIC = 0x0C, PSYCHIC = 0x0D, ICE = 0x0E, DRAGON = 0x0F,
- DARK = 0x10 };
- #pragma pack(1)
- struct BaseStats
- {
- char_t base_hp; //#0
- char_t base_atk;
- char_t base_def;
- char_t base_spd;
- char_t base_spatk;
- char_t base_spdef;
- char_t type1;
- char_t type2;
- char_t catch_rate; //#8
- //#9 = stage of evolution (Legendaries get 3, Pokémon not part of an evolution line get 2)
- //1 = not evolved, 2 = evolved once (or doesn't evolve), 3 = evolved twice (or legendary)
- char_t evolution_stage;
- //#10 - 11 = EV yield
- union
- {
- struct
- {
- //byte 1
- size_t ev_hp : 2;
- size_t ev_atk : 2;
- size_t ev_def : 2;
- size_t ev_spd : 2;
- //byte 2
- size_t ev_spatk : 2;
- size_t ev_spdef : 2;
- size_t ev_padding : 4;
- //item1
- size_t ev_extra : 16;
- };
- struct
- {
- short ev_data;
- short_t item1;
- };
- };
- //#12 - 13 = held item 1 (little endian)
- //#14 - 15 = held item 2
- short_t item2;
- //#16 - 17 = Dream World item (Pokémon will be holding this item when brought from the Dream world)
- short_t item_special;
- enum GENDER { GENDERLESS = 0xFF }; //The rest are a female percentage out of 254
- //#18 = gender ratio
- char_t gender;
- //#19 = base egg cycles
- char_t egg_cycles;
- //#20 = base happiness
- char_t base_happy;
- enum GROWTH { ERRATIC = 1, FAST = 4, MED_FAST = 0, MED_SLOW = 3, SLOW = 5, FLUCTUATING = 2 };
- //Lv. 100 Exp.: Erratic = 600,000; Fast = 800,000; Med. Fast = 1,000,000;
- // Med. Slow = 1,059,860; Slow = 1,250,000; Fluctuating = 1,640,000
- //#21 = experience growth
- char_t growth;
- enum EGG_GROUP { MONSTER = 0x01, WATER_1 = 0x02, BUG = 0x03, FLYING = 0x04, GROUND = 0x05, FAIRY = 0x06, PLANT = 0x07,
- HUMAN_SHAPE = 0x08, WATER_3 = 0x09, MINERAL = 0x0A, INDETERMINATE = 0x0B, WATER_2 = 0x0C, DITTO = 0x0D, DRAGON = 0x0E };
- //The rest cannot breed
- //#22 = egg group 1
- //#23 = egg group 2
- char_t egg_group1;
- char_t egg_group2;
- //#24 = ability 1
- //#25 = ability 2
- //#26 = special ability (Dream World ability)
- char_t ability1;
- char_t ability2;
- char_t ability_special;
- //#27 = 0, 60, 90, 120 or 150 (not sure why)
- char_t _3;
- //#28 - 29 = index of alternate form list (starting from 1 = Bulbasaur)
- //This is strictly for Pokémon where base stat data changes in other forms
- short_t form_index;
- //#30 - 31 = Something related to alternate forms (0 for Pokémon without alternate forms)
- short_t form_thing;
- //32 = the number of forms this Pokémon has (1 for Pokémon without alternate forms)
- char_t form_num;
- //33 = bitfields of some sort
- char_t _8;
- //#34 = base exp
- char_t base_exp;
- //#35 - 59 = ?
- char_t _5[25];
- };
- #pragma pack()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement