diff options
author | Jaromir Wysoglad | 2019-06-10 11:23:21 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | 6744c0b4b172b2b61ff31959f61edb06476e0465 (patch) | |
tree | d9d729e17a595d1366ad0324e0b4f519a0ad2ea8 /engines | |
parent | 9c1eba6bd6a785709ceb7d980ef239ba803e0f04 (diff) | |
download | scummvm-rg350-6744c0b4b172b2b61ff31959f61edb06476e0465.tar.gz scummvm-rg350-6744c0b4b172b2b61ff31959f61edb06476e0465.tar.bz2 scummvm-rg350-6744c0b4b172b2b61ff31959f61edb06476e0465.zip |
SUPERNOVA2: Add FloordoorU room
Diffstat (limited to 'engines')
-rw-r--r-- | engines/supernova2/ms2_def.h | 2 | ||||
-rw-r--r-- | engines/supernova2/rooms.cpp | 29 |
2 files changed, 29 insertions, 2 deletions
diff --git a/engines/supernova2/ms2_def.h b/engines/supernova2/ms2_def.h index f74e2848ea..280770bdd8 100644 --- a/engines/supernova2/ms2_def.h +++ b/engines/supernova2/ms2_def.h @@ -159,7 +159,7 @@ kStringRight, kStringLeft, kStringButton, kStringInscription, kStringTomato, kStringFunnyDescription, kStringKnife1, kStringKnife1Description, kStringMonster, kStringRopeDescription, kStringEyes, kStringMouth, kStringMonster1Description, kStringNote, kStringNoteDescription, kStringOpeningDescription1, kStringOpeningDescription2, kStringNoteDescription1, kStringSlot, kStringSlotDescription3, -kStringOpeningDescription3, kStringStones, kString167, kString168, kStringExit, +kStringOpeningDescription3, kStringStones, kStringPlate, kString168, kStringExit, kString170, kStringToothbrush, kString172, kString173, kString174, kString175, kString176, kString177, kStringDefaultDescription, kStringLooksMetal, kStringTaxiArrives, kStringNothingHappens, kStringEmpty, kStringWalletOpen, kStringAttachMagnet, diff --git a/engines/supernova2/rooms.cpp b/engines/supernova2/rooms.cpp index e095ab7acf..c991474ee5 100644 --- a/engines/supernova2/rooms.cpp +++ b/engines/supernova2/rooms.cpp @@ -3516,9 +3516,18 @@ FloordoorU::FloordoorU(Supernova2Engine *vm, GameManager *gm) { _vm = vm; _gm = gm; - _fileNumber = 6; + _fileNumber = 14; _id = FLOORDOOR_U; _shown[0] = kShownTrue; + _shown[12] = kShownTrue; + _shown[13] = kShownTrue; + _shown[15] = kShownTrue; + + _objectState[0] = Object(_id, kStringRight, kStringDefaultDescription, G_RIGHT, EXIT, 12, 12, 0, PYR_ENTRANCE, 14); + _objectState[1] = Object(_id, kStringLeft, kStringDefaultDescription, G_LEFT, EXIT, 11, 11, 0, PYR_ENTRANCE, 10); + _objectState[2] = Object(_id, kStringRope, kStringDefaultDescription, ROPE, NULLTYPE, 10, 10, 0, FLOORDOOR, 2); + _objectState[3] = Object(_id, kStringOpening, kStringDefaultDescription, HOLE, EXIT, 8, 8, 0, FLOORDOOR, 2); + _objectState[4] = Object(_id, kStringPlate, kStringDefaultDescription, NULLOBJECT, NULLTYPE, 9, 9, 0); } void FloordoorU::onEntrance() { @@ -3529,6 +3538,24 @@ void FloordoorU::animation() { } bool FloordoorU::interact(Action verb, Object &obj1, Object &obj2) { + if (_gm->move(verb, obj1)) { + _gm->passageConstruction(); + _gm->_newRoom = true; + } else if (verb == ACTION_WALK && obj1._id == HOLE) { + _gm->_state._pyraZ = 6; + _gm->_state._pyraDirection = 0; + _gm->_state._pyraE = 1; + return false; + } else if (verb == ACTION_USE && obj1._id == ROPE) { + _gm->_state._pyraZ = 6; + _gm->_state._pyraDirection = 0; + _gm->_state._pyraE = 1; + _gm->changeRoom(FLOORDOOR); + _gm->_newRoom = true; + } else if (verb == ACTION_TAKE && obj1._id == ROPE) { + _vm->renderMessage(kStringPyramid9); + } else + return false; return true; } |