mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
MADS: Implement scene 607
This commit is contained in:
@@ -235,7 +235,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
|
||||
case 605: // viewport closeup
|
||||
return new Scene605(vm);
|
||||
case 607: // outside Abdul's garage
|
||||
return new DummyScene(vm); // TODO
|
||||
return new Scene607(vm);
|
||||
case 608: // inside Abdul's garage
|
||||
return new DummyScene(vm); // TODO
|
||||
case 609: // outside Buckluster video store
|
||||
|
||||
@@ -820,7 +820,7 @@ void Scene604::handleBombActions() {
|
||||
|
||||
case 1:
|
||||
_globals._sequenceIndexes[6] = _scene->_sequences.startCycle(_globals._spriteIndexes[6], false, -1);
|
||||
_timebombHotspotId = _scene->_dynamicHotspots.add (0x171, VERB_WALKTO, _globals._sequenceIndexes[6], Common::Rect(0, 0, 0, 0));
|
||||
_timebombHotspotId = _scene->_dynamicHotspots.add(0x171, VERB_WALKTO, _globals._sequenceIndexes[6], Common::Rect(0, 0, 0, 0));
|
||||
_scene->_dynamicHotspots.setPosition(_timebombHotspotId, Common::Point(166, 118), FACING_NORTHEAST);
|
||||
_game._objects.setRoom(OBJ_TIMEBOMB, _scene->_currentSceneId);
|
||||
break;
|
||||
@@ -985,5 +985,438 @@ void Scene605::actions() {
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
void Scene607::setup() {
|
||||
setPlayerSpritesPrefix();
|
||||
setAAName();
|
||||
_scene->addActiveVocab(0x471);
|
||||
_scene->addActiveVocab(VERB_WALKTO);
|
||||
}
|
||||
|
||||
void Scene607::enter() {
|
||||
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('c', 0));
|
||||
_globals._spriteIndexes[3] = _scene->_sprites.addSprites("*RXCD_3");
|
||||
|
||||
if (!_game._visitedScenes._sceneRevisited && (_scene->_priorSceneId != 608))
|
||||
_globals[kDogStatus] = 1;
|
||||
|
||||
if ((_scene->_priorSceneId == 608) && (_globals[kDogStatus] < 3))
|
||||
_globals[kDogStatus] = 3;
|
||||
|
||||
_animationActive = 0;
|
||||
|
||||
if ((_globals[kDogStatus] == 1) && (_game._difficulty != DIFFICULTY_EASY)) {
|
||||
_globals._spriteIndexes[4] = _scene->_sprites.addSprites(formAnimName('g', 3));
|
||||
_globals._spriteIndexes[5] = _scene->_sprites.addSprites(formAnimName('g', 7));
|
||||
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('g', 0));
|
||||
|
||||
_globals._sequenceIndexes[1] = _scene->_sequences.startCycle(_globals._spriteIndexes[1], false, 1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[1], 6);
|
||||
_dogBarking = false;
|
||||
_dogLoop = false;
|
||||
_shopAvailable = false;
|
||||
_dogEatsRex = false;
|
||||
_dogTimer = 0;
|
||||
} else
|
||||
_scene->_hotspots.activate(0x471, false);
|
||||
|
||||
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, -2);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 4);
|
||||
|
||||
if (_scene->_priorSceneId == 608) {
|
||||
_game._player._playerPos = Common::Point(297, 50);
|
||||
_game._player._facing = FACING_SOUTHEAST;
|
||||
} else if (_scene->_priorSceneId != -2) {
|
||||
_game._player._playerPos = Common::Point(40, 104);
|
||||
_game._player._facing = FACING_SOUTHEAST;
|
||||
_game._player._visible = false;
|
||||
_game._player._stepEnabled = false;
|
||||
_scene->_sequences.remove(_globals._sequenceIndexes[2]);
|
||||
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, -1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 4);
|
||||
_scene->loadAnimation(formAnimName('R', 1), 80);
|
||||
} else if (_globals[kDogStatus] == 2) {
|
||||
_globals._spriteIndexes[4] = _scene->_sprites.addSprites(formAnimName('g', 3));
|
||||
_globals._spriteIndexes[5] = _scene->_sprites.addSprites(formAnimName('g', 7));
|
||||
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('g', 0));
|
||||
}
|
||||
|
||||
sceneEntrySound();
|
||||
|
||||
if (_scene->_roomChanged)
|
||||
_game._objects.addToInventory(OBJ_BONES);
|
||||
|
||||
_vm->_palette->setEntry(252, 63, 44, 30);
|
||||
_vm->_palette->setEntry(253, 63, 20, 22);
|
||||
_game.loadQuoteSet(0x2F8, 0x2F7, 0x2F6, 0x2F9, 0x2FA, 0);
|
||||
}
|
||||
|
||||
void Scene607::step() {
|
||||
if (_globals[kDogStatus] == 2) {
|
||||
int32 diff = _scene->_frameStartTime - _lastFrameTime;
|
||||
if ((diff >= 0) && (diff <= 4))
|
||||
_dogTimer += diff;
|
||||
else
|
||||
_dogTimer++;
|
||||
|
||||
_lastFrameTime = _scene->_frameStartTime;
|
||||
}
|
||||
|
||||
if ((_dogTimer >= 480) && !_dogLoop && !_shopAvailable && (_globals[kDogStatus] == 2) && !_game._player._special) {
|
||||
_vm->_sound->command(14);
|
||||
_dogLoop = true;
|
||||
_globals._sequenceIndexes[5] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[5], false, 10, 1, 0, 0);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[5], 1);
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[5], SEQUENCE_TRIGGER_EXPIRE, 0, 91);
|
||||
_dogLoop = false;
|
||||
_dogTimer = 0;
|
||||
}
|
||||
|
||||
if (_game._trigger == 91) {
|
||||
_globals._sequenceIndexes[1] = _scene->_sequences.startCycle(_globals._spriteIndexes[1], false, 1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[1], 6);
|
||||
_dogBarking = false;
|
||||
_globals[kDogStatus] = 1;
|
||||
_scene->_hotspots.activate(0x471, true);
|
||||
}
|
||||
|
||||
if (!_dogEatsRex && (_game._difficulty != DIFFICULTY_EASY) && !_animationActive && (_globals[kDogStatus] == 1)
|
||||
&& !_dogBarking && (_vm->getRandomNumber(1, 50) == 10)) {
|
||||
_dogBarking = true;
|
||||
_scene->_sequences.remove(_globals._sequenceIndexes[1]);
|
||||
_globals._sequenceIndexes[1] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[1], false, 5, 8, 0, 0);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[1], 6);
|
||||
_scene->_kernelMessages.reset();
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[1], SEQUENCE_TRIGGER_SPRITE, 2, 100);
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[1], SEQUENCE_TRIGGER_EXPIRE, 0, 70);
|
||||
_counter = 0;
|
||||
}
|
||||
|
||||
if ((_game._trigger == 70) && !_dogEatsRex && (_globals[kDogStatus] == 1) && !_animationActive) {
|
||||
int syncIdx = _globals._sequenceIndexes[1];
|
||||
_globals._sequenceIndexes[1] = _scene->_sequences.startCycle(_globals._spriteIndexes[1], false, 1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[1], 6);
|
||||
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[1], syncIdx);
|
||||
_scene->_kernelMessages.reset();
|
||||
_dogBarking = false;
|
||||
}
|
||||
|
||||
if (_game._trigger == 100) {
|
||||
_counter++;
|
||||
_vm->_sound->command(12);
|
||||
|
||||
if ((_counter >= 1) && (_counter <= 4)) {
|
||||
Common::Point pos(0, 0);
|
||||
switch (_counter) {
|
||||
case 1:
|
||||
pos = Common::Point(237, 5);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
pos = Common::Point(270, 15);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
pos = Common::Point(237, 25);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
pos = Common::Point(270, 36);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
_scene->_kernelMessages.add(pos, 0xFDFC, 0, 0, 120, _game.getQuote(0x2F9));
|
||||
}
|
||||
}
|
||||
|
||||
if (_game._player._moving && (_game._difficulty != DIFFICULTY_EASY) && !_shopAvailable && (_globals[kDogStatus] == 1) && (_scene->_rails.getNext() > 0)) {
|
||||
_game._player.cancelCommand();
|
||||
_game._player.startWalking(Common::Point(268, 72), FACING_NORTHEAST);
|
||||
_scene->_rails.resetNext();
|
||||
}
|
||||
|
||||
if ((_game._player._special > 0) && (_game._difficulty != DIFFICULTY_EASY) && (_globals[kDogStatus] == 1) && _game._player._stepEnabled)
|
||||
_game._player._stepEnabled = false;
|
||||
|
||||
if ((_game._difficulty != DIFFICULTY_EASY) && (_globals[kDogStatus] == 1) && (_game._player._playerPos == Common::Point(268, 72))
|
||||
&& (_game._trigger || !_dogEatsRex)) {
|
||||
_dogEatsRex = true;
|
||||
switch (_game._trigger) {
|
||||
case 91:
|
||||
case 0:
|
||||
_animationActive = 1;
|
||||
_game._player._visible = false;
|
||||
_scene->_sequences.remove(_globals._sequenceIndexes[1]);
|
||||
_globals._sequenceIndexes[4] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[4], false, 10, 1, 0, 0);
|
||||
_scene->_sequences.setAnimRange(_globals._sequenceIndexes[4], -1, 7);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[4], 1);
|
||||
_scene->_kernelMessages.reset();
|
||||
_scene->_kernelMessages.add(Common::Point(0, 0), 0x1110, 34, 0, 120, _game.getQuote(0x2FA));
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[4], SEQUENCE_TRIGGER_EXPIRE, 0, 60);
|
||||
_scene->_sequences.addTimer(10, 64);
|
||||
break;
|
||||
|
||||
case 60: {
|
||||
int syncIdx = _globals._sequenceIndexes[4];
|
||||
_globals._sequenceIndexes[4] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[4], false, 5, 1, 0, 0);
|
||||
_scene->_sequences.setAnimRange(_globals._sequenceIndexes[4], 8, 45);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[4], 1);
|
||||
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[4], syncIdx);
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[4], SEQUENCE_TRIGGER_EXPIRE, 0, 61);
|
||||
}
|
||||
break;
|
||||
|
||||
case 61: {
|
||||
int syncIdx = _globals._sequenceIndexes[4];
|
||||
_globals._sequenceIndexes[4] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[4], false, 15, 3, 0, 0);
|
||||
_scene->_sequences.setAnimRange(_globals._sequenceIndexes[4], 46, -2);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[4], 1);
|
||||
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[4], syncIdx);
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[4], SEQUENCE_TRIGGER_EXPIRE, 0, 62);
|
||||
}
|
||||
break;
|
||||
|
||||
case 62: {
|
||||
int syncIdx = _globals._sequenceIndexes[4];
|
||||
_animationActive = 2;
|
||||
_globals._sequenceIndexes[4] = _scene->_sequences.startCycle(_globals._spriteIndexes[4], false, -2);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[4], 1);
|
||||
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[4], syncIdx);
|
||||
_scene->_sequences.addTimer(60, 63);
|
||||
}
|
||||
break;
|
||||
|
||||
case 63:
|
||||
_vm->_dialogs->show(60729);
|
||||
_animationActive = 0;
|
||||
_dogEatsRex = false;
|
||||
_scene->_reloadSceneFlag = true;
|
||||
_game._player._stepEnabled = true;
|
||||
break;
|
||||
|
||||
case 64:
|
||||
if (_dogEatsRex && (_animationActive == 1)) {
|
||||
_vm->_sound->command(12);
|
||||
_scene->_sequences.addTimer(10, 64);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (_game._trigger) {
|
||||
case 80:
|
||||
_game._player._visible = true;
|
||||
_game._player._priorTimer = _scene->_activeAnimation->getNextFrameTimer() - _game._player._ticksAmount;
|
||||
_scene->_sequences.addTimer(6, 81);
|
||||
break;
|
||||
|
||||
case 81:
|
||||
_scene->_sequences.remove(_globals._sequenceIndexes[2]);
|
||||
_globals._sequenceIndexes[2] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[2], false, 6, 1, 0, 0);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 4);
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[2], SEQUENCE_TRIGGER_EXPIRE, 0, 82);
|
||||
break;
|
||||
|
||||
case 82:
|
||||
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, -2);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 4);
|
||||
_game._player._stepEnabled = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Scene607::handleThrowingBone() {
|
||||
_animationActive = -1;
|
||||
switch (_game._trigger) {
|
||||
case 0:
|
||||
_game._player._stepEnabled = false;
|
||||
_scene->_sequences.remove(_globals._sequenceIndexes[1]);
|
||||
_game._player._visible = false;
|
||||
_scene->loadAnimation(formAnimName('D', _animationMode), 1);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
_game._player._visible = true;
|
||||
_game._player._priorTimer = _scene->_activeAnimation->getNextFrameTimer() - _game._player._ticksAmount;
|
||||
|
||||
if (_animationMode != 1)
|
||||
_scene->_hotspots.activate(0x471, false);
|
||||
else {
|
||||
_globals._sequenceIndexes[1] = _scene->_sequences.startCycle(_globals._spriteIndexes[1], false, 1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[1], 6);
|
||||
}
|
||||
|
||||
_dogBarking = false;
|
||||
if (_game._objects.isInInventory(OBJ_BONE)) {
|
||||
_game._objects.setRoom(OBJ_BONE, NOWHERE);
|
||||
if (_animationMode == 1)
|
||||
_globals[kBone202Status] = 0;
|
||||
} else {
|
||||
_game._objects.setRoom(OBJ_BONES, NOWHERE);
|
||||
_game._objects.addToInventory(OBJ_BONE);
|
||||
}
|
||||
|
||||
_scene->_sequences.addTimer(60, 2);
|
||||
break;
|
||||
|
||||
case 2: {
|
||||
int quoteId = 0x2F8;
|
||||
if (_animationMode == 1)
|
||||
quoteId = 0x2F7;
|
||||
|
||||
if (_animationMode == 2) {
|
||||
_globals[kDogStatus] = 2;
|
||||
_dogTimer = 0;
|
||||
}
|
||||
|
||||
_scene->_kernelMessages.reset();
|
||||
_scene->_kernelMessages.add(Common::Point(0, 0), 0x1110, 34, 0, 120, _game.getQuote(quoteId));
|
||||
_scene->_sequences.addTimer(60, 3);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
_game._player._stepEnabled = true;
|
||||
_animationActive = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Scene607::preActions() {
|
||||
if (_action.isAction(VERB_TALKTO, 0x471))
|
||||
_game._player._needToWalk = false;
|
||||
|
||||
if (_action.isAction(0x18B, 0x478) && (_globals[kDogStatus] == 2) && (_game._difficulty != DIFFICULTY_EASY)) {
|
||||
_shopAvailable = true;
|
||||
_dogTimer = 0;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_THROW, 0x2D, 0x471) || _action.isAction(VERB_THROW, 0x2C, 0x471))
|
||||
_game._player.walk(Common::Point(193, 100), FACING_NORTHEAST);
|
||||
|
||||
if (_action.isAction(VERB_THROW, 0x2D, 0x2C3) || _action.isAction(VERB_THROW, 0x2C, 0x2C3))
|
||||
_game._player.walk(Common::Point(201, 107), FACING_SOUTHEAST);
|
||||
}
|
||||
|
||||
void Scene607::actions() {
|
||||
if (_action.isAction(0x18B, 0x478))
|
||||
_scene->_nextSceneId = 608;
|
||||
else if (_action.isAction(0x325, 0x324)) {
|
||||
switch (_game._trigger) {
|
||||
case 0:
|
||||
_game._player._stepEnabled = false;
|
||||
_scene->_sequences.remove(_globals._sequenceIndexes[2]);
|
||||
_globals._sequenceIndexes[2] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[2], false, 6, 1, 0, 0);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 4);
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[2], SEQUENCE_TRIGGER_EXPIRE, 0, 1);
|
||||
break;
|
||||
|
||||
case 1: {
|
||||
int syncIdx = _globals._sequenceIndexes[2];
|
||||
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, -1);
|
||||
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[2], syncIdx);
|
||||
_scene->_sequences.addTimer(6, 2);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
_game._player._visible = false;
|
||||
_globals._sequenceIndexes[3] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[3], false, 10, 1, 0, 0);
|
||||
_scene->_sequences.setMsgLayout(_globals._sequenceIndexes[3]);
|
||||
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[3], SEQUENCE_TRIGGER_EXPIRE, 0, 3);
|
||||
break;
|
||||
|
||||
case 3: {
|
||||
int syncIdx = _globals._sequenceIndexes[3];
|
||||
_globals._sequenceIndexes[3] = _scene->_sequences.startCycle(_globals._spriteIndexes[3], false, -2);
|
||||
_scene->_sequences.setMsgLayout(_globals._sequenceIndexes[3]);
|
||||
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[3], syncIdx);
|
||||
_scene->_nextSceneId = 504;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if (_action.isAction(VERB_THROW, 0x2D, 0x471) || _action.isAction(VERB_THROW, 0x2C, 0x471)) {
|
||||
if (_game._difficulty != DIFFICULTY_EASY) {
|
||||
_animationMode = 1;
|
||||
_scene->_kernelMessages.reset();
|
||||
if (_game._trigger == 0)
|
||||
_scene->_kernelMessages.add(Common::Point(0, 0), 0x1110, 34, 0, 120, _game.getQuote(0x2F6));
|
||||
|
||||
handleThrowingBone();
|
||||
}
|
||||
} else if ((_action.isAction(VERB_THROW, 0x2D, 0x2C3) || _action.isAction(VERB_THROW, 0x2C, 0x2C3)) && (_game._difficulty != DIFFICULTY_EASY)
|
||||
&& ((_globals[kDogStatus] == 1) || _game._trigger)) {
|
||||
_animationMode = 2;
|
||||
if (_game._trigger == 0) {
|
||||
_scene->_kernelMessages.reset();
|
||||
_scene->_kernelMessages.add(Common::Point(0, 0), 0x1110, 34, 0, 120, _game.getQuote(0x2F6));
|
||||
}
|
||||
handleThrowingBone();
|
||||
} else if (_action._lookFlag || _action.isAction(VERB_LOOK, 0x31E)) {
|
||||
if ((_globals[kDogStatus] == 1) || (_game._difficulty == DIFFICULTY_EASY))
|
||||
_vm->_dialogs->show(60710);
|
||||
else
|
||||
_vm->_dialogs->show(60711);
|
||||
} else if (_action.isAction(VERB_LOOK, 0x18D))
|
||||
_vm->_dialogs->show(60712);
|
||||
else if (_action.isAction(VERB_LOOK, 0x2C3))
|
||||
_vm->_dialogs->show(60713);
|
||||
else if (_action.isAction(VERB_LOOK, 0x324))
|
||||
_vm->_dialogs->show(60714);
|
||||
else if (_action.isAction(VERB_LOOK, 0x3FB))
|
||||
_vm->_dialogs->show(60715);
|
||||
else if (_action.isAction(VERB_LOOK, 0x1E6) && (_globals[kDogStatus] == 1))
|
||||
_vm->_dialogs->show(60716);
|
||||
else if (_action.isAction(VERB_LOOK, 0x244))
|
||||
_vm->_dialogs->show(60717);
|
||||
else if (_action.isAction(VERB_LOOK, 0x3FD))
|
||||
_vm->_dialogs->show(60718);
|
||||
else if (_action.isAction(VERB_LOOK, 0x3FF))
|
||||
_vm->_dialogs->show(60719);
|
||||
else if (_action.isAction(VERB_LOOK, 0x31D))
|
||||
_vm->_dialogs->show(60720);
|
||||
else if (_action.isAction(VERB_LOOK, 0x3F9))
|
||||
_vm->_dialogs->show(60721);
|
||||
else if (_action.isAction(VERB_LOOK, 0x3FA)) {
|
||||
if (_globals[kDogStatus] == 1)
|
||||
_vm->_dialogs->show(60723);
|
||||
else
|
||||
_vm->_dialogs->show(60722);
|
||||
} else if (_action.isAction(VERB_LOOK, 0x478)) {
|
||||
if (_globals[kDogStatus] == 1)
|
||||
_vm->_dialogs->show(60725);
|
||||
else
|
||||
_vm->_dialogs->show(60724);
|
||||
} else if (_action.isAction(VERB_LOOK, 0x471))
|
||||
_vm->_dialogs->show(60726);
|
||||
else if (_action.isAction(VERB_TALKTO, 0x471))
|
||||
_vm->_dialogs->show(60727);
|
||||
else if (_action.isAction(VERB_LOOK, 0x31F))
|
||||
_vm->_dialogs->show(60728);
|
||||
else if (_action.isAction(0x1AD, 0x31E))
|
||||
_vm->_dialogs->show(60730);
|
||||
else if (_action.isAction(0x3FF) && (_action.isAction(VERB_OPEN) || _action.isAction(VERB_PUSH) || _action.isAction(VERB_PULL)))
|
||||
_vm->_dialogs->show(60731);
|
||||
else
|
||||
return;
|
||||
|
||||
_action._inProgress = false;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
} // End of namespace Nebular
|
||||
} // End of namespace MADS
|
||||
|
||||
@@ -133,6 +133,33 @@ public:
|
||||
virtual void actions();
|
||||
virtual void postActions() {};
|
||||
};
|
||||
|
||||
class Scene607: public Scene6xx{
|
||||
private:
|
||||
uint32 _dogTimer;
|
||||
uint32 _lastFrameTime;
|
||||
|
||||
bool _dogLoop;
|
||||
bool _dogEatsRex;
|
||||
bool _dogBarking;
|
||||
bool _shopAvailable;
|
||||
|
||||
int _animationMode;
|
||||
int _animationActive;
|
||||
int _counter;
|
||||
|
||||
void handleThrowingBone();
|
||||
|
||||
public:
|
||||
Scene607(MADSEngine *vm) : Scene6xx(vm) {}
|
||||
|
||||
virtual void setup();
|
||||
virtual void enter();
|
||||
virtual void step();
|
||||
virtual void preActions();
|
||||
virtual void actions();
|
||||
virtual void postActions() {};
|
||||
};
|
||||
} // End of namespace Nebular
|
||||
} // End of namespace MADS
|
||||
|
||||
|
||||
Reference in New Issue
Block a user