diff options
| author | Jason <[email protected]> | 2017-07-22 23:43:39 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-07-22 23:43:39 +0200 |
| commit | 5afd2ec6c6d7c458c1caffc55566d4365602c122 (patch) | |
| tree | b9e2c5f7861799b7b5f209046f97052493565734 /TimeHACK.Engine/SaveSystem.cs | |
| parent | 7b12feef44adfcafd46d651adcd3e8fe11cb8523 (diff) | |
| parent | c97b5bddf841573e92c67fd2d325ca44825351f0 (diff) | |
| download | histacom2-5afd2ec6c6d7c458c1caffc55566d4365602c122.tar.gz histacom2-5afd2ec6c6d7c458c1caffc55566d4365602c122.tar.bz2 histacom2-5afd2ec6c6d7c458c1caffc55566d4365602c122.zip | |
Merge pull request #133 from Alex-TIMEHACK/master
Done a lot of work on the Windows ExplorerS
Diffstat (limited to 'TimeHACK.Engine/SaveSystem.cs')
| -rw-r--r-- | TimeHACK.Engine/SaveSystem.cs | 90 |
1 files changed, 64 insertions, 26 deletions
diff --git a/TimeHACK.Engine/SaveSystem.cs b/TimeHACK.Engine/SaveSystem.cs index 41bb9d0..81aa322 100644 --- a/TimeHACK.Engine/SaveSystem.cs +++ b/TimeHACK.Engine/SaveSystem.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using System.Diagnostics; +using System.Windows.Forms; namespace TimeHACK.Engine { @@ -14,8 +15,7 @@ namespace TimeHACK.Engine public static Save CurrentSave { get; set; } public static FileSystemFolderInfo filesystemflinfo { get; set; } public static bool DevMode = false; - - public static FileAssociation IconChanger = new FileAssociation(); + public static Form troubleshooter; public static Theme currentTheme { get; set; } @@ -66,7 +66,7 @@ namespace TimeHACK.Engine { get { - return Path.Combine(ProfileFileSystemDirectory, "Computer"); + return Path.Combine(ProfileFileSystemDirectory, "CDrive"); } } @@ -104,28 +104,36 @@ namespace TimeHACK.Engine public static bool LoadSave() { - // ON A FINAL RELEASE USE THE "FINAL RELEASE THINGS" - #region Final Release Things - //Read base64 string from file - //string b64 = File.ReadAllText(Path.Combine(ProfileDirectory, ProfileFile)); - //Get Unicode byte array - //byte[] bytes = Convert.FromBase64String(b64); - //Decode the Unicode - //string json = Encoding.UTF8.GetString(bytes); - //Deserialize save object. - #endregion - // USE THE THINGS IN THE "DEVELOPER THINGS" FOR A DEVELOPMENT RELEASE - #region Developer Things - string json = File.ReadAllText(Path.Combine(ProfileDirectory, ProfileFile)); - #endregion - CurrentSave = JsonConvert.DeserializeObject<Save>(json); + try + { + // ON A FINAL RELEASE USE THE "FINAL RELEASE THINGS" + #region Final Release Things + //Read base64 string from file + //string b64 = File.ReadAllText(Path.Combine(ProfileDirectory, ProfileFile)); + //Get Unicode byte array + //byte[] bytes = Convert.FromBase64String(b64); + //Decode the Unicode + //string json = Encoding.UTF8.GetString(bytes); + //Deserialize save object. + #endregion + // USE THE THINGS IN THE "DEVELOPER THINGS" FOR A DEVELOPMENT RELEASE + #region Developer Things + string json = File.ReadAllText(Path.Combine(ProfileDirectory, ProfileFile)); + #endregion + CurrentSave = JsonConvert.DeserializeObject<Save>(json); + + } catch + { + MessageBox.Show("WARNING! It looks like this save is corrupt!"); + MessageBox.Show("We will now open the Save troubleshooter"); + + troubleshooter.ShowDialog(); + } return true; } public static void NewGame() - { - //TODO: User must set a username....somehow - + { var save = new Save(); save.ExperiencedStories = new List<string>(); if (DevMode == true) @@ -134,6 +142,7 @@ namespace TimeHACK.Engine { save.CurrentOS = "98"; save.ThemeName = "default98"; + currentTheme = new Default98Theme(); } else { @@ -169,12 +178,14 @@ namespace TimeHACK.Engine Directory.CreateDirectory(ProfileFileSystemDirectory); SaveDirectoryInfo(ProfileFileSystemDirectory, false, "My Computer", false); - SaveDirectoryInfo(ProfileMyComputerDirectory, false, "Win95", true); - if (CurrentSave.CurrentOS == "95") SaveDirectoryInfo(ProfileDocumentsDirectory, false, "My Documents", true); - if (CurrentSave.CurrentOS != "95") SaveDirectoryInfo(ProfileSettingsDirectory, false, "Documents and Settings", true); + SaveDirectoryInfo(ProfileMyComputerDirectory, false, "Win95 (C:)", true); + if (CurrentSave.CurrentOS == "95" || CurrentSave.CurrentOS == "98") SaveDirectoryInfo(ProfileDocumentsDirectory, false, "My Documents", true); + if (CurrentSave.CurrentOS == "2000" || CurrentSave.CurrentOS == "ME") SaveDirectoryInfo(ProfileSettingsDirectory, false, "Documents and Settings", true); + SaveDirectoryInfo(Path.Combine(ProfileProgramsDirectory, "Accessories"), false, "Accessories", true); SaveDirectoryInfo(ProfileProgramsDirectory, true, "Program Files", true); SaveDirectoryInfo(ProfileWindowsDirectory, true, "Windows", true); + CreateWindowsFile(Path.Combine(ProfileProgramsDirectory, "Accessories", "wordpad.exe"), "wordpad"); CreateWindowsDirectory(); } @@ -187,8 +198,8 @@ namespace TimeHACK.Engine SaveDirectoryInfo(Path.Combine(ProfileWindowsDirectory, "Help"), true, "Help", true); SaveDirectoryInfo(Path.Combine(ProfileWindowsDirectory, "Temp"), true, "Temp", true); - CreateWindowsFile(Path.Combine(ProfileWindowsDirectory, "calc.exe"), "Calculator"); - CreateWindowsFile(Path.Combine(ProfileWindowsDirectory, "explorer.exe"), "windowsexplorer"); + CreateWindowsFile(Path.Combine(ProfileWindowsDirectory, "calc.exe"), "calc"); + CreateWindowsFile(Path.Combine(ProfileWindowsDirectory, "explorer.exe"), "explorer"); } public static void CreateWindowsFile(string filepath, string contents) @@ -196,6 +207,30 @@ namespace TimeHACK.Engine File.WriteAllText(filepath, contents); } + public static void UpgradeFileSystem(string oldOS, string newOS) + { + switch (oldOS) + { + case "95": + if (newOS == "98" || newOS == "2000" || newOS == "ME") + { + // We are upgrading from the old WinClassic file System to the new WinClassic filesystem! + // All the above OSes share basically the same file layout! + // (Excluding Documents And Settings) which is 2000 and ME only + + // Rename the C Drive to Win98 + + SaveDirectoryInfo(ProfileMyComputerDirectory, false, "Win98 (C:)", true); + + // Add Address Book into existance! + + SaveDirectoryInfo(Path.Combine(ProfileProgramsDirectory, "Outlook Express"), false, "Outlook Express", true); + CreateWindowsFile(Path.Combine(ProfileProgramsDirectory, "Outlook Express", "WAB.exe"), "addressbook"); + } + break; + } + } + public static void SaveDirectoryInfo(string directory, bool isProtected, string label, bool allowback) { if (!Directory.Exists(directory)) @@ -247,6 +282,9 @@ namespace TimeHACK.Engine case "default95": currentTheme = new Default95Theme(); break; + case "default98": + currentTheme = new Default98Theme(); + break; case "dangeranimals": currentTheme = new DangerousCreaturesTheme(); break; |
