diff options
-rw-r--r-- | engines/supernova2/ms2_def.h | 4 | ||||
-rw-r--r-- | engines/supernova2/rooms.cpp | 26 |
2 files changed, 26 insertions, 4 deletions
diff --git a/engines/supernova2/ms2_def.h b/engines/supernova2/ms2_def.h index 56635b3643..6e0fc98135 100644 --- a/engines/supernova2/ms2_def.h +++ b/engines/supernova2/ms2_def.h @@ -148,14 +148,14 @@ kString90, kString91, kString92, kString93, kString94, kStringEntrance, kStringDoor, kString97, kString98, kString99, kString100, kStringCorridor, kString102, kStringDinosaurHead, kString104, kString105, kStringSuctionCup, kString107, kStringOpening, kString109, -kStringMassive, kString111, kStringPyramid0, kStringPyramid1, kStringPyramid2, +kStringMassive, kStringInscriptionDescription, kStringPyramid0, kStringPyramid1, kStringPyramid2, kStringPyramid3, kStringPyramid4, kStringPiece, kStringPyramid5, kString119, kString120, kString121, kString122, kString123, kString124, kString125, kString126, kString127, kString128, kString129, kString130, kString131, kStringDirection1, kStringDirection2, kStringDirection3, kStringDirection4, kStringRope, kStringSign, kStringSignDescription, kStringEntrance1Description, kStringPyramid, kStringPyramidDescription, kStringSun, kStringSunDescription, kStringSign5Description, -kStringRight, kStringLeft, kStringButton, kString148, kString149, +kStringRight, kStringLeft, kStringButton, kStringInscription, kString149, kString150, kString151, kString152, kString153, kString154, kString155, kString156, kString157, kString158, kString159, kString160, kString161, kString162, kStringSlot, kString164, diff --git a/engines/supernova2/rooms.cpp b/engines/supernova2/rooms.cpp index 1c2311b4ca..57ec3b8e19 100644 --- a/engines/supernova2/rooms.cpp +++ b/engines/supernova2/rooms.cpp @@ -2825,9 +2825,15 @@ PuzzleBehind::PuzzleBehind(Supernova2Engine *vm, GameManager *gm) { _vm = vm; _gm = gm; - _fileNumber = 6; + _fileNumber = 12; _id = PUZZLE_BEHIND; _shown[0] = kShownTrue; + _shown[29] = kShownTrue; + _shown[31] = 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, kStringMassive, DOOR, EXIT | OPENABLE | CLOSED, 0, 0, 0, PYR_ENTRANCE, 2); } void PuzzleBehind::onEntrance() { @@ -2838,6 +2844,10 @@ void PuzzleBehind::animation() { } bool PuzzleBehind::interact(Action verb, Object &obj1, Object &obj2) { + if (!_gm->move(verb, obj1)) + return false; + _gm->passageConstruction(); + _gm->_newRoom = true; return true; } @@ -2845,9 +2855,15 @@ Formula1F::Formula1F(Supernova2Engine *vm, GameManager *gm) { _vm = vm; _gm = gm; - _fileNumber = 6; + _fileNumber = 14; _id = FORMULA1_F; _shown[0] = kShownTrue; + _shown[2] = 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, kStringInscription, kStringInscriptionDescription, DOOR, EXIT, 1, 1, 0, PYR_ENTRANCE, 2); } void Formula1F::onEntrance() { @@ -2858,6 +2874,12 @@ void Formula1F::animation() { } bool Formula1F::interact(Action verb, Object &obj1, Object &obj2) { + if (!_gm->move(verb, obj1)) + return false; + if (obj1._id == CORRIDOR) + _gm->changeRoom(FORMULA1_N); + _gm->passageConstruction(); + _gm->_newRoom = true; return true; } |