diff options
author | Jaromir Wysoglad | 2019-06-10 10:00:54 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | df792b74d91429cd08381e495df9186e89a6de1d (patch) | |
tree | f705c5ccf61e0928d2f7b9fce6d833828b98e4f5 | |
parent | 14aeaf9c92354c58a54f15fc0d6cb4072433111f (diff) | |
download | scummvm-rg350-df792b74d91429cd08381e495df9186e89a6de1d.tar.gz scummvm-rg350-df792b74d91429cd08381e495df9186e89a6de1d.tar.bz2 scummvm-rg350-df792b74d91429cd08381e495df9186e89a6de1d.zip |
SUPERNOVA2: Add LCorridor2 room
-rw-r--r-- | engines/supernova2/ms2_def.h | 2 | ||||
-rw-r--r-- | engines/supernova2/rooms.cpp | 23 | ||||
-rw-r--r-- | engines/supernova2/rooms.h | 4 | ||||
-rw-r--r-- | engines/supernova2/state.cpp | 4 |
4 files changed, 21 insertions, 12 deletions
diff --git a/engines/supernova2/ms2_def.h b/engines/supernova2/ms2_def.h index 1485013b38..fc1a745f62 100644 --- a/engines/supernova2/ms2_def.h +++ b/engines/supernova2/ms2_def.h @@ -88,7 +88,7 @@ enum RoomId { UPPER_DOOR,PUZZLE_FRONT,PUZZLE_BEHIND, FORMULA1_F,FORMULA1_N,FORMULA2_F,FORMULA2_N,TOMATO_F,TOMATO_N, MONSTER_F,MONSTER1_N,MONSTER2_N,UPSTAIRS3,DOWNSTAIRS3, - LCORRIDOR1,LGANG2,HOLE_ROOM,IN_HOLE,FLOORDOOR,FLOORDOOR_U, + LCORRIDOR1,LCORRIDOR2,HOLE_ROOM,IN_HOLE,FLOORDOOR,FLOORDOOR_U, BST_DOOR,HALL,COFFIN_ROOM,MASK, MUSEUM,MUS_EING,MUS1,MUS2,MUS3,MUS4,MUS5,MUS6,MUS7,MUS8, diff --git a/engines/supernova2/rooms.cpp b/engines/supernova2/rooms.cpp index 46c391bf94..ea1c1c33ce 100644 --- a/engines/supernova2/rooms.cpp +++ b/engines/supernova2/rooms.cpp @@ -2371,7 +2371,7 @@ bool PyrEntrance::interact(Action verb, Object &obj1, Object &obj2) { {0, 2, 4, 2, DOWNSTAIRS3}, {1, 2, 5, 0, UPSTAIRS3}, {1, 2, 5, 3, LCORRIDOR1}, - {1, 1, 5, 1, LGANG2}, + {1, 1, 5, 1, LCORRIDOR2}, {1, 1, 5, 3, HOLE_ROOM}, {0, 7, 4, 0, BST_DOOR} }; @@ -3313,23 +3313,32 @@ bool LCorridor1::interact(Action verb, Object &obj1, Object &obj2) { return true; } -LGang2::LGang2(Supernova2Engine *vm, GameManager *gm) { +LCorridor2::LCorridor2(Supernova2Engine *vm, GameManager *gm) { _vm = vm; _gm = gm; - _fileNumber = 6; - _id = LGANG2; + _fileNumber = 9; + _id = LCORRIDOR2; _shown[0] = kShownTrue; + _shown[17] = 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, 6, 6, 0, PYR_ENTRANCE, 2); } -void LGang2::onEntrance() { +void LCorridor2::onEntrance() { setRoomSeen(true); } -void LGang2::animation() { +void LCorridor2::animation() { } -bool LGang2::interact(Action verb, Object &obj1, Object &obj2) { +bool LCorridor2::interact(Action verb, Object &obj1, Object &obj2) { + if (!_gm->move(verb, obj1)) + return false; + _gm->passageConstruction(); + _gm->_newRoom = true; return true; } diff --git a/engines/supernova2/rooms.h b/engines/supernova2/rooms.h index 8bb95aafd7..29f00d3a0c 100644 --- a/engines/supernova2/rooms.h +++ b/engines/supernova2/rooms.h @@ -463,9 +463,9 @@ public: private: }; -class LGang2 : public Room { +class LCorridor2 : public Room { public: - LGang2(Supernova2Engine *vm, GameManager *gm); + LCorridor2(Supernova2Engine *vm, GameManager *gm); virtual void onEntrance(); virtual void animation(); virtual bool interact(Action verb, Object &obj1, Object &obj2); diff --git a/engines/supernova2/state.cpp b/engines/supernova2/state.cpp index bc341403e4..fa66258dce 100644 --- a/engines/supernova2/state.cpp +++ b/engines/supernova2/state.cpp @@ -289,7 +289,7 @@ void GameManager::destroyRooms() { delete _rooms[UPSTAIRS3]; delete _rooms[DOWNSTAIRS3]; delete _rooms[LCORRIDOR1]; - delete _rooms[LGANG2]; + delete _rooms[LCORRIDOR2]; delete _rooms[HOLE_ROOM]; delete _rooms[IN_HOLE]; delete _rooms[FLOORDOOR]; @@ -418,7 +418,7 @@ void GameManager::initRooms() { _rooms[UPSTAIRS3] = new Upstairs3(_vm, this); _rooms[DOWNSTAIRS3] = new Downstairs3(_vm, this); _rooms[LCORRIDOR1] = new LCorridor1(_vm, this); - _rooms[LGANG2] = new LGang2(_vm, this); + _rooms[LCORRIDOR2] = new LCorridor2(_vm, this); _rooms[HOLE_ROOM] = new HoleRoom(_vm, this); _rooms[IN_HOLE] = new InHole(_vm, this); _rooms[FLOORDOOR] = new Floordoor(_vm, this); |