mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-13 15:40:57 +00:00
MADS: Dragon: Implement scene 102
This commit is contained in:
parent
0f27b68d57
commit
796b04d3cd
@ -45,7 +45,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
|
||||
case 101: // king's bedroom
|
||||
return new Scene101(vm);
|
||||
case 102: // queen's bedroom
|
||||
return new DummyScene(vm); // TODO
|
||||
return new Scene102(vm);
|
||||
case 103: // outside king's bedroom
|
||||
return new DummyScene(vm); // TODO
|
||||
case 104: // fireplace / bookshelf
|
||||
|
@ -33,24 +33,34 @@ namespace MADS {
|
||||
|
||||
namespace Dragonsphere {
|
||||
|
||||
enum Verb {
|
||||
VERB_LOOK = 0x3,
|
||||
VERB_TAKE = 0x4,
|
||||
VERB_PUSH = 0x5,
|
||||
VERB_OPEN = 0x6,
|
||||
VERB_PUT = 0x7,
|
||||
VERB_TALK_TO = 0x8,
|
||||
VERB_GIVE = 0x9,
|
||||
VERB_PULL = 0xA,
|
||||
VERB_CLOSE = 0xB,
|
||||
VERB_THROW = 0xC,
|
||||
VERB_WALK_TO = 0xD,
|
||||
VERB_WALK_ACROSS = 0x11,
|
||||
VERB_WALK_BEHIND = 0x1C,
|
||||
VERB_LOOK_AT = 0x1E,
|
||||
VERB_WALK_THROUGH = 0x25,
|
||||
VERB_WALK_INTO = 0x27,
|
||||
VERB_WALK_DOWN = 0xA9,
|
||||
VERB_WALK = 0x1CB,
|
||||
VERB_WALK_AROUND = 0x221
|
||||
};
|
||||
|
||||
enum Noun {
|
||||
NOUN_GAME = 0x1,
|
||||
NOUN_QSAVE = 0x2,
|
||||
NOUN_LOOK = 0x3,
|
||||
NOUN_TAKE = 0x4,
|
||||
NOUN_PUSH = 0x5,
|
||||
NOUN_OPEN = 0x6,
|
||||
NOUN_PUT = 0x7,
|
||||
NOUN_TALK_TO = 0x8,
|
||||
NOUN_GIVE = 0x9,
|
||||
NOUN_PULL = 0xA,
|
||||
NOUN_CLOSE = 0xB,
|
||||
NOUN_THROW = 0xC,
|
||||
NOUN_WALK_TO = 0xD,
|
||||
NOUN_NOTHING = 0xE,
|
||||
NOUN_ = 0xF,
|
||||
NOUN_FLOOR = 0x10,
|
||||
NOUN_WALK_ACROSS = 0x11,
|
||||
NOUN_RUG = 0x12,
|
||||
NOUN_CARPET = 0x13,
|
||||
NOUN_WALL = 0x14,
|
||||
@ -61,18 +71,14 @@ enum Noun {
|
||||
NOUN_NIGHTSTAND = 0x19,
|
||||
NOUN_TAPESTRY = 0x1A,
|
||||
NOUN_DRESSING_SCREEN = 0x1B,
|
||||
NOUN_WALK_BEHIND = 0x1C,
|
||||
NOUN_ROYAL_CREST = 0x1D,
|
||||
NOUN_LOOK_AT = 0x1E,
|
||||
NOUN_WASHBASIN = 0x1F,
|
||||
NOUN_WASH_AT = 0x20,
|
||||
NOUN_BOOK = 0x21,
|
||||
NOUN_FIREPLACE = 0x22,
|
||||
NOUN_FIREPLACE_SCREEN = 0x23,
|
||||
NOUN_DOOR_TO_QUEENS_ROOM = 0x24,
|
||||
NOUN_WALK_THROUGH = 0x25,
|
||||
NOUN_HALL_TO_SOUTH = 0x26,
|
||||
NOUN_WALK_INTO = 0x27,
|
||||
NOUN_WALL_PLAQUE = 0x28,
|
||||
NOUN_DECORATION = 0x29,
|
||||
NOUN_SWORDS = 0x2A,
|
||||
@ -202,7 +208,6 @@ enum Noun {
|
||||
NOUN_DOOR = 0xA6,
|
||||
NOUN_WALL_SWITCH = 0xA7,
|
||||
NOUN_STAIRS = 0xA8,
|
||||
NOUN_WALK_DOWN = 0xA9,
|
||||
NOUN_EDGE_OF_ABYSS = 0xAA,
|
||||
NOUN_COURTYARD = 0xAB,
|
||||
NOUN_ROCK = 0xAC,
|
||||
@ -492,7 +497,6 @@ enum Noun {
|
||||
NOUN_PATH_TO_HIGHTOWER = 0x1C8,
|
||||
NOUN_SPIRIT_PLANE = 0x1C9,
|
||||
NOUN_SPIRIT_TREE = 0x1CA,
|
||||
NOUN_WALK = 0x1CB,
|
||||
NOUN_REMAINS = 0x1CC,
|
||||
NOUN_DOORWAY_TO_ELEVATOR = 0x1CD,
|
||||
NOUN_DRAGON_DOOR = 0x1CE,
|
||||
@ -578,7 +582,6 @@ enum Noun {
|
||||
NOUN_SHIFTER_VILLAGE = 0x21E,
|
||||
NOUN_SLATHAN_SKY = 0x21F,
|
||||
NOUN_SHIFTER = 0x220,
|
||||
NOUN_WALK_AROUND = 0x221,
|
||||
NOUN_WRECKED_BRIDGE = 0x222,
|
||||
NOUN_SHACK = 0x223,
|
||||
NOUN_WRECKED_SHACK = 0x224,
|
||||
|
@ -239,5 +239,429 @@ void Scene101::preActions() {
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
Scene102::Scene102(MADSEngine *vm) : Scene1xx(vm) {
|
||||
_diaryHotspotIdx1 = -1;
|
||||
_diaryHotspotIdx2 = -1;
|
||||
_diaryFrame = -1;
|
||||
_animRunning = -1;
|
||||
}
|
||||
|
||||
void Scene102::synchronize(Common::Serializer &s) {
|
||||
Scene1xx::synchronize(s);
|
||||
|
||||
s.syncAsSint16LE(_diaryHotspotIdx1);
|
||||
s.syncAsSint16LE(_diaryHotspotIdx2);
|
||||
s.syncAsSint16LE(_diaryFrame);
|
||||
s.syncAsSint16LE(_animRunning);
|
||||
}
|
||||
|
||||
void Scene102::setup() {
|
||||
setPlayerSpritesPrefix();
|
||||
setAAName();
|
||||
|
||||
_scene->addActiveVocab(NOUN_DIARIES);
|
||||
_scene->addActiveVocab(VERB_WALK_TO);
|
||||
}
|
||||
|
||||
void Scene102::enter() {
|
||||
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('p', 0), false);
|
||||
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('p', 1), false);
|
||||
_globals._spriteIndexes[4] = _scene->_sprites.addSprites(formAnimName('y', 0), false);
|
||||
_globals._spriteIndexes[5] = _scene->_sprites.addSprites(formAnimName('y', 1), false);
|
||||
_globals._spriteIndexes[6] = _scene->_sprites.addSprites(formAnimName('x', -1), false);
|
||||
_globals._spriteIndexes[7] = _scene->_sprites.addSprites("*KGRD_6", false);
|
||||
_globals._spriteIndexes[8] = _scene->_sprites.addSprites(formAnimName('y', 2), false);
|
||||
|
||||
_globals._sequenceIndexes[4] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[4], false, 7, 0, 0, 0);
|
||||
_globals._sequenceIndexes[5] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[5], false, 7, 0, 0, 0);
|
||||
_globals._sequenceIndexes[8] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[8], false, 7, 0, 0, 0);
|
||||
|
||||
_globals._sequenceIndexes[1] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[1], false, -1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[1], 12);
|
||||
_diaryHotspotIdx1 = _scene->_dynamicHotspots.add(NOUN_DIARIES, VERB_WALK_TO, SYNTAX_PLURAL, _globals._sequenceIndexes[1], Common::Rect(0, 0, 0, 0));
|
||||
_scene->_dynamicHotspots.setPosition(_diaryHotspotIdx1, Common::Point(47, 123), FACING_NORTHWEST);
|
||||
|
||||
_globals._sequenceIndexes[2] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[2], false, -1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 12);
|
||||
_diaryHotspotIdx2 = _scene->_dynamicHotspots.add(NOUN_DIARIES, VERB_WALK_TO, SYNTAX_PLURAL, _globals._sequenceIndexes[2], Common::Rect(0, 0, 0, 0));
|
||||
_scene->_dynamicHotspots.setPosition(_diaryHotspotIdx2, Common::Point(47, 123), FACING_NORTHWEST);
|
||||
|
||||
if (_scene->_priorSceneId == 103) {
|
||||
_game._player._playerPos = Common::Point(170, 152);
|
||||
_game._player._facing = FACING_NORTHWEST;
|
||||
_globals._sequenceIndexes[6] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[6], false, -1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[6], 5);
|
||||
} else if (_scene->_priorSceneId != RETURNING_FROM_LOADING) {
|
||||
_globals._sequenceIndexes[6] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[6], false, -2);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[6], 5);
|
||||
_game._player.firstWalk(Common::Point(-10, 130), FACING_EAST, Common::Point(35, 144), FACING_EAST, false);
|
||||
_game._player.setWalkTrigger(70);
|
||||
} else {
|
||||
_globals._sequenceIndexes[6] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[6], false, -1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[6], 5);
|
||||
}
|
||||
|
||||
sceneEntrySound();
|
||||
}
|
||||
|
||||
void Scene102::step() {
|
||||
int resetFrame;
|
||||
|
||||
if ((_animRunning == 1) && _scene->_animation[_globals._animationIndexes[0]]) {
|
||||
if (_scene->_animation[_globals._animationIndexes[0]]->getCurrentFrame() != _diaryFrame) {
|
||||
_diaryFrame = _scene->_animation[_globals._animationIndexes[0]]->getCurrentFrame();
|
||||
resetFrame = -1;
|
||||
|
||||
switch (_diaryFrame) {
|
||||
case 6:
|
||||
_scene->deleteSequence(_globals._sequenceIndexes[1]);
|
||||
_game.syncTimers(1, _globals._sequenceIndexes[1], 3, _globals._animationIndexes[0]);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
_vm->_sound->command(65);
|
||||
break;
|
||||
|
||||
case 26:
|
||||
_vm->_dialogs->show(10210);
|
||||
_vm->_dialogs->show(10211);
|
||||
_vm->_dialogs->show(10212);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (resetFrame >= 0) {
|
||||
if (resetFrame != _scene->_animation[_globals._animationIndexes[0]]->getCurrentFrame()) {
|
||||
_scene->setAnimFrame(_globals._animationIndexes[0], resetFrame);
|
||||
_diaryFrame = resetFrame;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((_animRunning == 2) && _scene->_animation[_globals._animationIndexes[0]]) {
|
||||
if (_scene->_animation[_globals._animationIndexes[0]]->getCurrentFrame() != _diaryFrame) {
|
||||
_diaryFrame = _scene->_animation[_globals._animationIndexes[0]]->getCurrentFrame();
|
||||
resetFrame = -1;
|
||||
|
||||
switch (_diaryFrame) {
|
||||
case 6:
|
||||
_scene->deleteSequence(_globals._sequenceIndexes[2]);
|
||||
_game.syncTimers(1, _globals._sequenceIndexes[2], 3, _globals._animationIndexes[0]);
|
||||
break;
|
||||
|
||||
case 26:
|
||||
_vm->_dialogs->show(10213);
|
||||
_vm->_dialogs->show(10214);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (resetFrame >= 0) {
|
||||
if (resetFrame != _scene->_animation[_globals._animationIndexes[0]]->getCurrentFrame()) {
|
||||
_scene->setAnimFrame(_globals._animationIndexes[0], resetFrame);
|
||||
_diaryFrame = resetFrame;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (_game._trigger >= 70) {
|
||||
switch (_game._trigger) {
|
||||
case 70:
|
||||
_scene->deleteSequence(_globals._sequenceIndexes[6]);
|
||||
_vm->_sound->command(25);
|
||||
_globals._sequenceIndexes[6] = _scene->_sequences.addReverseSpriteCycle(_globals._spriteIndexes[6], false, 9, 1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[6], 5);
|
||||
_scene->_sequences.setAnimRange(_globals._sequenceIndexes[6], 1, 4);
|
||||
_scene->_sequences.setTrigger(_globals._sequenceIndexes[6], 0, 0, 71);
|
||||
break;
|
||||
|
||||
case 71: {
|
||||
int idx = _globals._sequenceIndexes[6];
|
||||
_globals._sequenceIndexes[6] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[6], false, -1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[6], -2);
|
||||
_game.syncTimers(1, _globals._sequenceIndexes[6], 1, idx);
|
||||
_game._player._stepEnabled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Scene102::actions() {
|
||||
if (_action._lookFlag) {
|
||||
_vm->_dialogs->show(10201);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_WALK_THROUGH, NOUN_DOOR_TO_KINGS_ROOM) || _action.isAction(VERB_OPEN, NOUN_DOOR_TO_KINGS_ROOM) || _action.isAction(VERB_PULL, NOUN_DOOR_TO_KINGS_ROOM)) {
|
||||
switch (_game._trigger) {
|
||||
case 0:
|
||||
_game._player._stepEnabled = false;
|
||||
_game._player._visible = false;
|
||||
_globals._sequenceIndexes[7] = _scene->_sequences.startPingPongCycle(_globals._spriteIndexes[7], true, 8, 2);
|
||||
_scene->_sequences.setSeqPlayer(_globals._sequenceIndexes[7],true);
|
||||
_scene->_sequences.setTrigger(_globals._sequenceIndexes[7], 2, 2, 1);
|
||||
_scene->_sequences.setTrigger(_globals._sequenceIndexes[7], 0, 0, 3);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
_scene->deleteSequence(_globals._sequenceIndexes[6]);
|
||||
_vm->_sound->command(24);
|
||||
_globals._sequenceIndexes[6] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[6], false, 9, 1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[6], 5);
|
||||
_scene->_sequences.setTrigger(_globals._sequenceIndexes[6], 0, 0, 2);
|
||||
break;
|
||||
|
||||
case 2: {
|
||||
int idx = _globals._sequenceIndexes[6];
|
||||
_globals._sequenceIndexes[6] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[6], false, 5);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[6], 5);
|
||||
_game.syncTimers(1, _globals._sequenceIndexes[6], 1, idx);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
_game._player._visible = true;
|
||||
_game.syncTimers(2, 0, 1, _globals._sequenceIndexes[7]);
|
||||
_game._player.walk(Common::Point(0, 130), FACING_WEST);
|
||||
_game._player._walkOffScreenSceneId = 101;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_WALK_THROUGH, NOUN_DOOR_TO_HALLWAY) || _action.isAction(VERB_OPEN, NOUN_DOOR_TO_HALLWAY) || _action.isAction(VERB_PULL, NOUN_DOOR_TO_HALLWAY)) {
|
||||
_scene->_nextSceneId = 103;
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_TAKE, NOUN_DIARIES) || _action.isAction(VERB_OPEN, NOUN_DIARIES)) {
|
||||
switch (_game._trigger) {
|
||||
case 0:
|
||||
_game._player._stepEnabled = false;
|
||||
_game._player._visible = false;
|
||||
_animRunning = 1;
|
||||
_globals._animationIndexes[0] = _scene->loadAnimation(formAnimName('B',-1), 1);
|
||||
_game.syncTimers(3, _globals._animationIndexes[0], 2, 0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
_globals._sequenceIndexes[1] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[1], false, -1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[1], 12);
|
||||
_diaryHotspotIdx1 = _scene->_dynamicHotspots.add(NOUN_DIARIES, VERB_WALK_TO, SYNTAX_PLURAL, _globals._sequenceIndexes[1], Common::Rect(0, 0, 0, 0));
|
||||
_scene->_dynamicHotspots.setPosition(_diaryHotspotIdx1, Common::Point(47, 123), FACING_NORTHWEST);
|
||||
_game._player._visible = true;
|
||||
_game.syncTimers(2, 0, 3, _globals._animationIndexes[0]);
|
||||
_scene->_sequences.setTimingTrigger(6, 2);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
_game._player.walk(Common::Point(51, 121), FACING_NORTHWEST);
|
||||
_game._player.setWalkTrigger(3);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
_game._player._visible = false;
|
||||
_animRunning = 2;
|
||||
_globals._animationIndexes[0] = _scene->loadAnimation(formAnimName('A',-1), 4);
|
||||
_game.syncTimers(3, _globals._animationIndexes[0], 2, 0);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
_globals._sequenceIndexes[2] = _scene->_sequences.addStampCycle(_globals._spriteIndexes[2], false, -1);
|
||||
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 12);
|
||||
_diaryHotspotIdx2 = _scene->_dynamicHotspots.add(NOUN_DIARIES, VERB_WALK_TO, SYNTAX_PLURAL, _globals._sequenceIndexes[2], Common::Rect(0, 0, 0, 0));
|
||||
_scene->_dynamicHotspots.setPosition(_diaryHotspotIdx2, Common::Point(47, 123), FACING_NORTHWEST);
|
||||
_game._player._visible = true;
|
||||
_game._player._stepEnabled = true;
|
||||
_game.syncTimers(2, 0, 3, _globals._animationIndexes[0]);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_LOOK) || _action.isAction(VERB_LOOK_AT)) {
|
||||
if (_action.isObject(NOUN_FIREPLACE)) {
|
||||
_vm->_dialogs->show(10202);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_BED)) {
|
||||
_vm->_dialogs->show(10203);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_SHUTTERS)) {
|
||||
_vm->_dialogs->show(10204);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_RUG)) {
|
||||
_vm->_dialogs->show(10206);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_BOOKCASE)) {
|
||||
_vm->_dialogs->show(10208);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_DIARIES)) {
|
||||
_vm->_dialogs->show(10209);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_DOOR_TO_KINGS_ROOM)) {
|
||||
_vm->_dialogs->show(10215);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_FLOWERS)) {
|
||||
_vm->_dialogs->show(10216);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_WINDOW)) {
|
||||
_vm->_dialogs->show(10217);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_WOOD_BASKET)) {
|
||||
_vm->_dialogs->show(10219);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_FIREPLACE_SCREEN)) {
|
||||
_vm->_dialogs->show(10220);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_NIGHTSTAND)) {
|
||||
_vm->_dialogs->show(10222);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_DOOR_TO_HALLWAY)) {
|
||||
_vm->_dialogs->show(10223);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_CHEST)) {
|
||||
_vm->_dialogs->show(10224);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_TAPESTRY)) {
|
||||
_vm->_dialogs->show(10226);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_SCONCE)) {
|
||||
_vm->_dialogs->show(10227);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_FLOOR)) {
|
||||
_vm->_dialogs->show(10228);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_WALL)) {
|
||||
_vm->_dialogs->show(10229);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_DECORATION)) {
|
||||
_vm->_dialogs->show(10230);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isObject(NOUN_CEILING)) {
|
||||
_vm->_dialogs->show(10231);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_OPEN, NOUN_CHEST)) {
|
||||
_vm->_dialogs->show(10224);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_TAKE, NOUN_FLOWERS)) {
|
||||
_vm->_dialogs->show(10225);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_OPEN, NOUN_WINDOW)) {
|
||||
_vm->_dialogs->show(10218);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((_action.isAction(VERB_PUSH) || _action.isAction(VERB_PULL)) && _action.isObject(NOUN_FIREPLACE_SCREEN)) {
|
||||
_vm->_dialogs->show(10221);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_CLOSE, NOUN_SHUTTERS)) {
|
||||
_vm->_dialogs->show(10205);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_action.isAction(VERB_PULL, NOUN_RUG)) {
|
||||
_vm->_dialogs->show(10207);
|
||||
_action._inProgress = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void Scene102::preActions() {
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
} // End of namespace Dragonsphere
|
||||
} // End of namespace MADS
|
||||
|
@ -64,6 +64,24 @@ public:
|
||||
virtual void preActions();
|
||||
virtual void actions();
|
||||
};
|
||||
|
||||
class Scene102 : public Scene1xx {
|
||||
private:
|
||||
int _diaryHotspotIdx1;
|
||||
int _diaryHotspotIdx2;
|
||||
int _diaryFrame;
|
||||
int _animRunning;
|
||||
|
||||
public:
|
||||
Scene102(MADSEngine *vm);
|
||||
virtual void synchronize(Common::Serializer &s);
|
||||
|
||||
virtual void setup();
|
||||
virtual void enter();
|
||||
virtual void step();
|
||||
virtual void preActions();
|
||||
virtual void actions();
|
||||
};
|
||||
} // End of namespace Dragonsphere
|
||||
} // End of namespace MADS
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user