From 96049befe90cdbc932548aba7d5d614091a1ed26 Mon Sep 17 00:00:00 2001 From: David Cernat Date: Fri, 13 Dec 2019 13:07:21 +0200 Subject: [PATCH] [Client] Add and use getObjectFromPtr() method in ObjectList --- apps/openmw/mwmp/ObjectList.cpp | 67 +++++++++++++-------------------- apps/openmw/mwmp/ObjectList.hpp | 2 + 2 files changed, 29 insertions(+), 40 deletions(-) diff --git a/apps/openmw/mwmp/ObjectList.cpp b/apps/openmw/mwmp/ObjectList.cpp index 7f314ab9d..def9db54a 100644 --- a/apps/openmw/mwmp/ObjectList.cpp +++ b/apps/openmw/mwmp/ObjectList.cpp @@ -898,6 +898,31 @@ 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) @@ -942,26 +967,7 @@ void ObjectList::addObjectActivate(const MWWorld::Ptr& ptr, const MWWorld::Ptr& { cell = *ptr.getCell()->getCell(); - 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(); - } - + mwmp::BaseObject baseObject = getObjectFromPtr(ptr); baseObject.activatingActor = MechanicsHelper::getTarget(activatingActor); addObject(baseObject); @@ -971,26 +977,7 @@ void ObjectList::addObjectHit(const MWWorld::Ptr& ptr, const MWWorld::Ptr& hitti { cell = *ptr.getCell()->getCell(); - 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(); - } - + mwmp::BaseObject baseObject = getObjectFromPtr(ptr); baseObject.hittingActor = MechanicsHelper::getTarget(hittingActor); addObject(baseObject); diff --git a/apps/openmw/mwmp/ObjectList.hpp b/apps/openmw/mwmp/ObjectList.hpp index 9431d4066..987888ad9 100644 --- a/apps/openmw/mwmp/ObjectList.hpp +++ b/apps/openmw/mwmp/ObjectList.hpp @@ -47,6 +47,8 @@ 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);