32 #include "common/array.h" 33 #include "common/rect.h" 35 #include "toon/toon.h" 45 void push(int16 x, int16 y, uint16 weight);
46 void pop(int16 *x, int16 *y, uint16 *weight);
47 void init(int32 size);
50 uint32 getCount() {
return _count; }
71 bool findPath(int16 x, int16 y, int16 destX, int16 destY);
72 bool findClosestWalkingPoint(int16 xx, int16 yy, int16 *fxx, int16 *fyy, int16 origX = -1, int16 origY = -1);
73 bool isWalkable(int16 x, int16 y);
74 bool isLikelyWalkable(int16 x, int16 y);
75 bool lineIsWalkable(int16 x, int16 y, int16 x2, int16 y2);
76 void walkLine(int16 x, int16 y, int16 x2, int16 y2);
78 void resetBlockingRects() { _numBlockingRects = 0; }
79 void addBlockingRect(int16 x1, int16 y1, int16 x2, int16 y2);
80 void addBlockingEllipse(int16 x1, int16 y1, int16 w, int16 h);
82 uint32 getPathNodeCount()
const {
return _tempPath.size(); }
83 int16 getPathNodeX(uint32 nodeId)
const {
return _tempPath[(_tempPath.size() - 1) - nodeId].x; }
84 int16 getPathNodeY(uint32 nodeId)
const {
return _tempPath[(_tempPath.size() - 1) - nodeId].y; }
87 static const uint8 kMaxBlockingRects = 16;
99 int16 _blockingRects[kMaxBlockingRects][5];
100 uint8 _numBlockingRects;