1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-06-30 15:21:35 +00:00

[Client] Add and use getObjectFromPtr() method in ObjectList

This commit is contained in:
David Cernat 2019-12-13 13:07:21 +02:00
parent e98e57c797
commit 96049befe9
2 changed files with 29 additions and 40 deletions

View file

@ -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);

View file

@ -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<BaseObject>& requestObjects);