aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorLars Skovlund2010-09-06 10:11:07 +0000
committerLars Skovlund2010-09-06 10:11:07 +0000
commite3e9bac6f6e0a9174e56afdd3e6a497baf979852 (patch)
treee62f6737ac482bd0bffe512a118047d27464845b /engines/sci
parentf51c3ad62e5ea1ef2f3d0695065e0aab17f7e3fd (diff)
downloadscummvm-rg350-e3e9bac6f6e0a9174e56afdd3e6a497baf979852.tar.gz
scummvm-rg350-e3e9bac6f6e0a9174e56afdd3e6a497baf979852.tar.bz2
scummvm-rg350-e3e9bac6f6e0a9174e56afdd3e6a497baf979852.zip
SCI: Clear class bit when cloning objects.
This fixes a regression affecting many SCI32 games and possibly other games, looping or recursing endlessly. svn-id: r52583
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/kscripts.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp
index a975ce2988..e6c1273f13 100644
--- a/engines/sci/engine/kscripts.cpp
+++ b/engines/sci/engine/kscripts.cpp
@@ -178,7 +178,7 @@ reg_t kClone(EngineState *s, int argc, reg_t *argv) {
*cloneObj = *parentObj;
// Mark as clone
- writeSelectorValue(s->_segMan, cloneAddr, SELECTOR(_info_), infoSelector | kInfoFlagClone);
+ writeSelectorValue(s->_segMan, cloneAddr, SELECTOR(_info_), (infoSelector & ~kInfoFlagClass) | kInfoFlagClone);
cloneObj->setSpeciesSelector(cloneObj->getPos());
if (parentObj->isClass())