diff --git a/apps/openmw/mwgui/hud.cpp b/apps/openmw/mwgui/hud.cpp index 7b51a2a02..f22139d3f 100644 --- a/apps/openmw/mwgui/hud.cpp +++ b/apps/openmw/mwgui/hud.cpp @@ -313,25 +313,7 @@ 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; - - // LocalPlayer's inventory has changed, so send a packet with it - mwmp::Main::get().getLocalPlayer()->sendInventory(); - } } } } diff --git a/apps/openmw/mwgui/inventorywindow.cpp b/apps/openmw/mwgui/inventorywindow.cpp index 9c4bf1054..b477bf2b4 100644 --- a/apps/openmw/mwgui/inventorywindow.cpp +++ b/apps/openmw/mwgui/inventorywindow.cpp @@ -16,6 +16,12 @@ #include +#include "../mwmp/Main.hpp" +#include "../mwmp/Networking.hpp" +#include "../mwmp/LocalEvent.hpp" +#include "../mwmp/LocalPlayer.hpp" +#include "../mwworld/cellstore.hpp" + #include "../mwbase/world.hpp" #include "../mwbase/environment.hpp" #include "../mwbase/soundmanager.hpp" @@ -629,6 +635,22 @@ 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; + + // LocalPlayer's inventory has changed, so send a packet with it + mwmp::Main::get().getLocalPlayer()->sendInventory(); + // remove from world MWBase::Environment::get().getWorld()->deleteObject (object);