diff options
author | Filippos Karapetis | 2010-11-22 10:23:53 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-11-22 10:23:53 +0000 |
commit | eba5c441b27d0c7ec82b4d7abd0f51bfee2dc8ba (patch) | |
tree | f2872e546a76befbb818c621b08120024cf4c9f2 /engines/sci/engine/object.cpp | |
parent | d8afddac634a089fd75f1c51a49b7ee1a2929401 (diff) | |
download | scummvm-rg350-eba5c441b27d0c7ec82b4d7abd0f51bfee2dc8ba.tar.gz scummvm-rg350-eba5c441b27d0c7ec82b4d7abd0f51bfee2dc8ba.tar.bz2 scummvm-rg350-eba5c441b27d0c7ec82b4d7abd0f51bfee2dc8ba.zip |
SCI: Fixed bug #3044050 - "SQ4FLOPPY: Crash while flying in Skate-o-Rama"
Fixed Object::locateVarSelector() for SCI0-SCI1 games, as it wasn't checking the
class for object variables
svn-id: r54415
Diffstat (limited to 'engines/sci/engine/object.cpp')
-rw-r--r-- | engines/sci/engine/object.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/engines/sci/engine/object.cpp b/engines/sci/engine/object.cpp index e0d366797e..12b2e36d31 100644 --- a/engines/sci/engine/object.cpp +++ b/engines/sci/engine/object.cpp @@ -91,13 +91,9 @@ int Object::locateVarSelector(SegManager *segMan, Selector slc) const { const byte *buf = 0; uint varnum = 0; - if (getSciVersion() <= SCI_VERSION_1_LATE) { - varnum = getVarCount(); - int selector_name_offset = varnum * 2 + kOffsetSelectorSegment; - buf = _baseObj + selector_name_offset; - } else if (getSciVersion() >= SCI_VERSION_1_1 && getSciVersion() <= SCI_VERSION_2_1) { + if (getSciVersion() <= SCI_VERSION_2_1) { const Object *obj = getClass(segMan); - varnum = obj->getVariable(1).toUint16(); + varnum = getSciVersion() <= SCI_VERSION_1_LATE ? getVarCount() : obj->getVariable(1).toUint16(); buf = (const byte *)obj->_baseVars; } else if (getSciVersion() == SCI_VERSION_3) { varnum = _variables.size(); |