aboutsummaryrefslogtreecommitdiff
path: root/TimeHACK.Engine/SaveSystem.cs
diff options
context:
space:
mode:
authorlempamo <[email protected]>2017-05-30 21:35:05 -0400
committerGitHub <[email protected]>2017-05-30 21:35:05 -0400
commit13cd6b245ca3104589333295ebc22bf9a659562d (patch)
tree263fc78c63ecf16a46fc760bfe73280cdc8fc0c7 /TimeHACK.Engine/SaveSystem.cs
parent79808fce9199840ad4627ee1aecb8f7430ab6b6c (diff)
parent9ee1762d7261de1e7c98862fc91abd52deb6f8b9 (diff)
downloadhistacom2-13cd6b245ca3104589333295ebc22bf9a659562d.tar.gz
histacom2-13cd6b245ca3104589333295ebc22bf9a659562d.tar.bz2
histacom2-13cd6b245ca3104589333295ebc22bf9a659562d.zip
Merge pull request #2 from TimeHACKDevs/master
Merge
Diffstat (limited to 'TimeHACK.Engine/SaveSystem.cs')
-rw-r--r--TimeHACK.Engine/SaveSystem.cs100
1 files changed, 95 insertions, 5 deletions
diff --git a/TimeHACK.Engine/SaveSystem.cs b/TimeHACK.Engine/SaveSystem.cs
index 89c9cb0..1b37cf3 100644
--- a/TimeHACK.Engine/SaveSystem.cs
+++ b/TimeHACK.Engine/SaveSystem.cs
@@ -40,6 +40,54 @@ namespace TimeHACK.Engine
}
}
+ public static string ProfileFileSystemDirectory
+ {
+ get
+ {
+ return Path.Combine(ProfileDirectory, "folders");
+ }
+ }
+
+ public static string ProfileMyComputerDirectory
+ {
+ get
+ {
+ return Path.Combine(ProfileFileSystemDirectory, "Computer");
+ }
+ }
+
+ public static string ProfileSettingsDirectory
+ {
+ get
+ {
+ return Path.Combine(ProfileMyComputerDirectory, "Settings");
+ }
+ }
+
+ public static string ProfileDocumentsDirectory
+ {
+ get
+ {
+ return Path.Combine(ProfileSettingsDirectory, "Doc");
+ }
+ }
+
+ public static string ProfileProgramsDirectory
+ {
+ get
+ {
+ return Path.Combine(ProfileMyComputerDirectory, "Prog");
+ }
+ }
+
+ public static string ProfileWindowsDirectory
+ {
+ get
+ {
+ return Path.Combine(ProfileMyComputerDirectory, "Win");
+ }
+ }
+
public static bool LoadSave()
{
// ON A FINAL RELEASE USE THE "FINAL RELEASE THINGS"
@@ -64,6 +112,17 @@ namespace TimeHACK.Engine
{
//TODO: User must set a username....somehow
+ CheckFiles();
+
+ var save = new Save();
+ save.ExperiencedStories = new List<string>();
+ save.InstalledPrograms = new Dictionary<string, bool>();
+ CurrentSave = save;
+ SaveGame();
+ }
+
+ public static void CheckFiles()
+ {
if (!Directory.Exists(GameDirectory))
Directory.CreateDirectory(GameDirectory);
@@ -73,13 +132,37 @@ namespace TimeHACK.Engine
if (!Directory.Exists(ProfileDirectory))
Directory.CreateDirectory(ProfileDirectory);
- var save = new Save();
- save.ExperiencedStories = new List<string>();
- save.InstalledPrograms = new Dictionary<string, bool>();
- CurrentSave = save;
- SaveGame();
+ if (!Directory.Exists(ProfileFileSystemDirectory))
+ {
+ Directory.CreateDirectory(ProfileFileSystemDirectory);
+ SaveDirectoryInfo(ProfileFileSystemDirectory, false, "My Computer", false);
+ Directory.CreateDirectory(ProfileMyComputerDirectory);
+ SaveDirectoryInfo(ProfileMyComputerDirectory, false, "Win95", true);
+ Directory.CreateDirectory(ProfileDocumentsDirectory);
+ SaveDirectoryInfo(ProfileDocumentsDirectory, false, "My Documents", true);
+ Directory.CreateDirectory(ProfileSettingsDirectory);
+ SaveDirectoryInfo(ProfileSettingsDirectory, false, "Documents and Settings", true);
+ Directory.CreateDirectory(ProfileProgramsDirectory);
+ SaveDirectoryInfo(ProfileProgramsDirectory, true, "Program Files", true);
+ Directory.CreateDirectory(ProfileWindowsDirectory);
+ SaveDirectoryInfo(ProfileWindowsDirectory, true, "Windows", true);
+ }
}
+ public static void SaveDirectoryInfo(String Directory, Boolean isProtected, String label, Boolean allowback)
+ {
+ FileSystemFolderInfo info = new FileSystemFolderInfo();
+
+ info.Isprotected = isProtected;
+ info.label = label;
+ info.allowback = allowback;
+
+ string toWrite = JsonConvert.SerializeObject(info, Formatting.Indented);
+
+ File.WriteAllText(Path.Combine(Directory, "_data.info"), toWrite);
+ }
+
+
public static void SaveGame()
{
//Serialize the save to JSON.
@@ -103,4 +186,11 @@ namespace TimeHACK.Engine
public Dictionary<string, bool> InstalledPrograms { get; set; }
public List<string> ExperiencedStories { get; set; }
}
+
+ public class FileSystemFolderInfo
+ {
+ public Boolean Isprotected { get; set; }
+ public String label { get; set; }
+ public Boolean allowback { get; set; }
+ }
}