aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/core/game_object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/core/game_object.cpp')
-rw-r--r--engines/titanic/core/game_object.cpp52
1 files changed, 1 insertions, 51 deletions
diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp
index 27af509618..ab91a6decc 100644
--- a/engines/titanic/core/game_object.cpp
+++ b/engines/titanic/core/game_object.cpp
@@ -883,57 +883,7 @@ void CGameObject::gotoView(const CString &viewName, const CString &clipName) {
}
CViewItem *CGameObject::parseView(const CString &viewString) {
- int firstIndex = viewString.indexOf('.');
- int lastIndex = viewString.lastIndexOf('.');
- CString roomName, nodeName, viewName;
-
- if (firstIndex == -1) {
- roomName = viewString;
- } else {
- roomName = viewString.left(firstIndex);
-
- if (lastIndex > firstIndex) {
- nodeName = viewString.mid(firstIndex + 1, lastIndex - firstIndex - 1);
- viewName = viewString.mid(lastIndex + 1);
- } else {
- nodeName = viewString.mid(firstIndex + 1);
- }
- }
-
- CGameManager *gameManager = getGameManager();
- if (!gameManager)
- return nullptr;
-
- CRoomItem *room = gameManager->getRoom();
- CProjectItem *project = room->getRoot();
-
- // Ensure we have the specified room
- if (project) {
- if (room->getName().compareToIgnoreCase(roomName)) {
- // Scan for the correct room
- for (room = project->findFirstRoom();
- room && room->getName().compareToIgnoreCase(roomName);
- room = project->findNextRoom(room)) ;
- }
- }
- if (!room)
- return nullptr;
-
- // Find the designated node within the room
- CNodeItem *node = dynamic_cast<CNodeItem *>(room->findChildInstanceOf(CNodeItem::_type));
- while (node && node->getName().compareToIgnoreCase(nodeName))
- node = dynamic_cast<CNodeItem *>(room->findNextInstanceOf(CNodeItem::_type, node));
- if (!node)
- return nullptr;
-
- CViewItem *view = dynamic_cast<CViewItem *>(node->findChildInstanceOf(CViewItem::_type));
- while (view && view->getName().compareToIgnoreCase(viewName))
- view = dynamic_cast<CViewItem *>(node->findNextInstanceOf(CViewItem::_type, view));
- if (!view)
- return nullptr;
-
- // Find the view, so return it
- return view;
+ return getRoot()->parseView(viewString);
}
CString CGameObject::getViewFullName() const {