diff options
author | Paul Gilbert | 2017-08-06 16:53:52 -0400 |
---|---|---|
committer | Paul Gilbert | 2017-08-06 16:53:52 -0400 |
commit | 97a39f6a58bea450cfa5312f16f2889ddba7c7aa (patch) | |
tree | eb9a7e7e8bb5a8e6d1d9f93cbb9aa098204d3481 | |
parent | 8b81bb2faabde88d6d00e938360f21f2c97ad774 (diff) | |
download | scummvm-rg350-97a39f6a58bea450cfa5312f16f2889ddba7c7aa.tar.gz scummvm-rg350-97a39f6a58bea450cfa5312f16f2889ddba7c7aa.tar.bz2 scummvm-rg350-97a39f6a58bea450cfa5312f16f2889ddba7c7aa.zip |
TITANIC: Fix movement cursors in Lift 4 when eye is removed
-rw-r--r-- | engines/titanic/game/transport/lift.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
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<CMultiMove *>(node2->findByName("LMultiLiftPan"))->_cursorId = CURSOR_MOVE_LEFT; + static_cast<CLinkItem *>(node2->findByName("_PANR,2,N,E"))->_cursorId = CURSOR_MOVE_RIGHT; + static_cast<CLinkItem *>(node2->findByName("_PANL,2,E,N"))->_cursorId = CURSOR_MOVE_LEFT; + static_cast<CLinkItem *>(node2->findByName("_PANR,2,E,S"))->_cursorId = CURSOR_MOVE_RIGHT; + static_cast<CLinkItem *>(node2->findByName("_PANL,2,S,E"))->_cursorId = CURSOR_MOVE_LEFT; + static_cast<CMultiMove *>(node2->findByName("RMultiLiftPan"))->_cursorId = CURSOR_MOVE_RIGHT; } else if (msg->_action == "AddWrongHead") { _hasHead = true; _hasCorrectHead = false; |