From 97a39f6a58bea450cfa5312f16f2889ddba7c7aa Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 6 Aug 2017 16:53:52 -0400 Subject: TITANIC: Fix movement cursors in Lift 4 when eye is removed --- engines/titanic/game/transport/lift.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'engines/titanic') diff --git a/engines/titanic/game/transport/lift.cpp b/engines/titanic/game/transport/lift.cpp index ca5b74467a..17f1783494 100644 --- a/engines/titanic/game/transport/lift.cpp +++ b/engines/titanic/game/transport/lift.cpp @@ -22,6 +22,7 @@ #include "titanic/game/transport/lift.h" #include "titanic/pet_control/pet_control.h" +#include "titanic/moves/multi_move.h" #include "titanic/titanic.h" namespace Titanic { @@ -289,6 +290,17 @@ bool CLift::ActMsg(CActMsg *msg) { actMsg1.execute("RPanInLiftW"); CActMsg actMsg2("Lift.Node 2.S"); actMsg2.execute("LPanInLiftW"); + + // WORKAROUND: In the original, when Lift 4's head is removed, the other + // view directions use Node 2. These "removed" views have links, but their + // movement cursors weren't correctly set. This fixes them + CNamedItem *node2 = findRoom()->findByName("Node 2"); + static_cast(node2->findByName("LMultiLiftPan"))->_cursorId = CURSOR_MOVE_LEFT; + static_cast(node2->findByName("_PANR,2,N,E"))->_cursorId = CURSOR_MOVE_RIGHT; + static_cast(node2->findByName("_PANL,2,E,N"))->_cursorId = CURSOR_MOVE_LEFT; + static_cast(node2->findByName("_PANR,2,E,S"))->_cursorId = CURSOR_MOVE_RIGHT; + static_cast(node2->findByName("_PANL,2,S,E"))->_cursorId = CURSOR_MOVE_LEFT; + static_cast(node2->findByName("RMultiLiftPan"))->_cursorId = CURSOR_MOVE_RIGHT; } else if (msg->_action == "AddWrongHead") { _hasHead = true; _hasCorrectHead = false; -- cgit v1.2.3