aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2017-01-15 22:46:54 -0500
committerPaul Gilbert2017-01-15 22:46:54 -0500
commitaf8184d7d90d1ff4e023fc0202d3386147807b2c (patch)
tree6e91054f5fb8b70cc3e00daa5674edf8f2426c29 /engines
parent4498b028c5612530fbaf517bd290bc5b73fee639 (diff)
downloadscummvm-rg350-af8184d7d90d1ff4e023fc0202d3386147807b2c.tar.gz
scummvm-rg350-af8184d7d90d1ff4e023fc0202d3386147807b2c.tar.bz2
scummvm-rg350-af8184d7d90d1ff4e023fc0202d3386147807b2c.zip
TITANIC: Woarkound original bug when SuccUBus eats the chicken
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/npcs/succubus.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/engines/titanic/npcs/succubus.cpp b/engines/titanic/npcs/succubus.cpp
index b69bfbce4c..3534ba03e3 100644
--- a/engines/titanic/npcs/succubus.cpp
+++ b/engines/titanic/npcs/succubus.cpp
@@ -310,15 +310,22 @@ bool CSuccUBus::SubAcceptCCarryMsg(CSubAcceptCCarryMsg *msg) {
_field158 = 2;
}
+ // WORKAROUND: The original had code below to return the chicken
+ // to the dispensor after eaten, but since _fullViewName isn't
+ // set, it didn't work. I've added code below in the else block
+ // that replicates what happens when the parrot eats the chicken
CViewItem *view = parseView(chicken->_fullViewName);
- if (!view)
- return false;
-
- item->setPosition(item->_origPos);
- item->moveUnder(view);
+ if (view) {
+ item->setPosition(item->_origPos);
+ item->moveUnder(view);
- CSUBTransition transMsg;
- transMsg.execute(this);
+ CSUBTransition transMsg;
+ transMsg.execute(this);
+ } else {
+ CActMsg actMsg("Eaten");
+ actMsg.execute(chicken);
+ return false;
+ }
}
}