aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/animation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/avalanche/animation.cpp')
-rw-r--r--engines/avalanche/animation.cpp116
1 files changed, 7 insertions, 109 deletions
diff --git a/engines/avalanche/animation.cpp b/engines/avalanche/animation.cpp
index 1172b1cc64..92ebb4bac4 100644
--- a/engines/avalanche/animation.cpp
+++ b/engines/avalanche/animation.cpp
@@ -210,7 +210,7 @@ void AnimationType::walk() {
bounce();
break;
case Avalot::kMagicTransport:
- _anim->flipRoom(magic->_data >> 8, magic->_data & 0xff);
+ _anim->_vm->_avalot->flipRoom((Room)(magic->_data >> 8), magic->_data & 0xff);
break;
case Avalot::kMagicUnfinished: {
bounce();
@@ -222,7 +222,7 @@ void AnimationType::walk() {
_anim->callSpecial(magic->_data);
break;
case Avalot::kMagicOpenDoor:
- _anim->openDoor(magic->_data >> 8, magic->_data & 0xff, magicColor);
+ _anim->_vm->_avalot->openDoor((Room)(magic->_data >> 8), magic->_data & 0xff, magicColor);
break;
}
}
@@ -418,20 +418,20 @@ void Animation::catacombMove(byte ped) {
switch (xy_uint16) {
case 1801: // Exit catacombs
- flipRoom(kRoomLustiesRoom, 4);
+ _vm->_avalot->flipRoom(kRoomLustiesRoom, 4);
_vm->_dialogs->displayText("Phew! Nice to be out of there!");
return;
case 1033:{ // Oubliette
- flipRoom(kRoomOubliette, 1);
+ _vm->_avalot->flipRoom(kRoomOubliette, 1);
Common::String tmpStr = Common::String::format("Oh, NO!%c1%c", Dialogs::kControlRegister, Dialogs::kControlSpeechBubble);
_vm->_dialogs->displayText(tmpStr);
}
return;
case 4:
- flipRoom(kRoomGeidas, 1);
+ _vm->_avalot->flipRoom(kRoomGeidas, 1);
return;
case 2307:
- flipRoom(kRoomLusties, 5);
+ _vm->_avalot->flipRoom(kRoomLusties, 5);
_vm->_dialogs->displayText("Oh no... here we go again...");
_vm->_avalot->_userMovesAvvy = false;
_sprites[0]._moveY = 1;
@@ -771,7 +771,7 @@ void Animation::callSpecial(uint16 which) {
_sprites[1].walkTo(2);
_sprites[1]._vanishIfStill = true;
_sprites[1]._doCheck = true; // One of them must have Check_Me switched on.
- _vm->_avalot->_whereIs[kPeopleFriarTuck - 150] = kRoomDummy; // Not here, then.
+ _vm->_avalot->setRoom(kPeopleFriarTuck, kRoomDummy); // Not here, then.
_vm->_timer->addTimer(364, Timer::kProcHangAround, Timer::kReasonHangingAround);
}
break;
@@ -867,67 +867,6 @@ void Animation::callSpecial(uint16 which) {
}
}
-/**
- * Open the Door.
- * This slides the door open. The data really ought to be saved in
- * the Also file, and will be next time. However, for now, they're
- * here.
- * @remarks Originally called 'open_the_door'
- */
-void Animation::openDoor(byte whither, byte ped, byte magicnum) {
- switch (_vm->_avalot->_room) {
- case kRoomOutsideYours:
- case kRoomOutsideNottsPub:
- case kRoomOutsideDucks:
- _vm->_sequence->firstShow(1);
- _vm->_sequence->thenShow(2);
- _vm->_sequence->thenShow(3);
- break;
- case kRoomInsideCardiffCastle:
- _vm->_sequence->firstShow(1);
- _vm->_sequence->thenShow(5);
- break;
- case kRoomAvvysGarden:
- case kRoomEntranceHall:
- case kRoomInsideAbbey:
- case kRoomYourHall:
- _vm->_sequence->firstShow(1);
- _vm->_sequence->thenShow(2);
- break;
- case kRoomMusicRoom:
- case kRoomOutsideArgentPub:
- _vm->_sequence->firstShow(5);
- _vm->_sequence->thenShow(6);
- break;
- case kRoomLusties:
- switch (magicnum) {
- case 14:
- if (_vm->_avalot->_avvysInTheCupboard) {
- hideInCupboard();
- _vm->_sequence->firstShow(8);
- _vm->_sequence->thenShow(7);
- _vm->_sequence->startToClose();
- return;
- } else {
- appearPed(0, 5);
- _sprites[0]._facingDir = kDirRight; // added by TT 12/3/1995
- _vm->_sequence->firstShow(8);
- _vm->_sequence->thenShow(9);
- }
- break;
- case 12:
- _vm->_sequence->firstShow(4);
- _vm->_sequence->thenShow(5);
- _vm->_sequence->thenShow(6);
- break;
- }
- break;
- }
-
- _vm->_sequence->thenFlip(whither, ped);
- _vm->_sequence->startToOpen();
-}
-
void Animation::updateSpeed() {
// Given that you've just changed the speed in triptype._speedX, this adjusts _moveX.
@@ -1254,47 +1193,6 @@ void Animation::hideInCupboard() {
}
}
-void Animation::flipRoom(byte room, byte ped) {
- assert((ped > 0) && (ped < 15));
- if (!_vm->_avalot->_alive) {
- // You can't leave the room if you're dead.
- _sprites[0]._moveX = 0;
- _sprites[0]._moveY = 0; // Stop him from moving.
- return;
- }
-
- if ((room == kRoomDummy) && (_vm->_avalot->_room == kRoomLusties)) {
- hideInCupboard();
- return;
- }
-
- if ((_vm->_avalot->_jumpStatus > 0) && (_vm->_avalot->_room == kRoomInsideCardiffCastle)) {
- // You can't *jump* out of Cardiff Castle!
- _sprites[0]._moveX = 0;
- return;
- }
-
- _vm->_avalot->exitRoom(_vm->_avalot->_room);
- _vm->_avalot->dusk();
-
- for (int16 i = 1; i < kSpriteNumbMax; i++) {
- if (_sprites[i]._quick)
- _sprites[i].remove();
- } // Deallocate sprite
-
- if (_vm->_avalot->_room == kRoomLustiesRoom)
- _vm->_avalot->_enterCatacombsFromLustiesRoom = true;
-
- _vm->_avalot->enterRoom(room, ped);
- appearPed(0, ped - 1);
- _vm->_avalot->_enterCatacombsFromLustiesRoom = false;
- _oldDirection = _direction;
- _direction = _sprites[0]._facingDir;
- _vm->_avalot->drawDirection();
-
- _vm->_avalot->dawn();
-}
-
bool Animation::inField(byte which) {
FieldType *curField = &_vm->_avalot->_fields[which];
int16 yy = _sprites[0]._y + _sprites[0]._info._yLength;