diff options
author | Strangerke | 2016-05-04 21:07:12 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-05-10 12:14:50 +0200 |
commit | dda4931ee9d78c704ebd768af243d7019e9d0913 (patch) | |
tree | a53445a9fb764109da598eecc86986b0a0fc8150 /engines/gnap/scenes/group3.cpp | |
parent | 45bc40166f3d256312327a7c67e055505649705e (diff) | |
download | scummvm-rg350-dda4931ee9d78c704ebd768af243d7019e9d0913.tar.gz scummvm-rg350-dda4931ee9d78c704ebd768af243d7019e9d0913.tar.bz2 scummvm-rg350-dda4931ee9d78c704ebd768af243d7019e9d0913.zip |
GNAP: Move _actionStatus to the Character class
Diffstat (limited to 'engines/gnap/scenes/group3.cpp')
-rw-r--r-- | engines/gnap/scenes/group3.cpp | 264 |
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) { |