aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
+ }
}
}