aboutsummaryrefslogtreecommitdiff
path: root/engines/gnap/scenes/group3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gnap/scenes/group3.cpp')
-rw-r--r--engines/gnap/scenes/group3.cpp264
1 files changed, 132 insertions, 132 deletions
diff --git a/engines/gnap/scenes/group3.cpp b/engines/gnap/scenes/group3.cpp
index 0e14ea9e3e..0698abb060 100644
--- a/engines/gnap/scenes/group3.cpp
+++ b/engines/gnap/scenes/group3.cpp
@@ -79,14 +79,14 @@ void Scene30::run() {
switch (_vm->_sceneClickedHotspot) {
case kHS30Device:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->runMenu();
updateHotspots();
}
break;
case kHS30Platypus:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->_grabCursorSpriteIndex == kItemJoint) {
_vm->gnapUseJointOnPlatypus();
} else if (_vm->_grabCursorSpriteIndex >= 0) {
@@ -112,12 +112,12 @@ void Scene30::run() {
break;
case kHS30PillMachine:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->_grabCursorSpriteIndex == kItemDiceQuarterHole && !_vm->isFlag(kGFUnk23)) {
_vm->_hotspots[kHS30WalkArea1]._flags |= SF_WALKABLE;
_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS30PillMachine].x, _vm->_hotspotsWalkPos[kHS30PillMachine].y, 0, 0x107BC, 1);
_vm->_hotspots[kHS30WalkArea1]._flags &= ~SF_WALKABLE;
- _vm->_gnapActionStatus = kAS30UsePillMachine;
+ _vm->_gnap->_actionStatus = kAS30UsePillMachine;
hasTakenPill = true;
} else if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS30PillMachine].x, _vm->_hotspotsWalkPos[kHS30PillMachine].y, 8, 5);
@@ -125,7 +125,7 @@ void Scene30::run() {
switch (_vm->_verbCursor) {
case LOOK_CURSOR:
_vm->gnapWalkTo(9, 8, 0, 0x107BC, 1);
- _vm->_gnapActionStatus = kAS30LookPillMachine;
+ _vm->_gnap->_actionStatus = kAS30LookPillMachine;
break;
case GRAB_CURSOR:
_vm->playGnapScratchingHead(8, 5);
@@ -140,20 +140,20 @@ void Scene30::run() {
break;
case kHS30ExitCircus:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
if (hasTakenPill)
_vm->_newSceneNum = 47;
else
_vm->_newSceneNum = 26;
_vm->gnapWalkTo(-1, _vm->_hotspotsWalkPos[kHS30ExitCircus].y, 0, 0x107AE, 1);
- _vm->_gnapActionStatus = kAS30LeaveScene;
+ _vm->_gnap->_actionStatus = kAS30LeaveScene;
_vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS30ExitCircus].x + 1, _vm->_hotspotsWalkPos[kHS30ExitCircus].y, -1, 0x107C2, 1);
}
break;
case kHS30WalkArea1:
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
break;
@@ -172,11 +172,11 @@ void Scene30::run() {
if (!_vm->_isLeavingScene) {
_vm->updatePlatypusIdleSequence();
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->updateGnapIdleSequence();
if (!_vm->_timers[4]) {
_vm->_timers[4] = _vm->getRandom(100) + 300;
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->getRandom(5) == 1) {
gameSys.insertSequence(0xFF, 40, 0, 0, kSeqNone, 0, 0, 0);
gameSys.insertSequence(0x100, 40, _kidSequenceId, 40, kSeqSyncWait, 0, 0, 0);
@@ -188,7 +188,7 @@ void Scene30::run() {
}
if (!_vm->_timers[5]) {
_vm->_timers[5] = _vm->getRandom(50) + 180;
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (!_vm->isFlag(kGFUnk23) || hasTakenPill)
gameSys.insertSequence(0x109, 20, 0, 0, kSeqNone, 0, 0, 0);
else
@@ -215,7 +215,7 @@ void Scene30::updateAnimations() {
if (gameSys.getAnimationStatus(0) == 2) {
gameSys.setAnimation(0, 0, 0);
- switch (_vm->_gnapActionStatus) {
+ switch (_vm->_gnap->_actionStatus) {
case kAS30LeaveScene:
_vm->_sceneDone = true;
break;
@@ -225,7 +225,7 @@ void Scene30::updateAnimations() {
gameSys.insertSequence(0x105, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0);
_vm->_gnapSequenceId = 0x105;
_vm->_gnapSequenceDatNum = 0;
- _vm->_gnapActionStatus = kAS30UsePillMachine2;
+ _vm->_gnap->_actionStatus = kAS30UsePillMachine2;
break;
case kAS30UsePillMachine2:
_vm->hideCursor();
@@ -240,7 +240,7 @@ void Scene30::updateAnimations() {
gameSys.insertSequence(0x103, _vm->_gnapId, 0, 0, kSeqNone, 0, 0, 0);
_vm->removeFullScreenSprite();
_vm->showCursor();
- _vm->_gnapActionStatus = kAS30UsePillMachine3;
+ _vm->_gnap->_actionStatus = kAS30UsePillMachine3;
_vm->invAdd(kItemPill);
_vm->setFlag(kGFUnk23);
break;
@@ -249,20 +249,20 @@ void Scene30::updateAnimations() {
gameSys.insertSequence(0x104, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, 0x103), _vm->_gnapId, kSeqSyncWait, 0, 0, 0);
_vm->_gnapSequenceId = 0x104;
_vm->_gnapSequenceDatNum = 0;
- _vm->_gnapActionStatus = kAS30UsePillMachine4;
+ _vm->_gnap->_actionStatus = kAS30UsePillMachine4;
_vm->setGrabCursorSprite(kItemDiceQuarterHole);
break;
case kAS30UsePillMachine4:
gameSys.insertSequence(0x106, 1, 0, 0, kSeqNone, 0, 0, 0);
_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS30PillMachine].x, _vm->_hotspotsWalkPos[kHS30PillMachine].y + 1, -1, 0x107BC, 1);
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
break;
case kAS30LookPillMachine:
if (_vm->isFlag(kGFUnk23))
_vm->showFullScreenSprite(0xE3);
else
_vm->showFullScreenSprite(0xE2);
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
break;
}
}
@@ -334,14 +334,14 @@ void Scene31::run() {
switch (_vm->_sceneClickedHotspot) {
case kHS31Device:
- if (_vm->_gnapActionStatus < 0 || _vm->_gnapActionStatus == kAS31PlatMeasuringClown) {
+ if (_vm->_gnap->_actionStatus < 0 || _vm->_gnap->_actionStatus == kAS31PlatMeasuringClown) {
_vm->runMenu();
updateHotspots();
}
break;
case kHS31Platypus:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->_grabCursorSpriteIndex == kItemJoint) {
_vm->gnapUseJointOnPlatypus();
} else if (_vm->_grabCursorSpriteIndex >= 0) {
@@ -367,8 +367,8 @@ void Scene31::run() {
break;
case kHS31MeasuringClown:
- if (_vm->_gnapActionStatus < 0 || _vm->_gnapActionStatus == kAS31PlatMeasuringClown) {
- if (_vm->_gnapActionStatus == kAS31PlatMeasuringClown) {
+ if (_vm->_gnap->_actionStatus < 0 || _vm->_gnap->_actionStatus == kAS31PlatMeasuringClown) {
+ if (_vm->_gnap->_actionStatus == kAS31PlatMeasuringClown) {
if (_vm->_verbCursor == LOOK_CURSOR)
_vm->playGnapScratchingHead(2, 2);
else
@@ -385,7 +385,7 @@ void Scene31::run() {
_vm->_hotspots[kHS31WalkArea1]._flags |= SF_WALKABLE;
_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown].x, _vm->_hotspotsWalkPos[kHS31MeasuringClown].y, 0, 0x107B9, 1);
_vm->_hotspots[kHS31WalkArea1]._flags &= ~SF_WALKABLE;
- _vm->_gnapActionStatus = kAS31UseMeasuringClown;
+ _vm->_gnap->_actionStatus = kAS31UseMeasuringClown;
_vm->_timers[4] = 300;
break;
case TALK_CURSOR:
@@ -398,8 +398,8 @@ void Scene31::run() {
_vm->_hotspots[kHS31WalkArea1]._flags |= SF_WALKABLE;
_vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS31MeasuringClown].x, _vm->_hotspotsWalkPos[kHS31MeasuringClown].y, 1, 0x107C2, 1);
_vm->_hotspots[kHS31WalkArea1]._flags &= ~SF_WALKABLE;
- _vm->_platypusActionStatus = kAS31PlatMeasuringClown;
- _vm->_gnapActionStatus = kAS31PlatMeasuringClown;
+ _vm->_plat->_actionStatus = kAS31PlatMeasuringClown;
+ _vm->_gnap->_actionStatus = kAS31PlatMeasuringClown;
_vm->_timers[4] = 300;
} else
_vm->playGnapImpossible(0, 0);
@@ -410,7 +410,7 @@ void Scene31::run() {
break;
case kHS31BeerBarrel:
- if (_vm->_gnapActionStatus < 0 || _vm->_gnapActionStatus == kAS31PlatMeasuringClown) {
+ if (_vm->_gnap->_actionStatus < 0 || _vm->_gnap->_actionStatus == kAS31PlatMeasuringClown) {
if (_vm->_grabCursorSpriteIndex == kItemEmptyBucket && _beerGuyDistracted) {
_vm->setGrabCursorSprite(-1);
_vm->gnapWalkTo(_vm->_gnap->_pos, -1, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[kHS31BeerBarrel].x, _vm->_hotspotsWalkPos[kHS31BeerBarrel].y) | 0x10000, 1);
@@ -419,7 +419,7 @@ void Scene31::run() {
_vm->playGnapPullOutDevice(6, 8);
_vm->playGnapUseDevice(0, 0);
_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS31BeerBarrel].x, _vm->_hotspotsWalkPos[kHS31BeerBarrel].y, 0, 0x107BC, 1);
- _vm->_gnapActionStatus = kAS31FillEmptyBucketWithBeer;
+ _vm->_gnap->_actionStatus = kAS31FillEmptyBucketWithBeer;
_vm->_timers[4] = 300;
} else if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS31BeerBarrel].x, _vm->_hotspotsWalkPos[kHS31BeerBarrel].y, 6, 2);
@@ -433,7 +433,7 @@ void Scene31::run() {
_vm->playGnapScratchingHead(6, 2);
} else {
_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS31BeerBarrel].x, _vm->_hotspotsWalkPos[kHS31BeerBarrel].y, 0, 0x107BC, 1);
- _vm->_gnapActionStatus = kAS31UseBeerBarrel;
+ _vm->_gnap->_actionStatus = kAS31UseBeerBarrel;
_vm->_gnap->_idleFacing = kDirUpLeft;
}
break;
@@ -447,27 +447,27 @@ void Scene31::run() {
break;
case kHS31ExitCircus:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
_vm->_newSceneNum = 26;
_vm->gnapWalkTo(-1, _vm->_hotspotsWalkPos[kHS31ExitCircus].y, 0, 0x107AE, 1);
- _vm->_gnapActionStatus = kAS31LeaveScene;
+ _vm->_gnap->_actionStatus = kAS31LeaveScene;
_vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS31ExitCircus].x + 1, _vm->_hotspotsWalkPos[kHS31ExitCircus].y, -1, -1, 1);
}
break;
case kHS31ExitOutsideClown:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
_vm->_newSceneNum = 27;
_vm->gnapWalkTo(-1, _vm->_hotspotsWalkPos[kHS31ExitOutsideClown].y, 0, 0x107AF, 1);
- _vm->_gnapActionStatus = kAS31LeaveScene;
+ _vm->_gnap->_actionStatus = kAS31LeaveScene;
_vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS31ExitOutsideClown].x, _vm->_hotspotsWalkPos[kHS31ExitOutsideClown].y + 1, -1, 0x107CF, 1);
}
break;
case kHS31WalkArea1:
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
break;
@@ -485,13 +485,13 @@ void Scene31::run() {
_vm->playSound(0x1093B, true);
if (!_vm->_isLeavingScene) {
- if (_vm->_platypusActionStatus < 0)
+ if (_vm->_plat->_actionStatus < 0)
_vm->updatePlatypusIdleSequence();
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->updateGnapIdleSequence();
if (!_vm->_timers[4]) {
_vm->_timers[4] = _vm->getRandom(20) + 60;
- if (_vm->_gnapActionStatus < 0 && _nextClerkSequenceId == -1) {
+ if (_vm->_gnap->_actionStatus < 0 && _nextClerkSequenceId == -1) {
switch (_vm->getRandom(6)){
case 0:
_nextClerkSequenceId = 0xFF;
@@ -510,7 +510,7 @@ void Scene31::run() {
}
if (!_vm->_timers[5]) {
_vm->_timers[5] = _vm->getRandom(50) + 180;
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->getRandom(2) != 0)
gameSys.insertSequence(0x104, 20, 0, 0, kSeqNone, 0, 0, 0);
else
@@ -537,7 +537,7 @@ void Scene31::updateAnimations() {
if (gameSys.getAnimationStatus(0) == 2) {
gameSys.setAnimation(0, 0, 0);
- switch (_vm->_gnapActionStatus) {
+ switch (_vm->_gnap->_actionStatus) {
case kAS31UseBeerBarrel:
_nextClerkSequenceId = 0xFE;
break;
@@ -548,14 +548,14 @@ void Scene31::updateAnimations() {
_vm->_gnapSequenceDatNum = 0;
_vm->_gnapSequenceId = 0x102;
_vm->_gnapId = 59;
- _vm->_gnapActionStatus = kAS31FillEmptyBucketWithBeerDone;
+ _vm->_gnap->_actionStatus = kAS31FillEmptyBucketWithBeerDone;
break;
case kAS31FillEmptyBucketWithBeerDone:
_vm->_gnap->_idleFacing = kDirBottomLeft;
_vm->playGnapPullOutDevice(0, 0);
_vm->playGnapUseDevice(0, 0);
gameSys.insertSequence(0xF9, 59, 0xF8, 59, kSeqSyncWait, 0, 0, 0);
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
_vm->invAdd(kItemBucketWithBeer);
_vm->invRemove(kItemEmptyBucket);
_vm->setGrabCursorSprite(kItemBucketWithBeer);
@@ -566,14 +566,14 @@ void Scene31::updateAnimations() {
break;
case kAS31LeaveScene:
_vm->_sceneDone = true;
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
break;
}
}
if (gameSys.getAnimationStatus(1) == 2) {
gameSys.setAnimation(0, 0, 1);
- if (_vm->_platypusActionStatus == kAS31PlatMeasuringClown) {
+ if (_vm->_plat->_actionStatus == kAS31PlatMeasuringClown) {
_vm->_sceneWaiting = true;
_beerGuyDistracted = true;
_nextClerkSequenceId = 0xFA;
@@ -593,14 +593,14 @@ void Scene31::updateAnimations() {
case 0xFC:
++_clerkMeasureCtr;
if (_clerkMeasureCtr >= _clerkMeasureMaxCtr) {
- if (_vm->_gnapActionStatus != 5)
- _vm->_platypusActionStatus = -1;
+ if (_vm->_gnap->_actionStatus != 5)
+ _vm->_plat->_actionStatus = -1;
_vm->_timers[0] = 40;
gameSys.insertSequence(0xFD, 39, _currClerkSequenceId, 39, kSeqSyncWait, 0, 0, 0);
_currClerkSequenceId = 0xFD;
_nextClerkSequenceId = -1;
- if (_vm->_gnapActionStatus != kAS31FillEmptyBucketWithBeerDone && _vm->_gnapActionStatus != kAS31FillEmptyBucketWithBeer)
- _vm->_gnapActionStatus = -1;
+ if (_vm->_gnap->_actionStatus != kAS31FillEmptyBucketWithBeerDone && _vm->_gnap->_actionStatus != kAS31FillEmptyBucketWithBeer)
+ _vm->_gnap->_actionStatus = -1;
_beerGuyDistracted = false;
_clerkMeasureMaxCtr = 3;
gameSys.setAnimation(0xFD, 39, 3);
@@ -617,7 +617,7 @@ void Scene31::updateAnimations() {
gameSys.setAnimation(_nextClerkSequenceId, 39, 3);
_currClerkSequenceId = _nextClerkSequenceId;
_nextClerkSequenceId = -1;
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
break;
default:
if (_nextClerkSequenceId != -1) {
@@ -685,14 +685,14 @@ void Scene32::run() {
switch (_vm->_sceneClickedHotspot) {
case kHS32Device:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->runMenu();
updateHotspots();
}
break;
case kHS32Platypus:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapImpossible(_vm->_plat->_pos.x, _vm->_plat->_pos.y);
} else {
@@ -716,11 +716,11 @@ void Scene32::run() {
break;
case kHS32ExitTruck:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
_vm->setGrabCursorSprite(-1);
_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS32ExitTruck].x, _vm->_hotspotsWalkPos[kHS32ExitTruck].y, 0, 0x107AB, 1);
- _vm->_gnapActionStatus = kAS32LeaveScene;
+ _vm->_gnap->_actionStatus = kAS32LeaveScene;
_vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS32ExitTruck].x, _vm->_hotspotsWalkPos[kHS32ExitTruck].y + 1, -1, 0x107CD, 1);
_vm->_newSceneNum = 33;
}
@@ -734,13 +734,13 @@ void Scene32::run() {
case kHS32WalkArea6:
case kHS32WalkArea7:
case kHS32WalkArea8:
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
break;
}
- if (_vm->_mouseClickState._left && _vm->_gnapActionStatus < 0) {
+ if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) {
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
_vm->_mouseClickState._left = 0;
}
@@ -751,9 +751,9 @@ void Scene32::run() {
_vm->playSound(0x1091C, true);
if (!_vm->_isLeavingScene) {
- if (_vm->_platypusActionStatus < 0)
+ if (_vm->_plat->_actionStatus < 0)
_vm->updatePlatypusIdleSequence();
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->updateGnapIdleSequence();
if (!_vm->_timers[4]) {
_vm->_timers[4] = _vm->getRandom(100) + 300;
@@ -781,7 +781,7 @@ void Scene32::updateAnimations() {
if (gameSys.getAnimationStatus(0) == 2) {
gameSys.setAnimation(0, 0, 0);
- if (_vm->_gnapActionStatus == kAS32LeaveScene)
+ if (_vm->_gnap->_actionStatus == kAS32LeaveScene)
_vm->_sceneDone = true;
}
}
@@ -861,14 +861,14 @@ void Scene33::run() {
switch (_vm->_sceneClickedHotspot) {
case kHS33Device:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->runMenu();
updateHotspots();
}
break;
case kHS33Platypus:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapImpossible(_vm->_plat->_pos.x, _vm->_plat->_pos.y);
} else {
@@ -892,7 +892,7 @@ void Scene33::run() {
break;
case kHS33Chicken:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapShowCurrItem(7, 9, 9, 8);
} else {
@@ -900,14 +900,14 @@ void Scene33::run() {
case GRAB_CURSOR:
_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;
+ _vm->_gnap->_actionStatus = kAS33UseChicken;
else
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
break;
case TALK_CURSOR:
_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;
+ _vm->_gnap->_actionStatus = kAS33TalkChicken;
break;
case LOOK_CURSOR:
case PLAT_CURSOR:
@@ -919,9 +919,9 @@ void Scene33::run() {
break;
case kHS33ExitHouse:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
- _vm->_gnapActionStatus = kAS33LeaveScene;
+ _vm->_gnap->_actionStatus = kAS33LeaveScene;
_vm->_newSceneNum = 37;
if (_vm->_gnap->_pos.x > 6)
_vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AD, 1);
@@ -931,9 +931,9 @@ void Scene33::run() {
break;
case kHS33ExitBarn:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
- _vm->_gnapActionStatus = kAS33LeaveScene;
+ _vm->_gnap->_actionStatus = kAS33LeaveScene;
_vm->_newSceneNum = 35;
if (_vm->_gnap->_pos.x > 7)
_vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AD, 1);
@@ -943,20 +943,20 @@ void Scene33::run() {
break;
case kHS33ExitCreek:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS33ExitCreek].x, _vm->_hotspotsWalkPos[kHS33ExitCreek].y, 0, 0x107AB, 1);
- _vm->_gnapActionStatus = kAS33LeaveScene;
+ _vm->_gnap->_actionStatus = kAS33LeaveScene;
_vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS33ExitCreek].x, _vm->_hotspotsWalkPos[kHS33ExitCreek].y, -1, 0x107CD, 1);
_vm->_newSceneNum = 34;
}
break;
case kHS33ExitPigpen:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS33ExitPigpen].x, _vm->_hotspotsWalkPos[kHS33ExitPigpen].y, 0, 0x107AF, 1);
- _vm->_gnapActionStatus = kAS33LeaveScene;
+ _vm->_gnap->_actionStatus = kAS33LeaveScene;
_vm->platypusWalkTo(_vm->_hotspotsWalkPos[kHS33ExitPigpen].x, _vm->_hotspotsWalkPos[kHS33ExitPigpen].y, -1, 0x107CF, 1);
_vm->_newSceneNum = 32;
}
@@ -964,12 +964,12 @@ void Scene33::run() {
case kHS33WalkArea1:
case kHS33WalkArea2:
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
break;
default:
- if (_vm->_mouseClickState._left && _vm->_gnapActionStatus < 0) {
+ if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) {
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
_vm->_mouseClickState._left = false;
}
@@ -982,9 +982,9 @@ void Scene33::run() {
_vm->playSound(0x1091C, true);
if (!_vm->_isLeavingScene) {
- if (_vm->_platypusActionStatus < 0)
+ if (_vm->_plat->_actionStatus < 0)
_vm->updatePlatypusIdleSequence();
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->updateGnapIdleSequence();
if (!_vm->_timers[4]) {
_vm->_timers[4] = _vm->getRandom(100) + 300;
@@ -993,7 +993,7 @@ void Scene33::run() {
else
gameSys.insertSequence(0x82, 256, 0, 0, kSeqNone, 0, 0, 0);
}
- if (!_vm->_timers[5] && _nextChickenSequenceId == -1 && _vm->_gnapActionStatus != kAS33TalkChicken && _vm->_gnapActionStatus != kAS33UseChicken) {
+ if (!_vm->_timers[5] && _nextChickenSequenceId == -1 && _vm->_gnap->_actionStatus != kAS33TalkChicken && _vm->_gnap->_actionStatus != kAS33UseChicken) {
if (_vm->getRandom(6) != 0) {
_nextChickenSequenceId = 0x7E;
_vm->_timers[5] = _vm->getRandom(20) + 30;
@@ -1020,7 +1020,7 @@ void Scene33::updateAnimations() {
GameSys& gameSys = *_vm->_gameSys;
if (gameSys.getAnimationStatus(0) == 2) {
- switch (_vm->_gnapActionStatus) {
+ switch (_vm->_gnap->_actionStatus) {
case kAS33LeaveScene:
_vm->_sceneDone = true;
break;
@@ -1038,11 +1038,11 @@ void Scene33::updateAnimations() {
_currChickenSequenceId = 0x7E;
gameSys.setAnimation(0x7E, 179, 2);
gameSys.insertSequence(_currChickenSequenceId, 179, 0, 0, kSeqNone, 0, 0, 0);
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
_vm->_timers[5] = 30;
break;
default:
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
break;
}
}
@@ -1054,14 +1054,14 @@ void Scene33::updateAnimations() {
gameSys.removeSequence(_currChickenSequenceId, 179, true);
_nextChickenSequenceId = -1;
_currChickenSequenceId = -1;
- _vm->_gnapActionStatus = kAS33UseChickenDone;
+ _vm->_gnap->_actionStatus = kAS33UseChickenDone;
_vm->_timers[5] = 500;
} else if (_nextChickenSequenceId == 0x7F) {
gameSys.setAnimation(_nextChickenSequenceId, 179, 2);
gameSys.insertSequence(_nextChickenSequenceId, 179, _currChickenSequenceId, 179, kSeqSyncWait, 0, 0, 0);
_currChickenSequenceId = _nextChickenSequenceId;
_nextChickenSequenceId = -1;
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
} else if (_nextChickenSequenceId != -1) {
gameSys.setAnimation(_nextChickenSequenceId, 179, 2);
gameSys.insertSequence(_nextChickenSequenceId, 179, _currChickenSequenceId, 179, kSeqSyncWait, 0, 0, 0);
@@ -1098,21 +1098,21 @@ void Scene38::updateHotspots() {
_vm->setHotspot(kHS38WalkArea5, 770, 0, 799, 445);
_vm->setHotspot(kHS38WalkArea6, 393, 0, 698, 445, SF_WALKABLE | SF_DISABLED);
_vm->setDeviceHotspot(kHS38Device, -1, -1, -1, -1);
- if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor)
+ if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor)
_vm->_hotspots[kHS38Platypus]._flags = SF_WALKABLE | SF_DISABLED;
- if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor)
+ if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor)
_vm->_hotspots[kHS38ExitCave]._flags = SF_EXIT_D_CURSOR;
- else if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy)
+ else if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy)
_vm->_hotspots[kHS38ExitCave]._flags = SF_EXIT_D_CURSOR;
- if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor)
+ if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor)
_vm->_hotspots[kHS38TrapDoorLid1]._flags = SF_DISABLED;
- else if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy)
+ else if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy)
_vm->_hotspots[kHS38TrapDoorLid1]._flags = SF_PLAT_CURSOR | SF_TALK_CURSOR | SF_GRAB_CURSOR | SF_LOOK_CURSOR;
- if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor)
+ if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor)
_vm->_hotspots[kHS38TrapDoorLid2]._flags = SF_DISABLED;
- else if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy)
+ else if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy)
_vm->_hotspots[kHS38TrapDoorLid2]._flags = SF_PLAT_CURSOR | SF_TALK_CURSOR | SF_GRAB_CURSOR | SF_LOOK_CURSOR;
- if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor)
+ if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor)
_vm->_hotspots[kHS38WalkArea6]._flags = SF_NONE;
_vm->_hotspotsCount = 13;
}
@@ -1144,8 +1144,8 @@ void Scene38::run() {
break;
case kHS38Platypus:
- if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy) {
- _vm->_gnapActionStatus = kAS38ReleaseHuntingTrophy;
+ if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy) {
+ _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy;
} else if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapImpossible(_vm->_plat->_pos.x, _vm->_plat->_pos.y);
} else {
@@ -1168,42 +1168,42 @@ void Scene38::run() {
break;
case kHS38ExitHouse:
- if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy) {
- _vm->_gnapActionStatus = kAS38ReleaseHuntingTrophy;
+ if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy) {
+ _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy;
} else {
_vm->_isLeavingScene = true;
_vm->gnapWalkTo(-1, -1, 0, 0x107AE, 1);
- _vm->_gnapActionStatus = kAS38LeaveScene;
+ _vm->_gnap->_actionStatus = kAS38LeaveScene;
_vm->_newSceneNum = 37;
}
break;
case kHS38ExitCave:
- if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy) {
- _vm->_gnapActionStatus = kAS38ReleaseHuntingTrophy;
- if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor)
+ if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy) {
+ _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy;
+ if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor)
_vm->_isLeavingScene = true;
- } else if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor) {
+ } else if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor) {
_vm->_sceneWaiting = false;
_vm->_isLeavingScene = true;
_vm->gnapWalkTo(5, 7, 0, 0x107BB, 1);
_vm->_newSceneNum = 39;
- _vm->_gnapActionStatus = kAS38ExitCave;
+ _vm->_gnap->_actionStatus = kAS38ExitCave;
}
break;
case kHS38TrapDoorLid1:
case kHS38TrapDoorLid2:
- if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy) {
- if (_vm->_verbCursor == PLAT_CURSOR && _vm->_platypusActionStatus != kAS38PlatypusHoldingTrapDoor)
- _vm->_gnapActionStatus = kAS38UsePlatypusWithTrapDoor;
+ if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy) {
+ if (_vm->_verbCursor == PLAT_CURSOR && _vm->_plat->_actionStatus != kAS38PlatypusHoldingTrapDoor)
+ _vm->_gnap->_actionStatus = kAS38UsePlatypusWithTrapDoor;
else
- _vm->_gnapActionStatus = kAS38ReleaseHuntingTrophy;
+ _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy;
}
break;
case kHS38HuntingTrophy:
- if (_vm->_gnapActionStatus != kAS38HoldingHuntingTrophy) {
+ if (_vm->_gnap->_actionStatus != kAS38HoldingHuntingTrophy) {
if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapShowCurrItem(3, 6, 2, 0);
} else {
@@ -1212,12 +1212,12 @@ void Scene38::run() {
_vm->playGnapScratchingHead(0, 0);
break;
case GRAB_CURSOR:
- if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor)
+ if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor)
_vm->playGnapImpossible(0, 0);
else {
_vm->gnapWalkTo(3, 6, 0, 0x107BB, 1);
_vm->platypusWalkTo(4, 8, -1, -1, 1);
- _vm->_gnapActionStatus = kAS38UseHuntingTrophy;
+ _vm->_gnap->_actionStatus = kAS38UseHuntingTrophy;
}
break;
case TALK_CURSOR:
@@ -1240,17 +1240,17 @@ void Scene38::run() {
case kHS38WalkArea4:
case kHS38WalkArea5:
case kHS38WalkArea6:
- if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy)
- _vm->_gnapActionStatus = kAS38ReleaseHuntingTrophy;
- else if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy)
+ _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy;
+ else if (_vm->_gnap->_actionStatus < 0)
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
break;
default:
if (_vm->_mouseClickState._left) {
- if (_vm->_gnapActionStatus == kAS38HoldingHuntingTrophy)
- _vm->_gnapActionStatus = kAS38ReleaseHuntingTrophy;
- else if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus == kAS38HoldingHuntingTrophy)
+ _vm->_gnap->_actionStatus = kAS38ReleaseHuntingTrophy;
+ else if (_vm->_gnap->_actionStatus < 0)
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
_vm->_mouseClickState._left = false;
}
@@ -1281,7 +1281,7 @@ void Scene38::updateAnimations() {
if (gameSys.getAnimationStatus(0) == 2) {
gameSys.setAnimation(0, 0, 0);
- switch (_vm->_gnapActionStatus) {
+ switch (_vm->_gnap->_actionStatus) {
case kAS38LeaveScene:
_vm->_sceneDone = true;
break;
@@ -1291,7 +1291,7 @@ void Scene38::updateAnimations() {
_vm->_gnapSequenceId = 0xA3;
_vm->_gnapSequenceDatNum = 0;
gameSys.setAnimation(0xA3, _vm->_gnapId, 0);
- _vm->_gnapActionStatus = kAS38LeaveScene;
+ _vm->_gnap->_actionStatus = kAS38LeaveScene;
break;
case kAS38UseHuntingTrophy:
gameSys.removeSequence(0x9B, 0, true);
@@ -1299,11 +1299,11 @@ void Scene38::updateAnimations() {
_vm->_gnapSequenceId = 0x9C;
_vm->_gnapSequenceDatNum = 0;
gameSys.setAnimation(0x9C, _vm->_gnapId, 0);
- _vm->_gnapActionStatus = kAS38HoldingHuntingTrophy;
+ _vm->_gnap->_actionStatus = kAS38HoldingHuntingTrophy;
updateHotspots();
break;
case kAS38HoldingHuntingTrophy:
- if (_vm->_platypusActionStatus != kAS38PlatypusHoldingTrapDoor)
+ if (_vm->_plat->_actionStatus != kAS38PlatypusHoldingTrapDoor)
_vm->_sceneWaiting = true;
if (_vm->_gnapSequenceId == 0xA4) {
gameSys.insertSequence(0x9D, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0);
@@ -1318,8 +1318,8 @@ void Scene38::updateAnimations() {
case kAS38ReleaseHuntingTrophy:
if (_vm->_gnapSequenceId == 0x9E) {
gameSys.insertSequence(0x9B, 0, 0, 0, kSeqNone, 0, 0, 0);
- _vm->_gnapActionStatus = -1;
- } else if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor) {
+ _vm->_gnap->_actionStatus = -1;
+ } else if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor) {
gameSys.insertSequence(0xA0, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0);
_vm->_gnapSequenceId = 0xA0;
_vm->_gnapSequenceDatNum = 0;
@@ -1329,9 +1329,9 @@ void Scene38::updateAnimations() {
_vm->_sceneWaiting = false;
_vm->gnapWalkTo(5, 7, 0, 0x107BB, 1);
_vm->_newSceneNum = 39;
- _vm->_gnapActionStatus = kAS38ExitCave;
+ _vm->_gnap->_actionStatus = kAS38ExitCave;
} else {
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
}
} else {
gameSys.insertSequence(0x9E, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0);
@@ -1350,7 +1350,7 @@ void Scene38::updateAnimations() {
_vm->_gnapSequenceId = 0x9F;
_vm->_gnapSequenceDatNum = 0;
gameSys.setAnimation(0x9F, _vm->_gnapId, 0);
- _vm->_gnapActionStatus = kAS38HoldingHuntingTrophy;
+ _vm->_gnap->_actionStatus = kAS38HoldingHuntingTrophy;
if (_vm->_plat->_idleFacing != kDirNone)
_vm->playPlatypusSequence(0x107D5);
else
@@ -1361,7 +1361,7 @@ void Scene38::updateAnimations() {
_vm->_platypusSequenceDatNum = 0;
_vm->_platypusId = _vm->_gnapId + 1;
gameSys.setAnimation(0xA1, _vm->_gnapId + 1, 1);
- _vm->_platypusActionStatus = kAS38PlatypusHoldingTrapDoor;
+ _vm->_plat->_actionStatus = kAS38PlatypusHoldingTrapDoor;
updateHotspots();
break;
}
@@ -1369,7 +1369,7 @@ void Scene38::updateAnimations() {
if (gameSys.getAnimationStatus(1) == 2) {
gameSys.setAnimation(0, 0, 1);
- if (_vm->_platypusActionStatus == kAS38PlatypusHoldingTrapDoor) {
+ if (_vm->_plat->_actionStatus == kAS38PlatypusHoldingTrapDoor) {
gameSys.insertSequence(0xA2, _vm->_platypusId, _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), _vm->_platypusId, kSeqSyncWait, 0, 0, 0);
_vm->_platypusSequenceId = 0xA2;
_vm->_platypusSequenceDatNum = 0;
@@ -1451,7 +1451,7 @@ void Scene39::run() {
break;
case kHS39Platypus:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapImpossible(_vm->_plat->_pos.x, _vm->_plat->_pos.y);
} else {
@@ -1475,17 +1475,17 @@ void Scene39::run() {
break;
case kHS39ExitUfoParty:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_isLeavingScene = true;
_vm->_sceneDone = true;
_vm->gnapWalkTo(_vm->_gnap->_pos, 0, 0x107AB, 1);
- _vm->_gnapActionStatus = kAS39LeaveScene;
+ _vm->_gnap->_actionStatus = kAS39LeaveScene;
_vm->_newSceneNum = 40;
}
break;
case kHS39Sign:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
if (_vm->_grabCursorSpriteIndex >= 0) {
_vm->playGnapImpossible(0, 0);
} else {
@@ -1506,7 +1506,7 @@ void Scene39::run() {
break;
case kHS39ExitInsideHouse:
- if (_vm->_gnapActionStatus < 0) {
+ if (_vm->_gnap->_actionStatus < 0) {
_vm->_sceneDone = true;
_vm->_isLeavingScene = true;
_vm->_newSceneNum = 38;
@@ -1515,12 +1515,12 @@ void Scene39::run() {
case kHS39WalkArea1:
case kHS39WalkArea2:
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
break;
default:
- if (_vm->_mouseClickState._left && _vm->_gnapActionStatus < 0) {
+ if (_vm->_mouseClickState._left && _vm->_gnap->_actionStatus < 0) {
_vm->gnapWalkTo(-1, -1, -1, -1, 1);
_vm->_mouseClickState._left = false;
}
@@ -1530,9 +1530,9 @@ void Scene39::run() {
updateAnimations();
if (!_vm->_isLeavingScene) {
- if (_vm->_platypusActionStatus < 0)
+ if (_vm->_plat->_actionStatus < 0)
_vm->updatePlatypusIdleSequence();
- if (_vm->_gnapActionStatus < 0)
+ if (_vm->_gnap->_actionStatus < 0)
_vm->updateGnapIdleSequence();
if (!_vm->_timers[5]) {
_vm->_timers[5] = _vm->getRandom(20) + 50;
@@ -1571,10 +1571,10 @@ void Scene39::updateAnimations() {
if (gameSys.getAnimationStatus(0) == 2) {
gameSys.setAnimation(0, 0, 0);
- if (_vm->_gnapActionStatus == kAS39LeaveScene)
+ if (_vm->_gnap->_actionStatus == kAS39LeaveScene)
_vm->_sceneDone = true;
else
- _vm->_gnapActionStatus = -1;
+ _vm->_gnap->_actionStatus = -1;
}
if (gameSys.getAnimationStatus(3) == 2 && _nextGuySequenceId != -1) {