diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/gnap/character.cpp | 225 | ||||
-rw-r--r-- | engines/gnap/character.h | 7 | ||||
-rw-r--r-- | engines/gnap/gnap.cpp | 209 | ||||
-rw-r--r-- | engines/gnap/gnap.h | 10 | ||||
-rw-r--r-- | engines/gnap/grid.cpp | 24 | ||||
-rw-r--r-- | engines/gnap/scenes/group0.cpp | 28 | ||||
-rw-r--r-- | engines/gnap/scenes/group1.cpp | 26 |
7 files changed, 263 insertions, 266 deletions
diff --git a/engines/gnap/character.cpp b/engines/gnap/character.cpp index a15f4e9cad..6ae731671d 100644 --- a/engines/gnap/character.cpp +++ b/engines/gnap/character.cpp @@ -551,7 +551,7 @@ void PlayerGnap::initBrainPulseRndValue() { void PlayerGnap::playSequence(int sequenceId) { _vm->_timers[2] = _vm->getRandom(30) + 20; _vm->_timers[3] = 300; - _vm->gnapIdle(); + idle(); _vm->_gameSys->insertSequence(sequenceId, _id, makeRid(_sequenceDatNum, _sequenceId), _id, kSeqScale | kSeqSyncWait, 0, 75 * _pos.x - _gridX, 48 * _pos.y - _gridY); @@ -693,7 +693,7 @@ bool PlayerGnap::walkTo(Common::Point gridPos, int animationIndex, int sequenceI _walkDestY = CLIP(gridY, 0, _vm->_gridMaxY - 1); if (animationIndex >= 0 && _walkDestX == _vm->_plat->_pos.x && _walkDestY == _vm->_plat->_pos.y) - _vm->platypusMakeRoom(); + _vm->_plat->makeRoom(); if (findPath1(_pos.x, _pos.y, 0)) done = true; @@ -707,7 +707,7 @@ bool PlayerGnap::walkTo(Common::Point gridPos, int animationIndex, int sequenceI if (!done && findPath4(_pos.x, _pos.y)) done = true; - _vm->gnapIdle(); + idle(); int gnapSequenceId = _sequenceId; int gnapId = _id; @@ -765,7 +765,7 @@ bool PlayerGnap::walkTo(Common::Point gridPos, int animationIndex, int sequenceI if (_walkNodesCount > 0) { _sequenceId = gnapSequenceId; _id = gnapId; - _idleFacing = _vm->getGnapWalkFacing(_walkNodes[_walkNodesCount - 1]._deltaX, _walkNodes[_walkNodesCount - 1]._deltaY); + _idleFacing = getWalkFacing(_walkNodes[_walkNodesCount - 1]._deltaX, _walkNodes[_walkNodesCount - 1]._deltaY); _sequenceDatNum = datNum; if (animationIndex >= 0) _vm->_gameSys->setAnimation(makeRid(_sequenceDatNum, _sequenceId), _id, animationIndex); @@ -794,8 +794,8 @@ bool PlayerGnap::walkTo(Common::Point gridPos, int animationIndex, int sequenceI } } 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); + _sequenceId = getWalkStopSequenceId(_walkNodes[_walkNodesCount - 1]._deltaX, _walkNodes[_walkNodesCount - 1]._deltaY); + _idleFacing = getWalkFacing(_walkNodes[_walkNodesCount - 1]._deltaX, _walkNodes[_walkNodesCount - 1]._deltaY); } else if (gridX >= 0 || gridY >= 0) { switch (_idleFacing) { case kDirBottomRight: @@ -819,8 +819,8 @@ bool PlayerGnap::walkTo(Common::Point gridPos, int animationIndex, int sequenceI ++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)); + _sequenceId = getWalkStopSequenceId(v10 / abs(v10), v11 / abs(v11)); + _idleFacing = getWalkFacing(v10 / abs(v10), v11 / abs(v11)); } _sequenceDatNum = datNum; } @@ -848,6 +848,211 @@ bool PlayerGnap::walkTo(Common::Point gridPos, int animationIndex, int sequenceI return done; } +int PlayerGnap::getShowSequenceId(int index, int gridX, int gridY) { + int sequenceId; + Facing facing = _idleFacing; + + if (gridY > 0 && gridX > 0) { + if (_pos.y > gridY) { + if (_pos.x > gridX) + _idleFacing = kDirUpLeft; + else + _idleFacing = kDirUpRight; + } else { + if (_pos.x > gridX) + _idleFacing = kDirUpLeft; + else + _idleFacing = kDirUpRight; + } + } else if (_idleFacing != kDirBottomRight && _idleFacing != kDirUpRight) { + _idleFacing = kDirUpLeft; + } else { + _idleFacing = kDirUpRight; + } + + switch (index) { + case 0: + if (_idleFacing == kDirUpRight) + sequenceId = 0x8A0; + else + sequenceId = 0x8A1; + break; + case 1: + if (_idleFacing == kDirUpRight) + sequenceId = 0x880; + else + sequenceId = 0x895; + break; + case 2: + if (_idleFacing == kDirUpRight) + sequenceId = 0x884; + else + sequenceId = 0x899; + break; + //Skip 3 + case 4: + if (_idleFacing == kDirUpRight) + sequenceId = 0x881; + else + sequenceId = 0x896; + break; + case 5: + if (_idleFacing == kDirUpRight) + sequenceId = 0x883; + else + sequenceId = 0x898; + break; + case 6: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87E; + else + sequenceId = 0x893; + break; + case 7: + if (_idleFacing == kDirUpRight) + sequenceId = 0x848; + else + sequenceId = 0x890; + break; + case 8: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87D; + else + sequenceId = 0x892; + break; + case 9: + if (_idleFacing == kDirUpRight) + sequenceId = 0x882; + else + sequenceId = 0x897; + break; + case 10: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87C; + else + sequenceId = 0x891; + break; + case 11: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87C; + else + sequenceId = 0x891; + break; + case 12: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87D; + else + sequenceId = 0x892; + break; + case 13: + if (_idleFacing == kDirUpRight) + sequenceId = 0x888; + else + sequenceId = 0x89D; + break; + case 14: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87F; + else + sequenceId = 0x894; + break; + case 15: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87B; + else + sequenceId = 0x8A3; + break; + case 16: + if (_idleFacing == kDirUpRight) + sequenceId = 0x877; + else + sequenceId = 0x88C; + break; + //Skip 17 + case 18: + sequenceId = 0x887; + break; + case 19: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87A; + else + sequenceId = 0x88F; + break; + case 20: + if (_idleFacing == kDirUpRight) + sequenceId = 0x878; + else + sequenceId = 0x88D; + break; + case 21: + if (_idleFacing == kDirUpRight) + sequenceId = 0x879; + else + sequenceId = 0x88E; + break; + case 22: + if (_idleFacing == kDirUpRight) + sequenceId = 0x88A; + else + sequenceId = 0x89F; + break; + case 23: + if (_idleFacing == kDirUpRight) + sequenceId = 0x889; + else + sequenceId = 0x89E; + break; + case 24: + if (_idleFacing == kDirUpRight) + sequenceId = 0x886; + else + sequenceId = 0x89B; + break; + case 25: + if (_idleFacing == kDirUpRight) + sequenceId = 0x87A; + else + sequenceId = 0x88F; + break; + //Skip 26 + //Skip 27 + //Skip 28 + //Skip 29 + default: + _idleFacing = facing; + sequenceId = getSequenceId(gskImpossible, 0, 0); + break; + } + + return sequenceId; +} + +void PlayerGnap::idle() { + if (_sequenceDatNum == 1 && + (_sequenceId == 0x7A6 || _sequenceId == 0x7AA || + _sequenceId == 0x832 || _sequenceId == 0x841 || + _sequenceId == 0x842 || _sequenceId == 0x8A2 || + _sequenceId == 0x833 || _sequenceId == 0x834 || + _sequenceId == 0x885 || _sequenceId == 0x7A8 || + _sequenceId == 0x831 || _sequenceId == 0x89A)) { + _vm->_gameSys->insertSequence(getSequenceId(gskIdle, 0, 0) | 0x10000, _id, + makeRid(_sequenceDatNum, _sequenceId), _id, + kSeqSyncExists, 0, 75 * _pos.x - _gridX, 48 * _pos.y - _gridY); + _sequenceId = getSequenceId(gskIdle, 0, 0); + _sequenceDatNum = 1; + } +} + +void PlayerGnap::actionIdle(int sequenceId) { + if (_sequenceId != -1 && ridToDatIndex(sequenceId) == _sequenceDatNum && ridToEntryIndex(sequenceId) == _sequenceId) { + _vm->_gameSys->insertSequence(getSequenceId(gskIdle, 0, 0) | 0x10000, _id, + makeRid(_sequenceDatNum, _sequenceId), _id, + kSeqSyncExists, 0, 75 * _pos.x - _gridX, 48 * _pos.y - _gridY); + _sequenceId = getSequenceId(gskIdle, 0, 0); + _sequenceDatNum = 1; + } +} + /************************************************************************************************/ PlayerPlat::PlayerPlat(GnapEngine * vm) : Character(vm) {} @@ -904,7 +1109,7 @@ void PlayerPlat::updateIdleSequence() { } } else { _vm->_timers[0] = _vm->getRandom(75) + 75; - _vm->platypusMakeRoom(); + _vm->_plat->makeRoom(); } } else { _vm->_timers[0] = 100; @@ -932,7 +1137,7 @@ void PlayerPlat::updateIdleSequence2() { } } else { _vm->_timers[0] = _vm->getRandom(75) + 75; - _vm->platypusMakeRoom(); + _vm->_plat->makeRoom(); } } else { _vm->_timers[0] = 100; diff --git a/engines/gnap/character.h b/engines/gnap/character.h index c36b0a2295..114b3a3290 100644 --- a/engines/gnap/character.h +++ b/engines/gnap/character.h @@ -88,6 +88,11 @@ public: virtual int getWalkSequenceId(int deltaX, int deltaY); virtual bool walkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags); + void actionIdle(int sequenceId); + int getShowSequenceId(int index, int gridX, int gridY); + Facing getWalkFacing(int deltaX, int deltaY); + int getWalkStopSequenceId(int deltaX, int deltaY); + void idle(); void initBrainPulseRndValue(); void kissPlatypus(int callback); void useDeviceOnPlatypus(); @@ -114,6 +119,8 @@ public: virtual int getWalkSequenceId(int deltaX, int deltaY); virtual bool walkTo(Common::Point gridPos, int animationIndex, int sequenceId, int flags); + void makeRoom(); + private: bool findPath1(int gridX, int gridY, int index); bool findPath2(int gridX, int gridY, int index); diff --git a/engines/gnap/gnap.cpp b/engines/gnap/gnap.cpp index 42d5277dc6..e40d50e621 100644 --- a/engines/gnap/gnap.cpp +++ b/engines/gnap/gnap.cpp @@ -941,211 +941,6 @@ void GnapEngine::deleteSurface(Graphics::Surface **surface) { } } -int GnapEngine::getGnapShowSequenceId(int index, int gridX, int gridY) { - int sequenceId; - Facing facing = _gnap->_idleFacing; - - if (gridY > 0 && gridX > 0) { - if (_gnap->_pos.y > gridY) { - if (_gnap->_pos.x > gridX) - _gnap->_idleFacing = kDirUpLeft; - else - _gnap->_idleFacing = kDirUpRight; - } else { - if (_gnap->_pos.x > gridX) - _gnap->_idleFacing = kDirUpLeft; - else - _gnap->_idleFacing = kDirUpRight; - } - } else if (_gnap->_idleFacing != kDirBottomRight && _gnap->_idleFacing != kDirUpRight) { - _gnap->_idleFacing = kDirUpLeft; - } else { - _gnap->_idleFacing = kDirUpRight; - } - - switch (index) { - case 0: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x8A0; - else - sequenceId = 0x8A1; - break; - case 1: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x880; - else - sequenceId = 0x895; - break; - case 2: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x884; - else - sequenceId = 0x899; - break; - //Skip 3 - case 4: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x881; - else - sequenceId = 0x896; - break; - case 5: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x883; - else - sequenceId = 0x898; - break; - case 6: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87E; - else - sequenceId = 0x893; - break; - case 7: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x848; - else - sequenceId = 0x890; - break; - case 8: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87D; - else - sequenceId = 0x892; - break; - case 9: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x882; - else - sequenceId = 0x897; - break; - case 10: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87C; - else - sequenceId = 0x891; - break; - case 11: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87C; - else - sequenceId = 0x891; - break; - case 12: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87D; - else - sequenceId = 0x892; - break; - case 13: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x888; - else - sequenceId = 0x89D; - break; - case 14: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87F; - else - sequenceId = 0x894; - break; - case 15: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87B; - else - sequenceId = 0x8A3; - break; - case 16: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x877; - else - sequenceId = 0x88C; - break; - //Skip 17 - case 18: - sequenceId = 0x887; - break; - case 19: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87A; - else - sequenceId = 0x88F; - break; - case 20: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x878; - else - sequenceId = 0x88D; - break; - case 21: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x879; - else - sequenceId = 0x88E; - break; - case 22: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x88A; - else - sequenceId = 0x89F; - break; - case 23: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x889; - else - sequenceId = 0x89E; - break; - case 24: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x886; - else - sequenceId = 0x89B; - break; - case 25: - if (_gnap->_idleFacing == kDirUpRight) - sequenceId = 0x87A; - else - sequenceId = 0x88F; - break; - //Skip 26 - //Skip 27 - //Skip 28 - //Skip 29 - default: - _gnap->_idleFacing = facing; - sequenceId = _gnap->getSequenceId(gskImpossible, 0, 0); - break; - } - return sequenceId; -} - -void GnapEngine::gnapIdle() { - if (_gnap->_sequenceId != -1 && _gnap->_sequenceDatNum == 1 && - (_gnap->_sequenceId == 0x7A6 || _gnap->_sequenceId == 0x7AA || - _gnap->_sequenceId == 0x832 || _gnap->_sequenceId == 0x841 || - _gnap->_sequenceId == 0x842 || _gnap->_sequenceId == 0x8A2 || - _gnap->_sequenceId == 0x833 || _gnap->_sequenceId == 0x834 || - _gnap->_sequenceId == 0x885 || _gnap->_sequenceId == 0x7A8 || - _gnap->_sequenceId == 0x831 || _gnap->_sequenceId == 0x89A)) { - _gameSys->insertSequence(_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, _gnap->_id, - makeRid(_gnap->_sequenceDatNum, _gnap->_sequenceId), _gnap->_id, - kSeqSyncExists, 0, 75 * _gnap->_pos.x - _gnap->_gridX, 48 * _gnap->_pos.y - _gnap->_gridY); - _gnap->_sequenceId = _gnap->getSequenceId(gskIdle, 0, 0); - _gnap->_sequenceDatNum = 1; - } -} - -void GnapEngine::gnapActionIdle(int sequenceId) { - if (_gnap->_sequenceId != -1 && ridToDatIndex(sequenceId) == _gnap->_sequenceDatNum && - ridToEntryIndex(sequenceId) == _gnap->_sequenceId) { - _gameSys->insertSequence(_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, _gnap->_id, - makeRid(_gnap->_sequenceDatNum, _gnap->_sequenceId), _gnap->_id, - kSeqSyncExists, 0, 75 * _gnap->_pos.x - _gnap->_gridX, 48 * _gnap->_pos.y - _gnap->_gridY); - _gnap->_sequenceId = _gnap->getSequenceId(gskIdle, 0, 0); - _gnap->_sequenceDatNum = 1; - } -} - void GnapEngine::playGnapImpossible(int gridX, int gridY) { _gnap->playSequence(_gnap->getSequenceId(gskImpossible, gridX, gridY) | 0x10000); } @@ -1183,12 +978,12 @@ void GnapEngine::playGnapIdle(int gridX, int gridY) { } void GnapEngine::playGnapShowItem(int itemIndex, int gridLookX, int gridLookY) { - _gnap->playSequence(getGnapShowSequenceId(itemIndex, gridLookX, gridLookY) | 0x10000); + _gnap->playSequence(_gnap->getShowSequenceId(itemIndex, gridLookX, gridLookY) | 0x10000); } void GnapEngine::playGnapShowCurrItem(int gridX, int gridY, int gridLookX, int gridLookY) { if (_plat->_pos.x == gridX && _plat->_pos.y == gridY) - platypusMakeRoom(); + _plat->makeRoom(); _gnap->walkTo(Common::Point(gridX, gridY), -1, -1, 1); playGnapShowItem(_grabCursorSpriteIndex, gridLookX, gridLookY); } diff --git a/engines/gnap/gnap.h b/engines/gnap/gnap.h index db9368d98d..15e1753fda 100644 --- a/engines/gnap/gnap.h +++ b/engines/gnap/gnap.h @@ -474,17 +474,7 @@ public: void initSceneGrid(int gridMinX, int gridMinY, int gridMaxX, int gridMaxY); bool testWalk(int animationIndex, int someStatus, int gridX1, int gridY1, int gridX2, int gridY2); - // Gnap walking - int getGnapWalkStopSequenceId(int deltaX, int deltaY); - Facing getGnapWalkFacing(int deltaX, int deltaY); - - // Platypus walking - void platypusMakeRoom(); - // Gnap - int getGnapShowSequenceId(int index, int gridX, int gridY); - void gnapIdle(); - void gnapActionIdle(int sequenceId); void playGnapImpossible(int gridX, int gridY); void playGnapScratchingHead(int gridX, int gridY); void playGnapMoan1(int gridX, int gridY); diff --git a/engines/gnap/grid.cpp b/engines/gnap/grid.cpp index d4aed8dbc0..b817b65102 100644 --- a/engines/gnap/grid.cpp +++ b/engines/gnap/grid.cpp @@ -38,24 +38,24 @@ void GnapEngine::initSceneGrid(int gridMinX, int gridMinY, int gridMaxX, int gri _plat->_gridY = 347 - gridMinY; } -int GnapEngine::getGnapWalkStopSequenceId(int deltaX, int deltaY) { - static const int _gnapWalkStopSequenceIds[9] = { +int PlayerGnap::getWalkStopSequenceId(int deltaX, int deltaY) { + static const int gnapWalkStopSequenceIds[9] = { 0x7BC, 0x7BA, 0x7BA, 0x7BC, 0x000, 0x7BA, 0x7BB, 0x7B9, 0x7B9 }; // CHECKME This is a little weird - return _gnapWalkStopSequenceIds[3 * deltaX + 3 + 1 + deltaY]; + return gnapWalkStopSequenceIds[3 * deltaX + 3 + 1 + deltaY]; } -Facing GnapEngine::getGnapWalkFacing(int deltaX, int deltaY) { - static const Facing _gnapWalkFacings[9] = { +Facing PlayerGnap::getWalkFacing(int deltaX, int deltaY) { + static const Facing gnapWalkFacings[9] = { kDirUpLeft, kDirBottomLeft, kDirBottomLeft, kDirUpLeft, kDirNone, kDirBottomLeft, kDirUpRight, kDirBottomRight, kDirBottomRight }; // CHECKME This is a little weird - return _gnapWalkFacings[3 * deltaX + 3 + 1 + deltaY]; + return gnapWalkFacings[3 * deltaX + 3 + 1 + deltaY]; } bool GnapEngine::isPointBlocked(Common::Point gridPos) { @@ -981,14 +981,14 @@ bool PlayerPlat::findPath4(int gridX, int gridY) { return result; } -void GnapEngine::platypusMakeRoom() { +void PlayerPlat::makeRoom() { int rndGridX, rndGridY; do { - rndGridY = getRandom(_gridMaxY); - rndGridX = getRandom(_gridMaxX); - } while (ABS(rndGridX - _plat->_pos.x) > 4 || ABS(rndGridY - _plat->_pos.y) > 3 || - isPointBlocked(rndGridX, rndGridY)); - _plat->walkTo(Common::Point(rndGridX, rndGridY), -1, -1, 1); + rndGridY = _vm->getRandom(_vm->_gridMaxY); + rndGridX = _vm->getRandom(_vm->_gridMaxX); + } while (ABS(rndGridX - _pos.x) > 4 || ABS(rndGridY - _pos.y) > 3 || + _vm->isPointBlocked(rndGridX, rndGridY)); + 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 c16a1e7f45..d65558474c 100644 --- a/engines/gnap/scenes/group0.cpp +++ b/engines/gnap/scenes/group0.cpp @@ -2833,7 +2833,7 @@ void Scene07::run() { } } else { _vm->_timers[0] = _vm->getRandom(75) + 75; - _vm->platypusMakeRoom(); + _vm->_plat->makeRoom(); } } else { _vm->_timers[0] = 100; @@ -2995,7 +2995,7 @@ void Scene08::run() { _vm->playGnapScratchingHead(_vm->_plat->_pos.x, _vm->_plat->_pos.y); break; case GRAB_CURSOR: - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->_gnap->kissPlatypus(8); break; case TALK_CURSOR: @@ -3010,7 +3010,7 @@ void Scene08::run() { case kHS08ExitBackdoor: _vm->_isLeavingScene = true; - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->_gnap->walkTo(Common::Point(0, 6), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS08LeaveScene; _vm->_plat->walkTo(Common::Point(0, 7), 1, 0x107CF, 1); @@ -3019,7 +3019,7 @@ void Scene08::run() { case kHS08ExitCrash: _vm->_isLeavingScene = true; - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->_gnap->walkTo(Common::Point(3, 9), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS08LeaveScene; _vm->_plat->walkTo(Common::Point(4, 9), 1, 0x107C1, 1); @@ -3032,7 +3032,7 @@ void Scene08::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->_gnap->walkTo(Common::Point(6, 6), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS08LookMan; _vm->_gnap->_idleFacing = kDirUpRight; @@ -3042,12 +3042,12 @@ void Scene08::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _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->actionIdle(0x14D); _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->walkTo(Common::Point(6, 6), 1, 0x107C2, 1); _vm->_plat->_actionStatus = kAS08PlatWithMan; @@ -3077,13 +3077,13 @@ void Scene08::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _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->actionIdle(0x14D); _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->walkTo(Common::Point(3, 7), 1, 0x107C2, 1); _vm->_plat->_actionStatus = kAS08PlatWithDog; @@ -3106,7 +3106,7 @@ void Scene08::run() { if (_currDogSequenceId == 0x135) { _vm->playGnapScratchingHead(6, 7); } else { - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->playGnapPullOutDevice(6, 7); _vm->playGnapUseDevice(0, 0); _nextDogSequenceId = 0x149; @@ -3132,7 +3132,7 @@ void Scene08::run() { if (_currDogSequenceId == 0x135) { _vm->playGnapScratchingHead(3, 6); } else { - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->playGnapPullOutDevice(3, 6); _vm->playGnapUseDevice(0, 0); _nextDogSequenceId = 0x14A; @@ -3158,7 +3158,7 @@ void Scene08::run() { if (_currDogSequenceId == 0x135) { _vm->playGnapScratchingHead(7, 6); } else { - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->playGnapPullOutDevice(7, 6); _vm->playGnapUseDevice(0, 0); _nextDogSequenceId = 0x14B; @@ -3174,13 +3174,13 @@ void Scene08::run() { case kHS08WalkArea1: case kHS08WalkArea2: - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->_gnap->walkTo(Common::Point(-1, 6), -1, -1, 1); break; default: if (_vm->_mouseClickState._left) { - _vm->gnapActionIdle(0x14D); + _vm->_gnap->actionIdle(0x14D); _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } diff --git a/engines/gnap/scenes/group1.cpp b/engines/gnap/scenes/group1.cpp index 9033763c7e..8a6bff0fcf 100644 --- a/engines/gnap/scenes/group1.cpp +++ b/engines/gnap/scenes/group1.cpp @@ -131,7 +131,7 @@ void Scene10::run() { case kHS10ExitBar: _vm->_isLeavingScene = true; - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _vm->_gnap->walkTo(Common::Point(0, 7), 0, 0x107AF, 1); _vm->_gnap->_actionStatus = kAS10LeaveScene; _vm->_plat->walkTo(Common::Point(0, 7), -1, 0x107CF, 1); @@ -140,7 +140,7 @@ void Scene10::run() { case kHS10ExitBackdoor: _vm->_isLeavingScene = true; - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _vm->_gnap->walkTo(Common::Point(2, 9), 0, 0x107AE, 1); _vm->_gnap->_actionStatus = kAS10LeaveScene; _vm->_plat->walkTo(Common::Point(3, 9), -1, 0x107C7, 1); @@ -163,12 +163,12 @@ void Scene10::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _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->actionIdle(0x10C); _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->walkTo(Common::Point(4, 6), -1, -1, 1); _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107BB, 1); @@ -193,7 +193,7 @@ void Scene10::run() { if (_vm->isFlag(kGFMudTaken)) _vm->playGnapMoan2(-1, -1); else { - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; } @@ -205,7 +205,7 @@ void Scene10::run() { if (_vm->isFlag(kGFMudTaken)) _vm->playGnapMoan2(-1, -1); else { - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->walkTo(Common::Point(3, 7), -1, -1, 1); _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107BB, 1); @@ -225,7 +225,7 @@ void Scene10::run() { _vm->playGnapScratchingHead(7, 3); break; case GRAB_CURSOR: - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _vm->_gnap->walkTo(Common::Point(4, 8), 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; break; @@ -238,7 +238,7 @@ void Scene10::run() { else { _vm->invAdd(kItemTongs); _vm->setFlag(kGFMudTaken); - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->walkTo(Common::Point(7, 6), 1, 0x107D2, 1); _vm->_plat->_actionStatus = kAS10PlatWithBox; @@ -260,7 +260,7 @@ void Scene10::run() { _vm->_gnap->playSequence(_vm->_gnap->getSequenceId(gskDeflect, 10, 5) | 0x10000); break; case GRAB_CURSOR: - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _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; @@ -282,7 +282,7 @@ void Scene10::run() { case kHS10WalkArea2: case kHS10WalkArea3: case kHS10WalkArea4: - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); break; @@ -295,7 +295,7 @@ void Scene10::run() { default: if (_vm->_mouseClickState._left) { - _vm->gnapActionIdle(0x10C); + _vm->_gnap->actionIdle(0x10C); _vm->_gnap->walkTo(Common::Point(-1, -1), -1, -1, 1); _vm->_mouseClickState._left = false; } @@ -3185,9 +3185,9 @@ void Scene18::gnapCarryGarbageCanTo(int gridX) { if (_vm->_gnap->_pos.y == _vm->_plat->_pos.y) { if (nextGridX >= _vm->_gnap->_pos.x) { if (nextGridX >= _vm->_plat->_pos.x && _vm->_gnap->_pos.x <= _vm->_plat->_pos.x) - _vm->platypusMakeRoom(); + _vm->_plat->makeRoom(); } else if (nextGridX <= _vm->_plat->_pos.x && _vm->_gnap->_pos.x >= _vm->_plat->_pos.x) { - _vm->platypusMakeRoom(); + _vm->_plat->makeRoom(); } } gnapSeqId = _vm->_gnap->_sequenceId; |