aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorMax Horn2003-09-11 22:26:44 +0000
committerMax Horn2003-09-11 22:26:44 +0000
commit32c0168087310ae945b64c0f1d61c165f19a95fe (patch)
tree90299f0d8ae1b03cf26001efbf44b713289b9869 /scumm
parentf21f830633556cc9fe0747f3a3339e4b49d482d1 (diff)
downloadscummvm-rg350-32c0168087310ae945b64c0f1d61c165f19a95fe.tar.gz
scummvm-rg350-32c0168087310ae945b64c0f1d61c165f19a95fe.tar.bz2
scummvm-rg350-32c0168087310ae945b64c0f1d61c165f19a95fe.zip
cleanup
svn-id: r10181
Diffstat (limited to 'scumm')
-rw-r--r--scumm/actor.cpp84
-rw-r--r--scumm/actor.h10
-rw-r--r--scumm/boxes.cpp16
3 files changed, 52 insertions, 58 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index f5fcd26d86..416e4e3a5b 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -58,7 +58,7 @@ Actor::Actor() {
memset(sound, 0, sizeof(sound));
memset(&cost, 0, sizeof(CostumeData));
memset(&walkdata, 0, sizeof(ActorWalkData));
- walkdata.point3x = 32000;
+ walkdata.point3.x = 32000;
walkScript = 0;
@@ -137,7 +137,7 @@ void Actor::setActorWalkSpeed(uint newSpeedX, uint newSpeedY) {
speedy = newSpeedY;
if (moving) {
- calcMovementFactor(walkdata.newx, walkdata.newy);
+ calcMovementFactor(walkdata.next);
}
}
@@ -158,19 +158,16 @@ int Scumm::getAngleFromPos(int x, int y) const {
}
}
-int Actor::calcMovementFactor(int newX, int newY) {
- int actorX, actorY;
+int Actor::calcMovementFactor(ScummVM::Point next) {
+ ScummVM::Point actorPos(x, y);
int diffX, diffY;
int32 deltaXFactor, deltaYFactor;
- actorX = x;
- actorY = y;
-
- if (actorX == newX && actorY == newY)
+ if (actorPos == next)
return 0;
- diffX = newX - actorX;
- diffY = newY - actorY;
+ diffX = next.x - actorPos.x;
+ diffY = next.y - actorPos.y;
deltaYFactor = speedy << 16;
if (diffY < 0)
@@ -196,10 +193,8 @@ int Actor::calcMovementFactor(int newX, int newY) {
}
}
- walkdata.x = actorX;
- walkdata.y = actorY;
- walkdata.newx = newX;
- walkdata.newy = newY;
+ walkdata.cur = actorPos;
+ walkdata.next = next;
walkdata.deltaXFactor = deltaXFactor;
walkdata.deltaYFactor = deltaYFactor;
walkdata.xfrac = 0;
@@ -367,10 +362,10 @@ int Actor::actorWalkStep() {
setBox(walkdata.curbox);
}
- distX = abs(walkdata.newx - walkdata.x);
- distY = abs(walkdata.newy - walkdata.y);
+ distX = abs(walkdata.next.x - walkdata.cur.x);
+ distY = abs(walkdata.next.y - walkdata.cur.y);
- if (abs(actorX - walkdata.x) >= distX && abs(actorY - walkdata.y) >= distY) {
+ if (abs(actorX - walkdata.cur.x) >= distX && abs(actorY - walkdata.cur.y) >= distY) {
moving &= ~MF_IN_LEG;
return 0;
}
@@ -383,12 +378,12 @@ int Actor::actorWalkStep() {
walkdata.yfrac = (uint16)tmpY;
actorY = (tmpY >> 16);
- if (abs(actorX - walkdata.x) > distX) {
- actorX = walkdata.newx;
+ if (abs(actorX - walkdata.cur.x) > distX) {
+ actorX = walkdata.next.x;
}
- if (abs(actorY - walkdata.y) > distY) {
- actorY = walkdata.newy;
+ if (abs(actorY - walkdata.cur.y) > distY) {
+ actorY = walkdata.next.y;
}
x = actorX;
@@ -692,7 +687,7 @@ void Actor::adjustActorPos() {
setBox(abr.box);
- walkdata.destx = -1;
+ walkdata.dest.x = -1;
moving = 0;
cost.soundCounter = 0;
@@ -1266,7 +1261,7 @@ void Actor::startWalkActor(int destX, int destY, int dir) {
} else {
abr = adjustXYToBeInBox(abr.x, abr.y);
}
- if (moving && walkdata.destdir == dir && walkdata.destx == abr.x && walkdata.desty == abr.y)
+ if (moving && walkdata.destdir == dir && walkdata.dest.x == abr.x && walkdata.dest.y == abr.y)
return;
}
@@ -1275,12 +1270,12 @@ void Actor::startWalkActor(int destX, int destY, int dir) {
return;
}
- walkdata.destx = abr.x;
- walkdata.desty = abr.y;
+ walkdata.dest.x = abr.x;
+ walkdata.dest.y = abr.y;
walkdata.destbox = abr.box;
walkdata.destdir = dir;
moving = (moving & MF_IN_LEG) | MF_NEW_LEG;
- walkdata.point3x = 32000;
+ walkdata.point3.x = 32000;
walkdata.curbox = walkbox;
}
@@ -1323,7 +1318,7 @@ void Actor::startWalkAnim(int cmd, int angle) {
void Actor::walkActor() {
int new_dir, next_box;
- int16 foundPathX, foundPathY;
+ ScummVM::Point foundPath;
if (_vm->_version >= 7) {
// FIXME - this is kind of a hack right now but it fixes the
@@ -1388,17 +1383,17 @@ void Actor::walkActor() {
walkdata.curbox = next_box;
- if (findPathTowards(walkbox, next_box, walkdata.destbox, foundPathX, foundPathY))
+ if (findPathTowards(walkbox, next_box, walkdata.destbox, foundPath.x, foundPath.y))
break;
- if (calcMovementFactor(foundPathX, foundPathY))
+ if (calcMovementFactor(foundPath))
return;
setBox(walkdata.curbox);
} while (1);
moving |= MF_LAST_LEG;
- calcMovementFactor(walkdata.destx, walkdata.desty);
+ calcMovementFactor(walkdata.dest);
}
void Actor::walkActorOld() {
@@ -1427,12 +1422,12 @@ void Actor::walkActorOld() {
return;
}
- if (walkdata.point3x != 32000) {
- if (calcMovementFactor(walkdata.point3x, walkdata.point3y)) {
- walkdata.point3x = 32000;
+ if (walkdata.point3.x != 32000) {
+ if (calcMovementFactor(walkdata.point3)) {
+ walkdata.point3.x = 32000;
return;
}
- walkdata.point3x = 32000;
+ walkdata.point3.x = 32000;
}
setBox(walkdata.curbox);
@@ -1477,23 +1472,22 @@ void Actor::walkActorOld() {
}
if (p2.x != 32000) {
- if (calcMovementFactor(p2.x, p2.y)) {
- walkdata.point3x = p3.x;
- walkdata.point3y = p3.y;
+ if (calcMovementFactor(p2)) {
+ walkdata.point3 = p3;
return;
}
}
/*
}
*/
- if (calcMovementFactor(p3.x, p3.y))
+ if (calcMovementFactor(p3))
return;
setBox(walkdata.curbox);
} while (1);
moving |= MF_LAST_LEG;
- calcMovementFactor(walkdata.destx, walkdata.desty);
+ calcMovementFactor(walkdata.dest);
}
byte *Actor::getActorName() {
@@ -1642,15 +1636,15 @@ const SaveLoadEntry *Actor::getSaveLoadEntries() {
MKLINE(Actor, talkScript, sleUint16, VER(8)),
MKLINE(Actor, walkScript, sleUint16, VER(8)),
- MKLINE(Actor, walkdata.destx, sleInt16, VER(8)),
- MKLINE(Actor, walkdata.desty, sleInt16, VER(8)),
+ MKLINE(Actor, walkdata.dest.x, sleInt16, VER(8)),
+ MKLINE(Actor, walkdata.dest.y, sleInt16, VER(8)),
MKLINE(Actor, walkdata.destbox, sleByte, VER(8)),
MKLINE(Actor, walkdata.destdir, sleUint16, VER(8)),
MKLINE(Actor, walkdata.curbox, sleByte, VER(8)),
- MKLINE(Actor, walkdata.x, sleInt16, VER(8)),
- MKLINE(Actor, walkdata.y, sleInt16, VER(8)),
- MKLINE(Actor, walkdata.newx, sleInt16, VER(8)),
- MKLINE(Actor, walkdata.newy, sleInt16, VER(8)),
+ MKLINE(Actor, walkdata.cur.x, sleInt16, VER(8)),
+ MKLINE(Actor, walkdata.cur.y, sleInt16, VER(8)),
+ MKLINE(Actor, walkdata.next.x, sleInt16, VER(8)),
+ MKLINE(Actor, walkdata.next.y, sleInt16, VER(8)),
MKLINE(Actor, walkdata.deltaXFactor, sleInt32, VER(8)),
MKLINE(Actor, walkdata.deltaYFactor, sleInt32, VER(8)),
MKLINE(Actor, walkdata.xfrac, sleUint16, VER(8)),
diff --git a/scumm/actor.h b/scumm/actor.h
index 6a3b58c0a0..56420b8dd1 100644
--- a/scumm/actor.h
+++ b/scumm/actor.h
@@ -37,15 +37,15 @@ enum MoveFlags {
};
struct ActorWalkData {
- int16 destx, desty; // Final destination
+ ScummVM::Point dest; // Final destination
byte destbox;
int16 destdir;
+ ScummVM::Point cur; // Current position
byte curbox;
- int16 x, y; // Current position
- int16 newx, newy; // Next position on our way to the destination
+ ScummVM::Point next; // Next position on our way to the destination
+ ScummVM::Point point3;
int32 deltaXFactor, deltaYFactor;
uint16 xfrac, yfrac;
- int point3x, point3y;
};
struct CostumeData {
@@ -132,7 +132,7 @@ public:
void putActor(int x, int y, byte room);
void setActorWalkSpeed(uint newSpeedX, uint newSpeedY);
protected:
- int calcMovementFactor(int newx, int newy);
+ int calcMovementFactor(ScummVM::Point next);
int actorWalkStep();
int remapDirection(int dir, bool is_walking);
void setupActorScale();
diff --git a/scumm/boxes.cpp b/scumm/boxes.cpp
index e393541072..070c251429 100644
--- a/scumm/boxes.cpp
+++ b/scumm/boxes.cpp
@@ -804,8 +804,8 @@ bool Actor::findPathTowards(byte box1nr, byte box2nr, byte box3nr, int16 &foundP
} else {
pos = y;
if (box2nr == box3nr) {
- int diffX = walkdata.destx - x;
- int diffY = walkdata.desty - y;
+ int diffX = walkdata.dest.x - x;
+ int diffY = walkdata.dest.y - y;
int boxDiffX = box1.ul.x - x;
if (diffX != 0) {
@@ -859,8 +859,8 @@ bool Actor::findPathTowards(byte box1nr, byte box2nr, byte box3nr, int16 &foundP
} else {
if (box2nr == box3nr) {
- int diffX = walkdata.destx - x;
- int diffY = walkdata.desty - y;
+ int diffX = walkdata.dest.x - x;
+ int diffY = walkdata.dest.y - y;
int boxDiffY = box1.ul.y - y;
pos = x;
@@ -1155,10 +1155,10 @@ void Actor::findPathTowardsOld(byte trap1, byte trap2, byte final_trap, ScummVM:
// next box (trap2) = final box?
if (trap2 == final_trap) {
// Is the actor (x,y) between both gates?
- if (compareSlope(x, y, walkdata.destx, walkdata.desty, gateA[0].x, gateA[0].y) !=
- compareSlope(x, y, walkdata.destx, walkdata.desty, gateB[0].x, gateB[0].y) &&
- compareSlope(x, y, walkdata.destx, walkdata.desty, gateA[1].x, gateA[1].y) !=
- compareSlope(x, y, walkdata.destx, walkdata.desty, gateB[1].x, gateB[1].y)) {
+ if (compareSlope(x, y, walkdata.dest.x, walkdata.dest.y, gateA[0].x, gateA[0].y) !=
+ compareSlope(x, y, walkdata.dest.x, walkdata.dest.y, gateB[0].x, gateB[0].y) &&
+ compareSlope(x, y, walkdata.dest.x, walkdata.dest.y, gateA[1].x, gateA[1].y) !=
+ compareSlope(x, y, walkdata.dest.x, walkdata.dest.y, gateB[1].x, gateB[1].y)) {
return;
}
}