static GameState() { //Start off at the 1/1/210 _universeTime = new DivineRightDateTime(210, 1, 1); //Attach the handlers _universeTime.DayChanged += new System.EventHandler(DayChanged); _universeTime.MonthChanged += new System.EventHandler(MonthChanged); _universeTime.MinuteChanged += new EventHandler(MinuteChanged); }
/// <summary> /// Creates a new DateTime having the same time as the passed one /// </summary> /// <param name="oldTime"></param> public DivineRightDateTime(DivineRightDateTime oldTime) { this.time = oldTime.time; }
/// <summary> /// Loads the game from the folder. There will only ever be one such savegame at a time. /// </summary> /// <returns></returns> public static void LoadGame() { IFormatter formatter = new BinaryFormatter(); SurrogateSelector ss = new SurrogateSelector(); ss.AddSurrogate(typeof(Rectangle), new StreamingContext(StreamingContextStates.All), new RectSerializationSurrogate()); ss.AddSurrogate(typeof(Color), new StreamingContext(StreamingContextStates.All), new ColorSerializationSurrogate()); formatter.SurrogateSelector = ss; Stream stream = new FileStream(GameState.SAVEPATH + "GameState.dvg", FileMode.Open, FileAccess.Read, FileShare.Read); GameStateSaveFile obj = (GameStateSaveFile)formatter.Deserialize(stream); stream.Close(); //Load it GameState.LocalMap = obj.LocalMap; GameState.LocalMap.Location = obj.LocalMap.Location; //This is to invoke the attachment of the minute check code GameState.GlobalMap = obj.GlobalMap; GameState.PlayerCharacter = obj.PlayerCharacter; GameState._universeTime = obj.UniverseTime; //Reattach handlers _universeTime.DayChanged += new System.EventHandler(DayChanged); _universeTime.MonthChanged += new System.EventHandler(MonthChanged); _universeTime.MinuteChanged += new EventHandler(MinuteChanged); }