forked from mirror/openmw-tes3mp
Revert "Transfer item ownership to the buyer if item wasn't stolen"
Fixes #1953.
This reverts commit 5d77c5e8ca
.
This commit is contained in:
parent
02dec787fd
commit
58571f7ac2
4 changed files with 7 additions and 10 deletions
|
@ -76,7 +76,7 @@ MWWorld::Ptr ContainerItemModel::copyItem (const ItemStack& item, size_t count,
|
||||||
const MWWorld::Ptr& source = mItemSources[mItemSources.size()-1];
|
const MWWorld::Ptr& source = mItemSources[mItemSources.size()-1];
|
||||||
if (item.mBase.getContainerStore() == &source.getClass().getContainerStore(source))
|
if (item.mBase.getContainerStore() == &source.getClass().getContainerStore(source))
|
||||||
throw std::runtime_error("Item to copy needs to be from a different container!");
|
throw std::runtime_error("Item to copy needs to be from a different container!");
|
||||||
return *source.getClass().getContainerStore(source).add(item.mBase, count, source, setNewOwner);
|
return *source.getClass().getContainerStore(source).add(item.mBase, count, source);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContainerItemModel::removeItem (const ItemStack& item, size_t count)
|
void ContainerItemModel::removeItem (const ItemStack& item, size_t count)
|
||||||
|
|
|
@ -119,7 +119,7 @@ namespace MWGui
|
||||||
return mBorrowedToUs;
|
return mBorrowedToUs;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TradeItemModel::transferItems(const MWWorld::Ptr& transferFrom)
|
void TradeItemModel::transferItems()
|
||||||
{
|
{
|
||||||
std::vector<ItemStack>::iterator it = mBorrowedToUs.begin();
|
std::vector<ItemStack>::iterator it = mBorrowedToUs.begin();
|
||||||
for (; it != mBorrowedToUs.end(); ++it)
|
for (; it != mBorrowedToUs.end(); ++it)
|
||||||
|
@ -135,11 +135,9 @@ namespace MWGui
|
||||||
if (i == sourceModel->getItemCount())
|
if (i == sourceModel->getItemCount())
|
||||||
throw std::runtime_error("The borrowed item disappeared");
|
throw std::runtime_error("The borrowed item disappeared");
|
||||||
|
|
||||||
|
// reset owner while copying, but only for items bought by the player
|
||||||
|
bool setNewOwner = (mMerchant.isEmpty());
|
||||||
const ItemStack& item = sourceModel->getItem(i);
|
const ItemStack& item = sourceModel->getItem(i);
|
||||||
|
|
||||||
bool setNewOwner = Misc::StringUtils::ciEqual(item.mBase.getCellRef().getOwner(), transferFrom.getCellRef().getRefId())
|
|
||||||
|| item.mBase.getCellRef().getOwner().empty();
|
|
||||||
|
|
||||||
// copy the borrowed items to our model
|
// copy the borrowed items to our model
|
||||||
copyItem(item, it->mCount, setNewOwner);
|
copyItem(item, it->mCount, setNewOwner);
|
||||||
// then remove them from the source model
|
// then remove them from the source model
|
||||||
|
|
|
@ -30,8 +30,7 @@ namespace MWGui
|
||||||
void returnItemBorrowedFromUs (ModelIndex itemIndex, ItemModel* source, size_t count);
|
void returnItemBorrowedFromUs (ModelIndex itemIndex, ItemModel* source, size_t count);
|
||||||
|
|
||||||
/// Permanently transfers items that were borrowed to us from another model to this model
|
/// Permanently transfers items that were borrowed to us from another model to this model
|
||||||
/// @param transferFrom the actor that lent us the items
|
void transferItems ();
|
||||||
void transferItems (const MWWorld::Ptr& transferFrom);
|
|
||||||
/// Aborts trade
|
/// Aborts trade
|
||||||
void abort();
|
void abort();
|
||||||
|
|
||||||
|
|
|
@ -370,8 +370,8 @@ namespace MWGui
|
||||||
MWBase::Environment::get().getDialogueManager()->applyDispositionChange(iBarterSuccessDisposition);
|
MWBase::Environment::get().getDialogueManager()->applyDispositionChange(iBarterSuccessDisposition);
|
||||||
|
|
||||||
// make the item transfer
|
// make the item transfer
|
||||||
mTradeModel->transferItems(player);
|
mTradeModel->transferItems();
|
||||||
playerItemModel->transferItems(mPtr);
|
playerItemModel->transferItems();
|
||||||
|
|
||||||
// transfer the gold
|
// transfer the gold
|
||||||
if (mCurrentBalance != 0)
|
if (mCurrentBalance != 0)
|
||||||
|
|
Loading…
Reference in a new issue