From 5ffb564376392a49f03511f48431b7a92ba520eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 22 Dec 2022 11:36:43 +0100 Subject: [PATCH] Fix invalid actors not spawning in-game. --- OpenRA.Mods.Common/Traits/World/SpawnMapActors.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/World/SpawnMapActors.cs b/OpenRA.Mods.Common/Traits/World/SpawnMapActors.cs index e5b980932c..b88b2132b7 100644 --- a/OpenRA.Mods.Common/Traits/World/SpawnMapActors.cs +++ b/OpenRA.Mods.Common/Traits/World/SpawnMapActors.cs @@ -35,10 +35,13 @@ namespace OpenRA.Mods.Common.Traits { var actorReference = new ActorReference(kv.Value.Value, kv.Value.ToDictionary()); - // If there is no real player associated, don't spawn it. - var ownerName = actorReference.Get().InternalName; - if (!world.Players.Any(p => p.InternalName == ownerName)) - continue; + // If an actor's doesn't have a valid owner transfer ownership to neutral + var ownerInit = actorReference.Get(); + if (!world.Players.Any(p => p.InternalName == ownerInit.InstanceName)) + { + actorReference.Remove(ownerInit); + actorReference.Add(new OwnerInit(world.WorldActor.Owner)); + } actorReference.Add(new SkipMakeAnimsInit()); actorReference.Add(new SpawnedByMapInit(kv.Key));