From 906d2a837de4adeecfc32b567516366472083325 Mon Sep 17 00:00:00 2001 From: David Cernat Date: Sun, 30 Dec 2018 11:58:33 +0200 Subject: [PATCH] [Client] Send PlayerInventory packets when recharging items w/ soulgems --- apps/openmw/mwgui/recharge.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/apps/openmw/mwgui/recharge.cpp b/apps/openmw/mwgui/recharge.cpp index 26a364f72..8602c4db3 100644 --- a/apps/openmw/mwgui/recharge.cpp +++ b/apps/openmw/mwgui/recharge.cpp @@ -9,6 +9,18 @@ #include +/* + Start of tes3mp addition + + Include additional headers for multiplayer purposes +*/ +#include "../mwmp/Main.hpp" +#include "../mwmp/Networking.hpp" +#include "../mwmp/LocalPlayer.hpp" +/* + End of tes3mp addition +*/ + #include "../mwbase/world.hpp" #include "../mwbase/environment.hpp" #include "../mwbase/windowmanager.hpp" @@ -163,9 +175,23 @@ void Recharge::onItemClicked(MyGUI::Widget *sender, const MWWorld::Ptr& item) const ESM::Enchantment* enchantment = MWBase::Environment::get().getWorld()->getStore().get().find( item.getClass().getEnchantment(item)); + + /* + Start of tes3mp change (minor) + + Send PlayerInventory packets that replace the original item with the new one + */ + mwmp::LocalPlayer *localPlayer = mwmp::Main::get().getLocalPlayer(); + localPlayer->sendItemChange(item, 1, mwmp::InventoryChanges::REMOVE); + item.getCellRef().setEnchantmentCharge( std::min(item.getCellRef().getEnchantmentCharge() + restored, static_cast(enchantment->mData.mCharge))); + localPlayer->sendItemChange(item, 1, mwmp::InventoryChanges::ADD); + /* + End of tes3mp change (minor) + */ + MWBase::Environment::get().getWindowManager()->playSound("Enchant Success"); player.getClass().getContainerStore(player).restack(item);