Pokebot
Pokemon FireRed bot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
BattleData.hh
Go to the documentation of this file.
1 #ifndef __BATTLEDATA_HH__
2 #define __BATTLEDATA_HH__
3 
4 #include "PokemonUtils.hh"
5 #include "IPokeData.hh"
6 #include <cstdio>
7 
8 class BattleData : public IPokeData
9 {
10 private:
11  struct Internal {
12  uint16_t species;
13  uint16_t atk;
14  uint16_t def;
15  uint16_t speed;
16  uint16_t spatk;
17  uint16_t spdef;
18  uint16_t moves[4];
19  uint32_t ivs;
20  uint8_t hpBuff;
21  uint8_t atkBuff;
22  uint8_t defBuff;
23  uint8_t speedBuff;
24  uint8_t spatkBuff;
25  uint8_t spdefBuff;
26  uint8_t accuracyBuff;
27  uint8_t evasionBuff;
28  uint8_t ability;
29  uint8_t type1;
30  uint8_t type2;
31  uint8_t padding;
32  uint8_t PPs[4];
33  uint16_t currHP;
34  uint8_t level;
35  uint8_t happiness;
36  uint16_t maxHP;
37  uint16_t item;
38  uint8_t nick[11];
39  uint8_t unknown;
40  uint8_t otName[8];
41  uint32_t padding2;
42  uint32_t pid;
43  uint32_t status;
44  uint32_t status2;
45  uint32_t otId;
46  };
47 
48 public:
50  BattleData(uint32_t addr)
51  : _data((Internal *) gbaMem(addr)) {}
53 
54 public:
55  void update();
56 
57 public:
58  int getStatus(Status s) const;
59  uint8_t getLevel() const { return (_data->level); }
60  uint16_t getSpecies() const { return (_data->species); }
61 
62  uint16_t getHP() const { return (_data->currHP); }
63  uint16_t getMaxHP() const { return (_data->maxHP); }
64  uint16_t getAtk() const { return (_data->atk); }
65  uint16_t getDef() const { return (_data->def); }
66  uint16_t getSpeed() const { return (_data->speed); }
67  uint16_t getSpAtk() const { return (_data->spatk); }
68  uint16_t getSpDef() const { return (_data->spdef); }
69 
70  int getHPBuff() const { return (_data->hpBuff - 6); }
71  int getAtkBuff() const { return (_data->atkBuff - 6); }
72  int getDefBuff() const { return (_data->defBuff - 6); }
73  int getSpeedBuff() const { return (_data->speedBuff - 6); }
74  int getSpAtkBuff() const { return (_data->spatkBuff - 6); }
75  int getSpDefBuff() const { return (_data->spdefBuff - 6); }
76  int getAccuracyBuff() const { return (_data->accuracyBuff - 6); }
77  int getEvasionBuff() const { return (_data->evasionBuff - 6); }
78 
79  uint16_t *getMoves() const { return (_data->moves); }
80  uint8_t *getPPs() const { return (_data->PPs); }
81 
82 private:
83  Internal *_data;
84 };
85 
86 #endif
BattleData(uint32_t addr)
Definition: BattleData.hh:50
Status
Definition: IPokeData.hh:7
int getEvasionBuff() const
Definition: BattleData.hh:77
uint16_t getSpecies() const
Definition: BattleData.hh:60
int getSpDefBuff() const
Definition: BattleData.hh:75
uint16_t getAtk() const
Definition: BattleData.hh:64
uint16_t getSpeed() const
Definition: BattleData.hh:66
uint8_t getLevel() const
Definition: BattleData.hh:59
~BattleData()
Definition: BattleData.hh:52
Definition: BattleData.hh:8
void update()
Definition: BattleData.cpp:3
Definition: IPokeData.hh:4
uint16_t getHP() const
Definition: BattleData.hh:62
uint16_t getSpDef() const
Definition: BattleData.hh:68
uint16_t getDef() const
Definition: BattleData.hh:65
uint8_t * getPPs() const
Definition: BattleData.hh:80
void * gbaMem(uint32_t ptr)
Definition: PokemonUtils.cpp:57
int getHPBuff() const
Definition: BattleData.hh:70
uint16_t * getMoves() const
Definition: BattleData.hh:79
int getAtkBuff() const
Definition: BattleData.hh:71
int getAccuracyBuff() const
Definition: BattleData.hh:76
int getSpeedBuff() const
Definition: BattleData.hh:73
int getDefBuff() const
Definition: BattleData.hh:72
BattleData()
Definition: BattleData.hh:49
uint16_t getMaxHP() const
Definition: BattleData.hh:63
uint16_t getSpAtk() const
Definition: BattleData.hh:67
int getSpAtkBuff() const
Definition: BattleData.hh:74
int getStatus(Status s) const
Definition: BattleData.cpp:13