Drop non-carriable lights and empty stacks that aren't overriding anything

revert-6246b479
Evil Eye 1 year ago
parent a16a5003d8
commit c80574299d

@ -277,15 +277,16 @@ namespace
return;
}
// Note: we preserve RefNum when picking up or dropping an item. So if this RefNum is not found
// in this cell in content files, it doesn't mean that the instance is invalid.
// But non-storable item are always stored in saves together with their original cell.
// Note: we preserve RefNum when picking up or dropping an item. This includes non-carriable lights 'picked
// up' through Lua. So if this RefNum is not found in this cell in content files, it doesn't mean that the
// instance is invalid. But non-storable item are always stored in saves together with their original cell.
// If a non-storable item references a content file, but is not found in this content file,
// we should drop it.
if (!MWWorld::ContainerStore::isStorableType<T>())
// we should drop it. Likewise if this stack is empty.
if (!MWWorld::ContainerStore::isStorableType<T>() || !state.mCount)
{
Log(Debug::Warning) << "Warning: Dropping reference to " << state.mRef.mRefID
<< " (invalid content file link)";
if (state.mCount)
Log(Debug::Warning) << "Warning: Dropping reference to " << state.mRef.mRefID
<< " (invalid content file link)";
return;
}
}

Loading…
Cancel
Save