aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorD G Turner2012-06-10 21:12:01 +0100
committerD G Turner2012-06-10 21:12:01 +0100
commitfcfff28c5f3cabf193d83846cfe9d90f0153d187 (patch)
tree13a7d8eb391737d9b0919c5a39c5df007aa8660e
parent13832580002a0a902a23fa893784aa61f7b3faaa (diff)
downloadscummvm-rg350-fcfff28c5f3cabf193d83846cfe9d90f0153d187.tar.gz
scummvm-rg350-fcfff28c5f3cabf193d83846cfe9d90f0153d187.tar.bz2
scummvm-rg350-fcfff28c5f3cabf193d83846cfe9d90f0153d187.zip
TOON: Minor type fixes and cleanups in Pathfinding class.
-rw-r--r--engines/toon/character.cpp2
-rw-r--r--engines/toon/path.cpp20
-rw-r--r--engines/toon/path.h12
3 files changed, 17 insertions, 17 deletions
diff --git a/engines/toon/character.cpp b/engines/toon/character.cpp
index 3ac454983d..260296cc9f 100644
--- a/engines/toon/character.cpp
+++ b/engines/toon/character.cpp
@@ -186,7 +186,7 @@ bool Character::walkTo(int32 newPosX, int32 newPosY) {
int32 smoothDx = 0;
int32 smoothDy = 0;
- for (int32 a = 0; a < _vm->getPathFinding()->getPathNodeCount(); a++) {
+ for (uint32 a = 0; a < _vm->getPathFinding()->getPathNodeCount(); a++) {
_currentPathX[a] = _vm->getPathFinding()->getPathNodeX(a);
_currentPathY[a] = _vm->getPathFinding()->getPathNodeY(a);
}
diff --git a/engines/toon/path.cpp b/engines/toon/path.cpp
index 63dbf1a442..735801eebc 100644
--- a/engines/toon/path.cpp
+++ b/engines/toon/path.cpp
@@ -65,7 +65,7 @@ void PathFindingHeap::push(int16 x, int16 y, int16 weight) {
if (_count == _size) {
// Increase size by 50%
- int newSize = _size + (_size >> 1) + 1;
+ uint32 newSize = _size + (_size / 2) + 1;
HeapDataGrid *newData;
newData = (HeapDataGrid *)realloc(_data, sizeof(HeapDataGrid) * newSize);
@@ -84,13 +84,13 @@ void PathFindingHeap::push(int16 x, int16 y, int16 weight) {
_data[_count]._weight = weight;
_count++;
- int32 lMax = _count-1;
- int32 lT = 0;
+ uint32 lMax = _count - 1;
+ uint32 lT = 0;
while (true) {
if (lMax <= 0)
break;
- lT = (lMax-1) / 2;
+ lT = (lMax - 1) / 2;
if (_data[lT]._weight > _data[lMax]._weight) {
HeapDataGrid temp;
@@ -120,13 +120,13 @@ void PathFindingHeap::pop(int16 *x, int16 *y, int16 *weight) {
if (!_count)
return;
- int32 lMin = 0;
- int32 lT = 0;
+ uint32 lMin = 0;
+ uint32 lT = 0;
while (true) {
- lT = (lMin << 1) + 1;
+ lT = (lMin * 2) + 1;
if (lT < _count) {
- if (lT < _count-1) {
+ if (lT < _count - 1) {
if (_data[lT + 1]._weight < _data[lT]._weight)
lT++;
}
@@ -312,8 +312,8 @@ bool PathFinding::findPath(int16 x, int16 y, int16 destx, int16 desty) {
_sq[curX + curY *_width] = 1;
_heap->push(curX, curY, abs(destx - x) + abs(desty - y));
- int32 wei = 0;
+ int16 wei;
while (_heap->getCount()) {
wei = 0;
_heap->pop(&curX, &curY, &curWeight);
@@ -328,7 +328,7 @@ bool PathFinding::findPath(int16 x, int16 y, int16 destx, int16 desty) {
for (int16 px = startX; px <= endX && !next; px++) {
for (int16 py = startY; py <= endY && !next; py++) {
if (px != curX || py != curY) {
- wei = ((abs(px - curX) + abs(py - curY)));
+ wei = abs(px - curX) + abs(py - curY);
int32 curPNode = px + py * _width;
if (isWalkable(px, py)) { // walkable ?
diff --git a/engines/toon/path.h b/engines/toon/path.h
index 2a583e5bff..2476dc3b8a 100644
--- a/engines/toon/path.h
+++ b/engines/toon/path.h
@@ -41,7 +41,7 @@ public:
void init(int32 size);
void clear();
void unload();
- int32 getCount() { return _count; }
+ uint32 getCount() { return _count; }
private:
struct HeapDataGrid {
@@ -51,8 +51,8 @@ private:
HeapDataGrid *_data;
- int32 _size;
- int32 _count;
+ uint32 _size;
+ uint32 _count;
};
class PathFinding {
@@ -73,9 +73,9 @@ public:
void addBlockingRect(int16 x1, int16 y1, int16 x2, int16 y2);
void addBlockingEllipse(int16 x1, int16 y1, int16 w, int16 h);
- int32 getPathNodeCount() const { return _tempPath.size(); }
- int32 getPathNodeX(int32 nodeId) const { return _tempPath[ _tempPath.size() - nodeId - 1].x; }
- int32 getPathNodeY(int32 nodeId) const { return _tempPath[ _tempPath.size() - nodeId - 1].y; }
+ uint32 getPathNodeCount() const { return _tempPath.size(); }
+ int16 getPathNodeX(uint32 nodeId) const { return _tempPath[(_tempPath.size() - 1) - nodeId].x; }
+ int16 getPathNodeY(uint32 nodeId) const { return _tempPath[(_tempPath.size() - 1) - nodeId].y; }
private:
static const uint8 kMaxBlockingRects = 16;