diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/gnap/character.cpp | 400 | ||||
-rw-r--r-- | engines/gnap/character.h | 30 | ||||
-rw-r--r-- | engines/gnap/gnap.cpp | 10 | ||||
-rw-r--r-- | engines/gnap/gnap.h | 30 | ||||
-rw-r--r-- | engines/gnap/grid.cpp | 1561 | ||||
-rw-r--r-- | engines/gnap/scenes/group0.cpp | 240 | ||||
-rw-r--r-- | engines/gnap/scenes/group1.cpp | 264 | ||||
-rw-r--r-- | engines/gnap/scenes/group2.cpp | 286 | ||||
-rw-r--r-- | engines/gnap/scenes/group3.cpp | 120 | ||||
-rw-r--r-- | engines/gnap/scenes/group4.cpp | 194 |
10 files changed, 1548 insertions, 1587 deletions
diff --git a/engines/gnap/character.cpp b/engines/gnap/character.cpp index 9503bfdd39..a15f4e9cad 100644 --- a/engines/gnap/character.cpp +++ b/engines/gnap/character.cpp @@ -35,10 +35,76 @@ Character::Character(GnapEngine *vm) : _vm(vm) { _id = 0; _gridX = 0; _gridY = 0; + + _walkNodesCount = 0; + _walkDestX = _walkDestY = 0; + _walkDeltaX = _walkDeltaY = 0; + _walkDirX = _walkDirY = 0; + _walkDirXIncr = _walkDirYIncr = 0; + + for(int i = 0; i < kMaxGridStructs; i++) { + _walkNodes[i]._id = 0; + _walkNodes[i]._sequenceId = 0; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = 0; + _walkNodes[i]._gridY1 = 0; + } } Character::~Character() {} +void Character::walkStep() { + for (int i = 1; i < _vm->_gridMaxX; ++i) { + Common::Point checkPt = Common::Point(_pos.x + i, _pos.y); + if (!_vm->isPointBlocked(checkPt)) { + walkTo(checkPt, -1, -1, 1); + break; + } + + checkPt = Common::Point(_pos.x - i, _pos.y); + if (!_vm->isPointBlocked(checkPt)) { + walkTo(checkPt, -1, -1, 1); + break; + } + + checkPt = Common::Point(_pos.x, _pos.y + 1); + if (!_vm->isPointBlocked(checkPt)) { + walkTo(checkPt, -1, -1, 1); + break; + } + + checkPt = Common::Point(_pos.x, _pos.y - 1); + if (!_vm->isPointBlocked(checkPt)) { + walkTo(checkPt, -1, -1, 1); + break; + } + + checkPt = Common::Point(_pos.x + 1, _pos.y + 1); + if (!_vm->isPointBlocked(checkPt)) { + walkTo(checkPt, -1, -1, 1); + break; + } + + checkPt = Common::Point(_pos.x - 1, _pos.y + 1); + if (!_vm->isPointBlocked(checkPt)) { + walkTo(checkPt, -1, -1, 1); + break; + } + + checkPt = Common::Point(_pos.x + 1, _pos.y - 1); + if (!_vm->isPointBlocked(checkPt)) { + walkTo(checkPt, -1, -1, 1); + break; + } + + checkPt = Common::Point(_pos.x - 1, _pos.y - 1); + if (!_vm->isPointBlocked(checkPt)) { + walkTo(checkPt, -1, -1, 1); + break; + } + } +} /************************************************************************************************/ PlayerGnap::PlayerGnap(GnapEngine * vm) : Character(vm) { @@ -412,7 +478,7 @@ void PlayerGnap::useJointOnPlatypus() { _vm->_plat->_sequenceId = 0x876; _vm->_plat->_idleFacing = kDirNone; playSequence(0x107B5); - _vm->gnapWalkStep(); + _vm->_gnap->walkStep(); while (_vm->_gameSys->getAnimationStatus(0) != 2) { _vm->updateMouseCursor(); _vm->gameUpdateTick(); @@ -608,6 +674,180 @@ int PlayerGnap::getWalkSequenceId(int deltaX, int deltaY) { return walkSequenceIds[3 * deltaX + 3 + 1 + deltaY]; } +bool PlayerGnap::walkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags) { + int datNum = flags & 3; + bool done = false; + + _vm->_timers[2] = 200; + _vm->_timers[3] = 300; + + int gridX = gridPos.x; + if (gridX < 0) + gridX = (_vm->_leftClickMouseX - _vm->_gridMinX + 37) / 75; + + int gridY = gridPos.y; + if (gridY < 0) + gridY = (_vm->_leftClickMouseY - _vm->_gridMinY + 24) / 48; + + _walkDestX = CLIP(gridX, 0, _vm->_gridMaxX - 1); + _walkDestY = CLIP(gridY, 0, _vm->_gridMaxY - 1); + + if (animationIndex >= 0 && _walkDestX == _vm->_plat->_pos.x && _walkDestY == _vm->_plat->_pos.y) + _vm->platypusMakeRoom(); + + if (findPath1(_pos.x, _pos.y, 0)) + done = true; + + if (!done && findPath2(_pos.x, _pos.y, 0)) + done = true; + + if (!done && findPath3(_pos.x, _pos.y)) + done = true; + + if (!done && findPath4(_pos.x, _pos.y)) + done = true; + + _vm->gnapIdle(); + + int gnapSequenceId = _sequenceId; + int gnapId = _id; + int gnapSequenceDatNum = _sequenceDatNum; + + debugC(kDebugBasic, "_gnap->_walkNodesCount: %d", _walkNodesCount); + + for (int index = 0; index < _walkNodesCount; ++index) { + _walkNodes[index]._id = index + 20 * _walkNodes[index]._gridY1; + if (_walkNodes[index]._deltaX == 1 && _walkNodes[index]._deltaY == 0) { + if (index % 2) { + _vm->_gameSys->insertSequence(makeRid(datNum, 0x7AB), _walkNodes[index]._id, + makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = 0x7AB; + gnapSequenceId = 0x7AB; + } else { + _vm->_gameSys->insertSequence(makeRid(datNum, 0x7AC), _walkNodes[index]._id, + makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = 0x7AC; + gnapSequenceId = 0x7AC; + } + } else if (_walkNodes[index]._deltaX == -1 && _walkNodes[index]._deltaY == 0) { + if (index % 2) { + _vm->_gameSys->insertSequence(makeRid(datNum, 0x7AF), _walkNodes[index]._id, + makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = 0x7AF; + gnapSequenceId = 0x7AF; + } else { + _vm->_gameSys->insertSequence(makeRid(datNum, 0x7B0), _walkNodes[index]._id, + makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = 0x7B0; + gnapSequenceId = 0x7B0; + } + } else { + if (_walkNodes[index]._deltaY == -1) + _walkNodes[index]._id -= 10; + else + _walkNodes[index]._id += 10; + int newSequenceId = getWalkSequenceId(_walkNodes[index]._deltaX, _walkNodes[index]._deltaY); + _vm->_gameSys->insertSequence(makeRid(datNum, newSequenceId), _walkNodes[index]._id, + makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = newSequenceId; + gnapSequenceId = newSequenceId; + } + gnapId = _walkNodes[index]._id; + gnapSequenceDatNum = datNum; + } + + if (flags & 8) { + if (_walkNodesCount > 0) { + _sequenceId = gnapSequenceId; + _id = gnapId; + _idleFacing = _vm->getGnapWalkFacing(_walkNodes[_walkNodesCount - 1]._deltaX, _walkNodes[_walkNodesCount - 1]._deltaY); + _sequenceDatNum = datNum; + if (animationIndex >= 0) + _vm->_gameSys->setAnimation(makeRid(_sequenceDatNum, _sequenceId), _id, animationIndex); + } else if (animationIndex >= 0) { + _vm->_gameSys->setAnimation(0x107D3, 1, animationIndex); + _vm->_gameSys->insertSequence(0x107D3, 1, 0, 0, kSeqNone, 0, 0, 0); + } + } else { + if (sequenceId >= 0 && sequenceId != -1) { + _sequenceId = ridToEntryIndex(sequenceId); + _sequenceDatNum = ridToDatIndex(sequenceId); + if (_sequenceId == 0x7B9) { + _idleFacing = kDirBottomRight; + } else { + switch (_sequenceId) { + case 0x7BA: + _idleFacing = kDirBottomLeft; + break; + case 0x7BB: + _idleFacing = kDirUpRight; + break; + case 0x7BC: + _idleFacing = kDirUpLeft; + break; + } + } + } else { + if (_walkNodesCount > 0) { + _sequenceId = _vm->getGnapWalkStopSequenceId(_walkNodes[_walkNodesCount - 1]._deltaX, _walkNodes[_walkNodesCount - 1]._deltaY); + _idleFacing = _vm->getGnapWalkFacing(_walkNodes[_walkNodesCount - 1]._deltaX, _walkNodes[_walkNodesCount - 1]._deltaY); + } else if (gridX >= 0 || gridY >= 0) { + switch (_idleFacing) { + case kDirBottomRight: + _sequenceId = 0x7B9; + break; + case kDirBottomLeft: + _sequenceId = 0x7BA; + break; + case kDirUpRight: + _sequenceId = 0x7BB; + break; + default: + _sequenceId = 0x7BC; + break; + } + } else { + //TODO: simplify the checks by using v10 and v11 + int v10 = _vm->_leftClickMouseX - (_vm->_gridMinX + 75 * _pos.x); + int v11 = _vm->_leftClickMouseY - (_vm->_gridMinY + 48 * _pos.y); + if (_vm->_leftClickMouseX == _vm->_gridMinX + 75 * _pos.x) + ++v10; + if (_vm->_leftClickMouseY == _vm->_gridMinY + 48 * _pos.y) + v11 = 1; + _sequenceId = _vm->getGnapWalkStopSequenceId(v10 / abs(v10), v11 / abs(v11)); + _idleFacing = _vm->getGnapWalkFacing(v10 / abs(v10), v11 / abs(v11)); + } + _sequenceDatNum = datNum; + } + + if (animationIndex < 0) { + _id = 20 * _walkDestY + 1; + } else { + _id = _walkNodesCount + animationIndex + 20 * _walkDestY; + _vm->_gameSys->setAnimation(makeRid(_sequenceDatNum, _sequenceId), _walkNodesCount + animationIndex + 20 * _walkDestY, animationIndex); + } + + if (flags & 4) { + _vm->_gameSys->insertSequence(makeRid(_sequenceDatNum, _sequenceId), _id, + makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, + kSeqScale | kSeqSyncWait, 0, 0, 0); + } else { + _vm->_gameSys->insertSequence(makeRid(_sequenceDatNum, _sequenceId), _id, + makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkDestX - _gridX, 48 * _walkDestY - _gridY); + } + } + + _pos = Common::Point(_walkDestX, _walkDestY); + + return done; +} + /************************************************************************************************/ PlayerPlat::PlayerPlat(GnapEngine * vm) : Character(vm) {} @@ -731,4 +971,162 @@ int PlayerPlat::getWalkSequenceId(int deltaX, int deltaY) { return walkSequenceIds[3 * deltaX + 3 + 1 + deltaY]; } +bool PlayerPlat::walkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags) { + int datNum = flags & 3; + bool done = false; + + _vm->_timers[1] = 60; + + int gridX = gridPos.x; + if (gridX < 0) + gridX = (_vm->_leftClickMouseX - _vm->_gridMinX + 37) / 75; + + int gridY = gridPos.y; + if (gridY < 0) + gridY = (_vm->_leftClickMouseY - _vm->_gridMinY + 24) / 48; + + _walkDestX = CLIP(gridX, 0, _vm->_gridMaxX - 1); + _walkDestY = CLIP(gridY, 0, _vm->_gridMaxY - 1); + + if (animationIndex >= 0 && _vm->_gnap->_pos == Common::Point(_walkDestX, _walkDestY)) + _vm->_gnap->walkStep(); + + if (findPath1(_pos.x, _pos.y, 0)) + done = true; + + if (!done && findPath2(_pos.x, _pos.y, 0)) + done = true; + + if (!done && findPath3(_pos.x, _pos.y)) + done = true; + + if (!done && findPath4(_pos.x, _pos.y)) + done = true; + + int platSequenceId = _sequenceId; + int platId = _id; + int platSequenceDatNum = _sequenceDatNum; + + for (int index = 0; index < _walkNodesCount; ++index) { + _walkNodes[index]._id = index + 20 * _walkNodes[index]._gridY1; + if (_walkNodes[index]._deltaX == 1 && _walkNodes[index]._deltaY == 0) { + if (index % 2) { + _vm->_gameSys->insertSequence(makeRid(datNum, 0x7CD), _walkNodes[index]._id, + makeRid(platSequenceDatNum, platSequenceId), platId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = 0x7CD; + platSequenceId = 0x7CD; + } else { + _vm->_gameSys->insertSequence(makeRid(datNum, 0x7CE), _walkNodes[index]._id, + makeRid(platSequenceDatNum, platSequenceId), platId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = 0x7CE; + platSequenceId = 0x7CE; + } + } else if (_walkNodes[index]._deltaX == -1 && _walkNodes[index]._deltaY == 0) { + if (index % 2) { + _vm->_gameSys->insertSequence(makeRid(datNum, 0x7CF), _walkNodes[index]._id, + makeRid(platSequenceDatNum, platSequenceId), platId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = 0x7CF; + platSequenceId = 0x7CF; + } else { + _vm->_gameSys->insertSequence(makeRid(datNum, 0x7D0), _walkNodes[index]._id, + makeRid(platSequenceDatNum, platSequenceId), platId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = 0x7D0; + platSequenceId = 0x7D0; + } + } else { + if (_walkNodes[index]._deltaY == -1) + _walkNodes[index]._id -= 10; + else + _walkNodes[index]._id += 10; + int newSequenceId = getWalkSequenceId(_walkNodes[index]._deltaX, _walkNodes[index]._deltaY); + _vm->_gameSys->insertSequence(makeRid(datNum, newSequenceId), _walkNodes[index]._id, + makeRid(platSequenceDatNum, platSequenceId), platId, + kSeqScale | kSeqSyncWait, 0, 75 * _walkNodes[index]._gridX1 - _gridX, 48 * _walkNodes[index]._gridY1 - _gridY); + _walkNodes[index]._sequenceId = newSequenceId; + platSequenceId = newSequenceId; + } + platId = _walkNodes[index]._id; + platSequenceDatNum = datNum; + } + + if (flags & 8) { + if (_walkNodesCount > 0) { + _sequenceId = platSequenceId; + _id = platId; + _sequenceDatNum = datNum; + // CHECKME Not sure if this is correct... + if (_walkNodes[_walkNodesCount - 1]._deltaX > 0) + _idleFacing = kDirNone; + else if (_walkNodes[_walkNodesCount - 1]._deltaX < 0) + _idleFacing = kDirUnk4; + else if (_walkNodes[_walkNodesCount - 1]._gridX1 % 2) + _idleFacing = kDirUnk4; + else + _idleFacing = kDirNone; + if (animationIndex >= 0) + _vm->_gameSys->setAnimation(makeRid(_sequenceDatNum, _sequenceId), _id, animationIndex); + } else if (animationIndex >= 0) { + _vm->_gameSys->setAnimation(0x107D3, 1, animationIndex); + _vm->_gameSys->insertSequence(0x107D3, 1, 0, 0, kSeqNone, 0, 0, 0); + } + } else { + if (sequenceId >= 0 && sequenceId != -1) { + _sequenceId = ridToEntryIndex(sequenceId); + _sequenceDatNum = ridToDatIndex(sequenceId); + if (_sequenceId == 0x7C2) { + _idleFacing = kDirNone; + } else if (_sequenceId == 0x7D2) { + _idleFacing = kDirUnk4; + } + } else { + if (_walkNodesCount > 0) { + if (_walkNodes[_walkNodesCount - 1]._deltaX > 0) { + _sequenceId = 0x7C2; + _idleFacing = kDirNone; + } else if (_walkNodes[_walkNodesCount - 1]._deltaX < 0) { + _sequenceId = 0x7D2; + _idleFacing = kDirUnk4; + } else if (_walkNodes[0]._deltaX > 0) { + _sequenceId = 0x7C2; + _idleFacing = kDirNone; + } else if (_walkNodes[0]._deltaX < 0) { + _sequenceId = 0x7D2; + _idleFacing = kDirUnk4; + } else { + _sequenceId = 0x7D2; + _idleFacing = kDirUnk4; + } + } else if (_idleFacing != kDirNone) { + _sequenceId = 0x7D2; + } else { + _sequenceId = 0x7C2; + } + _sequenceDatNum = datNum; + } + + if (animationIndex < 0) { + _id = 20 * _walkDestY; + } else { + _id = animationIndex + 20 * _walkDestY; + _vm->_gameSys->setAnimation(makeRid(_sequenceDatNum, _sequenceId), animationIndex + 20 * _walkDestY, animationIndex); + } + + if (flags & 4) + _vm->_gameSys->insertSequence(makeRid(_sequenceDatNum, _sequenceId), _id, + makeRid(platSequenceDatNum, platSequenceId), platId, + 9, 0, 0, 0); + else + _vm->_gameSys->insertSequence(makeRid(_sequenceDatNum, _sequenceId), _id, + makeRid(platSequenceDatNum, platSequenceId), platId, + 9, 0, 75 * _walkDestX - _gridX, 48 * _walkDestY - _gridY); + } + + _pos = Common::Point(_walkDestX, _walkDestY); + + return done; +} } // End of namespace Gnap diff --git a/engines/gnap/character.h b/engines/gnap/character.h index ddfc7190e6..c36b0a2295 100644 --- a/engines/gnap/character.h +++ b/engines/gnap/character.h @@ -36,17 +36,29 @@ enum Facing { kDirUpRight = 7 }; +struct GridStruct { + int _deltaX, _deltaY; + int _gridX1, _gridY1; + int _sequenceId; + int _id; +}; + +const int kMaxGridStructs = 30; + class Character { public: Character(GnapEngine *vm); ~Character(); + void walkStep(); + virtual int getSequenceId(int kind, int gridX, int gridY) = 0; virtual void playSequence(int sequenceId) = 0; virtual void updateIdleSequence() = 0; virtual void updateIdleSequence2() = 0; virtual void initPos(int gridX, int gridY, Facing facing) = 0; virtual int getWalkSequenceId(int deltaX, int deltaY) = 0; + virtual bool walkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags) = 0; Common::Point _pos; Facing _idleFacing; @@ -56,6 +68,10 @@ public: int _id; int _gridX; int _gridY; + int _walkNodesCount; + GridStruct _walkNodes[kMaxGridStructs]; + int _walkDestX, _walkDestY; + int _walkDeltaX, _walkDeltaY, _walkDirX, _walkDirY, _walkDirXIncr, _walkDirYIncr; protected: GnapEngine *_vm; @@ -70,6 +86,7 @@ public: virtual void updateIdleSequence(); virtual void updateIdleSequence2(); virtual int getWalkSequenceId(int deltaX, int deltaY); + virtual bool walkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags); void initBrainPulseRndValue(); void kissPlatypus(int callback); @@ -78,6 +95,12 @@ public: int _brainPulseNum; int _brainPulseRndValue; + +private: + bool findPath1(int gridX, int gridY, int index); + bool findPath2(int gridX, int gridY, int index); + bool findPath3(int gridX, int gridY); + bool findPath4(int gridX, int gridY); }; class PlayerPlat : public Character { @@ -89,6 +112,13 @@ public: virtual void updateIdleSequence(); virtual void updateIdleSequence2(); virtual int getWalkSequenceId(int deltaX, int deltaY); + virtual bool walkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags); + +private: + bool findPath1(int gridX, int gridY, int index); + bool findPath2(int gridX, int gridY, int index); + bool findPath3(int gridX, int gridY); + bool findPath4(int gridX, int gridY); }; } // End of namespace Gnap diff --git a/engines/gnap/gnap.cpp b/engines/gnap/gnap.cpp index 9f1ae26150..42d5277dc6 100644 --- a/engines/gnap/gnap.cpp +++ b/engines/gnap/gnap.cpp @@ -1189,7 +1189,7 @@ void GnapEngine::playGnapShowItem(int itemIndex, int gridLookX, int gridLookY) { void GnapEngine::playGnapShowCurrItem(int gridX, int gridY, int gridLookX, int gridLookY) { if (_plat->_pos.x == gridX && _plat->_pos.y == gridY) platypusMakeRoom(); - gnapWalkTo(Common::Point(gridX, gridY), -1, -1, 1); + _gnap->walkTo(Common::Point(gridX, gridY), -1, -1, 1); playGnapShowItem(_grabCursorSpriteIndex, gridLookX, gridLookY); } @@ -1199,8 +1199,8 @@ bool GnapEngine::testWalk(int animationIndex, int someStatus, int gridX1, int gr _gameSys->setAnimation(0, 0, animationIndex); _gnap->_actionStatus = -1; _plat->_actionStatus = -1; - gnapWalkTo(Common::Point(gridX1, gridY1), -1, -1, 1); - platypusWalkTo(Common::Point(gridX2, gridY2), -1, -1, 1); + _gnap->walkTo(Common::Point(gridX1, gridY1), -1, -1, 1); + _plat->walkTo(Common::Point(gridX2, gridY2), -1, -1, 1); _mouseClickState._left = false; return true; } @@ -1224,12 +1224,12 @@ bool GnapEngine::gnapPlatypusAction(int gridX, int gridY, int platSequenceId, in _gnap->_actionStatus = 100; Common::Point checkPt = _plat->_pos + Common::Point(gridX, gridY); if (isPointBlocked(checkPt) && (_gnap->_pos != checkPt)) { - platypusWalkStep(); + _plat->walkStep(); checkPt = _plat->_pos + Common::Point(gridX, gridY); } if (!isPointBlocked(checkPt) && (_gnap->_pos != checkPt)) { - gnapWalkTo(checkPt, 0, 0x107B9, 1); + _gnap->walkTo(checkPt, 0, 0x107B9, 1); while (_gameSys->getAnimationStatus(0) != 2) { updateMouseCursor(); doCallback(callback); diff --git a/engines/gnap/gnap.h b/engines/gnap/gnap.h index 59326b0511..db9368d98d 100644 --- a/engines/gnap/gnap.h +++ b/engines/gnap/gnap.h @@ -75,14 +75,6 @@ struct Hotspot { } }; -struct GridStruct { - int _deltaX, _deltaY; - int _gridX1, _gridY1; - int _sequenceId; - int _id; -}; - -const int kMaxGridStructs = 30; const int kMaxTimers = 10; enum GnapDebugChannels { @@ -483,32 +475,10 @@ public: bool testWalk(int animationIndex, int someStatus, int gridX1, int gridY1, int gridX2, int gridY2); // Gnap walking - int _gnapWalkNodesCount; - GridStruct _gnapWalkNodes[kMaxGridStructs]; - int _gnapWalkDestX, _gnapWalkDestY; - int _gnapWalkDeltaX, _gnapWalkDeltaY, _gnapWalkDirX, _gnapWalkDirY, _gnapWalkDirXIncr, _gnapWalkDirYIncr; - int getGnapWalkStopSequenceId(int deltaX, int deltaY); Facing getGnapWalkFacing(int deltaX, int deltaY); - bool gnapFindPath1(int gridX, int gridY, int index); - bool gnapFindPath2(int gridX, int gridY, int index); - bool gnapFindPath3(int gridX, int gridY); - bool gnapFindPath4(int gridX, int gridY); - bool gnapWalkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags); - void gnapWalkStep(); // Platypus walking - int _platWalkNodesCount; - GridStruct _platWalkNodes[kMaxGridStructs]; - int _platWalkDestX, _platWalkDestY; - int _platWalkDeltaX, _platWalkDeltaY, _platWalkDirX, _platWalkDirY, _platWalkDirXIncr, _platWalkDirYIncr; - - bool platFindPath1(int gridX, int gridY, int index); - bool platFindPath2(int gridX, int gridY, int index); - bool platFindPath3(int gridX, int gridY); - bool platFindPath4(int gridX, int gridY); - bool platypusWalkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags); - void platypusWalkStep(); void platypusMakeRoom(); // Gnap diff --git a/engines/gnap/grid.cpp b/engines/gnap/grid.cpp index 568fe2520e..d4aed8dbc0 100644 --- a/engines/gnap/grid.cpp +++ b/engines/gnap/grid.cpp @@ -81,176 +81,81 @@ bool GnapEngine::isPointBlocked(int gridX, int gridY) { } return false; - } -bool GnapEngine::gnapFindPath4(int gridX, int gridY) { - bool result = false; - - _gnapWalkNodesCount = 0; - _gnapWalkDirXIncr = 0; - _gnapWalkDirYIncr = 0; - _gnapWalkDeltaX = ABS(_gnapWalkDestX - gridX); - _gnapWalkDeltaY = ABS(_gnapWalkDestY - gridY); - - if (_gnapWalkDeltaX) - _gnapWalkDirX = (_gnapWalkDestX - gridX) / _gnapWalkDeltaX; - else - _gnapWalkDirX = 0; - - if (_gnapWalkDeltaY) - _gnapWalkDirY = (_gnapWalkDestY - gridY) / _gnapWalkDeltaY; - else - _gnapWalkDirY = 0; - - while (_gnapWalkDirXIncr < _gnapWalkDeltaX && _gnapWalkDirYIncr < _gnapWalkDeltaY) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = gridX + _gnapWalkDirX * _gnapWalkDirXIncr; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = gridY + _gnapWalkDirY * _gnapWalkDirYIncr; - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirXIncr; - ++_gnapWalkDirYIncr; - } else if (_gnapWalkDeltaY - _gnapWalkDirYIncr > _gnapWalkDeltaX - _gnapWalkDirXIncr) { - if (!isPointBlocked(_gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; - } else if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; - } else { - _gnapWalkDeltaX = _gnapWalkDirXIncr; - _gnapWalkDeltaY = _gnapWalkDirYIncr; - --_gnapWalkNodesCount; - } - } else { - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; - } else if (!isPointBlocked(_gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; - } else { - _gnapWalkDeltaX = _gnapWalkDirXIncr; - _gnapWalkDeltaY = _gnapWalkDirYIncr; - --_gnapWalkNodesCount; - } - } - ++_gnapWalkNodesCount; - } - - while (_gnapWalkDirXIncr < _gnapWalkDeltaX) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = gridX + _gnapWalkDirX * _gnapWalkDirXIncr; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = _gnapWalkDestY; - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDestY)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; - ++_gnapWalkNodesCount; - } else { - _gnapWalkDeltaX = _gnapWalkDirXIncr; - } - } - - while (_gnapWalkDirYIncr < _gnapWalkDeltaY) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = _gnapWalkDestX; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = gridY + _gnapWalkDirY * _gnapWalkDirYIncr; - if (!isPointBlocked(_gnapWalkDestX, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; - ++_gnapWalkNodesCount; - } else { - _gnapWalkDeltaY = _gnapWalkDirYIncr; - } - } - - if (gridX + _gnapWalkDirX * _gnapWalkDirXIncr != _gnapWalkDestX || gridY + _gnapWalkDirY * _gnapWalkDirYIncr != _gnapWalkDestY) { - _gnapWalkDestX = gridX + _gnapWalkDirX * _gnapWalkDirXIncr; - _gnapWalkDestY = gridY + _gnapWalkDirY * _gnapWalkDirYIncr; - result = false; - } else { - result = true; - } +/******************************************************************************/ - return result; -} +bool PlayerGnap::findPath1(int gridX, int gridY, int index) { + _walkNodesCount = index; + _walkDirXIncr = 0; + _walkDirYIncr = 0; + _walkDeltaX = ABS(_walkDestX - gridX); + _walkDeltaY = ABS(_walkDestY - gridY); -bool GnapEngine::gnapFindPath1(int gridX, int gridY, int index) { - _gnapWalkNodesCount = index; - _gnapWalkDirXIncr = 0; - _gnapWalkDirYIncr = 0; - _gnapWalkDeltaX = ABS(_gnapWalkDestX - gridX); - _gnapWalkDeltaY = ABS(_gnapWalkDestY - gridY); - - if (_gnapWalkDeltaX) - _gnapWalkDirX = (_gnapWalkDestX - gridX) / _gnapWalkDeltaX; + if (_walkDeltaX) + _walkDirX = (_walkDestX - gridX) / _walkDeltaX; else - _gnapWalkDirX = 0; + _walkDirX = 0; - if (_gnapWalkDeltaY) - _gnapWalkDirY = (_gnapWalkDestY - gridY) / _gnapWalkDeltaY; + if (_walkDeltaY) + _walkDirY = (_walkDestY - gridY) / _walkDeltaY; else - _gnapWalkDirY = 0; - - while (_gnapWalkDirXIncr < _gnapWalkDeltaX && _gnapWalkDirYIncr < _gnapWalkDeltaY) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = gridX + _gnapWalkDirX * _gnapWalkDirXIncr; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = gridY + _gnapWalkDirY * _gnapWalkDirYIncr; - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirXIncr; - ++_gnapWalkDirYIncr; - } else if (_gnapWalkDeltaY - _gnapWalkDirYIncr > _gnapWalkDeltaX - _gnapWalkDirXIncr) { - if (!isPointBlocked(_gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; - } else if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; + _walkDirY = 0; + + while (_walkDirXIncr < _walkDeltaX && _walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirXIncr; + ++_walkDirYIncr; + } else if (_walkDeltaY - _walkDirYIncr > _walkDeltaX - _walkDirXIncr) { + if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + } else if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; } else return false; } else { - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; - } else if (!isPointBlocked(_gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + } else if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; } else return false; } - ++_gnapWalkNodesCount; + ++_walkNodesCount; } - while (_gnapWalkDirXIncr < _gnapWalkDeltaX) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = gridX + _gnapWalkDirX * _gnapWalkDirXIncr; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = _gnapWalkDestY; - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDestY)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; - ++_gnapWalkNodesCount; + while (_walkDirXIncr < _walkDeltaX) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = _walkDestY; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDestY)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + ++_walkNodesCount; } else return false; } - while (_gnapWalkDirYIncr < _gnapWalkDeltaY) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = _gnapWalkDestX; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = gridY + _gnapWalkDirY * _gnapWalkDirYIncr; - if (!isPointBlocked(_gnapWalkDestX, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; - ++_gnapWalkNodesCount; + while (_walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = _walkDestX; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDestX, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + ++_walkNodesCount; } else return false; } @@ -258,101 +163,101 @@ bool GnapEngine::gnapFindPath1(int gridX, int gridY, int index) { return true; } -bool GnapEngine::gnapFindPath2(int gridX, int gridY, int index) { - _gnapWalkNodesCount = index; - _gnapWalkDirXIncr = 0; - _gnapWalkDirYIncr = 0; - _gnapWalkDeltaX = ABS(_gnapWalkDestX - gridX); - _gnapWalkDeltaY = ABS(_gnapWalkDestY - gridY); +bool PlayerGnap::findPath2(int gridX, int gridY, int index) { + _walkNodesCount = index; + _walkDirXIncr = 0; + _walkDirYIncr = 0; + _walkDeltaX = ABS(_walkDestX - gridX); + _walkDeltaY = ABS(_walkDestY - gridY); - if (_gnapWalkDeltaX) - _gnapWalkDirX = (_gnapWalkDestX - gridX) / _gnapWalkDeltaX; + if (_walkDeltaX) + _walkDirX = (_walkDestX - gridX) / _walkDeltaX; else - _gnapWalkDirX = 0; + _walkDirX = 0; - if (_gnapWalkDeltaY) - _gnapWalkDirY = (_gnapWalkDestY - gridY) / _gnapWalkDeltaY; + if (_walkDeltaY) + _walkDirY = (_walkDestY - gridY) / _walkDeltaY; else - _gnapWalkDirY = 0; - - while (_gnapWalkDeltaY < _gnapWalkDeltaX - _gnapWalkDirXIncr) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = gridX + _gnapWalkDirX * _gnapWalkDirXIncr; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = gridY; - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, gridY)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; - ++_gnapWalkNodesCount; + _walkDirY = 0; + + while (_walkDeltaY < _walkDeltaX - _walkDirXIncr) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = gridY; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, gridY)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + ++_walkNodesCount; } else return false; } - while (_gnapWalkDeltaX < _gnapWalkDeltaY - _gnapWalkDirYIncr) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = gridX; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = gridY + _gnapWalkDirY * _gnapWalkDirYIncr; - if (!isPointBlocked(gridX, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; - ++_gnapWalkNodesCount; + while (_walkDeltaX < _walkDeltaY - _walkDirYIncr) { + _walkNodes[_walkNodesCount]._gridX1 = gridX; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(gridX, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + ++_walkNodesCount; } else return false; } - while (_gnapWalkDirXIncr < _gnapWalkDeltaX && _gnapWalkDirYIncr < _gnapWalkDeltaY) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = gridX + _gnapWalkDirX * _gnapWalkDirXIncr; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = gridY + _gnapWalkDirY * _gnapWalkDirYIncr; - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirXIncr; - ++_gnapWalkDirYIncr; - } else if (_gnapWalkDeltaY - _gnapWalkDirYIncr > _gnapWalkDeltaX - _gnapWalkDirXIncr) { - if (!isPointBlocked(_gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; - } else if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; + while (_walkDirXIncr < _walkDeltaX && _walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirXIncr; + ++_walkDirYIncr; + } else if (_walkDeltaY - _walkDirYIncr > _walkDeltaX - _walkDirXIncr) { + if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + } else if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; } else return false; } else { - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; - } else if (!isPointBlocked(_gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + } else if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; } else return false; } - ++_gnapWalkNodesCount; + ++_walkNodesCount; } - while (_gnapWalkDirXIncr < _gnapWalkDeltaX) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = gridX + _gnapWalkDirX * _gnapWalkDirXIncr; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = _gnapWalkDestY; - if (!isPointBlocked(_gnapWalkDirX + _gnapWalkNodes[_gnapWalkNodesCount]._gridX1, _gnapWalkDestY)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = _gnapWalkDirX; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = 0; - ++_gnapWalkDirXIncr; - ++_gnapWalkNodesCount; + while (_walkDirXIncr < _walkDeltaX) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = _walkDestY; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDestY)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + ++_walkNodesCount; } else return false; } - while (_gnapWalkDirYIncr < _gnapWalkDeltaY) { - _gnapWalkNodes[_gnapWalkNodesCount]._gridX1 = _gnapWalkDestX; - _gnapWalkNodes[_gnapWalkNodesCount]._gridY1 = gridY + _gnapWalkDirY * _gnapWalkDirYIncr; - if (!isPointBlocked(_gnapWalkDestX, _gnapWalkDirY + _gnapWalkNodes[_gnapWalkNodesCount]._gridY1)) { - _gnapWalkNodes[_gnapWalkNodesCount]._deltaX = 0; - _gnapWalkNodes[_gnapWalkNodesCount]._deltaY = _gnapWalkDirY; - ++_gnapWalkDirYIncr; - ++_gnapWalkNodesCount; + while (_walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = _walkDestX; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDestX, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + ++_walkNodesCount; } else return false; } @@ -360,167 +265,167 @@ bool GnapEngine::gnapFindPath2(int gridX, int gridY, int index) { return true; } -bool GnapEngine::gnapFindPath3(int gridX, int gridY) { +bool PlayerGnap::findPath3(int gridX, int gridY) { int gridIncr = 1; bool done = false; - while (!done && gridIncr < _gridMaxX) { - if (!isPointBlocked(gridX + gridIncr, gridY) && gnapFindPath1(gridX + gridIncr, gridY, gridIncr)) { + while (!done && gridIncr < _vm->_gridMaxX) { + if (!_vm->isPointBlocked(gridX + gridIncr, gridY) && findPath1(gridX + gridIncr, gridY, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX + i; - _gnapWalkNodes[i]._gridY1 = gridY; - _gnapWalkNodes[i]._deltaX = 1; - _gnapWalkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = gridX + i; + _walkNodes[i]._gridY1 = gridY; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = 0; } done = true; break; } - if (!isPointBlocked(gridX - gridIncr, gridY) && gnapFindPath1(gridX - gridIncr, gridY, gridIncr)) { + if (!_vm->isPointBlocked(gridX - gridIncr, gridY) && findPath1(gridX - gridIncr, gridY, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX - i; - _gnapWalkNodes[i]._gridY1 = gridY; - _gnapWalkNodes[i]._deltaX = -1; - _gnapWalkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = gridX - i; + _walkNodes[i]._gridY1 = gridY; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = 0; } done = true; break; } - if (!isPointBlocked(gridX, gridY + gridIncr) && gnapFindPath1(gridX, gridY + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX, gridY + gridIncr) && findPath1(gridX, gridY + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX; - _gnapWalkNodes[i]._gridY1 = gridY + i; - _gnapWalkNodes[i]._deltaX = 0; - _gnapWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = gridX; + _walkNodes[i]._gridY1 = gridY + i; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(gridX, gridY - gridIncr) && gnapFindPath1(gridX, gridY - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX, gridY - gridIncr) && findPath1(gridX, gridY - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX; - _gnapWalkNodes[i]._gridY1 = gridY - i; - _gnapWalkNodes[i]._deltaX = 0; - _gnapWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = gridX; + _walkNodes[i]._gridY1 = gridY - i; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(gridX + gridIncr, gridY + gridIncr) && gnapFindPath1(gridX + gridIncr, gridY + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX + gridIncr, gridY + gridIncr) && findPath1(gridX + gridIncr, gridY + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX + i; - _gnapWalkNodes[i]._gridY1 = gridY + i; - _gnapWalkNodes[i]._deltaX = 1; - _gnapWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = gridX + i; + _walkNodes[i]._gridY1 = gridY + i; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(gridX - gridIncr, gridY + gridIncr) && gnapFindPath1(gridX - gridIncr, gridY + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX - gridIncr, gridY + gridIncr) && findPath1(gridX - gridIncr, gridY + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX - i; - _gnapWalkNodes[i]._gridY1 = gridY + i; - _gnapWalkNodes[i]._deltaX = -1; - _gnapWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = gridX - i; + _walkNodes[i]._gridY1 = gridY + i; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(gridX + gridIncr, gridY - gridIncr) && gnapFindPath1(gridX + gridIncr, gridY - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX + gridIncr, gridY - gridIncr) && findPath1(gridX + gridIncr, gridY - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX + i; - _gnapWalkNodes[i]._gridY1 = gridY - i; - _gnapWalkNodes[i]._deltaX = 1; - _gnapWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = gridX + i; + _walkNodes[i]._gridY1 = gridY - i; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(gridX - gridIncr, gridY - gridIncr) && gnapFindPath1(gridX - gridIncr, gridY - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX - gridIncr, gridY - gridIncr) && findPath1(gridX - gridIncr, gridY - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX - i; - _gnapWalkNodes[i]._gridY1 = gridY - i; - _gnapWalkNodes[i]._deltaX = -1; - _gnapWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = gridX - i; + _walkNodes[i]._gridY1 = gridY - i; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(gridX + gridIncr, gridY) && gnapFindPath2(gridX + gridIncr, gridY, gridIncr)) { + if (!_vm->isPointBlocked(gridX + gridIncr, gridY) && findPath2(gridX + gridIncr, gridY, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX + i; - _gnapWalkNodes[i]._gridY1 = gridY; - _gnapWalkNodes[i]._deltaX = 1; - _gnapWalkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = gridX + i; + _walkNodes[i]._gridY1 = gridY; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = 0; } done = true; break; } - if (!isPointBlocked(gridX - gridIncr, gridY) && gnapFindPath2(gridX - gridIncr, gridY, gridIncr)) { + if (!_vm->isPointBlocked(gridX - gridIncr, gridY) && findPath2(gridX - gridIncr, gridY, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX - i; - _gnapWalkNodes[i]._gridY1 = gridY; - _gnapWalkNodes[i]._deltaX = -1; - _gnapWalkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = gridX - i; + _walkNodes[i]._gridY1 = gridY; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = 0; } done = true; break; } - if (!isPointBlocked(gridX, gridY + gridIncr) && gnapFindPath2(gridX, gridY + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX, gridY + gridIncr) && findPath2(gridX, gridY + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX; - _gnapWalkNodes[i]._gridY1 = gridY + i; - _gnapWalkNodes[i]._deltaX = 0; - _gnapWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = gridX; + _walkNodes[i]._gridY1 = gridY + i; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(gridX, gridY - gridIncr) && gnapFindPath2(gridX, gridY - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX, gridY - gridIncr) && findPath2(gridX, gridY - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX; - _gnapWalkNodes[i]._gridY1 = gridY - i; - _gnapWalkNodes[i]._deltaX = 0; - _gnapWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = gridX; + _walkNodes[i]._gridY1 = gridY - i; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(gridX + gridIncr, gridY + gridIncr) && gnapFindPath2(gridX + gridIncr, gridY + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX + gridIncr, gridY + gridIncr) && findPath2(gridX + gridIncr, gridY + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX + i; - _gnapWalkNodes[i]._gridY1 = gridY + i; - _gnapWalkNodes[i]._deltaX = 1; - _gnapWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = gridX + i; + _walkNodes[i]._gridY1 = gridY + i; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(gridX - gridIncr, gridY + gridIncr) && gnapFindPath2(gridX - gridIncr, gridY + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX - gridIncr, gridY + gridIncr) && findPath2(gridX - gridIncr, gridY + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX - i; - _gnapWalkNodes[i]._gridY1 = gridY + i; - _gnapWalkNodes[i]._deltaX = -1; - _gnapWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = gridX - i; + _walkNodes[i]._gridY1 = gridY + i; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(gridX + gridIncr, gridY - gridIncr) && gnapFindPath2(gridX + gridIncr, gridY - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX + gridIncr, gridY - gridIncr) && findPath2(gridX + gridIncr, gridY - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX + i; - _gnapWalkNodes[i]._gridY1 = gridY - i; - _gnapWalkNodes[i]._deltaX = 1; - _gnapWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = gridX + i; + _walkNodes[i]._gridY1 = gridY - i; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(gridX - gridIncr, gridY - gridIncr) && gnapFindPath2(gridX - gridIncr, gridY - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(gridX - gridIncr, gridY - gridIncr) && findPath2(gridX - gridIncr, gridY - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _gnapWalkNodes[i]._gridX1 = gridX - i; - _gnapWalkNodes[i]._gridY1 = gridY - i; - _gnapWalkNodes[i]._deltaX = -1; - _gnapWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = gridX - i; + _walkNodes[i]._gridY1 = gridY - i; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = -1; } done = true; break; @@ -531,323 +436,94 @@ bool GnapEngine::gnapFindPath3(int gridX, int gridY) { return done; } -bool GnapEngine::gnapWalkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags) { - int datNum = flags & 3; - bool done = false; - - _timers[2] = 200; - _timers[3] = 300; - - int gridX = gridPos.x; - if (gridX < 0) - gridX = (_leftClickMouseX - _gridMinX + 37) / 75; - - int gridY = gridPos.y; - if (gridY < 0) - gridY = (_leftClickMouseY - _gridMinY + 24) / 48; - - _gnapWalkDestX = CLIP(gridX, 0, _gridMaxX - 1); - _gnapWalkDestY = CLIP(gridY, 0, _gridMaxY - 1); - - if (animationIndex >= 0 && _gnapWalkDestX == _plat->_pos.x && _gnapWalkDestY == _plat->_pos.y) - platypusMakeRoom(); - - // TODO: Simplify the cascade of Ifs - if (gnapFindPath1(_gnap->_pos.x, _gnap->_pos.y, 0)) - done = true; - - if (!done && gnapFindPath2(_gnap->_pos.x, _gnap->_pos.y, 0)) - done = true; - - if (!done && gnapFindPath3(_gnap->_pos.x, _gnap->_pos.y)) - done = true; - - if (!done && gnapFindPath4(_gnap->_pos.x, _gnap->_pos.y)) - done = true; - - gnapIdle(); - - int gnapSequenceId = _gnap->_sequenceId; - int gnapId = _gnap->_id; - int gnapSequenceDatNum = _gnap->_sequenceDatNum; - - debugC(kDebugBasic, "_gnapWalkNodesCount: %d", _gnapWalkNodesCount); - - for (int index = 0; index < _gnapWalkNodesCount; ++index) { - _gnapWalkNodes[index]._id = index + 20 * _gnapWalkNodes[index]._gridY1; - if (_gnapWalkNodes[index]._deltaX == 1 && _gnapWalkNodes[index]._deltaY == 0) { - if (index % 2) { - _gameSys->insertSequence(makeRid(datNum, 0x7AB), _gnapWalkNodes[index]._id, - makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, - kSeqScale | kSeqSyncWait, 0, 75 * _gnapWalkNodes[index]._gridX1 - _gnap->_gridX, 48 * _gnapWalkNodes[index]._gridY1 - _gnap->_gridY); - _gnapWalkNodes[index]._sequenceId = 0x7AB; - gnapSequenceId = 0x7AB; - } else { - _gameSys->insertSequence(makeRid(datNum, 0x7AC), _gnapWalkNodes[index]._id, - makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, - kSeqScale | kSeqSyncWait, 0, 75 * _gnapWalkNodes[index]._gridX1 - _gnap->_gridX, 48 * _gnapWalkNodes[index]._gridY1 - _gnap->_gridY); - _gnapWalkNodes[index]._sequenceId = 0x7AC; - gnapSequenceId = 0x7AC; - } - } else if (_gnapWalkNodes[index]._deltaX == -1 && _gnapWalkNodes[index]._deltaY == 0) { - if (index % 2) { - _gameSys->insertSequence(makeRid(datNum, 0x7AF), _gnapWalkNodes[index]._id, - makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, - kSeqScale | kSeqSyncWait, 0, 75 * _gnapWalkNodes[index]._gridX1 - _gnap->_gridX, 48 * _gnapWalkNodes[index]._gridY1 - _gnap->_gridY); - _gnapWalkNodes[index]._sequenceId = 0x7AF; - gnapSequenceId = 0x7AF; - } else { - _gameSys->insertSequence(makeRid(datNum, 0x7B0), _gnapWalkNodes[index]._id, - makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, - kSeqScale | kSeqSyncWait, 0, 75 * _gnapWalkNodes[index]._gridX1 - _gnap->_gridX, 48 * _gnapWalkNodes[index]._gridY1 - _gnap->_gridY); - _gnapWalkNodes[index]._sequenceId = 0x7B0; - gnapSequenceId = 0x7B0; - } - } else { - if (_gnapWalkNodes[index]._deltaY == -1) - _gnapWalkNodes[index]._id -= 10; - else - _gnapWalkNodes[index]._id += 10; - int newSequenceId = _gnap->getWalkSequenceId(_gnapWalkNodes[index]._deltaX, _gnapWalkNodes[index]._deltaY); - _gameSys->insertSequence(makeRid(datNum, newSequenceId), _gnapWalkNodes[index]._id, - makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, - kSeqScale | kSeqSyncWait, 0, 75 * _gnapWalkNodes[index]._gridX1 - _gnap->_gridX, 48 * _gnapWalkNodes[index]._gridY1 - _gnap->_gridY); - _gnapWalkNodes[index]._sequenceId = newSequenceId; - gnapSequenceId = newSequenceId; - } - gnapId = _gnapWalkNodes[index]._id; - gnapSequenceDatNum = datNum; - } - - if (flags & 8) { - if (_gnapWalkNodesCount > 0) { - _gnap->_sequenceId = gnapSequenceId; - _gnap->_id = gnapId; - _gnap->_idleFacing = getGnapWalkFacing(_gnapWalkNodes[_gnapWalkNodesCount - 1]._deltaX, _gnapWalkNodes[_gnapWalkNodesCount - 1]._deltaY); - _gnap->_sequenceDatNum = datNum; - if (animationIndex >= 0) - _gameSys->setAnimation(makeRid(_gnap->_sequenceDatNum, _gnap->_sequenceId), _gnap->_id, animationIndex); - } else if (animationIndex >= 0) { - _gameSys->setAnimation(0x107D3, 1, animationIndex); - _gameSys->insertSequence(0x107D3, 1, 0, 0, kSeqNone, 0, 0, 0); - } - } else { - if (sequenceId >= 0 && sequenceId != -1) { - _gnap->_sequenceId = ridToEntryIndex(sequenceId); - _gnap->_sequenceDatNum = ridToDatIndex(sequenceId); - if (_gnap->_sequenceId == 0x7B9) { - _gnap->_idleFacing = kDirBottomRight; - } else { - switch (_gnap->_sequenceId) { - case 0x7BA: - _gnap->_idleFacing = kDirBottomLeft; - break; - case 0x7BB: - _gnap->_idleFacing = kDirUpRight; - break; - case 0x7BC: - _gnap->_idleFacing = kDirUpLeft; - break; - } - } - } else { - if (_gnapWalkNodesCount > 0) { - _gnap->_sequenceId = getGnapWalkStopSequenceId(_gnapWalkNodes[_gnapWalkNodesCount - 1]._deltaX, _gnapWalkNodes[_gnapWalkNodesCount - 1]._deltaY); - _gnap->_idleFacing = getGnapWalkFacing(_gnapWalkNodes[_gnapWalkNodesCount - 1]._deltaX, _gnapWalkNodes[_gnapWalkNodesCount - 1]._deltaY); - } else if (gridX >= 0 || gridY >= 0) { - switch (_gnap->_idleFacing) { - case kDirBottomRight: - _gnap->_sequenceId = 0x7B9; - break; - case kDirBottomLeft: - _gnap->_sequenceId = 0x7BA; - break; - case kDirUpRight: - _gnap->_sequenceId = 0x7BB; - break; - default: - _gnap->_sequenceId = 0x7BC; - break; - } - } else { - //TODO: simplify the checks by using v10 and v11 - int v10 = _leftClickMouseX - (_gridMinX + 75 * _gnap->_pos.x); - int v11 = _leftClickMouseY - (_gridMinY + 48 * _gnap->_pos.y); - if (_leftClickMouseX == _gridMinX + 75 * _gnap->_pos.x) - ++v10; - if (_leftClickMouseY == _gridMinY + 48 * _gnap->_pos.y) - v11 = 1; - _gnap->_sequenceId = getGnapWalkStopSequenceId(v10 / abs(v10), v11 / abs(v11)); - _gnap->_idleFacing = getGnapWalkFacing(v10 / abs(v10), v11 / abs(v11)); - } - _gnap->_sequenceDatNum = datNum; - } - - if (animationIndex < 0) { - _gnap->_id = 20 * _gnapWalkDestY + 1; - } else { - _gnap->_id = _gnapWalkNodesCount + animationIndex + 20 * _gnapWalkDestY; - _gameSys->setAnimation(makeRid(_gnap->_sequenceDatNum, _gnap->_sequenceId), _gnapWalkNodesCount + animationIndex + 20 * _gnapWalkDestY, animationIndex); - } - - if (flags & 4) { - _gameSys->insertSequence(makeRid(_gnap->_sequenceDatNum, _gnap->_sequenceId), _gnap->_id, - makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, - kSeqScale | kSeqSyncWait, 0, 0, 0); - } else { - _gameSys->insertSequence(makeRid(_gnap->_sequenceDatNum, _gnap->_sequenceId), _gnap->_id, - makeRid(gnapSequenceDatNum, gnapSequenceId), gnapId, - kSeqScale | kSeqSyncWait, 0, 75 * _gnapWalkDestX - _gnap->_gridX, 48 * _gnapWalkDestY - _gnap->_gridY); - } - } - - _gnap->_pos = Common::Point(_gnapWalkDestX, _gnapWalkDestY); - - return done; -} - -void GnapEngine::gnapWalkStep() { - for (int i = 1; i < _gridMaxX; ++i) { - Common::Point checkPt = Common::Point(_gnap->_pos.x + i, _gnap->_pos.y); - if (!isPointBlocked(checkPt)) { - gnapWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_gnap->_pos.x - i, _gnap->_pos.y); - if (!isPointBlocked(checkPt)) { - gnapWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_gnap->_pos.x, _gnap->_pos.y + 1); - if (!isPointBlocked(checkPt)) { - gnapWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_gnap->_pos.x, _gnap->_pos.y - 1); - if (!isPointBlocked(checkPt)) { - gnapWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_gnap->_pos.x + 1, _gnap->_pos.y + 1); - if (!isPointBlocked(checkPt)) { - gnapWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_gnap->_pos.x - 1, _gnap->_pos.y + 1); - if (!isPointBlocked(checkPt)) { - gnapWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_gnap->_pos.x + 1, _gnap->_pos.y - 1); - if (!isPointBlocked(checkPt)) { - gnapWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_gnap->_pos.x - 1, _gnap->_pos.y - 1); - if (!isPointBlocked(checkPt)) { - gnapWalkTo(checkPt, -1, -1, 1); - break; - } - } -} - -//////////////////////////////////////////////////////////////////////////////// - -bool GnapEngine::platFindPath4(int gridX, int gridY) { +bool PlayerGnap::findPath4(int gridX, int gridY) { bool result = false; - _platWalkNodesCount = 0; - _platWalkDirXIncr = 0; - _platWalkDirYIncr = 0; - _platWalkDeltaX = ABS(_platWalkDestX - gridX); - _platWalkDeltaY = ABS(_platWalkDestY - gridY); + _walkNodesCount = 0; + _walkDirXIncr = 0; + _walkDirYIncr = 0; + _walkDeltaX = ABS(_walkDestX - gridX); + _walkDeltaY = ABS(_walkDestY - gridY); - if (_platWalkDeltaX) - _platWalkDirX = (_platWalkDestX - gridX) / _platWalkDeltaX; + if (_walkDeltaX) + _walkDirX = (_walkDestX - gridX) / _walkDeltaX; else - _platWalkDirX = 0; + _walkDirX = 0; - if (_platWalkDeltaY) - _platWalkDirY = (_platWalkDestY - gridY) / _platWalkDeltaY; + if (_walkDeltaY) + _walkDirY = (_walkDestY - gridY) / _walkDeltaY; else - _platWalkDirY = 0; - - while (_platWalkDirXIncr < _platWalkDeltaX && _platWalkDirYIncr < _platWalkDeltaY) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = gridX + _platWalkDirX * _platWalkDirXIncr; - _platWalkNodes[_platWalkNodesCount]._gridY1 = gridY + _platWalkDirY * _platWalkDirYIncr; - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirXIncr; - ++_platWalkDirYIncr; - } else if (_platWalkDeltaY - _platWalkDirYIncr > _platWalkDeltaX - _platWalkDirXIncr) { - if (!isPointBlocked(_platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; - } else if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; + _walkDirY = 0; + + while (_walkDirXIncr < _walkDeltaX && _walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirXIncr; + ++_walkDirYIncr; + } else if (_walkDeltaY - _walkDirYIncr > _walkDeltaX - _walkDirXIncr) { + if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + } else if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; } else { - _platWalkDeltaX = _platWalkDirXIncr; - _platWalkDeltaY = _platWalkDirYIncr; - --_platWalkNodesCount; + _walkDeltaX = _walkDirXIncr; + _walkDeltaY = _walkDirYIncr; + --_walkNodesCount; } } else { - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; - } else if (!isPointBlocked(_platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + } else if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; } else { - _platWalkDeltaX = _platWalkDirXIncr; - _platWalkDeltaY = _platWalkDirYIncr; - --_platWalkNodesCount; + _walkDeltaX = _walkDirXIncr; + _walkDeltaY = _walkDirYIncr; + --_walkNodesCount; } } - ++_platWalkNodesCount; + ++_walkNodesCount; } - while (_platWalkDirXIncr < _platWalkDeltaX) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = gridX + _platWalkDirX * _platWalkDirXIncr; - _platWalkNodes[_platWalkNodesCount]._gridY1 = _platWalkDestY; - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDestY)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; - ++_platWalkNodesCount; + while (_walkDirXIncr < _walkDeltaX) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = _walkDestY; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDestY)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + ++_walkNodesCount; } else { - _platWalkDeltaX = _platWalkDirXIncr; + _walkDeltaX = _walkDirXIncr; } } - while (_platWalkDirYIncr < _platWalkDeltaY) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = _platWalkDestX; - _platWalkNodes[_platWalkNodesCount]._gridY1 = gridY + _platWalkDirY * _platWalkDirYIncr; - if (!isPointBlocked(_platWalkDestX, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; - ++_platWalkNodesCount; + while (_walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = _walkDestX; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDestX, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + ++_walkNodesCount; } else { - _platWalkDeltaY = _platWalkDirYIncr; + _walkDeltaY = _walkDirYIncr; } } - if (gridX + _platWalkDirX * _platWalkDirXIncr != _platWalkDestX || gridY + _platWalkDirY * _platWalkDirYIncr != _platWalkDestY) { - _platWalkDestX = gridX + _platWalkDirX * _platWalkDirXIncr; - _platWalkDestY = gridY + _platWalkDirY * _platWalkDirYIncr; + if (gridX + _walkDirX * _walkDirXIncr != _walkDestX || gridY + _walkDirY * _walkDirYIncr != _walkDestY) { + _walkDestX = gridX + _walkDirX * _walkDirXIncr; + _walkDestY = gridY + _walkDirY * _walkDirYIncr; result = false; } else { result = true; @@ -856,77 +532,79 @@ bool GnapEngine::platFindPath4(int gridX, int gridY) { return result; } -bool GnapEngine::platFindPath1(int gridX, int gridY, int index) { - _platWalkNodesCount = index; - _platWalkDirXIncr = 0; - _platWalkDirYIncr = 0; - _platWalkDeltaX = ABS(_platWalkDestX - gridX); - _platWalkDeltaY = ABS(_platWalkDestY - gridY); +/******************************************************************************/ - if (_platWalkDeltaX) - _platWalkDirX = (_platWalkDestX - gridX) / _platWalkDeltaX; +bool PlayerPlat::findPath1(int gridX, int gridY, int index) { + _walkNodesCount = index; + _walkDirXIncr = 0; + _walkDirYIncr = 0; + _walkDeltaX = ABS(_walkDestX - gridX); + _walkDeltaY = ABS(_walkDestY - gridY); + + if (_walkDeltaX) + _walkDirX = (_walkDestX - gridX) / _walkDeltaX; else - _platWalkDirX = 0; + _walkDirX = 0; - if (_platWalkDeltaY) - _platWalkDirY = (_platWalkDestY - gridY) / _platWalkDeltaY; + if (_walkDeltaY) + _walkDirY = (_walkDestY - gridY) / _walkDeltaY; else - _platWalkDirY = 0; - - while (_platWalkDirXIncr < _platWalkDeltaX && _platWalkDirYIncr < _platWalkDeltaY) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = gridX + _platWalkDirX * _platWalkDirXIncr; - _platWalkNodes[_platWalkNodesCount]._gridY1 = gridY + _platWalkDirY * _platWalkDirYIncr; - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirXIncr; - ++_platWalkDirYIncr; - } else if (_platWalkDeltaY - _platWalkDirYIncr > _platWalkDeltaX - _platWalkDirXIncr) { - if (!isPointBlocked(_platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; - } else if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; + _walkDirY = 0; + + while (_walkDirXIncr < _walkDeltaX && _walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirXIncr; + ++_walkDirYIncr; + } else if (_walkDeltaY - _walkDirYIncr > _walkDeltaX - _walkDirXIncr) { + if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + } else if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; } else return false; } else { - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; - } else if (!isPointBlocked(_platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + } else if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; } else return false; } - ++_platWalkNodesCount; + ++_walkNodesCount; } - while (_platWalkDirXIncr < _platWalkDeltaX) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = gridX + _platWalkDirX * _platWalkDirXIncr; - _platWalkNodes[_platWalkNodesCount]._gridY1 = _platWalkDestY; - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDestY)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; - ++_platWalkNodesCount; + while (_walkDirXIncr < _walkDeltaX) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = _walkDestY; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDestY)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + ++_walkNodesCount; } else return false; } - while (_platWalkDirYIncr < _platWalkDeltaY) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = _platWalkDestX; - _platWalkNodes[_platWalkNodesCount]._gridY1 = gridY + _platWalkDirY * _platWalkDirYIncr; - if (!isPointBlocked(_platWalkDestX, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; - ++_platWalkNodesCount; + while (_walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = _walkDestX; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDestX, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + ++_walkNodesCount; } else return false; } @@ -934,101 +612,101 @@ bool GnapEngine::platFindPath1(int gridX, int gridY, int index) { return true; } -bool GnapEngine::platFindPath2(int gridX, int gridY, int index) { - _platWalkNodesCount = index; - _platWalkDirXIncr = 0; - _platWalkDirYIncr = 0; - _platWalkDeltaX = ABS(_platWalkDestX - gridX); - _platWalkDeltaY = ABS(_platWalkDestY - gridY); +bool PlayerPlat::findPath2(int gridX, int gridY, int index) { + _walkNodesCount = index; + _walkDirXIncr = 0; + _walkDirYIncr = 0; + _walkDeltaX = ABS(_walkDestX - gridX); + _walkDeltaY = ABS(_walkDestY - gridY); - if (_platWalkDeltaX) - _platWalkDirX = (_platWalkDestX - gridX) / _platWalkDeltaX; + if (_walkDeltaX) + _walkDirX = (_walkDestX - gridX) / _walkDeltaX; else - _platWalkDirX = 0; + _walkDirX = 0; - if (_platWalkDeltaY) - _platWalkDirY = (_platWalkDestY - gridY) / _platWalkDeltaY; + if (_walkDeltaY) + _walkDirY = (_walkDestY - gridY) / _walkDeltaY; else - _platWalkDirY = 0; - - while (_platWalkDeltaY < _platWalkDeltaX - _platWalkDirXIncr) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = gridX + _platWalkDirX * _platWalkDirXIncr; - _platWalkNodes[_platWalkNodesCount]._gridY1 = gridY; - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, gridY)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; - ++_platWalkNodesCount; + _walkDirY = 0; + + while (_walkDeltaY < _walkDeltaX - _walkDirXIncr) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = gridY; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, gridY)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + ++_walkNodesCount; } else return false; } - while (_platWalkDeltaX < _platWalkDeltaY - _platWalkDirYIncr) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = gridX; - _platWalkNodes[_platWalkNodesCount]._gridY1 = gridY + _platWalkDirY * _platWalkDirYIncr; - if (!isPointBlocked(gridX, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; - ++_platWalkNodesCount; + while (_walkDeltaX < _walkDeltaY - _walkDirYIncr) { + _walkNodes[_walkNodesCount]._gridX1 = gridX; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(gridX, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + ++_walkNodesCount; } else return false; } - while (_platWalkDirXIncr < _platWalkDeltaX && _platWalkDirYIncr < _platWalkDeltaY) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = gridX + _platWalkDirX * _platWalkDirXIncr; - _platWalkNodes[_platWalkNodesCount]._gridY1 = gridY + _platWalkDirY * _platWalkDirYIncr; - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirXIncr; - ++_platWalkDirYIncr; - } else if (_platWalkDeltaY - _platWalkDirYIncr > _platWalkDeltaX - _platWalkDirXIncr) { - if (!isPointBlocked(_platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; - } else if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; + while (_walkDirXIncr < _walkDeltaX && _walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirXIncr; + ++_walkDirYIncr; + } else if (_walkDeltaY - _walkDirYIncr > _walkDeltaX - _walkDirXIncr) { + if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + } else if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; } else return false; } else { - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; - } else if (!isPointBlocked(_platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + } else if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; } else return false; } - ++_platWalkNodesCount; + ++_walkNodesCount; } - while (_platWalkDirXIncr < _platWalkDeltaX) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = gridX + _platWalkDirX * _platWalkDirXIncr; - _platWalkNodes[_platWalkNodesCount]._gridY1 = _platWalkDestY; - if (!isPointBlocked(_platWalkDirX + _platWalkNodes[_platWalkNodesCount]._gridX1, _platWalkDestY)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = _platWalkDirX; - _platWalkNodes[_platWalkNodesCount]._deltaY = 0; - ++_platWalkDirXIncr; - ++_platWalkNodesCount; + while (_walkDirXIncr < _walkDeltaX) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = _walkDestY; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDestY)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + ++_walkNodesCount; } else return false; } - while (_platWalkDirYIncr < _platWalkDeltaY) { - _platWalkNodes[_platWalkNodesCount]._gridX1 = _platWalkDestX; - _platWalkNodes[_platWalkNodesCount]._gridY1 = gridY + _platWalkDirY * _platWalkDirYIncr; - if (!isPointBlocked(_platWalkDestX, _platWalkDirY + _platWalkNodes[_platWalkNodesCount]._gridY1)) { - _platWalkNodes[_platWalkNodesCount]._deltaX = 0; - _platWalkNodes[_platWalkNodesCount]._deltaY = _platWalkDirY; - ++_platWalkDirYIncr; - ++_platWalkNodesCount; + while (_walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = _walkDestX; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDestX, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + ++_walkNodesCount; } else return false; } @@ -1036,167 +714,167 @@ bool GnapEngine::platFindPath2(int gridX, int gridY, int index) { return true; } -bool GnapEngine::platFindPath3(int gridX, int gridY) { +bool PlayerPlat::findPath3(int gridX, int gridY) { int gridIncr = 1; bool done = false; - while (!done && gridIncr < _gridMaxX) { - if (!isPointBlocked(_plat->_pos.x + gridIncr, _plat->_pos.y) && platFindPath1(_plat->_pos.x + gridIncr, _plat->_pos.y, gridIncr)) { + while (!done && gridIncr < _vm->_gridMaxX) { + if (!_vm->isPointBlocked(_pos.x + gridIncr, _pos.y) && findPath1(_pos.x + gridIncr, _pos.y, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x + i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y; - _platWalkNodes[i]._deltaX = 1; - _platWalkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = _pos.x + i; + _walkNodes[i]._gridY1 = _pos.y; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = 0; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x - gridIncr, _plat->_pos.y) && platFindPath1(_plat->_pos.x - gridIncr, _plat->_pos.y, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x - gridIncr, _pos.y) && findPath1(_pos.x - gridIncr, _pos.y, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x - i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y; - _platWalkNodes[i]._deltaX = -1; - _platWalkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = _pos.x - i; + _walkNodes[i]._gridY1 = _pos.y; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = 0; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x, _plat->_pos.y + gridIncr) && platFindPath1(_plat->_pos.x, _plat->_pos.y + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x, _pos.y + gridIncr) && findPath1(_pos.x, _pos.y + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x; - _platWalkNodes[i]._gridY1 = _plat->_pos.y + i; - _platWalkNodes[i]._deltaX = 0; - _platWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = _pos.x; + _walkNodes[i]._gridY1 = _pos.y + i; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x, _plat->_pos.y - gridIncr) && platFindPath1(_plat->_pos.x, _plat->_pos.y - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x, _pos.y - gridIncr) && findPath1(_pos.x, _pos.y - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x; - _platWalkNodes[i]._gridY1 = _plat->_pos.y - i; - _platWalkNodes[i]._deltaX = 0; - _platWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = _pos.x; + _walkNodes[i]._gridY1 = _pos.y - i; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x + gridIncr, _plat->_pos.y + gridIncr) && platFindPath1(_plat->_pos.x + gridIncr, _plat->_pos.y + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x + gridIncr, _pos.y + gridIncr) && findPath1(_pos.x + gridIncr, _pos.y + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x + i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y + i; - _platWalkNodes[i]._deltaX = 1; - _platWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = _pos.x + i; + _walkNodes[i]._gridY1 = _pos.y + i; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x - gridIncr, _plat->_pos.y + gridIncr) && platFindPath1(_plat->_pos.x - gridIncr, _plat->_pos.y + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x - gridIncr, _pos.y + gridIncr) && findPath1(_pos.x - gridIncr, _pos.y + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x - i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y + i; - _platWalkNodes[i]._deltaX = -1; - _platWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = _pos.x - i; + _walkNodes[i]._gridY1 = _pos.y + i; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x + gridIncr, _plat->_pos.y - gridIncr) && platFindPath1(_plat->_pos.x + gridIncr, _plat->_pos.y - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x + gridIncr, _pos.y - gridIncr) && findPath1(_pos.x + gridIncr, _pos.y - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x + i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y - i; - _platWalkNodes[i]._deltaX = 1; - _platWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = _pos.x + i; + _walkNodes[i]._gridY1 = _pos.y - i; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x - gridIncr, _plat->_pos.y - gridIncr) && platFindPath1(_plat->_pos.x - gridIncr, _plat->_pos.y - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x - gridIncr, _pos.y - gridIncr) && findPath1(_pos.x - gridIncr, _pos.y - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x - i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y - i; - _platWalkNodes[i]._deltaX = -1; - _platWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = _pos.x - i; + _walkNodes[i]._gridY1 = _pos.y - i; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x + gridIncr, _plat->_pos.y) && platFindPath2(_plat->_pos.x + gridIncr, _plat->_pos.y, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x + gridIncr, _pos.y) && findPath2(_pos.x + gridIncr, _pos.y, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x + i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y; - _platWalkNodes[i]._deltaX = 1; - _platWalkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = _pos.x + i; + _walkNodes[i]._gridY1 = _pos.y; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = 0; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x - gridIncr, _plat->_pos.y) && platFindPath2(_plat->_pos.x - gridIncr, _plat->_pos.y, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x - gridIncr, _pos.y) && findPath2(_pos.x - gridIncr, _pos.y, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x - i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y; - _platWalkNodes[i]._deltaX = -1; - _platWalkNodes[i]._deltaY = 0; + _walkNodes[i]._gridX1 = _pos.x - i; + _walkNodes[i]._gridY1 = _pos.y; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = 0; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x, _plat->_pos.y + gridIncr) && platFindPath2(_plat->_pos.x, _plat->_pos.y + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x, _pos.y + gridIncr) && findPath2(_pos.x, _pos.y + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x; - _platWalkNodes[i]._gridY1 = _plat->_pos.y + i; - _platWalkNodes[i]._deltaX = 0; - _platWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = _pos.x; + _walkNodes[i]._gridY1 = _pos.y + i; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x, _plat->_pos.y - gridIncr) && platFindPath2(_plat->_pos.x, _plat->_pos.y - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x, _pos.y - gridIncr) && findPath2(_pos.x, _pos.y - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x; - _platWalkNodes[i]._gridY1 = _plat->_pos.y - i; - _platWalkNodes[i]._deltaX = 0; - _platWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = _pos.x; + _walkNodes[i]._gridY1 = _pos.y - i; + _walkNodes[i]._deltaX = 0; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x + gridIncr, _plat->_pos.y + gridIncr) && platFindPath2(_plat->_pos.x + gridIncr, _plat->_pos.y + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x + gridIncr, _pos.y + gridIncr) && findPath2(_pos.x + gridIncr, _pos.y + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x + i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y + i; - _platWalkNodes[i]._deltaX = 1; - _platWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = _pos.x + i; + _walkNodes[i]._gridY1 = _pos.y + i; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x - gridIncr, _plat->_pos.y + gridIncr) && platFindPath2(_plat->_pos.x - gridIncr, _plat->_pos.y + gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x - gridIncr, _pos.y + gridIncr) && findPath2(_pos.x - gridIncr, _pos.y + gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x - i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y + i; - _platWalkNodes[i]._deltaX = -1; - _platWalkNodes[i]._deltaY = 1; + _walkNodes[i]._gridX1 = _pos.x - i; + _walkNodes[i]._gridY1 = _pos.y + i; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = 1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x + gridIncr, _plat->_pos.y - gridIncr) && platFindPath2(_plat->_pos.x + gridIncr, _plat->_pos.y - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x + gridIncr, _pos.y - gridIncr) && findPath2(_pos.x + gridIncr, _pos.y - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x + i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y - i; - _platWalkNodes[i]._deltaX = 1; - _platWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = _pos.x + i; + _walkNodes[i]._gridY1 = _pos.y - i; + _walkNodes[i]._deltaX = 1; + _walkNodes[i]._deltaY = -1; } done = true; break; } - if (!isPointBlocked(_plat->_pos.x - gridIncr, _plat->_pos.y - gridIncr) && platFindPath2(_plat->_pos.x - gridIncr, _plat->_pos.y - gridIncr, gridIncr)) { + if (!_vm->isPointBlocked(_pos.x - gridIncr, _pos.y - gridIncr) && findPath2(_pos.x - gridIncr, _pos.y - gridIncr, gridIncr)) { for (int i = 0; i < gridIncr; ++i) { - _platWalkNodes[i]._gridX1 = _plat->_pos.x - i; - _platWalkNodes[i]._gridY1 = _plat->_pos.y - i; - _platWalkNodes[i]._deltaX = -1; - _platWalkNodes[i]._deltaY = -1; + _walkNodes[i]._gridX1 = _pos.x - i; + _walkNodes[i]._gridY1 = _pos.y - i; + _walkNodes[i]._deltaX = -1; + _walkNodes[i]._deltaY = -1; } done = true; break; @@ -1207,215 +885,100 @@ bool GnapEngine::platFindPath3(int gridX, int gridY) { return done; } -bool GnapEngine::platypusWalkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags) { - int datNum = flags & 3; - bool done = false; - - _timers[1] = 60; - - int gridX = gridPos.x; - if (gridX < 0) - gridX = (_leftClickMouseX - _gridMinX + 37) / 75; - - int gridY = gridPos.y; - if (gridY < 0) - gridY = (_leftClickMouseY - _gridMinY + 24) / 48; - - _platWalkDestX = CLIP(gridX, 0, _gridMaxX - 1); - _platWalkDestY = CLIP(gridY, 0, _gridMaxY - 1); - - if (animationIndex >= 0 && _gnap->_pos == Common::Point(_platWalkDestX, _platWalkDestY)) - gnapWalkStep(); - - if (platFindPath1(_plat->_pos.x, _plat->_pos.y, 0)) - done = true; - - if (!done && platFindPath2(_plat->_pos.x, _plat->_pos.y, 0)) - done = true; - - if (!done && platFindPath3(_plat->_pos.x, _plat->_pos.y)) - done = true; +bool PlayerPlat::findPath4(int gridX, int gridY) { + bool result = false; - if (!done && platFindPath4(_plat->_pos.x, _plat->_pos.y)) - done = true; + _walkNodesCount = 0; + _walkDirXIncr = 0; + _walkDirYIncr = 0; + _walkDeltaX = ABS(_walkDestX - gridX); + _walkDeltaY = ABS(_walkDestY - gridY); - int platSequenceId = _plat->_sequenceId; - int platId = _plat->_id; - int platSequenceDatNum = _plat->_sequenceDatNum; + if (_walkDeltaX) + _walkDirX = (_walkDestX - gridX) / _walkDeltaX; + else + _walkDirX = 0; - for (int index = 0; index < _platWalkNodesCount; ++index) { - _platWalkNodes[index]._id = index + 20 * _platWalkNodes[index]._gridY1; - if (_platWalkNodes[index]._deltaX == 1 && _platWalkNodes[index]._deltaY == 0) { - if (index % 2) { - _gameSys->insertSequence(makeRid(datNum, 0x7CD), _platWalkNodes[index]._id, - makeRid(platSequenceDatNum, platSequenceId), platId, - kSeqScale | kSeqSyncWait, 0, 75 * _platWalkNodes[index]._gridX1 - _plat->_gridX, 48 * _platWalkNodes[index]._gridY1 - _plat->_gridY); - _platWalkNodes[index]._sequenceId = 0x7CD; - platSequenceId = 0x7CD; + if (_walkDeltaY) + _walkDirY = (_walkDestY - gridY) / _walkDeltaY; + else + _walkDirY = 0; + + while (_walkDirXIncr < _walkDeltaX && _walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirXIncr; + ++_walkDirYIncr; + } else if (_walkDeltaY - _walkDirYIncr > _walkDeltaX - _walkDirXIncr) { + if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + } else if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; } else { - _gameSys->insertSequence(makeRid(datNum, 0x7CE), _platWalkNodes[index]._id, - makeRid(platSequenceDatNum, platSequenceId), platId, - kSeqScale | kSeqSyncWait, 0, 75 * _platWalkNodes[index]._gridX1 - _plat->_gridX, 48 * _platWalkNodes[index]._gridY1 - _plat->_gridY); - _platWalkNodes[index]._sequenceId = 0x7CE; - platSequenceId = 0x7CE; + _walkDeltaX = _walkDirXIncr; + _walkDeltaY = _walkDirYIncr; + --_walkNodesCount; } - } else if (_platWalkNodes[index]._deltaX == -1 && _platWalkNodes[index]._deltaY == 0) { - if (index % 2) { - _gameSys->insertSequence(makeRid(datNum, 0x7CF), _platWalkNodes[index]._id, - makeRid(platSequenceDatNum, platSequenceId), platId, - kSeqScale | kSeqSyncWait, 0, 75 * _platWalkNodes[index]._gridX1 - _plat->_gridX, 48 * _platWalkNodes[index]._gridY1 - _plat->_gridY); - _platWalkNodes[index]._sequenceId = 0x7CF; - platSequenceId = 0x7CF; + } else { + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + } else if (!_vm->isPointBlocked(_walkNodes[_walkNodesCount]._gridX1, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; } else { - _gameSys->insertSequence(makeRid(datNum, 0x7D0), _platWalkNodes[index]._id, - makeRid(platSequenceDatNum, platSequenceId), platId, - kSeqScale | kSeqSyncWait, 0, 75 * _platWalkNodes[index]._gridX1 - _plat->_gridX, 48 * _platWalkNodes[index]._gridY1 - _plat->_gridY); - _platWalkNodes[index]._sequenceId = 0x7D0; - platSequenceId = 0x7D0; + _walkDeltaX = _walkDirXIncr; + _walkDeltaY = _walkDirYIncr; + --_walkNodesCount; } - } else { - if (_platWalkNodes[index]._deltaY == -1) - _platWalkNodes[index]._id -= 10; - else - _platWalkNodes[index]._id += 10; - int newSequenceId = _plat->getWalkSequenceId(_platWalkNodes[index]._deltaX, _platWalkNodes[index]._deltaY); - _gameSys->insertSequence(makeRid(datNum, newSequenceId), _platWalkNodes[index]._id, - makeRid(platSequenceDatNum, platSequenceId), platId, - kSeqScale | kSeqSyncWait, 0, 75 * _platWalkNodes[index]._gridX1 - _plat->_gridX, 48 * _platWalkNodes[index]._gridY1 - _plat->_gridY); - _platWalkNodes[index]._sequenceId = newSequenceId; - platSequenceId = newSequenceId; } - platId = _platWalkNodes[index]._id; - platSequenceDatNum = datNum; + ++_walkNodesCount; } - if (flags & 8) { - if (_platWalkNodesCount > 0) { - _plat->_sequenceId = platSequenceId; - _plat->_id = platId; - _plat->_sequenceDatNum = datNum; - // CHECKME Not sure if this is correct... - if (_platWalkNodes[_platWalkNodesCount - 1]._deltaX > 0) - _plat->_idleFacing = kDirNone; - else if (_platWalkNodes[_platWalkNodesCount - 1]._deltaX < 0) - _plat->_idleFacing = kDirUnk4; - else if (_platWalkNodes[_platWalkNodesCount - 1]._gridX1 % 2) - _plat->_idleFacing = kDirUnk4; - else - _plat->_idleFacing = kDirNone; - if (animationIndex >= 0) - _gameSys->setAnimation(makeRid(_plat->_sequenceDatNum, _plat->_sequenceId), _plat->_id, animationIndex); - } else if (animationIndex >= 0) { - _gameSys->setAnimation(0x107D3, 1, animationIndex); - _gameSys->insertSequence(0x107D3, 1, 0, 0, kSeqNone, 0, 0, 0); - } - } else { - if (sequenceId >= 0 && sequenceId != -1) { - _plat->_sequenceId = ridToEntryIndex(sequenceId); - _plat->_sequenceDatNum = ridToDatIndex(sequenceId); - if (_plat->_sequenceId == 0x7C2) { - _plat->_idleFacing = kDirNone; - } else if (_plat->_sequenceId == 0x7D2) { - _plat->_idleFacing = kDirUnk4; - } + while (_walkDirXIncr < _walkDeltaX) { + _walkNodes[_walkNodesCount]._gridX1 = gridX + _walkDirX * _walkDirXIncr; + _walkNodes[_walkNodesCount]._gridY1 = _walkDestY; + if (!_vm->isPointBlocked(_walkDirX + _walkNodes[_walkNodesCount]._gridX1, _walkDestY)) { + _walkNodes[_walkNodesCount]._deltaX = _walkDirX; + _walkNodes[_walkNodesCount]._deltaY = 0; + ++_walkDirXIncr; + ++_walkNodesCount; } else { - if (_platWalkNodesCount > 0) { - if (_platWalkNodes[_platWalkNodesCount - 1]._deltaX > 0) { - _plat->_sequenceId = 0x7C2; - _plat->_idleFacing = kDirNone; - } else if (_platWalkNodes[_platWalkNodesCount - 1]._deltaX < 0) { - _plat->_sequenceId = 0x7D2; - _plat->_idleFacing = kDirUnk4; - } else if (_platWalkNodes[0]._deltaX > 0) { - _plat->_sequenceId = 0x7C2; - _plat->_idleFacing = kDirNone; - } else if (_platWalkNodes[0]._deltaX < 0) { - _plat->_sequenceId = 0x7D2; - _plat->_idleFacing = kDirUnk4; - } else { - _plat->_sequenceId = 0x7D2; - _plat->_idleFacing = kDirUnk4; - } - } else if (_plat->_idleFacing != kDirNone) { - _plat->_sequenceId = 0x7D2; - } else { - _plat->_sequenceId = 0x7C2; - } - _plat->_sequenceDatNum = datNum; + _walkDeltaX = _walkDirXIncr; } + } - if (animationIndex < 0) { - _plat->_id = 20 * _platWalkDestY; + while (_walkDirYIncr < _walkDeltaY) { + _walkNodes[_walkNodesCount]._gridX1 = _walkDestX; + _walkNodes[_walkNodesCount]._gridY1 = gridY + _walkDirY * _walkDirYIncr; + if (!_vm->isPointBlocked(_walkDestX, _walkDirY + _walkNodes[_walkNodesCount]._gridY1)) { + _walkNodes[_walkNodesCount]._deltaX = 0; + _walkNodes[_walkNodesCount]._deltaY = _walkDirY; + ++_walkDirYIncr; + ++_walkNodesCount; } else { - _plat->_id = animationIndex + 20 * _platWalkDestY; - _gameSys->setAnimation(makeRid(_plat->_sequenceDatNum, _plat->_sequenceId), animationIndex + 20 * _platWalkDestY, animationIndex); + _walkDeltaY = _walkDirYIncr; } - - if (flags & 4) - _gameSys->insertSequence(makeRid(_plat->_sequenceDatNum, _plat->_sequenceId), _plat->_id, - makeRid(platSequenceDatNum, platSequenceId), platId, - 9, 0, 0, 0); - else - _gameSys->insertSequence(makeRid(_plat->_sequenceDatNum, _plat->_sequenceId), _plat->_id, - makeRid(platSequenceDatNum, platSequenceId), platId, - 9, 0, 75 * _platWalkDestX - _plat->_gridX, 48 * _platWalkDestY - _plat->_gridY); } - _plat->_pos = Common::Point(_platWalkDestX, _platWalkDestY); - - return done; -} - -void GnapEngine::platypusWalkStep() { - for (int i = 1; i < _gridMaxX; ++i) { - Common::Point checkPt = Common::Point(_plat->_pos.x + i, _plat->_pos.y); - if (!isPointBlocked(checkPt)) { - platypusWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_plat->_pos.x - i, _plat->_pos.y); - if (!isPointBlocked(checkPt)) { - platypusWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_plat->_pos.x, _plat->_pos.y + 1); - if (!isPointBlocked(checkPt)) { - platypusWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_plat->_pos.x, _plat->_pos.y - 1); - if (!isPointBlocked(checkPt)) { - platypusWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_plat->_pos.x + 1, _plat->_pos.y + 1); - if (!isPointBlocked(checkPt)) { - platypusWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_plat->_pos.x - 1, _plat->_pos.y + 1); - if (!isPointBlocked(checkPt)) { - platypusWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_plat->_pos.x + 1, _plat->_pos.y - 1); - if (!isPointBlocked(checkPt)) { - platypusWalkTo(checkPt, -1, -1, 1); - break; - } - - checkPt = Common::Point(_plat->_pos.x - 1, _plat->_pos.y - 1); - if (!isPointBlocked(checkPt)) { - platypusWalkTo(checkPt, -1, -1, 1); - break; - } + if (gridX + _walkDirX * _walkDirXIncr != _walkDestX || gridY + _walkDirY * _walkDirYIncr != _walkDestY) { + _walkDestX = gridX + _walkDirX * _walkDirXIncr; + _walkDestY = gridY + _walkDirY * _walkDirYIncr; + result = false; + } else { + result = true; } + + return result; } void GnapEngine::platypusMakeRoom() { @@ -1425,7 +988,7 @@ void GnapEngine::platypusMakeRoom() { rndGridX = getRandom(_gridMaxX); } while (ABS(rndGridX - _plat->_pos.x) > 4 || ABS(rndGridY - _plat->_pos.y) > 3 || isPointBlocked(rndGridX, rndGridY)); - platypusWalkTo(Common::Point(rndGridX, rndGridY), -1, -1, 1); + _plat->walkTo(Common::Point(rndGridX, rndGridY), -1, -1, 1); } } // End of namespace Gnap diff --git a/engines/gnap/scenes/group0.cpp b/engines/gnap/scenes/group0.cpp index 8eeb4bf4d4..c16a1e7f45 100644 --- a/engines/gnap/scenes/group0.cpp +++ b/engines/gnap/scenes/group0.cpp @@ -95,8 +95,8 @@ void Scene01::run() { _vm->_plat->initPos(12, 6, kDirUnk4); _vm->endSceneInit(); if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(Common::Point(9, 6), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(8, 6), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(9, 6), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(8, 6), -1, 0x107B9, 1); } else { _vm->_gnap->initPos(1, 6, kDirBottomRight); if (_vm->isFlag(kGFPlatypus)) @@ -158,7 +158,7 @@ void Scene01::run() { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1)) _vm->_gnap->_actionStatus = kAS01LookSpaceship; break; case GRAB_CURSOR: @@ -181,7 +181,7 @@ void Scene01::run() { _vm->playGnapScratchingHead(3, 3); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 3) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 3) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS01TakeMud; break; case TALK_CURSOR: @@ -201,17 +201,17 @@ void Scene01::run() { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 7, 2) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 7, 2) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS01LookPigs; break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 7, 2) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 7, 2) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS01UsePigs; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 7, 2) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 7, 2) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS01LookPigs; break; case PLAT_CURSOR: @@ -225,10 +225,10 @@ void Scene01::run() { case kHS01ExitTruck: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[1], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[1], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS01LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[1] + Common::Point(0, 1), -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[1] + Common::Point(0, 1), -1, 0x107CD, 1); _vm->_newSceneNum = 2; } break; @@ -242,12 +242,12 @@ void Scene01::run() { case kHS01WalkArea7: case kHS01WalkArea8: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -417,17 +417,17 @@ void Scene02::run() { _vm->_plat->initPos(12, 6, kDirUnk4); _vm->endSceneInit(); if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(Common::Point(9, 6), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(8, 6), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 6), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(8, 6), -1, 0x107BA, 1); break; case 4: _vm->_gnap->initPos(_vm->_hotspotsWalkPos[6].x, _vm->_hotspotsWalkPos[6].y, kDirBottomLeft); if (_vm->isFlag(kGFPlatypus)) _vm->_plat->initPos(_vm->_hotspotsWalkPos[6].x + 1, _vm->_hotspotsWalkPos[6].y, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(7, 6), 0, 0x107B9, 1); + _vm->_gnap->walkTo(Common::Point(7, 6), 0, 0x107B9, 1); if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(Common::Point(8, 6), 1, 0x107C2, 1); + _vm->_plat->walkTo(Common::Point(8, 6), 1, 0x107C2, 1); updateHotspots(); gameSys.waitForUpdate(); break; @@ -449,8 +449,8 @@ void Scene02::run() { _vm->_plat->initPos(-1, 7, kDirNone); _vm->endSceneInit(); if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(Common::Point(2, 7), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(2, 7), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); break; } @@ -505,7 +505,7 @@ void Scene02::run() { if (_vm->_grabCursorSpriteIndex == kItemTwig) { _vm->_gnap->_idleFacing = kDirUpRight; Common::Point destPos = Common::Point(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y + 1); - _vm->gnapWalkTo(destPos, 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(destPos, 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS02UseTwigWithChicken; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[1].x, _vm->_hotspotsWalkPos[1].y + 1, 9, 8); @@ -516,14 +516,14 @@ void Scene02::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirBottomRight; - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[1], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[1], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1)) _vm->_gnap->_actionStatus = kAS02GrabChicken; else _vm->_gnap->_actionStatus = -1; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[1], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[1], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS02TalkChicken; break; case PLAT_CURSOR: @@ -538,7 +538,7 @@ void Scene02::run() { case kHS02Truck2: if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemKeys) { - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 2) | 0x10000, 1)) { + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 2) | 0x10000, 1)) { _vm->setGrabCursorSprite(-1); _vm->invRemove(kItemKeys); if (_vm->isFlag(kGFTruckFilledWithGas)) @@ -548,7 +548,7 @@ void Scene02::run() { } } else if (_vm->_grabCursorSpriteIndex == kItemGas) { _vm->_hotspots[kHS02WalkArea4]._flags |= SF_WALKABLE; - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 2) | 0x10000, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 2) | 0x10000, 1)) _vm->_gnap->_actionStatus = kAS02UseGasWithTruck; _vm->_hotspots[kHS02WalkArea4]._flags &= ~SF_WALKABLE; } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -560,7 +560,7 @@ void Scene02::run() { break; case GRAB_CURSOR: if (_vm->isFlag(kGFTruckKeysUsed)) { - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 2) | 0x10000, 1)) { + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 2) | 0x10000, 1)) { if (_vm->isFlag(kGFTruckFilledWithGas)) _vm->_gnap->_actionStatus = kAS02UseTruckGas; else @@ -568,7 +568,7 @@ void Scene02::run() { } } else { _vm->_gnap->_idleFacing = kDirUnk4; - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 2) | 0x10000, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 2, 2) | 0x10000, 1)) _vm->_gnap->_actionStatus = kAS02UseTruckNoKeys; } break; @@ -592,7 +592,7 @@ void Scene02::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS02GrabTruckGrill; break; case TALK_CURSOR: @@ -607,10 +607,10 @@ void Scene02::run() { case kHS02ExitHouse: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[6], 0, 0x107AD, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[6], 0, 0x107AD, 1); _vm->_gnap->_actionStatus = kAS02LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[6] + Common::Point(1, 0), -1, 0x107C1, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[6] + Common::Point(1, 0), -1, 0x107C1, 1); updateHotspots(); _vm->_newSceneNum = 4; } @@ -619,10 +619,10 @@ void Scene02::run() { case kHS02ExitBarn: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[7], 0, 0x107AD, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[7], 0, 0x107AD, 1); _vm->_gnap->_actionStatus = kAS02LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[7] + Common::Point(1, 0), -1, 0x107C1, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[7] + Common::Point(1, 0), -1, 0x107C1, 1); updateHotspots(); _vm->_newSceneNum = 5; } @@ -631,10 +631,10 @@ void Scene02::run() { case kHS02ExitCreek: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[8], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[8], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS02LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[8], -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[8], -1, 0x107CD, 1); _vm->_newSceneNum = 3; } break; @@ -642,10 +642,10 @@ void Scene02::run() { case kHS02ExitPigpen: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[9], 0, 0x107AF, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[9], 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS02LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[9], -1, 0x107CF, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[9], -1, 0x107CF, 1); _vm->_newSceneNum = 1; } break; @@ -655,12 +655,12 @@ void Scene02::run() { case kHS02WalkArea3: case kHS02WalkArea4: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -925,8 +925,8 @@ void Scene03::run() { _vm->endSceneInit(); if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(Common::Point(4, 7), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(3, 6), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(4, 7), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(3, 6), -1, 0x107B9, 1); while (!_vm->_sceneDone) { _vm->updateMouseCursor(); @@ -968,7 +968,7 @@ void Scene03::run() { case kHS03Grass: if (_vm->_gnap->_actionStatus < 0) { if (_vm->isFlag(kGFGrassTaken)) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 9, 6); } else { @@ -996,10 +996,10 @@ void Scene03::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_hotspots[kHS03PlatypusWalkArea]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, 0x107AD, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, 0x107AD, 1); _vm->_gnap->_actionStatus = kAS03LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[2], -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[2], -1, 0x107C2, 1); _vm->_hotspots[kHS03PlatypusWalkArea]._flags &= ~SF_WALKABLE; if (_vm->_cursorValue == 1) _vm->_newSceneNum = 2; @@ -1020,7 +1020,7 @@ void Scene03::run() { case GRAB_CURSOR: if (!_vm->isFlag(kGFPlatypus)) _vm->_hotspots[kHS03PlatypusWalkArea]._flags |= SF_WALKABLE; - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[3].x + 1, _vm->_hotspotsWalkPos[3].y + 1) | 0x10000, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[3].x + 1, _vm->_hotspotsWalkPos[3].y + 1) | 0x10000, 1)) _vm->_gnap->_actionStatus = kAS03GrabCreek; if (!_vm->isFlag(kGFPlatypus)) _vm->_hotspots[kHS03PlatypusWalkArea]._flags &= ~SF_WALKABLE; @@ -1037,7 +1037,7 @@ void Scene03::run() { case kHS03TrappedPlatypus: if (_vm->_gnap->_actionStatus < 0) { if (_vm->isFlag(kGFPlatypus)) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 8, 4); } else { @@ -1047,10 +1047,10 @@ void Scene03::run() { break; case GRAB_CURSOR: if (_platypusHypnotized) { - _vm->gnapWalkTo(Common::Point(7, 6), 0, 0x107B5, 1); + _vm->_gnap->walkTo(Common::Point(7, 6), 0, 0x107B5, 1); _vm->_gnap->_actionStatus = kAS03FreePlatypus; } else { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); if (_platypusScared) _vm->_gnap->_actionStatus = kAS03GrabScaredPlatypus; else @@ -1062,7 +1062,7 @@ void Scene03::run() { _vm->playGnapBrainPulsating(8, 4); } else { _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); if (_platypusScared) _vm->_gnap->_actionStatus = kAS03HypnotizeScaredPlat; else @@ -1088,15 +1088,15 @@ void Scene03::run() { case kHS03WalkAreas2: case kHS03WalkAreas3: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; case kHS03PlatypusWalkArea: if (_vm->_gnap->_actionStatus < 0) { if (_vm->isFlag(kGFPlatypus) || _platypusHypnotized) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } else { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, 0x107B5, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, 0x107B5, 1); if (_platypusScared) _vm->_gnap->_actionStatus = kAS03GrabScaredPlatypus; else @@ -1107,7 +1107,7 @@ void Scene03::run() { default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1406,8 +1406,8 @@ void Scene04::run() { _vm->_plat->initPos(6, 11, kDirUpLeft); _vm->endSceneInit(); if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(Common::Point(5, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(6, 9), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(5, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(6, 9), -1, 0x107BA, 1); } else if (_vm->_prevSceneNum == 38) { _vm->_gnap->initPos(5, 7, kDirBottomRight); _vm->_plat->initPos(4, 7, kDirNone); @@ -1418,8 +1418,8 @@ void Scene04::run() { _vm->_plat->initPos(12, 8, kDirNone); _vm->endSceneInit(); if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(Common::Point(9, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(9, 9), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(9, 9), -1, 0x107BA, 1); } } @@ -1507,7 +1507,7 @@ void Scene04::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS04GrabAxe; _vm->setFlag(kGFPlatypusTalkingToAssistant); updateHotspots(); @@ -1528,19 +1528,19 @@ void Scene04::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - if (_vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1)) { + if (_vm->_gnap->walkTo(_vm->_gnap->_pos, 0, -1, 1)) { _vm->playGnapMoan2(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y); _nextDogSequenceId = 0x20F; } break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirBottomRight; - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1)) _vm->_gnap->_actionStatus = kAS04GrabDog; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirBottomRight; - if (_vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1)) { + if (_vm->_gnap->walkTo(_vm->_gnap->_pos, 0, -1, 1)) { _vm->playGnapBrainPulsating(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y); _nextDogSequenceId = 0x20E; } @@ -1565,13 +1565,13 @@ void Scene04::run() { break; case GRAB_CURSOR: if (_vm->_cursorValue == 1) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS04OpenDoor; _vm->_timers[5] = 300; _vm->_gnap->_idleFacing = kDirUpLeft; } else { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS04LeaveScene; _vm->_newSceneNum = 38; } @@ -1587,10 +1587,10 @@ void Scene04::run() { case kHS04ExitTruck: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[5], 0, 0x107AE, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[5], 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS04LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[5], -1, 0x107C7, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[5], -1, 0x107C7, 1); if (_vm->_cursorValue == 1) _vm->_newSceneNum = 2; else @@ -1607,7 +1607,7 @@ void Scene04::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[7], 0, _vm->_gnap->getSequenceId(gskIdle, 10, 2) | 0x10000, 1)) { + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[7], 0, _vm->_gnap->getSequenceId(gskIdle, 10, 2) | 0x10000, 1)) { if (_triedWindow) { _vm->_gnap->_actionStatus = kAS04GetKeyAnother; } else { @@ -1631,10 +1631,10 @@ void Scene04::run() { case kHS04ExitBarn: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[8], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[8], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS04LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[8] + Common::Point(0, 1), -1, 0x107C1, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[8] + Common::Point(0, 1), -1, 0x107C1, 1); if (_vm->_cursorValue == 1) _vm->_newSceneNum = 5; else @@ -1645,12 +1645,12 @@ void Scene04::run() { case kHS04WalkArea1: case kHS04WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1889,8 +1889,8 @@ void Scene05::run() { _vm->_plat->initPos(-1, 9, kDirNone); _vm->endSceneInit(); if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(Common::Point(2, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(2, 9), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(2, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 9), -1, 0x107B9, 1); } else { _vm->_gnap->initPos(6, 8, kDirBottomRight); if (_vm->isFlag(kGFPlatypus)) @@ -1962,12 +1962,12 @@ void Scene05::run() { case PLAT_CURSOR: if (_vm->isFlag(kGFPlatypus)) { _vm->_gnap->useDeviceOnPlatypus(); - if (_vm->platypusWalkTo(_vm->_hotspotsWalkPos[1], 1, 0x107C2, 1)) { + if (_vm->_plat->walkTo(_vm->_hotspotsWalkPos[1], 1, 0x107C2, 1)) { _vm->_plat->_actionStatus = kAS05PlatSearchHaystack; _vm->_plat->_idleFacing = kDirUnk4; } if (_vm->_gnap->_pos.x == 4 && (_vm->_gnap->_pos.y == 8 || _vm->_gnap->_pos.y == 7)) - _vm->gnapWalkStep(); + _vm->_gnap->walkStep(); _vm->playGnapIdle(_vm->_plat->_pos.x, _vm->_plat->_pos.y); } break; @@ -1981,7 +1981,7 @@ void Scene05::run() { if (_vm->_grabCursorSpriteIndex == kItemTwig) { _vm->_gnap->_idleFacing = kDirUpRight; Common::Point checkPt = _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot] + Common::Point(0, 1); - _vm->gnapWalkTo(checkPt, 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(checkPt, 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS05UseTwigWithChicken; } else if (_vm->_grabCursorSpriteIndex >= 0) _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y + 1, 9, 7); @@ -1992,12 +1992,12 @@ void Scene05::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[5], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[5], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS05GrabChicken; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[5], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[5], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS05TalkChicken; break; case PLAT_CURSOR: @@ -2019,7 +2019,7 @@ void Scene05::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirBottomLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS05GrabLadder; break; case TALK_CURSOR: @@ -2035,7 +2035,7 @@ void Scene05::run() { if (_vm->isFlag(kGFBarnPadlockOpen)) { _vm->_isLeavingScene = true; Common::Point destPt = _vm->_hotspotsWalkPos[2] + Common::Point(- 1, 1); - _vm->gnapWalkTo(destPt, 0, -1, 1); + _vm->_gnap->walkTo(destPt, 0, -1, 1); _vm->_gnap->_actionStatus = kAS05EnterBarn; if (_vm->_cursorValue == 1) _vm->_newSceneNum = 6; @@ -2043,7 +2043,7 @@ void Scene05::run() { _vm->_newSceneNum = 36; } else if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemNeedle) { - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y) | 0x10000, 1)) _vm->_gnap->_actionStatus = kAS05PickPadlock; } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -2055,7 +2055,7 @@ void Scene05::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS05TryPickPadlock; break; case TALK_CURSOR: @@ -2070,10 +2070,10 @@ void Scene05::run() { case kHS05ExitHouse: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, 0x107AF, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS05LeaveScene; if (_vm->isFlag(kGFPlatypus)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[4] + Common::Point(0, 1), -1, 0x107C7, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[4] + Common::Point(0, 1), -1, 0x107C7, 1); if (_vm->_cursorValue == 1) _vm->_newSceneNum = 4; else @@ -2084,7 +2084,7 @@ void Scene05::run() { case kHS05WalkArea1: case kHS05WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; case kHS05WalkArea3: @@ -2093,7 +2093,7 @@ void Scene05::run() { default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -2319,8 +2319,8 @@ void Scene06::run() { _vm->_plat->initPos(6, 12, kDirNone); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107B9, 1); while (!_vm->_sceneDone) { _vm->updateMouseCursor(); @@ -2382,7 +2382,7 @@ void Scene06::run() { _vm->playGnapImpossible(0, 0); } else if (triedDeviceOnGas) { _vm->_hotspots[kHS06WalkArea5]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[1], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[1], 0, 0x107BC, 1); _vm->_hotspots[kHS06WalkArea5]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = kAS06TryToGetGas; } else { @@ -2415,7 +2415,7 @@ void Scene06::run() { if (_vm->isFlag(kGFGasTaken)) _vm->playGnapImpossible(0, 0); else { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, 0x107BB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS06TryToClimbLadder; _vm->setFlag(kGFGasTaken); } @@ -2433,10 +2433,10 @@ void Scene06::run() { if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemTwig && _horseTurnedBack) { _vm->_hotspots[kHS06WalkArea5]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, 0x107BC, 1); _vm->_hotspots[kHS06WalkArea5]._flags &= ~SF_WALKABLE; _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->platypusWalkTo(Common::Point(6, 8), 1, 0x107C2, 1); + _vm->_plat->walkTo(Common::Point(6, 8), 1, 0x107C2, 1); _vm->_plat->_idleFacing = kDirNone; _vm->_gnap->_actionStatus = kAS06UseTwigOnHorse; _vm->setGrabCursorSprite(-1); @@ -2449,11 +2449,11 @@ void Scene06::run() { break; case TALK_CURSOR: if (_horseTurnedBack) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 3, 2) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 3, 2) | 0x10000, 1); } else { _vm->_gnap->_idleFacing = kDirBottomLeft; _vm->_hotspots[kHS06WalkArea5]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_hotspots[kHS06WalkArea5]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = kAS06TalkToHorse; } @@ -2470,7 +2470,7 @@ void Scene06::run() { case kHS06ExitOutsideBarn: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4], 0, 0x107AE, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[4], 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS06LeaveScene; if (_vm->_cursorValue == 1) _vm->_newSceneNum = 5; @@ -2485,12 +2485,12 @@ void Scene06::run() { case kHS06WalkArea4: case kHS06WalkArea5: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -2739,9 +2739,9 @@ void Scene07::run() { case kHS07ExitHouse: _vm->_isLeavingScene = true; if (_vm->_gnap->_pos.x > 8) - _vm->gnapWalkTo(Common::Point(_vm->_gnap->_pos.x, 7), 0, 0x107AD, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_gnap->_pos.x, 7), 0, 0x107AD, 1); else - _vm->gnapWalkTo(Common::Point(8, 7), 0, 0x107AD, 1); + _vm->_gnap->walkTo(Common::Point(8, 7), 0, 0x107AD, 1); _vm->_gnap->_actionStatus = kAS07LeaveScene; break; @@ -2783,7 +2783,7 @@ void Scene07::run() { case kHS07WalkArea1: case kHS07WalkArea2: - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; case kHS07WalkArea3: @@ -2792,7 +2792,7 @@ void Scene07::run() { default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -2956,8 +2956,8 @@ void Scene08::run() { _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(1, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(1, 7), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(1, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 7), -1, 0x107C2, 1); _vm->_timers[5] = _vm->getRandom(40) + 50; @@ -3011,18 +3011,18 @@ void Scene08::run() { case kHS08ExitBackdoor: _vm->_isLeavingScene = true; _vm->gnapActionIdle(0x14D); - _vm->gnapWalkTo(Common::Point(0, 6), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(0, 6), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS08LeaveScene; - _vm->platypusWalkTo(Common::Point(0, 7), 1, 0x107CF, 1); + _vm->_plat->walkTo(Common::Point(0, 7), 1, 0x107CF, 1); _vm->_newSceneNum = 9; break; case kHS08ExitCrash: _vm->_isLeavingScene = true; _vm->gnapActionIdle(0x14D); - _vm->gnapWalkTo(Common::Point(3, 9), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(3, 9), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS08LeaveScene; - _vm->platypusWalkTo(Common::Point(4, 9), 1, 0x107C1, 1); + _vm->_plat->walkTo(Common::Point(4, 9), 1, 0x107C1, 1); _vm->_newSceneNum = 7; break; @@ -3033,7 +3033,7 @@ void Scene08::run() { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->gnapActionIdle(0x14D); - _vm->gnapWalkTo(Common::Point(6, 6), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(6, 6), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS08LookMan; _vm->_gnap->_idleFacing = kDirUpRight; break; @@ -3043,13 +3043,13 @@ void Scene08::run() { case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapActionIdle(0x14D); - _vm->gnapWalkTo(Common::Point(8, 6), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(8, 6), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS08TalkMan; break; case PLAT_CURSOR: _vm->gnapActionIdle(0x14D); _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(Common::Point(6, 6), 1, 0x107C2, 1); + _vm->_plat->walkTo(Common::Point(6, 6), 1, 0x107C2, 1); _vm->_plat->_actionStatus = kAS08PlatWithMan; _vm->_plat->_idleFacing = kDirNone; _vm->playGnapIdle(6, 6); @@ -3071,21 +3071,21 @@ void Scene08::run() { _vm->_gnap->_actionStatus = kAS08LookDog; break; case GRAB_CURSOR: - _vm->gnapWalkTo(Common::Point(4, 7), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(4, 7), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS08GrabDog; _vm->_gnap->_idleFacing = kDirUpRight; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapActionIdle(0x14D); - _vm->gnapWalkTo(Common::Point(4, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(4, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS08TalkDog; break; case PLAT_CURSOR: _vm->setFlag(kGFSceneFlag1); _vm->gnapActionIdle(0x14D); _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(Common::Point(3, 7), 1, 0x107C2, 1); + _vm->_plat->walkTo(Common::Point(3, 7), 1, 0x107C2, 1); _vm->_plat->_actionStatus = kAS08PlatWithDog; _vm->_plat->_idleFacing = kDirNone; _vm->playGnapIdle(3, 7); @@ -3175,13 +3175,13 @@ void Scene08::run() { case kHS08WalkArea1: case kHS08WalkArea2: _vm->gnapActionIdle(0x14D); - _vm->gnapWalkTo(Common::Point(-1, 6), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, 6), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { _vm->gnapActionIdle(0x14D); - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -3333,7 +3333,7 @@ void Scene08::updateAnimations() { _vm->_plat->_idleFacing = kDirUnk4; _vm->_plat->_sequenceDatNum = 0; if (_vm->_gnap->_pos == Common::Point(1, 8)) - _vm->gnapWalkStep(); + _vm->_gnap->walkStep(); } else if (_nextDogSequenceId != -1) { gameSys.setAnimation(_nextDogSequenceId, 100, 3); gameSys.insertSequence(_nextDogSequenceId, 100, _currDogSequenceId, 100, kSeqSyncWait, 0, 0, 0); @@ -3386,8 +3386,8 @@ void Scene09::run() { _vm->_gnap->initPos(11, 8, kDirBottomLeft); _vm->_plat->initPos(12, 7, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(9, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 7), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(9, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 7), -1, 0x107D2, 1); } else { _vm->_gnap->initPos(4, 7, kDirBottomRight); _vm->_plat->initPos(5, 7, kDirNone); @@ -3439,18 +3439,18 @@ void Scene09::run() { case kHS09ExitKitchen: _vm->_isLeavingScene = true; _vm->_newSceneNum = 10; - _vm->gnapWalkTo(Common::Point(4, 7), 0, 0x107BF, 1); + _vm->_gnap->walkTo(Common::Point(4, 7), 0, 0x107BF, 1); _vm->_gnap->_actionStatus = kAS09LeaveScene; - _vm->platypusWalkTo(Common::Point(4, 8), -1, 0x107D2, 1); + _vm->_plat->walkTo(Common::Point(4, 8), -1, 0x107D2, 1); _vm->_plat->_idleFacing = kDirUnk4; break; case kHS09ExitHouse: _vm->_isLeavingScene = true; _vm->_newSceneNum = 8; - _vm->gnapWalkTo(Common::Point(10, -1), 0, 0x107AB, 1); + _vm->_gnap->walkTo(Common::Point(10, -1), 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS09LeaveScene; - _vm->platypusWalkTo(Common::Point(10, -1), -1, 0x107CD, 1); + _vm->_plat->walkTo(Common::Point(10, -1), -1, 0x107CD, 1); _vm->_plat->_idleFacing = kDirUnk4; break; @@ -3464,7 +3464,7 @@ void Scene09::run() { break; case GRAB_CURSOR: _vm->_gnap->_actionStatus = kAS09SearchTrash; - _vm->gnapWalkTo(Common::Point(9, 6), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(9, 6), 0, 0x107BC, 1); break; case TALK_CURSOR: case PLAT_CURSOR: @@ -3477,12 +3477,12 @@ void Scene09::run() { case kHS09WalkArea1: case kHS09WalkArea2: case kHS09WalkArea3: - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; diff --git a/engines/gnap/scenes/group1.cpp b/engines/gnap/scenes/group1.cpp index cb74bff32f..9033763c7e 100644 --- a/engines/gnap/scenes/group1.cpp +++ b/engines/gnap/scenes/group1.cpp @@ -75,14 +75,14 @@ void Scene10::run() { _vm->_gnap->initPos(11, 8, kDirBottomLeft); _vm->_plat->initPos(12, 7, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(9, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 7), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(9, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 7), -1, 0x107D2, 1); } else { _vm->_gnap->initPos(-1, 7, kDirBottomRight); _vm->_plat->initPos(-2, 8, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(1, 7), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(1, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(1, 7), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 8), -1, 0x107C2, 1); } _vm->_timers[4] = _vm->getRandom(80) + 150; @@ -132,18 +132,18 @@ void Scene10::run() { case kHS10ExitBar: _vm->_isLeavingScene = true; _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(Common::Point(0, 7), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(0, 7), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS10LeaveScene; - _vm->platypusWalkTo(Common::Point(0, 7), -1, 0x107CF, 1); + _vm->_plat->walkTo(Common::Point(0, 7), -1, 0x107CF, 1); _vm->_newSceneNum = 11; break; case kHS10ExitBackdoor: _vm->_isLeavingScene = true; _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(Common::Point(2, 9), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(2, 9), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS10LeaveScene; - _vm->platypusWalkTo(Common::Point(3, 9), -1, 0x107C7, 1); + _vm->_plat->walkTo(Common::Point(3, 9), -1, 0x107C7, 1); _vm->_newSceneNum = 9; break; @@ -164,14 +164,14 @@ void Scene10::run() { case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(Common::Point(4, 8), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; break; case PLAT_CURSOR: _vm->gnapActionIdle(0x10C); _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(Common::Point(4, 6), -1, -1, 1); - _vm->gnapWalkTo(Common::Point(4, 8), 0, 0x107BB, 1); + _vm->_plat->walkTo(Common::Point(4, 6), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; break; } @@ -194,7 +194,7 @@ void Scene10::run() { _vm->playGnapMoan2(-1, -1); else { _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(Common::Point(4, 8), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; } break; @@ -207,8 +207,8 @@ void Scene10::run() { else { _vm->gnapActionIdle(0x10C); _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(Common::Point(3, 7), -1, -1, 1); - _vm->gnapWalkTo(Common::Point(4, 8), 0, 0x107BB, 1); + _vm->_plat->walkTo(Common::Point(3, 7), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; } break; @@ -226,7 +226,7 @@ void Scene10::run() { break; case GRAB_CURSOR: _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(Common::Point(4, 8), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; break; case TALK_CURSOR: @@ -240,7 +240,7 @@ void Scene10::run() { _vm->setFlag(kGFMudTaken); _vm->gnapActionIdle(0x10C); _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(Common::Point(7, 6), 1, 0x107D2, 1); + _vm->_plat->walkTo(Common::Point(7, 6), 1, 0x107D2, 1); _vm->_plat->_actionStatus = kAS10PlatWithBox; _vm->_plat->_idleFacing = kDirUnk4; _vm->_largeSprite = gameSys.createSurface(0xC3); @@ -261,7 +261,7 @@ void Scene10::run() { break; case GRAB_CURSOR: _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(Common::Point(9, 6), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(9, 6), 0, 0x107BB, 1); gameSys.insertSequence(0x10E, 120, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); _vm->_gnap->_sequenceId = 0x10E; _vm->_gnap->_id = 120; @@ -283,7 +283,7 @@ void Scene10::run() { case kHS10WalkArea3: case kHS10WalkArea4: _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; case kHS10Device: @@ -296,7 +296,7 @@ void Scene10::run() { default: if (_vm->_mouseClickState._left) { _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -401,7 +401,7 @@ void Scene10::updateAnimations() { if (_vm->_plat->_actionStatus == kAS10PlatWithBox) _vm->_plat->_actionStatus = -1; if (_vm->_gnap->_pos == Common::Point(4, 8)) - _vm->gnapWalkStep(); + _vm->_gnap->walkStep(); break; default: gameSys.insertSequence(_nextCookSequenceId, 100, _currCookSequenceId, 100, kSeqSyncWait, 0, 0, 0); @@ -573,8 +573,8 @@ void Scene11::run() { _vm->endSceneInit(); if (_vm->_prevSceneNum == 12) { - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(1, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 8), -1, 0x107C2, 1); } gameSys.insertSequence(0x208, 256, 0, 0, kSeqNone, 40, 0, 0); @@ -612,32 +612,32 @@ void Scene11::run() { case kHS11ExitKitchen: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(6, 5), 0, 0x107BF, 1); + _vm->_gnap->walkTo(Common::Point(6, 5), 0, 0x107BF, 1); _vm->_gnap->_actionStatus = kAS11LeaveScene; - _vm->platypusWalkTo(Common::Point(6, 6), -1, -1, 1); + _vm->_plat->walkTo(Common::Point(6, 6), -1, -1, 1); _vm->_newSceneNum = 10; break; case kHS11ExitToilet: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(8, 5), 0, 0x107BF, 1); + _vm->_gnap->walkTo(Common::Point(8, 5), 0, 0x107BF, 1); _vm->_gnap->_actionStatus = kAS11LeaveScene; - _vm->platypusWalkTo(Common::Point(8, 6), -1, -1, 1); + _vm->_plat->walkTo(Common::Point(8, 6), -1, -1, 1); _vm->_newSceneNum = 13; break; case kHS11ExitLeft: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(-1, 8), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(-1, 8), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS11LeaveScene; - _vm->platypusWalkTo(Common::Point(-1, 9), -1, 0x107CF, 1); + _vm->_plat->walkTo(Common::Point(-1, 9), -1, 0x107CF, 1); _vm->_newSceneNum = 12; break; case kHS11GoggleGuy: if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemMagazine) { - _vm->gnapWalkTo(Common::Point(3, 7), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(3, 7), 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS11ShowMagazineToGoggleGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 2, 0); } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -653,7 +653,7 @@ void Scene11::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(Common::Point(3, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(3, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS11TalkGoggleGuy; break; } @@ -665,7 +665,7 @@ void Scene11::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_gnap->_idleFacing = kDirUpRight; if (_vm->_grabCursorSpriteIndex >= 0) { - _vm->gnapWalkTo(Common::Point(5, 6), 0, 0x107BC, 9); + _vm->_gnap->walkTo(Common::Point(5, 6), 0, 0x107BC, 9); _vm->_gnap->_actionStatus = kAS11ShowItemToHookGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 4, 0); } else { @@ -674,12 +674,12 @@ void Scene11::run() { _vm->_gnap->playSequence(_vm->_gnap->getSequenceId(gskDeflect, 3, 6) | 0x10000); break; case GRAB_CURSOR: - _vm->gnapWalkTo(Common::Point(5, 6), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(5, 6), 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS11GrabHookGuy; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirBottomLeft; - _vm->gnapWalkTo(Common::Point(5, 6), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(5, 6), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS11TalkHookGuy; break; case PLAT_CURSOR: @@ -700,7 +700,7 @@ void Scene11::run() { _vm->playGnapScratchingHead(9, 8); break; case GRAB_CURSOR: - _vm->gnapWalkTo(Common::Point(9, 8), 0, 0x107BA, 1); + _vm->_gnap->walkTo(Common::Point(9, 8), 0, 0x107BA, 1); _vm->_gnap->_actionStatus = kAS11GrabBillardBall; break; case TALK_CURSOR: @@ -718,7 +718,7 @@ void Scene11::run() { case kHS11WalkArea4: case kHS11WalkArea5: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; case kHS11Device: @@ -730,7 +730,7 @@ void Scene11::run() { default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -989,8 +989,8 @@ void Scene12::run() { _vm->_gnap->initPos(11, 8, kDirBottomLeft); _vm->_plat->initPos(12, 8, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 8), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 8), -1, 0x107D2, 1); } while (!_vm->_sceneDone) { @@ -1030,27 +1030,27 @@ void Scene12::run() { case kHS12ExitRight: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(10, -1), 0, 0x107AB, 1); + _vm->_gnap->walkTo(Common::Point(10, -1), 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS12LeaveScene; - _vm->platypusWalkTo(Common::Point(10, -1), -1, -1, 1); + _vm->_plat->walkTo(Common::Point(10, -1), -1, -1, 1); _vm->_newSceneNum = 11; break; case kHS12ToothGuy: if (_vm->_grabCursorSpriteIndex == kItemQuarter) { _vm->_largeSprite = gameSys.createSurface(0x141); - _vm->gnapWalkTo(Common::Point(3, 7), 0, 0x107BC, 9); + _vm->_gnap->walkTo(Common::Point(3, 7), 0, 0x107BC, 9); _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_gnap->_actionStatus = kAS12QuarterToToothGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 2, 0); _vm->setGrabCursorSprite(-1); } else if (_vm->_grabCursorSpriteIndex == kItemQuarterWithHole) { - _vm->gnapWalkTo(Common::Point(3, 7), 0, 0x107BC, 9); + _vm->_gnap->walkTo(Common::Point(3, 7), 0, 0x107BC, 9); _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_gnap->_actionStatus = kAS12QuarterWithHoleToToothGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 2, 0); } else if (_vm->_grabCursorSpriteIndex >= 0) { - _vm->gnapWalkTo(Common::Point(3, 7), 0, 0x107BC, 9); + _vm->_gnap->walkTo(Common::Point(3, 7), 0, 0x107BC, 9); _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_gnap->_actionStatus = kAS12ShowItemToToothGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 2, 0); @@ -1060,17 +1060,17 @@ void Scene12::run() { _vm->playGnapScratchingHead(1, 2); break; case GRAB_CURSOR: - _vm->gnapWalkTo(Common::Point(3, 7), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(3, 7), 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS12GrabToothGuy; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(Common::Point(3, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(3, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS12TalkToothGuy; break; case PLAT_CURSOR: _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(Common::Point(3, 7), 1, 0x107D2, 1); + _vm->_plat->walkTo(Common::Point(3, 7), 1, 0x107D2, 1); _vm->_plat->_actionStatus = kAS12PlatWithToothGuy; _vm->_plat->_idleFacing = kDirUnk4; _vm->playGnapIdle(2, 7); @@ -1081,19 +1081,19 @@ void Scene12::run() { case kHS12Barkeeper: if (_vm->_grabCursorSpriteIndex == kItemQuarter || _vm->_grabCursorSpriteIndex == kItemQuarterWithHole) { - _vm->gnapWalkTo(Common::Point(6, 6), 0, 0x107BB, 9); + _vm->_gnap->walkTo(Common::Point(6, 6), 0, 0x107BB, 9); _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_actionStatus = kAS12QuarterWithBarkeeper; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 7, 0); } else if (_vm->_grabCursorSpriteIndex >= 0) { - _vm->gnapWalkTo(Common::Point(6, 6), 0, 0x107BB, 9); + _vm->_gnap->walkTo(Common::Point(6, 6), 0, 0x107BB, 9); _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_actionStatus = kAS12ShowItemToBarkeeper; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 7, 0); } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->gnapWalkTo(Common::Point(6, 6), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(6, 6), 0, 0x107BB, 1); _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_actionStatus = kAS12LookBarkeeper; break; @@ -1102,7 +1102,7 @@ void Scene12::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(Common::Point(6, 6), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(6, 6), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS12TalkBarkeeper; break; case PLAT_CURSOR: @@ -1116,31 +1116,31 @@ void Scene12::run() { case kHS12BeardGuy: if (_vm->_grabCursorSpriteIndex >= 0) { - _vm->gnapWalkTo(Common::Point(7, 6), 0, 0x107BB, 9); + _vm->_gnap->walkTo(Common::Point(7, 6), 0, 0x107BB, 9); _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_actionStatus = kAS12ShowItemToBeardGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 8, 0); } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->gnapWalkTo(Common::Point(7, 6), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(7, 6), 0, 0x107BB, 1); _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_actionStatus = kAS12LookBeardGuy; break; case GRAB_CURSOR: // NOTE Bug in the original. It has 9 as flags which seems wrong here. - _vm->gnapWalkTo(Common::Point(7, 6), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(7, 6), 0, 0x107BB, 1); _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_actionStatus = kAS12GrabBeardGuy; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(Common::Point(7, 6), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(7, 6), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS12TalkBeardGuy; break; case PLAT_CURSOR: _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(Common::Point(7, 6), 1, 0x107C2, 1); + _vm->_plat->walkTo(Common::Point(7, 6), 1, 0x107C2, 1); _vm->_plat->_actionStatus = kAS12PlatWithBeardGuy; _vm->_plat->_idleFacing = kDirNone; _vm->playGnapIdle(7, 6); @@ -1152,7 +1152,7 @@ void Scene12::run() { case kHS12Jukebox: _vm->_newSceneNum = 15; _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(5, 6), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(5, 6), 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS12LeaveScene; break; @@ -1161,12 +1161,12 @@ void Scene12::run() { case kHS12WalkArea3: case kHS12WalkArea4: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1539,9 +1539,9 @@ void Scene13::run() { case kHS13ExitBar: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(2, 7), 0, 0x107C0, 1); + _vm->_gnap->walkTo(Common::Point(2, 7), 0, 0x107C0, 1); _vm->_gnap->_actionStatus = kAS13LeaveScene; - _vm->platypusWalkTo(Common::Point(2, 8), -1, -1, 1); + _vm->_plat->walkTo(Common::Point(2, 8), -1, -1, 1); if (_vm->isFlag(kGFUnk14) || _vm->isFlag(kGFSpringTaken)) { _vm->_newSceneNum = 11; } else { @@ -1569,7 +1569,7 @@ void Scene13::run() { _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_sequenceDatNum = 0; } else { - _vm->gnapWalkTo(Common::Point(5, 5), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(5, 5), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS13BackToilet; _vm->_gnap->_idleFacing = kDirUpRight; } @@ -1590,7 +1590,7 @@ void Scene13::run() { case GRAB_CURSOR: case TALK_CURSOR: case PLAT_CURSOR: - _vm->gnapWalkTo(Common::Point(6, 7), 0, 0xA9, 5); + _vm->_gnap->walkTo(Common::Point(6, 7), 0, 0xA9, 5); _vm->_gnap->_actionStatus = kAS13FrontToilet; _vm->_gnap->_idleFacing = kDirBottomRight; break; @@ -1604,7 +1604,7 @@ void Scene13::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->gnapWalkTo(Common::Point(7, 7), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(7, 7), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS13LookScribble; _vm->_gnap->_idleFacing = kDirUpRight; break; @@ -1613,7 +1613,7 @@ void Scene13::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(Common::Point(7, 7), -1, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0), 1); + _vm->_gnap->walkTo(Common::Point(7, 7), -1, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0), 1); break; case PLAT_CURSOR: _vm->playGnapImpossible(0, 0); @@ -1629,11 +1629,11 @@ void Scene13::run() { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->_gnap->playSequence(_vm->_gnap->getSequenceId(gskDeflect, 9, 6)); - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, -1, 1); _vm->_gnap->_actionStatus = kAS13Wait; break; case GRAB_CURSOR: - _vm->gnapWalkTo(Common::Point(8, 7), 0, -1, 1); + _vm->_gnap->walkTo(Common::Point(8, 7), 0, -1, 1); _vm->_gnap->_actionStatus = kAS13GrabUrinal; break; case TALK_CURSOR: @@ -1651,11 +1651,11 @@ void Scene13::run() { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->_gnap->playSequence(_vm->_gnap->getSequenceId(gskDeflect, 5, 9)); - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, -1, 1); _vm->_gnap->_actionStatus = kAS13Wait; break; case GRAB_CURSOR: - _vm->gnapWalkTo(Common::Point(4, 8), 0, 0x107B9, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107B9, 1); _vm->_gnap->_actionStatus = kAS13GrabSink; break; case TALK_CURSOR: @@ -1674,7 +1674,7 @@ void Scene13::run() { case kHS13WalkArea7: case kHS13WalkArea8: case kHS13WalkArea9: - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; case kHS13WalkArea1: @@ -1683,7 +1683,7 @@ void Scene13::run() { default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1694,7 +1694,7 @@ void Scene13::run() { if (!_vm->_isLeavingScene) { _vm->_plat->updateIdleSequence(); if (_vm->_plat->_pos.y == 5 || _vm->_plat->_pos.y == 6) - _vm->platypusWalkTo(Common::Point(-1, 7), -1, -1, 1); + _vm->_plat->walkTo(Common::Point(-1, 7), -1, -1, 1); if (_vm->_gnap->_actionStatus < 0) _vm->_gnap->updateIdleSequence(); if (!_vm->_timers[4]) { @@ -2322,7 +2322,7 @@ void Scene17::update() { _vm->updateMouseCursor(); _vm->updateGrabCursorSprite(0, 0); if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } } @@ -2418,8 +2418,8 @@ void Scene17::run() { _vm->_gnap->initPos(4, 6, kDirBottomRight); _vm->_plat->initPos(5, 6, kDirNone); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(5, 9), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(4, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(5, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), -1, 0x107B9, 1); } else if (_vm->isFlag(kGFUnk27)) { _vm->_gnap->initPos(3, 9, kDirUpLeft); _vm->_plat->_pos = _vm->_hotspotsWalkPos[2]; @@ -2472,8 +2472,8 @@ void Scene17::run() { _vm->_gnap->initPos(6, 6, kDirBottomRight); _vm->_plat->initPos(5, 6, kDirNone); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(5, 9), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(4, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(5, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), -1, 0x107B9, 1); } else { if (_vm->isFlag(kGFSpringTaken)) { _vm->_gnap->initPos(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, kDirBottomRight); @@ -2506,7 +2506,7 @@ void Scene17::run() { _vm->_plat->_sequenceId = 0x7C1; _vm->_plat->_sequenceDatNum = 1; _vm->_plat->_idleFacing = kDirBottomRight; - _vm->platypusWalkTo(Common::Point(2, 9), -1, 0x107C2, 1); + _vm->_plat->walkTo(Common::Point(2, 9), -1, 0x107C2, 1); } while (!_vm->_sceneDone) { @@ -2531,8 +2531,8 @@ void Scene17::run() { _vm->_gnap->useJointOnPlatypus(); } else { _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[6], 1, 0x107C2, 1); - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[6] + Common::Point(1, 0), 0, 0x107BA, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[6], 1, 0x107C2, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[6] + Common::Point(1, 0), 0, 0x107BA, 1); _vm->_plat->_actionStatus = kAS17GetWrench1; _vm->_gnap->_actionStatus = kAS17GetWrench1; _vm->_timers[5] = _vm->getRandom(30) + 80; @@ -2578,7 +2578,7 @@ void Scene17::run() { if (_canTryGetWrench) { platHangUpPhone(); _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[6] + Common::Point(1, 0), 1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[6] + Common::Point(1, 0), 1, 0x107C2, 1); _vm->_plat->_actionStatus = kAS17TryGetWrench; _vm->_gnap->_actionStatus = kAS17TryGetWrench; _vm->_timers[5] = _vm->getRandom(30) + 80; @@ -2593,7 +2593,7 @@ void Scene17::run() { case kHS17Phone1: if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemDiceQuarterHole) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS17PutCoinIntoPhone; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 1, 3); @@ -2605,7 +2605,7 @@ void Scene17::run() { case GRAB_CURSOR: if (_vm->isFlag(kGFUnk18)) { platHangUpPhone(); - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS17GetCoinFromPhone; } else _vm->playGnapImpossible(0, 0); @@ -2619,7 +2619,7 @@ void Scene17::run() { _vm->_isLeavingScene = true; _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->_idleFacing = kDirUpLeft; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[2], 1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[2], 1, 0x107C2, 1); _vm->setFlag(kGFUnk16); _vm->_plat->_actionStatus = kAS17PlatUsePhone; _vm->_gnap->_actionStatus = kAS17PlatUsePhone; @@ -2634,7 +2634,7 @@ void Scene17::run() { case kHS17Phone2: if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemDiceQuarterHole) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS17PutCoinIntoPhone; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 1, 3); @@ -2648,7 +2648,7 @@ void Scene17::run() { platHangUpPhone(); _vm->_isLeavingScene = true; _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[2], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS17GnapUsePhone; _vm->setFlag(kGFSpringTaken); } else @@ -2663,7 +2663,7 @@ void Scene17::run() { _vm->_isLeavingScene = true; _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->_idleFacing = kDirUpLeft; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[2], 1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[2], 1, 0x107C2, 1); _vm->setFlag(kGFUnk16); _vm->_plat->_actionStatus = kAS17PlatUsePhone; _vm->_gnap->_actionStatus = kAS17PlatUsePhone; @@ -2680,10 +2680,10 @@ void Scene17::run() { _vm->_isLeavingScene = true; _vm->_newSceneNum = 18; _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[5], 0, 0x107BB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[5], 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS17LeaveScene; if (_vm->_plat->_actionStatus != kAS17PlatPhoningAssistant) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[5] + Common::Point(-1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[5] + Common::Point(-1, 0), -1, 0x107C2, 1); } break; @@ -2693,9 +2693,9 @@ void Scene17::run() { _vm->_isLeavingScene = true; _vm->_newSceneNum = 20; _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS17LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[3] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[3] + Common::Point(1, 0), -1, 0x107C2, 1); } break; @@ -2703,12 +2703,12 @@ void Scene17::run() { case kHS17WalkArea2: case kHS17WalkArea3: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = 0; } break; @@ -2998,7 +2998,7 @@ void Scene17::updateAnimations() { _vm->_plat->_sequenceDatNum = 0; _vm->_gnap->_sequenceId = 0x875; _vm->_plat->_sequenceId = 0x23F; - _vm->gnapWalkTo(Common::Point(3, 8), -1, 0x107B9, 1); + _vm->_gnap->walkTo(Common::Point(3, 8), -1, 0x107B9, 1); _vm->_plat->_actionStatus = kAS17GetWrench2; } break; @@ -3302,7 +3302,7 @@ void Scene18::closeHydrantValve() { _vm->_gnap->_actionStatus = kAS18LeaveScene; _vm->updateMouseCursor(); if (_vm->isFlag(kGFTruckFilledWithGas)) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18HydrantRightValve], 0, 0x107BA, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18HydrantRightValve], 0, 0x107BA, 1); if (_vm->isFlag(kGFTruckKeysUsed)) { _vm->_gnap->_actionStatus = kAS18CloseRightValveWithGarbageCan; waitForGnapAction(); @@ -3311,7 +3311,7 @@ void Scene18::closeHydrantValve() { waitForGnapAction(); } } else if (_vm->isFlag(kGFBarnPadlockOpen)) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18HydrantTopValve], 0, 0x107BA, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18HydrantTopValve], 0, 0x107BA, 1); _vm->_gnap->_actionStatus = kAS18CloseTopValve; waitForGnapAction(); } @@ -3384,7 +3384,7 @@ void Scene18::run() { } else { gameSys.setAnimation(_currPhoneSequenceId, 254, 3); } - _vm->gnapWalkTo(Common::Point(4, 8), -1, 0x107B9, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), -1, 0x107B9, 1); } else { if (_vm->isFlag(kGFGnapControlsToyUFO)) { _vm->clearFlag(kGFGnapControlsToyUFO); @@ -3395,20 +3395,20 @@ void Scene18::run() { _vm->_gnap->initPos(4, 11, kDirBottomRight); _vm->_plat->initPos(5, 11, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(4, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(5, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(5, 9), -1, 0x107C2, 1); } else if (_vm->_prevSceneNum == 19) { _vm->_gnap->initPos(7, 7, kDirBottomRight); _vm->_plat->initPos(8, 7, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(7, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(8, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(7, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(8, 8), -1, 0x107C2, 1); } else { _vm->_gnap->initPos(-1, 10, kDirBottomRight); _vm->_plat->initPos(-1, 10, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(3, 7), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(3, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(3, 7), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(3, 8), -1, 0x107C2, 1); } } @@ -3476,7 +3476,7 @@ void Scene18::run() { _vm->playGnapScratchingHead(3, 2); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18CowboyHat], 0, _vm->_gnap->getSequenceId(gskPullOutDeviceNonWorking, 3, 2) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18CowboyHat], 0, _vm->_gnap->getSequenceId(gskPullOutDeviceNonWorking, 3, 2) | 0x10000, 1); break; case TALK_CURSOR: case PLAT_CURSOR: @@ -3513,12 +3513,12 @@ void Scene18::run() { break; case GRAB_CURSOR: if (!_vm->isFlag(kGFTruckKeysUsed)) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan] + Common::Point((_vm->_gnap->_pos.x < _vm->_s18GarbageCanPos ? 1 : -1), 0), + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan] + Common::Point((_vm->_gnap->_pos.x < _vm->_s18GarbageCanPos ? 1 : -1), 0), -1, -1, 1); - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_s18GarbageCanPos, _vm->_gnap->_pos.y) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_s18GarbageCanPos, _vm->_gnap->_pos.y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS18GrabGarbageCanFromStreet; } else if (!_vm->isFlag(kGFTruckFilledWithGas)) { - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan], 0, -1, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan], 0, -1, 1)) _vm->_gnap->_actionStatus = kAS18GrabGarbageCanFromHydrant; } break; @@ -3570,7 +3570,7 @@ void Scene18::run() { } } else { if (_vm->_grabCursorSpriteIndex == kItemWrench) { - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, 2, 8) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, 2, 8) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS18OpenTopValve; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS18HydrantTopValve].x, _vm->_hotspotsWalkPos[kHS18HydrantTopValve].y, 1, 5); @@ -3582,7 +3582,7 @@ void Scene18::run() { case GRAB_CURSOR: if (_vm->isFlag(kGFBarnPadlockOpen)) { _vm->_hotspots[kHS18WalkArea2]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18HydrantTopValve], 0, 0x107BA, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18HydrantTopValve], 0, 0x107BA, 1); _vm->_hotspots[kHS18WalkArea2]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = kAS18CloseTopValve; } else @@ -3612,7 +3612,7 @@ void Scene18::run() { putDownGarbageCan(0); } if (_vm->_grabCursorSpriteIndex == kItemWrench) { - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, 2, 8) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, 2, 8) | 0x10000, 1); if (_vm->isFlag(kGFTruckKeysUsed)) _vm->_gnap->_actionStatus = kAS18OpenRightValveWithGarbageCan; else @@ -3626,7 +3626,7 @@ void Scene18::run() { break; case GRAB_CURSOR: if (_vm->isFlag(kGFTruckFilledWithGas)) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18HydrantRightValve], 0, 0x107BA, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18HydrantRightValve], 0, 0x107BA, 1); if (_vm->isFlag(kGFTruckKeysUsed)) _vm->_gnap->_actionStatus = kAS18CloseRightValveWithGarbageCan; else @@ -3654,10 +3654,10 @@ void Scene18::run() { } else { _vm->_isLeavingScene = true; _vm->_newSceneNum = 19; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18ExitToyStore], 0, 0x107C0, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18ExitToyStore], 0, 0x107C0, 1); _vm->_gnap->_actionStatus = kAS18LeaveScene; if (!_vm->isFlag(kGFPlatypusTalkingToAssistant)) - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS18ExitToyStore] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS18ExitToyStore] + Common::Point(1, 0), -1, 0x107C2, 1); } } break; @@ -3671,12 +3671,12 @@ void Scene18::run() { closeHydrantValve(); _vm->_isLeavingScene = true; _vm->_newSceneNum = 17; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18ExitPhoneBooth], 0, 0x107AE, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18ExitPhoneBooth], 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS18LeaveScene; if (_vm->isFlag(kGFPlatypusTalkingToAssistant)) _vm->setFlag(kGFUnk27); else - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS18ExitPhoneBooth] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS18ExitPhoneBooth] + Common::Point(1, 0), -1, 0x107C2, 1); } break; @@ -3690,12 +3690,12 @@ void Scene18::run() { _vm->_isLeavingScene = true; _vm->_newSceneNum = 20; _vm->_hotspots[kHS18WalkArea2]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18ExitGrubCity], 0, 0x107B2, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18ExitGrubCity], 0, 0x107B2, 1); _vm->_gnap->_actionStatus = kAS18LeaveScene; if (_vm->isFlag(kGFPlatypusTalkingToAssistant)) platEndPhoning(false); else - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS18ExitGrubCity] + Common::Point(0, -1), -1, 0x107CF, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS18ExitGrubCity] + Common::Point(0, -1), -1, 0x107CF, 1); _vm->_hotspots[kHS18WalkArea2]._flags &= ~SF_WALKABLE; } break; @@ -3707,7 +3707,7 @@ void Scene18::run() { gnapCarryGarbageCanTo(-1); putDownGarbageCan(0); } else { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } _vm->_mouseClickState._left = false; } @@ -3719,7 +3719,7 @@ void Scene18::run() { gnapCarryGarbageCanTo(-1); putDownGarbageCan(0); } else { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } _vm->_mouseClickState._left = false; } @@ -3744,7 +3744,7 @@ void Scene18::run() { _vm->_plat->_actionStatus = -1; _vm->_sceneWaiting = false; _vm->_plat->initPos(-1, 10, kDirNone); - _vm->platypusWalkTo(Common::Point(3, 9), -1, 0x107C2, 1); + _vm->_plat->walkTo(Common::Point(3, 9), -1, 0x107C2, 1); _vm->clearFlag(kGFPlatypusTalkingToAssistant); } } else { @@ -3840,7 +3840,7 @@ void Scene18::updateAnimations() { _vm->playGnapUseDevice(0, 0); gameSys.insertSequence(0x20C, 19, 0, 0, kSeqNone, 0, 0, 0); _vm->_hotspots[kHS18WalkArea2]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18HydrantTopValve], 0, 0x107BB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18HydrantTopValve], 0, 0x107BB, 1); _vm->_hotspots[kHS18WalkArea2]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = kAS18OpenTopValveDone; break; @@ -3938,7 +3938,7 @@ void Scene18::updateAnimations() { _vm->playGnapUseDevice(0, 0); gameSys.insertSequence(0x20B, 19, 0, 0, kSeqNone, 0, 0, 0); _vm->_hotspots[kHS18WalkArea2]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18HydrantRightValve], 0, 0x107BA, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS18HydrantRightValve], 0, 0x107BA, 1); _vm->_hotspots[kHS18WalkArea2]._flags &= ~SF_WALKABLE; if (_vm->_gnap->_actionStatus == kAS18OpenRightValveNoGarbageCan) _vm->_gnap->_actionStatus = kAS18OpenRightValveNoGarbageCanDone; @@ -4107,7 +4107,7 @@ void Scene19::run() { gameSys.insertSequence(_currShopAssistantSequenceId, 20, 0, 0, kSeqNone, 0, 0, 0); _shopAssistantCtr = 0; _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(4, 9), -1, 0x107B9, 1); + _vm->_gnap->walkTo(Common::Point(4, 9), -1, 0x107B9, 1); updateHotspots(); } else { _currShopAssistantSequenceId = 0x6D; @@ -4118,8 +4118,8 @@ void Scene19::run() { _vm->_gnap->initPos(3, 6, kDirBottomRight); _vm->_plat->initPos(4, 6, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(4, 9), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(5, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(4, 9), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(5, 9), -1, 0x107C2, 1); } while (!_vm->_sceneDone) { @@ -4170,12 +4170,12 @@ void Scene19::run() { _vm->_isLeavingScene = true; _vm->_newSceneNum = 18; _vm->_hotspots[kHS19WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[1], 0, 0x107B2, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[1], 0, 0x107B2, 1); _vm->_gnap->_actionStatus = kAS19LeaveScene; if (_vm->isFlag(kGFPlatypusTalkingToAssistant)) _vm->setFlag(kGFUnk27); else - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[1] + Common::Point(1, 0), -1, 0x107C5, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[1] + Common::Point(1, 0), -1, 0x107C5, 1); _vm->_hotspots[kHS19WalkArea1]._flags &= ~SF_WALKABLE; } break; @@ -4191,7 +4191,7 @@ void Scene19::run() { break; case GRAB_CURSOR: if (!_vm->isFlag(kGFPictureTaken)) { - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS19GrabPicture; } break; @@ -4215,7 +4215,7 @@ void Scene19::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS19TalkShopAssistant; break; case GRAB_CURSOR: @@ -4243,7 +4243,7 @@ void Scene19::run() { _vm->playGnapMoan2(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], 0, -1, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], 0, -1, 1); _vm->playGnapIdle(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y); _vm->_gnap->_actionStatus = kAS19GrabToy; break; @@ -4266,7 +4266,7 @@ void Scene19::run() { _vm->playGnapScratchingHead(9, 1); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], 0, -1, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], 0, -1, 1); _vm->playGnapIdle(8, 2); _vm->_gnap->_actionStatus = kAS19UsePhone; break; @@ -4283,12 +4283,12 @@ void Scene19::run() { case kHS19WalkArea2: case kHS19WalkArea3: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = 0; } } diff --git a/engines/gnap/scenes/group2.cpp b/engines/gnap/scenes/group2.cpp index e02b2fa8b5..582aa5bae1 100644 --- a/engines/gnap/scenes/group2.cpp +++ b/engines/gnap/scenes/group2.cpp @@ -208,45 +208,45 @@ void Scene20::run() { } _vm->_gnap->initPos(11, 8, kDirBottomLeft); _vm->_plat->initPos(11, 9, kDirUnk4); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(6, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(6, 9), -1, 0x107C2, 1); } else { switch (_vm->_prevSceneNum) { case 17: _vm->_gnap->initPos(5, 11, kDirBottomRight); _vm->_plat->initPos(6, 11, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(6, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(6, 9), -1, 0x107C2, 1); break; case 18: _vm->_gnap->initPos(11, 8, kDirBottomLeft); _vm->_plat->initPos(11, 9, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(6, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(6, 9), -1, 0x107C2, 1); break; case 21: _vm->_gnap->initPos(-1, 8, kDirBottomLeft); _vm->_plat->initPos(-1, 9, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(3, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(3, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(3, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(3, 9), -1, 0x107C2, 1); break; case 22: _vm->_gnap->initPos(7, 6, kDirBottomRight); _vm->_plat->initPos(8, 6, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(9, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(9, 9), -1, 0x107C2, 1); break; default: _vm->_gnap->initPos(8, 6, kDirBottomLeft); _vm->_plat->initPos(9, 6, kDirUnk4); _vm->endSceneInit(); _vm->_hotspots[kHS20WalkArea2]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 9), -1, 0x107C2, 1); _vm->_hotspots[kHS20WalkArea2]._flags &= ~SF_WALKABLE; break; } @@ -302,9 +302,9 @@ void Scene20::run() { _vm->_timers[4] = 0; _vm->_isLeavingScene = true; _vm->_newSceneNum = 21; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20ExitParkingLot], 0, 0x107AF, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20ExitParkingLot], 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS20LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS20ExitParkingLot] + Common::Point(0, 1), -1, 0x107CF, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS20ExitParkingLot] + Common::Point(0, 1), -1, 0x107CF, 1); _vm->_plat->_idleFacing = kDirUnk4; } break; @@ -315,9 +315,9 @@ void Scene20::run() { _vm->_timers[4] = 0; _vm->_isLeavingScene = true; _vm->_newSceneNum = 17; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20ExitPhone], 0, 0x107AE, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20ExitPhone], 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS20LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS20ExitPhone] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS20ExitPhone] + Common::Point(1, 0), -1, 0x107C2, 1); } break; @@ -328,9 +328,9 @@ void Scene20::run() { _vm->_isLeavingScene = true; _vm->_newSceneNum = 18; _vm->_hotspots[kHS20WalkArea2]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20ExitOutsideToyStore], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20ExitOutsideToyStore], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS20LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS20ExitOutsideToyStore] + Common::Point(0, 1), -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS20ExitOutsideToyStore] + Common::Point(0, 1), -1, 0x107CD, 1); _vm->_hotspots[kHS20WalkArea2]._flags &= ~SF_WALKABLE; } break; @@ -341,9 +341,9 @@ void Scene20::run() { _vm->_timers[4] = 0; _vm->_isLeavingScene = true; _vm->_newSceneNum = 22; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20ExitInsideGrubCity] + Common::Point(0, - 1), 0, 0x107BB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20ExitInsideGrubCity] + Common::Point(0, - 1), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS20LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS20ExitInsideGrubCity] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS20ExitInsideGrubCity] + Common::Point(1, 0), -1, 0x107C2, 1); _vm->_plat->_idleFacing = kDirUnk4; } break; @@ -354,9 +354,9 @@ void Scene20::run() { _vm->_timers[4] = 0; _vm->_isLeavingScene = true; _vm->_newSceneNum = 24; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20ExitOutsideCircusWorld], 0, 0x107BB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20ExitOutsideCircusWorld], 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS20LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS20ExitOutsideCircusWorld] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS20ExitOutsideCircusWorld] + Common::Point(1, 0), -1, 0x107C2, 1); } break; @@ -371,7 +371,7 @@ void Scene20::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20StonerGuy], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20StonerGuy], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); if (_stonerGuyShowingJoint) _vm->_gnap->_actionStatus = kAS20GrabJoint; else @@ -379,7 +379,7 @@ void Scene20::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20StonerGuy], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20StonerGuy], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); if (_vm->isFlag(kGFJointTaken)) _vm->_gnap->_actionStatus = kAS20TalkStonerGuyNoJoint; else @@ -405,12 +405,12 @@ void Scene20::run() { case GRAB_CURSOR: _stonerGuyShowingJoint = false; _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS20GrabGroceryStoreGuy; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS20TalkGroceryStoreGuy; break; case PLAT_CURSOR: @@ -425,7 +425,7 @@ void Scene20::run() { if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemCowboyHat) { _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreHat], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreHat], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS20SwitchGroceryStoreHat; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS20GroceryStoreHat].x, _vm->_hotspotsWalkPos[kHS20GroceryStoreHat].y, 1, 6); @@ -437,7 +437,7 @@ void Scene20::run() { case GRAB_CURSOR: _stonerGuyShowingJoint = false; _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS20GrabGroceryStoreHat; break; case TALK_CURSOR: @@ -451,12 +451,12 @@ void Scene20::run() { case kHS20WalkArea1: case kHS20WalkArea2: - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -625,7 +625,7 @@ void Scene20::updateAnimations() { _vm->showCursor(); _vm->setGrabCursorSprite(kItemGroceryStoreHat); _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->gnapWalkTo(Common::Point(3, 8), -1, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(3, 8), -1, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = -1; break; case kAS20GrabJointDone: @@ -674,7 +674,7 @@ void Scene20::updateAnimations() { _currGroceryStoreGuySequenceId = 377; _nextGroceryStoreGuySequenceId = -1; _nextStonerGuySequenceId = -1; - _vm->gnapWalkTo(Common::Point(4, 8), -1, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(4, 8), -1, 0x107BB, 1); break; case 0x17C: gameSys.setAnimation(0, 0, 3); @@ -757,8 +757,8 @@ void Scene21::run() { if (!_vm->isFlag(kGFUnk04)) gameSys.insertSequence(0x8D, 59, 0, 0, kSeqNone, 0, 0, 0); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); } } else { _vm->_gnap->initPos(5, 11, kDirBottomRight); @@ -769,8 +769,8 @@ void Scene21::run() { _nextOldLadySequenceId = -1; _vm->_timers[4] = _vm->getRandom(30) + 50; _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); } while (!_vm->_sceneDone) { @@ -824,7 +824,7 @@ void Scene21::run() { _vm->playGnapScratchingHead(2, 5); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS21Banana].x, _vm->_hotspotsWalkPos[kHS21Banana].y) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS21Banana].x, _vm->_hotspotsWalkPos[kHS21Banana].y) | 0x10000, 1); _vm->playGnapPullOutDevice(2, 5); _vm->playGnapUseDevice(0, 0); _vm->_gnap->_actionStatus = kAS21GrabBanana; @@ -841,7 +841,7 @@ void Scene21::run() { if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemGroceryStoreHat) { _vm->_newSceneNum = 47; - _vm->gnapWalkTo(Common::Point(4, 6), 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(4, 6), 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS21UseHatWithOldLady; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(4, 6, 7, 4); @@ -853,13 +853,13 @@ void Scene21::run() { case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_hotspots[kHS21WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(Common::Point(7, 6), 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(7, 6), 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS21GrabOldLady; _vm->_hotspots[kHS21WalkArea1]._flags &= ~SF_WALKABLE; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS21OldLady], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS21OldLady], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS21TalkOldLady; break; case PLAT_CURSOR: @@ -874,20 +874,20 @@ void Scene21::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 20; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS21ExitOutsideGrubCity], 0, 0x107B3, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS21ExitOutsideGrubCity], 0, 0x107B3, 1); _vm->_gnap->_actionStatus = kAS21LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS21ExitOutsideGrubCity] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS21ExitOutsideGrubCity] + Common::Point(1, 0), -1, 0x107C2, 1); } break; case kHS21WalkArea1: case kHS21WalkArea2: - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1050,8 +1050,8 @@ void Scene22::run() { _vm->_gnap->initPos(11, _vm->_hotspotsWalkPos[kHS22ExitBackGrubCity].y, kDirBottomRight); _vm->_plat->initPos(11, _vm->_hotspotsWalkPos[kHS22ExitBackGrubCity].y + 1, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(9, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(9, 8), -1, 0x107C2, 1); } if (_vm->isFlag(kGFSceneFlag1)) { @@ -1134,9 +1134,9 @@ void Scene22::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 20; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS22ExitOutsideGrubCity], 0, 0x107AF, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS22ExitOutsideGrubCity], 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS22LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS22ExitOutsideGrubCity] + Common::Point(0, 1), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS22ExitOutsideGrubCity] + Common::Point(0, 1), -1, 0x107C2, 1); } break; @@ -1144,9 +1144,9 @@ void Scene22::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 23; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS22ExitBackGrubCity], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS22ExitBackGrubCity], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS22LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS22ExitBackGrubCity] + Common::Point(0, 1), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS22ExitBackGrubCity] + Common::Point(0, 1), -1, 0x107C2, 1); } break; @@ -1164,7 +1164,7 @@ void Scene22::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS22Cashier], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS22Cashier], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS22TalkCashier; break; case PLAT_CURSOR: @@ -1177,12 +1177,12 @@ void Scene22::run() { case kHS22WalkArea1: case kHS22WalkArea2: - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1298,12 +1298,12 @@ void Scene23::run() { gameSys.insertSequence(0xBF, 2, 0, 0, kSeqNone, 0, 0, 0); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(1, 7), -1, 0x107C2, 1); + _vm->_plat->walkTo(Common::Point(1, 7), -1, 0x107C2, 1); if (_vm->isFlag(kGFUnk24)) { - _vm->gnapWalkTo(Common::Point(2, 7), -1, 0x107B9, 1); + _vm->_gnap->walkTo(Common::Point(2, 7), -1, 0x107B9, 1); } else { - _vm->gnapWalkTo(Common::Point(2, 7), 0, 0x107B9, 1); + _vm->_gnap->walkTo(Common::Point(2, 7), 0, 0x107B9, 1); while (gameSys.getAnimationStatus(0) != 2) _vm->gameUpdateTick(); _vm->playSequences(0x48, 0xBA, 0xBB, 0xBC); @@ -1363,7 +1363,7 @@ void Scene23::run() { if (_vm->isFlag(kGFSceneFlag1)) _vm->playGnapMoan2(0, 0); else { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS23Cereals], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS23Cereals], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS23LookCereals; } break; @@ -1372,7 +1372,7 @@ void Scene23::run() { _vm->playGnapImpossible(0, 0); else { _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS23Cereals], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS23Cereals], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->setFlag(kGFSceneFlag1); _vm->_gnap->_actionStatus = kAS23GrabCereals; _vm->invAdd(kItemCereals); @@ -1391,21 +1391,21 @@ void Scene23::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 22; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS23ExitFrontGrubCity], 0, 0x107AF, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS23ExitFrontGrubCity], 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS23LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS23ExitFrontGrubCity] + Common::Point(0, -1), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS23ExitFrontGrubCity] + Common::Point(0, -1), -1, 0x107C2, 1); } break; case kHS23WalkArea1: case kHS23WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1566,14 +1566,14 @@ void Scene24::run() { _vm->_gnap->initPos(1, 8, kDirBottomRight); _vm->_plat->initPos(2, 8, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(1, 9), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(2, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(1, 9), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(2, 9), -1, 0x107C2, 1); } else { _vm->_gnap->initPos(8, 8, kDirBottomLeft); _vm->_plat->initPos(8, 8, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(3, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(3, 8), -1, 0x107C2, 1); } while (!_vm->_sceneDone) { @@ -1624,9 +1624,9 @@ void Scene24::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 25; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS24ExitCircusWorld], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS24ExitCircusWorld], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS24LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS24ExitCircusWorld] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS24ExitCircusWorld] + Common::Point(1, 0), -1, 0x107C2, 1); } break; @@ -1635,9 +1635,9 @@ void Scene24::run() { _vm->_isLeavingScene = true; _vm->_newSceneNum = 20; _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS24ExitOutsideGrubCity], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS24ExitOutsideGrubCity], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS24LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS24ExitOutsideGrubCity] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS24ExitOutsideGrubCity] + Common::Point(1, 0), -1, 0x107C2, 1); } break; @@ -1645,12 +1645,12 @@ void Scene24::run() { case kHS24WalkArea2: case kHS24WalkArea3: if (_vm->_gnap->_actionStatus == -1) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1815,14 +1815,14 @@ void Scene25::run() { _vm->_gnap->initPos(5, 11, kDirUpLeft); _vm->_plat->initPos(6, 11, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(5, 7), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(6, 7), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 7), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(6, 7), -1, 0x107C2, 1); } else { _vm->_gnap->initPos(5, 6, kDirBottomRight); _vm->_plat->initPos(6, 6, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); } while (!_vm->_sceneDone) { @@ -1870,7 +1870,7 @@ void Scene25::run() { if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemTickets) { _vm->_gnap->_actionStatus = kAS25ShowTicketToVendor; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS25TicketVendor], 0, _vm->_gnap->getSequenceId(gskIdle, 9, 4) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS25TicketVendor], 0, _vm->_gnap->getSequenceId(gskIdle, 9, 4) | 0x10000, 1); _vm->playGnapPullOutDevice(0, 0); _vm->playGnapUseDevice(0, 0); } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -1884,7 +1884,7 @@ void Scene25::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS25TicketVendor], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS25TicketVendor], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS25TalkTicketVendor; break; case GRAB_CURSOR: @@ -1900,9 +1900,9 @@ void Scene25::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 24; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS25ExitOutsideCircusWorld], 0, 0x107B4, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS25ExitOutsideCircusWorld], 0, 0x107B4, 1); _vm->_gnap->_actionStatus = kAS25LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS25ExitOutsideCircusWorld] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS25ExitOutsideCircusWorld] + Common::Point(1, 0), -1, 0x107C2, 1); } break; @@ -1912,13 +1912,13 @@ void Scene25::run() { _vm->_isLeavingScene = true; _vm->_newSceneNum = 26; _vm->_hotspots[kHS25WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS25ExitInsideCircusWorld], 0, 0x107B1, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS25ExitInsideCircusWorld], 0, 0x107B1, 1); _vm->_gnap->_actionStatus = kAS25LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS25ExitInsideCircusWorld] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS25ExitInsideCircusWorld] + Common::Point(1, 0), -1, 0x107C2, 1); _vm->_hotspots[kHS25WalkArea1]._flags &= ~SF_WALKABLE; } else { _vm->_hotspots[kHS25WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(Common::Point(4, 5), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(4, 5), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS25EnterCircusWihoutTicket; _vm->_hotspots[kHS25WalkArea1]._flags &= ~SF_WALKABLE; } @@ -1935,7 +1935,7 @@ void Scene25::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], -1, -1, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot], -1, -1, 1); if (_vm->_sceneClickedHotspot == 5 || _vm->_sceneClickedHotspot == 6) _vm->_gnap->_idleFacing = kDirUpLeft; else if (_vm->_sceneClickedHotspot == 8) @@ -1958,12 +1958,12 @@ void Scene25::run() { case kHS25WalkArea1: case kHS25WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -2044,7 +2044,7 @@ void Scene25::updateAnimations() { _nextTicketVendorSequenceId = -1; _vm->_hotspots[kHS25WalkArea1]._flags |= SF_WALKABLE; _vm->playGnapIdle(0, 0); - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3], -1, 0x107BB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[3], -1, 0x107BB, 1); _vm->_hotspots[kHS25WalkArea1]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = kAS25EnterCircusWihoutTicketDone; break; @@ -2133,8 +2133,8 @@ void Scene26::run() { _vm->_gnap->initPos(-1, 8, kDirBottomRight); _vm->_plat->initPos(-2, 8, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(1, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 8), -1, 0x107C2, 1); } else { _vm->_gnap->initPos(2, 8, kDirBottomRight); _vm->_plat->initPos(3, 8, kDirNone); @@ -2186,7 +2186,7 @@ void Scene26::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 25; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitOutsideCircusWorld].y), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitOutsideCircusWorld].y), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS26LeaveScene; } break; @@ -2195,7 +2195,7 @@ void Scene26::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 27; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitOutsideClown].y), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitOutsideClown].y), 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS26LeaveScene; } break; @@ -2204,7 +2204,7 @@ void Scene26::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 29; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitArcade].y), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitArcade].y), 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS26LeaveScene; } break; @@ -2213,7 +2213,7 @@ void Scene26::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 30; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitElephant].y), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitElephant].y), 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS26LeaveScene; } break; @@ -2222,7 +2222,7 @@ void Scene26::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 31; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitBeerStand].y), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS26ExitBeerStand].y), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS26LeaveScene; } break; @@ -2230,12 +2230,12 @@ void Scene26::run() { case kHS26WalkArea1: case kHS26WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -2350,22 +2350,22 @@ void Scene27::run() { _vm->_gnap->initPos(7, 12, kDirBottomRight); _vm->_plat->initPos(6, 12, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(7, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(7, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); break; case 29: _vm->_gnap->initPos(-1, 8, kDirBottomRight); _vm->_plat->initPos(-1, 9, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(3, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(3, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(3, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(3, 9), -1, 0x107C2, 1); break; case 31: _vm->_gnap->initPos(12, 8, kDirBottomLeft); _vm->_plat->initPos(12, 9, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(8, 9), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(8, 9), -1, 0x107C2, 1); break; default: _vm->_gnap->initPos(6, 8, kDirBottomRight); @@ -2420,7 +2420,7 @@ void Scene27::run() { if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemPicture) { _vm->_gnap->_idleFacing = kDirUpLeft; - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS27Janitor], 0, 0x107BC, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS27Janitor], 0, 0x107BC, 1)) _vm->_gnap->_actionStatus = kAS27ShowPictureToJanitor; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS27Janitor].x, _vm->_hotspotsWalkPos[kHS27Janitor].y, 7, 3); @@ -2431,7 +2431,7 @@ void Scene27::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS27Janitor], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS27Janitor], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS27TalkJanitor; break; case GRAB_CURSOR: @@ -2454,7 +2454,7 @@ void Scene27::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS27Bucket].x, _vm->_hotspotsWalkPos[kHS27Bucket].y) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS27Bucket].x, _vm->_hotspotsWalkPos[kHS27Bucket].y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS27GrabBucket; break; case TALK_CURSOR: @@ -2470,9 +2470,9 @@ void Scene27::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 26; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS27ExitCircus].y), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS27ExitCircus].y), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS27LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS27ExitCircus] + Common::Point(1, 0), -1, 0x107C7, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS27ExitCircus] + Common::Point(1, 0), -1, 0x107C7, 1); } break; @@ -2480,9 +2480,9 @@ void Scene27::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 29; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS27ExitArcade].y), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS27ExitArcade].y), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS27LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS27ExitArcade] + Common::Point(0, 1), -1, 0x107CF, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS27ExitArcade] + Common::Point(0, 1), -1, 0x107CF, 1); } break; @@ -2490,9 +2490,9 @@ void Scene27::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 31; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS27ExitBeerStand].y), 0, 0x107AB, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS27ExitBeerStand].y), 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS27LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS27ExitBeerStand] + Common::Point(0, 1), -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS27ExitBeerStand] + Common::Point(0, 1), -1, 0x107CD, 1); } break; @@ -2501,12 +2501,12 @@ void Scene27::run() { if (_vm->isFlag(kGFPlatypus)) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 28; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS27ExitClown], 0, 0x107AD, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS27ExitClown], 0, 0x107AD, 1); _vm->_gnap->_actionStatus = kAS27LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS27ExitClown] + Common::Point(1, 0), -1, 0x107C4, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS27ExitClown] + Common::Point(1, 0), -1, 0x107C4, 1); } else { _vm->_hotspots[kHS27WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS27ExitClown].x, 7), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS27ExitClown].x, 7), 0, 0x107BC, 1); _vm->_hotspots[kHS27WalkArea1]._flags &= SF_WALKABLE; _vm->_gnap->_actionStatus = kAS27TryEnterClownTent; } @@ -2515,12 +2515,12 @@ void Scene27::run() { case kHS27WalkArea1: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -2614,12 +2614,12 @@ void Scene27::updateAnimations() { break; case kAS27TryEnterClownTentDone: _vm->_hotspots[kHS27WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[7].x, 9), -1, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[7].x, 9), -1, 0x107BC, 1); _vm->_hotspots[kHS27WalkArea1]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = -1; break; case kAS27EnterClownTent: - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107B2, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, 0x107B2, 1); _vm->_gnap->_actionStatus = kAS27LeaveScene; break; case kAS27LeaveScene: @@ -2799,14 +2799,14 @@ void Scene28::run() { case GRAB_CURSOR: if (_vm->isFlag(kGFUnk21)) { if (!_vm->invHas(kItemHorn)) { - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS28Horn].x, _vm->_hotspotsWalkPos[kHS28Horn].y) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS28Horn].x, _vm->_hotspotsWalkPos[kHS28Horn].y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS28GrabHornSuccess; } } else { _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(Common::Point(2, 8), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), 0, 0x107BB, 1); _vm->_hotspots[kHS28WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS28Horn], 0, 0x107BB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS28Horn], 0, 0x107BB, 1); _vm->_hotspots[kHS28WalkArea1]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = kAS28GrabHornFails; } @@ -2829,13 +2829,13 @@ void Scene28::run() { _vm->playGnapImpossible(0, 0); } else if (_vm->_grabCursorSpriteIndex == kItemBucketWithBeer) { _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS28Clown], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS28Clown], 0, 0x107BC, 1); _vm->playGnapPullOutDevice(0, 0); _vm->playGnapUseDevice(0, 0); _vm->_gnap->_actionStatus = kAS28UseBeerBucketWithClown; } else if (_vm->_grabCursorSpriteIndex == kItemBucketWithPill) { _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS28Clown], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS28Clown], 0, 0x107BC, 1); _vm->playGnapPullOutDevice(0, 0); _vm->playGnapUseDevice(0, 0); _vm->_gnap->_actionStatus = kAS28UsePillBucketWithClown; @@ -2848,7 +2848,7 @@ void Scene28::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(Common::Point(5, 8), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS28TalkClown; break; case GRAB_CURSOR: @@ -2865,10 +2865,10 @@ void Scene28::run() { _vm->_isLeavingScene = true; _vm->_newSceneNum = 27; _vm->_hotspots[kHS28WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS28ExitOutsideClown], 0, 0x107BF, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS28ExitOutsideClown], 0, 0x107BF, 1); _vm->_gnap->_actionStatus = kAS28LeaveScene; _vm->_hotspots[kHS28WalkArea1]._flags &= ~SF_WALKABLE; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS28ExitOutsideClown] + Common::Point(-1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS28ExitOutsideClown] + Common::Point(-1, 0), -1, 0x107C2, 1); } break; @@ -2884,7 +2884,7 @@ void Scene28::run() { _vm->playGnapScratchingHead(8, 6); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS28EmptyBucket].x, _vm->_hotspotsWalkPos[kHS28EmptyBucket].y) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS28EmptyBucket].x, _vm->_hotspotsWalkPos[kHS28EmptyBucket].y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS28GrabEmptyBucket; break; case TALK_CURSOR: @@ -2899,12 +2899,12 @@ void Scene28::run() { case kHS28WalkArea1: case kHS28WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -3003,7 +3003,7 @@ void Scene28::updateAnimations() { _currClownSequenceId = 0x11B; _nextClownSequenceId = -1; _vm->_gnap->_actionStatus = -1; - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107BB, 1); break; case kAS28TalkClown: _clownTalkCtr = (_clownTalkCtr + 1) % 2; @@ -3127,14 +3127,14 @@ void Scene29::run() { _vm->_gnap->initPos(12, 7, kDirBottomRight); _vm->_plat->initPos(12, 8, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 7), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(8, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(8, 7), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(8, 8), -1, 0x107C2, 1); } else { _vm->_gnap->initPos(-1, 7, kDirBottomRight); _vm->_plat->initPos(-2, 7, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(2, 7), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(1, 7), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 7), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 7), -1, 0x107C2, 1); } while (!_vm->_sceneDone) { @@ -3182,7 +3182,7 @@ void Scene29::run() { if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemBanana) { _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS29Monkey], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS29Monkey], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS29UseBananaWithMonkey; _vm->_newSceneNum = 51; _vm->_isLeavingScene = true; @@ -3210,9 +3210,9 @@ void Scene29::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 26; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS29ExitCircus], 0, 0x107AE, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS29ExitCircus], 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS29LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS29ExitCircus] + Common::Point(1, 0), -1, -1, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS29ExitCircus] + Common::Point(1, 0), -1, -1, 1); } break; @@ -3220,9 +3220,9 @@ void Scene29::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 27; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS29ExitOutsideClown], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS29ExitOutsideClown], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS29LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS29ExitOutsideClown] + Common::Point(0, -1), -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS29ExitOutsideClown] + Common::Point(0, -1), -1, 0x107CD, 1); } break; @@ -3232,7 +3232,7 @@ void Scene29::run() { _vm->setGrabCursorSprite(-1); _vm->_isLeavingScene = true; _vm->_newSceneNum = 52; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS29Aracde], 0, -1, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS29Aracde], 0, -1, 1); _vm->playGnapIdle(_vm->_hotspotsWalkPos[kHS29Aracde].x, _vm->_hotspotsWalkPos[kHS29Aracde].y); _vm->_gnap->_actionStatus = kAS29LeaveScene; } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -3254,12 +3254,12 @@ void Scene29::run() { case kHS29WalkArea1: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -3351,7 +3351,7 @@ void Scene29::updateAnimations() { _vm->_timers[5] = 30; while (_vm->_timers[5]) _vm->gameUpdateTick(); - _vm->platypusWalkTo(Common::Point(0, 8), 1, 0x107CF, 1); + _vm->_plat->walkTo(Common::Point(0, 8), 1, 0x107CF, 1); while (gameSys.getAnimationStatus(1) != 2) _vm->gameUpdateTick(); } else if (_nextMonkeySequenceId == -1) { diff --git a/engines/gnap/scenes/group3.cpp b/engines/gnap/scenes/group3.cpp index 8a91123571..99cd34be69 100644 --- a/engines/gnap/scenes/group3.cpp +++ b/engines/gnap/scenes/group3.cpp @@ -67,8 +67,8 @@ void Scene30::run() { _vm->_gnap->initPos(7, 12, kDirBottomRight); _vm->_plat->initPos(6, 12, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(7, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(7, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); while (!_vm->_sceneDone) { _vm->updateMouseCursor(); @@ -115,7 +115,7 @@ void Scene30::run() { if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemDiceQuarterHole && !_vm->isFlag(kGFUnk23)) { _vm->_hotspots[kHS30WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS30PillMachine], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS30PillMachine], 0, 0x107BC, 1); _vm->_hotspots[kHS30WalkArea1]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = kAS30UsePillMachine; hasTakenPill = true; @@ -124,7 +124,7 @@ void Scene30::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->gnapWalkTo(Common::Point(9, 8), 0, 0x107BC, 1); + _vm->_gnap->walkTo(Common::Point(9, 8), 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS30LookPillMachine; break; case GRAB_CURSOR: @@ -146,20 +146,20 @@ void Scene30::run() { _vm->_newSceneNum = 47; else _vm->_newSceneNum = 26; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS30ExitCircus].y), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS30ExitCircus].y), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS30LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS30ExitCircus] + Common::Point(1, 0), -1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS30ExitCircus] + Common::Point(1, 0), -1, 0x107C2, 1); } break; case kHS30WalkArea1: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -254,7 +254,7 @@ void Scene30::updateAnimations() { break; case kAS30UsePillMachine4: gameSys.insertSequence(0x106, 1, 0, 0, kSeqNone, 0, 0, 0); - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS30PillMachine] + Common::Point(0, 1), -1, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS30PillMachine] + Common::Point(0, 1), -1, 0x107BC, 1); _vm->_gnap->_actionStatus = -1; break; case kAS30LookPillMachine: @@ -315,14 +315,14 @@ void Scene31::run() { _vm->_gnap->initPos(-1, 8, kDirBottomLeft); _vm->_plat->initPos(-1, 9, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(3, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(3, 9), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(3, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(3, 9), -1, 0x107D2, 1); } else { _vm->_gnap->initPos(7, 12, kDirBottomRight); _vm->_plat->initPos(6, 12, kDirNone); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(7, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(7, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107D2, 1); } while (!_vm->_sceneDone) { @@ -381,9 +381,9 @@ void Scene31::run() { _vm->playGnapScratchingHead(2, 2); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown] + Common::Point(0, 1), -1, -1, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown] + Common::Point(0, 1), -1, -1, 1); _vm->_hotspots[kHS31WalkArea1]._flags |= SF_WALKABLE; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown], 0, 0x107B9, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown], 0, 0x107B9, 1); _vm->_hotspots[kHS31WalkArea1]._flags &= ~SF_WALKABLE; _vm->_gnap->_actionStatus = kAS31UseMeasuringClown; _vm->_timers[4] = 300; @@ -394,9 +394,9 @@ void Scene31::run() { case PLAT_CURSOR: if (!_vm->invHas(kItemBucketWithBeer)) { _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown] + Common::Point(0, 1), 1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown] + Common::Point(0, 1), 1, 0x107C2, 1); _vm->_hotspots[kHS31WalkArea1]._flags |= SF_WALKABLE; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown], 1, 0x107C2, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown], 1, 0x107C2, 1); _vm->_hotspots[kHS31WalkArea1]._flags &= ~SF_WALKABLE; _vm->_plat->_actionStatus = kAS31PlatMeasuringClown; _vm->_gnap->_actionStatus = kAS31PlatMeasuringClown; @@ -413,12 +413,12 @@ void Scene31::run() { if (_vm->_gnap->_actionStatus < 0 || _vm->_gnap->_actionStatus == kAS31PlatMeasuringClown) { if (_vm->_grabCursorSpriteIndex == kItemEmptyBucket && _beerGuyDistracted) { _vm->setGrabCursorSprite(-1); - _vm->gnapWalkTo(_vm->_gnap->_pos, -1, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS31BeerBarrel].x, _vm->_hotspotsWalkPos[kHS31BeerBarrel].y) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, -1, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS31BeerBarrel].x, _vm->_hotspotsWalkPos[kHS31BeerBarrel].y) | 0x10000, 1); _clerkMeasureMaxCtr += 5; gameSys.insertSequence(0xF8, 59, 0, 0, kSeqNone, 0, 0, 0); _vm->playGnapPullOutDevice(6, 8); _vm->playGnapUseDevice(0, 0); - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS31BeerBarrel], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS31BeerBarrel], 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS31FillEmptyBucketWithBeer; _vm->_timers[4] = 300; } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -432,7 +432,7 @@ void Scene31::run() { if (_beerGuyDistracted) { _vm->playGnapScratchingHead(6, 2); } else { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS31BeerBarrel], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS31BeerBarrel], 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS31UseBeerBarrel; _vm->_gnap->_idleFacing = kDirUpLeft; } @@ -450,9 +450,9 @@ void Scene31::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 26; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS31ExitCircus].y), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS31ExitCircus].y), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS31LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS31ExitCircus] + Common::Point(1, 0), -1, -1, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS31ExitCircus] + Common::Point(1, 0), -1, -1, 1); } break; @@ -460,20 +460,20 @@ void Scene31::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 27; - _vm->gnapWalkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS31ExitOutsideClown].y), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(-1, _vm->_hotspotsWalkPos[kHS31ExitOutsideClown].y), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS31LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS31ExitOutsideClown] + Common::Point(0, 1), -1, 0x107CF, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS31ExitOutsideClown] + Common::Point(0, 1), -1, 0x107CF, 1); } break; case kHS31WalkArea1: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -667,8 +667,8 @@ void Scene32::run() { _vm->_gnap->initPos(11, 6, kDirBottomLeft); _vm->_plat->initPos(12, 6, kDirUnk4); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(9, 6), -1, 0x107D2, 1); - _vm->gnapWalkTo(Common::Point(8, 6), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 6), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(8, 6), -1, 0x107BA, 1); } else { _vm->_gnap->initPos(1, 6, kDirBottomRight); _vm->_plat->initPos(1, 7, kDirNone); @@ -719,9 +719,9 @@ void Scene32::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->setGrabCursorSprite(-1); - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS32ExitTruck], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS32ExitTruck], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS32LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS32ExitTruck] + Common::Point(0, 1), -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS32ExitTruck] + Common::Point(0, 1), -1, 0x107CD, 1); _vm->_newSceneNum = 33; } break; @@ -735,13 +735,13 @@ void Scene32::run() { case kHS32WalkArea7: case kHS32WalkArea8: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; } if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = 0; } @@ -829,8 +829,8 @@ void Scene33::run() { _vm->_gnap->initPos(11, 7, kDirBottomLeft); _vm->_plat->initPos(12, 7, kDirUnk4); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 7), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 7), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(8, 7), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 7), -1, 0x107D2, 1); break; case 37: _vm->_gnap->initPos(7, 7, kDirBottomRight); @@ -841,8 +841,8 @@ void Scene33::run() { _vm->_gnap->initPos(-1, 6, kDirBottomRight); _vm->_plat->initPos(-1, 7, kDirNone); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(2, 7), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(2, 7), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); break; default: _vm->_gnap->initPos(3, 7, kDirBottomRight); @@ -899,14 +899,14 @@ void Scene33::run() { switch (_vm->_verbCursor) { case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirBottomRight; - if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS33Chicken], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1)) + if (_vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS33Chicken], 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1)) _vm->_gnap->_actionStatus = kAS33UseChicken; else _vm->_gnap->_actionStatus = -1; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS33Chicken], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS33Chicken], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS33TalkChicken; break; case LOOK_CURSOR: @@ -924,9 +924,9 @@ void Scene33::run() { _vm->_gnap->_actionStatus = kAS33LeaveScene; _vm->_newSceneNum = 37; if (_vm->_gnap->_pos.x > 6) - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AD, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, 0x107AD, 1); else - _vm->gnapWalkTo(Common::Point(6, 7), 0, 0x107B1, 1); + _vm->_gnap->walkTo(Common::Point(6, 7), 0, 0x107B1, 1); } break; @@ -936,18 +936,18 @@ void Scene33::run() { _vm->_gnap->_actionStatus = kAS33LeaveScene; _vm->_newSceneNum = 35; if (_vm->_gnap->_pos.x > 7) - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AD, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, 0x107AD, 1); else - _vm->gnapWalkTo(Common::Point(7, 7), 0, 0x107B1, 1); + _vm->_gnap->walkTo(Common::Point(7, 7), 0, 0x107B1, 1); } break; case kHS33ExitCreek: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS33ExitCreek], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS33ExitCreek], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS33LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS33ExitCreek], -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS33ExitCreek], -1, 0x107CD, 1); _vm->_newSceneNum = 34; } break; @@ -955,9 +955,9 @@ void Scene33::run() { case kHS33ExitPigpen: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS33ExitPigpen], 0, 0x107AF, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS33ExitPigpen], 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS33LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS33ExitPigpen], -1, 0x107CF, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS33ExitPigpen], -1, 0x107CF, 1); _vm->_newSceneNum = 32; } break; @@ -965,12 +965,12 @@ void Scene33::run() { case kHS33WalkArea1: case kHS33WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1172,7 +1172,7 @@ void Scene38::run() { _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy; } else { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(-1, -1), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS38LeaveScene; _vm->_newSceneNum = 37; } @@ -1186,7 +1186,7 @@ void Scene38::run() { } else if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor) { _vm->_sceneWaiting = false; _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(5, 7), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(5, 7), 0, 0x107BB, 1); _vm->_newSceneNum = 39; _vm->_gnap->_actionStatus = kAS38ExitCave; } @@ -1215,8 +1215,8 @@ void Scene38::run() { if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor) _vm->playGnapImpossible(0, 0); else { - _vm->gnapWalkTo(Common::Point(3, 6), 0, 0x107BB, 1); - _vm->platypusWalkTo(Common::Point(4, 8), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(3, 6), 0, 0x107BB, 1); + _vm->_plat->walkTo(Common::Point(4, 8), -1, -1, 1); _vm->_gnap->_actionStatus = kAS38UseHuntingTrophy; } break; @@ -1243,7 +1243,7 @@ void Scene38::run() { if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy) _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy; else if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: @@ -1251,7 +1251,7 @@ void Scene38::run() { if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy) _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy; else if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; @@ -1327,7 +1327,7 @@ void Scene38::updateAnimations() { _vm->_gnap->_idleFacing = kDirBottomRight; if (_vm->_isLeavingScene) { _vm->_sceneWaiting = false; - _vm->gnapWalkTo(Common::Point(5, 7), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(5, 7), 0, 0x107BB, 1); _vm->_newSceneNum = 39; _vm->_gnap->_actionStatus = kAS38ExitCave; } else { @@ -1355,7 +1355,7 @@ void Scene38::updateAnimations() { _vm->_plat->playSequence(0x107D5); else _vm->_plat->playSequence(0x107D4); - _vm->platypusWalkTo(Common::Point(8, 7), -1, 0x107D2, 1); + _vm->_plat->walkTo(Common::Point(8, 7), -1, 0x107D2, 1); gameSys.insertSequence(0xA1, _vm->_gnap->_id + 1, _vm->_plat->_sequenceId | (_vm->_plat->_sequenceDatNum << 16), _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); _vm->_plat->_sequenceId = 0xA1; _vm->_plat->_sequenceDatNum = 0; @@ -1478,7 +1478,7 @@ void Scene39::run() { if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; _vm->_sceneDone = true; - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_gnap->_pos, 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS39LeaveScene; _vm->_newSceneNum = 40; } @@ -1491,7 +1491,7 @@ void Scene39::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS39Sign], 0, -1, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS39Sign], 0, -1, 1); _vm->playGnapIdle(_vm->_hotspotsWalkPos[kHS39Sign].x, _vm->_hotspotsWalkPos[kHS39Sign].y); _vm->showFullScreenSprite(0x1C); break; @@ -1516,12 +1516,12 @@ void Scene39::run() { case kHS39WalkArea1: case kHS39WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; default: if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } break; diff --git a/engines/gnap/scenes/group4.cpp b/engines/gnap/scenes/group4.cpp index b805c1052c..7d7be662dc 100644 --- a/engines/gnap/scenes/group4.cpp +++ b/engines/gnap/scenes/group4.cpp @@ -276,14 +276,14 @@ void Scene41::run() { _vm->_gnap->initPos(-1, 8, kDirUpRight); _vm->_plat->initPos(-2, 8, kDirUpLeft); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(1, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); } else if (_vm->_prevSceneNum == 42) { _vm->_gnap->initPos(11, 8, kDirUpRight); _vm->_plat->initPos(11, 9, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 8), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 8), -1, 0x107D2, 1); } else { _vm->_gnap->initPos(5, 8, kDirBottomRight); _vm->_plat->initPos(6, 8, kDirBottomLeft); @@ -374,31 +374,31 @@ void Scene41::run() { case kHS41ExitCave: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS41ExitCave], 0, 0x107AE, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS41ExitCave], 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS41LeaveScene; _vm->_newSceneNum = 40; break; case kHS41Exit: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS41Exit].x, -1), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS41Exit].x, -1), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS41LeaveScene; - _vm->platypusWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS41Exit].x, -1), -1, 0x107CF, 1); + _vm->_plat->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS41Exit].x, -1), -1, 0x107CF, 1); _vm->_newSceneNum = 45; break; case kHS41ExitBBQ: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS41ExitBBQ].x, -1), 0, 0x107AB, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS41ExitBBQ].x, -1), 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS41LeaveScene; - _vm->platypusWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS41ExitBBQ].x, -1), -1, 0x107CD, 1); + _vm->_plat->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS41ExitBBQ].x, -1), -1, 0x107CD, 1); _vm->_newSceneNum = 42; break; case kHS41ToyVendor: if (_vm->_grabCursorSpriteIndex == kItemDiceQuarterHole) { _vm->_gnap->_actionStatus = kAS41UseQuarterWithToyVendor; - _vm->gnapWalkTo(Common::Point(4, 7), 0, 0x107BB, 9); + _vm->_gnap->walkTo(Common::Point(4, 7), 0, 0x107BB, 9); _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 5, 0); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(4, 7, 5, 0); @@ -412,7 +412,7 @@ void Scene41::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(Common::Point(4, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(4, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS41TalkToyVendor; break; case PLAT_CURSOR: @@ -424,7 +424,7 @@ void Scene41::run() { case kHS41Kid: if (_vm->_grabCursorSpriteIndex == kItemChickenBucket) { - _vm->gnapWalkTo(Common::Point(7, 7), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(7, 7), 0, 0x107BB, 1); _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_actionStatus = kAS41UseChickenBucketWithKid; } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -435,13 +435,13 @@ void Scene41::run() { _vm->playGnapScratchingHead(9, 0); break; case GRAB_CURSOR: - _vm->gnapWalkTo(Common::Point(7, 7), 0, 0x107BB, 1); + _vm->_gnap->walkTo(Common::Point(7, 7), 0, 0x107BB, 1); _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnap->_actionStatus = kAS41GrabKid; break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(Common::Point(7, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(7, 7), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); break; case PLAT_CURSOR: _vm->playGnapImpossible(0, 0); @@ -460,7 +460,7 @@ void Scene41::run() { case kHS41WalkArea1: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; } } @@ -503,7 +503,7 @@ void Scene41::run() { _vm->_toyUfoActionStatus = kAS41ToyUfoRefresh; _vm->toyUfoFlyTo(-1, -1, 0, 799, 0, 300, 2); } else { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } } @@ -788,20 +788,20 @@ void Scene42::run() { _vm->_gnap->initPos(-1, 8, kDirUpRight); _vm->_plat->initPos(-1, 9, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(1, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 8), -1, 0x107C2, 1); } else if (_vm->_prevSceneNum == 43) { _vm->_gnap->initPos(11, 8, kDirUpRight); _vm->_plat->initPos(11, 9, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 8), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 8), -1, 0x107D2, 1); } else { _vm->_gnap->initPos(5, 11, kDirUpRight); _vm->_plat->initPos(6, 11, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); } while (!_vm->_sceneDone) { @@ -886,34 +886,34 @@ void Scene42::run() { case kHS42ExitUfoParty: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS42ExitUfoParty].y), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS42ExitUfoParty].y), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS42LeaveScene; - _vm->platypusWalkTo(Common::Point(_vm->_plat->_pos.x, _vm->_hotspotsWalkPos[kHS42ExitUfoParty].y), -1, 0x107C7, 1); + _vm->_plat->walkTo(Common::Point(_vm->_plat->_pos.x, _vm->_hotspotsWalkPos[kHS42ExitUfoParty].y), -1, 0x107C7, 1); _vm->_newSceneNum = 40; break; case kHS42ExitToyStand: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS42ExitToyStand].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS42ExitToyStand].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS42LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS42ExitToyStand], -1, 0x107CF, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS42ExitToyStand], -1, 0x107CF, 1); _vm->_newSceneNum = 41; break; case kHS42ExitUfo: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS42ExitUfo].x, _vm->_gnap->_pos.y), 0, 0x107AB, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS42ExitUfo].x, _vm->_gnap->_pos.y), 0, 0x107AB, 1); _vm->_gnap->_actionStatus = kAS42LeaveScene; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS42ExitUfo], -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS42ExitUfo], -1, 0x107CD, 1); _vm->_newSceneNum = 43; break; case kHS42BBQVendor: if (_vm->_grabCursorSpriteIndex == kItemDiceQuarterHole) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS42BBQVendor], 0, 0x107BB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS42BBQVendor], 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS42UseQuarterWithBBQVendor; if (_vm->_plat->_pos.y < 9) - _vm->platypusWalkTo(Common::Point(_vm->_plat->_pos.x, 9), -1, -1, 1); + _vm->_plat->walkTo(Common::Point(_vm->_plat->_pos.x, 9), -1, -1, 1); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS42BBQVendor].x, _vm->_hotspotsWalkPos[kHS42BBQVendor].y, _vm->_hotspotsWalkPos[kHS42BBQVendor].x + 1, 0); } else { @@ -923,7 +923,7 @@ void Scene42::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS42BBQVendor], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS42BBQVendor], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS42TalkBBQVendor; break; case GRAB_CURSOR: @@ -943,7 +943,7 @@ void Scene42::run() { _vm->playGnapScratchingHead(_vm->_hotspotsWalkPos[kHS42ChickenLeg].x - 1, 0); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS42ChickenLeg], 0, 0x107BC, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS42ChickenLeg], 0, 0x107BC, 1); _vm->_gnap->_actionStatus = kAS42GrabChickenLeg; break; case TALK_CURSOR: @@ -957,7 +957,7 @@ void Scene42::run() { case kHS42WalkArea1: case kHS42WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; } @@ -969,7 +969,7 @@ void Scene42::run() { _vm->_toyUfoActionStatus = kAS42ToyUfoRefresh; _vm->toyUfoFlyTo(-1, -1, 0, 799, 0, 300, 3); } else { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } } @@ -1230,28 +1230,28 @@ void Scene43::run() { _vm->_gnap->initPos(-1, 8, kDirUpRight); _vm->_plat->initPos(-1, 9, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(1, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 8), -1, 0x107C2, 1); break; case 44: _vm->_gnap->initPos(11, 8, kDirUpRight); _vm->_plat->initPos(11, 9, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 8), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 8), -1, 0x107D2, 1); break; case 54: _vm->_gnap->initPos(4, 7, kDirBottomLeft); _vm->_plat->initPos(11, 8, kDirUpLeft); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(9, 8), -1, 0x107D2, 1); + _vm->_plat->walkTo(Common::Point(9, 8), -1, 0x107D2, 1); break; default: _vm->_gnap->initPos(5, 11, kDirUpRight); _vm->_plat->initPos(6, 11, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); break; } } @@ -1344,25 +1344,25 @@ void Scene43::run() { case kHS43ExitUfoParty: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS43ExitUfoParty], 0, 0x107AE, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS43ExitUfoParty], 0, 0x107AE, 1); _vm->_gnap->_actionStatus = 0; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS43ExitUfoParty], -1, 0x107C7, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS43ExitUfoParty], -1, 0x107C7, 1); _vm->_newSceneNum = 40; break; case kHS43ExitBBQ: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS43ExitBBQ].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS43ExitBBQ].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = 0; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS43ExitBBQ], -1, 0x107CF, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS43ExitBBQ], -1, 0x107CF, 1); _vm->_newSceneNum = 42; break; case kHS43ExitKissinBooth: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS43ExitKissinBooth].x, _vm->_gnap->_pos.y), 0, 0x107AB, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS43ExitKissinBooth].x, _vm->_gnap->_pos.y), 0, 0x107AB, 1); _vm->_gnap->_actionStatus = 0; - _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS43ExitKissinBooth], -1, 0x107CD, 1); + _vm->_plat->walkTo(_vm->_hotspotsWalkPos[kHS43ExitKissinBooth], -1, 0x107CD, 1); _vm->_newSceneNum = 44; break; @@ -1376,7 +1376,7 @@ void Scene43::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(Common::Point(5, 8), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = 2; break; case GRAB_CURSOR: @@ -1398,7 +1398,7 @@ void Scene43::run() { break; case GRAB_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(Common::Point(3, 7), 0, 67515, 1); + _vm->_gnap->walkTo(Common::Point(3, 7), 0, 67515, 1); _vm->_gnap->_actionStatus = 1; break; case TALK_CURSOR: @@ -1412,7 +1412,7 @@ void Scene43::run() { case kHS43WalkArea1: case kHS43WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; } } @@ -1423,7 +1423,7 @@ void Scene43::run() { _vm->_toyUfoActionStatus = 5; _vm->toyUfoFlyTo(-1, -1, 0, 799, 0, 300, 3); } else { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } } @@ -1684,15 +1684,15 @@ void Scene44::run() { _vm->_gnap->initPos(-1, 8, kDirUpRight); _vm->_plat->initPos(-1, 7, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); - _vm->platypusWalkTo(Common::Point(1, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 8), -1, 0x107C2, 1); break; case 46: _vm->_gnap->initPos(11, 8, kDirUpRight); _vm->_plat->initPos(11, 8, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(6, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(7, 8), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(6, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(7, 8), -1, 0x107D2, 1); break; case 50: _vm->_gnap->initPos(4, 8, kDirBottomRight); @@ -1714,8 +1714,8 @@ void Scene44::run() { _vm->_gnap->initPos(5, 11, kDirUpRight); _vm->_plat->initPos(6, 11, kDirUpLeft); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(6, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(5, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(6, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(5, 8), -1, 0x107BA, 1); break; } } @@ -1792,22 +1792,22 @@ void Scene44::run() { case kHS44ExitUfoParty: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44ExitUfoParty], 0, 0x107AE, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS44ExitUfoParty], 0, 0x107AE, 1); _vm->_gnap->_actionStatus = 0; _vm->_newSceneNum = 40; break; case kHS44ExitUfo: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS44ExitUfo].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS44ExitUfo].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = 0; - _vm->platypusWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS44ExitUfo].x, _vm->_plat->_pos.y), -1, 0x107CF, 1); + _vm->_plat->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS44ExitUfo].x, _vm->_plat->_pos.y), -1, 0x107CF, 1); _vm->_newSceneNum = 43; break; case kHS44ExitShow: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44ExitShow], 0, 0x107AB, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS44ExitShow], 0, 0x107AB, 1); _vm->_gnap->_actionStatus = 0; _vm->_newSceneNum = 46; break; @@ -1815,7 +1815,7 @@ void Scene44::run() { case kHS44KissingLady: if (_vm->_grabCursorSpriteIndex >= 0) { _vm->_gnap->_actionStatus = 2; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44KissingLady], 0, -1, 9); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS44KissingLady], 0, -1, 9); _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, _vm->_hotspotsWalkPos[kHS44KissingLady].x - 1, _vm->_hotspotsWalkPos[kHS44KissingLady].y); } else { switch (_vm->_verbCursor) { @@ -1827,14 +1827,14 @@ void Scene44::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44KissingLady], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS44KissingLady], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = 1; break; case PLAT_CURSOR: _vm->_gnap->useDeviceOnPlatypus(); - _vm->platypusWalkTo(Common::Point(6, 7), 1, 0x107D2, 1); + _vm->_plat->walkTo(Common::Point(6, 7), 1, 0x107D2, 1); if (_vm->_gnap->_pos == Common::Point(7, 7)) - _vm->gnapWalkStep(); + _vm->_gnap->walkStep(); _vm->playGnapIdle(5, 7); _vm->_plat->_actionStatus = 4; break; @@ -1881,7 +1881,7 @@ void Scene44::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44SpringGuy], -1, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS44SpringGuy], -1, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); break; case GRAB_CURSOR: case PLAT_CURSOR: @@ -1894,7 +1894,7 @@ void Scene44::run() { case kHS44WalkArea1: case kHS44WalkArea2: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; } @@ -1906,7 +1906,7 @@ void Scene44::run() { _vm->_toyUfoActionStatus = 7; _vm->toyUfoFlyTo(-1, -1, 0, 799, 0, 300, 3); } else { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } } @@ -2153,20 +2153,20 @@ void Scene45::run() { _vm->_gnap->initPos(-1, 8, kDirUpRight); _vm->_plat->initPos(-1, 9, kDirUpLeft); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(4, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(2, 7), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(4, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 7), -1, 0x107B9, 1); } else if (_vm->_prevSceneNum == 41) { _vm->_gnap->initPos(11, 8, kDirUpRight); _vm->_plat->initPos(11, 9, kDirUpLeft); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(4, 8), -1, 0x107D2, 1); - _vm->gnapWalkTo(Common::Point(10, 9), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(4, 8), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(10, 9), -1, 0x107BA, 1); } else { _vm->_gnap->initPos(2, 11, kDirUpRight); _vm->_plat->initPos(6, 11, kDirUpLeft); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(4, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(2, 7), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(4, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 7), -1, 0x107B9, 1); } if (!_vm->isFlag(kGFUnk21) && !_vm->isFlag(kGFGnapControlsToyUFO)) { @@ -2284,7 +2284,7 @@ void Scene45::run() { case kHS45ExitUfoParty: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS45ExitUfoParty].y), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS45ExitUfoParty].y), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = 0; _vm->_newSceneNum = 40; } @@ -2293,9 +2293,9 @@ void Scene45::run() { case kHS45ExitShoe: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS45ExitShoe].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS45ExitShoe].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = 0; - _vm->platypusWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS45ExitShoe].x, _vm->_plat->_pos.y), -1, 0x107CF, 1); + _vm->_plat->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS45ExitShoe].x, _vm->_plat->_pos.y), -1, 0x107CF, 1); _vm->_newSceneNum = 46; } break; @@ -2303,9 +2303,9 @@ void Scene45::run() { case kHS45ExitRight: if (_vm->_gnap->_actionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS45ExitRight].x, _vm->_gnap->_pos.y), 0, 0x107AB, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS45ExitRight].x, _vm->_gnap->_pos.y), 0, 0x107AB, 1); _vm->_gnap->_actionStatus = 0; - _vm->platypusWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS45ExitRight].x, _vm->_plat->_pos.y), -1, 0x107CD, 1); + _vm->_plat->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS45ExitRight].x, _vm->_plat->_pos.y), -1, 0x107CD, 1); _vm->_newSceneNum = 41; } break; @@ -2320,7 +2320,7 @@ void Scene45::run() { case kHS45DiscoBall: if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemSpring) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS45DiscoBall], 0, 0x9F, 5); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS45DiscoBall], 0, 0x9F, 5); _vm->_gnap->_actionStatus = 1; _vm->setGrabCursorSprite(-1); _vm->invRemove(kItemSpring); @@ -2343,7 +2343,7 @@ void Scene45::run() { case kHS45WalkArea1: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; } } @@ -2354,7 +2354,7 @@ void Scene45::run() { _vm->_toyUfoActionStatus = 3; _vm->toyUfoFlyTo(-1, -1, 0, 799, 0, 300, 5); } else { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } } @@ -2517,20 +2517,20 @@ void Scene46::run() { _vm->_gnap->initPos(-1, 8, kDirUpRight); _vm->_plat->initPos(-1, 8, kDirUpLeft); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(1, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(2, 8), -1, 0x107B9, 1); + _vm->_plat->walkTo(Common::Point(1, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(2, 8), -1, 0x107B9, 1); } else if (_vm->_prevSceneNum == 45) { _vm->_gnap->initPos(11, 8, kDirUpRight); _vm->_plat->initPos(12, 8, kDirUpLeft); _vm->endSceneInit(); - _vm->gnapWalkTo(Common::Point(8, 8), -1, 0x107BA, 1); - _vm->platypusWalkTo(Common::Point(9, 8), -1, 0x107D2, 1); + _vm->_gnap->walkTo(Common::Point(8, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(9, 8), -1, 0x107D2, 1); } else { _vm->_gnap->initPos(5, 11, kDirUpRight); _vm->_plat->initPos(6, 11, kDirUpLeft); _vm->endSceneInit(); - _vm->platypusWalkTo(Common::Point(5, 8), -1, 0x107C2, 1); - _vm->gnapWalkTo(Common::Point(6, 8), -1, 0x107BA, 1); + _vm->_plat->walkTo(Common::Point(5, 8), -1, 0x107C2, 1); + _vm->_gnap->walkTo(Common::Point(6, 8), -1, 0x107BA, 1); } _vm->_timers[4] = _vm->getRandom(50) + 80; @@ -2614,7 +2614,7 @@ void Scene46::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS46SackGuy], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS46SackGuy], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = 2; break; case GRAB_CURSOR: @@ -2635,7 +2635,7 @@ void Scene46::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS46ItchyGuy], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->_gnap->walkTo(_vm->_hotspotsWalkPos[kHS46ItchyGuy], 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = 1; break; case GRAB_CURSOR: @@ -2648,30 +2648,30 @@ void Scene46::run() { case kHS46ExitUfoParty: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS46ExitUfoParty].y), 0, 0x107AE, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS46ExitUfoParty].y), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = 0; _vm->_newSceneNum = 40; break; case kHS46ExitKissinBooth: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS46ExitKissinBooth].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS46ExitKissinBooth].x, _vm->_gnap->_pos.y), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = 0; - _vm->platypusWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS46ExitKissinBooth].x, _vm->_plat->_pos.y), -1, 0x107CF, 1); + _vm->_plat->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS46ExitKissinBooth].x, _vm->_plat->_pos.y), -1, 0x107CF, 1); _vm->_newSceneNum = 44; break; case kHS46ExitDisco: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS46ExitDisco].x, _vm->_gnap->_pos.y), 0, 0x107AB, 1); + _vm->_gnap->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS46ExitDisco].x, _vm->_gnap->_pos.y), 0, 0x107AB, 1); _vm->_gnap->_actionStatus = 0; - _vm->platypusWalkTo(Common::Point(_vm->_hotspotsWalkPos[kHS46ExitDisco].x, _vm->_plat->_pos.y), -1, 0x107CD, 1); + _vm->_plat->walkTo(Common::Point(_vm->_hotspotsWalkPos[kHS46ExitDisco].x, _vm->_plat->_pos.y), -1, 0x107CD, 1); _vm->_newSceneNum = 45; break; case kHS46WalkArea1: if (_vm->_gnap->_actionStatus < 0) - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; } } @@ -2682,7 +2682,7 @@ void Scene46::run() { _vm->_toyUfoActionStatus = 4; _vm->toyUfoFlyTo(-1, -1, 0, 799, 0, 300, 2); } else { - _vm->gnapWalkTo(Common::Point(-1, -1), -1, -1, 1); + _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); } } |