From 6d362721346921cb7b637a92c34f54cede8fee7e Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Tue, 8 Mar 2011 19:40:16 +1300 Subject: [PATCH] #597 fix crash when spawning mapactors if there is no player in the slot. said actors are not spawned now. --- OpenRA.Mods.RA/SpawnMapActors.cs | 10 ++++++++-- mods/ra_perf/maps/571-testcase.oramap | Bin 0 -> 8466 bytes mods/ra_perf/maps/597-testcase.oramap | Bin 0 -> 725 bytes 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 mods/ra_perf/maps/571-testcase.oramap create mode 100644 mods/ra_perf/maps/597-testcase.oramap diff --git a/OpenRA.Mods.RA/SpawnMapActors.cs b/OpenRA.Mods.RA/SpawnMapActors.cs index 3281636f5b..5f32dbeeee 100644 --- a/OpenRA.Mods.RA/SpawnMapActors.cs +++ b/OpenRA.Mods.RA/SpawnMapActors.cs @@ -8,7 +8,8 @@ */ #endregion -using System.Collections.Generic; +using System.Collections.Generic; +using System.Linq; using OpenRA.Traits; namespace OpenRA.Mods.RA @@ -22,7 +23,12 @@ namespace OpenRA.Mods.RA public void WorldLoaded(World world) { foreach (var actorReference in world.Map.Actors.Value) - { + { + // if there is no real player associated, dont spawn it. + var ownerName = actorReference.Value.InitDict.Get().PlayerName; + if (!world.players.Values.Any(p => p.InternalName == ownerName)) + continue; + var initDict = actorReference.Value.InitDict; initDict.Add(new SkipMakeAnimsInit()); Actors[actorReference.Key] = world.CreateActor(actorReference.Value.Type, initDict); diff --git a/mods/ra_perf/maps/571-testcase.oramap b/mods/ra_perf/maps/571-testcase.oramap new file mode 100644 index 0000000000000000000000000000000000000000..49ba76e1939f04b33fe700765ac0fb920ffb7b62 GIT binary patch literal 8466 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 literal 0 HcmV?d00001 diff --git a/mods/ra_perf/maps/597-testcase.oramap b/mods/ra_perf/maps/597-testcase.oramap new file mode 100644 index 0000000000000000000000000000000000000000..fc045b73fd251a094945e21cfc3836e0c837e6dc GIT binary patch literal 725 zcmWIWW@Zs#U|`^2cvX^ax1w{uLMo8Q>cGgr4y1Dv3-ppQ^WGjZ6l5^qVOY5SvqgSN zO5Qje zIkJnl|5$2Fc@UTFq@101-){f8t0%6tM(wZ4-Z_^K-|)Zu>Q?Z>B){aVyvOov*VTUP z@G?y>uH!v*+3B>p_nF>{^|v#&hJR=|m!5OY-BRwt!gU{x^KLuXxM=20UK1B9QH}q# zSN@%|2%T>?U%)Njr0g*Ha{PjOrR*IUI;z*7Q$gX?NwOSJCWuH{2AQ-}9jLM~A=PkCK>p73P0$Ra}}R z%x9?8oUTaT+q(E)`{XsxR?c{&bKFwtFaPtTNy^iL=e(bsE&X`IqRiLqx3rIa3Oicf zSh6{wxa6a3lj*MRe-e`3`T^dIOvVhjQx$45fTl5!CK0G6YzY9QiIG78NOl1+NE0YI U1bDNu0l5rJK$s1rLzqB30LY#Z^#A|> literal 0 HcmV?d00001