aboutsummaryrefslogtreecommitdiff
path: root/TimeHACK.Engine/SaveSystem.cs
diff options
context:
space:
mode:
authorJason <[email protected]>2017-07-22 23:43:39 +0200
committerGitHub <[email protected]>2017-07-22 23:43:39 +0200
commit5afd2ec6c6d7c458c1caffc55566d4365602c122 (patch)
treeb9e2c5f7861799b7b5f209046f97052493565734 /TimeHACK.Engine/SaveSystem.cs
parent7b12feef44adfcafd46d651adcd3e8fe11cb8523 (diff)
parentc97b5bddf841573e92c67fd2d325ca44825351f0 (diff)
downloadhistacom2-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.cs90
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;