diff --git a/engines/sci/engine/object.cpp b/engines/sci/engine/object.cpp index 2fdbb9118f0..9dac479ba95 100644 --- a/engines/sci/engine/object.cpp +++ b/engines/sci/engine/object.cpp @@ -222,8 +222,7 @@ int Object::propertyOffsetToId(SegManager *segMan, int propertyOffset) const { int selectors = getVarCount(); if (propertyOffset < 0 || (propertyOffset >> 1) >= selectors) { - error("Applied propertyOffsetToId to invalid property offset %x (property #%d not in [0..%d])", - propertyOffset, propertyOffset >> 1, selectors - 1); + // Scripts contain instructions with invalid properties return -1; } diff --git a/engines/sci/engine/scriptdebug.cpp b/engines/sci/engine/scriptdebug.cpp index 16d1edb7cc7..e4ec0a88c23 100644 --- a/engines/sci/engine/scriptdebug.cpp +++ b/engines/sci/engine/scriptdebug.cpp @@ -316,8 +316,12 @@ reg_t disassemble(EngineState *s, reg_t pos, const Object *obj, bool printBWTag, } else { if (getSciVersion() == SCI_VERSION_3) debugN("\t(%s)", g_sci->getKernel()->getSelectorName(param_value).c_str()); - else - debugN("\t(%s)", g_sci->getKernel()->getSelectorName(obj->propertyOffsetToId(s->_segMan, param_value)).c_str()); + else { + int propertySelector = obj->propertyOffsetToId(s->_segMan, param_value); + if (propertySelector != -1) { + debugN("\t(%s)", g_sci->getKernel()->getSelectorName(propertySelector).c_str()); + } + } } } }