aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/animation.cpp
diff options
context:
space:
mode:
authorStrangerke2013-09-27 01:34:38 +0200
committerStrangerke2013-09-27 01:34:38 +0200
commit08883a807f8c568109430910836aeee6b96b64f2 (patch)
treeb8af644d822bf28e4ee1ed97f297eb030a5cfbf7 /engines/avalanche/animation.cpp
parente166f6fc44be9322cd502520af0cd1daa6b07813 (diff)
downloadscummvm-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.cpp378
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)