duncan
Mom and Dad were wrong!
/home/malcolm/tmp/duncan/prototype/0/client/pathfinder.h
00001 #ifndef CLIENT_PATHFINDER_H_
00002 #define CLIENT_PATHFINDER_H_
00003 
00004 #include <queue>
00005 #include <vector>
00006 #include <list>
00007 #include <utility>
00008 #include "world.h"
00009 
00010 namespace client {
00011 
00019 class PathFinder {
00020         public:
00021                 typedef std::list<std::pair<size_t,size_t> > path_t;
00022         private:
00023                 typedef std::pair<bool,size_t> node_t;
00024                 World& world_;
00025                 int dirs_[4][2];
00026                 std::vector<node_t> map_;
00027                 std::queue<size_t> queue_;
00028 
00029                 void getpath(size_t,path_t&);
00030                 void cleanpath(path_t&);
00031 
00032                 void newmap();
00033                 inline size_t encode(size_t,size_t);
00034                 inline size_t row(size_t);
00035                 inline size_t col(size_t);
00036         public:
00037                 PathFinder(World&);
00038                 
00039                 bool path(size_t, size_t, size_t, size_t, net::index_t, path_t&);
00040 };
00041 
00042 }
00043 
00044 #endif
 All Classes Namespaces Functions Variables Typedefs Enumerations