1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-04-19 19:06:48 +00:00

Don't use a levelled creature's base pointer when spawning a new instance

This commit is contained in:
Evil Eye 2023-01-04 22:18:56 +01:00
parent 7b001246ee
commit a08f37cfe8

View file

@ -127,10 +127,10 @@ namespace MWClass
if (!customData.mSpawn) if (!customData.mSpawn)
return; return;
MWWorld::LiveCellRef<ESM::CreatureLevList>* ref = ptr.get<ESM::CreatureLevList>(); const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
auto& prng = MWBase::Environment::get().getWorld()->getPrng(); auto& prng = MWBase::Environment::get().getWorld()->getPrng();
const ESM::RefId& id = MWMechanics::getLevelledItem(ref->mBase, true, prng); const ESM::RefId& id = MWMechanics::getLevelledItem(
store.get<ESM::CreatureLevList>().find(ptr.getCellRef().getRefId()), true, prng);
if (!id.empty()) if (!id.empty())
{ {
@ -144,7 +144,6 @@ namespace MWClass
customData.mSpawnActorId = -1; customData.mSpawnActorId = -1;
} }
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
MWWorld::ManualRef manualRef(store, id); MWWorld::ManualRef manualRef(store, id);
manualRef.getPtr().getCellRef().setPosition(ptr.getCellRef().getPosition()); manualRef.getPtr().getCellRef().setPosition(ptr.getCellRef().getPosition());
manualRef.getPtr().getCellRef().setScale(ptr.getCellRef().getScale()); manualRef.getPtr().getCellRef().setScale(ptr.getCellRef().getScale());