From cd835104b7cb11b0cb150559ddd18951eb345f5d Mon Sep 17 00:00:00 2001 From: David Cernat Date: Sun, 15 Nov 2020 00:44:10 +0200 Subject: [PATCH] [Client] Add resurrect() method to DedicatedPlayer --- apps/openmw/mwmp/DedicatedPlayer.cpp | 14 ++++++++++++++ apps/openmw/mwmp/DedicatedPlayer.hpp | 1 + .../processors/player/ProcessorPlayerResurrect.hpp | 13 +------------ 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/apps/openmw/mwmp/DedicatedPlayer.cpp b/apps/openmw/mwmp/DedicatedPlayer.cpp index 6c104ef75..87bf1afd5 100644 --- a/apps/openmw/mwmp/DedicatedPlayer.cpp +++ b/apps/openmw/mwmp/DedicatedPlayer.cpp @@ -459,6 +459,20 @@ void DedicatedPlayer::equipItem(std::string itemId, bool noSound) } } +void DedicatedPlayer::resurrect() +{ + creatureStats.mDead = false; + if (creatureStats.mDynamic[0].mMod < 1) + creatureStats.mDynamic[0].mMod = 1; + creatureStats.mDynamic[0].mCurrent = creatureStats.mDynamic[0].mMod; + + MWBase::Environment::get().getMechanicsManager()->resurrect(getPtr()); + + MWMechanics::DynamicStat health; + health.readState(creatureStats.mDynamic[0]); + getPtr().getClass().getCreatureStats(getPtr()).setHealth(health); +} + void DedicatedPlayer::updateMarker() { if (!markerEnabled) diff --git a/apps/openmw/mwmp/DedicatedPlayer.hpp b/apps/openmw/mwmp/DedicatedPlayer.hpp index d0d724cd8..808d43a72 100644 --- a/apps/openmw/mwmp/DedicatedPlayer.hpp +++ b/apps/openmw/mwmp/DedicatedPlayer.hpp @@ -46,6 +46,7 @@ namespace mwmp void playSpeech(); void equipItem(std::string itemId, bool noSound = false); + void resurrect(); void updateMarker(); void removeMarker(); diff --git a/apps/openmw/mwmp/processors/player/ProcessorPlayerResurrect.hpp b/apps/openmw/mwmp/processors/player/ProcessorPlayerResurrect.hpp index ab724b140..0dfe2a1e8 100644 --- a/apps/openmw/mwmp/processors/player/ProcessorPlayerResurrect.hpp +++ b/apps/openmw/mwmp/processors/player/ProcessorPlayerResurrect.hpp @@ -32,18 +32,7 @@ namespace mwmp { LOG_APPEND(TimedLog::LOG_INFO, "- Packet was about %s", player->npc.mName.c_str()); - player->creatureStats.mDead = false; - if (player->creatureStats.mDynamic[0].mMod < 1) - player->creatureStats.mDynamic[0].mMod = 1; - player->creatureStats.mDynamic[0].mCurrent = player->creatureStats.mDynamic[0].mMod; - - MWWorld::Ptr ptr = static_cast(player)->getPtr(); - - MWBase::Environment::get().getMechanicsManager()->resurrect(ptr); - - MWMechanics::DynamicStat health; - health.readState(player->creatureStats.mDynamic[0]); - ptr.getClass().getCreatureStats(ptr).setHealth(health); + static_cast(player)->resurrect(); } } };