/// <summary> /// This routine reads the contents of a save file /// </summary> /// <param name="fileName"></param> public void ReadTurnFile(string fileName) { char[] delimiterChars = { ' ' }; string line; string[] lineEntries; string[] switchEntries; GlobalDefinitions.WriteToLogFile("readTurnFile: executing - passed file = " + fileName); StreamReader theReader = new StreamReader(fileName); using (theReader) { do { line = theReader.ReadLine(); if (line != null) { switchEntries = line.Split(delimiterChars); switch (switchEntries[0]) { case "Turn": GlobalDefinitions.turnNumber = Convert.ToInt32(switchEntries[1]); GlobalDefinitions.GuiUpdateTurn(); break; case "Game_Control": GameControl.SetGameState(switchEntries[1]); break; case "Global_Definitions": ReadGlobalVariables(switchEntries); break; case "Hexes": line = theReader.ReadLine(); lineEntries = line.Split(delimiterChars); while (lineEntries[0] != "End") { string[] entries = line.Split(delimiterChars); ProcessHexRecord(entries); line = theReader.ReadLine(); lineEntries = line.Split(delimiterChars); } break; case "Units": line = theReader.ReadLine(); lineEntries = line.Split(delimiterChars); while (lineEntries[0] != "End") { string[] entries = line.Split(delimiterChars); ProcessUnitRecord(entries); line = theReader.ReadLine(); lineEntries = line.Split(delimiterChars); } break; } } }while (line != null); theReader.Close(); GlobalDefinitions.WriteToLogFile("readTurnFile: File read complete. Initialize Game State"); // If we just read a setup file, put the player into the setup state so that he can update the setup if he wants. if ((GlobalDefinitions.turnNumber == 0) && (GlobalDefinitions.nationalityUserIsPlaying == GlobalDefinitions.Nationality.German)) { GlobalDefinitions.nextPhaseButton.GetComponent <Button>().interactable = true; GameControl.gameStateControlInstance.GetComponent <GameStateControl>().currentState.executeMethod = GameControl.gameStateControlInstance.GetComponent <GameStateControl>().currentState.GetComponent <SetUpState>().ExecuteSelectUnit; } // Otherwise, execute the init for the next state else { GameControl.gameStateControlInstance.GetComponent <GameStateControl>().currentState.Initialize(); } } }