diff options
author | Lars Skovlund | 2010-09-06 10:11:07 +0000 |
---|---|---|
committer | Lars Skovlund | 2010-09-06 10:11:07 +0000 |
commit | e3e9bac6f6e0a9174e56afdd3e6a497baf979852 (patch) | |
tree | e62f6737ac482bd0bffe512a118047d27464845b | |
parent | f51c3ad62e5ea1ef2f3d0695065e0aab17f7e3fd (diff) | |
download | scummvm-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
-rw-r--r-- | engines/sci/engine/kscripts.cpp | 2 |
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()) |