Pokebot
Pokemon FireRed bot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
PathFinder.hh
Go to the documentation of this file.
1 #ifndef __PATHFINDER_HH__
2 #define __PATHFINDER_HH__
3 
4 #include <map>
5 #include <vector>
6 #include <algorithm>
7 #include "Action/AAction.hh"
8 #include "World.hh"
9 
11 {
12 public:
14  ~PathFinder();
15 
16 public:
17  World::Path *search(uint32_t xs, uint32_t ys, uint32_t xe, uint32_t ye, uint8_t dist = 0);
18 
19 protected:
20  int _getNextIndex(World::Path *set);
22  bool _checkHills(int x, int y, World::Map::Node &next, World::Map::Node &curr);
24  bool _checkOverWorld(uint16_t x, uint16_t y);
25  uint8_t _getMovementCost(World::Map::Node &next);
26 
27 public:
28  struct Hill
29  {
30  uint8_t x;
31  uint8_t y;
32  uint16_t behavior;
33 
34  Hill(uint8_t px, uint8_t py, uint16_t pb) : x(px), y(py), behavior(pb) {}
35  };
36 
37 protected:
39  const OverWorld *_ows;
41  std::map<uint16_t, uint8_t> _movementCost;
42  std::vector<uint8_t> _walkableTiles;
43  std::vector<Hill> _hills;
44  std::vector<uint8_t> _notMoving;
45 };
46 
47 #endif
Definition: World.hh:150
std::vector< uint8_t > _notMoving
Definition: PathFinder.hh:44
bool _checkOverWorld(uint16_t x, uint16_t y)
Definition: PathFinder.cpp:45
Data & _data
Definition: PathFinder.hh:40
uint8_t x
Definition: PathFinder.hh:30
World::Map & _m
Definition: PathFinder.hh:38
int _getNextIndex(World::Path *set)
Definition: PathFinder.cpp:131
Definition: PathFinder.hh:10
World::Path * _rebuildPath(World::Path *set, World::Map::Node *node)
Definition: PathFinder.cpp:149
Hill(uint8_t px, uint8_t py, uint16_t pb)
Definition: PathFinder.hh:34
bool _checkWalkable(World::Map::Node &n)
Definition: PathFinder.cpp:35
uint8_t y
Definition: PathFinder.hh:31
uint16_t behavior
Definition: PathFinder.hh:32
uint8_t _getMovementCost(World::Map::Node &next)
Definition: PathFinder.cpp:65
Definition: PathFinder.hh:28
PathFinder(World::Map &m)
Definition: PathFinder.cpp:3
Definition: World.hh:158
~PathFinder()
Definition: PathFinder.cpp:20
std::vector< Hill > _hills
Definition: PathFinder.hh:43
std::map< uint16_t, uint8_t > _movementCost
Definition: PathFinder.hh:41
const OverWorld * _ows
Definition: PathFinder.hh:39
Definition: Data.hh:27
std::vector< Map::Node * > Path
Definition: World.hh:223
std::vector< uint8_t > _walkableTiles
Definition: PathFinder.hh:42
World::Path * search(uint32_t xs, uint32_t ys, uint32_t xe, uint32_t ye, uint8_t dist=0)
Definition: PathFinder.cpp:75
bool _checkHills(int x, int y, World::Map::Node &next, World::Map::Node &curr)
Definition: PathFinder.cpp:24
Definition: OverWorld.hh:6