forked from mirror/openmw-tes3mp
[Client] Send PlayerInventory packets when repairing items
This commit is contained in:
parent
5d9893ee92
commit
71679934a1
1 changed files with 26 additions and 0 deletions
|
@ -4,6 +4,18 @@
|
|||
|
||||
#include <components/misc/rng.hpp>
|
||||
|
||||
/*
|
||||
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/mechanicsmanager.hpp"
|
||||
|
@ -57,8 +69,22 @@ void Repair::repair(const MWWorld::Ptr &itemToRepair)
|
|||
// repair by 'y' points
|
||||
int charge = itemToRepair.getClass().getItemHealth(itemToRepair);
|
||||
charge = std::min(charge + y, itemToRepair.getClass().getItemMaxHealth(itemToRepair));
|
||||
|
||||
/*
|
||||
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(itemToRepair, 1, mwmp::InventoryChanges::REMOVE);
|
||||
|
||||
itemToRepair.getCellRef().setCharge(charge);
|
||||
|
||||
localPlayer->sendItemChange(itemToRepair, 1, mwmp::InventoryChanges::ADD);
|
||||
/*
|
||||
End of tes3mp change (minor)
|
||||
*/
|
||||
|
||||
// attempt to re-stack item, in case it was fully repaired
|
||||
MWWorld::ContainerStoreIterator stacked = player.getClass().getContainerStore(player).restack(itemToRepair);
|
||||
|
||||
|
|
Loading…
Reference in a new issue