diff options
author | Strangerke | 2016-05-04 07:13:48 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-05-10 12:14:49 +0200 |
commit | 2e50019c05dbff0bbb559b72a201630605505c87 (patch) | |
tree | 473fb2794fd1a783ac5015f2de4456c12642cd12 /engines/gnap/scenes | |
parent | aee38421631479b6025585649172491f3251ce5e (diff) | |
download | scummvm-rg350-2e50019c05dbff0bbb559b72a201630605505c87.tar.gz scummvm-rg350-2e50019c05dbff0bbb559b72a201630605505c87.tar.bz2 scummvm-rg350-2e50019c05dbff0bbb559b72a201630605505c87.zip |
GNAP: Introduce Character class - WIP
Diffstat (limited to 'engines/gnap/scenes')
-rw-r--r-- | engines/gnap/scenes/group0.cpp | 109 | ||||
-rw-r--r-- | engines/gnap/scenes/group1.cpp | 159 | ||||
-rw-r--r-- | engines/gnap/scenes/group2.cpp | 60 | ||||
-rw-r--r-- | engines/gnap/scenes/group3.cpp | 35 | ||||
-rw-r--r-- | engines/gnap/scenes/group4.cpp | 57 |
5 files changed, 203 insertions, 217 deletions
diff --git a/engines/gnap/scenes/group0.cpp b/engines/gnap/scenes/group0.cpp index 4ec0d88c61..019678d15f 100644 --- a/engines/gnap/scenes/group0.cpp +++ b/engines/gnap/scenes/group0.cpp @@ -21,6 +21,7 @@ */ #include "gnap/gnap.h" +#include "gnap/character.h" #include "gnap/gamesys.h" #include "gnap/resource.h" #include "gnap/scenes/group0.h" @@ -156,7 +157,7 @@ void Scene01::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[4].x, _vm->_hotspotsWalkPos[4].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1)) _vm->_gnapActionStatus = kAS01LookSpaceship; break; @@ -199,17 +200,17 @@ void Scene01::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, _vm->getGnapSequenceId(gskIdle, 7, 2) | 0x10000, 1); _vm->_gnapActionStatus = kAS01LookPigs; break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, _vm->getGnapSequenceId(gskIdle, 7, 2) | 0x10000, 1); _vm->_gnapActionStatus = kAS01UsePigs; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 7, 2) | 0x10000, 1); _vm->_gnapActionStatus = kAS01LookPigs; break; @@ -502,7 +503,7 @@ void Scene02::run() { case kHS02Chicken: if (_vm->_gnapActionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemTwig) { - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y + 1, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS02UseTwigWithChicken; @@ -514,14 +515,14 @@ void Scene02::run() { _vm->playGnapMoan2(9, 8); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[1].x, _vm->_hotspotsWalkPos[1].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1)) _vm->_gnapActionStatus = kAS02GrabChicken; else _vm->_gnapActionStatus = -1; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[1].x, _vm->_hotspotsWalkPos[1].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS02TalkChicken; break; @@ -566,7 +567,7 @@ void Scene02::run() { _vm->_gnapActionStatus = kAS02UseTruckNoGas; } } else { - _vm->_gnapIdleFacing = kDirUnk4; + _vm->_gnap->_idleFacing = kDirUnk4; if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, _vm->getGnapSequenceId(gskIdle, 2, 2) | 0x10000, 1)) _vm->_gnapActionStatus = kAS02UseTruckNoKeys; } @@ -590,7 +591,7 @@ void Scene02::run() { _vm->playGnapMoan2(2, 4); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4].x, _vm->_hotspotsWalkPos[4].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS02GrabTruckGrill; break; @@ -793,7 +794,7 @@ void Scene02::updateAnimations() { _vm->_timers[2] = 100; break; case kAS02GrabChickenDone: - gameSys.insertSequence(0x107B5, _vm->_gnapId, 0x150, 179, kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + gameSys.insertSequence(0x107B5, _vm->_gnapId, 0x150, 179, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = 0x7B5; _vm->_gnapSequenceDatNum = 1; _currChickenSequenceId = 0x14B; @@ -1060,7 +1061,7 @@ void Scene03::run() { if (_platypusHypnotized) { _vm->playGnapBrainPulsating(8, 4); } else { - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4].x, _vm->_hotspotsWalkPos[4].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); if (_platypusScared) _vm->_gnapActionStatus = kAS03HypnotizeScaredPlat; @@ -1260,22 +1261,21 @@ void Scene03::updateAnimations() { gameSys.insertSequence(_nextPlatSequenceId, 99, _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), 99, kSeqSyncWait, 0, 0, 0); _vm->_gnapSequenceId = 0x1B5; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapIdleFacing = kDirNone; + _vm->_gnap->_idleFacing = kDirNone; _vm->_platypusSequenceId = _nextPlatSequenceId; _vm->_platypusSequenceDatNum = 0; gameSys.setAnimation(_nextPlatSequenceId, 99, 1); _nextPlatSequenceId = -1; _vm->_gnapActionStatus = -1; } else if (_nextPlatSequenceId == 0x1BC) { - _vm->_gnapX = 3; - _vm->_gnapY = 6; + _vm->_gnap->_pos = Common::Point(3, 6); gameSys.insertSequence(0x1B6, 120, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(0x1BC, 99, _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), 99, kSeqSyncWait, 0, 0, 0); gameSys.setAnimation(0x1BC, 99, 0); - _vm->_gnapId = 20 * _vm->_gnapY; + _vm->_gnapId = 20 * _vm->_gnap->_pos.y; _vm->_gnapSequenceId = 0x1B6; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapIdleFacing = kDirNone; + _vm->_gnap->_idleFacing = kDirNone; _vm->_gnapActionStatus = kAS03FreePlatypusDone; _nextPlatSequenceId = -1; } else if (_nextPlatSequenceId == 0x1C2 && !_platypusScared) { @@ -1380,8 +1380,7 @@ void Scene04::run() { _vm->_timers[3] = 300; // TODO setCursor((LPCSTR)IDC_WAIT); _vm->setGrabCursorSprite(kItemKeys); - _vm->_gnapX = 4; - _vm->_gnapY = 7; + _vm->_gnap->_pos = Common::Point(4, 7); _vm->_gnapId = 140; _vm->_platX = 6; _vm->_platY = 7; @@ -1509,7 +1508,7 @@ void Scene04::run() { _vm->playGnapMoan2(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS04GrabAxe; _vm->setFlag(kGFPlatypusTalkingToAssistant); @@ -1531,19 +1530,19 @@ void Scene04::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - if (_vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, -1, 1)) { + if (_vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1)) { _vm->playGnapMoan2(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y); _nextDogSequenceId = 0x20F; } break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1)) _vm->_gnapActionStatus = kAS04GrabDog; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirBottomRight; - if (_vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, -1, 1)) { + _vm->_gnap->_idleFacing = kDirBottomRight; + if (_vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1)) { _vm->playGnapBrainPulsating(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y); _nextDogSequenceId = 0x20E; } @@ -1571,7 +1570,7 @@ void Scene04::run() { _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4].x, _vm->_hotspotsWalkPos[4].y, 0, 0x107BC, 1); _vm->_gnapActionStatus = kAS04OpenDoor; _vm->_timers[5] = 300; - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; } else { _vm->_isLeavingScene = true; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[4].x, _vm->_hotspotsWalkPos[4].y, 0, 0x107BC, 1); @@ -1715,8 +1714,7 @@ void Scene04::updateAnimations() { case kAS04OpenDoor: gameSys.insertSequence(0x205, _vm->_gnapId, 0, 0, kSeqNone, 0, 0, 0); gameSys.insertSequence(0x207, 121, 521, 121, kSeqSyncWait, 0, 0, 0); - _vm->_gnapX = 6; - _vm->_gnapY = 7; + _vm->_gnap->_pos = Common::Point(6, 7); gameSys.insertSequence(0x107B5, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, _vm->getSequenceTotalDuration(0x205) - 1, 450 - _vm->_gnapGridX, 336 - _vm->_gnapGridY); @@ -1750,8 +1748,8 @@ void Scene04::updateAnimations() { gameSys.requestRemoveSequence(0x20B, 256); gameSys.insertSequence(0x107B5, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), 255, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); - _vm->_gnapIdleFacing = kDirBottomRight; + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->_gnapSequenceId = 0x7B5; _vm->_gnapSequenceDatNum = 1; _vm->_gnapActionStatus = -1; @@ -1777,10 +1775,10 @@ void Scene04::updateAnimations() { gameSys.removeSequence(0x20A, 256, true); gameSys.insertSequence(0x107B5, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), 255, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = 0x7B5; _vm->_gnapSequenceDatNum = 1; - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->_gnapActionStatus = -1; break; case kAS04GrabDog: @@ -1970,7 +1968,7 @@ void Scene05::run() { _vm->_platypusActionStatus = kAS05PlatSearchHaystack; _vm->_platypusFacing = kDirUnk4; } - if (_vm->_gnapX == 4 && (_vm->_gnapY == 8 || _vm->_gnapY == 7)) + if (_vm->_gnap->_pos.x == 4 && (_vm->_gnap->_pos.y == 8 || _vm->_gnap->_pos.y == 7)) _vm->gnapWalkStep(); _vm->playGnapIdle(_vm->_platX, _vm->_platY); } @@ -1983,7 +1981,7 @@ void Scene05::run() { case kHS05Chicken: if (_vm->_gnapActionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemTwig) { - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y + 1, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS05UseTwigWithChicken; @@ -1995,12 +1993,12 @@ void Scene05::run() { _vm->playGnapMoan2(9, 7); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[5].x, _vm->_hotspotsWalkPos[5].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS05GrabChicken; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[5].x, _vm->_hotspotsWalkPos[5].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS05TalkChicken; break; @@ -2022,7 +2020,7 @@ void Scene05::run() { _vm->playGnapMoan2(2, 4); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirBottomLeft; + _vm->_gnap->_idleFacing = kDirBottomLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS05GrabLadder; break; @@ -2057,7 +2055,7 @@ void Scene05::run() { _vm->playGnapScratchingHead(7, 4); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS05TryPickPadlock; @@ -2193,7 +2191,7 @@ void Scene05::updateAnimations() { case kAS05EnterBarn: gameSys.insertSequence(0x107B1, 1, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); gameSys.setAnimation(0x107B1, 1, 0); _vm->_gnapActionStatus = kAS05LeaveScene; break; @@ -2440,7 +2438,7 @@ void Scene06::run() { _vm->_hotspots[kHS06WalkArea5]._flags |= SF_WALKABLE; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, 0x107BC, 1); _vm->_hotspots[kHS06WalkArea5]._flags &= ~SF_WALKABLE; - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->platypusWalkTo(6, 8, 1, 0x107C2, 1); _vm->_platypusFacing = kDirNone; _vm->_gnapActionStatus = kAS06UseTwigOnHorse; @@ -2456,7 +2454,7 @@ void Scene06::run() { if (_horseTurnedBack) { _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 3, 2) | 0x10000, 1); } else { - _vm->_gnapIdleFacing = kDirBottomLeft; + _vm->_gnap->_idleFacing = kDirBottomLeft; _vm->_hotspots[kHS06WalkArea5]._flags |= SF_WALKABLE; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_hotspots[kHS06WalkArea5]._flags &= ~SF_WALKABLE; @@ -2571,8 +2569,7 @@ void Scene06::updateAnimations() { _vm->_gnapActionStatus = kAS06TryToClimbLadderDone; break; case kAS06TryToClimbLadderDone: - _vm->_gnapX = 6; - _vm->_gnapY = 7; + _vm->_gnap->_pos = Common::Point(6, 7); _vm->_gnapActionStatus = -1; break; case kAS06TalkToHorse: @@ -2626,7 +2623,7 @@ void Scene06::updateAnimations() { _vm->_platypusSequenceId = 0xFA; _vm->_platypusSequenceDatNum = 0; gameSys.insertSequence(0x107B7, _vm->_gnapId, 0x100, _vm->_gnapId, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = 0x7B7; _vm->_gnapSequenceDatNum = 1; _currHorseSequenceId = _nextHorseSequenceId; @@ -2692,12 +2689,11 @@ void Scene07::run() { _vm->initPlatypusPos(9, 7, kDirUnk4); _vm->endSceneInit(); } else { - _vm->_gnapX = 6; - _vm->_gnapY = 7; + _vm->_gnap->_pos = Common::Point(6, 7); _vm->_gnapId = 140; _vm->_gnapSequenceId = 0x8F; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; gameSys.insertSequence(0x8F, 140, 0, 0, kSeqNone, 0, 0, 0); gameSys.setAnimation(makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, 0); _vm->_gnapActionStatus = kAS07Wait; @@ -2747,8 +2743,8 @@ void Scene07::run() { case kHS07ExitHouse: _vm->_isLeavingScene = true; - if (_vm->_gnapX > 8) - _vm->gnapWalkTo(_vm->_gnapX, 7, 0, 0x107AD, 1); + if (_vm->_gnap->_pos.x > 8) + _vm->gnapWalkTo(_vm->_gnap->_pos.x, 7, 0, 0x107AD, 1); else _vm->gnapWalkTo(8, 7, 0, 0x107AD, 1); _vm->_gnapActionStatus = kAS07LeaveScene; @@ -2770,7 +2766,7 @@ void Scene07::run() { gameSys.insertSequence(0x8E, 1, 141, 1, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(_vm->getGnapSequenceId(gskUseDevice, 0, 0) | 0x10000, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = _vm->getGnapSequenceId(gskUseDevice, 0, 0); _vm->_gnapSequenceDatNum = 1; break; @@ -3044,13 +3040,13 @@ void Scene08::run() { _vm->gnapActionIdle(0x14D); _vm->gnapWalkTo(6, 6, 0, 0x107BB, 1); _vm->_gnapActionStatus = kAS08LookMan; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; break; case GRAB_CURSOR: _vm->playGnapImpossible(0, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapActionIdle(0x14D); _vm->gnapWalkTo(8, 6, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS08TalkMan; @@ -3082,10 +3078,10 @@ void Scene08::run() { case GRAB_CURSOR: _vm->gnapWalkTo(4, 7, 0, 0x107BB, 1); _vm->_gnapActionStatus = kAS08GrabDog; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapActionIdle(0x14D); _vm->gnapWalkTo(4, 7, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS08TalkDog; @@ -3342,7 +3338,7 @@ void Scene08::updateAnimations() { _vm->_platypusSequenceId = 0x148; _vm->_platypusFacing = kDirUnk4; _vm->_platypusSequenceDatNum = 0; - if (_vm->_gnapX == 1 && _vm->_gnapY == 8) + if (_vm->_gnap->_pos == Common::Point(1, 8)) _vm->gnapWalkStep(); } else if (_nextDogSequenceId != -1) { gameSys.setAnimation(_nextDogSequenceId, 100, 3); @@ -3355,7 +3351,7 @@ void Scene08::updateAnimations() { _vm->_timers[3] = _vm->getRandom(50) + 200; gameSys.insertSequence(0x14D, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); _vm->_gnapSequenceId = 0x14D; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapSequenceDatNum = 0; _vm->_gnapActionStatus = -1; } @@ -3543,10 +3539,9 @@ void Scene09::updateAnimations() { gameSys.removeSequence(0x4B, 2, true); _vm->_gnapSequenceId = 0x4C; _vm->_gnapId = 120; - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapX = 9; - _vm->_gnapY = 6; + _vm->_gnap->_pos = Common::Point(9, 6); _vm->_gnapActionStatus = kAS09SearchTrashDone; break; case kAS09SearchTrashDone: diff --git a/engines/gnap/scenes/group1.cpp b/engines/gnap/scenes/group1.cpp index bd77c3c133..017858b24c 100644 --- a/engines/gnap/scenes/group1.cpp +++ b/engines/gnap/scenes/group1.cpp @@ -159,10 +159,10 @@ void Scene10::run() { break; case GRAB_CURSOR: _vm->playGnapImpossible(0, 0); - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapActionIdle(0x10C); _vm->gnapWalkTo(4, 8, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS10AnnoyCook; @@ -265,10 +265,9 @@ void Scene10::run() { gameSys.insertSequence(0x10E, 120, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); _vm->_gnapSequenceId = 0x10E; _vm->_gnapId = 120; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapX = 9; - _vm->_gnapY = 6; + _vm->_gnap->_pos = Common::Point(9, 6); _vm->_timers[2] = 360; break; case TALK_CURSOR: @@ -402,7 +401,7 @@ void Scene10::updateAnimations() { _vm->setGrabCursorSprite(kItemTongs); if (_vm->_platypusActionStatus == kAS10PlatWithBox) _vm->_platypusActionStatus = -1; - if (_vm->_gnapX == 4 && _vm->_gnapY == 8) + if (_vm->_gnap->_pos == Common::Point(4, 8)) _vm->gnapWalkStep(); break; default: @@ -459,7 +458,7 @@ void Scene10::updateAnimations() { _vm->_timers[3] = 300; gameSys.insertSequence(0x10C, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); _vm->_gnapSequenceId = 0x10C; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapSequenceDatNum = 0; _vm->_gnapActionStatus = -1; _vm->_platypusActionStatus = -1; @@ -654,7 +653,7 @@ void Scene11::run() { _vm->playGnapImpossible(0, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(3, 7, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS11TalkGoggleGuy; break; @@ -665,7 +664,7 @@ void Scene11::run() { case kHS11HookGuy: if (_vm->_gnapActionStatus < 0) { - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; if (_vm->_grabCursorSpriteIndex >= 0) { _vm->gnapWalkTo(5, 6, 0, 0x107BC, 9); _vm->_gnapActionStatus = kAS11ShowItemToHookGuy; @@ -680,7 +679,7 @@ void Scene11::run() { _vm->_gnapActionStatus = kAS11GrabHookGuy; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirBottomLeft; + _vm->_gnap->_idleFacing = kDirBottomLeft; _vm->gnapWalkTo(5, 6, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS11TalkHookGuy; break; @@ -1042,18 +1041,18 @@ void Scene12::run() { if (_vm->_grabCursorSpriteIndex == kItemQuarter) { _vm->_largeSprite = gameSys.createSurface(0x141); _vm->gnapWalkTo(3, 7, 0, 0x107BC, 9); - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_gnapActionStatus = kAS12QuarterToToothGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 2, 0); _vm->setGrabCursorSprite(-1); } else if (_vm->_grabCursorSpriteIndex == kItemQuarterWithHole) { _vm->gnapWalkTo(3, 7, 0, 0x107BC, 9); - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_gnapActionStatus = kAS12QuarterWithHoleToToothGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 2, 0); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->gnapWalkTo(3, 7, 0, 0x107BC, 9); - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_gnapActionStatus = kAS12ShowItemToToothGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 2, 0); } else { @@ -1066,7 +1065,7 @@ void Scene12::run() { _vm->_gnapActionStatus = kAS12GrabToothGuy; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(3, 7, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS12TalkToothGuy; break; @@ -1084,26 +1083,26 @@ void Scene12::run() { case kHS12Barkeeper: if (_vm->_grabCursorSpriteIndex == kItemQuarter || _vm->_grabCursorSpriteIndex == kItemQuarterWithHole) { _vm->gnapWalkTo(6, 6, 0, 0x107BB, 9); - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapActionStatus = kAS12QuarterWithBarkeeper; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 7, 0); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->gnapWalkTo(6, 6, 0, 0x107BB, 9); - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapActionStatus = kAS12ShowItemToBarkeeper; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 7, 0); } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->gnapWalkTo(6, 6, 0, 0x107BB, 1); - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapActionStatus = kAS12LookBarkeeper; break; case GRAB_CURSOR: _vm->playGnapImpossible(0, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(6, 6, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS12TalkBarkeeper; break; @@ -1119,24 +1118,24 @@ void Scene12::run() { case kHS12BeardGuy: if (_vm->_grabCursorSpriteIndex >= 0) { _vm->gnapWalkTo(7, 6, 0, 0x107BB, 9); - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapActionStatus = kAS12ShowItemToBeardGuy; _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, 8, 0); } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->gnapWalkTo(7, 6, 0, 0x107BB, 1); - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapActionStatus = kAS12LookBeardGuy; break; case GRAB_CURSOR: // NOTE Bug in the original. It has 9 as flags which seems wrong here. _vm->gnapWalkTo(7, 6, 0, 0x107BB, 1); - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapActionStatus = kAS12GrabBeardGuy; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(7, 6, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS12TalkBeardGuy; break; @@ -1364,7 +1363,7 @@ void Scene12::updateAnimations() { gameSys.insertSpriteDrawItem(_vm->_largeSprite, 0, 0, 300); gameSys.insertSequence(0x10843, 301, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(0x107B7, _vm->_gnapId, 0x10843, 301, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = 0x7B7; _vm->_gnapSequenceDatNum = 1; _vm->setFlag(kGFTwigTaken); @@ -1560,7 +1559,7 @@ void Scene13::run() { case LOOK_CURSOR: case GRAB_CURSOR: case TALK_CURSOR: - if (_vm->_gnapX == 5 && _vm->_gnapY == 5) { + if (_vm->_gnap->_pos == Common::Point(5, 5)) { _backToiletCtr = MIN(5, _backToiletCtr + 1); gameSys.setAnimation(_backToiletCtr + 0xA3, _vm->_gnapId, 0); gameSys.insertSequence(_backToiletCtr + 0xA3, _vm->_gnapId, @@ -1568,12 +1567,12 @@ void Scene13::run() { kSeqScale | kSeqSyncWait, 0, 0, 0); _vm->_gnapActionStatus = kAS13Wait; _vm->_gnapSequenceId = _backToiletCtr + 0xA3; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapSequenceDatNum = 0; } else { _vm->gnapWalkTo(5, 5, 0, 0x107BB, 1); _vm->_gnapActionStatus = kAS13BackToilet; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; } break; case PLAT_CURSOR: @@ -1594,7 +1593,7 @@ void Scene13::run() { case PLAT_CURSOR: _vm->gnapWalkTo(6, 7, 0, 0xA9, 5); _vm->_gnapActionStatus = kAS13FrontToilet; - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; break; } } @@ -1608,13 +1607,13 @@ void Scene13::run() { case LOOK_CURSOR: _vm->gnapWalkTo(7, 7, 0, 0x107BB, 1); _vm->_gnapActionStatus = kAS13LookScribble; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; break; case GRAB_CURSOR: _vm->playGnapScratchingHead(0, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(7, 7, -1, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0), 1); break; case PLAT_CURSOR: @@ -1631,7 +1630,7 @@ void Scene13::run() { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->playGnapSequence(_vm->getGnapSequenceId(gskDeflect, 9, 6)); - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, -1, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1); _vm->_gnapActionStatus = kAS13Wait; break; case GRAB_CURSOR: @@ -1653,7 +1652,7 @@ void Scene13::run() { switch (_vm->_verbCursor) { case LOOK_CURSOR: _vm->playGnapSequence(_vm->getGnapSequenceId(gskDeflect, 5, 9)); - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, -1, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1); _vm->_gnapActionStatus = kAS13Wait; break; case GRAB_CURSOR: @@ -1791,10 +1790,9 @@ void Scene13::updateAnimations() { gameSys.removeSequence(0xAA, 256, true); _vm->_gnapSequenceId = 0xAB; _vm->_gnapId = 160; - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapX = 4; - _vm->_gnapY = 8; + _vm->_gnap->_pos = Common::Point(4, 8); _vm->_timers[2] = 360; _vm->_gnapActionStatus = kAS13GrabSinkDone; break; @@ -1810,10 +1808,9 @@ void Scene13::updateAnimations() { gameSys.insertSequence(0xA2, 120, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); _vm->_gnapSequenceId = 0xA2; _vm->_gnapId = 120; - _vm->_gnapIdleFacing = kDirBottomLeft; + _vm->_gnap->_idleFacing = kDirBottomLeft; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapX = 4; - _vm->_gnapY = 6; + _vm->_gnap->_pos = Common::Point(4, 6); _vm->_timers[2] = 360; _vm->_gnapActionStatus = kAS13Wait; break; @@ -2446,8 +2443,7 @@ void Scene17::run() { _vm->clearFlag(kGFSpringTaken); _vm->clearFlag(kGFUnk16); _vm->initPlatypusPos(7, 9, kDirNone); - _vm->_gnapX = _vm->_hotspotsWalkPos[2].x; - _vm->_gnapY = _vm->_hotspotsWalkPos[2].y; + _vm->_gnap->_pos = _vm->_hotspotsWalkPos[2]; _vm->_gnapId = 20 * _vm->_hotspotsWalkPos[2].y; gameSys.insertSequence(601, 20 * _vm->_hotspotsWalkPos[2].y, 0, 0, kSeqNone, 0, 0, 0); _vm->_gnapSequenceDatNum = 0; @@ -2496,12 +2492,11 @@ void Scene17::run() { _vm->endSceneInit(); } } else { - _vm->_gnapX = 3; - _vm->_gnapY = 6; + _vm->_gnap->_pos = Common::Point(3, 6); _vm->_gnapId = 120; _vm->_gnapSequenceId = 0x23D; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; gameSys.insertSequence(makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, 0, 0, kSeqNone, 0, 0, 0); _vm->_platX = -1; _vm->_platY = 8; @@ -2614,7 +2609,7 @@ void Scene17::run() { case GRAB_CURSOR: if (_vm->isFlag(kGFUnk18)) { platHangUpPhone(); - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y) | 0x10000, 1); _vm->_gnapActionStatus = kAS17GetCoinFromPhone; } else _vm->playGnapImpossible(0, 0); @@ -2656,7 +2651,7 @@ void Scene17::run() { if (_vm->isFlag(kGFUnk18)) { platHangUpPhone(); _vm->_isLeavingScene = true; - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS17GnapUsePhone; _vm->setFlag(kGFSpringTaken); @@ -2688,7 +2683,7 @@ void Scene17::run() { if (_vm->_gnapActionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 18; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[5].x, _vm->_hotspotsWalkPos[5].y, 0, 0x107BB, 1); _vm->_gnapActionStatus = kAS17LeaveScene; if (_vm->_platypusActionStatus != kAS17PlatPhoningAssistant) @@ -2701,7 +2696,7 @@ void Scene17::run() { platHangUpPhone(); _vm->_isLeavingScene = true; _vm->_newSceneNum = 20; - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[3].x, _vm->_hotspotsWalkPos[3].y, 0, 0x107BC, 1); _vm->_gnapActionStatus = kAS17LeaveScene; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[3].x + 1, _vm->_hotspotsWalkPos[3].y, -1, 0x107C2, 1); @@ -3166,7 +3161,7 @@ void Scene18::gnapCarryGarbageCanTo(int gridX) { int curGridX = (_vm->_leftClickMouseX - _vm->_gridMinX + 37) / 75; - if (curGridX >= _vm->_gnapX) + if (curGridX >= _vm->_gnap->_pos.x) destGridX = curGridX - 1; else destGridX = curGridX + 1; @@ -3181,30 +3176,30 @@ void Scene18::gnapCarryGarbageCanTo(int gridX) { if (nextGridX >= destGridX) nextGridX = destGridX; - if (nextGridX == _vm->_gnapX) { + if (nextGridX == _vm->_gnap->_pos.x) { gnapSeqId = _vm->_gnapSequenceId; gnapId = _vm->_gnapId; gnapDatNum = _vm->_gnapSequenceDatNum; - gnapGridX = _vm->_gnapX; - if (_vm->_gnapX <= curGridX) + gnapGridX = _vm->_gnap->_pos.x; + if (_vm->_gnap->_pos.x <= curGridX) direction = 1; else direction = -1; } else { - if (_vm->_gnapY == _vm->_platY) { - if (nextGridX >= _vm->_gnapX) { - if (nextGridX >= _vm->_platX && _vm->_gnapX <= _vm->_platX) + if (_vm->_gnap->_pos.y == _vm->_platY) { + if (nextGridX >= _vm->_gnap->_pos.x) { + if (nextGridX >= _vm->_platX && _vm->_gnap->_pos.x <= _vm->_platX) _vm->platypusMakeRoom(); - } else if (nextGridX <= _vm->_platX && _vm->_gnapX >= _vm->_platX) { + } else if (nextGridX <= _vm->_platX && _vm->_gnap->_pos.x >= _vm->_platX) { _vm->platypusMakeRoom(); } } gnapSeqId = _vm->_gnapSequenceId; gnapId = _vm->_gnapId; gnapDatNum = _vm->_gnapSequenceDatNum; - gnapGridX = _vm->_gnapX; + gnapGridX = _vm->_gnap->_pos.x; int seqId; - if (nextGridX < _vm->_gnapX) { + if (nextGridX < _vm->_gnap->_pos.x) { direction = -1; seqId = 0x204; } else { @@ -3212,14 +3207,14 @@ void Scene18::gnapCarryGarbageCanTo(int gridX) { seqId = 0x203; } - int seqId2 = 20 * _vm->_gnapY + 1; + int seqId2 = 20 * _vm->_gnap->_pos.y + 1; do { - if (_vm->isPointBlocked(gnapGridX + direction, _vm->_gnapY)) + if (_vm->isPointBlocked(gnapGridX + direction, _vm->_gnap->_pos.y)) break; seqId2 += direction; gameSys.insertSequence(seqId, seqId2, gnapSeqId | (gnapDatNum << 16), gnapId, - kSeqSyncWait, 0, 75 * gnapGridX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * gnapGridX - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); gnapSeqId = seqId; gnapId = seqId2; gnapDatNum = 0; @@ -3234,18 +3229,18 @@ void Scene18::gnapCarryGarbageCanTo(int gridX) { _vm->_gnapSequenceDatNum = 0; if (direction == 1) - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; else - _vm->_gnapIdleFacing = kDirBottomLeft; + _vm->_gnap->_idleFacing = kDirBottomLeft; - _vm->_gnapId = 20 * _vm->_gnapY + 1; + _vm->_gnapId = 20 * _vm->_gnap->_pos.y + 1; gameSys.setAnimation(makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, 0); gameSys.insertSequence(makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, gnapSeqId | (gnapDatNum << 16), gnapId, - kSeqScale | kSeqSyncWait, 0, 75 * gnapGridX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqScale | kSeqSyncWait, 0, 75 * gnapGridX - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); - _vm->_gnapX = gnapGridX; + _vm->_gnap->_pos.x = gnapGridX; } void Scene18::putDownGarbageCan(int animationIndex) { @@ -3255,21 +3250,21 @@ void Scene18::putDownGarbageCan(int animationIndex) { while (gameSys.getAnimationStatus(animationIndex) != 2) _vm->gameUpdateTick(); } - if (_vm->_gnapIdleFacing != kDirNone && _vm->_gnapIdleFacing != kDirBottomRight && _vm->_gnapIdleFacing != kDirUpRight) - _vm->_s18GarbageCanPos = _vm->_gnapX - 1; + if (_vm->_gnap->_idleFacing != kDirNone && _vm->_gnap->_idleFacing != kDirBottomRight && _vm->_gnap->_idleFacing != kDirUpRight) + _vm->_s18GarbageCanPos = _vm->_gnap->_pos.x - 1; else - _vm->_s18GarbageCanPos = _vm->_gnapX + 1; + _vm->_s18GarbageCanPos = _vm->_gnap->_pos.x + 1; _vm->clearFlag(kGFPlatypusDisguised); updateHotspots(); - if (_vm->_gnapIdleFacing != kDirNone && _vm->_gnapIdleFacing != kDirBottomRight && _vm->_gnapIdleFacing != kDirUpRight) { + if (_vm->_gnap->_idleFacing != kDirNone && _vm->_gnap->_idleFacing != kDirBottomRight && _vm->_gnap->_idleFacing != kDirUpRight) { gameSys.insertSequence(0x107BA, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = 0x7BA; } else { gameSys.insertSequence(0x107B9, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = 0x7B9; } _vm->_gnapSequenceDatNum = 1; @@ -3508,7 +3503,7 @@ void Scene18::run() { platEndPhoning(true); if (_vm->_grabCursorSpriteIndex >= 0) { if (!_vm->isFlag(kGFTruckKeysUsed)) - _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS18GarbageCan].x - (_vm->_gnapX < _vm->_s18GarbageCanPos ? 1 : -1), + _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS18GarbageCan].x - (_vm->_gnap->_pos.x < _vm->_s18GarbageCanPos ? 1 : -1), _vm->_hotspotsWalkPos[kHS18GarbageCan].y, _vm->_hotspotsWalkPos[kHS18GarbageCan].x, _vm->_hotspotsWalkPos[kHS18GarbageCan].y); else _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS18GarbageCan].x, _vm->_hotspotsWalkPos[kHS18GarbageCan].y, 2, 4); @@ -3516,15 +3511,15 @@ void Scene18::run() { switch (_vm->_verbCursor) { case LOOK_CURSOR: if (!_vm->isFlag(kGFTruckKeysUsed)) - _vm->playGnapScratchingHead(_vm->_hotspotsWalkPos[kHS18GarbageCan].x - (_vm->_gnapX < _vm->_s18GarbageCanPos ? 1 : -1), _vm->_hotspotsWalkPos[kHS18GarbageCan].y); + _vm->playGnapScratchingHead(_vm->_hotspotsWalkPos[kHS18GarbageCan].x - (_vm->_gnap->_pos.x < _vm->_s18GarbageCanPos ? 1 : -1), _vm->_hotspotsWalkPos[kHS18GarbageCan].y); else if (!_vm->isFlag(kGFTruckFilledWithGas)) _vm->playGnapScratchingHead(2, 4); break; case GRAB_CURSOR: if (!_vm->isFlag(kGFTruckKeysUsed)) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan].x - (_vm->_gnapX < _vm->_s18GarbageCanPos ? 1 : -1), _vm->_hotspotsWalkPos[kHS18GarbageCan].y, + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan].x - (_vm->_gnap->_pos.x < _vm->_s18GarbageCanPos ? 1 : -1), _vm->_hotspotsWalkPos[kHS18GarbageCan].y, -1, -1, 1); - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, _vm->_s18GarbageCanPos, _vm->_gnapY) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_s18GarbageCanPos, _vm->_gnap->_pos.y) | 0x10000, 1); _vm->_gnapActionStatus = kAS18GrabGarbageCanFromStreet; } else if (!_vm->isFlag(kGFTruckFilledWithGas)) { if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan].x, _vm->_hotspotsWalkPos[kHS18GarbageCan].y, 0, -1, 1)) @@ -3579,7 +3574,7 @@ void Scene18::run() { } } else { if (_vm->_grabCursorSpriteIndex == kItemWrench) { - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, 2, 8) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, 2, 8) | 0x10000, 1); _vm->_gnapActionStatus = kAS18OpenTopValve; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS18HydrantTopValve].x, _vm->_hotspotsWalkPos[kHS18HydrantTopValve].y, 1, 5); @@ -3621,7 +3616,7 @@ void Scene18::run() { putDownGarbageCan(0); } if (_vm->_grabCursorSpriteIndex == kItemWrench) { - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, 2, 8) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, 2, 8) | 0x10000, 1); if (_vm->isFlag(kGFTruckKeysUsed)) _vm->_gnapActionStatus = kAS18OpenRightValveWithGarbageCan; else @@ -3800,16 +3795,16 @@ void Scene18::updateAnimations() { gameSys.setAnimation(0, 0, 0); switch (_vm->_gnapActionStatus) { case kAS18GrabGarbageCanFromStreet: - if (_vm->_gnapIdleFacing != kDirUpRight && _vm->_gnapIdleFacing != kDirBottomRight) { + if (_vm->_gnap->_idleFacing != kDirUpRight && _vm->_gnap->_idleFacing != kDirBottomRight) { gameSys.insertSequence(0x1FC, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, - kSeqSyncWait, 0, 75 * _vm->_gnapX - 675, 0); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - 675, 0); _vm->_gnapSequenceDatNum = 0; _vm->_gnapSequenceId = 0x1FC; } else { gameSys.insertSequence(0x1FD, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, - kSeqSyncWait, 0, 75 * _vm->_gnapX - 525, 0); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - 525, 0); _vm->_gnapSequenceDatNum = 0; _vm->_gnapSequenceId = 0x1FD; } @@ -3997,7 +3992,7 @@ void Scene18::updateAnimations() { _vm->clearFlag(kGFTruckFilledWithGas); _vm->invAdd(kItemWrench); _vm->setGrabCursorSprite(kItemWrench); - gameSys.insertSequence(0x107B5, _vm->_gnapId, 517, _vm->_gnapId, kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + gameSys.insertSequence(0x107B5, _vm->_gnapId, 517, _vm->_gnapId, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); updateHotspots(); _vm->_gnapSequenceDatNum = 1; _vm->_gnapSequenceId = 0x7B5; @@ -4200,7 +4195,7 @@ void Scene19::run() { break; case GRAB_CURSOR: if (!_vm->isFlag(kGFPictureTaken)) { - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y) | 0x10000, 1); _vm->_gnapActionStatus = kAS19GrabPicture; } break; @@ -4223,7 +4218,7 @@ void Scene19::run() { _vm->playGnapScratchingHead(6, 2); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS19TalkShopAssistant; break; diff --git a/engines/gnap/scenes/group2.cpp b/engines/gnap/scenes/group2.cpp index eeffa1664e..543b4fe23e 100644 --- a/engines/gnap/scenes/group2.cpp +++ b/engines/gnap/scenes/group2.cpp @@ -370,7 +370,7 @@ void Scene20::run() { _vm->playGnapMoan2(5, 4); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20StonerGuy].x, _vm->_hotspotsWalkPos[kHS20StonerGuy].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); if (_stonerGuyShowingJoint) _vm->_gnapActionStatus = kAS20GrabJoint; @@ -378,7 +378,7 @@ void Scene20::run() { _vm->playGnapImpossible(0, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20StonerGuy].x, _vm->_hotspotsWalkPos[kHS20StonerGuy].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); if (_vm->isFlag(kGFJointTaken)) _vm->_gnapActionStatus = kAS20TalkStonerGuyNoJoint; @@ -404,12 +404,12 @@ void Scene20::run() { break; case GRAB_CURSOR: _stonerGuyShowingJoint = false; - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy].x, _vm->_hotspotsWalkPos[kHS20GroceryStoreGuy].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS20GrabGroceryStoreGuy; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy].x, _vm->_hotspotsWalkPos[kHS20GroceryStoreGuy].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS20TalkGroceryStoreGuy; break; @@ -424,7 +424,7 @@ void Scene20::run() { case kHS20GroceryStoreHat: if (_vm->_gnapActionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemCowboyHat) { - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreHat].x, _vm->_hotspotsWalkPos[kHS20GroceryStoreHat].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS20SwitchGroceryStoreHat; } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -436,7 +436,7 @@ void Scene20::run() { break; case GRAB_CURSOR: _stonerGuyShowingJoint = false; - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS20GroceryStoreGuy].x, _vm->_hotspotsWalkPos[kHS20GroceryStoreGuy].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS20GrabGroceryStoreHat; break; @@ -624,7 +624,7 @@ void Scene20::updateAnimations() { _vm->removeFullScreenSprite(); _vm->showCursor(); _vm->setGrabCursorSprite(kItemGroceryStoreHat); - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->gnapWalkTo(3, 8, -1, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = -1; break; @@ -824,7 +824,7 @@ void Scene21::run() { _vm->playGnapScratchingHead(2, 5); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS21Banana].x, _vm->_hotspotsWalkPos[kHS21Banana].y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS21Banana].x, _vm->_hotspotsWalkPos[kHS21Banana].y) | 0x10000, 1); _vm->playGnapPullOutDevice(2, 5); _vm->playGnapUseDevice(0, 0); _vm->_gnapActionStatus = kAS21GrabBanana; @@ -851,14 +851,14 @@ void Scene21::run() { _vm->playGnapScratchingHead(7, 4); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->_hotspots[kHS21WalkArea1]._flags |= SF_WALKABLE; _vm->gnapWalkTo(7, 6, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS21GrabOldLady; _vm->_hotspots[kHS21WalkArea1]._flags &= ~SF_WALKABLE; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS21OldLady].x, _vm->_hotspotsWalkPos[kHS21OldLady].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS21TalkOldLady; break; @@ -1163,7 +1163,7 @@ void Scene22::run() { _vm->playGnapImpossible(0, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS22Cashier].x, _vm->_hotspotsWalkPos[kHS22Cashier].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS22TalkCashier; @@ -1373,7 +1373,7 @@ void Scene23::run() { if (_vm->isFlag(kGFSceneFlag1)) _vm->playGnapImpossible(0, 0); else { - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS23Cereals].x, _vm->_hotspotsWalkPos[kHS23Cereals].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->setFlag(kGFSceneFlag1); @@ -1637,7 +1637,7 @@ void Scene24::run() { if (_vm->_gnapActionStatus < 0) { _vm->_isLeavingScene = true; _vm->_newSceneNum = 20; - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS24ExitOutsideGrubCity].x, _vm->_hotspotsWalkPos[kHS24ExitOutsideGrubCity].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS24LeaveScene; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS24ExitOutsideGrubCity].x + 1, _vm->_hotspotsWalkPos[kHS24ExitOutsideGrubCity].y, -1, 0x107C2, 1); @@ -1887,7 +1887,7 @@ void Scene25::run() { _nextTicketVendorSequenceId = (_vm->getRandom(2) == 1) ? 0x59 : 0x56; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS25TicketVendor].x, _vm->_hotspotsWalkPos[kHS25TicketVendor].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS25TalkTicketVendor; break; @@ -1941,11 +1941,11 @@ void Scene25::run() { case LOOK_CURSOR: _vm->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y, -1, -1, 1); if (_vm->_sceneClickedHotspot == 5 || _vm->_sceneClickedHotspot == 6) - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; else if (_vm->_sceneClickedHotspot == 8) - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; else - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->playGnapIdle(0, 0); playAnims(8 - _vm->_sceneClickedHotspot + 1); break; @@ -2423,7 +2423,7 @@ void Scene27::run() { case kHS27Janitor: if (_vm->_gnapActionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemPicture) { - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS27Janitor].x, _vm->_hotspotsWalkPos[kHS27Janitor].y, 0, 0x107BC, 1)) _vm->_gnapActionStatus = kAS27ShowPictureToJanitor; } else if (_vm->_grabCursorSpriteIndex >= 0) { @@ -2434,7 +2434,7 @@ void Scene27::run() { _vm->playGnapScratchingHead(6, 3); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS27Janitor].x, _vm->_hotspotsWalkPos[kHS27Janitor].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS27TalkJanitor; break; @@ -2457,8 +2457,8 @@ void Scene27::run() { _vm->playGnapScratchingHead(3, 3); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS27Bucket].x, _vm->_hotspotsWalkPos[kHS27Bucket].y) | 0x10000, 1); + _vm->_gnap->_idleFacing = kDirUpLeft; + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS27Bucket].x, _vm->_hotspotsWalkPos[kHS27Bucket].y) | 0x10000, 1); _vm->_gnapActionStatus = kAS27GrabBucket; break; case TALK_CURSOR: @@ -2623,7 +2623,7 @@ void Scene27::updateAnimations() { _vm->_gnapActionStatus = -1; break; case kAS27EnterClownTent: - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, 0x107B2, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107B2, 1); _vm->_gnapActionStatus = kAS27LeaveScene; break; case kAS27LeaveScene: @@ -2803,11 +2803,11 @@ void Scene28::run() { case GRAB_CURSOR: if (_vm->isFlag(kGFUnk21)) { if (!_vm->invHas(kItemHorn)) { - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS28Horn].x, _vm->_hotspotsWalkPos[kHS28Horn].y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS28Horn].x, _vm->_hotspotsWalkPos[kHS28Horn].y) | 0x10000, 1); _vm->_gnapActionStatus = kAS28GrabHornSuccess; } } else { - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(2, 8, 0, 0x107BB, 1); _vm->_hotspots[kHS28WalkArea1]._flags |= SF_WALKABLE; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS28Horn].x, _vm->_hotspotsWalkPos[kHS28Horn].y, 0, 0x107BB, 1); @@ -2832,13 +2832,13 @@ void Scene28::run() { else _vm->playGnapImpossible(0, 0); } else if (_vm->_grabCursorSpriteIndex == kItemBucketWithBeer) { - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS28Clown].x, _vm->_hotspotsWalkPos[kHS28Clown].y, 0, 0x107BC, 1); _vm->playGnapPullOutDevice(0, 0); _vm->playGnapUseDevice(0, 0); _vm->_gnapActionStatus = kAS28UseBeerBucketWithClown; } else if (_vm->_grabCursorSpriteIndex == kItemBucketWithPill) { - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS28Clown].x, _vm->_hotspotsWalkPos[kHS28Clown].y, 0, 0x107BC, 1); _vm->playGnapPullOutDevice(0, 0); _vm->playGnapUseDevice(0, 0); @@ -2851,7 +2851,7 @@ void Scene28::run() { _vm->playGnapScratchingHead(5, 2); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(5, 8, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS28TalkClown; break; @@ -2888,7 +2888,7 @@ void Scene28::run() { _vm->playGnapScratchingHead(8, 6); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS28EmptyBucket].x, _vm->_hotspotsWalkPos[kHS28EmptyBucket].y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS28EmptyBucket].x, _vm->_hotspotsWalkPos[kHS28EmptyBucket].y) | 0x10000, 1); _vm->_gnapActionStatus = kAS28GrabEmptyBucket; break; case TALK_CURSOR: @@ -3000,7 +3000,7 @@ void Scene28::updateAnimations() { _vm->_gnapActionStatus = -1; break; case kAS28GrabHornFailsDone: - gameSys.insertSequence(0x107B5, _vm->_gnapId, 281, 39, kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + gameSys.insertSequence(0x107B5, _vm->_gnapId, 281, 39, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = 0x7B5; _vm->_gnapSequenceDatNum = 1; gameSys.insertSequence(0x11B, 39, 0, 0, kSeqNone, 0, 0, 0); @@ -3185,7 +3185,7 @@ void Scene29::run() { case kHS29Monkey: if (_vm->_gnapActionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemBanana) { - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS29Monkey].x, _vm->_hotspotsWalkPos[kHS29Monkey].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS29UseBananaWithMonkey; _vm->_newSceneNum = 51; diff --git a/engines/gnap/scenes/group3.cpp b/engines/gnap/scenes/group3.cpp index 20f798c84e..adec63a152 100644 --- a/engines/gnap/scenes/group3.cpp +++ b/engines/gnap/scenes/group3.cpp @@ -413,7 +413,7 @@ void Scene31::run() { if (_vm->_gnapActionStatus < 0 || _vm->_gnapActionStatus == kAS31PlatMeasuringClown) { if (_vm->_grabCursorSpriteIndex == kItemEmptyBucket && _beerGuyDistracted) { _vm->setGrabCursorSprite(-1); - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, -1, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS31BeerBarrel].x, _vm->_hotspotsWalkPos[kHS31BeerBarrel].y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, -1, _vm->getGnapSequenceId(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); @@ -434,7 +434,7 @@ void Scene31::run() { } else { _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS31BeerBarrel].x, _vm->_hotspotsWalkPos[kHS31BeerBarrel].y, 0, 0x107BC, 1); _vm->_gnapActionStatus = kAS31UseBeerBarrel; - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; } break; case TALK_CURSOR: @@ -544,15 +544,14 @@ void Scene31::updateAnimations() { case kAS31FillEmptyBucketWithBeer: gameSys.setAnimation(0x102, 59, 0); gameSys.insertSequence(0x102, 59, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapX = 5; - _vm->_gnapY = 7; + _vm->_gnap->_pos = Common::Point(5, 7); _vm->_gnapSequenceDatNum = 0; _vm->_gnapSequenceId = 0x102; _vm->_gnapId = 59; _vm->_gnapActionStatus = kAS31FillEmptyBucketWithBeerDone; break; case kAS31FillEmptyBucketWithBeerDone: - _vm->_gnapIdleFacing = kDirBottomLeft; + _vm->_gnap->_idleFacing = kDirBottomLeft; _vm->playGnapPullOutDevice(0, 0); _vm->playGnapUseDevice(0, 0); gameSys.insertSequence(0xF9, 59, 0xF8, 59, kSeqSyncWait, 0, 0, 0); @@ -899,14 +898,14 @@ void Scene33::run() { } else { switch (_vm->_verbCursor) { case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS33Chicken].x, _vm->_hotspotsWalkPos[kHS33Chicken].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1)) _vm->_gnapActionStatus = kAS33UseChicken; else _vm->_gnapActionStatus = -1; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_idleFacing = kDirBottomRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS33Chicken].x, _vm->_hotspotsWalkPos[kHS33Chicken].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS33TalkChicken; break; @@ -924,8 +923,8 @@ void Scene33::run() { _vm->_isLeavingScene = true; _vm->_gnapActionStatus = kAS33LeaveScene; _vm->_newSceneNum = 37; - if (_vm->_gnapX > 6) - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, 0x107AD, 1); + if (_vm->_gnap->_pos.x > 6) + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AD, 1); else _vm->gnapWalkTo(6, 7, 0, 0x107B1, 1); } @@ -936,8 +935,8 @@ void Scene33::run() { _vm->_isLeavingScene = true; _vm->_gnapActionStatus = kAS33LeaveScene; _vm->_newSceneNum = 35; - if (_vm->_gnapX > 7) - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, 0x107AD, 1); + if (_vm->_gnap->_pos.x > 7) + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AD, 1); else _vm->gnapWalkTo(7, 7, 0, 0x107B1, 1); } @@ -1033,7 +1032,7 @@ void Scene33::updateAnimations() { _vm->_timers[2] = 100; break; case kAS33UseChickenDone: - gameSys.insertSequence(0x107B5, _vm->_gnapId, 0x81, 179, kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + gameSys.insertSequence(0x107B5, _vm->_gnapId, 0x81, 179, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceId = 0x7B5; _vm->_gnapSequenceDatNum = 1; _currChickenSequenceId = 0x7E; @@ -1324,9 +1323,8 @@ void Scene38::updateAnimations() { gameSys.insertSequence(0xA0, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); _vm->_gnapSequenceId = 0xA0; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapX = 3; - _vm->_gnapY = 6; - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_pos = Common::Point(3, 6); + _vm->_gnap->_idleFacing = kDirBottomRight; if (_vm->_isLeavingScene) { _vm->_sceneWaiting = false; _vm->gnapWalkTo(5, 7, 0, 0x107BB, 1); @@ -1339,9 +1337,8 @@ void Scene38::updateAnimations() { gameSys.insertSequence(0x9E, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); _vm->_gnapSequenceId = 0x9E; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapX = 3; - _vm->_gnapY = 6; - _vm->_gnapIdleFacing = kDirBottomRight; + _vm->_gnap->_pos = Common::Point(3, 6); + _vm->_gnap->_idleFacing = kDirBottomRight; gameSys.setAnimation(0x9E, _vm->_gnapId, 0); _vm->_sceneWaiting = false; updateHotspots(); @@ -1481,7 +1478,7 @@ void Scene39::run() { if (_vm->_gnapActionStatus < 0) { _vm->_isLeavingScene = true; _vm->_sceneDone = true; - _vm->gnapWalkTo(_vm->_gnapX, _vm->_gnapY, 0, 0x107AB, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AB, 1); _vm->_gnapActionStatus = kAS39LeaveScene; _vm->_newSceneNum = 40; } diff --git a/engines/gnap/scenes/group4.cpp b/engines/gnap/scenes/group4.cpp index b9119b72ff..008246aa9e 100644 --- a/engines/gnap/scenes/group4.cpp +++ b/engines/gnap/scenes/group4.cpp @@ -265,9 +265,8 @@ void Scene41::run() { if (_vm->isFlag(kGFGnapControlsToyUFO)) { _vm->_gnapSequenceId = 0x120; _vm->_gnapSequenceDatNum = 0; - _vm->_gnapIdleFacing = kDirUpRight; - _vm->_gnapX = 7; - _vm->_gnapY = 7; + _vm->_gnap->_idleFacing = kDirUpRight; + _vm->_gnap->_pos = Common::Point(7, 7); _vm->_gnapId = 140; gameSys.insertSequence(0x120, 140, 0, 0, kSeqNone, 0, 0, 0); gameSys.setAnimation(makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, 0); @@ -412,7 +411,7 @@ void Scene41::run() { _vm->playGnapImpossible(0, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(4, 7, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS41TalkToyVendor; break; @@ -426,7 +425,7 @@ void Scene41::run() { case kHS41Kid: if (_vm->_grabCursorSpriteIndex == kItemChickenBucket) { _vm->gnapWalkTo(7, 7, 0, 0x107BB, 1); - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapActionStatus = kAS41UseChickenBucketWithKid; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(7, 7, 8, 0); @@ -437,11 +436,11 @@ void Scene41::run() { break; case GRAB_CURSOR: _vm->gnapWalkTo(7, 7, 0, 0x107BB, 1); - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->_gnapActionStatus = kAS41GrabKid; break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(7, 7, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); break; case PLAT_CURSOR: @@ -887,7 +886,7 @@ void Scene42::run() { case kHS42ExitUfoParty: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_gnapX, _vm->_hotspotsWalkPos[kHS42ExitUfoParty].y, 0, 0x107AE, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS42ExitUfoParty].y, 0, 0x107AE, 1); _vm->_gnapActionStatus = kAS42LeaveScene; _vm->platypusWalkTo(_vm->_platX, _vm->_hotspotsWalkPos[kHS42ExitUfoParty].y, -1, 0x107C7, 1); _vm->_newSceneNum = 40; @@ -895,7 +894,7 @@ void Scene42::run() { case kHS42ExitToyStand: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS42ExitToyStand].x, _vm->_gnapY, 0, 0x107AF, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS42ExitToyStand].x, _vm->_gnap->_pos.y, 0, 0x107AF, 1); _vm->_gnapActionStatus = kAS42LeaveScene; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS42ExitToyStand].x, _vm->_hotspotsWalkPos[kHS42ExitToyStand].y, -1, 0x107CF, 1); _vm->_newSceneNum = 41; @@ -903,7 +902,7 @@ void Scene42::run() { case kHS42ExitUfo: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS42ExitUfo].x, _vm->_gnapY, 0, 0x107AB, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS42ExitUfo].x, _vm->_gnap->_pos.y, 0, 0x107AB, 1); _vm->_gnapActionStatus = kAS42LeaveScene; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS42ExitUfo].x, _vm->_hotspotsWalkPos[kHS42ExitUfo].y, -1, 0x107CD, 1); _vm->_newSceneNum = 43; @@ -923,7 +922,7 @@ void Scene42::run() { _vm->playGnapScratchingHead(_vm->_hotspotsWalkPos[kHS42BBQVendor].x - 1, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS42BBQVendor].x, _vm->_hotspotsWalkPos[kHS42BBQVendor].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = kAS42TalkBBQVendor; break; @@ -1066,7 +1065,7 @@ void Scene42::updateAnimations() { gameSys.insertSequence(0x107B7, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, _vm->getSequenceTotalDuration(_nextBBQVendorSequenceId), - 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->_gnapSequenceDatNum = 1; } else { gameSys.insertSequence(sequenceId, _vm->_gnapId, @@ -1353,7 +1352,7 @@ void Scene43::run() { case kHS43ExitBBQ: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS43ExitBBQ].x, _vm->_gnapY, 0, 0x107AF, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS43ExitBBQ].x, _vm->_gnap->_pos.y, 0, 0x107AF, 1); _vm->_gnapActionStatus = 0; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS43ExitBBQ].x, _vm->_hotspotsWalkPos[kHS43ExitBBQ].y, -1, 0x107CF, 1); _vm->_newSceneNum = 42; @@ -1361,7 +1360,7 @@ void Scene43::run() { case kHS43ExitKissinBooth: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS43ExitKissinBooth].x, _vm->_gnapY, 0, 0x107AB, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS43ExitKissinBooth].x, _vm->_gnap->_pos.y, 0, 0x107AB, 1); _vm->_gnapActionStatus = 0; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS43ExitKissinBooth].x, _vm->_hotspotsWalkPos[kHS43ExitKissinBooth].y, -1, 0x107CD, 1); _vm->_newSceneNum = 44; @@ -1376,7 +1375,7 @@ void Scene43::run() { _vm->playGnapScratchingHead(7, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(5, 8, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = 2; break; @@ -1398,7 +1397,7 @@ void Scene43::run() { _vm->playGnapScratchingHead(0, 0); break; case GRAB_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(3, 7, 0, 67515, 1); _vm->_gnapActionStatus = 1; break; @@ -1801,7 +1800,7 @@ void Scene44::run() { case kHS44ExitUfo: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44ExitUfo].x, _vm->_gnapY, 0, 0x107AF, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44ExitUfo].x, _vm->_gnap->_pos.y, 0, 0x107AF, 1); _vm->_gnapActionStatus = 0; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS44ExitUfo].x, _vm->_platY, -1, 0x107CF, 1); _vm->_newSceneNum = 43; @@ -1828,14 +1827,14 @@ void Scene44::run() { _vm->playGnapImpossible(0, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44KissingLady].x, _vm->_hotspotsWalkPos[kHS44KissingLady].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = 1; break; case PLAT_CURSOR: _vm->gnapUseDeviceOnPlatypus(); _vm->platypusWalkTo(6, 7, 1, 0x107D2, 1); - if (_vm->_gnapX == 7 && _vm->_gnapY == 7) + if (_vm->_gnap->_pos == Common::Point(7, 7)) _vm->gnapWalkStep(); _vm->playGnapIdle(5, 7); _vm->_platypusActionStatus = 4; @@ -1882,7 +1881,7 @@ void Scene44::run() { _vm->playGnapScratchingHead(8, 7); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS44SpringGuy].x, _vm->_hotspotsWalkPos[kHS44SpringGuy].y, -1, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); break; case GRAB_CURSOR: @@ -2203,7 +2202,7 @@ void Scene45::run() { gameSys.setAnimation(0x107BD, _vm->_gnapId, 0); gameSys.insertSequence(0x107BD, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, - kSeqSyncWait, 0, 75 * _vm->_gnapX - _vm->_gnapGridX, 48 * _vm->_gnapY - _vm->_gnapGridY); + kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); _vm->removeFullScreenSprite(); _vm->showCursor(); _vm->_gnapSequenceId = 0x7BD; @@ -2286,7 +2285,7 @@ void Scene45::run() { case kHS45ExitUfoParty: if (_vm->_gnapActionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_gnapX, _vm->_hotspotsWalkPos[kHS45ExitUfoParty].y, 0, 0x107AE, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS45ExitUfoParty].y, 0, 0x107AE, 1); _vm->_gnapActionStatus = 0; _vm->_newSceneNum = 40; } @@ -2295,7 +2294,7 @@ void Scene45::run() { case kHS45ExitShoe: if (_vm->_gnapActionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS45ExitShoe].x, _vm->_gnapY, 0, 0x107AF, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS45ExitShoe].x, _vm->_gnap->_pos.y, 0, 0x107AF, 1); _vm->_gnapActionStatus = 0; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS45ExitShoe].x, _vm->_platY, -1, 0x107CF, 1); _vm->_newSceneNum = 46; @@ -2305,7 +2304,7 @@ void Scene45::run() { case kHS45ExitRight: if (_vm->_gnapActionStatus < 0) { _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS45ExitRight].x, _vm->_gnapY, 0, 0x107AB, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS45ExitRight].x, _vm->_gnap->_pos.y, 0, 0x107AB, 1); _vm->_gnapActionStatus = 0; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS45ExitRight].x, _vm->_platY, -1, 0x107CD, 1); _vm->_newSceneNum = 41; @@ -2615,7 +2614,7 @@ void Scene46::run() { _vm->playGnapMoan1(_vm->_hotspotsWalkPos[kHS46SackGuy].x + 1, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpLeft; + _vm->_gnap->_idleFacing = kDirUpLeft; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS46SackGuy].x, _vm->_hotspotsWalkPos[kHS46SackGuy].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = 2; break; @@ -2636,7 +2635,7 @@ void Scene46::run() { _vm->playGnapMoan1(_vm->_hotspotsWalkPos[kHS46ItchyGuy].x - 1, 0); break; case TALK_CURSOR: - _vm->_gnapIdleFacing = kDirUpRight; + _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS46ItchyGuy].x, _vm->_hotspotsWalkPos[kHS46ItchyGuy].y, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnapActionStatus = 1; break; @@ -2650,14 +2649,14 @@ void Scene46::run() { case kHS46ExitUfoParty: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_gnapX, _vm->_hotspotsWalkPos[kHS46ExitUfoParty].y, 0, 0x107AE, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos.x, _vm->_hotspotsWalkPos[kHS46ExitUfoParty].y, 0, 0x107AE, 1); _vm->_gnapActionStatus = 0; _vm->_newSceneNum = 40; break; case kHS46ExitKissinBooth: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS46ExitKissinBooth].x, _vm->_gnapY, 0, 0x107AF, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS46ExitKissinBooth].x, _vm->_gnap->_pos.y, 0, 0x107AF, 1); _vm->_gnapActionStatus = 0; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS46ExitKissinBooth].x, _vm->_platY, -1, 0x107CF, 1); _vm->_newSceneNum = 44; @@ -2665,7 +2664,7 @@ void Scene46::run() { case kHS46ExitDisco: _vm->_isLeavingScene = true; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS46ExitDisco].x, _vm->_gnapY, 0, 0x107AB, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS46ExitDisco].x, _vm->_gnap->_pos.y, 0, 0x107AB, 1); _vm->_gnapActionStatus = 0; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS46ExitDisco].x, _vm->_platY, -1, 0x107CD, 1); _vm->_newSceneNum = 45; |