diff options
author | Jaromir Wysoglad | 2019-06-07 13:44:28 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | c8b900bd4a9d4f230e18a4db94c888a211690ae1 (patch) | |
tree | be1d13f391f576d517850a3ad3843baa8173a2b5 /engines/supernova2 | |
parent | 277b4eeac70caf59af64c792d2dbb06f88313f4d (diff) | |
download | scummvm-rg350-c8b900bd4a9d4f230e18a4db94c888a211690ae1.tar.gz scummvm-rg350-c8b900bd4a9d4f230e18a4db94c888a211690ae1.tar.bz2 scummvm-rg350-c8b900bd4a9d4f230e18a4db94c888a211690ae1.zip |
SUPERNOVA2: Add UpperDoor room
Diffstat (limited to 'engines/supernova2')
-rw-r--r-- | engines/supernova2/rooms.cpp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/engines/supernova2/rooms.cpp b/engines/supernova2/rooms.cpp index 4a9a2a2e53..eff6a4d602 100644 --- a/engines/supernova2/rooms.cpp +++ b/engines/supernova2/rooms.cpp @@ -2640,9 +2640,15 @@ Downstairs2::Downstairs2(Supernova2Engine *vm, GameManager *gm) { _vm = vm; _gm = gm; - _fileNumber = 6; + _fileNumber = 10; _id = DOWNSTAIRS2; _shown[0] = kShownTrue; + _shown[1] = kShownTrue; + _shown[3] = kShownTrue; + + _objectState[0] = Object(_id, kStringRight, kStringDefaultDescription, G_RIGHT, EXIT, 1, 1, 0, PYR_ENTRANCE, 14); + _objectState[1] = Object(_id, kStringLeft, kStringDefaultDescription, G_LEFT, EXIT, 2, 2, 0, PYR_ENTRANCE, 10); + _objectState[2] = Object(_id, kStringCorridor, kStringDefaultDescription, CORRIDOR, EXIT, 3, 3, 0, PYR_ENTRANCE, 2); } void Downstairs2::onEntrance() { @@ -2653,6 +2659,17 @@ void Downstairs2::animation() { } bool Downstairs2::interact(Action verb, Object &obj1, Object &obj2) { + if (!_gm->move(verb, obj1)) + return false; + if (obj1._id == CORRIDOR) { + if (_gm->_state._pyraE) + _gm->_state._pyraE = 0; + else + _gm->_state._pyraE = 1; + } + _gm->passageConstruction(); + _gm->_newRoom = true; + return true; return true; } @@ -2660,9 +2677,16 @@ UpperDoor::UpperDoor(Supernova2Engine *vm, GameManager *gm) { _vm = vm; _gm = gm; - _fileNumber = 6; + _fileNumber = 12; _id = UPPER_DOOR; _shown[0] = kShownTrue; + _shown[26] = kShownTrue; + _shown[27] = kShownTrue; + _shown[30] = kShownTrue; + + _objectState[0] = Object(_id, kStringRight, kStringDefaultDescription, G_RIGHT, EXIT, 1, 1, 0, PYR_ENTRANCE, 14); + _objectState[1] = Object(_id, kStringLeft, kStringDefaultDescription, G_LEFT, EXIT, 2, 2, 0, PYR_ENTRANCE, 10); + _objectState[2] = Object(_id, kStringDoor, kStringDefaultDescription, CORRIDOR, EXIT, 0, 0, 0, PYR_ENTRANCE, 2); } void UpperDoor::onEntrance() { @@ -2673,6 +2697,10 @@ void UpperDoor::animation() { } bool UpperDoor::interact(Action verb, Object &obj1, Object &obj2) { + if (!_gm->move(verb, obj1)) + return false; + _gm->passageConstruction(); + _gm->_newRoom = true; return true; } |