aboutsummaryrefslogtreecommitdiff
path: root/TimeHACK.Engine
diff options
context:
space:
mode:
authorAShifter <[email protected]>2017-04-22 13:41:33 -0600
committerAShifter <[email protected]>2017-04-22 13:41:33 -0600
commit51177cd4c24b9b107726bdbae914d49f6b5fa7b5 (patch)
tree08d585cb8e2b0241aaede964a38973af42a1c470 /TimeHACK.Engine
parent5773e8ac9aeac2d395a700eac26d86db90c60c13 (diff)
parente6474bbf221d26d227e42174c4d1ab939987be2b (diff)
downloadhistacom2-51177cd4c24b9b107726bdbae914d49f6b5fa7b5.tar.gz
histacom2-51177cd4c24b9b107726bdbae914d49f6b5fa7b5.tar.bz2
histacom2-51177cd4c24b9b107726bdbae914d49f6b5fa7b5.zip
Merge remote-tracking branch 'refs/remotes/TimeHACKDevs/master'
Diffstat (limited to 'TimeHACK.Engine')
-rw-r--r--TimeHACK.Engine/BSODCreator.cs54
-rw-r--r--TimeHACK.Engine/Properties/Resources.Designer.cs70
-rw-r--r--TimeHACK.Engine/Properties/Resources.resx21
-rw-r--r--TimeHACK.Engine/Resources/WinAboutSeparator95.pngbin0 -> 177 bytes
-rw-r--r--TimeHACK.Engine/Resources/WinClassic/Window/LeviWindows.ttfbin0 -> 46724 bytes
-rw-r--r--TimeHACK.Engine/Resources/WinClassic/Window/Win95Error.pngbin0 -> 429 bytes
-rw-r--r--TimeHACK.Engine/Resources/WinClassic/Window/Win95Info.pngbin0 -> 384 bytes
-rw-r--r--TimeHACK.Engine/Resources/WinClassic/Window/Win95Warning.pngbin0 -> 432 bytes
-rw-r--r--TimeHACK.Engine/Resources/WinClassic/Window/windows_command_prompt.ttfbin0 -> 29616 bytes
-rw-r--r--TimeHACK.Engine/Template/AboutBox95.Designer.cs139
-rw-r--r--TimeHACK.Engine/Template/AboutBox95.cs27
-rw-r--r--TimeHACK.Engine/Template/AboutBox95.resx120
-rw-r--r--TimeHACK.Engine/Template/Infobox95.Designer.cs283
-rw-r--r--TimeHACK.Engine/Template/Infobox95.cs55
-rw-r--r--TimeHACK.Engine/Template/Infobox95.resx185
-rw-r--r--TimeHACK.Engine/Template/Win9XBSOD.Designer.cs128
-rw-r--r--TimeHACK.Engine/Template/Win9XBSOD.cs32
-rw-r--r--TimeHACK.Engine/Template/Win9XBSOD.resx120
-rw-r--r--TimeHACK.Engine/Template/WinClassic.Designer.cs16
-rw-r--r--TimeHACK.Engine/Template/WinClassic.cs4
-rw-r--r--TimeHACK.Engine/Template/WinClassic.resx38
-rw-r--r--TimeHACK.Engine/TimeHACK.Engine.csproj42
-rw-r--r--TimeHACK.Engine/WCMessageParser.cs30
-rw-r--r--TimeHACK.Engine/WindowManager.cs37
-rw-r--r--TimeHACK.Engine/bin/Release/Newtonsoft.Json.dllbin0 -> 654848 bytes
-rw-r--r--TimeHACK.Engine/bin/Release/TimeHACK.Engine.dllbin21504 -> 165376 bytes
-rw-r--r--TimeHACK.Engine/bin/Release/TimeHACK.Engine.pdbbin24064 -> 46592 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/CoreCompileInputs.cache1
-rw-r--r--TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferences.cachebin1464 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cachebin8423 -> 9073 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TempPE/Properties.Resources.Designer.cs.dllbin4608 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.OSProgramTemplates.WinClassic.resourcesbin2609 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Properties.Resources.resourcesbin5051 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.WinClassic.resourcesbin2609 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.FileListAbsolute.txt30
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.GenerateResource.Cachebin1802 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csprojResolveAssemblyReference.cachebin2230 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.dllbin21504 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Debug/TimeHACK.Engine.pdbbin26112 -> 0 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/CoreCompileInputs.cache2
-rw-r--r--TimeHACK.Engine/obj/Release/DesignTimeResolveAssemblyReferencesInput.cachebin8347 -> 9298 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TempPE/Properties.Resources.Designer.cs.dllbin4608 -> 5632 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.Properties.Resources.resourcesbin5220 -> 130654 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.AboutBox95.resourcesbin0 -> 180 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.Infobox95.resourcesbin0 -> 3780 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.Win9XBSOD.resourcesbin0 -> 180 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.WinClassic.resourcesbin2609 -> 4593 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.FileListAbsolute.txt39
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.GenerateResource.Cachebin1838 -> 2456 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.csprojResolveAssemblyReference.cachebin2230 -> 12307 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.dllbin21504 -> 165376 bytes
-rw-r--r--TimeHACK.Engine/obj/Release/TimeHACK.Engine.pdbbin24064 -> 46592 bytes
52 files changed, 1399 insertions, 74 deletions
diff --git a/TimeHACK.Engine/BSODCreator.cs b/TimeHACK.Engine/BSODCreator.cs
new file mode 100644
index 0000000..59eeb16
--- /dev/null
+++ b/TimeHACK.Engine/BSODCreator.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using TimeHACK.Engine.Template;
+
+namespace TimeHACK.Engine
+{
+ public class BSODCreator
+ {
+ public static System.Drawing.Text.PrivateFontCollection pfc = new System.Drawing.Text.PrivateFontCollection();
+
+ public enum BSODCauses
+ {
+ Testing,
+ WimpEnding,
+ PiracyEnding,
+ }
+
+ public Win9XBSOD throw9XBSOD(bool except, BSODCauses type)
+ {
+ pfc.AddFontFile(AppDomain.CurrentDomain.BaseDirectory + "\\windows_command_prompt.ttf");
+ Win9XBSOD bsod = new Win9XBSOD();
+ foreach (Control ctrl in bsod.Controls) {
+ ctrl.Font = new System.Drawing.Font(pfc.Families[0], 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((0)));
+ }
+ bsod.TopMost = true;
+ bsod.FormBorderStyle = FormBorderStyle.None;
+ bsod.WindowState = FormWindowState.Maximized;
+ switch (type)
+ {
+ case BSODCauses.Testing:
+ bsod.textBox1.Text = "This is the testing type of BSOD. Hurrah.";
+ break;
+ case BSODCauses.WimpEnding:
+ bsod.textBox1.Text = "An unknown but fatal exception has occured has occured in the program \"wchat98.exe\". The current processes will be terminated.";
+ break;
+ case BSODCauses.PiracyEnding:
+ bsod.textBox1.Text = "Vital elements of Windows were removed, but recovered. However, your data has been lost.";
+ bsod.BackColor = System.Drawing.Color.Black;
+ foreach (Control ctrl in bsod.Controls) ctrl.ForeColor = System.Drawing.Color.Silver;
+ bsod.label1.BackColor = System.Drawing.Color.Silver;
+ bsod.label1.ForeColor = System.Drawing.Color.Black;
+ break;
+ default:
+ break;
+ }
+ bsod.Show();
+ return bsod;
+ }
+ }
+}
diff --git a/TimeHACK.Engine/Properties/Resources.Designer.cs b/TimeHACK.Engine/Properties/Resources.Designer.cs
index a5a90ba..4fc5367 100644
--- a/TimeHACK.Engine/Properties/Resources.Designer.cs
+++ b/TimeHACK.Engine/Properties/Resources.Designer.cs
@@ -101,6 +101,26 @@ namespace TimeHACK.Engine.Properties {
}
/// <summary>
+ /// Looks up a localized resource of type System.Byte[].
+ /// </summary>
+ internal static byte[] LeviWindows {
+ get {
+ object obj = ResourceManager.GetObject("LeviWindows", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Byte[].
+ /// </summary>
+ internal static byte[] LeviWindows1 {
+ get {
+ object obj = ResourceManager.GetObject("LeviWindows1", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+
+ /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap nullIcon {
@@ -153,6 +173,46 @@ namespace TimeHACK.Engine.Properties {
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
+ internal static System.Drawing.Bitmap Win95Error {
+ get {
+ object obj = ResourceManager.GetObject("Win95Error", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
+ internal static System.Drawing.Bitmap Win95Info {
+ get {
+ object obj = ResourceManager.GetObject("Win95Info", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
+ internal static System.Drawing.Bitmap Win95Warning {
+ get {
+ object obj = ResourceManager.GetObject("Win95Warning", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
+ internal static System.Drawing.Bitmap WinAboutSeparator95 {
+ get {
+ object obj = ResourceManager.GetObject("WinAboutSeparator95", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
internal static System.Drawing.Bitmap WinClassicClose {
get {
object obj = ResourceManager.GetObject("WinClassicClose", resourceCulture);
@@ -189,5 +249,15 @@ namespace TimeHACK.Engine.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Byte[].
+ /// </summary>
+ internal static byte[] windows_command_prompt {
+ get {
+ object obj = ResourceManager.GetObject("windows_command_prompt", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
}
}
diff --git a/TimeHACK.Engine/Properties/Resources.resx b/TimeHACK.Engine/Properties/Resources.resx
index ff58fbd..299d056 100644
--- a/TimeHACK.Engine/Properties/Resources.resx
+++ b/TimeHACK.Engine/Properties/Resources.resx
@@ -130,6 +130,12 @@
<data name="LeftSide" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\winclassic\window\leftside.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
+ <data name="LeviWindows" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\resources\winclassic\window\leviwindows.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="LeviWindows1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\resources\winclassic\window\leviwindows.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
<data name="nullIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\winclassic\window\nullicon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -157,4 +163,19 @@
<data name="WinClassicRestore" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\winclassic\window\winclassicrestore.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
+ <data name="Win95Error" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\WinClassic\Window\Win95Error.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="Win95Info" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\WinClassic\Window\Win95Info.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="Win95Warning" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\WinClassic\Window\Win95Warning.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="WinAboutSeparator95" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\WinAboutSeparator95.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="windows_command_prompt" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\WinClassic\Window\windows_command_prompt.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
</root> \ No newline at end of file
diff --git a/TimeHACK.Engine/Resources/WinAboutSeparator95.png b/TimeHACK.Engine/Resources/WinAboutSeparator95.png
new file mode 100644
index 0000000..524cad8
--- /dev/null
+++ b/TimeHACK.Engine/Resources/WinAboutSeparator95.png
Binary files differ
diff --git a/TimeHACK.Engine/Resources/WinClassic/Window/LeviWindows.ttf b/TimeHACK.Engine/Resources/WinClassic/Window/LeviWindows.ttf
new file mode 100644
index 0000000..134beb9
--- /dev/null
+++ b/TimeHACK.Engine/Resources/WinClassic/Window/LeviWindows.ttf
Binary files differ
diff --git a/TimeHACK.Engine/Resources/WinClassic/Window/Win95Error.png b/TimeHACK.Engine/Resources/WinClassic/Window/Win95Error.png
new file mode 100644
index 0000000..4667e9d
--- /dev/null
+++ b/TimeHACK.Engine/Resources/WinClassic/Window/Win95Error.png
Binary files differ
diff --git a/TimeHACK.Engine/Resources/WinClassic/Window/Win95Info.png b/TimeHACK.Engine/Resources/WinClassic/Window/Win95Info.png
new file mode 100644
index 0000000..5d2018a
--- /dev/null
+++ b/TimeHACK.Engine/Resources/WinClassic/Window/Win95Info.png
Binary files differ
diff --git a/TimeHACK.Engine/Resources/WinClassic/Window/Win95Warning.png b/TimeHACK.Engine/Resources/WinClassic/Window/Win95Warning.png
new file mode 100644
index 0000000..8e01535
--- /dev/null
+++ b/TimeHACK.Engine/Resources/WinClassic/Window/Win95Warning.png
Binary files differ
diff --git a/TimeHACK.Engine/Resources/WinClassic/Window/windows_command_prompt.ttf b/TimeHACK.Engine/Resources/WinClassic/Window/windows_command_prompt.ttf
new file mode 100644
index 0000000..b771b3a
--- /dev/null
+++ b/TimeHACK.Engine/Resources/WinClassic/Window/windows_command_prompt.ttf
Binary files differ
diff --git a/TimeHACK.Engine/Template/AboutBox95.Designer.cs b/TimeHACK.Engine/Template/AboutBox95.Designer.cs
new file mode 100644
index 0000000..1a3ff5c
--- /dev/null
+++ b/TimeHACK.Engine/Template/AboutBox95.Designer.cs
@@ -0,0 +1,139 @@
+namespace TimeHACK.Engine.Template
+{
+ partial class AboutBox95
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.button1 = new System.Windows.Forms.Button();
+ this.textBox2 = new System.Windows.Forms.TextBox();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
+ this.textBox3 = new System.Windows.Forms.Label();
+ this.textBox4 = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Location = new System.Drawing.Point(7, 7);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(64, 64);
+ this.pictureBox1.TabStop = false;
+ //
+ // textBox1
+ //
+ this.textBox1.BackColor = System.Drawing.Color.Silver;
+ this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.textBox1.Location = new System.Drawing.Point(78, 16);
+ this.textBox1.Multiline = true;
+ this.textBox1.Name = "textBox1";
+ this.textBox1.ReadOnly = true;
+ this.textBox1.Size = new System.Drawing.Size(193, 42);
+ this.textBox1.Text = "@SOFTWARENAME\r\nWindows 95\r\nCopyright © 1981-1995 Microsoft Corp.";
+ //
+ // button1
+ //
+ this.button1.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
+ this.button1.Location = new System.Drawing.Point(251, 223);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 0;
+ this.button1.Text = "OK";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // textBox2
+ //
+ this.textBox2.BackColor = System.Drawing.Color.Silver;
+ this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.textBox2.Location = new System.Drawing.Point(78, 106);
+ this.textBox2.Multiline = true;
+ this.textBox2.Name = "textBox2";
+ this.textBox2.ReadOnly = true;
+ this.textBox2.Size = new System.Drawing.Size(185, 42);
+ this.textBox2.Text = "This product is licensed to:\r\n@ACTUALUSER\r\n@COMPANYNAME";
+ //
+ // pictureBox2
+ //
+ this.pictureBox2.Image = global::TimeHACK.Engine.Properties.Resources.WinAboutSeparator95;
+ this.pictureBox2.Location = new System.Drawing.Point(76, 154);
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.Size = new System.Drawing.Size(250, 2);
+ this.pictureBox2.TabStop = false;
+ //
+ // textBox3
+ //
+ this.textBox3.BackColor = System.Drawing.Color.Silver;
+ this.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.textBox3.Location = new System.Drawing.Point(76, 162);
+ this.textBox3.Name = "textBox3";
+ this.textBox3.Size = new System.Drawing.Size(250, 16);
+ this.textBox3.Text = "Physical Memory Available to Windows: 64,992 KB";
+ //
+ // textBox4
+ //
+ this.textBox4.BackColor = System.Drawing.Color.Silver;
+ this.textBox4.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.textBox4.Location = new System.Drawing.Point(76, 184);
+ this.textBox4.Name = "textBox4";
+ this.textBox4.Size = new System.Drawing.Size(250, 16);
+ this.textBox4.Text = "System Resources: 97% Free";
+ //
+ // AboutBox95
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.Color.Silver;
+ this.Controls.Add(this.textBox4);
+ this.Controls.Add(this.textBox3);
+ this.Controls.Add(this.pictureBox2);
+ this.Controls.Add(this.textBox2);
+ this.Controls.Add(this.button1);
+ this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.pictureBox1);
+ this.Name = "AboutBox95";
+ this.Size = new System.Drawing.Size(335, 255);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ internal System.Windows.Forms.PictureBox pictureBox1;
+ internal System.Windows.Forms.TextBox textBox1;
+ private System.Windows.Forms.Button button1;
+ internal System.Windows.Forms.TextBox textBox2;
+ private System.Windows.Forms.PictureBox pictureBox2;
+ private System.Windows.Forms.Label textBox3;
+ private System.Windows.Forms.Label textBox4;
+ }
+}
diff --git a/TimeHACK.Engine/Template/AboutBox95.cs b/TimeHACK.Engine/Template/AboutBox95.cs
new file mode 100644
index 0000000..397eb4c
--- /dev/null
+++ b/TimeHACK.Engine/Template/AboutBox95.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Security.Principal;
+
+namespace TimeHACK.Engine.Template
+{
+ public partial class AboutBox95 : UserControl
+ {
+ public AboutBox95()
+ {
+ InitializeComponent();
+ this.textBox2.Text = "This product is licensed to:\r\n" + Environment.UserName + "\r\n";
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ this.ParentForm.Close();
+ }
+ }
+}
diff --git a/TimeHACK.Engine/Template/AboutBox95.resx b/TimeHACK.Engine/Template/AboutBox95.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/TimeHACK.Engine/Template/AboutBox95.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root> \ No newline at end of file
diff --git a/TimeHACK.Engine/Template/Infobox95.Designer.cs b/TimeHACK.Engine/Template/Infobox95.Designer.cs
new file mode 100644
index 0000000..d15dea3
--- /dev/null
+++ b/TimeHACK.Engine/Template/Infobox95.Designer.cs
@@ -0,0 +1,283 @@
+namespace TimeHACK.Engine.Template
+{
+ partial class Infobox95
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Infobox95));
+ this.program = new System.Windows.Forms.Panel();
+ this.programContent = new System.Windows.Forms.Panel();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.infoText = new System.Windows.Forms.Label();
+ this.ok = new System.Windows.Forms.Button();
+ this.programtopbar = new System.Windows.Forms.Panel();
+ this.Title = new System.Windows.Forms.Label();
+ this.closebutton = new System.Windows.Forms.PictureBox();
+ this.toprightcorner = new System.Windows.Forms.Panel();
+ this.bottomrightcorner = new System.Windows.Forms.Panel();
+ this.bottomleftcorner = new System.Windows.Forms.Panel();
+ this.topleftcorner = new System.Windows.Forms.Panel();
+ this.left = new System.Windows.Forms.Panel();
+ this.bottom = new System.Windows.Forms.Panel();
+ this.right = new System.Windows.Forms.Panel();
+ this.top = new System.Windows.Forms.Panel();
+ this.program.SuspendLayout();
+ this.programContent.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.panel1.SuspendLayout();
+ this.programtopbar.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.closebutton)).BeginInit();
+ this.SuspendLayout();
+ //
+ // program
+ //
+ this.program.BackColor = System.Drawing.Color.Silver;
+ this.program.Controls.Add(this.programContent);
+ this.program.Controls.Add(this.programtopbar);
+ this.program.Controls.Add(this.toprightcorner);
+ this.program.Controls.Add(this.bottomrightcorner);
+ this.program.Controls.Add(this.bottomleftcorner);
+ this.program.Controls.Add(this.topleftcorner);
+ this.program.Controls.Add(this.left);
+ this.program.Controls.Add(this.bottom);
+ this.program.Controls.Add(this.right);
+ this.program.Controls.Add(this.top);
+ this.program.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.program.Location = new System.Drawing.Point(0, 0);
+ this.program.Name = "program";
+ this.program.Size = new System.Drawing.Size(421, 164);
+ this.program.TabIndex = 9;
+ //
+ // programContent
+ //
+ this.programContent.Controls.Add(this.pictureBox1);
+ this.programContent.Controls.Add(this.panel1);
+ this.programContent.Controls.Add(this.ok);
+ this.programContent.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.programContent.Location = new System.Drawing.Point(4, 22);
+ this.programContent.Name = "programContent";
+ this.programContent.Size = new System.Drawing.Size(413, 138);
+ this.programContent.TabIndex = 9;
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.ErrorImage = null;
+ this.pictureBox1.Image = global::TimeHACK.Engine.Properties.Resources.Win95Warning;
+ this.pictureBox1.InitialImage = null;
+ this.pictureBox1.Location = new System.Drawing.Point(8, 33);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(32, 32);
+ this.pictureBox1.TabIndex = 3;
+ this.pictureBox1.TabStop = false;
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.infoText);
+ this.panel1.Location = new System.Drawing.Point(57, 33);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(337, 62);
+ this.panel1.TabIndex = 2;
+ //
+ // infoText
+ //
+ this.infoText.AutoSize = true;
+ this.infoText.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.infoText.Location = new System.Drawing.Point(0, 0);
+ this.infoText.Name = "infoText";
+ this.infoText.Size = new System.Drawing.Size(35, 13);
+ this.infoText.TabIndex = 0;
+ this.infoText.Text = "label1";
+ //
+ // ok
+ //
+ this.ok.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.ok.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+ this.ok.Location = new System.Drawing.Point(169, 109);
+ this.ok.Name = "ok";
+ this.ok.Size = new System.Drawing.Size(75, 23);
+ this.ok.TabIndex = 1;
+ this.ok.Text = "OK";
+ this.ok.UseVisualStyleBackColor = true;
+ this.ok.Click += new System.EventHandler(this.ok_Click);
+ this.ok.Paint += new System.Windows.Forms.PaintEventHandler(this.closebutton_Paint);
+ //
+ // programtopbar
+ //
+ this.programtopbar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(170)))));
+ this.programtopbar.Controls.Add(this.Title);
+ this.programtopbar.Controls.Add(this.closebutton);
+ this.programtopbar.Dock = System.Windows.Forms.DockStyle.Top;
+ this.programtopbar.Location = new System.Drawing.Point(4, 4);
+ this.programtopbar.Name = "programtopbar";
+ this.programtopbar.Size = new System.Drawing.Size(413, 18);
+ this.programtopbar.TabIndex = 0;
+ this.programtopbar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag);
+ //
+ // Title
+ //
+ this.Title.AutoSize = true;
+ this.Title.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Title.ForeColor = System.Drawing.Color.White;
+ this.Title.Location = new System.Drawing.Point(3, 3);
+ this.Title.Name = "Title";
+ this.Title.Size = new System.Drawing.Size(78, 13);
+ this.Title.TabIndex = 3;
+ this.Title.Text = "Infobox Title";
+ this.Title.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag);
+ //
+ // closebutton
+ //
+ this.closebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
+ this.closebutton.Image = ((System.Drawing.Image)(resources.GetObject("closebutton.Image")));
+ this.closebutton.Location = new System.Drawing.Point(396, 2);
+ this.closebutton.Name = "closebutton";
+ this.closebutton.Size = new System.Drawing.Size(16, 14);
+ this.closebutton.TabIndex = 4;
+ this.closebutton.TabStop = false;
+ this.closebutton.Click += new System.EventHandler(this.closebutton_Click);
+ //
+ // toprightcorner
+ //
+ this.toprightcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.toprightcorner.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("toprightcorner.BackgroundImage")));
+ this.toprightcorner.Location = new System.Drawing.Point(417, 0);
+ this.toprightcorner.Name = "toprightcorner";
+ this.toprightcorner.Size = new System.Drawing.Size(4, 4);
+ this.toprightcorner.TabIndex = 6;
+ //
+ // bottomrightcorner
+ //
+ this.bottomrightcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.bottomrightcorner.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("bottomrightcorner.BackgroundImage")));
+ this.bottomrightcorner.Cursor = System.Windows.Forms.Cursors.SizeNWSE;
+ this.bottomrightcorner.Location = new System.Drawing.Point(417, 160);
+ this.bottomrightcorner.Name = "bottomrightcorner";
+ this.bottomrightcorner.Size = new System.Drawing.Size(4, 4);
+ this.bottomrightcorner.TabIndex = 4;
+ //
+ // bottomleftcorner
+ //
+ this.bottomleftcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.bottomleftcorner.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("bottomleftcorner.BackgroundImage")));
+ this.bottomleftcorner.Location = new System.Drawing.Point(0, 160);
+ this.bottomleftcorner.Name = "bottomleftcorner";
+ this.bottomleftcorner.Size = new System.Drawing.Size(4, 4);
+ this.bottomleftcorner.TabIndex = 2;
+ //
+ // topleftcorner
+ //
+ this.topleftcorner.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("topleftcorner.BackgroundImage")));
+ this.topleftcorner.Location = new System.Drawing.Point(0, 0);
+ this.topleftcorner.Name = "topleftcorner";
+ this.topleftcorner.Size = new System.Drawing.Size(4, 4);
+ this.topleftcorner.TabIndex = 1;
+ //
+ // left
+ //
+ this.left.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("left.BackgroundImage")));
+ this.left.Dock = System.Windows.Forms.DockStyle.Left;
+ this.left.Location = new System.Drawing.Point(0, 4);
+ this.left.Name = "left";
+ this.left.Size = new System.Drawing.Size(4, 156);
+ this.left.TabIndex = 3;
+ //
+ // bottom
+ //
+ this.bottom.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("bottom.BackgroundImage")));
+ this.bottom.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.bottom.Cursor = System.Windows.Forms.Cursors.SizeNS;
+ this.bottom.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.bottom.Location = new System.Drawing.Point(0, 160);
+ this.bottom.Name = "bottom";
+ this.bottom.Size = new System.Drawing.Size(417, 4);
+ this.bottom.TabIndex = 5;
+ //
+ // right
+ //
+ this.right.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("right.BackgroundImage")));
+ this.right.Cursor = System.Windows.Forms.Cursors.SizeWE;
+ this.right.Dock = System.Windows.Forms.DockStyle.Right;
+ this.right.Location = new System.Drawing.Point(417, 4);
+ this.right.Name = "right";
+ this.right.Size = new System.Drawing.Size(4, 160);
+ this.right.TabIndex = 7;
+ //
+ // top
+ //
+ this.top.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("top.BackgroundImage")));
+ this.top.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.top.Dock = System.Windows.Forms.DockStyle.Top;
+ this.top.Location = new System.Drawing.Point(0, 0);
+ this.top.Name = "top";
+ this.top.Size = new System.Drawing.Size(421, 4);
+ this.top.TabIndex = 8;
+ //
+ // Infobox95
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(421, 164);
+ this.Controls.Add(this.program);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+ this.Name = "Infobox95";
+ this.Text = "Infobox";
+ this.program.ResumeLayout(false);
+ this.programContent.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.programtopbar.ResumeLayout(false);
+ this.programtopbar.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.closebutton)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ internal System.Windows.Forms.Panel program;
+ public System.Windows.Forms.Panel programContent;
+ internal System.Windows.Forms.Panel programtopbar;
+ internal System.Windows.Forms.Label Title;
+ internal System.Windows.Forms.PictureBox closebutton;
+ internal System.Windows.Forms.Panel toprightcorner;
+ internal System.Windows.Forms.Panel bottomrightcorner;
+ internal System.Windows.Forms.Panel bottomleftcorner;
+ internal System.Windows.Forms.Panel topleftcorner;
+ internal System.Windows.Forms.Panel left;
+ internal System.Windows.Forms.Panel bottom;
+ internal System.Windows.Forms.Panel right;
+ internal System.Windows.Forms.Panel top;
+ private System.Windows.Forms.Button ok;
+ private System.Windows.Forms.Panel panel1;
+ public System.Windows.Forms.Label infoText;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ }
+} \ No newline at end of file
diff --git a/TimeHACK.Engine/Template/Infobox95.cs b/TimeHACK.Engine/Template/Infobox95.cs
new file mode 100644
index 0000000..69bbeda
--- /dev/null
+++ b/TimeHACK.Engine/Template/Infobox95.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Drawing;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+
+namespace TimeHACK.Engine.Template
+{
+ public partial class Infobox95 : Form
+ {
+ public Infobox95()
+ {
+ InitializeComponent();
+ }
+
+ private void ok_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void closebutton_Paint(object sender, PaintEventArgs e)
+ {
+ // Paint the StartMenu
+ ControlPaint.DrawBorder(e.Graphics, ok.ClientRectangle,
+ SystemColors.ControlLightLight, 2, ButtonBorderStyle.Outset,
+ SystemColors.ControlLightLight, 2, ButtonBorderStyle.Outset,
+ SystemColors.ControlLightLight, 2, ButtonBorderStyle.Outset,
+ SystemColors.ControlLightLight, 2, ButtonBorderStyle.Outset);
+ }
+
+ public bool closeDisabled = false;
+
+ public const int WM_NCLBUTTONDOWN = 0xA1;
+ public const int HT_CAPTION = 0x2;
+
+ [DllImportAttribute("user32.dll")]
+ public static extern int SendMessage(IntPtr hWnd,
+ int Msg, int wParam, int lParam);
+ [DllImportAttribute("user32.dll")]
+ public static extern bool ReleaseCapture();
+
+ private void Programtopbar_drag(object sender, MouseEventArgs e)
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ ReleaseCapture();
+ SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
+ }
+ }
+
+ private void closebutton_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ }
+}
diff --git a/TimeHACK.Engine/Template/Infobox95.resx b/TimeHACK.Engine/Template/Infobox95.resx
new file mode 100644
index 0000000..7635350
--- /dev/null
+++ b/TimeHACK.Engine/Template/Infobox95.resx
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="closebutton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAABcSURBVChTrY/R
+ DcAgCERvdEbrJh2lPU+SYkINRt+PSN6J4FkBhMddw8y+wFUgCbQ70OtO7OQTJLgRa/L7JWmOt8RsB8mD
+ TQ5NkFbeQcLwauzMdkjZCLAq0gJrAC8niIXaIK89FAAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="toprightcorner.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAdSURBVBhXYzh8
+ /DQEMQDBfzBo6+oDcSDCGBwGBgAJoRsoKGRD1QAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="bottomrightcorner.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAdSURBVBhXYzh8
+ /DQQtXX1MQABCgdIQRCIgwAMDABm/hFrLt/K7gAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="bottomleftcorner.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAdSURBVBhXYzh8
+ /PT///+BJBBhcNq6+iCIAQEYGACcHRsocGQwIQAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="topleftcorner.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAaSURBVBhXYzh8
+ /DQcgTj/YQDKQZEBcY6fBgAaSCiZEc9BxAAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="left.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAIAAAB2XpiaAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAUSURBVBhXYzh8
+ /PT///+B5OHjpwFB1wn9nx9JYgAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="bottom.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAIAAADAusJtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAVSURBVBhXYzh8
+ /DQYt3X1MTAwMAAAQaQGSbsObiQAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="right.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAIAAAB2XpiaAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAUSURBVBhXYzh8
+ /DQQtXX1MTAwAAA0WgZJrWm8iAAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="top.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAIAAADAusJtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAVSURBVBhXYzh8
+ /DTD////wfTh46cBUSgJ/bC/izUAAAAASUVORK5CYII=
+</value>
+ </data>
+</root> \ No newline at end of file
diff --git a/TimeHACK.Engine/Template/Win9XBSOD.Designer.cs b/TimeHACK.Engine/Template/Win9XBSOD.Designer.cs
new file mode 100644
index 0000000..69470f0
--- /dev/null
+++ b/TimeHACK.Engine/Template/Win9XBSOD.Designer.cs
@@ -0,0 +1,128 @@
+namespace TimeHACK.Engine.Template
+{
+ partial class Win9XBSOD
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.label1 = new System.Windows.Forms.Label();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.textBox2 = new System.Windows.Forms.TextBox();
+ this.textBox3 = new System.Windows.Forms.TextBox();
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.label1.AutoSize = true;
+ this.label1.BackColor = System.Drawing.Color.Silver;
+ this.label1.Font = new System.Drawing.Font("Perfect DOS VGA 437", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label1.ForeColor = System.Drawing.Color.Blue;
+ this.label1.Location = new System.Drawing.Point(564, 240);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(147, 28);
+ this.label1.TabIndex = 0;
+ this.label1.Text = " Windows ";
+ //
+ // textBox1
+ //
+ this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.textBox1.BackColor = System.Drawing.Color.Blue;
+ this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.textBox1.Font = new System.Drawing.Font("Perfect DOS VGA 437", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.textBox1.ForeColor = System.Drawing.Color.White;
+ this.textBox1.Location = new System.Drawing.Point(120, 294);
+ this.textBox1.MaximumSize = new System.Drawing.Size(950, 81);
+ this.textBox1.Multiline = true;
+ this.textBox1.Name = "textBox1";
+ this.textBox1.ReadOnly = true;
+ this.textBox1.Size = new System.Drawing.Size(950, 81);
+ this.textBox1.TabIndex = 0;
+ this.textBox1.TabStop = false;
+ this.textBox1.Text = "A fatal exception 0E has occured at 0028:C0034B23. The current application will " +
+ "be terminated.";
+ //
+ // textBox2
+ //
+ this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.textBox2.BackColor = System.Drawing.Color.Blue;
+ this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.textBox2.Font = new System.Drawing.Font("Perfect DOS VGA 437", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.textBox2.ForeColor = System.Drawing.Color.White;
+ this.textBox2.Location = new System.Drawing.Point(120, 381);
+ this.textBox2.Multiline = true;
+ this.textBox2.Name = "textBox2";
+ this.textBox2.ReadOnly = true;
+ this.textBox2.Size = new System.Drawing.Size(950, 101);
+ this.textBox2.TabIndex = 1;
+ this.textBox2.TabStop = false;
+ this.textBox2.Text = "* Press any key to rewind time to before the crash.\r\n* Press ESC to shutdown yo" +
+ "ur computer. You will lose any\r\n unsaved data in all applications.";
+ //
+ // textBox3
+ //
+ this.textBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.textBox3.BackColor = System.Drawing.Color.Blue;
+ this.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.textBox3.Font = new System.Drawing.Font("Perfect DOS VGA 437", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.textBox3.ForeColor = System.Drawing.Color.White;
+ this.textBox3.Location = new System.Drawing.Point(450, 488);
+ this.textBox3.Multiline = true;
+ this.textBox3.Name = "textBox3";
+ this.textBox3.ReadOnly = true;
+ this.textBox3.Size = new System.Drawing.Size(382, 34);
+ this.textBox3.TabIndex = 2;
+ this.textBox3.TabStop = false;
+ this.textBox3.Text = "Press any key to rewind _";
+ //
+ // Win9XBSOD
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.Color.Blue;
+ this.ClientSize = new System.Drawing.Size(1280, 720);
+ this.Controls.Add(this.textBox3);
+ this.Controls.Add(this.textBox2);
+ this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.label1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+ this.Name = "Win9XBSOD";
+ this.Text = "Win9XBSOD";
+ this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Win9XBSOD_KeyDown);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ internal System.Windows.Forms.Label label1;
+ internal System.Windows.Forms.TextBox textBox1;
+ internal System.Windows.Forms.TextBox textBox2;
+ internal System.Windows.Forms.TextBox textBox3;
+ }
+} \ No newline at end of file
diff --git a/TimeHACK.Engine/Template/Win9XBSOD.cs b/TimeHACK.Engine/Template/Win9XBSOD.cs
new file mode 100644
index 0000000..662812b
--- /dev/null
+++ b/TimeHACK.Engine/Template/Win9XBSOD.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace TimeHACK.Engine.Template
+{
+ public partial class Win9XBSOD : Form
+ {
+ public bool reset = false;
+
+ public Win9XBSOD()
+ {
+ InitializeComponent();
+ }
+
+ private void Win9XBSOD_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Escape) Environment.Exit(0);
+ else
+ {
+ reset = true;
+ this.Close();
+ }
+ }
+ }
+}
diff --git a/TimeHACK.Engine/Template/Win9XBSOD.resx b/TimeHACK.Engine/Template/Win9XBSOD.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/TimeHACK.Engine/Template/Win9XBSOD.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root> \ No newline at end of file
diff --git a/TimeHACK.Engine/Template/WinClassic.Designer.cs b/TimeHACK.Engine/Template/WinClassic.Designer.cs
index 0d26710..6c0026b 100644
--- a/TimeHACK.Engine/Template/WinClassic.Designer.cs
+++ b/TimeHACK.Engine/Template/WinClassic.Designer.cs
@@ -109,7 +109,7 @@
// maximizebutton
//
this.maximizebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
- this.maximizebutton.Image = global::TimeHACK.Engine.Properties.Resources.WinClassicMax;
+ this.maximizebutton.Image = ((System.Drawing.Image)(resources.GetObject("maximizebutton.Image")));
this.maximizebutton.Location = new System.Drawing.Point(257, 2);
this.maximizebutton.Name = "maximizebutton";
this.maximizebutton.Size = new System.Drawing.Size(16, 14);
@@ -120,7 +120,7 @@
// minimizebutton
//
this.minimizebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
- this.minimizebutton.Image = global::TimeHACK.Engine.Properties.Resources.WinClassicMin;
+ this.minimizebutton.Image = ((System.Drawing.Image)(resources.GetObject("minimizebutton.Image")));
this.minimizebutton.Location = new System.Drawing.Point(241, 2);
this.minimizebutton.Name = "minimizebutton";
this.minimizebutton.Size = new System.Drawing.Size(16, 14);
@@ -130,9 +130,9 @@
// Title
//
this.Title.AutoSize = true;
- this.Title.Font = fnt;
+ this.Title.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Title.ForeColor = System.Drawing.Color.White;
- this.Title.Location = new System.Drawing.Point(23, 3);
+ this.Title.Location = new System.Drawing.Point(18, 1);
this.Title.Name = "Title";
this.Title.Size = new System.Drawing.Size(99, 13);
this.Title.TabIndex = 3;
@@ -142,7 +142,7 @@
// closebutton
//
this.closebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
- this.closebutton.Image = global::TimeHACK.Engine.Properties.Resources.WinClassicClose;
+ this.closebutton.Image = ((System.Drawing.Image)(resources.GetObject("closebutton.Image")));
this.closebutton.Location = new System.Drawing.Point(275, 2);
this.closebutton.Name = "closebutton";
this.closebutton.Size = new System.Drawing.Size(16, 14);
@@ -197,7 +197,7 @@
//
// bottom
//
- this.bottom.BackgroundImage = global::TimeHACK.Engine.Properties.Resources.BottomSide;
+ this.bottom.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("bottom.BackgroundImage")));
this.bottom.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.bottom.Cursor = System.Windows.Forms.Cursors.SizeNS;
this.bottom.Dock = System.Windows.Forms.DockStyle.Bottom;
@@ -218,7 +218,7 @@
//
// top
//
- this.top.BackgroundImage = global::TimeHACK.Engine.Properties.Resources.TopSide;
+ this.top.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("top.BackgroundImage")));
this.top.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.top.Dock = System.Windows.Forms.DockStyle.Top;
this.top.Location = new System.Drawing.Point(0, 0);
@@ -249,7 +249,7 @@
#endregion
internal System.Windows.Forms.Panel program;
- internal System.Windows.Forms.Panel programtopbar;
+ public System.Windows.Forms.Panel programtopbar;
internal System.Windows.Forms.Label Title;
internal System.Windows.Forms.PictureBox closebutton;
internal System.Windows.Forms.Panel toprightcorner;
diff --git a/TimeHACK.Engine/Template/WinClassic.cs b/TimeHACK.Engine/Template/WinClassic.cs
index de88c1a..ea99353 100644
--- a/TimeHACK.Engine/Template/WinClassic.cs
+++ b/TimeHACK.Engine/Template/WinClassic.cs
@@ -55,7 +55,7 @@ namespace TimeHACK.Engine.Template
this.Dock = DockStyle.Fill;
this.WindowState = FormWindowState.Maximized;
max = true;
- maximizebutton.Image = Properties.Resources.WinClassicRestore;
+ maximizebutton.Image = Engine.Properties.Resources.WinClassicRestore;
}
else
{
@@ -70,7 +70,7 @@ namespace TimeHACK.Engine.Template
this.Dock = DockStyle.None;
this.WindowState = FormWindowState.Normal;
max = false;
- maximizebutton.Image = Properties.Resources.WinClassicMax;
+ maximizebutton.Image = Engine.Properties.Resources.WinClassicMax;
}
}
diff --git a/TimeHACK.Engine/Template/WinClassic.resx b/TimeHACK.Engine/Template/WinClassic.resx
index cd30725..394031d 100644
--- a/TimeHACK.Engine/Template/WinClassic.resx
+++ b/TimeHACK.Engine/Template/WinClassic.resx
@@ -118,6 +118,30 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="maximizebutton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAA+SURBVChTY/hP
+ CmAAAiB1nzjQ0NCA0HDgwAEQBwcAygIBNTRAJNDAqAY0DbgAdg0EAUIDkEUkAGkgDTAwAACYPGiagsMD
+ PwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="minimizebutton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAA5SURBVChTY/hP
+ CmAAAiB1nzjQ0NCA0HCACDCqASqGF2DRAOKjAog4BFBDA36A0ABkEQlAGkgDDAwAKPmlWmNluNoAAAAA
+ SUVORK5CYII=
+</value>
+ </data>
+ <data name="closebutton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAABcSURBVChTrY/R
+ DcAgCERvdEbrJh2lPU+SYkINRt+PSN6J4FkBhMddw8y+wFUgCbQ70OtO7OQTJLgRa/L7JWmOt8RsB8mD
+ TQ5NkFbeQcLwauzMdkjZCLAq0gJrAC8niIXaIK89FAAAAABJRU5ErkJggg==
+</value>
+ </data>
<data name="toprightcorner.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -153,6 +177,13 @@
/PT///+B5OHjpwFB1wn9nx9JYgAAAABJRU5ErkJggg==
</value>
</data>
+ <data name="bottom.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAIAAADAusJtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAVSURBVBhXYzh8
+ /DQYt3X1MTAwMAAAQaQGSbsObiQAAAAASUVORK5CYII=
+</value>
+ </data>
<data name="right.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAIAAAB2XpiaAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -160,4 +191,11 @@
/DQQtXX1MTAwAAA0WgZJrWm8iAAAAABJRU5ErkJggg==
</value>
</data>
+ <data name="top.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAIAAADAusJtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMzQDW3oAAAAVSURBVBhXYzh8
+ /DTD////wfTh46cBUSgJ/bC/izUAAAAASUVORK5CYII=
+</value>
+ </data>
</root> \ No newline at end of file
diff --git a/TimeHACK.Engine/TimeHACK.Engine.csproj b/TimeHACK.Engine/TimeHACK.Engine.csproj
index 840be1f..2ca3c7c 100644
--- a/TimeHACK.Engine/TimeHACK.Engine.csproj
+++ b/TimeHACK.Engine/TimeHACK.Engine.csproj
@@ -30,6 +30,9 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="Newtonsoft.Json">
+ <HintPath>..\TimeHACK.Main\bin\Release\Newtonsoft.Json.dll</HintPath>
+ </Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
@@ -42,6 +45,25 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="BSODCreator.cs" />
+ <Compile Include="Template\Win9XBSOD.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="Template\Win9XBSOD.Designer.cs">
+ <DependentUpon>Win9XBSOD.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Template\AboutBox95.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="Template\AboutBox95.Designer.cs">
+ <DependentUpon>AboutBox95.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Template\Infobox95.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="Template\Infobox95.Designer.cs">
+ <DependentUpon>Infobox95.cs</DependentUpon>
+ </Compile>
<Compile Include="Template\WinClassic.cs">
<SubType>Form</SubType>
</Compile>
@@ -49,6 +71,7 @@
<DependentUpon>WinClassic.cs</DependentUpon>
</Compile>
<Compile Include="WindowManager.cs" />
+ <Compile Include="WCMessageParser.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
@@ -61,12 +84,22 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
+ <EmbeddedResource Include="Template\Win9XBSOD.resx">
+ <DependentUpon>Win9XBSOD.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Template\AboutBox95.resx">
+ <DependentUpon>AboutBox95.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Template\Infobox95.resx">
+ <DependentUpon>Infobox95.cs</DependentUpon>
+ </EmbeddedResource>
<EmbeddedResource Include="Template\WinClassic.resx">
<DependentUpon>WinClassic.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Include="Resources\Icon128x.ico" />
+ <None Include="Resources\WinAboutSeparator95.png" />
<Content Include="Resources\WinClassic\Window\BottomLeft.png" />
<Content Include="Resources\WinClassic\Window\BottomRight.png" />
<Content Include="Resources\WinClassic\Window\BottomSide.png" />
@@ -76,11 +109,18 @@
<Content Include="Resources\WinClassic\Window\TopLeft.png" />
<Content Include="Resources\WinClassic\Window\TopRight.png" />
<Content Include="Resources\WinClassic\Window\TopSide.png" />
+ <None Include="Resources\WinClassic\Window\Win95Info.png" />
+ <None Include="Resources\WinClassic\Window\Win95Warning.png" />
+ <None Include="Resources\WinClassic\Window\Win95Error.png" />
<Content Include="Resources\WinClassic\Window\WinClassicClose.png" />
<Content Include="Resources\WinClassic\Window\WinClassicMax.png" />
<Content Include="Resources\WinClassic\Window\WinClassicMin.png" />
<Content Include="Resources\WinClassic\Window\WinClassicRestore.png" />
+ <Content Include="Resources\WinClassic\Window\WinClassicWarning.png" />
+ <None Include="Resources\WinClassic\Window\windows_command_prompt.ttf" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Resources\WinClassic\Window\LeviWindows.ttf" />
</ItemGroup>
- <ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> \ No newline at end of file
diff --git a/TimeHACK.Engine/WCMessageParser.cs b/TimeHACK.Engine/WCMessageParser.cs
new file mode 100644
index 0000000..ef7efd0
--- /dev/null
+++ b/TimeHACK.Engine/WCMessageParser.cs
@@ -0,0 +1,30 @@
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace TimeHACK.Engine
+{
+ public class WCMessageParser
+ {
+ public string ParseMessage(string json, int index, string user)
+ {
+ JObject message = JObject.Parse(JObject.Parse(json)["messages"][index].ToString());
+ string newmsg = message["message"].ToString().Replace("@user", user);
+ if (message["userchat"].ToObject<bool>()) return message["user"].ToString() + ": " + newmsg;
+ else return newmsg;
+ }
+ public int GetMessageDelay(string json, int index)
+ {
+ JObject message = JObject.Parse(JObject.Parse(json)["messages"][index].ToString());
+ return message["delay"].ToObject<int>();
+ }
+ public string GetSpecial(string json, int index)
+ {
+ JObject message = JObject.Parse(JObject.Parse(json)["messages"][index].ToString());
+ return message["special"].ToString();
+ }
+ }
+}
diff --git a/TimeHACK.Engine/WindowManager.cs b/TimeHACK.Engine/WindowManager.cs
index 193985a..ceca43f 100644
--- a/TimeHACK.Engine/WindowManager.cs
+++ b/TimeHACK.Engine/WindowManager.cs
@@ -1,7 +1,7 @@
using System;
-using TimeHACK.Engine.Template;
using System.Windows.Forms;
using System.Drawing;
+using TimeHACK.Engine.Template;
namespace TimeHACK.Engine
{
@@ -9,7 +9,8 @@ namespace TimeHACK.Engine
{
public static System.Drawing.Text.PrivateFontCollection pfc = new System.Drawing.Text.PrivateFontCollection();
- public WinClassic startWinClassic(UserControl content, String title, PictureBox icon, Boolean MaxButton, Boolean MinButton)
+
+ public WinClassic startWin95(UserControl content, String title, Image icon, Boolean MaxButton, Boolean MinButton)
{
// Setup Window
WinClassic app = new WinClassic();
@@ -19,8 +20,9 @@ namespace TimeHACK.Engine
app.Height = content.Height + 26;
// Initialize Font
pfc.AddFontFile(AppDomain.CurrentDomain.BaseDirectory + "\\LeviWindows.ttf");
- Font fnt = new Font(pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0)));
+ Font fnt = new Font(pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((0)));
app.fnt = fnt;
+ app.Title.Font = new Font(pfc.Families[0], 16F, FontStyle.Bold, GraphicsUnit.Point, ((0)));
// Setup UC
content.Parent = app.programContent;
content.BringToFront();
@@ -29,10 +31,11 @@ namespace TimeHACK.Engine
// Check if icon is null
if (icon == null)
{
- icon = app.programIcon;
- icon.Image = Properties.Resources.nullIcon;
+ app.programIcon.Hide();
+ app.programIcon.Image = Engine.Properties.Resources.nullIcon;
+ app.Title.Location = new Point(2, 1);
}
- app.programIcon.Image = icon.Image;
+ else app.programIcon.Image = icon;
// Check if Max button is enabled and set proper X for Min button
if (MaxButton == false)
@@ -55,5 +58,25 @@ namespace TimeHACK.Engine
return app;
}
+
+ public Infobox95 startInfobox95(String title, String text, Image erroricon)
+ {
+ Infobox95 app = new Infobox95();
+ app.Title.Text = title;
+ app.Text = title;
+ app.infoText.Text = text;
+ app.Show();
+ return app;
+ }
+
+ public WinClassic startAboutBox95(String shortname, String longname, Image appicon)
+ {
+ AboutBox95 uc = new AboutBox95();
+ uc.pictureBox1.Image = appicon;
+ uc.textBox1.Text = longname + "\r\nWindows 95\r\nCopyright © 1981-1995 Microsoft Corp.";
+ uc.Font = new Font(pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((0)));
+
+ return startWin95(uc, "About " + shortname, null, false, false);
+ }
}
-} \ No newline at end of file
+}
diff --git a/TimeHACK.Engine/bin/Release/Newtonsoft.Json.dll b/TimeHACK.Engine/bin/Release/Newtonsoft.Json.dll
new file mode 100644
index 0000000..bc3ef13
--- /dev/null
+++ b/TimeHACK.Engine/bin/Release/Newtonsoft.Json.dll
Binary files differ
diff --git a/TimeHACK.Engine/bin/Release/TimeHACK.Engine.dll b/TimeHACK.Engine/bin/Release/TimeHACK.Engine.dll
index 3f65626..4e9a792 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 4435104..8bf7e12 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/CoreCompileInputs.cache b/TimeHACK.Engine/obj/Debug/CoreCompileInputs.cache
deleted file mode 100644
index e643aba..0000000
--- a/TimeHACK.Engine/obj/Debug/CoreCompileInputs.cache
+++ /dev/null
@@ -1 +0,0 @@
-460f0157ea76b7d34a5b2804ca785964642b50da
diff --git a/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferences.cache
deleted file mode 100644
index 8ab60bb..0000000
--- a/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferences.cache
+++ /dev/null
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/TimeHACK.Engine/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index ccee681..bac2e0d 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
deleted file mode 100644
index c174fa7..0000000
--- a/TimeHACK.Engine/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
+++ /dev/null
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.OSProgramTemplates.WinClassic.resources b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.OSProgramTemplates.WinClassic.resources
deleted file mode 100644
index 2a79d99..0000000
--- a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.OSProgramTemplates.WinClassic.resources
+++ /dev/null
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
deleted file mode 100644
index 9629cd7..0000000
--- a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Properties.Resources.resources
+++ /dev/null
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
deleted file mode 100644
index 2a79d99..0000000
--- a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.Template.WinClassic.resources
+++ /dev/null
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
deleted file mode 100644
index 4a48440..0000000
--- a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.FileListAbsolute.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\bin\Debug\TimeHACK.Engine.dll
-D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\bin\Debug\TimeHACK.Engine.pdb
-D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csprojResolveAssemblyReference.cache
-D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Properties.Resources.resources
-D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csproj.GenerateResource.Cache
-D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.dll
-D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.pdb
-D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Template.WinClassic.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\bin\Debug\TimeHACK.Engine.dll
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\bin\Debug\TimeHACK.Engine.pdb
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csprojResolveAssemblyReference.cache
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Properties.Resources.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Template.WinClassic.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csproj.GenerateResource.Cache
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.dll
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.pdb
-F:\Users\force\Documents\TimeHACK-master\TimeHACK.Engine\bin\Debug\TimeHACK.Engine.dll
-F:\Users\force\Documents\TimeHACK-master\TimeHACK.Engine\bin\Debug\TimeHACK.Engine.pdb
-F:\Users\force\Documents\TimeHACK-master\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csprojResolveAssemblyReference.cache
-F:\Users\force\Documents\TimeHACK-master\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Properties.Resources.resources
-F:\Users\force\Documents\TimeHACK-master\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Template.WinClassic.resources
-F:\Users\force\Documents\TimeHACK-master\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csproj.GenerateResource.Cache
-F:\Users\force\Documents\TimeHACK-master\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.dll
-F:\Users\force\Documents\TimeHACK-master\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.pdb
-C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csprojResolveAssemblyReference.cache
-C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Properties.Resources.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.Template.WinClassic.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.csproj.GenerateResource.Cache
-C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Debug\TimeHACK.Engine.dll
-C:\Users\Liam\Documents\GitHub\TimeHACK-fork\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
deleted file mode 100644
index f56c00b..0000000
--- a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csproj.GenerateResource.Cache
+++ /dev/null
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csprojResolveAssemblyReference.cache b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csprojResolveAssemblyReference.cache
deleted file mode 100644
index 934fb3e..0000000
--- a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.csprojResolveAssemblyReference.cache
+++ /dev/null
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.dll b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.dll
deleted file mode 100644
index 4dce794..0000000
--- a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.dll
+++ /dev/null
Binary files differ
diff --git a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.pdb b/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.pdb
deleted file mode 100644
index 7d792d6..0000000
--- a/TimeHACK.Engine/obj/Debug/TimeHACK.Engine.pdb
+++ /dev/null
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/CoreCompileInputs.cache b/TimeHACK.Engine/obj/Release/CoreCompileInputs.cache
index d40efd7..a65a8e8 100644
--- a/TimeHACK.Engine/obj/Release/CoreCompileInputs.cache
+++ b/TimeHACK.Engine/obj/Release/CoreCompileInputs.cache
@@ -1 +1 @@
-852ea04aca4cd83baa11398abe6d505c48fd5c72
+cd6057942231e39fc4b025e097dd5d054a05c7b2
diff --git a/TimeHACK.Engine/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/TimeHACK.Engine/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
index 6174e8d..67f8a94 100644
--- a/TimeHACK.Engine/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/TimeHACK.Engine/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TempPE/Properties.Resources.Designer.cs.dll b/TimeHACK.Engine/obj/Release/TempPE/Properties.Resources.Designer.cs.dll
index 2ef289a..5de7cbf 100644
--- a/TimeHACK.Engine/obj/Release/TempPE/Properties.Resources.Designer.cs.dll
+++ b/TimeHACK.Engine/obj/Release/TempPE/Properties.Resources.Designer.cs.dll
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Properties.Resources.resources b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Properties.Resources.resources
index b31c83c..1e84bb7 100644
--- a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Properties.Resources.resources
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Properties.Resources.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.AboutBox95.resources b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.AboutBox95.resources
new file mode 100644
index 0000000..6c05a97
--- /dev/null
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.AboutBox95.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.Infobox95.resources b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.Infobox95.resources
new file mode 100644
index 0000000..411a9ff
--- /dev/null
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.Infobox95.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.Win9XBSOD.resources b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.Win9XBSOD.resources
new file mode 100644
index 0000000..6c05a97
--- /dev/null
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.Win9XBSOD.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.WinClassic.resources b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.WinClassic.resources
index f52d56e..bb123eb 100644
--- a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.WinClassic.resources
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.Template.WinClassic.resources
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.FileListAbsolute.txt b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.FileListAbsolute.txt
index 4e11a4d..ddc5d7f 100644
--- a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.FileListAbsolute.txt
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.FileListAbsolute.txt
@@ -1,30 +1,21 @@
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\bin\Release\TimeHACK.Engine.dll
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\bin\Release\TimeHACK.Engine.pdb
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Properties.Resources.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Template.WinClassic.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csproj.GenerateResource.Cache
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.dll
-C:\Users\Liam\Documents\GitHub\TimeHACK-lempfork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.pdb
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\bin\Release\TimeHACK.Engine.dll
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\bin\Release\TimeHACK.Engine.pdb
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csprojResolveAssemblyReference.cache
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Properties.Resources.resources
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Main.Template.Infobox95.resources
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Main.Template.WinClassic.resources
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csproj.GenerateResource.Cache
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.dll
+D:\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.pdb
C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\bin\Release\TimeHACK.Engine.dll
C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\bin\Release\TimeHACK.Engine.pdb
+C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\bin\Release\Newtonsoft.Json.dll
+C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csprojResolveAssemblyReference.cache
C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Properties.Resources.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Template.WinClassic.resources
C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csproj.GenerateResource.Cache
C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.dll
C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.pdb
-C:\Users\Liam\Documents\GitHub\TimeHACK\TimeHACK.Engine\bin\Release\TimeHACK.Engine.dll
-C:\Users\Liam\Documents\GitHub\TimeHACK\TimeHACK.Engine\bin\Release\TimeHACK.Engine.pdb
-C:\Users\Liam\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csprojResolveAssemblyReference.cache
-C:\Users\Liam\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Properties.Resources.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Template.WinClassic.resources
-C:\Users\Liam\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csproj.GenerateResource.Cache
-C:\Users\Liam\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.dll
-C:\Users\Liam\Documents\GitHub\TimeHACK\TimeHACK.Engine\obj\Release\TimeHACK.Engine.pdb
-F:\Users\force\Documents\TimeHackGIT\TimeHACK.Engine\bin\Release\TimeHACK.Engine.dll
-F:\Users\force\Documents\TimeHackGIT\TimeHACK.Engine\bin\Release\TimeHACK.Engine.pdb
-F:\Users\force\Documents\TimeHackGIT\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csprojResolveAssemblyReference.cache
-F:\Users\force\Documents\TimeHackGIT\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Properties.Resources.resources
-F:\Users\force\Documents\TimeHackGIT\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Template.WinClassic.resources
-F:\Users\force\Documents\TimeHackGIT\TimeHACK.Engine\obj\Release\TimeHACK.Engine.csproj.GenerateResource.Cache
-F:\Users\force\Documents\TimeHackGIT\TimeHACK.Engine\obj\Release\TimeHACK.Engine.dll
-F:\Users\force\Documents\TimeHackGIT\TimeHACK.Engine\obj\Release\TimeHACK.Engine.pdb
+C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Template.Infobox95.resources
+C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Template.WinClassic.resources
+C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Template.AboutBox95.resources
+C:\Users\Liam\Documents\GitHub\TimeHACK-fork\TimeHACK.Engine\obj\Release\TimeHACK.Engine.Template.Win9XBSOD.resources
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.GenerateResource.Cache b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csproj.GenerateResource.Cache
index dc6516d..00f32e5 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.csprojResolveAssemblyReference.cache b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csprojResolveAssemblyReference.cache
index da1fe52..8ccb9e7 100644
--- a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csprojResolveAssemblyReference.cache
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.csprojResolveAssemblyReference.cache
Binary files differ
diff --git a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.dll b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.dll
index 3f65626..4e9a792 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 4435104..8bf7e12 100644
--- a/TimeHACK.Engine/obj/Release/TimeHACK.Engine.pdb
+++ b/TimeHACK.Engine/obj/Release/TimeHACK.Engine.pdb
Binary files differ