From 6d109068325679a49232d28e2d627d162dfd0fe5 Mon Sep 17 00:00:00 2001 From: David Cernat Date: Tue, 23 Jun 2020 01:05:39 +0300 Subject: [PATCH] [Server] Fix crashes related to reading actor lists in unloaded cells --- apps/openmw-mp/Script/Functions/Actors.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/openmw-mp/Script/Functions/Actors.cpp b/apps/openmw-mp/Script/Functions/Actors.cpp index 1a616dec5..5bae4b415 100644 --- a/apps/openmw-mp/Script/Functions/Actors.cpp +++ b/apps/openmw-mp/Script/Functions/Actors.cpp @@ -29,7 +29,11 @@ void ActorFunctions::ReadCellActorList(const char* cellDescription) noexcept { ESM::Cell esmCell = Utils::getCellFromDescription(cellDescription); Cell *serverCell = CellController::get()->getCell(&esmCell); - readActorList = serverCell->getActorList(); + + if (serverCell != nullptr) + readActorList = serverCell->getActorList(); + else + readActorList = {}; } void ActorFunctions::ClearActorList() noexcept @@ -53,6 +57,9 @@ void ActorFunctions::CopyReceivedActorListToStore() noexcept unsigned int ActorFunctions::GetActorListSize() noexcept { + if (readActorList == nullptr) + return 0; + return readActorList->count; }