diff options
Diffstat (limited to 'engines/titanic/game/light.cpp')
-rw-r--r-- | engines/titanic/game/light.cpp | 11 |
1 files 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); |