mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-05 18:49:40 +00:00
[Client] Simplify container sending with new addContainerItem() methods
This commit is contained in:
parent
51f0acbaf5
commit
d2ba4a12d9
4 changed files with 27 additions and 35 deletions
|
@ -125,7 +125,7 @@ namespace MWGui
|
||||||
|
|
||||||
mwmp::BaseObject baseObject = objectList->getBaseObject(mPtr);
|
mwmp::BaseObject baseObject = objectList->getBaseObject(mPtr);
|
||||||
MWWorld::Ptr itemPtr = mModel->getItem(mSelectedItem).mBase;
|
MWWorld::Ptr itemPtr = mModel->getItem(mSelectedItem).mBase;
|
||||||
objectList->addContainerItem(baseObject, itemPtr, count);
|
objectList->addContainerItem(baseObject, itemPtr, itemPtr.getRefData().getCount(), count);
|
||||||
objectList->addObject(baseObject);
|
objectList->addObject(baseObject);
|
||||||
objectList->sendContainer();
|
objectList->sendContainer();
|
||||||
/*
|
/*
|
||||||
|
@ -169,17 +169,7 @@ namespace MWGui
|
||||||
|
|
||||||
mwmp::BaseObject baseObject = objectList->getBaseObject(mPtr);
|
mwmp::BaseObject baseObject = objectList->getBaseObject(mPtr);
|
||||||
MWWorld::Ptr itemPtr = mDragAndDrop->mItem.mBase;
|
MWWorld::Ptr itemPtr = mDragAndDrop->mItem.mBase;
|
||||||
mwmp::ContainerItem containerItem;
|
objectList->addContainerItem(baseObject, itemPtr, mDragAndDrop->mDraggedCount, 0);
|
||||||
containerItem.refId = itemPtr.getCellRef().getRefId();
|
|
||||||
|
|
||||||
// Make sure we get the drag and drop count, not the count of the original item
|
|
||||||
containerItem.count = mDragAndDrop->mDraggedCount;
|
|
||||||
|
|
||||||
containerItem.charge = itemPtr.getCellRef().getCharge();
|
|
||||||
containerItem.enchantmentCharge = itemPtr.getCellRef().getEnchantmentCharge();
|
|
||||||
containerItem.soul = itemPtr.getCellRef().getSoul();
|
|
||||||
|
|
||||||
baseObject.containerItems.push_back(containerItem);
|
|
||||||
objectList->addObject(baseObject);
|
objectList->addObject(baseObject);
|
||||||
objectList->sendContainer();
|
objectList->sendContainer();
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,17 +78,34 @@ BaseObject ObjectList::getBaseObject(const MWWorld::Ptr& ptr)
|
||||||
return baseObject;
|
return baseObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectList::addContainerItem(mwmp::BaseObject& baseObject, const MWWorld::Ptr& itemPtr, int actionCount)
|
void ObjectList::addContainerItem(mwmp::BaseObject& baseObject, const MWWorld::Ptr& itemPtr, int itemCount, int actionCount)
|
||||||
{
|
{
|
||||||
mwmp::ContainerItem containerItem;
|
mwmp::ContainerItem containerItem;
|
||||||
containerItem.refId = itemPtr.getCellRef().getRefId();
|
containerItem.refId = itemPtr.getCellRef().getRefId();
|
||||||
containerItem.count = itemPtr.getRefData().getCount();
|
containerItem.count = itemCount;
|
||||||
containerItem.charge = itemPtr.getCellRef().getCharge();
|
containerItem.charge = itemPtr.getCellRef().getCharge();
|
||||||
containerItem.enchantmentCharge = itemPtr.getCellRef().getEnchantmentCharge();
|
containerItem.enchantmentCharge = itemPtr.getCellRef().getEnchantmentCharge();
|
||||||
containerItem.soul = itemPtr.getCellRef().getSoul();
|
containerItem.soul = itemPtr.getCellRef().getSoul();
|
||||||
containerItem.actionCount = actionCount;
|
containerItem.actionCount = actionCount;
|
||||||
|
|
||||||
LOG_APPEND(TimedLog::LOG_VERBOSE, "--- Adding container item %s", containerItem.refId.c_str());
|
LOG_APPEND(TimedLog::LOG_VERBOSE, "--- Adding container item %s to packet with count %i and actionCount %i",
|
||||||
|
containerItem.refId.c_str(), itemCount, actionCount);
|
||||||
|
|
||||||
|
baseObject.containerItems.push_back(containerItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObjectList::addContainerItem(mwmp::BaseObject& baseObject, const std::string itemId, int itemCount, int actionCount)
|
||||||
|
{
|
||||||
|
mwmp::ContainerItem containerItem;
|
||||||
|
containerItem.refId = itemId;
|
||||||
|
containerItem.count = itemCount;
|
||||||
|
containerItem.charge = -1;
|
||||||
|
containerItem.enchantmentCharge = -1;
|
||||||
|
containerItem.soul = "";
|
||||||
|
containerItem.actionCount = actionCount;
|
||||||
|
|
||||||
|
LOG_APPEND(TimedLog::LOG_VERBOSE, "--- Adding container item %s to packet with count %i and actionCount %i",
|
||||||
|
containerItem.refId.c_str(), itemCount, actionCount);
|
||||||
|
|
||||||
baseObject.containerItems.push_back(containerItem);
|
baseObject.containerItems.push_back(containerItem);
|
||||||
}
|
}
|
||||||
|
@ -104,7 +121,7 @@ void ObjectList::addEntireContainer(const MWWorld::Ptr& ptr)
|
||||||
|
|
||||||
for (const auto itemPtr : containerStore)
|
for (const auto itemPtr : containerStore)
|
||||||
{
|
{
|
||||||
addContainerItem(baseObject, itemPtr, itemPtr.getRefData().getCount());
|
addContainerItem(baseObject, itemPtr, itemPtr.getRefData().getCount(), itemPtr.getRefData().getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
addObject(baseObject);
|
addObject(baseObject);
|
||||||
|
|
|
@ -19,7 +19,8 @@ namespace mwmp
|
||||||
|
|
||||||
void addObject(BaseObject baseObject);
|
void addObject(BaseObject baseObject);
|
||||||
BaseObject getBaseObject(const MWWorld::Ptr& ptr);
|
BaseObject getBaseObject(const MWWorld::Ptr& ptr);
|
||||||
void addContainerItem(mwmp::BaseObject& baseObject, const MWWorld::Ptr& itemPtr, int actionCount);
|
void addContainerItem(mwmp::BaseObject& baseObject, const MWWorld::Ptr& itemPtr, int itemCount, int actionCount);
|
||||||
|
void addContainerItem(mwmp::BaseObject& baseObject, const std::string itemId, int itemCount, int actionCount);
|
||||||
void addEntireContainer(const MWWorld::Ptr& ptr);
|
void addEntireContainer(const MWWorld::Ptr& ptr);
|
||||||
|
|
||||||
void editContainers(MWWorld::CellStore* cellStore);
|
void editContainers(MWWorld::CellStore* cellStore);
|
||||||
|
|
|
@ -143,16 +143,8 @@ namespace MWScript
|
||||||
objectList->cell = *ptr.getCell()->getCell();
|
objectList->cell = *ptr.getCell()->getCell();
|
||||||
objectList->action = mwmp::BaseObjectList::ADD;
|
objectList->action = mwmp::BaseObjectList::ADD;
|
||||||
objectList->containerSubAction = mwmp::BaseObjectList::NONE;
|
objectList->containerSubAction = mwmp::BaseObjectList::NONE;
|
||||||
|
|
||||||
mwmp::BaseObject baseObject = objectList->getBaseObject(ptr);
|
mwmp::BaseObject baseObject = objectList->getBaseObject(ptr);
|
||||||
mwmp::ContainerItem containerItem;
|
objectList->addContainerItem(baseObject, item, count, 0);
|
||||||
containerItem.refId = item;
|
|
||||||
containerItem.count = count;
|
|
||||||
containerItem.charge = -1;
|
|
||||||
containerItem.enchantmentCharge = -1;
|
|
||||||
containerItem.soul = "";
|
|
||||||
|
|
||||||
baseObject.containerItems.push_back(containerItem);
|
|
||||||
objectList->addObject(baseObject);
|
objectList->addObject(baseObject);
|
||||||
objectList->sendContainer();
|
objectList->sendContainer();
|
||||||
}
|
}
|
||||||
|
@ -280,15 +272,7 @@ namespace MWScript
|
||||||
objectList->containerSubAction = mwmp::BaseObjectList::NONE;
|
objectList->containerSubAction = mwmp::BaseObjectList::NONE;
|
||||||
|
|
||||||
mwmp::BaseObject baseObject = objectList->getBaseObject(ptr);
|
mwmp::BaseObject baseObject = objectList->getBaseObject(ptr);
|
||||||
mwmp::ContainerItem containerItem;
|
objectList->addContainerItem(baseObject, item, 0, count);
|
||||||
containerItem.refId = item;
|
|
||||||
containerItem.count = 0;
|
|
||||||
containerItem.actionCount = count;
|
|
||||||
containerItem.charge = -1;
|
|
||||||
containerItem.enchantmentCharge = -1;
|
|
||||||
containerItem.soul = "";
|
|
||||||
|
|
||||||
baseObject.containerItems.push_back(containerItem);
|
|
||||||
objectList->addObject(baseObject);
|
objectList->addObject(baseObject);
|
||||||
objectList->sendContainer();
|
objectList->sendContainer();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue