diff options
author | Strangerke | 2013-09-27 01:34:38 +0200 |
---|---|---|
committer | Strangerke | 2013-09-27 01:34:38 +0200 |
commit | 08883a807f8c568109430910836aeee6b96b64f2 (patch) | |
tree | b8af644d822bf28e4ee1ed97f297eb030a5cfbf7 /engines/avalanche/animation.cpp | |
parent | e166f6fc44be9322cd502520af0cd1daa6b07813 (diff) | |
download | scummvm-rg350-08883a807f8c568109430910836aeee6b96b64f2.tar.gz scummvm-rg350-08883a807f8c568109430910836aeee6b96b64f2.tar.bz2 scummvm-rg350-08883a807f8c568109430910836aeee6b96b64f2.zip |
AVALANCHE: Merge Avalot and AvalancheEngine
Diffstat (limited to 'engines/avalanche/animation.cpp')
-rw-r--r-- | engines/avalanche/animation.cpp | 378 |
1 files changed, 189 insertions, 189 deletions
diff --git a/engines/avalanche/animation.cpp b/engines/avalanche/animation.cpp index 101eccbdfe..cb64bb8fe0 100644 --- a/engines/avalanche/animation.cpp +++ b/engines/avalanche/animation.cpp @@ -147,8 +147,8 @@ void AnimationType::turn(Direction whichway) { void AnimationType::appear(int16 wx, int16 wy, Direction wf) { _x = (wx / 8) * 8; _y = wy; - _oldX[_anim->_vm->_avalot->_cp] = wx; - _oldY[_anim->_vm->_avalot->_cp] = wy; + _oldX[_anim->_vm->_cp] = wx; + _oldY[_anim->_vm->_cp] = wy; turn(wf); _visible = true; _moveX = 0; @@ -180,9 +180,9 @@ void AnimationType::walk() { r._y2 = _y + _info._yLength + 2; } - if (!_anim->_vm->_avalot->_doingSpriteRun) { - _oldX[_anim->_vm->_avalot->_cp] = _x; - _oldY[_anim->_vm->_avalot->_cp] = _y; + if (!_anim->_vm->_doingSpriteRun) { + _oldX[_anim->_vm->_cp] = _x; + _oldY[_anim->_vm->_cp] = _y; if (_homing) homeStep(); _x += _moveX; @@ -195,40 +195,40 @@ void AnimationType::walk() { return; } - byte magicColor = _anim->checkFeet(_x, _x + _info._xLength, _oldY[_anim->_vm->_avalot->_cp], _y, _info._yLength) - 1; + byte magicColor = _anim->checkFeet(_x, _x + _info._xLength, _oldY[_anim->_vm->_cp], _y, _info._yLength) - 1; // -1 is because the modified array indexes of magics[] compared to Pascal . - if ((magicColor != 255) & (!_anim->_vm->_avalot->_doingSpriteRun)) { - MagicType *magic = &_anim->_vm->_avalot->_magics[magicColor]; + if ((magicColor != 255) & (!_anim->_vm->_doingSpriteRun)) { + MagicType *magic = &_anim->_vm->_magics[magicColor]; switch (magic->_operation) { - case Avalot::kMagicExclaim: + case AvalancheEngine::kMagicExclaim: bounce(); _anim->_mustExclaim = true; _anim->_sayWhat = magic->_data; break; - case Avalot::kMagicBounce: + case AvalancheEngine::kMagicBounce: bounce(); break; - case Avalot::kMagicTransport: - _anim->_vm->_avalot->flipRoom((Room)(magic->_data >> 8), magic->_data & 0xff); + case AvalancheEngine::kMagicTransport: + _anim->_vm->flipRoom((Room)(magic->_data >> 8), magic->_data & 0xff); break; - case Avalot::kMagicUnfinished: { + case AvalancheEngine::kMagicUnfinished: { bounce(); Common::String tmpStr = Common::String::format("%c%cSorry.%cThis place is not available yet!", Dialogs::kControlBell, Dialogs::kControlCenter, Dialogs::kControlRoman); _anim->_vm->_dialogs->displayText(tmpStr); } break; - case Avalot::kMagicSpecial: + case AvalancheEngine::kMagicSpecial: _anim->callSpecial(magic->_data); break; - case Avalot::kMagicOpenDoor: - _anim->_vm->_avalot->openDoor((Room)(magic->_data >> 8), magic->_data & 0xff, magicColor); + case AvalancheEngine::kMagicOpenDoor: + _anim->_vm->openDoor((Room)(magic->_data >> 8), magic->_data & 0xff, magicColor); break; } } } - if (!_anim->_vm->_avalot->_doingSpriteRun) { + if (!_anim->_vm->_doingSpriteRun) { _count++; if (((_moveX != 0) || (_moveY != 0)) && (_count > 1)) { _stepNum++; @@ -240,13 +240,13 @@ void AnimationType::walk() { } void AnimationType::bounce() { - _x = _oldX[_anim->_vm->_avalot->_cp]; - _y = _oldY[_anim->_vm->_avalot->_cp]; + _x = _oldX[_anim->_vm->_cp]; + _y = _oldY[_anim->_vm->_cp]; if (_doCheck) _anim->stopWalking(); else stopWalk(); - _anim->_vm->_avalot->drawDirection(); + _anim->_vm->drawDirection(); } int8 AnimationType::getSign(int16 val) { @@ -259,7 +259,7 @@ int8 AnimationType::getSign(int16 val) { } void AnimationType::walkTo(byte pedNum) { - PedType *curPed = &_anim->_vm->_avalot->_peds[pedNum]; + PedType *curPed = &_anim->_vm->_peds[pedNum]; setSpeed(getSign(curPed->_x - _x) * 4, getSign(curPed->_y - _y)); _homingX = curPed->_x - _info._xLength / 2; @@ -327,10 +327,10 @@ void AnimationType::stopWalk() { } void AnimationType::chatter() { - _anim->_vm->_avalot->_talkX = _x + _info._xLength / 2; - _anim->_vm->_avalot->_talkY = _y; - _anim->_vm->_avalot->_talkFontColor = _stat._fgBubbleCol; - _anim->_vm->_avalot->_talkBackgroundColor = _stat._bgBubbleCol; + _anim->_vm->_talkX = _x + _info._xLength / 2; + _anim->_vm->_talkY = _y; + _anim->_vm->_talkFontColor = _stat._fgBubbleCol; + _anim->_vm->_talkBackgroundColor = _stat._bgBubbleCol; } void AnimationType::remove() { @@ -368,7 +368,7 @@ void Animation::resetAnims() { } byte Animation::checkFeet(int16 x1, int16 x2, int16 oy, int16 y, byte yl) { - if (!_vm->_avalot->_alive) + if (!_vm->_alive) return 0; if (x1 < 0) @@ -413,98 +413,98 @@ void Animation::catacombMove(byte ped) { // XY_uint16 is cat_x+cat_y*256. Thus, every room in the // catacombs has a different number for it. - xy_uint16 = _vm->_avalot->_catacombX + _vm->_avalot->_catacombY * 256; + xy_uint16 = _vm->_catacombX + _vm->_catacombY * 256; _geidaSpin = 0; switch (xy_uint16) { case 1801: // Exit catacombs - _vm->_avalot->flipRoom(kRoomLustiesRoom, 4); + _vm->flipRoom(kRoomLustiesRoom, 4); _vm->_dialogs->displayText("Phew! Nice to be out of there!"); return; case 1033:{ // Oubliette - _vm->_avalot->flipRoom(kRoomOubliette, 1); + _vm->flipRoom(kRoomOubliette, 1); Common::String tmpStr = Common::String::format("Oh, NO!%c1%c", Dialogs::kControlRegister, Dialogs::kControlSpeechBubble); _vm->_dialogs->displayText(tmpStr); } return; case 4: - _vm->_avalot->flipRoom(kRoomGeidas, 1); + _vm->flipRoom(kRoomGeidas, 1); return; case 2307: - _vm->_avalot->flipRoom(kRoomLusties, 5); + _vm->flipRoom(kRoomLusties, 5); _vm->_dialogs->displayText("Oh no... here we go again..."); - _vm->_avalot->_userMovesAvvy = false; + _vm->_userMovesAvvy = false; _sprites[0]._moveY = 1; _sprites[0]._moveX = 0; return; } - if (!_vm->_avalot->_enterCatacombsFromLustiesRoom) - _vm->_avalot->loadRoom(29); - here = _vm->_avalot->kCatacombMap[_vm->_avalot->_catacombY - 1][_vm->_avalot->_catacombX - 1]; + if (!_vm->_enterCatacombsFromLustiesRoom) + _vm->loadRoom(29); + here = _vm->kCatacombMap[_vm->_catacombY - 1][_vm->_catacombX - 1]; switch (here & 0xf) { // West. case 0: // no connection (wall) - _vm->_avalot->_magics[1]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[4]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[1]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[4]._operation = AvalancheEngine::kMagicNothing; // Door. _vm->_background->draw(-1, -1, 27); break; case 0x1: // no connection (wall + shield), - _vm->_avalot->_magics[1]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[4]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[1]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[4]._operation = AvalancheEngine::kMagicNothing; // Door. _vm->_background->draw(-1, -1, 27); // Wall, plus... _vm->_background->draw(-1, -1, 28); // ...shield. break; case 0x2: // wall with door - _vm->_avalot->_magics[1]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[4]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[1]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[4]._operation = AvalancheEngine::kMagicSpecial; // Door. _vm->_background->draw(-1, -1, 27); // Wall, plus... _vm->_background->draw(-1, -1, 29); // ...door. break; case 0x3: // wall with door and shield - _vm->_avalot->_magics[1]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[4]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[1]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[4]._operation = AvalancheEngine::kMagicSpecial; // Door. _vm->_background->draw(-1, -1, 27); // Wall, plus... _vm->_background->draw(-1, -1, 29); // ...door, and... _vm->_background->draw(-1, -1, 28); // ...shield. break; case 0x4: // no connection (wall + window), - _vm->_avalot->_magics[1]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[4]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[1]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[4]._operation = AvalancheEngine::kMagicNothing; // Door. _vm->_background->draw(-1, -1, 27); // Wall, plus... _vm->_background->draw(-1, -1, 4); // ...window. break; case 0x5: // wall with door and window - _vm->_avalot->_magics[1]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[4]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[1]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[4]._operation = AvalancheEngine::kMagicSpecial; // Door. _vm->_background->draw(-1, -1, 27); // Wall, plus... _vm->_background->draw(-1, -1, 29); // ...door, and... _vm->_background->draw(-1, -1, 4); // ...window. break; case 0x6: // no connection (wall + torches), - _vm->_avalot->_magics[1]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[4]._operation = Avalot::kMagicNothing; // No door. + _vm->_magics[1]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[4]._operation = AvalancheEngine::kMagicNothing; // No door. _vm->_background->draw(-1, -1, 27); // Wall, plus... _vm->_background->draw(-1, -1, 6); // ...torches. break; case 0x7: // wall with door and torches - _vm->_avalot->_magics[1]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[4]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[1]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[4]._operation = AvalancheEngine::kMagicSpecial; // Door. _vm->_background->draw(-1, -1, 27); // Wall, plus... _vm->_background->draw(-1, -1, 29); // ...door, and... _vm->_background->draw(-1, -1, 6); // ...torches. break; case 0xf: // straight-through corridor. - _vm->_avalot->_magics[1]._operation = Avalot::kMagicNothing; // Sloping wall. - _vm->_avalot->_magics[2]._operation = Avalot::kMagicSpecial; // Straight wall. + _vm->_magics[1]._operation = AvalancheEngine::kMagicNothing; // Sloping wall. + _vm->_magics[2]._operation = AvalancheEngine::kMagicSpecial; // Straight wall. break; } @@ -512,127 +512,127 @@ void Animation::catacombMove(byte ped) { switch ((here & 0xf0) >> 4) { // East case 0: // no connection (wall) - _vm->_avalot->_magics[4]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[5]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[6]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[4]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[5]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[6]._operation = AvalancheEngine::kMagicNothing; // Door. _vm->_background->draw(-1, -1, 18); break; case 0x1: // no connection (wall + window), - _vm->_avalot->_magics[4]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[5]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[6]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[4]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[5]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[6]._operation = AvalancheEngine::kMagicNothing; // Door. _vm->_background->draw(-1, -1, 18); // Wall, plus... _vm->_background->draw(-1, -1, 19); // ...window. break; case 0x2: // wall with door - _vm->_avalot->_magics[4]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[5]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[6]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[4]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[5]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[6]._operation = AvalancheEngine::kMagicSpecial; // Door. _vm->_background->draw(-1, -1, 18); // Wall, plus... _vm->_background->draw(-1, -1, 20); // ...door. break; case 0x3: // wall with door and window - _vm->_avalot->_magics[4]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[5]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[6]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[4]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[5]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[6]._operation = AvalancheEngine::kMagicSpecial; // Door. _vm->_background->draw(-1, -1, 18); // Wall, plus... _vm->_background->draw(-1, -1, 19); // ...door, and... _vm->_background->draw(-1, -1, 20); // ...window. break; case 0x6: // no connection (wall + torches), - _vm->_avalot->_magics[4]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[5]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[6]._operation = Avalot::kMagicNothing; // No door. + _vm->_magics[4]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[5]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[6]._operation = AvalancheEngine::kMagicNothing; // No door. _vm->_background->draw(-1, -1, 18); // Wall, plus... _vm->_background->draw(-1, -1, 17); // ...torches. break; case 0x7: // wall with door and torches - _vm->_avalot->_magics[4]._operation = Avalot::kMagicBounce; // Sloping wall. - _vm->_avalot->_magics[5]._operation = Avalot::kMagicNothing; // Straight wall. - _vm->_avalot->_portals[6]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[4]._operation = AvalancheEngine::kMagicBounce; // Sloping wall. + _vm->_magics[5]._operation = AvalancheEngine::kMagicNothing; // Straight wall. + _vm->_portals[6]._operation = AvalancheEngine::kMagicSpecial; // Door. _vm->_background->draw(-1, -1, 18); // Wall, plus... _vm->_background->draw(-1, -1, 20); // ...door, and... _vm->_background->draw(-1, -1, 17); // ...torches. break; case 0xf: // straight-through corridor. - _vm->_avalot->_magics[4]._operation = Avalot::kMagicNothing; // Sloping wall. - _vm->_avalot->_magics[5]._operation = Avalot::kMagicSpecial; // Straight wall. - _vm->_avalot->_portals[6]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[4]._operation = AvalancheEngine::kMagicNothing; // Sloping wall. + _vm->_magics[5]._operation = AvalancheEngine::kMagicSpecial; // Straight wall. + _vm->_portals[6]._operation = AvalancheEngine::kMagicNothing; // Door. break; } switch ((here & 0xf00) >> 8) { // South case 0: // No connection. - _vm->_avalot->_magics[6]._operation = Avalot::kMagicBounce; - _vm->_avalot->_magics[11]._operation = Avalot::kMagicBounce; - _vm->_avalot->_magics[12]._operation = Avalot::kMagicBounce; + _vm->_magics[6]._operation = AvalancheEngine::kMagicBounce; + _vm->_magics[11]._operation = AvalancheEngine::kMagicBounce; + _vm->_magics[12]._operation = AvalancheEngine::kMagicBounce; break; case 0x1: _vm->_background->draw(-1, -1, 21); - if ((xy_uint16 == 2051) && (_vm->_avalot->_geidaFollows)) - _vm->_avalot->_magics[12]._operation = Avalot::kMagicExclaim; + if ((xy_uint16 == 2051) && (_vm->_geidaFollows)) + _vm->_magics[12]._operation = AvalancheEngine::kMagicExclaim; else - _vm->_avalot->_magics[12]._operation = Avalot::kMagicSpecial; // Right exit south. + _vm->_magics[12]._operation = AvalancheEngine::kMagicSpecial; // Right exit south. - _vm->_avalot->_magics[6]._operation = Avalot::kMagicBounce; - _vm->_avalot->_magics[11]._operation = Avalot::kMagicBounce; + _vm->_magics[6]._operation = AvalancheEngine::kMagicBounce; + _vm->_magics[11]._operation = AvalancheEngine::kMagicBounce; break; case 0x2: _vm->_background->draw(-1, -1, 22); - _vm->_avalot->_magics[6]._operation = Avalot::kMagicSpecial; // Middle exit south. - _vm->_avalot->_magics[11]._operation = Avalot::kMagicBounce; - _vm->_avalot->_magics[12]._operation = Avalot::kMagicBounce; + _vm->_magics[6]._operation = AvalancheEngine::kMagicSpecial; // Middle exit south. + _vm->_magics[11]._operation = AvalancheEngine::kMagicBounce; + _vm->_magics[12]._operation = AvalancheEngine::kMagicBounce; break; case 0x3: _vm->_background->draw(-1, -1, 23); - _vm->_avalot->_magics[11]._operation = Avalot::kMagicSpecial; // Left exit south. - _vm->_avalot->_magics[6]._operation = Avalot::kMagicBounce; - _vm->_avalot->_magics[12]._operation = Avalot::kMagicBounce; + _vm->_magics[11]._operation = AvalancheEngine::kMagicSpecial; // Left exit south. + _vm->_magics[6]._operation = AvalancheEngine::kMagicBounce; + _vm->_magics[12]._operation = AvalancheEngine::kMagicBounce; break; } switch ((here & 0xf000) >> 12) { // North case 0: // No connection - _vm->_avalot->_magics[0]._operation = Avalot::kMagicBounce; - _vm->_avalot->_portals[3]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[0]._operation = AvalancheEngine::kMagicBounce; + _vm->_portals[3]._operation = AvalancheEngine::kMagicNothing; // Door. break; // LEFT handles: #if 0 case 0x1: _vm->_celer->show_one(-1, -1, 4); - _vm->_avalot->magics[1].op = _vm->_avalot->bounces; // { Left exit north. } { Change magic number! } - _vm->_avalot->portals[12].op = _vm->_avalot->special; // { Door. } + _vm->magics[1].op = _vm->bounces; // { Left exit north. } { Change magic number! } + _vm->portals[12].op = _vm->special; // { Door. } break; #endif case 0x2: _vm->_background->draw(-1, -1, 3); - _vm->_avalot->_magics[0]._operation = Avalot::kMagicBounce; // Middle exit north. - _vm->_avalot->_portals[3]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[0]._operation = AvalancheEngine::kMagicBounce; // Middle exit north. + _vm->_portals[3]._operation = AvalancheEngine::kMagicSpecial; // Door. break; #if 0 case 0x3: _vm->_celer->show_one(-1, -1, 4); - _vm->_avalot->magics[1].op = _vm->_avalot->bounces; // { Right exit north. } { Change magic number! } - _vm->_avalot->portals[12].op = _vm->_avalot->special; // { Door. } + _vm->magics[1].op = _vm->bounces; // { Right exit north. } { Change magic number! } + _vm->portals[12].op = _vm->special; // { Door. } break; // RIGHT handles: case 0x4: _vm->_celer->show_one(-1, -1, 3); - _vm->_avalot->magics[1].op = _vm->_avalot->bounces; // { Left exit north. } { Change magic number! } - _vm->_avalot->portals[12].op = _vm->_avalot->special; // { Door. } + _vm->magics[1].op = _vm->bounces; // { Left exit north. } { Change magic number! } + _vm->portals[12].op = _vm->special; // { Door. } break; #endif case 0x5: _vm->_background->draw(-1, -1, 2); - _vm->_avalot->_magics[0]._operation = Avalot::kMagicBounce; // Middle exit north. - _vm->_avalot->_portals[3]._operation = Avalot::kMagicSpecial; // Door. + _vm->_magics[0]._operation = AvalancheEngine::kMagicBounce; // Middle exit north. + _vm->_portals[3]._operation = AvalancheEngine::kMagicSpecial; // Door. break; #if 0 case 0x6: _vm->_celer->show_one(-1, -1, 3); - _vm->_avalot->magics[1].op = _vm->_avalot->bounces; // { Right exit north. } - _vm->_avalot->portals[12].op = _vm->_avalot->special; // { Door. } + _vm->magics[1].op = _vm->bounces; // { Right exit north. } + _vm->portals[12].op = _vm->special; // { Door. } break; #endif // ARCHWAYS: @@ -646,25 +646,25 @@ void Animation::catacombMove(byte ped) { if (((here & 0xf000) >> 12) == 0x9) _vm->_background->draw(-1, -1, 31); - _vm->_avalot->_magics[0]._operation = Avalot::kMagicSpecial; // Middle arch north. - _vm->_avalot->_portals[3]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[0]._operation = AvalancheEngine::kMagicSpecial; // Middle arch north. + _vm->_portals[3]._operation = AvalancheEngine::kMagicNothing; // Door. break; // DECORATIONS: case 0xd: // No connection + WINDOW - _vm->_avalot->_magics[0]._operation = Avalot::kMagicBounce; - _vm->_avalot->_portals[3]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[0]._operation = AvalancheEngine::kMagicBounce; + _vm->_portals[3]._operation = AvalancheEngine::kMagicNothing; // Door. _vm->_background->draw(-1, -1, 13); break; case 0xe: // No connection + TORCH - _vm->_avalot->_magics[0]._operation = Avalot::kMagicBounce; - _vm->_avalot->_portals[3]._operation = Avalot::kMagicNothing; // Door. + _vm->_magics[0]._operation = AvalancheEngine::kMagicBounce; + _vm->_portals[3]._operation = AvalancheEngine::kMagicNothing; // Door. _vm->_background->draw(-1, -1, 7); break; // Recessed door: case 0xf: - _vm->_avalot->_magics[0]._operation = Avalot::kMagicNothing; // Door to Geida's room. + _vm->_magics[0]._operation = AvalancheEngine::kMagicNothing; // Door to Geida's room. _vm->_background->draw(-1, -1, 0); - _vm->_avalot->_portals[3]._operation = Avalot::kMagicSpecial; // Door. + _vm->_portals[3]._operation = AvalancheEngine::kMagicSpecial; // Door. break; } @@ -700,7 +700,7 @@ void Animation::catacombMove(byte ped) { break; // [1,1] : the other two. } - if ((_vm->_avalot->_geidaFollows) && (ped > 0)) { + if ((_vm->_geidaFollows) && (ped > 0)) { if (!_sprites[1]._quick) // If we don't already have her... _sprites[1].init(5, true, this); // ...Load Geida. appearPed(1, geidaPed(ped)); @@ -709,36 +709,36 @@ void Animation::catacombMove(byte ped) { } } -// This proc gets called whenever you touch a line defined as _vm->_avalot->special. +// This proc gets called whenever you touch a line defined as _vm->special. void Animation::dawnDelay() { _vm->_timer->addTimer(2, Timer::kProcDawnDelay, Timer::kReasonDawndelay); } void Animation::callSpecial(uint16 which) { switch (which) { - case 1: // _vm->_avalot->special 1: Room 22: top of stairs. + case 1: // _vm->special 1: Room 22: top of stairs. _vm->_background->draw(-1, -1, 0); - _vm->_avalot->_brummieStairs = 1; - _vm->_avalot->_magics[9]._operation = Avalot::kMagicNothing; + _vm->_brummieStairs = 1; + _vm->_magics[9]._operation = AvalancheEngine::kMagicNothing; _vm->_timer->addTimer(10, Timer::kProcStairs, Timer::kReasonBrummieStairs); stopWalking(); - _vm->_avalot->_userMovesAvvy = false; + _vm->_userMovesAvvy = false; break; - case 2: // _vm->_avalot->special 2: Room 22: bottom of stairs. - _vm->_avalot->_brummieStairs = 3; - _vm->_avalot->_magics[10]._operation = Avalot::kMagicNothing; - _vm->_avalot->_magics[11]._operation = Avalot::kMagicExclaim; - _vm->_avalot->_magics[11]._data = 5; - _vm->_avalot->_magics[3]._operation = Avalot::kMagicBounce; // Now works as planned! + case 2: // _vm->special 2: Room 22: bottom of stairs. + _vm->_brummieStairs = 3; + _vm->_magics[10]._operation = AvalancheEngine::kMagicNothing; + _vm->_magics[11]._operation = AvalancheEngine::kMagicExclaim; + _vm->_magics[11]._data = 5; + _vm->_magics[3]._operation = AvalancheEngine::kMagicBounce; // Now works as planned! stopWalking(); _vm->_dialogs->displayScrollChain('q', 26); - _vm->_avalot->_userMovesAvvy = true; + _vm->_userMovesAvvy = true; break; - case 3: // _vm->_avalot->special 3: Room 71: triggers dart. + case 3: // _vm->special 3: Room 71: triggers dart. _sprites[0].bounce(); // Must include that. - if (!_vm->_avalot->_arrowTriggered) { - _vm->_avalot->_arrowTriggered = true; + if (!_vm->_arrowTriggered) { + _vm->_arrowTriggered = true; appearPed(1, 3); // The dart starts at ped 4, and... _sprites[1].walkTo(4); // flies to ped 5 (- 1 for pascal to C conversion). _sprites[1]._facingDir = kDirUp; // Only face. @@ -752,80 +752,80 @@ void Animation::callSpecial(uint16 which) { } break; case 4: // This is the ghost room link. - _vm->_avalot->dusk(); + _vm->dusk(); _sprites[0].turn(kDirRight); // you'll see this after we get back from bootstrap _vm->_timer->addTimer(1, Timer::kProcGhostRoomPhew, Timer::kReasonGhostRoomPhew); //_vm->_enid->backToBootstrap(3); TODO: Replace it with proper ScummVM-friendly function(s)! Do not remove until then! break; case 5: - if (_vm->_avalot->_friarWillTieYouUp) { - // _vm->_avalot->special 5: Room 42: touched tree, and get tied up. - _vm->_avalot->_magics[4]._operation = Avalot::kMagicBounce; // Boundary effect is now working again. + if (_vm->_friarWillTieYouUp) { + // _vm->special 5: Room 42: touched tree, and get tied up. + _vm->_magics[4]._operation = AvalancheEngine::kMagicBounce; // Boundary effect is now working again. _vm->_dialogs->displayScrollChain('q', 35); _sprites[0].remove(); //tr[1].vanishifstill:=true; _vm->_background->draw(-1, -1, 1); _vm->_dialogs->displayScrollChain('q', 36); - _vm->_avalot->_tiedUp = true; - _vm->_avalot->_friarWillTieYouUp = false; + _vm->_tiedUp = true; + _vm->_friarWillTieYouUp = false; _sprites[1].walkTo(2); _sprites[1]._vanishIfStill = true; _sprites[1]._doCheck = true; // One of them must have Check_Me switched on. - _vm->_avalot->setRoom(kPeopleFriarTuck, kRoomDummy); // Not here, then. + _vm->setRoom(kPeopleFriarTuck, kRoomDummy); // Not here, then. _vm->_timer->addTimer(364, Timer::kProcHangAround, Timer::kReasonHangingAround); } break; - case 6: // _vm->_avalot->special 6: fall down oubliette. - _vm->_avalot->_userMovesAvvy = false; + case 6: // _vm->special 6: fall down oubliette. + _vm->_userMovesAvvy = false; _sprites[0]._moveX = 3; _sprites[0]._moveY = 0; _sprites[0]._facingDir = kDirRight; _vm->_timer->addTimer(1, Timer::kProcFallDownOubliette, Timer::kReasonFallingDownOubliette); break; - case 7: // _vm->_avalot->special 7: stop falling down oubliette. + case 7: // _vm->special 7: stop falling down oubliette. _sprites[0]._visible = false; - _vm->_avalot->_magics[9]._operation = Avalot::kMagicNothing; + _vm->_magics[9]._operation = AvalancheEngine::kMagicNothing; stopWalking(); _vm->_timer->loseTimer(Timer::kReasonFallingDownOubliette); - //_vm->_avalot->mblit(12, 80, 38, 160, 3, 0); - //_vm->_avalot->mblit(12, 80, 38, 160, 3, 1); + //_vm->mblit(12, 80, 38, 160, 3, 0); + //_vm->mblit(12, 80, 38, 160, 3, 1); _vm->_dialogs->displayText("Oh dear, you seem to be down the bottom of an oubliette."); _vm->_timer->addTimer(200, Timer::kProcMeetAvaroid, Timer::kReasonMeetingAvaroid); break; - case 8: // _vm->_avalot->special 8: leave du Lustie's room. - if ((_vm->_avalot->_geidaFollows) && (!_vm->_avalot->_lustieIsAsleep)) { + case 8: // _vm->special 8: leave du Lustie's room. + if ((_vm->_geidaFollows) && (!_vm->_lustieIsAsleep)) { _vm->_dialogs->displayScrollChain('q', 63); _sprites[1].turn(kDirDown); _sprites[1].stopWalk(); _sprites[1]._callEachStepFl = false; // Geida - _vm->_avalot->gameOver(); + _vm->gameOver(); } break; - case 9: // _vm->_avalot->special 9: lose Geida to Robin Hood... - if (!_vm->_avalot->_geidaFollows) + case 9: // _vm->special 9: lose Geida to Robin Hood... + if (!_vm->_geidaFollows) return; // DOESN'T COUNT: no Geida. _sprites[1]._callEachStepFl = false; // She no longer follows Avvy around. _sprites[1].walkTo(3); // She walks to somewhere... _sprites[0].remove(); // Lose Avvy. - _vm->_avalot->_userMovesAvvy = false; + _vm->_userMovesAvvy = false; _vm->_timer->addTimer(40, Timer::kProcRobinHoodAndGeida, Timer::kReasonRobinHoodAndGeida); break; - case 10: // _vm->_avalot->special 10: transfer north in catacombs. - if ((_vm->_avalot->_catacombX == 4) && (_vm->_avalot->_catacombY == 1)) { + case 10: // _vm->special 10: transfer north in catacombs. + if ((_vm->_catacombX == 4) && (_vm->_catacombY == 1)) { // Into Geida's room. - if (_vm->_avalot->_objects[kObjectKey - 1]) + if (_vm->_objects[kObjectKey - 1]) _vm->_dialogs->displayScrollChain('q', 62); else { _vm->_dialogs->displayScrollChain('q', 61); return; } } - _vm->_avalot->dusk(); - _vm->_avalot->_catacombY--; + _vm->dusk(); + _vm->_catacombY--; catacombMove(4); - if (_vm->_avalot->_room != kRoomCatacombs) + if (_vm->_room != kRoomCatacombs) return; - switch ((_vm->_avalot->kCatacombMap[_vm->_avalot->_catacombY - 1][_vm->_avalot->_catacombX - 1] & 0xf00) >> 8) { + switch ((_vm->kCatacombMap[_vm->_catacombY - 1][_vm->_catacombX - 1] & 0xf00) >> 8) { case 0x1: appearPed(0, 11); break; @@ -837,29 +837,29 @@ void Animation::callSpecial(uint16 which) { } dawnDelay(); break; - case 11: // _vm->_avalot->special 11: transfer east in catacombs. - _vm->_avalot->dusk(); - _vm->_avalot->_catacombX++; + case 11: // _vm->special 11: transfer east in catacombs. + _vm->dusk(); + _vm->_catacombX++; catacombMove(1); - if (_vm->_avalot->_room != kRoomCatacombs) + if (_vm->_room != kRoomCatacombs) return; appearPed(0, 0); dawnDelay(); break; - case 12: // _vm->_avalot->special 12: transfer south in catacombs. - _vm->_avalot->dusk(); - _vm->_avalot->_catacombY++; + case 12: // _vm->special 12: transfer south in catacombs. + _vm->dusk(); + _vm->_catacombY++; catacombMove(2); - if (_vm->_avalot->_room != kRoomCatacombs) + if (_vm->_room != kRoomCatacombs) return; appearPed(0, 1); dawnDelay(); break; - case 13: // _vm->_avalot->special 13: transfer west in catacombs. - _vm->_avalot->dusk(); - _vm->_avalot->_catacombX--; + case 13: // _vm->special 13: transfer west in catacombs. + _vm->dusk(); + _vm->_catacombX--; catacombMove(3); - if (_vm->_avalot->_room != kRoomCatacombs) + if (_vm->_room != kRoomCatacombs) return; appearPed(0, 2); dawnDelay(); @@ -872,7 +872,7 @@ void Animation::updateSpeed() { _sprites[0]._moveX = (_sprites[0]._moveX / 3) * _sprites[0]._speedX; - if (_sprites[0]._speedX == _vm->_avalot->kRun) { + if (_sprites[0]._speedX == _vm->kRun) { _vm->_graphics->_surface.drawLine(336, 199, 338, 199, kColorLightblue); _vm->_graphics->_surface.drawLine(371, 199, 373, 199, kColorYellow); } else { @@ -912,7 +912,7 @@ void Animation::setMoveSpeed(byte t, Direction dir) { void Animation::appearPed(byte sprNum, byte pedNum) { AnimationType *curSpr = &_sprites[sprNum]; - PedType *curPed = &_vm->_avalot->_peds[pedNum]; + PedType *curPed = &_vm->_peds[pedNum]; curSpr->appear(curPed->_x - curSpr->_info._xLength / 2, curPed->_y - curSpr->_info._yLength, curPed->_direction); setMoveSpeed(sprNum, curPed->_direction); } @@ -972,15 +972,15 @@ void Animation::arrowProcs(byte tripnum) { _vm->_dialogs->displayScrollChain('Q', 47); // Complaint! _sprites[tripnum].remove(); // Deallocate the arrow. - _vm->_avalot->gameOver(); + _vm->gameOver(); - _vm->_avalot->_userMovesAvvy = false; // Stop the user from moving him. + _vm->_userMovesAvvy = false; // Stop the user from moving him. _vm->_timer->addTimer(55, Timer::kProcNaughtyDuke, Timer::kReasonNaughtyDuke); } } else { // Arrow has hit the wall! _sprites[tripnum].remove(); // Deallocate the arrow. _vm->_background->draw(-1, -1, 2); // Show pic of arrow stuck into the door. - _vm->_avalot->_arrowInTheDoor = true; // So that we can pick it up. + _vm->_arrowInTheDoor = true; // So that we can pick it up. } } @@ -1114,7 +1114,7 @@ void Animation::drawSprites() { * @remarks Originally called 'trippancy_link' */ void Animation::animLink() { - if (_vm->_menu->isActive() | _vm->_avalot->_onToolbar | _vm->_avalot->_seeScroll) + if (_vm->_menu->isActive() | _vm->_onToolbar | _vm->_seeScroll) return; for (int16 i = 0; i < kSpriteNumbMax; i++) { if (_sprites[i]._quick && _sprites[i]._visible) @@ -1158,7 +1158,7 @@ void Animation::animLink() { void Animation::stopWalking() { _sprites[0].stopWalk(); _direction = kDirStopped; - if (_vm->_avalot->_alive) + if (_vm->_alive) _sprites[0]._stepNum = 1; } @@ -1167,39 +1167,39 @@ void Animation::stopWalking() { * @remarks Originally called 'hide_in_the_cupboard' */ void Animation::hideInCupboard() { - if (_vm->_avalot->_avvysInTheCupboard) { + if (_vm->_avvysInTheCupboard) { if (_vm->_parser->_wearing == kObjectDummy) { Common::String tmpStr = Common::String::format("%cAVVY!%cGet dressed first!", Dialogs::kControlItalic, Dialogs::kControlRoman); _vm->_dialogs->displayText(tmpStr); } else { _sprites[0]._visible = true; - _vm->_avalot->_userMovesAvvy = true; + _vm->_userMovesAvvy = true; appearPed(0, 2); // Walk out of the cupboard. _vm->_dialogs->displayText("You leave the cupboard. Nice to be out of there!"); - _vm->_avalot->_avvysInTheCupboard = false; + _vm->_avvysInTheCupboard = false; _vm->_sequence->startCupboardSeq(); } } else { // Not hiding in the cupboard _sprites[0]._visible = false; - _vm->_avalot->_userMovesAvvy = false; + _vm->_userMovesAvvy = false; Common::String tmpStr = Common::String::format("You walk into the room...%cIt seems to be an empty, " \ "but dusty, cupboard. Hmmmm... you leave the door slightly open to avoid suffocation.", Dialogs::kControlParagraph); _vm->_dialogs->displayText(tmpStr); - _vm->_avalot->_avvysInTheCupboard = true; + _vm->_avvysInTheCupboard = true; _vm->_background->draw(-1, -1, 7); } } bool Animation::inField(byte which) { - FieldType *curField = &_vm->_avalot->_fields[which]; + FieldType *curField = &_vm->_fields[which]; int16 yy = _sprites[0]._y + _sprites[0]._info._yLength; return (_sprites[0]._x >= curField->_x1) && (_sprites[0]._x <= curField->_x2) && (yy >= curField->_y1) && (yy <= curField->_y2); } bool Animation::nearDoor() { - if (_vm->_avalot->_fieldNum < 8) { + if (_vm->_fieldNum < 8) { // there ARE no doors here! return false; } @@ -1207,8 +1207,8 @@ bool Animation::nearDoor() { int16 ux = _sprites[0]._x; int16 uy = _sprites[0]._y + _sprites[0]._info._yLength; - for (int i = 8; i < _vm->_avalot->_fieldNum; i++) { - FieldType *curField = &_vm->_avalot->_fields[i]; + for (int i = 8; i < _vm->_fieldNum; i++) { + FieldType *curField = &_vm->_fields[i]; if ((ux >= curField->_x1) && (ux <= curField->_x2) && (uy >= curField->_y1) && (uy <= curField->_y2)) return true; } @@ -1217,7 +1217,7 @@ bool Animation::nearDoor() { } void Animation::handleMoveKey(const Common::Event &event) { - if (!_vm->_avalot->_userMovesAvvy) + if (!_vm->_userMovesAvvy) return; if (_vm->_menu->_activeMenuItem._activeNow) |