Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <summary>
- /// Provides functionality to read and write save game files.
- /// </summary>
- public class SaveFileManager
- {
- /// <summary>
- /// Initializes the SaveFileManager.
- /// </summary>
- public SaveFileManager(TracerCollection tracers)
- {
- formatter = new BinaryFormatter();
- tracer = tracers["SAVE"];
- }
- BinaryFormatter formatter;
- TraceSource tracer;
- /// <summary>
- /// Writes a save game to the specified binary file.
- /// </summary>
- /// <param name="data">The save game that should be written.</param>
- /// <param name="filename">The path of the file that should be written. If it already exists, it is overwritten.</param>
- public void WriteSaveFile(SaveGameData data, string filename)
- {
- tracer.TraceEvent(TraceEventType.Start, 0, "Begin WriteSaveFile");
- Stream stream = new FileStream(filename, FileMode.Create);
- tracer.TraceInformation("Successfully opened FileStream to {0}", filename);
- formatter.Serialize(stream, data);
- tracer.TraceInformation("Successfully wrote data to file.");
- stream.Close();
- tracer.TraceEvent(TraceEventType.Stop, 0, "End WriteSaveFile");
- }
- /// <summary>
- /// Reads a save game from the specified binary file.
- /// </summary>
- /// <param name="filename">The path of the file that should be read.</param>
- public SaveGameData ReadSaveFile(string filename)
- {
- tracer.TraceEvent(TraceEventType.Start, 1, "Begin ReadSaveFile");
- Stream stream = new FileStream(filename, FileMode.Open);
- tracer.TraceInformation("Successfully opened FileStream to {0}", filename);
- SaveGameData data = (SaveGameData)formatter.Deserialize(stream);
- tracer.TraceInformation("Successfully read data from file.");
- stream.Close();
- tracer.TraceEvent(TraceEventType.Stop, 1, "End ReadSaveFile");
- return data;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement