# HG changeset patch # User IBBoard # Date 1261666483 0 # Node ID d1c90159547a5a901b8d23428189bd9904868959 # Parent 73da8d13ce69b9c4c6724a9f38ab98bc05814b6d Fixes #236: Race loading should fail cleanly if system doesn't exist * Exception if we get a null game system Also: * Remove unused variable diff -r 73da8d13ce69 -r d1c90159547a api/Factories/Xml/WarFoundryXmlRaceFactory.cs --- a/api/Factories/Xml/WarFoundryXmlRaceFactory.cs Thu Dec 24 10:33:20 2009 +0000 +++ b/api/Factories/Xml/WarFoundryXmlRaceFactory.cs Thu Dec 24 14:54:43 2009 +0000 @@ -35,7 +35,7 @@ private XmlDocument GetExtraData(Race obj) { XmlDocument extra = null; - extraData.TryGetValue(obj, out extra); + extraData.TryGetValue(obj, out extra); return extra; } @@ -45,7 +45,14 @@ string subid = elem.GetAttribute("subid"); string systemID = elem.GetAttribute("system"); string name = elem.GetAttribute("name"); - Race race = new Race(id, subid, name, WarFoundryLoader.GetDefault().GetGameSystem(systemID), mainFactory); + GameSystem gameSystem = WarFoundryLoader.GetDefault ().GetGameSystem (systemID); + + if (gameSystem == null) + { + throw new InvalidFileException("Referenced game system, "+systemID+" did not exist"); + } + + Race race = new Race(id, subid, name, gameSystem, mainFactory); StoreExtraData(race, elem); return race; } diff -r 73da8d13ce69 -r d1c90159547a api/Requirements/UnitRequiresAtLeastRequirement.cs --- a/api/Requirements/UnitRequiresAtLeastRequirement.cs Thu Dec 24 10:33:20 2009 +0000 +++ b/api/Requirements/UnitRequiresAtLeastRequirement.cs Thu Dec 24 14:54:43 2009 +0000 @@ -57,7 +57,6 @@ protected override AbstractFailedRequirement CanAddToArmy(Army army, UnitType type) { FailedRequirement failure = null; - int count = requiredTypes.Length; foreach (UnitRequirementItem req in requiredTypes) {