aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/game
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/game')
-rw-r--r--engines/titanic/game/idle_summoner.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/titanic/game/idle_summoner.cpp b/engines/titanic/game/idle_summoner.cpp
index 28a73da020..d67c55f157 100644
--- a/engines/titanic/game/idle_summoner.cpp
+++ b/engines/titanic/game/idle_summoner.cpp
@@ -76,9 +76,17 @@ bool CIdleSummoner::TimerMsg(CTimerMsg *msg) {
uint nodesCtr = getNodeChangedCtr();
if (msg->_actionVal == 1 && !petDoorOrBellbotPresent()
&& nodesCtr > 0 && nodesCtr != _oldNodesCtr) {
+
+ // They can only appear in the Top of the Well and the Embarkation Lobby
if (!compareRoomNameTo("TopOfWell") && !compareRoomNameTo("EmbLobby"))
return true;
+ // WORKAROUND: To benefit the players, don't allow the bots to turn up
+ // when at the Embarkation SuccUBus or in front of the Deskbot's desk
+ CString fullName = getFullViewName();
+ if (fullName == "EmbLobby.Node 2.W" || fullName == "EmbLobby.Node 4.E")
+ return true;
+
int region = talkGetDialRegion("BellBot", 1);
uint delay = region == 1 ? 15000 : 120000;
uint enterTicks = MAX(getNodeEnterTicks(), _ticks);