Pokebot
Pokemon FireRed bot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Species.hh
Go to the documentation of this file.
1 #ifndef __SPECIES_HH__
2 #define __SPECIES_HH__
3 
4 #include "PokemonUtils.hh"
5 
6 class Species
7 {
8 private:
9  struct Internal
10  {
11  uint8_t hp;
12  uint8_t atk;
13  uint8_t def;
14  uint8_t speed;
15  uint8_t spatk;
16  uint8_t spdef;
17  uint8_t type1;
18  uint8_t type2;
19  uint8_t catchRate;
20  uint8_t baseExpYeld;
21  uint16_t effortYield;
22  uint16_t item1;
23  uint16_t item2;
24  uint8_t gender;
25  uint8_t eggCycles;
26  uint8_t friendship;
27  uint8_t levelUpType;
28  uint8_t eggGroup1;
29  uint8_t eggGroup2;
30  uint8_t ability1;
31  uint8_t ability2;
32  uint8_t safariZoneRate;
33  uint8_t colorFlip;
34  uint16_t padding;
35  };
36 
37 public:
38  Species() {}
39  Species(uint32_t addr, char *name)
40  : _data((Internal *) gbaMem(addr)), _name(name)
41  {}
42 
43 public:
44  uint8_t getHP() const { return (_data->hp); }
45  uint16_t getAtk() const { return (_data->atk); }
46  uint16_t getDef() const { return (_data->def); }
47  uint16_t getSpeed() const { return (_data->speed); }
48  uint16_t getSpAtk() const { return (_data->spatk); }
49  uint16_t getSpDef() const { return (_data->spdef); }
50  uint8_t *getTypes() const { return ((uint8_t *) &(_data->type1)); }
51  uint8_t getType(uint8_t t) const { return (getTypes()[(t < 2) * t]); }
52  uint8_t *getAbilities() const { return ((uint8_t *) &(_data->ability1)); }
53  uint8_t getAbility(uint8_t t) const { return (getAbilities()[(t < 2) * t]); }
54  uint16_t *getItems() const { return ((uint16_t *) &(_data->item1)); }
55  uint16_t getItem(uint8_t t) const { return (getItems()[(t < 2) * t]); }
56  const char *getName() const { return (_name); }
57 
58 private:
59  Internal *_data;
60  char *_name;
61 };
62 
63 #endif
uint8_t * getTypes() const
Definition: Species.hh:50
uint8_t getHP() const
Definition: Species.hh:44
uint8_t * getAbilities() const
Definition: Species.hh:52
uint16_t getSpDef() const
Definition: Species.hh:49
void * gbaMem(uint32_t ptr)
Definition: PokemonUtils.cpp:57
uint16_t getSpeed() const
Definition: Species.hh:47
uint16_t getSpAtk() const
Definition: Species.hh:48
uint16_t getAtk() const
Definition: Species.hh:45
const char * getName() const
Definition: Species.hh:56
uint8_t getAbility(uint8_t t) const
Definition: Species.hh:53
uint8_t getType(uint8_t t) const
Definition: Species.hh:51
uint16_t * getItems() const
Definition: Species.hh:54
Definition: Species.hh:6
uint16_t getItem(uint8_t t) const
Definition: Species.hh:55
Species(uint32_t addr, char *name)
Definition: Species.hh:39
Species()
Definition: Species.hh:38
uint16_t getDef() const
Definition: Species.hh:46