diff --git a/apps/openmw/mwmp/LocalActor.cpp b/apps/openmw/mwmp/LocalActor.cpp index 75e6e50a8..5208beabf 100644 --- a/apps/openmw/mwmp/LocalActor.cpp +++ b/apps/openmw/mwmp/LocalActor.cpp @@ -42,12 +42,16 @@ LocalActor::~LocalActor() void LocalActor::update(bool forceUpdate) { - updatePosition(forceUpdate); - updateAnimFlags(forceUpdate); - updateAnimPlay(); - updateSpeech(); updateStatsDynamic(forceUpdate); - updateAttack(); + + if (forceUpdate || !creatureStats.mDead) + { + updatePosition(forceUpdate); + updateAnimFlags(forceUpdate); + updateAnimPlay(); + updateSpeech(); + updateAttack(); + } } void LocalActor::updateCell() @@ -183,6 +187,8 @@ void LocalActor::updateStatsDynamic(bool forceUpdate) magicka.writeState(creatureStats.mDynamic[1]); fatigue.writeState(creatureStats.mDynamic[2]); + creatureStats.mDead = ptrCreatureStats->isDead(); + statTimer = 0; mwmp::Main::get().getNetworking()->getActorList()->addStatsDynamicActor(*this); diff --git a/components/openmw-mp/Base/BaseStructs.hpp b/components/openmw-mp/Base/BaseStructs.hpp index 880aaae29..95fcee848 100644 --- a/components/openmw-mp/Base/BaseStructs.hpp +++ b/components/openmw-mp/Base/BaseStructs.hpp @@ -54,6 +54,7 @@ namespace mwmp struct SimpleCreatureStats { ESM::StatState mDynamic[3]; + bool mDead; }; }