From c0d67f67fb88c3808ee26c3936e32e925d9bcd3d Mon Sep 17 00:00:00 2001 From: David Cernat Date: Sun, 5 Feb 2017 15:50:21 +0200 Subject: [PATCH] [Client] Move code for sending a packet for picking up world items Previously, an ID_OBJECT_DELETE was sent from inventorywindow.cpp, but this is now sent from hud.cpp because 2 other packets are also sent from there. --- apps/openmw/mwgui/hud.cpp | 15 +++++++++++++++ apps/openmw/mwgui/inventorywindow.cpp | 18 ------------------ 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/apps/openmw/mwgui/hud.cpp b/apps/openmw/mwgui/hud.cpp index 20e8d69d7..f3e56c572 100644 --- a/apps/openmw/mwgui/hud.cpp +++ b/apps/openmw/mwgui/hud.cpp @@ -311,7 +311,22 @@ namespace MWGui { // pick up object if (!object.isEmpty()) + { MWBase::Environment::get().getWindowManager()->getInventoryWindow()->pickUpObject(object); + + // Added by tes3mp + mwmp::LocalEvent *event = mwmp::Main::get().getNetworking()->createLocalEvent(); + event->cell = *object.getCell()->getCell(); + + mwmp::WorldObject worldObject; + worldObject.refId = object.getCellRef().getRefId(); + worldObject.refNumIndex = object.getCellRef().getRefNum().mIndex; + event->addObject(worldObject); + + mwmp::Main::get().getNetworking()->getWorldPacket(ID_OBJECT_DELETE)->Send(event); + delete event; + event = nullptr; + } } } } diff --git a/apps/openmw/mwgui/inventorywindow.cpp b/apps/openmw/mwgui/inventorywindow.cpp index 145c37a64..9c4bf1054 100644 --- a/apps/openmw/mwgui/inventorywindow.cpp +++ b/apps/openmw/mwgui/inventorywindow.cpp @@ -16,11 +16,6 @@ #include -#include "../mwmp/Main.hpp" -#include "../mwmp/Networking.hpp" -#include "../mwmp/LocalEvent.hpp" -#include "../mwworld/cellstore.hpp" - #include "../mwbase/world.hpp" #include "../mwbase/environment.hpp" #include "../mwbase/soundmanager.hpp" @@ -634,19 +629,6 @@ namespace MWGui // can't use ActionTake here because we need an MWWorld::Ptr to the newly inserted object MWWorld::Ptr newObject = *player.getClass().getContainerStore (player).add (object, object.getRefData().getCount(), player); - // Added by tes3mp - mwmp::LocalEvent *event = mwmp::Main::get().getNetworking()->createLocalEvent(); - event->cell = *object.getCell()->getCell(); - - mwmp::WorldObject worldObject; - worldObject.refId = object.getCellRef().getRefId(); - worldObject.refNumIndex = object.getCellRef().getRefNum().mIndex; - event->addObject(worldObject); - - mwmp::Main::get().getNetworking()->getWorldPacket(ID_OBJECT_DELETE)->Send(event); - delete event; - event = nullptr; - // remove from world MWBase::Environment::get().getWorld()->deleteObject (object);