/// <summary> /// This routine reads a single record for a hex /// </summary> /// <param name="entries"></param> public void ProcessHexRecord(string[] entries) { GameObject hex; hex = GameObject.Find(entries[0]); hex.GetComponent <HexDatabaseFields>().inGermanZOC = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[1]); hex.GetComponent <HexDatabaseFields>().inAlliedZOC = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[2]); hex.GetComponent <HexDatabaseFields>().alliedControl = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[3]); hex.GetComponent <HexDatabaseFields>().successfullyInvaded = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[4]); hex.GetComponent <HexDatabaseFields>().closeDefenseSupport = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[5]); hex.GetComponent <HexDatabaseFields>().riverInterdiction = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[6]); // By calling the unhighlight rouitne (no hexes should be highlighted at this point) it will // turn close defense and interdicted river hexes the correct color GlobalDefinitions.UnhighlightHex(GameObject.Find(entries[0])); }
/// <summary> /// This routine reads a single record for a unit /// </summary> /// <param name="entries"></param> public void ProcessUnitRecord(string[] entries) { GameObject unit; unit = GameObject.Find(entries[0]); if (entries[1] == "null") { unit.GetComponent <UnitDatabaseFields>().occupiedHex = null; } else { unit.GetComponent <UnitDatabaseFields>().occupiedHex = GameObject.Find(entries[1]); } if (entries[2] == "null") { unit.GetComponent <UnitDatabaseFields>().beginningTurnHex = null; } else { unit.GetComponent <UnitDatabaseFields>().beginningTurnHex = GameObject.Find(entries[2]); } unit.GetComponent <UnitDatabaseFields>().inBritain = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[3]); unit.GetComponent <UnitDatabaseFields>().unitInterdiction = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[4]); unit.GetComponent <UnitDatabaseFields>().invasionAreaIndex = Convert.ToInt32(entries[5]); unit.GetComponent <UnitDatabaseFields>().availableForStrategicMovement = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[6]); unit.GetComponent <UnitDatabaseFields>().inSupply = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[7]); // Need to adjust the highlighting of the unit if it is out of supply GlobalDefinitions.UnhighlightUnit(unit); if (entries[8] == "null") { unit.GetComponent <UnitDatabaseFields>().supplySource = null; } else { unit.GetComponent <UnitDatabaseFields>().supplySource = GameObject.Find(entries[8]); } unit.GetComponent <UnitDatabaseFields>().supplyIncrementsOutOfSupply = Convert.ToInt32(entries[9]); unit.GetComponent <UnitDatabaseFields>().unitEliminated = GlobalDefinitions.ReturnBoolFromSaveFormat(entries[10]); if (unit.GetComponent <UnitDatabaseFields>().occupiedHex != null) { GeneralHexRoutines.PutUnitOnHex(unit, unit.GetComponent <UnitDatabaseFields>().occupiedHex); unit.transform.parent = GlobalDefinitions.allUnitsOnBoard.transform; } else if (unit.GetComponent <UnitDatabaseFields>().unitEliminated) { unit.transform.parent = GameObject.Find("Units Eliminated").transform; unit.transform.position = unit.GetComponent <UnitDatabaseFields>().OOBLocation; } else if (unit.GetComponent <UnitDatabaseFields>().inBritain) { unit.transform.parent = GameObject.Find("Units In Britain").transform; unit.transform.position = unit.GetComponent <UnitDatabaseFields>().locationInBritain; } else { GlobalDefinitions.WriteToLogFile("processUnitRecord: Unit read error - " + entries[1] + ": found no location to place this unit"); } if (!unit.GetComponent <UnitDatabaseFields>().unitEliminated&& !unit.GetComponent <UnitDatabaseFields>().inBritain) { if (unit.GetComponent <UnitDatabaseFields>().nationality == GlobalDefinitions.Nationality.Allied) { GlobalDefinitions.alliedUnitsOnBoard.Add(unit); } else { GlobalDefinitions.germanUnitsOnBoard.Add(unit); } } }