diff options
author | Strangerke | 2016-05-05 10:12:15 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-05-10 12:14:50 +0200 |
commit | 579ecdabd19f0a5f6837224eafebf6a8ac74c0ad (patch) | |
tree | 9704cec8a5164c2ec0515d5322477facdc4a739f /engines/gnap/scenes/group1.cpp | |
parent | dda4931ee9d78c704ebd768af243d7019e9d0913 (diff) | |
download | scummvm-rg350-579ecdabd19f0a5f6837224eafebf6a8ac74c0ad.tar.gz scummvm-rg350-579ecdabd19f0a5f6837224eafebf6a8ac74c0ad.tar.bz2 scummvm-rg350-579ecdabd19f0a5f6837224eafebf6a8ac74c0ad.zip |
GNAP: More refactoring related to characters (WIP)
Diffstat (limited to 'engines/gnap/scenes/group1.cpp')
-rw-r--r-- | engines/gnap/scenes/group1.cpp | 456 |
1 files changed, 228 insertions, 228 deletions
diff --git a/engines/gnap/scenes/group1.cpp b/engines/gnap/scenes/group1.cpp index 6aca6434ed..5cad36d393 100644 --- a/engines/gnap/scenes/group1.cpp +++ b/engines/gnap/scenes/group1.cpp @@ -117,11 +117,11 @@ void Scene10::run() { _vm->playGnapScratchingHead(_vm->_plat->_pos.x, _vm->_plat->_pos.y); break; case GRAB_CURSOR: - _vm->gnapKissPlatypus(10); + _vm->_gnap->kissPlatypus(10); break; case TALK_CURSOR: _vm->playGnapBrainPulsating(_vm->_plat->_pos.x, _vm->_plat->_pos.y); - _vm->playPlatypusSequence(_vm->getPlatypusSequenceId()); + _vm->playPlatypusSequence(_vm->_plat->getSequenceId()); break; case PLAT_CURSOR: break; @@ -150,7 +150,7 @@ void Scene10::run() { case kHS10Cook: if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(4, 8, 6, 0); - gameSys.setAnimation(makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, 0); + gameSys.setAnimation(makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, 0); _vm->_gnap->_actionStatus = kAS10AnnoyCook; } else { switch (_vm->_verbCursor) { @@ -164,12 +164,12 @@ void Scene10::run() { case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; _vm->gnapActionIdle(0x10C); - _vm->gnapWalkTo(4, 8, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(4, 8, 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; break; case PLAT_CURSOR: _vm->gnapActionIdle(0x10C); - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->platypusWalkTo(4, 6, -1, -1, 1); _vm->gnapWalkTo(4, 8, 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; @@ -206,7 +206,7 @@ void Scene10::run() { _vm->playGnapMoan2(-1, -1); else { _vm->gnapActionIdle(0x10C); - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->platypusWalkTo(3, 7, -1, -1, 1); _vm->gnapWalkTo(4, 8, 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS10AnnoyCook; @@ -239,7 +239,7 @@ void Scene10::run() { _vm->invAdd(kItemTongs); _vm->setFlag(kGFMudTaken); _vm->gnapActionIdle(0x10C); - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->platypusWalkTo(7, 6, 1, 0x107D2, 1); _vm->_plat->_actionStatus = kAS10PlatWithBox; _vm->_plat->_idleFacing = kDirUnk4; @@ -257,16 +257,16 @@ void Scene10::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->playGnapSequence(_vm->getGnapSequenceId(gskDeflect, 10, 5) | 0x10000); + _vm->playGnapSequence(_vm->_gnap->getSequenceId(gskDeflect, 10, 5) | 0x10000); break; case GRAB_CURSOR: _vm->gnapActionIdle(0x10C); _vm->gnapWalkTo(9, 6, 0, 0x107BB, 1); - gameSys.insertSequence(0x10E, 120, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceId = 0x10E; - _vm->_gnapId = 120; + gameSys.insertSequence(0x10E, 120, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceId = 0x10E; + _vm->_gnap->_id = 120; _vm->_gnap->_idleFacing = kDirUpRight; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_sequenceDatNum = 0; _vm->_gnap->_pos = Common::Point(9, 6); _vm->_timers[2] = 360; break; @@ -371,16 +371,16 @@ void Scene10::updateAnimations() { _vm->_plat->_pos = Common::Point(4, 8); gameSys.insertSequence(0x109, 100, _currCookSequenceId, 100, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(0x107C9, 160, - _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), _vm->_platypusId, + _vm->_plat->_sequenceId | (_vm->_plat->_sequenceDatNum << 16), _vm->_plat->_id, kSeqSyncWait, _vm->getSequenceTotalDuration(0x109) + _vm->getSequenceTotalDuration(0x10A) + _vm->getSequenceTotalDuration(0x10843), 75 * _vm->_plat->_pos.x - _vm->_platGridX, 48 * _vm->_plat->_pos.y - _vm->_platGridY); gameSys.removeSequence(0x107, 100, true); _currCookSequenceId = 0x109; _nextCookSequenceId = 0x843; - _vm->_platypusSequenceId = 0x7C9; - _vm->_platypusId = 160; + _vm->_plat->_sequenceId = 0x7C9; + _vm->_plat->_id = 160; _vm->_plat->_idleFacing = kDirNone; - _vm->_platypusSequenceDatNum = 1; + _vm->_plat->_sequenceDatNum = 1; break; case 0x843: _vm->hideCursor(); @@ -455,10 +455,10 @@ void Scene10::updateAnimations() { _nextCookSequenceId = 0x106; _vm->_timers[2] = _vm->getRandom(30) + 20; _vm->_timers[3] = 300; - gameSys.insertSequence(0x10C, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceId = 0x10C; + gameSys.insertSequence(0x10C, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceId = 0x10C; _vm->_gnap->_idleFacing = kDirUpRight; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_sequenceDatNum = 0; _vm->_gnap->_actionStatus = -1; _vm->_plat->_actionStatus = -1; } @@ -598,11 +598,11 @@ void Scene11::run() { _vm->playGnapMoan1(_vm->_plat->_pos.x, _vm->_plat->_pos.y); break; case GRAB_CURSOR: - _vm->gnapKissPlatypus(0); + _vm->_gnap->kissPlatypus(0); break; case TALK_CURSOR: _vm->playGnapBrainPulsating(_vm->_plat->_pos.x, _vm->_plat->_pos.y); - _vm->playPlatypusSequence(_vm->getPlatypusSequenceId()); + _vm->playPlatypusSequence(_vm->_plat->getSequenceId()); break; case PLAT_CURSOR: break; @@ -653,7 +653,7 @@ void Scene11::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(3, 7, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(3, 7, 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS11TalkGoggleGuy; break; } @@ -671,7 +671,7 @@ void Scene11::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->playGnapSequence(_vm->getGnapSequenceId(gskDeflect, 3, 6) | 0x10000); + _vm->playGnapSequence(_vm->_gnap->getSequenceId(gskDeflect, 3, 6) | 0x10000); break; case GRAB_CURSOR: _vm->gnapWalkTo(5, 6, 0, 0x107BC, 1); @@ -679,7 +679,7 @@ void Scene11::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirBottomLeft; - _vm->gnapWalkTo(5, 6, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(5, 6, 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS11TalkHookGuy; break; case PLAT_CURSOR: @@ -840,10 +840,10 @@ void Scene11::updateAnimations() { gameSys.setAnimation(0, 0, 0); _vm->_timers[2] = _vm->getRandom(30) + 20; _vm->_timers[3] = _vm->getRandom(50) + 200; - gameSys.insertSequence(0x1F4, 255, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceId = 0x1F4; - _vm->_gnapId = 255; - _vm->_gnapSequenceDatNum = 0; + gameSys.insertSequence(0x1F4, 255, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceId = 0x1F4; + _vm->_gnap->_id = 255; + _vm->_gnap->_sequenceDatNum = 0; gameSys.removeSequence(0x207, 257, true); gameSys.removeSequence(0x208, 256, true); _nextGoggleGuySequenceId = 0x1F8; @@ -893,11 +893,11 @@ void Scene11::updateAnimations() { if (_nextHookGuySequenceId == 0x204) { gameSys.setAnimation(_nextHookGuySequenceId, 120, 3); gameSys.insertSequence(0x204, 120, _currHookGuySequenceId, 120, kSeqSyncWait, 0, 0, 0); - gameSys.insertSequence(0x1F5, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x1F5, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); _currHookGuySequenceId = 0x204; _nextHookGuySequenceId = -1; - _vm->_gnapSequenceId = 0x1F5; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x1F5; + _vm->_gnap->_sequenceDatNum = 0; _vm->_timers[4] = _vm->getRandom(40) + 20; _vm->_timers[2] = _vm->getRandom(20) + 70; _vm->_timers[3] = _vm->getRandom(50) + 200; @@ -1017,11 +1017,11 @@ void Scene12::run() { _vm->playGnapMoan1(_vm->_plat->_pos.x, _vm->_plat->_pos.y); break; case GRAB_CURSOR: - _vm->gnapKissPlatypus(0); + _vm->_gnap->kissPlatypus(0); break; case TALK_CURSOR: _vm->playGnapBrainPulsating(_vm->_plat->_pos.x, _vm->_plat->_pos.y); - _vm->playPlatypusSequence(_vm->getPlatypusSequenceId()); + _vm->playPlatypusSequence(_vm->_plat->getSequenceId()); break; case PLAT_CURSOR: break; @@ -1065,11 +1065,11 @@ void Scene12::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(3, 7, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(3, 7, 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS12TalkToothGuy; break; case PLAT_CURSOR: - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->platypusWalkTo(3, 7, 1, 0x107D2, 1); _vm->_plat->_actionStatus = kAS12PlatWithToothGuy; _vm->_plat->_idleFacing = kDirUnk4; @@ -1102,12 +1102,12 @@ void Scene12::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(6, 6, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(6, 6, 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS12TalkBarkeeper; break; case PLAT_CURSOR: _vm->playGnapPullOutDevice(_vm->_plat->_pos.x, _vm->_plat->_pos.y); - gameSys.setAnimation(makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, 0); + gameSys.setAnimation(makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, 0); _vm->_gnap->_actionStatus = kAS12PlatWithBarkeeper; break; } @@ -1135,11 +1135,11 @@ void Scene12::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(7, 6, 0, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(7, 6, 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS12TalkBeardGuy; break; case PLAT_CURSOR: - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->platypusWalkTo(7, 6, 1, 0x107C2, 1); _vm->_plat->_actionStatus = kAS12PlatWithBeardGuy; _vm->_plat->_idleFacing = kDirNone; @@ -1360,11 +1360,11 @@ void Scene12::updateAnimations() { gameSys.setAnimation(0x10843, 301, 0); _vm->_gnap->_actionStatus = kAS12QuarterToToothGuyDone; 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, + gameSys.insertSequence(0x10843, 301, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x107B7, _vm->_gnap->_id, 0x10843, 301, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); - _vm->_gnapSequenceId = 0x7B7; - _vm->_gnapSequenceDatNum = 1; + _vm->_gnap->_sequenceId = 0x7B7; + _vm->_gnap->_sequenceDatNum = 1; _vm->setFlag(kGFTwigTaken); _vm->invAdd(kItemQuarterWithHole); _vm->invRemove(kItemQuarter); @@ -1372,11 +1372,11 @@ void Scene12::updateAnimations() { if (_nextToothGuySequenceId == 0x1EF) { gameSys.setAnimation(_nextToothGuySequenceId, 50, 2); gameSys.insertSequence(_nextToothGuySequenceId, 50, _currToothGuySequenceId, 50, kSeqSyncWait, 0, 0, 0); - gameSys.insertSequence(0x205, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x205, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); _currToothGuySequenceId = _nextToothGuySequenceId; _nextToothGuySequenceId = -1; - _vm->_gnapSequenceId = 0x205; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x205; + _vm->_gnap->_sequenceDatNum = 0; _vm->_timers[4] = 40; _vm->_timers[2] = _vm->getRandom(20) + 70; _vm->_timers[3] = _vm->getRandom(50) + 200; @@ -1526,11 +1526,11 @@ void Scene13::run() { _vm->playGnapMoan1(_vm->_plat->_pos.x, _vm->_plat->_pos.y); break; case GRAB_CURSOR: - _vm->gnapKissPlatypus(0); + _vm->_gnap->kissPlatypus(0); break; case TALK_CURSOR: _vm->playGnapBrainPulsating(_vm->_plat->_pos.x, _vm->_plat->_pos.y); - _vm->playPlatypusSequence(_vm->getPlatypusSequenceId()); + _vm->playPlatypusSequence(_vm->_plat->getSequenceId()); break; case PLAT_CURSOR: break; @@ -1560,14 +1560,14 @@ void Scene13::run() { case TALK_CURSOR: 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, - makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, + gameSys.setAnimation(_backToiletCtr + 0xA3, _vm->_gnap->_id, 0); + gameSys.insertSequence(_backToiletCtr + 0xA3, _vm->_gnap->_id, + makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqScale | kSeqSyncWait, 0, 0, 0); _vm->_gnap->_actionStatus = kAS13Wait; - _vm->_gnapSequenceId = _backToiletCtr + 0xA3; + _vm->_gnap->_sequenceId = _backToiletCtr + 0xA3; _vm->_gnap->_idleFacing = kDirUpRight; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_sequenceDatNum = 0; } else { _vm->gnapWalkTo(5, 5, 0, 0x107BB, 1); _vm->_gnap->_actionStatus = kAS13BackToilet; @@ -1613,7 +1613,7 @@ void Scene13::run() { break; case TALK_CURSOR: _vm->_gnap->_idleFacing = kDirUpRight; - _vm->gnapWalkTo(7, 7, -1, _vm->getGnapSequenceId(gskBrainPulsating, 0, 0), 1); + _vm->gnapWalkTo(7, 7, -1, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0), 1); break; case PLAT_CURSOR: _vm->playGnapImpossible(0, 0); @@ -1628,7 +1628,7 @@ void Scene13::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->playGnapSequence(_vm->getGnapSequenceId(gskDeflect, 9, 6)); + _vm->playGnapSequence(_vm->_gnap->getSequenceId(gskDeflect, 9, 6)); _vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1); _vm->_gnap->_actionStatus = kAS13Wait; break; @@ -1650,7 +1650,7 @@ void Scene13::run() { } else { switch (_vm->_verbCursor) { case LOOK_CURSOR: - _vm->playGnapSequence(_vm->getGnapSequenceId(gskDeflect, 5, 9)); + _vm->playGnapSequence(_vm->_gnap->getSequenceId(gskDeflect, 5, 9)); _vm->gnapWalkTo(_vm->_gnap->_pos, 0, -1, 1); _vm->_gnap->_actionStatus = kAS13Wait; break; @@ -1770,9 +1770,9 @@ void Scene13::updateAnimations() { break; case kAS13BackToilet: _backToiletCtr = MIN(5, _backToiletCtr + 1); - gameSys.insertSequence(_backToiletCtr + 0xA3, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, 9, 0, 0, 0); - _vm->_gnapSequenceId = _backToiletCtr + 0xA3; - _vm->_gnapSequenceDatNum = 0; + gameSys.insertSequence(_backToiletCtr + 0xA3, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, 9, 0, 0, 0); + _vm->_gnap->_sequenceId = _backToiletCtr + 0xA3; + _vm->_gnap->_sequenceDatNum = 0; _vm->_gnap->_actionStatus = -1; break; case kAS13FrontToilet: @@ -1785,12 +1785,12 @@ void Scene13::updateAnimations() { break; case kAS13GrabSink: gameSys.setAnimation(0xAB, 160, 0); - gameSys.insertSequence(0xAB, 160, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0xAB, 160, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); gameSys.removeSequence(0xAA, 256, true); - _vm->_gnapSequenceId = 0xAB; - _vm->_gnapId = 160; + _vm->_gnap->_sequenceId = 0xAB; + _vm->_gnap->_id = 160; _vm->_gnap->_idleFacing = kDirBottomRight; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_sequenceDatNum = 0; _vm->_gnap->_pos = Common::Point(4, 8); _vm->_timers[2] = 360; _vm->_gnap->_actionStatus = kAS13GrabSinkDone; @@ -1804,11 +1804,11 @@ void Scene13::updateAnimations() { break; case kAS13GrabUrinal: gameSys.setAnimation(0xA2, 120, 0); - gameSys.insertSequence(0xA2, 120, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceId = 0xA2; - _vm->_gnapId = 120; + gameSys.insertSequence(0xA2, 120, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceId = 0xA2; + _vm->_gnap->_id = 120; _vm->_gnap->_idleFacing = kDirBottomLeft; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_sequenceDatNum = 0; _vm->_gnap->_pos = Common::Point(4, 6); _vm->_timers[2] = 360; _vm->_gnap->_actionStatus = kAS13Wait; @@ -1862,7 +1862,7 @@ void Scene14::run() { if (!_vm->isFlag(kGFNeedleTaken)) { gameSys.insertSequence(0x24, 10, 0x23, 10, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceId = 0x24; + _vm->_gnap->_sequenceId = 0x24; _vm->_timers[2] = _vm->getRandom(40) + 50; } @@ -1893,7 +1893,7 @@ void Scene14::run() { _vm->setGrabCursorSprite(-1); _vm->hideCursor(); gameSys.setAnimation(0x26, 10, 0); - gameSys.insertSequence(0x26, 10, _vm->_gnapSequenceId, 10, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x26, 10, _vm->_gnap->_sequenceId, 10, kSeqSyncWait, 0, 0, 0); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playSound(0x108E9, false); } else { @@ -1902,9 +1902,9 @@ void Scene14::run() { _vm->playSound(0x108E9, false); break; case GRAB_CURSOR: - gameSys.insertSequence(0x25, 10, _vm->_gnapSequenceId, 10, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x25, 10, _vm->_gnap->_sequenceId, 10, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(0x23, 10, 0x25, 10, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceId = 0x23; + _vm->_gnap->_sequenceId = 0x23; break; case TALK_CURSOR: _vm->playSound((_vm->getRandom(5) + 0x8D5) | 0x10000, false); @@ -1944,8 +1944,8 @@ void Scene14::run() { _vm->checkGameKeys(); if (!_vm->isFlag(kGFNeedleTaken) && !_vm->_timers[2]) { - gameSys.insertSequence(0x24, 10, _vm->_gnapSequenceId, 10, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceId = 0x24; + gameSys.insertSequence(0x24, 10, _vm->_gnap->_sequenceId, 10, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceId = 0x24; _vm->_timers[2] = _vm->getRandom(40) + 50; } @@ -2340,10 +2340,10 @@ void Scene17::platHangUpPhone() { gameSys.insertSequence(0x257, 254, _currPhoneSequenceId, 254, kSeqSyncExists, 0, 0, 0); while (gameSys.getAnimationStatus(4) != 2) _vm->gameUpdateTick(); - gameSys.setAnimation(0x25B, _vm->_platypusId, 1); - gameSys.insertSequence(0x25B, _vm->_platypusId, _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), _vm->_platypusId, kSeqSyncWait, 0, 0, 0); - _vm->_platypusSequenceId = 0x25B; - _vm->_platypusSequenceDatNum = 0; + gameSys.setAnimation(0x25B, _vm->_plat->_id, 1); + gameSys.insertSequence(0x25B, _vm->_plat->_id, _vm->_plat->_sequenceId | (_vm->_plat->_sequenceDatNum << 16), _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); + _vm->_plat->_sequenceId = 0x25B; + _vm->_plat->_sequenceDatNum = 0; _currPhoneSequenceId = -1; _nextPhoneSequenceId = -1; _vm->clearFlag(kGFPlatypusTalkingToAssistant); @@ -2423,11 +2423,11 @@ void Scene17::run() { } else if (_vm->isFlag(kGFUnk27)) { _vm->initGnapPos(3, 9, kDirUpLeft); _vm->_plat->_pos = _vm->_hotspotsWalkPos[2]; - _vm->_platypusId = 20 * _vm->_hotspotsWalkPos[2].y; + _vm->_plat->_id = 20 * _vm->_hotspotsWalkPos[2].y; gameSys.insertSequence(0x25A, 20 * _vm->_hotspotsWalkPos[2].y, 0, 0, kSeqNone, 0, 0, 0); gameSys.insertSequence(0x257, 254, 0, 0, kSeqNone, 0, 0, 0); - _vm->_platypusSequenceId = 0x25A; - _vm->_platypusSequenceDatNum = 0; + _vm->_plat->_sequenceId = 0x25A; + _vm->_plat->_sequenceDatNum = 0; _vm->endSceneInit(); _vm->clearFlag(kGFSpringTaken); _vm->clearFlag(kGFUnk16); @@ -2442,10 +2442,10 @@ void Scene17::run() { _vm->clearFlag(kGFUnk16); _vm->initPlatypusPos(7, 9, kDirNone); _vm->_gnap->_pos = _vm->_hotspotsWalkPos[2]; - _vm->_gnapId = 20 * _vm->_hotspotsWalkPos[2].y; + _vm->_gnap->_id = 20 * _vm->_hotspotsWalkPos[2].y; gameSys.insertSequence(601, 20 * _vm->_hotspotsWalkPos[2].y, 0, 0, kSeqNone, 0, 0, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 601; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 601; _vm->_gnap->_actionStatus = kAS17GnapHangUpPhone; _vm->clearFlag(kGFUnk25); gameSys.insertSequence(0x251, 254, 0, 0, kSeqNone, 0, 0, 0); @@ -2458,12 +2458,12 @@ void Scene17::run() { _vm->_sceneWaiting = true; _vm->initGnapPos(3, 9, kDirUpLeft); _vm->_plat->_pos = _vm->_hotspotsWalkPos[2]; - _vm->_platypusId = 20 * _vm->_hotspotsWalkPos[2].y; + _vm->_plat->_id = 20 * _vm->_hotspotsWalkPos[2].y; _currPhoneSequenceId = 0x251; gameSys.insertSequence(0x25A, 20 * _vm->_hotspotsWalkPos[2].y, 0, 0, kSeqNone, 0, 0, 0); gameSys.insertSequence(_currPhoneSequenceId, 254, 0, 0, kSeqNone, 0, 0, 0); - _vm->_platypusSequenceId = 0x25A; - _vm->_platypusSequenceDatNum = 0; + _vm->_plat->_sequenceId = 0x25A; + _vm->_plat->_sequenceDatNum = 0; _vm->endSceneInit(); gameSys.setAnimation(_currPhoneSequenceId, 254, 1); _vm->_plat->_actionStatus = kAS17PlatPhoningAssistant; @@ -2490,21 +2490,21 @@ void Scene17::run() { } } else { _vm->_gnap->_pos = Common::Point(3, 6); - _vm->_gnapId = 120; - _vm->_gnapSequenceId = 0x23D; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_id = 120; + _vm->_gnap->_sequenceId = 0x23D; + _vm->_gnap->_sequenceDatNum = 0; _vm->_gnap->_idleFacing = kDirBottomRight; - gameSys.insertSequence(makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, 0, 0, kSeqNone, 0, 0, 0); + gameSys.insertSequence(makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, 0, 0, kSeqNone, 0, 0, 0); _vm->_plat->_pos = Common::Point(-1, 8); - _vm->_platypusId = 160; + _vm->_plat->_id = 160; gameSys.insertSequence(0x241, 160, 0, 0, kSeqNone, 0, 0, 0); - gameSys.insertSequence(0x107C1, _vm->_platypusId, 0x241, _vm->_platypusId, + gameSys.insertSequence(0x107C1, _vm->_plat->_id, 0x241, _vm->_plat->_id, kSeqScale | kSeqSyncWait, 0, 75 * _vm->_plat->_pos.x - _vm->_platGridX, 48 * _vm->_plat->_pos.y - _vm->_platGridY); gameSys.insertSequence(0x22C, 2, 0, 0, kSeqNone, 0, 0, 0); // TODO delayTicksA(2, 9); _vm->endSceneInit(); - _vm->_platypusSequenceId = 0x7C1; - _vm->_platypusSequenceDatNum = 1; + _vm->_plat->_sequenceId = 0x7C1; + _vm->_plat->_sequenceDatNum = 1; _vm->_plat->_idleFacing = kDirBottomRight; _vm->platypusWalkTo(2, 9, -1, 0x107C2, 1); } @@ -2528,9 +2528,9 @@ void Scene17::run() { if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemJoint) { if (_vm->isFlag(kGFGrassTaken)) { - _vm->gnapUseJointOnPlatypus(); + _vm->_gnap->useJointOnPlatypus(); } else { - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->platypusWalkTo(_vm->_hotspotsWalkPos[6].x, _vm->_hotspotsWalkPos[6].y, 1, 0x107C2, 1); _vm->gnapWalkTo(_vm->_hotspotsWalkPos[6].x + 1, _vm->_hotspotsWalkPos[6].y, 0, 0x107BA, 1); _vm->_plat->_actionStatus = kAS17GetWrench1; @@ -2549,7 +2549,7 @@ void Scene17::run() { break; case TALK_CURSOR: _vm->playGnapBrainPulsating(_vm->_plat->_pos.x, _vm->_plat->_pos.y); - _vm->playPlatypusSequence(_vm->getPlatypusSequenceId()); + _vm->playPlatypusSequence(_vm->_plat->getSequenceId()); break; case PLAT_CURSOR: _vm->playGnapImpossible(0, 0); @@ -2577,7 +2577,7 @@ void Scene17::run() { case PLAT_CURSOR: if (_canTryGetWrench) { platHangUpPhone(); - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->platypusWalkTo(_vm->_hotspotsWalkPos[6].x + 1, _vm->_hotspotsWalkPos[6].y, 1, 0x107C2, 1); _vm->_plat->_actionStatus = kAS17TryGetWrench; _vm->_gnap->_actionStatus = kAS17TryGetWrench; @@ -2593,7 +2593,7 @@ void Scene17::run() { case kHS17Phone1: if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemDiceQuarterHole) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS17PutCoinIntoPhone; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 1, 3); @@ -2605,7 +2605,7 @@ void Scene17::run() { case GRAB_CURSOR: if (_vm->isFlag(kGFUnk18)) { platHangUpPhone(); - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS17GetCoinFromPhone; } else _vm->playGnapImpossible(0, 0); @@ -2617,7 +2617,7 @@ void Scene17::run() { if (_vm->isFlag(kGFUnk18)) { platHangUpPhone(); _vm->_isLeavingScene = true; - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->_idleFacing = kDirUpLeft; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 1, 0x107C2, 1); _vm->setFlag(kGFUnk16); @@ -2634,7 +2634,7 @@ void Scene17::run() { case kHS17Phone2: if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemDiceQuarterHole) { - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS17PutCoinIntoPhone; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 1, 3); @@ -2648,7 +2648,7 @@ void Scene17::run() { platHangUpPhone(); _vm->_isLeavingScene = true; _vm->_gnap->_idleFacing = kDirUpLeft; - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 0, _vm->getGnapSequenceId(gskIdle, 0, 0) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 0, _vm->_gnap->getSequenceId(gskIdle, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS17GnapUsePhone; _vm->setFlag(kGFSpringTaken); } else @@ -2661,7 +2661,7 @@ void Scene17::run() { if (_vm->isFlag(kGFUnk18)) { platHangUpPhone(); _vm->_isLeavingScene = true; - _vm->gnapUseDeviceOnPlatypus(); + _vm->_gnap->useDeviceOnPlatypus(); _vm->_plat->_idleFacing = kDirUpLeft; _vm->platypusWalkTo(_vm->_hotspotsWalkPos[2].x, _vm->_hotspotsWalkPos[2].y, 1, 0x107C2, 1); _vm->setFlag(kGFUnk16); @@ -2841,10 +2841,10 @@ void Scene17::updateAnimations() { _vm->_gnap->_actionStatus = -1; break; case kAS17PutCoinIntoPhone: - gameSys.setAnimation(0x24C, _vm->_gnapId, 0); - gameSys.insertSequence(0x24C, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x24C; + gameSys.setAnimation(0x24C, _vm->_gnap->_id, 0); + gameSys.insertSequence(0x24C, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x24C; _vm->invRemove(kItemDiceQuarterHole); _vm->setGrabCursorSprite(-1); _vm->setFlag(kGFUnk18); @@ -2855,15 +2855,15 @@ void Scene17::updateAnimations() { _vm->_gnap->_actionStatus = -1; break; case kAS17GnapUsePhone: - gameSys.setAnimation(0x24D, _vm->_gnapId, 0); - gameSys.insertSequence(0x24D, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.setAnimation(0x24D, _vm->_gnap->_id, 0); + gameSys.insertSequence(0x24D, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); _vm->_gnap->_actionStatus = kAS17LeaveScene; _vm->_newSceneNum = 53; break; case kAS17GnapHangUpPhone: - gameSys.insertSequence(0x258, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x258; + gameSys.insertSequence(0x258, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x258; _vm->_gnap->_actionStatus = -1; break; case kAS17LeaveScene: @@ -2896,10 +2896,10 @@ void Scene17::updateAnimations() { _vm->setGrabCursorSprite(kItemWrench); break; case kAS17PlatUsePhone: - gameSys.setAnimation(0x24E, _vm->_platypusId, 1); - gameSys.insertSequence(0x24E, _vm->_platypusId, _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), _vm->_platypusId, kSeqSyncWait, 0, 0, 0); - _vm->_platypusSequenceDatNum = 0; - _vm->_platypusSequenceId = 0x24E; + gameSys.setAnimation(0x24E, _vm->_plat->_id, 1); + gameSys.insertSequence(0x24E, _vm->_plat->_id, _vm->_plat->_sequenceId | (_vm->_plat->_sequenceDatNum << 16), _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); + _vm->_plat->_sequenceDatNum = 0; + _vm->_plat->_sequenceId = 0x24E; _vm->_plat->_actionStatus = kAS17LeaveScene; _vm->_newSceneNum = 53; break; @@ -2909,9 +2909,9 @@ void Scene17::updateAnimations() { _platPhoneCtr = 0; _nextPhoneSequenceId = -1; _currPhoneSequenceId = -1; - gameSys.insertSequence(0x25B, _vm->_platypusId, 0x25A, _vm->_platypusId, kSeqSyncWait, 0, 0, 0); - _vm->_platypusSequenceDatNum = 0; - _vm->_platypusSequenceId = 0x25B; + gameSys.insertSequence(0x25B, _vm->_plat->_id, 0x25A, _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); + _vm->_plat->_sequenceDatNum = 0; + _vm->_plat->_sequenceId = 0x25B; _vm->_plat->_actionStatus = -1; _vm->clearFlag(kGFPlatypusTalkingToAssistant); _vm->_sceneWaiting = false; @@ -2920,9 +2920,9 @@ void Scene17::updateAnimations() { _nextPhoneSequenceId = kPlatPhoneSequenceIds[_platPhoneCtr]; gameSys.setAnimation(_nextPhoneSequenceId, 254, 1); gameSys.insertSequence(_nextPhoneSequenceId, 254, _currPhoneSequenceId, 254, kSeqSyncWait, 0, 0, 0); - gameSys.insertSequence(0x25A, _vm->_platypusId, 0x25A, _vm->_platypusId, kSeqSyncWait, 0, 0, 0); - _vm->_platypusSequenceDatNum = 0; - _vm->_platypusSequenceId = 0x25A; + gameSys.insertSequence(0x25A, _vm->_plat->_id, 0x25A, _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); + _vm->_plat->_sequenceDatNum = 0; + _vm->_plat->_sequenceId = 0x25A; _currPhoneSequenceId = _nextPhoneSequenceId; } break; @@ -2936,27 +2936,27 @@ void Scene17::updateAnimations() { switch (_nextWrenchSequenceId) { case 0x233: _vm->_gnap->_actionStatus = -1; - gameSys.insertSequence(0x243, _vm->_platypusId, - _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), _vm->_platypusId, + gameSys.insertSequence(0x243, _vm->_plat->_id, + _vm->_plat->_sequenceId | (_vm->_plat->_sequenceDatNum << 16), _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(_nextWrenchSequenceId, 40, _currWrenchSequenceId, 40, kSeqSyncWait, 0, 0, 0); _currWrenchSequenceId = _nextWrenchSequenceId; _nextWrenchSequenceId = -1; - _vm->_platypusSequenceId = 0x243; - _vm->_platypusSequenceDatNum = 0; - gameSys.setAnimation(0x243, _vm->_platypusId, 1); + _vm->_plat->_sequenceId = 0x243; + _vm->_plat->_sequenceDatNum = 0; + gameSys.setAnimation(0x243, _vm->_plat->_id, 1); break; case 0x234: _vm->_gnap->_actionStatus = -1; - gameSys.insertSequence(0x242, _vm->_platypusId, - _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), _vm->_platypusId, + gameSys.insertSequence(0x242, _vm->_plat->_id, + _vm->_plat->_sequenceId | (_vm->_plat->_sequenceDatNum << 16), _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(_nextWrenchSequenceId, 40, _currWrenchSequenceId, 40, kSeqSyncWait, 0, 0, 0); _currWrenchSequenceId = _nextWrenchSequenceId; _nextWrenchSequenceId = -1; - _vm->_platypusSequenceId = 0x242; - _vm->_platypusSequenceDatNum = 0; - gameSys.setAnimation(0x242, _vm->_platypusId, 1); + _vm->_plat->_sequenceId = 0x242; + _vm->_plat->_sequenceDatNum = 0; + gameSys.setAnimation(0x242, _vm->_plat->_id, 1); break; case 0x231: if (_vm->getRandom(2) != 0) @@ -2989,15 +2989,15 @@ void Scene17::updateAnimations() { _currWrenchSequenceId = 0x22E; _canTryGetWrench = false; } - gameSys.setAnimation(0x23F, _vm->_platypusId, 1); - gameSys.insertSequence(0x10875, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - gameSys.insertSequence(0x23F, _vm->_platypusId, - _vm->_platypusSequenceId | (_vm->_platypusSequenceDatNum << 16), _vm->_platypusId, + gameSys.setAnimation(0x23F, _vm->_plat->_id, 1); + gameSys.insertSequence(0x10875, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x23F, _vm->_plat->_id, + _vm->_plat->_sequenceId | (_vm->_plat->_sequenceDatNum << 16), _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceDatNum = 1; - _vm->_platypusSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x875; - _vm->_platypusSequenceId = 0x23F; + _vm->_gnap->_sequenceDatNum = 1; + _vm->_plat->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x875; + _vm->_plat->_sequenceId = 0x23F; _vm->gnapWalkTo(3, 8, -1, 0x107B9, 1); _vm->_plat->_actionStatus = kAS17GetWrench2; } @@ -3037,15 +3037,15 @@ void Scene17::updateAnimations() { break; case 0x249: gameSys.setAnimation(0x230, 40, 2); - gameSys.setAnimation(0x240, _vm->_platypusId, 1); + gameSys.setAnimation(0x240, _vm->_plat->_id, 1); gameSys.insertSequence(0x230, 40, _currWrenchSequenceId, 40, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(_nextCarWindowSequenceId, 40, _currCarWindowSequenceId, 40, kSeqSyncWait, 0, 0, 0); - gameSys.insertSequence(0x240, _vm->_platypusId, _vm->_platypusSequenceId, _vm->_platypusId, kSeqSyncWait, 0, 0, 0); - gameSys.insertSequence(0x23E, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceId = 0x23E; - _vm->_gnapSequenceDatNum = 0; - _vm->_platypusSequenceId = 0x240; - _vm->_platypusSequenceDatNum = 0; + gameSys.insertSequence(0x240, _vm->_plat->_id, _vm->_plat->_sequenceId, _vm->_plat->_id, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x23E, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceId = 0x23E; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_plat->_sequenceId = 0x240; + _vm->_plat->_sequenceDatNum = 0; gameSys.setAnimation(0x24A, 40, 3); gameSys.insertSequence(0x24A, 40, _nextCarWindowSequenceId, 40, kSeqSyncWait, 0, 0, 0); while (gameSys.getAnimationStatus(2) != 2) { @@ -3173,9 +3173,9 @@ void Scene18::gnapCarryGarbageCanTo(int gridX) { nextGridX = destGridX; if (nextGridX == _vm->_gnap->_pos.x) { - gnapSeqId = _vm->_gnapSequenceId; - gnapId = _vm->_gnapId; - gnapDatNum = _vm->_gnapSequenceDatNum; + gnapSeqId = _vm->_gnap->_sequenceId; + gnapId = _vm->_gnap->_id; + gnapDatNum = _vm->_gnap->_sequenceDatNum; gnapGridX = _vm->_gnap->_pos.x; if (_vm->_gnap->_pos.x <= curGridX) direction = 1; @@ -3190,9 +3190,9 @@ void Scene18::gnapCarryGarbageCanTo(int gridX) { _vm->platypusMakeRoom(); } } - gnapSeqId = _vm->_gnapSequenceId; - gnapId = _vm->_gnapId; - gnapDatNum = _vm->_gnapSequenceDatNum; + gnapSeqId = _vm->_gnap->_sequenceId; + gnapId = _vm->_gnap->_id; + gnapDatNum = _vm->_gnap->_sequenceDatNum; gnapGridX = _vm->_gnap->_pos.x; int seqId; if (nextGridX < _vm->_gnap->_pos.x) { @@ -3219,20 +3219,20 @@ void Scene18::gnapCarryGarbageCanTo(int gridX) { } if (direction == 1) - _vm->_gnapSequenceId = 0x20A; + _vm->_gnap->_sequenceId = 0x20A; else - _vm->_gnapSequenceId = 0x209; - _vm->_gnapSequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x209; + _vm->_gnap->_sequenceDatNum = 0; if (direction == 1) _vm->_gnap->_idleFacing = kDirBottomRight; else _vm->_gnap->_idleFacing = kDirBottomLeft; - _vm->_gnapId = 20 * _vm->_gnap->_pos.y + 1; + _vm->_gnap->_id = 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, + gameSys.setAnimation(makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, 0); + gameSys.insertSequence(makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, gnapSeqId | (gnapDatNum << 16), gnapId, kSeqScale | kSeqSyncWait, 0, 75 * gnapGridX - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); @@ -3253,17 +3253,17 @@ void Scene18::putDownGarbageCan(int animationIndex) { _vm->clearFlag(kGFPlatypusDisguised); updateHotspots(); 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, + gameSys.insertSequence(0x107BA, _vm->_gnap->_id, + makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); - _vm->_gnapSequenceId = 0x7BA; + _vm->_gnap->_sequenceId = 0x7BA; } else { - gameSys.insertSequence(0x107B9, _vm->_gnapId, - makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, + gameSys.insertSequence(0x107B9, _vm->_gnap->_id, + makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); - _vm->_gnapSequenceId = 0x7B9; + _vm->_gnap->_sequenceId = 0x7B9; } - _vm->_gnapSequenceDatNum = 1; + _vm->_gnap->_sequenceDatNum = 1; gameSys.insertSequence(0x1FB, 19, 0, 0, kSeqNone, 0, 15 * (5 * _vm->_s18GarbageCanPos - 40), 0); gameSys.setAnimation(0x1FA, 19, 4); gameSys.insertSequence(0x1FA, 19, 507, 19, kSeqSyncWait, 0, 15 * (5 * _vm->_s18GarbageCanPos - 40), 0); @@ -3436,7 +3436,7 @@ void Scene18::run() { putDownGarbageCan(0); } if (_vm->_grabCursorSpriteIndex == kItemJoint) { - _vm->gnapUseJointOnPlatypus(); + _vm->_gnap->useJointOnPlatypus(); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowItem(_vm->_grabCursorSpriteIndex, _vm->_plat->_pos.x, _vm->_plat->_pos.y); } else { @@ -3445,11 +3445,11 @@ void Scene18::run() { _vm->playGnapMoan1(_vm->_plat->_pos.x, _vm->_plat->_pos.y); break; case GRAB_CURSOR: - _vm->gnapKissPlatypus(0); + _vm->_gnap->kissPlatypus(0); break; case TALK_CURSOR: _vm->playGnapBrainPulsating(_vm->_plat->_pos.x, _vm->_plat->_pos.y); - _vm->playPlatypusSequence(_vm->getPlatypusSequenceId()); + _vm->playPlatypusSequence(_vm->_plat->getSequenceId()); break; case PLAT_CURSOR: _vm->playGnapImpossible(0, 0); @@ -3476,7 +3476,7 @@ void Scene18::run() { _vm->playGnapScratchingHead(3, 2); break; case GRAB_CURSOR: - _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18CowboyHat].x, _vm->_hotspotsWalkPos[kHS18CowboyHat].y, 0, _vm->getGnapSequenceId(gskPullOutDeviceNonWorking, 3, 2) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18CowboyHat].x, _vm->_hotspotsWalkPos[kHS18CowboyHat].y, 0, _vm->_gnap->getSequenceId(gskPullOutDeviceNonWorking, 3, 2) | 0x10000, 1); break; case TALK_CURSOR: case PLAT_CURSOR: @@ -3515,7 +3515,7 @@ void Scene18::run() { if (!_vm->isFlag(kGFTruckKeysUsed)) { _vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan].x - (_vm->_gnap->_pos.x < _vm->_s18GarbageCanPos ? 1 : -1), _vm->_hotspotsWalkPos[kHS18GarbageCan].y, -1, -1, 1); - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_s18GarbageCanPos, _vm->_gnap->_pos.y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_s18GarbageCanPos, _vm->_gnap->_pos.y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS18GrabGarbageCanFromStreet; } else if (!_vm->isFlag(kGFTruckFilledWithGas)) { if (_vm->gnapWalkTo(_vm->_hotspotsWalkPos[kHS18GarbageCan].x, _vm->_hotspotsWalkPos[kHS18GarbageCan].y, 0, -1, 1)) @@ -3570,7 +3570,7 @@ void Scene18::run() { } } else { if (_vm->_grabCursorSpriteIndex == kItemWrench) { - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, 2, 8) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, 2, 8) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS18OpenTopValve; } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapShowCurrItem(_vm->_hotspotsWalkPos[kHS18HydrantTopValve].x, _vm->_hotspotsWalkPos[kHS18HydrantTopValve].y, 1, 5); @@ -3612,7 +3612,7 @@ void Scene18::run() { putDownGarbageCan(0); } if (_vm->_grabCursorSpriteIndex == kItemWrench) { - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, 2, 8) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, 2, 8) | 0x10000, 1); if (_vm->isFlag(kGFTruckKeysUsed)) _vm->_gnap->_actionStatus = kAS18OpenRightValveWithGarbageCan; else @@ -3792,17 +3792,17 @@ void Scene18::updateAnimations() { switch (_vm->_gnap->_actionStatus) { case kAS18GrabGarbageCanFromStreet: if (_vm->_gnap->_idleFacing != kDirUpRight && _vm->_gnap->_idleFacing != kDirBottomRight) { - gameSys.insertSequence(0x1FC, _vm->_gnapId, - makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, + gameSys.insertSequence(0x1FC, _vm->_gnap->_id, + makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - 675, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x1FC; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x1FC; } else { - gameSys.insertSequence(0x1FD, _vm->_gnapId, - makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, + gameSys.insertSequence(0x1FD, _vm->_gnap->_id, + makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - 525, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x1FD; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x1FD; } gameSys.removeSequence(0x1FA, 19, true); _vm->setFlag(kGFPlatypusDisguised); @@ -3810,23 +3810,23 @@ void Scene18::updateAnimations() { _vm->_gnap->_actionStatus = -1; break; case kAS18GrabGarbageCanFromHydrant: - gameSys.insertSequence(0x1FE, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x1FE, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); gameSys.removeSequence(0x1F9, 19, true); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x1FE; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x1FE; _vm->clearFlag(kGFTruckKeysUsed); _vm->setFlag(kGFPlatypusDisguised); updateHotspots(); _vm->_gnap->_actionStatus = -1; break; case kAS18CloseRightValveNoGarbageCan: - gameSys.insertSequence(0x205, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x205, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); gameSys.removeSequence(0x20D, 39, true); gameSys.removeSequence(0x212, 39, true); gameSys.removeSequence(0x211, 39, true); _vm->stopSound(0x22B); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x205; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x205; _vm->clearFlag(kGFTruckFilledWithGas); _vm->invAdd(kItemWrench); _vm->setGrabCursorSprite(kItemWrench); @@ -3846,7 +3846,7 @@ void Scene18::updateAnimations() { break; case kAS18OpenTopValveDone: _vm->setGrabCursorSprite(-1); - gameSys.insertSequence(0x208, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x208, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(0x216, 39, 0, 0, kSeqNone, 21, 0, 0); gameSys.removeSequence(0x20C, 19, true); gameSys.setAnimation(0x217, 39, 5); @@ -3855,20 +3855,20 @@ void Scene18::updateAnimations() { _vm->gameUpdateTick(); _vm->playSound(0x22B, true); gameSys.insertSequence(0x20E, 39, 0, 0, kSeqNone, 0, 0, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x208; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x208; _vm->invRemove(kItemWrench); _vm->setGrabCursorSprite(-1); _vm->_gnap->_actionStatus = -1; break; case kAS18CloseTopValve: - gameSys.insertSequence(0x206, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x206, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); gameSys.removeSequence(0x20E, 39, true); gameSys.removeSequence(0x216, 39, true); gameSys.removeSequence(0x217, 39, true); _vm->stopSound(0x22B); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x206; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x206; _vm->clearFlag(kGFBarnPadlockOpen); _vm->invAdd(kItemWrench); _vm->setGrabCursorSprite(kItemWrench); @@ -3876,10 +3876,10 @@ void Scene18::updateAnimations() { _vm->_gnap->_actionStatus = -1; break; case kAS18GrabCowboyHat: - gameSys.setAnimation(0x200, _vm->_gnapId, 0); - gameSys.insertSequence(0x200, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x200; + gameSys.setAnimation(0x200, _vm->_gnap->_id, 0); + gameSys.insertSequence(0x200, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x200; _vm->_gnap->_actionStatus = kAS18GrabCowboyHatDone; break; case kAS18GrabCowboyHatDone: @@ -3910,25 +3910,25 @@ void Scene18::updateAnimations() { _vm->clearFlag(kGFPlatypusDisguised); gameSys.requestRemoveSequence(0x211, 39); gameSys.requestRemoveSequence(0x212, 39); - gameSys.insertSequence(0x210, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x210, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); _vm->stopSound(0x22B); - gameSys.setAnimation(0x210, _vm->_gnapId, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x210; + gameSys.setAnimation(0x210, _vm->_gnap->_id, 0); + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x210; _vm->_gnap->_actionStatus = kAS18PutGarbageCanOnRunningHydrant2; break; case kAS18PutGarbageCanOnRunningHydrant2: _vm->playSound(0x22B, true); - gameSys.setAnimation(0x1FF, _vm->_gnapId, 0); - gameSys.insertSequence(0x1FF, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x1FF; + gameSys.setAnimation(0x1FF, _vm->_gnap->_id, 0); + gameSys.insertSequence(0x1FF, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x1FF; _vm->_sceneWaiting = true; _vm->_gnap->_actionStatus = kAS18StandingOnHydrant; break; case kAS18StandingOnHydrant: - gameSys.setAnimation(0x1FF, _vm->_gnapId, 0); - gameSys.insertSequence(0x1FF, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.setAnimation(0x1FF, _vm->_gnap->_id, 0); + gameSys.insertSequence(0x1FF, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); break; case kAS18OpenRightValveNoGarbageCan: case kAS18OpenRightValveWithGarbageCan: @@ -3947,7 +3947,7 @@ void Scene18::updateAnimations() { break; case kAS18OpenRightValveWithGarbageCanDone: _vm->setGrabCursorSprite(-1); - gameSys.insertSequence(0x207, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x207, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(0x213, 39, 0, 0, kSeqNone, 21, 0, 0); gameSys.requestRemoveSequence(0x1F9, 19); gameSys.removeSequence(0x20B, 19, true); @@ -3957,14 +3957,14 @@ void Scene18::updateAnimations() { _vm->gameUpdateTick(); _vm->playSound(0x22B, true); gameSys.insertSequence(0x20D, 39, 0, 0, kSeqNone, 0, 0, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x207; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x207; _vm->invRemove(kItemWrench); _vm->_gnap->_actionStatus = -1; break; case kAS18OpenRightValveNoGarbageCanDone: _vm->setGrabCursorSprite(-1); - gameSys.insertSequence(0x207, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x207, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); gameSys.insertSequence(0x211, 39, 0, 0, kSeqNone, 21, 0, 0); gameSys.removeSequence(0x20B, 19, true); gameSys.setAnimation(0x211, 39, 5); @@ -3973,13 +3973,13 @@ void Scene18::updateAnimations() { _vm->gameUpdateTick(); _vm->playSound(0x22B, true); gameSys.insertSequence(0x20D, 39, 0, 0, kSeqNone, 0, 0, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x207; + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x207; _vm->invRemove(kItemWrench); _vm->_gnap->_actionStatus = -1; break; case kAS18CloseRightValveWithGarbageCan: - gameSys.insertSequence(0x205, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); + gameSys.insertSequence(0x205, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); gameSys.removeSequence(0x20D, 39, true); gameSys.insertSequence(0x215, 39, 0x214, 39, kSeqSyncWait, 0, 0, 0); _vm->stopSound(0x22B); @@ -3988,10 +3988,10 @@ void Scene18::updateAnimations() { _vm->clearFlag(kGFTruckFilledWithGas); _vm->invAdd(kItemWrench); _vm->setGrabCursorSprite(kItemWrench); - gameSys.insertSequence(0x107B5, _vm->_gnapId, 517, _vm->_gnapId, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); + gameSys.insertSequence(0x107B5, _vm->_gnap->_id, 517, _vm->_gnap->_id, kSeqSyncWait, 0, 75 * _vm->_gnap->_pos.x - _vm->_gnapGridX, 48 * _vm->_gnap->_pos.y - _vm->_gnapGridY); updateHotspots(); - _vm->_gnapSequenceDatNum = 1; - _vm->_gnapSequenceId = 0x7B5; + _vm->_gnap->_sequenceDatNum = 1; + _vm->_gnap->_sequenceId = 0x7B5; _vm->_gnap->_actionStatus = kAS18CloseRightValveWithGarbageCanDone; break; case kAS18CloseRightValveWithGarbageCanDone: @@ -4000,14 +4000,14 @@ void Scene18::updateAnimations() { case kAS18PutGarbageCanOnHydrant: _vm->setFlag(kGFTruckKeysUsed); _vm->clearFlag(kGFPlatypusDisguised); - gameSys.insertSequence(0x20F, _vm->_gnapId, makeRid(_vm->_gnapSequenceDatNum, _vm->_gnapSequenceId), _vm->_gnapId, kSeqSyncWait, 0, 0, 0); - gameSys.setAnimation(0x20F, _vm->_gnapId, 0); - _vm->_gnapSequenceDatNum = 0; - _vm->_gnapSequenceId = 0x20F; + gameSys.insertSequence(0x20F, _vm->_gnap->_id, makeRid(_vm->_gnap->_sequenceDatNum, _vm->_gnap->_sequenceId), _vm->_gnap->_id, kSeqSyncWait, 0, 0, 0); + gameSys.setAnimation(0x20F, _vm->_gnap->_id, 0); + _vm->_gnap->_sequenceDatNum = 0; + _vm->_gnap->_sequenceId = 0x20F; _vm->_gnap->_actionStatus = kAS18PutGarbageCanOnHydrantDone; break; case kAS18PutGarbageCanOnHydrantDone: - gameSys.insertSequence(0x1F9, 19, 0x20F, _vm->_gnapId, kSeqNone, 0, 0, 0); + gameSys.insertSequence(0x1F9, 19, 0x20F, _vm->_gnap->_id, kSeqNone, 0, 0, 0); updateHotspots(); _vm->_gnap->_actionStatus = -1; break; @@ -4142,7 +4142,7 @@ void Scene19::run() { case kHS19Platypus: if (_vm->_gnap->_actionStatus < 0) { if (_vm->_grabCursorSpriteIndex == kItemJoint) { - _vm->gnapUseJointOnPlatypus(); + _vm->_gnap->useJointOnPlatypus(); } else if (_vm->_grabCursorSpriteIndex >= 0) { _vm->playGnapImpossible(_vm->_plat->_pos.x, _vm->_plat->_pos.y); } else { @@ -4151,11 +4151,11 @@ void Scene19::run() { _vm->playGnapMoan1(_vm->_plat->_pos.x, _vm->_plat->_pos.y); break; case GRAB_CURSOR: - _vm->gnapKissPlatypus(0); + _vm->_gnap->kissPlatypus(0); break; case TALK_CURSOR: _vm->playGnapBrainPulsating(_vm->_plat->_pos.x, _vm->_plat->_pos.y); - _vm->playPlatypusSequence(_vm->getPlatypusSequenceId()); + _vm->playPlatypusSequence(_vm->_plat->getSequenceId()); break; case PLAT_CURSOR: _vm->playGnapImpossible(0, 0); @@ -4191,7 +4191,7 @@ void Scene19::run() { break; case GRAB_CURSOR: if (!_vm->isFlag(kGFPictureTaken)) { - _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->getGnapSequenceId(gskIdle, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y) | 0x10000, 1); + _vm->gnapWalkTo(_vm->_gnap->_pos, 0, _vm->_gnap->getSequenceId(gskIdle, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS19GrabPicture; } break; @@ -4215,7 +4215,7 @@ void Scene19::run() { break; case TALK_CURSOR: _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->gnapWalkTo(_vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].x, _vm->_hotspotsWalkPos[_vm->_sceneClickedHotspot].y, 0, _vm->_gnap->getSequenceId(gskBrainPulsating, 0, 0) | 0x10000, 1); _vm->_gnap->_actionStatus = kAS19TalkShopAssistant; break; case GRAB_CURSOR: |