diff options
author | Paul Gilbert | 2017-01-15 22:46:54 -0500 |
---|---|---|
committer | Paul Gilbert | 2017-01-15 22:46:54 -0500 |
commit | af8184d7d90d1ff4e023fc0202d3386147807b2c (patch) | |
tree | 6e91054f5fb8b70cc3e00daa5674edf8f2426c29 /engines | |
parent | 4498b028c5612530fbaf517bd290bc5b73fee639 (diff) | |
download | scummvm-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.cpp | 21 |
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; + } } } |