Merge pull request #9720 from penev92/fixUtility

Fix a crash in CheckPlayers when an actor doesn't define an Owner
This commit is contained in:
atlimit8
2015-10-25 12:41:50 -05:00

View File

@@ -59,9 +59,17 @@ namespace OpenRA.Mods.Common.Lint
foreach (var kv in map.ActorDefinitions)
{
var actorReference = new ActorReference(kv.Value.Value, kv.Value.ToDictionary());
var ownerName = actorReference.InitDict.Get<OwnerInit>().PlayerName;
if (!playerNames.Contains(ownerName))
emitError("Actor {0} is owned by unknown player {1}.".F(actorReference.Type, ownerName));
var ownerInit = actorReference.InitDict.GetOrDefault<OwnerInit>();
if (ownerInit == null)
{
emitError("Actor {0} is not owned by any player.".F(kv.Key));
}
else
{
var ownerName = ownerInit.PlayerName;
if (!playerNames.Contains(ownerName))
emitError("Actor {0} is owned by unknown player {1}.".F(actorReference.Type, ownerName));
}
}
}
}