Fix an error in restocking logic (Fixes #3131)

openmw-38 openmw-0.38.0
scrawl 8 years ago
parent fde831e2e0
commit 471ad3fb0f

@ -529,10 +529,10 @@ void MWWorld::ContainerStore::restock (const ESM::InventoryList& items, const MW
{ {
std::map<std::string, int>::iterator listInMap = allowedForReplace.find(itemOrList); std::map<std::string, int>::iterator listInMap = allowedForReplace.find(itemOrList);
int restockNum = it->mCount; int restockNum = std::abs(it->mCount);
//If we know we must restock less, take it into account //If we know we must restock less, take it into account
if(listInMap != allowedForReplace.end()) if(listInMap != allowedForReplace.end())
restockNum += listInMap->second;//We add, because list items have negative count restockNum -= std::min(restockNum, listInMap->second);
//restock //restock
addInitialItem(itemOrList, owner, restockNum, true); addInitialItem(itemOrList, owner, restockNum, true);
} }

Loading…
Cancel
Save