aboutsummaryrefslogtreecommitdiff
path: root/engines/gnap/scenes/group0.cpp
diff options
context:
space:
mode:
authorStrangerke2016-05-04 07:13:48 +0200
committerEugene Sandulenko2016-05-10 12:14:49 +0200
commit2e50019c05dbff0bbb559b72a201630605505c87 (patch)
tree473fb2794fd1a783ac5015f2de4456c12642cd12 /engines/gnap/scenes/group0.cpp
parentaee38421631479b6025585649172491f3251ce5e (diff)
downloadscummvm-rg350-2e50019c05dbff0bbb559b72a201630605505c87.tar.gz
scummvm-rg350-2e50019c05dbff0bbb559b72a201630605505c87.tar.bz2
scummvm-rg350-2e50019c05dbff0bbb559b72a201630605505c87.zip
GNAP: Introduce Character class - WIP
Diffstat (limited to 'engines/gnap/scenes/group0.cpp')
-rw-r--r--engines/gnap/scenes/group0.cpp109
1 files changed, 52 insertions, 57 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: