From 5b8fdfe366b9acb2fd1d80cd0839e2af61238f08 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 8 Aug 2016 23:19:42 -0400 Subject: TITANIC: Implemented more sound classes --- engines/titanic/core/game_object.cpp | 13 +++++++++++++ engines/titanic/core/game_object.h | 5 +++++ 2 files changed, 18 insertions(+) (limited to 'engines/titanic/core') diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp index c7742cb8db..95ebe6a1e7 100644 --- a/engines/titanic/core/game_object.cpp +++ b/engines/titanic/core/game_object.cpp @@ -1248,6 +1248,19 @@ CRoomItem *CGameObject::getHiddenRoom() const { return root ? root->findHiddenRoom() : nullptr; } +CRoomItem *CGameObject::locateRoom(const CString &name) const { + if (name.empty()) + return nullptr; + + CProjectItem *project = getRoot(); + for (CRoomItem *room = project->findFirstRoom(); room; room = project->findNextRoom(room)) { + if (!room->getName().compareToIgnoreCase(name)) + return room; + } + + return nullptr; +} + CGameObject *CGameObject::getHiddenObject(const CString &name) const { CRoomItem *room = getHiddenRoom(); return room ? static_cast(findUnder(room, name)) : nullptr; diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h index bcfc989288..322b62636c 100644 --- a/engines/titanic/core/game_object.h +++ b/engines/titanic/core/game_object.h @@ -392,6 +392,11 @@ protected: */ CRoomItem *getHiddenRoom() const; + /** + * Locates a room with the given name + */ + CRoomItem *locateRoom(const CString &name) const; + /** * Scan the specified room for an item by name */ -- cgit v1.2.3