aboutsummaryrefslogtreecommitdiff
path: root/TimeHACK.Engine
diff options
context:
space:
mode:
Diffstat (limited to 'TimeHACK.Engine')
-rw-r--r--TimeHACK.Engine/FileAssociation.cs50
-rw-r--r--TimeHACK.Engine/SaveSystem.cs53
-rw-r--r--TimeHACK.Engine/TimeHACK.Engine.csproj3
3 files changed, 34 insertions, 72 deletions
diff --git a/TimeHACK.Engine/FileAssociation.cs b/TimeHACK.Engine/FileAssociation.cs
deleted file mode 100644
index 25fe895..0000000
--- a/TimeHACK.Engine/FileAssociation.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Runtime.InteropServices;
-using Microsoft.Win32;
-
-namespace TimeHACK.Engine
-{
- public class FileAssociation
- {
- // Associate file extension with progID, description, icon and application
- public static void Associate(string extension,
- string progID, string description, string icon, string application)
- {
- Registry.ClassesRoot.CreateSubKey(extension).SetValue("", progID);
- if (progID != null && progID.Length > 0)
- using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(progID))
- {
- if (description != null)
- key.SetValue("", description);
- if (icon != null)
- key.CreateSubKey("DefaultIcon").SetValue("", ToShortPathName(icon));
- if (application != null)
- key.CreateSubKey(@"Shell\Open\Command").SetValue("",
- ToShortPathName(application) + " \"%1\"");
- }
- }
-
- // Return true if extension already associated in registry
- public static bool IsAssociated(string extension)
- {
- return (Registry.ClassesRoot.OpenSubKey(extension, false) != null);
- }
-
- [DllImport("Kernel32.dll")]
- private static extern uint GetShortPathName(string lpszLongPath,
- [Out] StringBuilder lpszShortPath, uint cchBuffer);
-
- // Return short path format of a file name
- private static string ToShortPathName(string longName)
- {
- StringBuilder s = new StringBuilder(1000);
- uint iSize = (uint)s.Capacity;
- uint iRet = GetShortPathName(longName, s, iSize);
- return s.ToString();
- }
- }
-}
diff --git a/TimeHACK.Engine/SaveSystem.cs b/TimeHACK.Engine/SaveSystem.cs
index cd8bb2f..c9c2025 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; }
@@ -96,21 +96,31 @@ 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;
}
@@ -161,9 +171,12 @@ namespace TimeHACK.Engine
Directory.CreateDirectory(ProfileFileSystemDirectory);
SaveDirectoryInfo(ProfileFileSystemDirectory, false, "My Computer", false);
- SaveDirectoryInfo(ProfileMyComputerDirectory, false, "Win95", true);
+ SaveDirectoryInfo(ProfileMyComputerDirectory, false, "Win95 (C:)", true);
if (CurrentSave.CurrentOS == "95") SaveDirectoryInfo(ProfileDocumentsDirectory, false, "My Documents", true);
if (CurrentSave.CurrentOS != "95") SaveDirectoryInfo(ProfileSettingsDirectory, false, "Documents and Settings", true);
+ SaveDirectoryInfo(Path.Combine(ProfileProgramsDirectory, "Accessories"), false, "Accessories", true);
+ CreateWindowsFile(Path.Combine(ProfileProgramsDirectory, "Accessories", "wordpad.exe"), "wordpad");
+ CreateWindowsFile(Path.Combine(ProfileProgramsDirectory, "Accessories", "mspaint.exe"), "mspaint");
SaveDirectoryInfo(ProfileProgramsDirectory, true, "Program Files", true);
SaveDirectoryInfo(ProfileWindowsDirectory, true, "Windows", true);
@@ -179,8 +192,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)
diff --git a/TimeHACK.Engine/TimeHACK.Engine.csproj b/TimeHACK.Engine/TimeHACK.Engine.csproj
index f58b7cc..2f4073d 100644
--- a/TimeHACK.Engine/TimeHACK.Engine.csproj
+++ b/TimeHACK.Engine/TimeHACK.Engine.csproj
@@ -15,7 +15,7 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
- <Optimize>false</Optimize>
+ <Optimize>true</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
@@ -48,7 +48,6 @@
<Compile Include="BSODCreator.cs" />
<None Include="packages.config" />
<None Include="Resources\WinClassic\Window\pjBg6mKP.bin" />
- <Compile Include="FileAssociation.cs" />
<Compile Include="FileDialogBoxManager.cs" />
<Compile Include="Paintbrush.cs" />
<Compile Include="SaveSystem.cs" />