1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-01 03:21:41 +00:00

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

This commit is contained in:
Evil Eye 2023-07-23 14:51:58 +02:00
parent a16a5003d8
commit c80574299d

View File

@ -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;
}
}