mirror of
				https://github.com/TES3MP/openmw-tes3mp.git
				synced 2025-10-31 23:26:43 +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); | ||||
|         MWWorld::Ptr itemPtr = mModel->getItem(mSelectedItem).mBase; | ||||
|         objectList->addContainerItem(baseObject, itemPtr, count); | ||||
|         objectList->addContainerItem(baseObject, itemPtr, itemPtr.getRefData().getCount(), count); | ||||
|         objectList->addObject(baseObject); | ||||
|         objectList->sendContainer(); | ||||
|         /*
 | ||||
|  | @ -169,17 +169,7 @@ namespace MWGui | |||
| 
 | ||||
|             mwmp::BaseObject baseObject = objectList->getBaseObject(mPtr); | ||||
|             MWWorld::Ptr itemPtr = mDragAndDrop->mItem.mBase; | ||||
|             mwmp::ContainerItem containerItem; | ||||
|             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->addContainerItem(baseObject, itemPtr, mDragAndDrop->mDraggedCount, 0); | ||||
|             objectList->addObject(baseObject); | ||||
|             objectList->sendContainer(); | ||||
|         } | ||||
|  |  | |||
|  | @ -78,17 +78,34 @@ BaseObject ObjectList::getBaseObject(const MWWorld::Ptr& ptr) | |||
|     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; | ||||
|     containerItem.refId = itemPtr.getCellRef().getRefId(); | ||||
|     containerItem.count = itemPtr.getRefData().getCount(); | ||||
|     containerItem.count = itemCount; | ||||
|     containerItem.charge = itemPtr.getCellRef().getCharge(); | ||||
|     containerItem.enchantmentCharge = itemPtr.getCellRef().getEnchantmentCharge(); | ||||
|     containerItem.soul = itemPtr.getCellRef().getSoul(); | ||||
|     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); | ||||
| } | ||||
|  | @ -104,7 +121,7 @@ void ObjectList::addEntireContainer(const MWWorld::Ptr& ptr) | |||
| 
 | ||||
|     for (const auto itemPtr : containerStore) | ||||
|     { | ||||
|         addContainerItem(baseObject, itemPtr, itemPtr.getRefData().getCount()); | ||||
|         addContainerItem(baseObject, itemPtr, itemPtr.getRefData().getCount(), itemPtr.getRefData().getCount()); | ||||
|     } | ||||
| 
 | ||||
|     addObject(baseObject); | ||||
|  |  | |||
|  | @ -19,7 +19,8 @@ namespace mwmp | |||
| 
 | ||||
|         void addObject(BaseObject baseObject); | ||||
|         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 editContainers(MWWorld::CellStore* cellStore); | ||||
|  |  | |||
|  | @ -143,16 +143,8 @@ namespace MWScript | |||
|                         objectList->cell = *ptr.getCell()->getCell(); | ||||
|                         objectList->action = mwmp::BaseObjectList::ADD; | ||||
|                         objectList->containerSubAction = mwmp::BaseObjectList::NONE; | ||||
| 
 | ||||
|                         mwmp::BaseObject baseObject = objectList->getBaseObject(ptr); | ||||
|                         mwmp::ContainerItem containerItem; | ||||
|                         containerItem.refId = item; | ||||
|                         containerItem.count = count; | ||||
|                         containerItem.charge = -1; | ||||
|                         containerItem.enchantmentCharge = -1; | ||||
|                         containerItem.soul = ""; | ||||
| 
 | ||||
|                         baseObject.containerItems.push_back(containerItem); | ||||
|                         objectList->addContainerItem(baseObject, item, count, 0); | ||||
|                         objectList->addObject(baseObject); | ||||
|                         objectList->sendContainer(); | ||||
|                     } | ||||
|  | @ -280,15 +272,7 @@ namespace MWScript | |||
|                         objectList->containerSubAction = mwmp::BaseObjectList::NONE; | ||||
| 
 | ||||
|                         mwmp::BaseObject baseObject = objectList->getBaseObject(ptr); | ||||
|                         mwmp::ContainerItem containerItem; | ||||
|                         containerItem.refId = item; | ||||
|                         containerItem.count = 0; | ||||
|                         containerItem.actionCount = count; | ||||
|                         containerItem.charge = -1; | ||||
|                         containerItem.enchantmentCharge = -1; | ||||
|                         containerItem.soul = ""; | ||||
| 
 | ||||
|                         baseObject.containerItems.push_back(containerItem); | ||||
|                         objectList->addContainerItem(baseObject, item, 0, count); | ||||
|                         objectList->addObject(baseObject); | ||||
|                         objectList->sendContainer(); | ||||
|                     } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue