aboutsummaryrefslogtreecommitdiff
path: root/TimeHACK.Engine
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-05-07 20:04:31 -0400
committerMichael <[email protected]>2017-05-07 20:04:31 -0400
commit9e2582cd3f5b2bf6f3e8c2d6434ab06ea97832a7 (patch)
tree21a0103d5d44aeffe26fe0dd0f3253b2dd4e5957 /TimeHACK.Engine
parent1220d4d995b1cf0c64e0a38e33a81f96c699858f (diff)
downloadhistacom2-9e2582cd3f5b2bf6f3e8c2d6434ab06ea97832a7.tar.gz
histacom2-9e2582cd3f5b2bf6f3e8c2d6434ab06ea97832a7.tar.bz2
histacom2-9e2582cd3f5b2bf6f3e8c2d6434ab06ea97832a7.zip
Implement a proper save system
Diffstat (limited to 'TimeHACK.Engine')
-rw-r--r--TimeHACK.Engine/SaveSystem.cs87
-rw-r--r--TimeHACK.Engine/TimeHACK.Engine.csproj1
-rw-r--r--TimeHACK.Engine/bin/Debug/TimeHACK.Engine.dllbin21504 -> 188928 bytes
-rw-r--r--TimeHACK.Engine/bin/Debug/TimeHACK.Engine.pdbbin26112 -> 58880 bytes
-rw-r--r--TimeHACK.Engine/bin/Release/TimeHACK.Engine.dllbin185344 -> 187392 bytes
-rw-r--r--TimeHACK.Engine/bin/Release/TimeHACK.Engine.pdbbin48640 -> 54784 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cachebin9073 -> 9298 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TempPE/Properties.Resources.Designer.cs.dllbin0 -> 5632 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Properties.Resources.resourcesbin0 -> 155443 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.AboutBox95.resourcesbin0 -> 180 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.Infobox95.resourcesbin0 -> 180 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.Win9XBSOD.resourcesbin0 -> 180 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.WinClassic.resourcesbin0 -> 4593 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.FileListAbsolute.txt11
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.GenerateResource.Cachebin0 -> 2531 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.dllbin0 -> 188928 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.pdbbin0 -> 58880 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.GenerateResource.Cachebin2531 -> 2531 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.dllbin185344 -> 187392 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.pdbbin48640 -> 54784 bytes
20 files changed, 99 insertions, 0 deletions
diff --git a/TimeHACK.Engine/SaveSystem.cs b/TimeHACK.Engine/SaveSystem.cs
new file mode 100644
index 0000000..c6e19a2
--- /dev/null
+++ b/TimeHACK.Engine/SaveSystem.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+
+namespace TimeHACK.Engine
+{
+ public static class SaveSystem
+ {
+ public static Save CurrentSave { get; private set; }
+
+ public static string GameDirectory
+ {
+ get
+ {
+ return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "TimeHACK");
+ }
+ }
+
+ public static string ProfileDirectory
+ {
+ get
+ {
+ return Path.Combine(GameDirectory, "Profiles");
+ }
+ }
+
+ public static bool LoadSave()
+ {
+ if(File.Exists(Path.Combine(ProfileDirectory, "user.save")))
+ {
+ //Read base64 string from file
+ string b64 = File.ReadAllText(Path.Combine(ProfileDirectory, "user.save"));
+ //Get Unicode byte array
+ byte[] bytes = Convert.FromBase64String(b64);
+ //Decode the Unicode
+ string json = Encoding.UTF8.GetString(bytes);
+ //Deserialize save object.
+ CurrentSave = JsonConvert.DeserializeObject<Save>(json);
+ return true;
+ }
+ else
+ {
+ NewGame();
+ return false;
+ }
+ }
+
+ public static void NewGame()
+ {
+ //TODO: User must set a username....somehow
+ if (!Directory.Exists(GameDirectory))
+ Directory.CreateDirectory(GameDirectory);
+
+ 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();
+ }
+
+ public static void SaveGame()
+ {
+ //Serialize the save to JSON.
+ string json = JsonConvert.SerializeObject(CurrentSave);
+ //Get JSON bytes (Unicode format).
+ var bytes = Encoding.UTF8.GetBytes(json);
+ //Encode the array into Base64.
+ string b64 = Convert.ToBase64String(bytes);
+ //Write to disk.
+ File.WriteAllText(Path.Combine(ProfileDirectory, "user.save"), b64);
+ }
+ }
+
+ public class Save
+ {
+ public string Username { get; set; }
+ public Dictionary<string, bool> InstalledPrograms { get; set; }
+ public List<string> ExperiencedStories { get; set; }
+ }
+}
diff --git a/TimeHACK.Engine/TimeHACK.Engine.csproj b/TimeHACK.Engine/TimeHACK.Engine.csproj
index ecb6b48..14707ae 100644
--- a/TimeHACK.Engine/TimeHACK.Engine.csproj
+++ b/TimeHACK.Engine/TimeHACK.Engine.csproj
@@ -47,6 +47,7 @@
<ItemGroup>
<Compile Include="BSODCreator.cs" />
<None Include="Resources\WinClassic\Window\pjBg6mKP.bin" />
+ <Compile Include="SaveSystem.cs" />
<Compile Include="TaskBarController.cs" />
<Compile Include="Template\Win9XBSOD.cs">
<SubType>Form</SubType>
diff --git a/TimeHACK.Engine/bin/Debug/TimeHACK.Engine.dll b/TimeHACK.Engine/bin/Debug/TimeHACK.Engine.dll
index e569db6..66cdf05 100644
--- a/TimeHACK.Engine/bin/Debug/TimeHACK.Engine.dll
+++ b/TimeHACK.Engine/bin/Debug/TimeHACK.Engine.dll
Binary files differ
diff --git a/TimeHACK.Engine/bin/Debug/TimeHACK.Engine.pdb b/TimeHACK.Engine/bin/Debug/TimeHACK.Engine.pdb
index 668c688..763326d 100644
--- a/TimeHACK.Engine/bin/Debug/TimeHACK.Engine.pdb
+++ b/TimeHACK.Engine/bin/Debug/TimeHACK.Engine.pdb
Binary files differ
diff --git a/TimeHACK.Engine/bin/Release/TimeHACK.Engine.dll b/TimeHACK.Engine/bin/Release/TimeHACK.Engine.dll
index 4f815b0..25b26f2 100644
--- a/TimeHACK.Engine/bin/Release/TimeHACK.Engine.dll
+++ b/TimeHACK.Engine/bin/Release/TimeHACK.Engine.dll
Binary files differ
diff --git a/TimeHACK.Engine/bin/Release/TimeHACK.Engine.pdb b/TimeHACK.Engine/bin/Release/TimeHACK.Engine.pdb
index 8f7944b..fd4f046 100644
--- a/TimeHACK.Engine/bin/Release/TimeHACK.Engine.pdb
+++ b/TimeHACK.Engine/bin/Release/TimeHACK.Engine.pdb
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index bac2e0d..dc47b2a 100644
--- a/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/TimeHACK.Engine/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
new file mode 100644
index 0000000..fc9ddba
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Properties.Resources.resources b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Properties.Resources.resources
new file mode 100644
index 0000000..db7dda3
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Properties.Resources.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.AboutBox95.resources b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.AboutBox95.resources
new file mode 100644
index 0000000..6c05a97
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.AboutBox95.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.Infobox95.resources b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.Infobox95.resources
new file mode 100644
index 0000000..6c05a97
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.Infobox95.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.Win9XBSOD.resources b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.Win9XBSOD.resources
new file mode 100644
index 0000000..6c05a97
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.Win9XBSOD.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.WinClassic.resources b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.WinClassic.resources
new file mode 100644
index 0000000..690267a
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.WinClassic.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.FileListAbsolute.txt b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..446887b
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.FileListAbsolute.txt
@@ -0,0 +1,11 @@
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\bin\Debug\TimeHACK.Engine.dll
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\bin\Debug\TimeHACK.Engine.pdb
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\bin\Debug\Newtonsoft.Json.dll
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Properties.Resources.resources
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Template.Win9XBSOD.resources
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Template.AboutBox95.resources
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Template.Infobox95.resources
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Template.WinClassic.resources
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csproj.GenerateResource.Cache
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.dll
+C:\Users\Michael\Documents\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.pdb
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.GenerateResource.Cache b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.GenerateResource.Cache
new file mode 100644
index 0000000..49ae6a2
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.GenerateResource.Cache
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.dll b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.dll
new file mode 100644
index 0000000..66cdf05
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.dll
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.pdb b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.pdb
new file mode 100644
index 0000000..763326d
--- /dev/null
+++ b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.pdb
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.GenerateResource.Cache b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.GenerateResource.Cache
index 06332ab..832bf29 100644
--- a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.GenerateResource.Cache
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.GenerateResource.Cache
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.dll b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.dll
index 4f815b0..25b26f2 100644
--- a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.dll
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.dll
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.pdb b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.pdb
index 8f7944b..fd4f046 100644
--- a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.pdb
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.pdb
Binary files differ