Mercurial > repos > IBBoard.WarFoundry.API
changeset 290:5ed39187b0e3
Re #318: DefaultWarFoundryLoader throws null ref when loading individual files
* Initial quick fix that should resolve the issues, but isn't ideal in the long run
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Mon, 13 Dec 2010 21:03:02 +0000 |
parents | 08a9c960e17f |
children | 24e7b571f50f |
files | api/DefaultWarFoundryLoader.cs |
diffstat | 1 files changed, 28 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/api/DefaultWarFoundryLoader.cs Mon Dec 13 20:20:00 2010 +0000 +++ b/api/DefaultWarFoundryLoader.cs Mon Dec 13 21:03:02 2010 +0000 @@ -16,35 +16,37 @@ private Dictionary<string, GameSystem> systemsTable; private Dictionary<string, Dictionary<string, Dictionary<string, Race>>> racesTable; //Keys are: System, Race, SubRace - public DefaultWarFoundryLoader () + public DefaultWarFoundryLoader() { + systemsTable = new Dictionary<string,GameSystem>(); + racesTable = new Dictionary<string,Dictionary<string,Dictionary<string,Race>>>(); } - + protected override void PrepareForFileLoad() { //Just set up blank dictionaries for now - may try different and more complex handling in future - systemsTable = new Dictionary<string,GameSystem>(); - racesTable = new Dictionary<string,Dictionary<string,Dictionary<string,Race>>>(); + systemsTable.Clear(); + racesTable.Clear(); } - - protected override GameSystem GetExistingSystemForSystem (GameSystem system) + + protected override GameSystem GetExistingSystemForSystem(GameSystem system) { return DictionaryUtils.GetValue(systemsTable, system.ID.ToLower()); } - - protected override void DoStoreGameSystem (GameSystem system) + + protected override void DoStoreGameSystem(GameSystem system) { systemsTable[system.ID.ToLower()] = system; } - protected override void DoStoreRace (Race race) + protected override void DoStoreRace(Race race) { Dictionary<string, Dictionary<string, Race>> systemRaces; string systemID = race.GameSystem.ID.ToLower(); racesTable.TryGetValue(systemID, out systemRaces); - if (systemRaces==null) + if (systemRaces == null) { systemRaces = new Dictionary<string,Dictionary<string,Race>>(); racesTable.Add(systemID, systemRaces); @@ -53,7 +55,7 @@ Dictionary<string, Race> subRaces; systemRaces.TryGetValue(race.ID.ToLower(), out subRaces); - if (subRaces==null) + if (subRaces == null) { subRaces = new Dictionary<string,Race>(); systemRaces.Add(race.ID.ToLower(), subRaces); @@ -76,20 +78,20 @@ subRaces.Add(race.SubID.ToLower(), race); } } - + public override GameSystem[] GetGameSystems() { - if (systemsTable==null) + if (systemsTable == null) { LoadFiles(); } return DictionaryUtils.ToArray<string, GameSystem>(systemsTable); } - + public override GameSystem GetGameSystem(string systemID) { - if (systemsTable==null) + if (systemsTable == null) { LoadFiles(); } @@ -98,12 +100,12 @@ systemsTable.TryGetValue(systemID.ToLower(), out system); return system; } - + protected internal override void RemoveGameSystem(GameSystem system) { systemsTable.Remove(system.ID.ToLower()); } - + public override Race[] GetRaces(GameSystem system) { return GetRaces(system.ID); @@ -120,7 +122,7 @@ /// </returns> public Race[] GetRaces(string systemID) { - if (racesTable==null) + if (racesTable == null) { LoadFiles(); } @@ -129,7 +131,7 @@ Dictionary<string, Dictionary<string, Race>> system; racesTable.TryGetValue(systemID, out system); - if (system==null) + if (system == null) { return new Race[0]; } @@ -138,7 +140,7 @@ foreach (Dictionary<string, Race> racesDict in system.Values) { - count+= racesDict.Count; + count += racesDict.Count; } Race[] races = new Race[count]; @@ -154,7 +156,7 @@ return races; } - + public override Race GetRace(GameSystem system, string raceID) { return GetRace(system.ID, raceID); @@ -199,7 +201,7 @@ /// </returns> public Race GetRace(string systemID, string raceID, string raceSubID) { - if (racesTable==null) + if (racesTable == null) { LoadFiles(); } @@ -239,17 +241,17 @@ subraces.Remove(race.SubID.ToLower()); } } - + public override string[] GetGameSystemIDs() { - if (systemsTable==null) + if (systemsTable == null) { LoadFiles(); } return DictionaryUtils.ToKeyArray(systemsTable); } - + public override string[] GetSystemRaceIDs(GameSystem system) { return GetSystemRaceIDs(system.ID); @@ -273,7 +275,7 @@ Dictionary<string, Dictionary<string, Race>> races = racesTable[systemID.ToLower()]; - if (races==null) + if (races == null) { return new string[0]; }