From 6b75a827770f7972948228276ac4a4118c22f2da Mon Sep 17 00:00:00 2001 From: David Cernat Date: Sat, 27 Jan 2018 18:08:45 +0200 Subject: [PATCH] [Client] Ignore equipment items for DedicatedActors with count below 0 --- apps/openmw/mwmp/DedicatedActor.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwmp/DedicatedActor.cpp b/apps/openmw/mwmp/DedicatedActor.cpp index e0f18b816..6efad4ded 100644 --- a/apps/openmw/mwmp/DedicatedActor.cpp +++ b/apps/openmw/mwmp/DedicatedActor.cpp @@ -168,6 +168,11 @@ void DedicatedActor::setEquipment() for (int slot = 0; slot < MWWorld::InventoryStore::Slots; ++slot) { + int count = equipedItems[slot].count; + + // If we've somehow received a corrupted item with a count lower than 0, ignore it + if (count < 0) continue; + MWWorld::ContainerStoreIterator it = invStore.getSlot(slot); const string &packetRefId = equipedItems[slot].refId; @@ -188,8 +193,6 @@ void DedicatedActor::setEquipment() if (packetRefId.empty() || equal) continue; - int count = equipedItems[slot].count; - if (hasItem(packetRefId, packetCharge)) equipItem(packetRefId, packetCharge); else