From d333c0b484b00b4f7c5f518c9943374057624f44 Mon Sep 17 00:00:00 2001 From: David Cernat Date: Sat, 29 Apr 2017 17:43:37 +0300 Subject: [PATCH] [Client] Read ActorStatsDynamic packets sent from Lua script cell loads --- apps/openmw/mwmp/Cell.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwmp/Cell.cpp b/apps/openmw/mwmp/Cell.cpp index d95dea727..f1e5bfc8c 100644 --- a/apps/openmw/mwmp/Cell.cpp +++ b/apps/openmw/mwmp/Cell.cpp @@ -144,6 +144,8 @@ void Cell::readAnimPlay(ActorList& actorList) void Cell::readStatsDynamic(ActorList& actorList) { + initializeDedicatedActors(actorList); + BaseActor baseActor; for (unsigned int i = 0; i < actorList.count; i++) @@ -155,7 +157,18 @@ void Cell::readStatsDynamic(ActorList& actorList) { DedicatedActor *actor = dedicatedActors[mapIndex]; actor->creatureStats = baseActor.creatureStats; - actor->hasStatsDynamicData = true; + + if (!actor->hasStatsDynamicData) + { + actor->hasStatsDynamicData = true; + + // If this is our first packet about this actor's dynamic stats, force an update + // now instead of waiting for its frame + // + // That way, if this actor is about to become a LocalActor, initial data about it + // received from the server still gets set + actor->setStatsDynamic(); + } } } }