diff --git a/apps/openmw/mwgui/container.cpp b/apps/openmw/mwgui/container.cpp index cbfb49c4e..7f4e89d66 100644 --- a/apps/openmw/mwgui/container.cpp +++ b/apps/openmw/mwgui/container.cpp @@ -123,7 +123,7 @@ namespace MWGui objectList->action = mwmp::BaseObjectList::REMOVE; objectList->containerSubAction = mwmp::BaseObjectList::DRAG; - mwmp::BaseObject baseObject = objectList->getBaseObject(mPtr); + mwmp::BaseObject baseObject = objectList->getBaseObjectFromPtr(mPtr); MWWorld::Ptr itemPtr = mModel->getItem(mSelectedItem).mBase; objectList->addContainerItem(baseObject, itemPtr, itemPtr.getRefData().getCount(), count); objectList->addObject(baseObject); @@ -167,7 +167,7 @@ namespace MWGui objectList->action = mwmp::BaseObjectList::ADD; objectList->containerSubAction = mwmp::BaseObjectList::DROP; - mwmp::BaseObject baseObject = objectList->getBaseObject(mPtr); + mwmp::BaseObject baseObject = objectList->getBaseObjectFromPtr(mPtr); MWWorld::Ptr itemPtr = mDragAndDrop->mItem.mBase; objectList->addContainerItem(baseObject, itemPtr, mDragAndDrop->mDraggedCount, 0); objectList->addObject(baseObject); diff --git a/apps/openmw/mwgui/containeritemmodel.cpp b/apps/openmw/mwgui/containeritemmodel.cpp index 2058d1c88..06d0155d3 100644 --- a/apps/openmw/mwgui/containeritemmodel.cpp +++ b/apps/openmw/mwgui/containeritemmodel.cpp @@ -121,7 +121,7 @@ MWWorld::Ptr ContainerItemModel::copyItem (const ItemStack& item, size_t count, objectList->cell = *source.getCell()->getCell(); objectList->action = mwmp::BaseObjectList::ADD; objectList->containerSubAction = mwmp::BaseObjectList::NONE; - mwmp::BaseObject baseObject = objectList->getBaseObject(source); + mwmp::BaseObject baseObject = objectList->getBaseObjectFromPtr(source); objectList->addContainerItem(baseObject, item.mBase, count, 0); objectList->addObject(baseObject); objectList->sendContainer(); @@ -173,7 +173,7 @@ void ContainerItemModel::removeItem (const ItemStack& item, size_t count) objectList->cell = *source.getCell()->getCell(); objectList->action = mwmp::BaseObjectList::REMOVE; objectList->containerSubAction = mwmp::BaseObjectList::NONE; - mwmp::BaseObject baseObject = objectList->getBaseObject(source); + mwmp::BaseObject baseObject = objectList->getBaseObjectFromPtr(source); objectList->addContainerItem(baseObject, *it, it->getRefData().getCount(), toRemove); objectList->addObject(baseObject); objectList->sendContainer(); diff --git a/apps/openmw/mwmp/ObjectList.cpp b/apps/openmw/mwmp/ObjectList.cpp index 83689517f..8cb6f417d 100644 --- a/apps/openmw/mwmp/ObjectList.cpp +++ b/apps/openmw/mwmp/ObjectList.cpp @@ -69,12 +69,28 @@ void ObjectList::addObject(BaseObject baseObject) baseObjects.push_back(baseObject); } -BaseObject ObjectList::getBaseObject(const MWWorld::Ptr& ptr) +mwmp::BaseObject ObjectList::getBaseObjectFromPtr(const MWWorld::Ptr& ptr) { mwmp::BaseObject baseObject; - baseObject.refId = ptr.getCellRef().getRefId(); - baseObject.refNum = ptr.getCellRef().getRefNum().mIndex; - baseObject.mpNum = ptr.getCellRef().getMpNum(); + + if (ptr == MWBase::Environment::get().getWorld()->getPlayerPtr()) + { + baseObject.isPlayer = true; + baseObject.guid = mwmp::Main::get().getLocalPlayer()->guid; + } + else if (mwmp::PlayerList::isDedicatedPlayer(ptr)) + { + baseObject.isPlayer = true; + baseObject.guid = mwmp::PlayerList::getPlayer(ptr)->guid; + } + else + { + baseObject.isPlayer = false; + baseObject.refId = ptr.getCellRef().getRefId(); + baseObject.refNum = ptr.getCellRef().getRefNum().mIndex; + baseObject.mpNum = ptr.getCellRef().getMpNum(); + } + return baseObject; } @@ -117,7 +133,7 @@ void ObjectList::addEntireContainer(const MWWorld::Ptr& ptr) MWWorld::ContainerStore& containerStore = ptr.getClass().getContainerStore(ptr); - mwmp::BaseObject baseObject = getBaseObject(ptr); + mwmp::BaseObject baseObject = getBaseObjectFromPtr(ptr); for (const auto itemPtr : containerStore) { @@ -692,7 +708,7 @@ void ObjectList::restockObjects(MWWorld::CellStore* cellStore) cell = *ptrFound.getCell()->getCell(); action = mwmp::BaseObjectList::SET; containerSubAction = mwmp::BaseObjectList::RESTOCK_RESULT; - mwmp::BaseObject baseObject = getBaseObject(ptrFound); + mwmp::BaseObject baseObject = getBaseObjectFromPtr(ptrFound); addEntireContainer(ptrFound); sendContainer(); } @@ -931,31 +947,6 @@ void ObjectList::playVideo() } } -mwmp::BaseObject ObjectList::getObjectFromPtr(const MWWorld::Ptr& ptr) -{ - mwmp::BaseObject baseObject; - - if (ptr == MWBase::Environment::get().getWorld()->getPlayerPtr()) - { - baseObject.isPlayer = true; - baseObject.guid = mwmp::Main::get().getLocalPlayer()->guid; - } - else if (mwmp::PlayerList::isDedicatedPlayer(ptr)) - { - baseObject.isPlayer = true; - baseObject.guid = mwmp::PlayerList::getPlayer(ptr)->guid; - } - else - { - baseObject.isPlayer = false; - baseObject.refId = ptr.getCellRef().getRefId(); - baseObject.refNum = ptr.getCellRef().getRefNum().mIndex; - baseObject.mpNum = ptr.getCellRef().getMpNum(); - } - - return baseObject; -} - void ObjectList::addAllContainers(MWWorld::CellStore* cellStore) { for (auto &ref : cellStore->getContainers()->mList) @@ -1000,7 +991,7 @@ void ObjectList::addObjectGeneric(const MWWorld::Ptr& ptr) { cell = *ptr.getCell()->getCell(); - mwmp::BaseObject baseObject = getObjectFromPtr(ptr); + mwmp::BaseObject baseObject = getBaseObjectFromPtr(ptr); addObject(baseObject); } @@ -1008,7 +999,7 @@ void ObjectList::addObjectActivate(const MWWorld::Ptr& ptr, const MWWorld::Ptr& { cell = *ptr.getCell()->getCell(); - mwmp::BaseObject baseObject = getObjectFromPtr(ptr); + mwmp::BaseObject baseObject = getBaseObjectFromPtr(ptr); baseObject.activatingActor = MechanicsHelper::getTarget(activatingActor); addObject(baseObject); @@ -1018,7 +1009,7 @@ void ObjectList::addObjectHit(const MWWorld::Ptr& ptr, const MWWorld::Ptr& hitti { cell = *ptr.getCell()->getCell(); - mwmp::BaseObject baseObject = getObjectFromPtr(ptr); + mwmp::BaseObject baseObject = getBaseObjectFromPtr(ptr); baseObject.hittingActor = MechanicsHelper::getTarget(hittingActor); baseObject.hitAttack.success = false; @@ -1029,7 +1020,7 @@ void ObjectList::addObjectHit(const MWWorld::Ptr& ptr, const MWWorld::Ptr& hitti { cell = *ptr.getCell()->getCell(); - mwmp::BaseObject baseObject = getObjectFromPtr(ptr); + mwmp::BaseObject baseObject = getBaseObjectFromPtr(ptr); baseObject.hittingActor = MechanicsHelper::getTarget(hittingActor); baseObject.hitAttack = hitAttack; diff --git a/apps/openmw/mwmp/ObjectList.hpp b/apps/openmw/mwmp/ObjectList.hpp index e64c558c4..c603c86d4 100644 --- a/apps/openmw/mwmp/ObjectList.hpp +++ b/apps/openmw/mwmp/ObjectList.hpp @@ -18,7 +18,7 @@ namespace mwmp void reset(); void addObject(BaseObject baseObject); - BaseObject getBaseObject(const MWWorld::Ptr& ptr); + mwmp::BaseObject getBaseObjectFromPtr(const MWWorld::Ptr& ptr); 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); @@ -48,8 +48,6 @@ namespace mwmp void playMusic(); void playVideo(); - mwmp::BaseObject getObjectFromPtr(const MWWorld::Ptr& ptr); - void addAllContainers(MWWorld::CellStore* cellStore); void addRequestedContainers(MWWorld::CellStore* cellStore, const std::vector& requestObjects); diff --git a/apps/openmw/mwscript/containerextensions.cpp b/apps/openmw/mwscript/containerextensions.cpp index 846265374..122db74ac 100644 --- a/apps/openmw/mwscript/containerextensions.cpp +++ b/apps/openmw/mwscript/containerextensions.cpp @@ -143,7 +143,7 @@ namespace MWScript objectList->cell = *ptr.getCell()->getCell(); objectList->action = mwmp::BaseObjectList::ADD; objectList->containerSubAction = mwmp::BaseObjectList::NONE; - mwmp::BaseObject baseObject = objectList->getBaseObject(ptr); + mwmp::BaseObject baseObject = objectList->getBaseObjectFromPtr(ptr); objectList->addContainerItem(baseObject, item, count, 0); objectList->addObject(baseObject); objectList->sendContainer(); @@ -271,7 +271,7 @@ namespace MWScript objectList->action = mwmp::BaseObjectList::REMOVE; objectList->containerSubAction = mwmp::BaseObjectList::NONE; - mwmp::BaseObject baseObject = objectList->getBaseObject(ptr); + mwmp::BaseObject baseObject = objectList->getBaseObjectFromPtr(ptr); objectList->addContainerItem(baseObject, item, 0, count); objectList->addObject(baseObject); objectList->sendContainer();