From cb96b15ee6453c4d3932072d2d15ca12625b1b47 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 16 Jan 2017 12:11:51 -0500 Subject: TITANIC: Workaround for broken light in 1st class suite --- engines/titanic/game/light.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/engines/titanic/game/light.cpp b/engines/titanic/game/light.cpp index 3e52a4c6f9..30fc53463f 100644 --- a/engines/titanic/game/light.cpp +++ b/engines/titanic/game/light.cpp @@ -76,8 +76,15 @@ bool CLight::TurnOff(CTurnOff *msg) { } bool CLight::LightsMsg(CLightsMsg *msg) { - if ((msg->_topLeft && _topLeft) || (msg->_bottomLeft && _bottomLeft) - || (msg->_topRight && _topRight) || (msg->_bottomRight && _bottomRight)) { + // WORKAROUND: Since solving the puzzle to get Titania's eye explicitly + // requires referring to the "broken light", don't allow the top left + // light to be turned on in the player's stateroom until it's gotten/fixed + if (msg->_topLeft && _topLeft) { + bool showFlag = !getPetControl()->isFirstClassSuite() || + getRoom()->findByName("Eye1") == nullptr; + setVisible(showFlag); + } else if ((msg->_bottomLeft && _bottomLeft) || (msg->_topRight && _topRight) || + (msg->_bottomRight && _bottomRight)) { setVisible(true); } else { setVisible(false); -- cgit v1.2.3