From 68eda63008832f295dbceb7495a9773380c165f0 Mon Sep 17 00:00:00 2001 From: RoosterDragon Date: Sun, 24 Jan 2016 21:16:11 +0000 Subject: [PATCH] Add some debugging code to catch frozen actors without footprints. --- OpenRA.Game/Traits/Player/FrozenActorLayer.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/OpenRA.Game/Traits/Player/FrozenActorLayer.cs b/OpenRA.Game/Traits/Player/FrozenActorLayer.cs index 5a142312f8..3b2ce7709e 100644 --- a/OpenRA.Game/Traits/Player/FrozenActorLayer.cs +++ b/OpenRA.Game/Traits/Player/FrozenActorLayer.cs @@ -64,6 +64,19 @@ namespace OpenRA.Traits .Where(m => shroud.Contains(m)) .ToArray(); + if (Footprint.Length == 0) + throw new ArgumentException(("This frozen actor has no footprint! Please report a bug!\n" + + "Actor Name: {0}\n" + + "Actor Location: {1}\n" + + "Input footprint: [{2}]\n" + + "Input footprint (shroud.Contains): [{3}]\n" + + "Input footprint (map.Contains): [{4}]") + .F(actor.Info.Name, + actor.Location.ToString(), + footprint.Select(p => p.ToString()).JoinWith("|"), + footprint.Select(p => shroud.Contains(p).ToString()).JoinWith("|"), + footprint.Select(p => actor.World.Map.Contains(p).ToString()).JoinWith("|"))); + CenterPosition = self.CenterPosition; Bounds = self.Bounds; TargetTypes = self.GetEnabledTargetTypes().ToHashSet();