From 76538ab3cdf86e392d53abc39ab751d0cb8f116c Mon Sep 17 00:00:00 2001 From: David Cernat Date: Mon, 25 May 2020 23:43:20 +0300 Subject: [PATCH] [Client] Don't send ObjectSound packets for dedicated actor actions --- apps/openmw/mwworld/action.cpp | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/apps/openmw/mwworld/action.cpp b/apps/openmw/mwworld/action.cpp index b16ff5c15..eefe37c43 100644 --- a/apps/openmw/mwworld/action.cpp +++ b/apps/openmw/mwworld/action.cpp @@ -7,6 +7,7 @@ */ #include "../mwmp/Main.hpp" #include "../mwmp/Networking.hpp" +#include "../mwmp/CellController.hpp" #include "../mwmp/ObjectList.hpp" /* End of tes3mp addition @@ -57,7 +58,7 @@ void MWWorld::Action::execute (const Ptr& actor, bool noSound) /* Start of tes3mp addition - Send an ID_OBJECT_SOUND packet every time an actor makes a sound here + Send an ID_OBJECT_SOUND packet every time the local player makes a sound here */ mwmp::ObjectList *objectList = mwmp::Main::get().getNetworking()->getObjectList(); objectList->reset(); @@ -81,13 +82,16 @@ void MWWorld::Action::execute (const Ptr& actor, bool noSound) /* Start of tes3mp addition - Send an ID_OBJECT_SOUND packet every time an actor makes a sound here + Send an ID_OBJECT_SOUND packet every time a local actor makes a sound here */ - mwmp::ObjectList *objectList = mwmp::Main::get().getNetworking()->getObjectList(); - objectList->reset(); - objectList->packetOrigin = mwmp::CLIENT_GAMEPLAY; - objectList->addObjectSound(local ? actor : mTarget, mSoundId, 1.0, 1.0); - objectList->sendObjectSound(); + if (mwmp::Main::get().getCellController()->isLocalActor(actor)) + { + mwmp::ObjectList* objectList = mwmp::Main::get().getNetworking()->getObjectList(); + objectList->reset(); + objectList->packetOrigin = mwmp::CLIENT_GAMEPLAY; + objectList->addObjectSound(local ? actor : mTarget, mSoundId, 1.0, 1.0); + objectList->sendObjectSound(); + } /* End of tes3mp addition */ @@ -101,13 +105,16 @@ void MWWorld::Action::execute (const Ptr& actor, bool noSound) /* Start of tes3mp addition - Send an ID_OBJECT_SOUND packet every time an actor makes a sound here + Send an ID_OBJECT_SOUND packet every time a local actor makes a sound here */ - mwmp::ObjectList *objectList = mwmp::Main::get().getNetworking()->getObjectList(); - objectList->reset(); - objectList->packetOrigin = mwmp::CLIENT_GAMEPLAY; - objectList->addObjectSound(local ? actor : mTarget, mSoundId, 1.0, 1.0); - objectList->sendObjectSound(); + if (mwmp::Main::get().getCellController()->isLocalActor(actor)) + { + mwmp::ObjectList* objectList = mwmp::Main::get().getNetworking()->getObjectList(); + objectList->reset(); + objectList->packetOrigin = mwmp::CLIENT_GAMEPLAY; + objectList->addObjectSound(local ? actor : mTarget, mSoundId, 1.0, 1.0); + objectList->sendObjectSound(); + } /* End of tes3mp addition */