diff --git a/.vs/Taz trainer/v14/.suo b/.vs/Taz trainer/v14/.suo
new file mode 100644
index 0000000..3877bf7
Binary files /dev/null and b/.vs/Taz trainer/v14/.suo differ
diff --git a/Taz trainer.sln b/Taz trainer.sln
new file mode 100644
index 0000000..8d326af
--- /dev/null
+++ b/Taz trainer.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.24720.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Taz trainer", "Taz trainer\Taz trainer.csproj", "{319655B7-FA36-4819-8B10-78F85147CABA}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {319655B7-FA36-4819-8B10-78F85147CABA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {319655B7-FA36-4819-8B10-78F85147CABA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {319655B7-FA36-4819-8B10-78F85147CABA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {319655B7-FA36-4819-8B10-78F85147CABA}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Taz trainer/App.config b/Taz trainer/App.config
new file mode 100644
index 0000000..74ade9d
--- /dev/null
+++ b/Taz trainer/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Taz trainer/Form1.Designer.cs b/Taz trainer/Form1.Designer.cs
new file mode 100644
index 0000000..64d3a77
--- /dev/null
+++ b/Taz trainer/Form1.Designer.cs
@@ -0,0 +1,812 @@
+namespace Taz_trainer
+{
+ partial class Form1
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
+ this.drawDistance = new System.Windows.Forms.CheckBox();
+ this.statusStrip = new System.Windows.Forms.StatusStrip();
+ this.statusField = new System.Windows.Forms.ToolStripStatusLabel();
+ this.numericJump = new System.Windows.Forms.NumericUpDown();
+ this.jumpLabel = new System.Windows.Forms.Label();
+ this.numericSpeed = new System.Windows.Forms.NumericUpDown();
+ this.speedLabel = new System.Windows.Forms.Label();
+ this.superBelchCan = new System.Windows.Forms.CheckBox();
+ this.flyMode = new System.Windows.Forms.CheckBox();
+ this.timer = new System.Windows.Forms.Timer(this.components);
+ this.smoothLight = new System.Windows.Forms.CheckBox();
+ this.invisibility = new System.Windows.Forms.CheckBox();
+ this.tableLayoutPanel1Trainer = new System.Windows.Forms.TableLayoutPanel();
+ this.tableLayoutPanel2Trainer = new System.Windows.Forms.TableLayoutPanel();
+ this.tableLayoutPanel4Trainer = new System.Windows.Forms.TableLayoutPanel();
+ this.tableLayoutPanel3Trainer = new System.Windows.Forms.TableLayoutPanel();
+ this.freezeLevelTimer = new System.Windows.Forms.CheckBox();
+ this.pictureTaz = new System.Windows.Forms.PictureBox();
+ this.tabs = new System.Windows.Forms.TabControl();
+ this.trainerTab = new System.Windows.Forms.TabPage();
+ this.patcherTab = new System.Windows.Forms.TabPage();
+ this.tableLayoutPanel1Patcher = new System.Windows.Forms.TableLayoutPanel();
+ this.tableLayoutPanel4Patcher = new System.Windows.Forms.TableLayoutPanel();
+ this.patch = new System.Windows.Forms.Button();
+ this.restore = new System.Windows.Forms.Button();
+ this.restoreBackup = new System.Windows.Forms.Button();
+ this.tableLayoutPanel3Patcher = new System.Windows.Forms.TableLayoutPanel();
+ this.aspect2 = new System.Windows.Forms.TextBox();
+ this.aspect1 = new System.Windows.Forms.TextBox();
+ this.aspectRatio = new System.Windows.Forms.CheckBox();
+ this.pointsLabel = new System.Windows.Forms.Label();
+ this.tableLayoutPanel2Patcher = new System.Windows.Forms.TableLayoutPanel();
+ this.changeResolution = new System.Windows.Forms.CheckBox();
+ this.height = new System.Windows.Forms.TextBox();
+ this.xLabel = new System.Windows.Forms.Label();
+ this.windowed = new System.Windows.Forms.CheckBox();
+ this.width = new System.Windows.Forms.TextBox();
+ this.trainerTitle = new System.Windows.Forms.Label();
+ this.disableVideos = new System.Windows.Forms.CheckBox();
+ this.disableDrawDistance = new System.Windows.Forms.CheckBox();
+ this.noCD = new System.Windows.Forms.CheckBox();
+ this.infoTab = new System.Windows.Forms.TabPage();
+ this.tableLayoutPanel1Info = new System.Windows.Forms.TableLayoutPanel();
+ this.infoText = new System.Windows.Forms.Label();
+ this.tableLayoutPanel2Info = new System.Windows.Forms.TableLayoutPanel();
+ this.gitHub = new System.Windows.Forms.Button();
+ this.statusStrip.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericJump)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericSpeed)).BeginInit();
+ this.tableLayoutPanel1Trainer.SuspendLayout();
+ this.tableLayoutPanel2Trainer.SuspendLayout();
+ this.tableLayoutPanel4Trainer.SuspendLayout();
+ this.tableLayoutPanel3Trainer.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureTaz)).BeginInit();
+ this.tabs.SuspendLayout();
+ this.trainerTab.SuspendLayout();
+ this.patcherTab.SuspendLayout();
+ this.tableLayoutPanel1Patcher.SuspendLayout();
+ this.tableLayoutPanel4Patcher.SuspendLayout();
+ this.tableLayoutPanel3Patcher.SuspendLayout();
+ this.tableLayoutPanel2Patcher.SuspendLayout();
+ this.infoTab.SuspendLayout();
+ this.tableLayoutPanel1Info.SuspendLayout();
+ this.tableLayoutPanel2Info.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // drawDistance
+ //
+ this.drawDistance.AutoSize = true;
+ this.drawDistance.Location = new System.Drawing.Point(3, 124);
+ this.drawDistance.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.drawDistance.Name = "drawDistance";
+ this.drawDistance.Size = new System.Drawing.Size(195, 22);
+ this.drawDistance.TabIndex = 1;
+ this.drawDistance.Text = "Infinity draw distance (F5)";
+ this.drawDistance.UseVisualStyleBackColor = true;
+ this.drawDistance.CheckedChanged += new System.EventHandler(this.drawDistance_CheckedChanged);
+ //
+ // statusStrip
+ //
+ this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.statusField});
+ this.statusStrip.Location = new System.Drawing.Point(0, 333);
+ this.statusStrip.Name = "statusStrip";
+ this.statusStrip.Padding = new System.Windows.Forms.Padding(1, 0, 18, 0);
+ this.statusStrip.Size = new System.Drawing.Size(468, 22);
+ this.statusStrip.SizingGrip = false;
+ this.statusStrip.TabIndex = 2;
+ //
+ // statusField
+ //
+ this.statusField.ForeColor = System.Drawing.SystemColors.ControlText;
+ this.statusField.Name = "statusField";
+ this.statusField.Size = new System.Drawing.Size(137, 17);
+ this.statusField.Text = "Welcome to Taz Hacked!";
+ //
+ // numericJump
+ //
+ this.numericJump.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.numericJump.Location = new System.Drawing.Point(1, 1);
+ this.numericJump.Margin = new System.Windows.Forms.Padding(1);
+ this.numericJump.Maximum = new decimal(new int[] {
+ 8,
+ 0,
+ 0,
+ 0});
+ this.numericJump.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericJump.Name = "numericJump";
+ this.numericJump.Size = new System.Drawing.Size(48, 26);
+ this.numericJump.TabIndex = 3;
+ this.numericJump.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ this.numericJump.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left;
+ this.numericJump.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericJump.ValueChanged += new System.EventHandler(this.numericJump_ValueChanged);
+ //
+ // jumpLabel
+ //
+ this.jumpLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.jumpLabel.AutoSize = true;
+ this.jumpLabel.Location = new System.Drawing.Point(53, 6);
+ this.jumpLabel.Name = "jumpLabel";
+ this.jumpLabel.Size = new System.Drawing.Size(170, 18);
+ this.jumpLabel.TabIndex = 4;
+ this.jumpLabel.Text = "x jump force (Num+/Num-)";
+ //
+ // numericSpeed
+ //
+ this.numericSpeed.DecimalPlaces = 1;
+ this.numericSpeed.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.numericSpeed.Increment = new decimal(new int[] {
+ 5,
+ 0,
+ 0,
+ 65536});
+ this.numericSpeed.Location = new System.Drawing.Point(1, 1);
+ this.numericSpeed.Margin = new System.Windows.Forms.Padding(1);
+ this.numericSpeed.Maximum = new decimal(new int[] {
+ 4,
+ 0,
+ 0,
+ 0});
+ this.numericSpeed.Name = "numericSpeed";
+ this.numericSpeed.Size = new System.Drawing.Size(48, 26);
+ this.numericSpeed.TabIndex = 5;
+ this.numericSpeed.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ this.numericSpeed.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left;
+ this.numericSpeed.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.numericSpeed.ValueChanged += new System.EventHandler(this.numericSpeed_ValueChanged);
+ //
+ // speedLabel
+ //
+ this.speedLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.speedLabel.AutoSize = true;
+ this.speedLabel.Location = new System.Drawing.Point(53, 6);
+ this.speedLabel.Name = "speedLabel";
+ this.speedLabel.Size = new System.Drawing.Size(171, 18);
+ this.speedLabel.TabIndex = 4;
+ this.speedLabel.Text = "x game speed (PgUp/PgDn)";
+ //
+ // superBelchCan
+ //
+ this.superBelchCan.AutoSize = true;
+ this.superBelchCan.Location = new System.Drawing.Point(3, 34);
+ this.superBelchCan.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.superBelchCan.Name = "superBelchCan";
+ this.superBelchCan.Size = new System.Drawing.Size(150, 22);
+ this.superBelchCan.TabIndex = 1;
+ this.superBelchCan.Text = "Super burp can (F2)";
+ this.superBelchCan.UseVisualStyleBackColor = true;
+ this.superBelchCan.CheckedChanged += new System.EventHandler(this.superBelchCan_CheckedChanged);
+ //
+ // flyMode
+ //
+ this.flyMode.AutoSize = true;
+ this.flyMode.Location = new System.Drawing.Point(3, 64);
+ this.flyMode.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.flyMode.Name = "flyMode";
+ this.flyMode.Size = new System.Drawing.Size(261, 22);
+ this.flyMode.TabIndex = 1;
+ this.flyMode.Text = "Fly mode (F3/Num5 and NumPad keys)";
+ this.flyMode.UseVisualStyleBackColor = true;
+ this.flyMode.CheckedChanged += new System.EventHandler(this.flyMode_CheckedChanged);
+ //
+ // timer
+ //
+ this.timer.Interval = 3000;
+ this.timer.Tick += new System.EventHandler(this.timer_Tick);
+ //
+ // smoothLight
+ //
+ this.smoothLight.AutoSize = true;
+ this.smoothLight.Location = new System.Drawing.Point(3, 154);
+ this.smoothLight.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.smoothLight.Name = "smoothLight";
+ this.smoothLight.Size = new System.Drawing.Size(150, 22);
+ this.smoothLight.TabIndex = 1;
+ this.smoothLight.Text = "Smooth lighting (F6)";
+ this.smoothLight.UseVisualStyleBackColor = true;
+ this.smoothLight.CheckedChanged += new System.EventHandler(this.smoothLight_CheckedChanged);
+ //
+ // invisibility
+ //
+ this.invisibility.AutoSize = true;
+ this.invisibility.Location = new System.Drawing.Point(3, 4);
+ this.invisibility.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.invisibility.Name = "invisibility";
+ this.invisibility.Size = new System.Drawing.Size(121, 22);
+ this.invisibility.TabIndex = 1;
+ this.invisibility.Text = "Invisibility (F1)";
+ this.invisibility.UseVisualStyleBackColor = true;
+ this.invisibility.CheckedChanged += new System.EventHandler(this.invisibility_CheckedChanged);
+ //
+ // tableLayoutPanel1Trainer
+ //
+ this.tableLayoutPanel1Trainer.ColumnCount = 2;
+ this.tableLayoutPanel1Trainer.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 165F));
+ this.tableLayoutPanel1Trainer.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1Trainer.Controls.Add(this.tableLayoutPanel2Trainer, 1, 0);
+ this.tableLayoutPanel1Trainer.Controls.Add(this.pictureTaz, 0, 0);
+ this.tableLayoutPanel1Trainer.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel1Trainer.Location = new System.Drawing.Point(0, 0);
+ this.tableLayoutPanel1Trainer.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel1Trainer.Name = "tableLayoutPanel1Trainer";
+ this.tableLayoutPanel1Trainer.RowCount = 1;
+ this.tableLayoutPanel1Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1Trainer.Size = new System.Drawing.Size(460, 302);
+ this.tableLayoutPanel1Trainer.TabIndex = 7;
+ //
+ // tableLayoutPanel2Trainer
+ //
+ this.tableLayoutPanel2Trainer.ColumnCount = 1;
+ this.tableLayoutPanel2Trainer.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel2Trainer.Controls.Add(this.superBelchCan, 0, 1);
+ this.tableLayoutPanel2Trainer.Controls.Add(this.invisibility, 0, 0);
+ this.tableLayoutPanel2Trainer.Controls.Add(this.flyMode, 0, 2);
+ this.tableLayoutPanel2Trainer.Controls.Add(this.tableLayoutPanel4Trainer, 0, 7);
+ this.tableLayoutPanel2Trainer.Controls.Add(this.tableLayoutPanel3Trainer, 0, 6);
+ this.tableLayoutPanel2Trainer.Controls.Add(this.smoothLight, 0, 5);
+ this.tableLayoutPanel2Trainer.Controls.Add(this.drawDistance, 0, 4);
+ this.tableLayoutPanel2Trainer.Controls.Add(this.freezeLevelTimer, 0, 3);
+ this.tableLayoutPanel2Trainer.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel2Trainer.Location = new System.Drawing.Point(165, 0);
+ this.tableLayoutPanel2Trainer.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel2Trainer.Name = "tableLayoutPanel2Trainer";
+ this.tableLayoutPanel2Trainer.RowCount = 9;
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel2Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.tableLayoutPanel2Trainer.Size = new System.Drawing.Size(295, 302);
+ this.tableLayoutPanel2Trainer.TabIndex = 0;
+ //
+ // tableLayoutPanel4Trainer
+ //
+ this.tableLayoutPanel4Trainer.ColumnCount = 2;
+ this.tableLayoutPanel4Trainer.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F));
+ this.tableLayoutPanel4Trainer.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 324F));
+ this.tableLayoutPanel4Trainer.Controls.Add(this.numericSpeed, 0, 0);
+ this.tableLayoutPanel4Trainer.Controls.Add(this.speedLabel, 1, 0);
+ this.tableLayoutPanel4Trainer.Location = new System.Drawing.Point(0, 210);
+ this.tableLayoutPanel4Trainer.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel4Trainer.Name = "tableLayoutPanel4Trainer";
+ this.tableLayoutPanel4Trainer.RowCount = 1;
+ this.tableLayoutPanel4Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel4Trainer.Size = new System.Drawing.Size(295, 30);
+ this.tableLayoutPanel4Trainer.TabIndex = 7;
+ //
+ // tableLayoutPanel3Trainer
+ //
+ this.tableLayoutPanel3Trainer.ColumnCount = 2;
+ this.tableLayoutPanel3Trainer.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F));
+ this.tableLayoutPanel3Trainer.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 324F));
+ this.tableLayoutPanel3Trainer.Controls.Add(this.jumpLabel, 1, 0);
+ this.tableLayoutPanel3Trainer.Controls.Add(this.numericJump, 0, 0);
+ this.tableLayoutPanel3Trainer.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel3Trainer.Location = new System.Drawing.Point(0, 180);
+ this.tableLayoutPanel3Trainer.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel3Trainer.Name = "tableLayoutPanel3Trainer";
+ this.tableLayoutPanel3Trainer.RowCount = 1;
+ this.tableLayoutPanel3Trainer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel3Trainer.Size = new System.Drawing.Size(295, 30);
+ this.tableLayoutPanel3Trainer.TabIndex = 6;
+ //
+ // freezeLevelTimer
+ //
+ this.freezeLevelTimer.AutoSize = true;
+ this.freezeLevelTimer.Location = new System.Drawing.Point(3, 94);
+ this.freezeLevelTimer.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.freezeLevelTimer.Name = "freezeLevelTimer";
+ this.freezeLevelTimer.Size = new System.Drawing.Size(166, 22);
+ this.freezeLevelTimer.TabIndex = 8;
+ this.freezeLevelTimer.Text = "Freeze level timer (F4)";
+ this.freezeLevelTimer.UseVisualStyleBackColor = true;
+ this.freezeLevelTimer.CheckedChanged += new System.EventHandler(this.freezeLevelTimer_CheckedChanged);
+ //
+ // pictureTaz
+ //
+ this.pictureTaz.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pictureTaz.Image = global::Taz_trainer.Properties.Resources.TAZ;
+ this.pictureTaz.Location = new System.Drawing.Point(0, 0);
+ this.pictureTaz.Margin = new System.Windows.Forms.Padding(0);
+ this.pictureTaz.Name = "pictureTaz";
+ this.pictureTaz.Size = new System.Drawing.Size(165, 302);
+ this.pictureTaz.TabIndex = 1;
+ this.pictureTaz.TabStop = false;
+ //
+ // tabs
+ //
+ this.tabs.Controls.Add(this.trainerTab);
+ this.tabs.Controls.Add(this.patcherTab);
+ this.tabs.Controls.Add(this.infoTab);
+ this.tabs.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabs.Location = new System.Drawing.Point(0, 0);
+ this.tabs.Margin = new System.Windows.Forms.Padding(0);
+ this.tabs.Name = "tabs";
+ this.tabs.Padding = new System.Drawing.Point(0, 0);
+ this.tabs.SelectedIndex = 0;
+ this.tabs.Size = new System.Drawing.Size(468, 333);
+ this.tabs.TabIndex = 8;
+ //
+ // trainerTab
+ //
+ this.trainerTab.Controls.Add(this.tableLayoutPanel1Trainer);
+ this.trainerTab.Location = new System.Drawing.Point(4, 27);
+ this.trainerTab.Margin = new System.Windows.Forms.Padding(0);
+ this.trainerTab.Name = "trainerTab";
+ this.trainerTab.Size = new System.Drawing.Size(460, 302);
+ this.trainerTab.TabIndex = 0;
+ this.trainerTab.Text = "Trainer";
+ this.trainerTab.UseVisualStyleBackColor = true;
+ //
+ // patcherTab
+ //
+ this.patcherTab.Controls.Add(this.tableLayoutPanel1Patcher);
+ this.patcherTab.Location = new System.Drawing.Point(4, 22);
+ this.patcherTab.Margin = new System.Windows.Forms.Padding(0);
+ this.patcherTab.Name = "patcherTab";
+ this.patcherTab.Size = new System.Drawing.Size(460, 307);
+ this.patcherTab.TabIndex = 1;
+ this.patcherTab.Text = "Patcher";
+ this.patcherTab.UseVisualStyleBackColor = true;
+ //
+ // tableLayoutPanel1Patcher
+ //
+ this.tableLayoutPanel1Patcher.ColumnCount = 1;
+ this.tableLayoutPanel1Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1Patcher.Controls.Add(this.tableLayoutPanel4Patcher, 0, 7);
+ this.tableLayoutPanel1Patcher.Controls.Add(this.tableLayoutPanel3Patcher, 0, 5);
+ this.tableLayoutPanel1Patcher.Controls.Add(this.tableLayoutPanel2Patcher, 0, 4);
+ this.tableLayoutPanel1Patcher.Controls.Add(this.trainerTitle, 0, 0);
+ this.tableLayoutPanel1Patcher.Controls.Add(this.disableVideos, 0, 3);
+ this.tableLayoutPanel1Patcher.Controls.Add(this.disableDrawDistance, 0, 2);
+ this.tableLayoutPanel1Patcher.Controls.Add(this.noCD, 0, 1);
+ this.tableLayoutPanel1Patcher.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel1Patcher.Location = new System.Drawing.Point(0, 0);
+ this.tableLayoutPanel1Patcher.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel1Patcher.Name = "tableLayoutPanel1Patcher";
+ this.tableLayoutPanel1Patcher.RowCount = 8;
+ this.tableLayoutPanel1Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel1Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel1Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel1Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel1Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel1Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+ this.tableLayoutPanel1Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
+ this.tableLayoutPanel1Patcher.Size = new System.Drawing.Size(460, 307);
+ this.tableLayoutPanel1Patcher.TabIndex = 4;
+ //
+ // tableLayoutPanel4Patcher
+ //
+ this.tableLayoutPanel4Patcher.ColumnCount = 3;
+ this.tableLayoutPanel4Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.tableLayoutPanel4Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.tableLayoutPanel4Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.tableLayoutPanel4Patcher.Controls.Add(this.patch, 0, 0);
+ this.tableLayoutPanel4Patcher.Controls.Add(this.restore, 2, 0);
+ this.tableLayoutPanel4Patcher.Controls.Add(this.restoreBackup, 1, 0);
+ this.tableLayoutPanel4Patcher.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel4Patcher.Location = new System.Drawing.Point(0, 267);
+ this.tableLayoutPanel4Patcher.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel4Patcher.Name = "tableLayoutPanel4Patcher";
+ this.tableLayoutPanel4Patcher.RowCount = 1;
+ this.tableLayoutPanel4Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel4Patcher.Size = new System.Drawing.Size(460, 40);
+ this.tableLayoutPanel4Patcher.TabIndex = 6;
+ //
+ // patch
+ //
+ this.patch.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.patch.Location = new System.Drawing.Point(3, 3);
+ this.patch.Name = "patch";
+ this.patch.Size = new System.Drawing.Size(147, 34);
+ this.patch.TabIndex = 3;
+ this.patch.Text = "Patch!";
+ this.patch.UseVisualStyleBackColor = true;
+ this.patch.Click += new System.EventHandler(this.patch_Click);
+ //
+ // restore
+ //
+ this.restore.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.restore.Location = new System.Drawing.Point(309, 3);
+ this.restore.Name = "restore";
+ this.restore.Size = new System.Drawing.Size(148, 34);
+ this.restore.TabIndex = 3;
+ this.restore.Text = "Restore to original";
+ this.restore.UseVisualStyleBackColor = true;
+ this.restore.Click += new System.EventHandler(this.restore_Click);
+ //
+ // restoreBackup
+ //
+ this.restoreBackup.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.restoreBackup.Location = new System.Drawing.Point(156, 3);
+ this.restoreBackup.Name = "restoreBackup";
+ this.restoreBackup.Size = new System.Drawing.Size(147, 34);
+ this.restoreBackup.TabIndex = 3;
+ this.restoreBackup.Text = "Restore from backup";
+ this.restoreBackup.UseVisualStyleBackColor = true;
+ this.restoreBackup.Click += new System.EventHandler(this.restoreBackup_Click);
+ //
+ // tableLayoutPanel3Patcher
+ //
+ this.tableLayoutPanel3Patcher.ColumnCount = 5;
+ this.tableLayoutPanel3Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 155F));
+ this.tableLayoutPanel3Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 35F));
+ this.tableLayoutPanel3Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F));
+ this.tableLayoutPanel3Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 35F));
+ this.tableLayoutPanel3Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel3Patcher.Controls.Add(this.aspect2, 3, 0);
+ this.tableLayoutPanel3Patcher.Controls.Add(this.aspect1, 1, 0);
+ this.tableLayoutPanel3Patcher.Controls.Add(this.aspectRatio, 0, 0);
+ this.tableLayoutPanel3Patcher.Controls.Add(this.pointsLabel, 2, 0);
+ this.tableLayoutPanel3Patcher.Location = new System.Drawing.Point(0, 150);
+ this.tableLayoutPanel3Patcher.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel3Patcher.Name = "tableLayoutPanel3Patcher";
+ this.tableLayoutPanel3Patcher.RowCount = 1;
+ this.tableLayoutPanel3Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel3Patcher.Size = new System.Drawing.Size(413, 30);
+ this.tableLayoutPanel3Patcher.TabIndex = 5;
+ //
+ // aspect2
+ //
+ this.aspect2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.aspect2.Location = new System.Drawing.Point(208, 3);
+ this.aspect2.Name = "aspect2";
+ this.aspect2.Size = new System.Drawing.Size(29, 26);
+ this.aspect2.TabIndex = 6;
+ //
+ // aspect1
+ //
+ this.aspect1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.aspect1.Location = new System.Drawing.Point(158, 3);
+ this.aspect1.Name = "aspect1";
+ this.aspect1.Size = new System.Drawing.Size(29, 26);
+ this.aspect1.TabIndex = 4;
+ //
+ // aspectRatio
+ //
+ this.aspectRatio.AutoSize = true;
+ this.aspectRatio.Checked = true;
+ this.aspectRatio.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.aspectRatio.Location = new System.Drawing.Point(3, 4);
+ this.aspectRatio.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.aspectRatio.Name = "aspectRatio";
+ this.aspectRatio.Size = new System.Drawing.Size(146, 22);
+ this.aspectRatio.TabIndex = 2;
+ this.aspectRatio.Text = "Change aspect ratio";
+ this.aspectRatio.UseVisualStyleBackColor = true;
+ this.aspectRatio.CheckedChanged += new System.EventHandler(this.aspectRatio_CheckedChanged);
+ //
+ // pointsLabel
+ //
+ this.pointsLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.pointsLabel.AutoSize = true;
+ this.pointsLabel.Location = new System.Drawing.Point(193, 6);
+ this.pointsLabel.Name = "pointsLabel";
+ this.pointsLabel.Size = new System.Drawing.Size(9, 18);
+ this.pointsLabel.TabIndex = 5;
+ this.pointsLabel.Text = ":";
+ //
+ // tableLayoutPanel2Patcher
+ //
+ this.tableLayoutPanel2Patcher.ColumnCount = 6;
+ this.tableLayoutPanel2Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 155F));
+ this.tableLayoutPanel2Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F));
+ this.tableLayoutPanel2Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.tableLayoutPanel2Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F));
+ this.tableLayoutPanel2Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.tableLayoutPanel2Patcher.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel2Patcher.Controls.Add(this.changeResolution, 0, 0);
+ this.tableLayoutPanel2Patcher.Controls.Add(this.height, 3, 0);
+ this.tableLayoutPanel2Patcher.Controls.Add(this.xLabel, 2, 0);
+ this.tableLayoutPanel2Patcher.Controls.Add(this.windowed, 5, 0);
+ this.tableLayoutPanel2Patcher.Controls.Add(this.width, 1, 0);
+ this.tableLayoutPanel2Patcher.Location = new System.Drawing.Point(0, 120);
+ this.tableLayoutPanel2Patcher.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel2Patcher.Name = "tableLayoutPanel2Patcher";
+ this.tableLayoutPanel2Patcher.RowCount = 1;
+ this.tableLayoutPanel2Patcher.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel2Patcher.Size = new System.Drawing.Size(413, 30);
+ this.tableLayoutPanel2Patcher.TabIndex = 4;
+ //
+ // changeResolution
+ //
+ this.changeResolution.AutoSize = true;
+ this.changeResolution.Checked = true;
+ this.changeResolution.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.changeResolution.Location = new System.Drawing.Point(3, 4);
+ this.changeResolution.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.changeResolution.Name = "changeResolution";
+ this.changeResolution.Size = new System.Drawing.Size(134, 22);
+ this.changeResolution.TabIndex = 2;
+ this.changeResolution.Text = "Change resolution";
+ this.changeResolution.UseVisualStyleBackColor = true;
+ this.changeResolution.CheckedChanged += new System.EventHandler(this.changeResolution_CheckedChanged);
+ //
+ // height
+ //
+ this.height.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.height.Location = new System.Drawing.Point(238, 3);
+ this.height.Name = "height";
+ this.height.Size = new System.Drawing.Size(54, 26);
+ this.height.TabIndex = 3;
+ //
+ // xLabel
+ //
+ this.xLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.xLabel.AutoSize = true;
+ this.xLabel.Location = new System.Drawing.Point(218, 6);
+ this.xLabel.Name = "xLabel";
+ this.xLabel.Size = new System.Drawing.Size(14, 18);
+ this.xLabel.TabIndex = 5;
+ this.xLabel.Text = "x";
+ //
+ // windowed
+ //
+ this.windowed.AutoSize = true;
+ this.windowed.Location = new System.Drawing.Point(318, 4);
+ this.windowed.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.windowed.Name = "windowed";
+ this.windowed.Size = new System.Drawing.Size(91, 22);
+ this.windowed.TabIndex = 2;
+ this.windowed.Text = "Windowed";
+ this.windowed.UseVisualStyleBackColor = true;
+ this.windowed.CheckedChanged += new System.EventHandler(this.windowed_CheckedChanged);
+ //
+ // width
+ //
+ this.width.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.width.Location = new System.Drawing.Point(158, 3);
+ this.width.Name = "width";
+ this.width.Size = new System.Drawing.Size(54, 26);
+ this.width.TabIndex = 4;
+ //
+ // trainerTitle
+ //
+ this.trainerTitle.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.trainerTitle.AutoSize = true;
+ this.trainerTitle.Location = new System.Drawing.Point(3, 6);
+ this.trainerTitle.Name = "trainerTitle";
+ this.trainerTitle.Size = new System.Drawing.Size(162, 18);
+ this.trainerTitle.TabIndex = 5;
+ this.trainerTitle.Text = "Choose options for patch:";
+ //
+ // disableVideos
+ //
+ this.disableVideos.AutoSize = true;
+ this.disableVideos.Checked = true;
+ this.disableVideos.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.disableVideos.Location = new System.Drawing.Point(3, 94);
+ this.disableVideos.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.disableVideos.Name = "disableVideos";
+ this.disableVideos.Size = new System.Drawing.Size(143, 22);
+ this.disableVideos.TabIndex = 2;
+ this.disableVideos.Text = "Disable logo videos";
+ this.disableVideos.UseVisualStyleBackColor = true;
+ //
+ // disableDrawDistance
+ //
+ this.disableDrawDistance.AutoSize = true;
+ this.disableDrawDistance.Checked = true;
+ this.disableDrawDistance.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.disableDrawDistance.Location = new System.Drawing.Point(3, 64);
+ this.disableDrawDistance.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.disableDrawDistance.Name = "disableDrawDistance";
+ this.disableDrawDistance.Size = new System.Drawing.Size(162, 22);
+ this.disableDrawDistance.TabIndex = 2;
+ this.disableDrawDistance.Text = "Disable draw distance";
+ this.disableDrawDistance.UseVisualStyleBackColor = true;
+ //
+ // noCD
+ //
+ this.noCD.AutoSize = true;
+ this.noCD.Checked = true;
+ this.noCD.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.noCD.Location = new System.Drawing.Point(3, 34);
+ this.noCD.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.noCD.Name = "noCD";
+ this.noCD.Size = new System.Drawing.Size(98, 22);
+ this.noCD.TabIndex = 2;
+ this.noCD.Text = "NoCD patch";
+ this.noCD.UseVisualStyleBackColor = true;
+ //
+ // infoTab
+ //
+ this.infoTab.Controls.Add(this.tableLayoutPanel1Info);
+ this.infoTab.Location = new System.Drawing.Point(4, 22);
+ this.infoTab.Name = "infoTab";
+ this.infoTab.Padding = new System.Windows.Forms.Padding(3);
+ this.infoTab.Size = new System.Drawing.Size(460, 307);
+ this.infoTab.TabIndex = 2;
+ this.infoTab.Text = "Info";
+ this.infoTab.UseVisualStyleBackColor = true;
+ //
+ // tableLayoutPanel1Info
+ //
+ this.tableLayoutPanel1Info.ColumnCount = 1;
+ this.tableLayoutPanel1Info.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1Info.Controls.Add(this.infoText, 0, 0);
+ this.tableLayoutPanel1Info.Controls.Add(this.tableLayoutPanel2Info, 0, 1);
+ this.tableLayoutPanel1Info.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel1Info.Location = new System.Drawing.Point(3, 3);
+ this.tableLayoutPanel1Info.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel1Info.Name = "tableLayoutPanel1Info";
+ this.tableLayoutPanel1Info.RowCount = 2;
+ this.tableLayoutPanel1Info.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1Info.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
+ this.tableLayoutPanel1Info.Size = new System.Drawing.Size(454, 301);
+ this.tableLayoutPanel1Info.TabIndex = 0;
+ //
+ // infoText
+ //
+ this.infoText.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.infoText.AutoSize = true;
+ this.infoText.Location = new System.Drawing.Point(32, 67);
+ this.infoText.Margin = new System.Windows.Forms.Padding(0);
+ this.infoText.Name = "infoText";
+ this.infoText.Size = new System.Drawing.Size(390, 126);
+ this.infoText.TabIndex = 8;
+ this.infoText.Text = resources.GetString("infoText.Text");
+ this.infoText.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // tableLayoutPanel2Info
+ //
+ this.tableLayoutPanel2Info.ColumnCount = 3;
+ this.tableLayoutPanel2Info.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.tableLayoutPanel2Info.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.tableLayoutPanel2Info.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.tableLayoutPanel2Info.Controls.Add(this.gitHub, 1, 0);
+ this.tableLayoutPanel2Info.Location = new System.Drawing.Point(0, 261);
+ this.tableLayoutPanel2Info.Margin = new System.Windows.Forms.Padding(0);
+ this.tableLayoutPanel2Info.Name = "tableLayoutPanel2Info";
+ this.tableLayoutPanel2Info.RowCount = 1;
+ this.tableLayoutPanel2Info.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel2Info.Size = new System.Drawing.Size(454, 40);
+ this.tableLayoutPanel2Info.TabIndex = 7;
+ //
+ // gitHub
+ //
+ this.gitHub.Location = new System.Drawing.Point(154, 3);
+ this.gitHub.Name = "gitHub";
+ this.gitHub.Size = new System.Drawing.Size(145, 34);
+ this.gitHub.TabIndex = 3;
+ this.gitHub.Text = "GitHub page";
+ this.gitHub.UseVisualStyleBackColor = true;
+ //
+ // Form1
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ this.ClientSize = new System.Drawing.Size(468, 355);
+ this.Controls.Add(this.tabs);
+ this.Controls.Add(this.statusStrip);
+ this.Cursor = System.Windows.Forms.Cursors.Default;
+ this.Font = new System.Drawing.Font("Comic Sans MS", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.KeyPreview = true;
+ this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.MaximizeBox = false;
+ this.Name = "Form1";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Taz Wanted trainer and patcher v1.0";
+ this.statusStrip.ResumeLayout(false);
+ this.statusStrip.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numericJump)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numericSpeed)).EndInit();
+ this.tableLayoutPanel1Trainer.ResumeLayout(false);
+ this.tableLayoutPanel2Trainer.ResumeLayout(false);
+ this.tableLayoutPanel2Trainer.PerformLayout();
+ this.tableLayoutPanel4Trainer.ResumeLayout(false);
+ this.tableLayoutPanel4Trainer.PerformLayout();
+ this.tableLayoutPanel3Trainer.ResumeLayout(false);
+ this.tableLayoutPanel3Trainer.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureTaz)).EndInit();
+ this.tabs.ResumeLayout(false);
+ this.trainerTab.ResumeLayout(false);
+ this.patcherTab.ResumeLayout(false);
+ this.tableLayoutPanel1Patcher.ResumeLayout(false);
+ this.tableLayoutPanel1Patcher.PerformLayout();
+ this.tableLayoutPanel4Patcher.ResumeLayout(false);
+ this.tableLayoutPanel3Patcher.ResumeLayout(false);
+ this.tableLayoutPanel3Patcher.PerformLayout();
+ this.tableLayoutPanel2Patcher.ResumeLayout(false);
+ this.tableLayoutPanel2Patcher.PerformLayout();
+ this.infoTab.ResumeLayout(false);
+ this.tableLayoutPanel1Info.ResumeLayout(false);
+ this.tableLayoutPanel1Info.PerformLayout();
+ this.tableLayoutPanel2Info.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private System.Windows.Forms.CheckBox drawDistance;
+ private System.Windows.Forms.NumericUpDown numericJump;
+ private System.Windows.Forms.Label jumpLabel;
+ public System.Windows.Forms.ToolStripStatusLabel statusField;
+ private System.Windows.Forms.Label speedLabel;
+ private System.Windows.Forms.NumericUpDown numericSpeed;
+ private System.Windows.Forms.StatusStrip statusStrip;
+ private System.Windows.Forms.CheckBox superBelchCan;
+ private System.Windows.Forms.CheckBox flyMode;
+ private System.Windows.Forms.Timer timer;
+ private System.Windows.Forms.CheckBox smoothLight;
+ private System.Windows.Forms.CheckBox invisibility;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1Trainer;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2Trainer;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4Trainer;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3Trainer;
+ private System.Windows.Forms.PictureBox pictureTaz;
+ private System.Windows.Forms.TabControl tabs;
+ private System.Windows.Forms.TabPage trainerTab;
+ private System.Windows.Forms.TabPage patcherTab;
+ private System.Windows.Forms.CheckBox noCD;
+ private System.Windows.Forms.Button restore;
+ private System.Windows.Forms.Button patch;
+ private System.Windows.Forms.CheckBox disableDrawDistance;
+ private System.Windows.Forms.CheckBox disableVideos;
+ private System.Windows.Forms.CheckBox aspectRatio;
+ private System.Windows.Forms.CheckBox changeResolution;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1Patcher;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2Patcher;
+ private System.Windows.Forms.CheckBox windowed;
+ private System.Windows.Forms.TextBox height;
+ private System.Windows.Forms.TextBox width;
+ private System.Windows.Forms.Label xLabel;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3Patcher;
+ private System.Windows.Forms.TextBox aspect2;
+ private System.Windows.Forms.TextBox aspect1;
+ private System.Windows.Forms.Label pointsLabel;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4Patcher;
+ private System.Windows.Forms.Label trainerTitle;
+ private System.Windows.Forms.TabPage infoTab;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1Info;
+ private System.Windows.Forms.Label infoText;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2Info;
+ private System.Windows.Forms.Button gitHub;
+ private System.Windows.Forms.Button restoreBackup;
+ private System.Windows.Forms.CheckBox freezeLevelTimer;
+ }
+}
+
diff --git a/Taz trainer/Form1.cs b/Taz trainer/Form1.cs
new file mode 100644
index 0000000..d3dbb42
--- /dev/null
+++ b/Taz trainer/Form1.cs
@@ -0,0 +1,1176 @@
+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;
+using System.Diagnostics;
+using System.Runtime.InteropServices;
+using Utilities;
+using Microsoft.Win32;
+using System.IO;
+
+namespace Taz_trainer
+{
+ public partial class Form1 : Form
+ {
+ // dll import (pinvoke.net)
+ [DllImport("kernel32.dll", SetLastError = true)]
+ public static extern IntPtr OpenProcess(int processAccess, bool bInheritHandle, int processId);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ static extern bool CloseHandle(IntPtr hObject);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ static extern bool WriteProcessMemory(IntPtr hProcess,IntPtr lpBaseAddress,byte[] lpBuffer,int nSize,out IntPtr lpNumberOfBytesWritten);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [Out] byte[] lpBuffer, int dwSize, out IntPtr lpNumberOfBytesRead);
+
+
+ public Form1()
+ {
+ InitializeComponent();
+
+ gkh.HookedKeys.Add(Keys.F1);
+ gkh.HookedKeys.Add(Keys.F2);
+ gkh.HookedKeys.Add(Keys.F3);
+ gkh.HookedKeys.Add(Keys.F4);
+ gkh.HookedKeys.Add(Keys.F5);
+ gkh.HookedKeys.Add(Keys.F6);
+ gkh.HookedKeys.Add(Keys.PageDown);
+ gkh.HookedKeys.Add(Keys.PageUp);
+ gkh.HookedKeys.Add(Keys.Subtract);
+ gkh.HookedKeys.Add(Keys.Add);
+
+ gkh.HookedKeys.Add(Keys.NumPad9);
+ gkh.HookedKeys.Add(Keys.NumPad8);
+ gkh.HookedKeys.Add(Keys.NumPad7);
+ gkh.HookedKeys.Add(Keys.NumPad6);
+ gkh.HookedKeys.Add(Keys.NumPad5);
+ gkh.HookedKeys.Add(Keys.NumPad4);
+ gkh.HookedKeys.Add(Keys.NumPad2);
+
+ gkh.KeyDown += new KeyEventHandler(gkh_KeyDown);
+ gkh.KeyUp += new KeyEventHandler(gkh_KeyUp);
+
+ autoFillVideo(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
+
+ }
+
+
+ //#######################################################################################################################
+ //Key hooker functions
+
+ globalKeyboardHook gkh = new globalKeyboardHook();
+
+
+ void gkh_KeyUp(object sender, KeyEventArgs e)
+ {
+
+ e.Handled = true;
+ }
+
+
+ void gkh_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.F1)
+ {
+ this.invisibility.Checked = !this.invisibility.Checked;
+ }
+ if (e.KeyCode == Keys.F2)
+ {
+ this.superBelchCan.Checked = !this.superBelchCan.Checked;
+ }
+ if (e.KeyCode == Keys.F3)
+ {
+ this.flyMode.Checked = !this.flyMode.Checked;
+ }
+ if (e.KeyCode == Keys.F4)
+ {
+ this.freezeLevelTimer.Checked = !this.freezeLevelTimer.Checked;
+ }
+ if (e.KeyCode == Keys.F5)
+ {
+ this.drawDistance.Checked = !this.drawDistance.Checked;
+ }
+ if (e.KeyCode == Keys.F6)
+ {
+ this.smoothLight.Checked = !this.smoothLight.Checked;
+ }
+ if (e.KeyCode == Keys.PageUp)
+ {
+ this.numericSpeed.UpButton();
+ }
+ if (e.KeyCode == Keys.PageDown)
+ {
+ this.numericSpeed.DownButton();
+ }
+ if (e.KeyCode == Keys.Add)
+ {
+ this.numericJump.UpButton();
+ }
+ if (e.KeyCode == Keys.Subtract)
+ {
+ this.numericJump.DownButton();
+ }
+
+
+ if (e.KeyCode == Keys.NumPad5)
+ {
+ //if (e.IsRepeat) return;
+ this.flyMode.Checked = !this.flyMode.Checked;
+ }
+ if (e.KeyCode == Keys.NumPad9)
+ {
+ if (this.flyMode.Checked == true)
+ {
+ movement(0); //Z+
+ }
+ }
+ if (e.KeyCode == Keys.NumPad8)
+ {
+ if (this.flyMode.Checked == true)
+ {
+ movement(4); //Y+
+ }
+ }
+ if (e.KeyCode == Keys.NumPad7)
+ {
+ if (this.flyMode.Checked == true)
+ {
+ movement(1); //Z-
+ }
+ }
+ if (e.KeyCode == Keys.NumPad6)
+ {
+ if (this.flyMode.Checked == true)
+ {
+ movement(2); //X+
+ }
+ }
+ if (e.KeyCode == Keys.NumPad4)
+ {
+ if (this.flyMode.Checked == true)
+ {
+ movement(3); //X-
+ }
+ }
+ if (e.KeyCode == Keys.NumPad2)
+ {
+ if (this.flyMode.Checked == true)
+ {
+ movement(5); //Y-
+ }
+ }
+
+ e.Handled = true;
+ }
+
+ //#######################################################################################################################
+ //Process functions
+
+ public string procName = "Taz";
+
+
+ //Searching process
+ private int findProcessId(string procName)
+ {
+ var procList = Process.GetProcesses();
+
+ foreach (var proc in procList)
+ {
+ if (proc.ProcessName == procName && proc.ProcessName.Length == procName.Length)
+ {
+ return proc.Id;
+ }
+ }
+ return 0;
+ }
+
+
+ //Read memory from process
+ private byte[] checkAndRead(IntPtr adress, byte[] bytes, int size, IntPtr mem)
+ {
+ int procId = findProcessId(procName);
+ if (procId == 0)
+ {
+ this.statusField.Text = "Change option failed. " + procName + " process not found!";
+ this.statusField.ForeColor = System.Drawing.Color.DarkRed;
+ return bytes;
+ }
+ this.statusField.Text = procName + "process found";
+ var handle = OpenProcess(0x001F0FFF, false, procId);
+ ReadProcessMemory(handle, (IntPtr)adress, bytes, size, out mem);
+ CloseHandle(handle);
+ return bytes;
+ }
+
+
+ //Write process in memory
+ private void checkAndWrite(IntPtr adress, byte[] bytes, int size, IntPtr mem)
+ {
+ int procId = findProcessId(procName);
+ if (procId == 0)
+ {
+ this.statusField.Text = "Change option failed. " + procName + " process not found!";
+ this.statusField.ForeColor = System.Drawing.Color.DarkRed;
+ return;
+ }
+ var handle = OpenProcess(0x001F0FFF, false, procId);
+ this.statusField.Text = procName + " process found. Handle = " + handle;
+ this.statusField.ForeColor = System.Drawing.Color.DarkGreen;
+ if (WriteProcessMemory(handle, (IntPtr)adress, bytes, size, out mem) == false) {
+ this.statusField.Text = "WriteProcessMemory failed! Handle = " + handle;
+ this.statusField.ForeColor = System.Drawing.Color.DarkRed;
+ };
+ CloseHandle(handle);
+ }
+
+
+ //#######################################################################################################################
+ //Other
+
+ private void autoFillVideo(int width, int height)
+ {
+ //fill resolution
+ this.width.Text = width.ToString();
+ this.height.Text = height.ToString();
+
+ //calculate aspect ratio
+ int a = width;
+ int b = height;
+ while (b != 0)
+ {
+ int temp = b;
+ b = a % b;
+ a = temp;
+ }
+ int aspect1 = width / a;
+ int aspect2 = height / a;
+ //if long
+ while (aspect1 > 255 || aspect2 > 255)
+ {
+ aspect1 /= 2;
+ aspect2 /= 2;
+ }
+ //fill aspect
+ this.aspect1.Text = aspect1.ToString();
+ this.aspect2.Text = aspect2.ToString();
+ }
+
+
+ //#######################################################################################################################
+ //Cheats
+ private void memoryEdit(int adress, byte[] bytes)
+ {
+ int size = bytes.Length;
+ var mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ }
+
+ private void drawDistance_CheckedChanged(object sender, EventArgs e)
+ {
+ if (this.drawDistance.Checked == true)
+ {
+ byte[] bytes = { 0xFF };
+ checkAndWrite((IntPtr)0x00474FC4, bytes, bytes.Length, new IntPtr());
+ byte[] bytes2 = { 0x74 };
+ checkAndWrite((IntPtr)0x00474FD0, bytes2, bytes2.Length, new IntPtr());
+
+ message("Infinity draw distance: on");
+ }
+ else
+ {
+ byte[] bytes = { 0x00 };
+ checkAndWrite((IntPtr)0x00474FC4, bytes, bytes.Length, new IntPtr());
+ byte[] bytes2 = { 0x75 };
+ checkAndWrite((IntPtr)0x00474FD0, bytes2, bytes2.Length, new IntPtr());
+
+ message("Infinity draw distance: off");
+ }
+ }
+
+ private void numericJump_ValueChanged(object sender, EventArgs e)
+ {
+ float impulse = 1750;
+ impulse *= (float)numericJump.Value;
+ checkAndWrite((IntPtr)0x0048129F, BitConverter.GetBytes(impulse), BitConverter.GetBytes(impulse).Length, new IntPtr());
+
+ message("Jump impulse: x" + numericJump.Value.ToString());
+ }
+
+ private void numericSpeed_ValueChanged(object sender, EventArgs e)
+ {
+ float val = 1;
+ //correction to 0.1
+ if ((float)numericSpeed.Value == 0)
+ {
+ val = (float)0.1;
+ }
+ else
+ {
+ val = (float)numericSpeed.Value;
+ }
+
+ checkAndWrite((IntPtr)0x006F4A3C, BitConverter.GetBytes(val), BitConverter.GetBytes((float)numericSpeed.Value).Length, new IntPtr());
+ message("Game speed: x" + val.ToString());
+ }
+
+ private void superBelchCan_CheckedChanged(object sender, EventArgs e)
+ {
+ if (this.superBelchCan.Checked == true)
+ {
+ byte[] bytes = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
+ checkAndWrite((IntPtr)0x00482FE2, bytes, bytes.Length, new IntPtr());
+
+ message("Always super burp: on");
+ }
+ else
+ {
+ byte[] bytes = { 0x0F, 0x85, 0x95, 0x00, 0x00, 0x00 };
+ checkAndWrite((IntPtr)0x00482FE2, bytes, bytes.Length, new IntPtr());
+
+ message("Always super burp: off");
+ }
+ }
+
+
+ private void invisibility_CheckedChanged(object sender, EventArgs e)
+ {
+ var adress = 0x006C8BC0; //Base adress
+ byte[] bytes = { 0x00, 0x00, 0x00, 0x00 };
+ bytes = checkAndRead((IntPtr)adress, bytes, bytes.Length, new IntPtr());
+ adress = BitConverter.ToInt32(bytes, 0);
+ adress += 0x1CC;
+ bytes = checkAndRead((IntPtr)adress, bytes, bytes.Length, new IntPtr());
+ adress = BitConverter.ToInt32(bytes, 0);
+ adress += 0x170;
+
+ if (this.invisibility.Checked == true)
+ {
+ byte[] bytes2 = { 0x85 };
+ checkAndWrite((IntPtr)0x0051F2E7, bytes2, bytes2.Length, new IntPtr());
+ bytes2[0] = 0x01;
+ checkAndWrite((IntPtr)0x0051F47E, bytes2, bytes2.Length, new IntPtr());
+ //bytes2[0] = 0x01;
+ checkAndWrite((IntPtr)adress, bytes2, bytes2.Length, new IntPtr());
+
+ message("Invisibility: on");
+ }
+ else
+ {
+ byte[] bytes2 = { 0x84 };
+ checkAndWrite((IntPtr)0x0051F2E7, bytes2, bytes2.Length, new IntPtr());
+ bytes2[0] = 0x00;
+ checkAndWrite((IntPtr)0x0051F47E, bytes2, bytes2.Length, new IntPtr());
+ //bytes2[0] = 0x00;
+ checkAndWrite((IntPtr)adress, bytes2, bytes2.Length, new IntPtr());
+
+ message("Invisibility: off");
+ }
+ }
+
+
+ private void flyMode_CheckedChanged(object sender, EventArgs e)
+ {
+
+ byte[] bytes = { 0x81, 0xBF, 0xA0, 0x01, 0x00, 0x00, 0x74, 0x61, 0x7A, 0x64, 0x0F, 0x84, 0xC5, 0xBB, 0xE6, 0xFF, 0xD9, 0x44, 0x24, 0x54, 0xD8, 0x63, 0x04, 0xD9, 0x9F, 0xC4, 0x00, 0x00, 0x00, 0xE9, 0xB3, 0xBB, 0xE6, 0xFF };
+ checkAndWrite((IntPtr)0x005F6670, bytes, bytes.Length, new IntPtr());
+
+ /*
+ //Editing taz state in structure
+ adress = 0x006C8BC0; //Base adress
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ adress = BitConverter.ToInt32(bytes, 0);
+ adress += 0x1C8; //Second adress
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ adress = BitConverter.ToInt32(bytes, 0);
+ adress += 0xB0; //Target adress
+
+ bytes[0] = 0x00;
+ size = 1;
+
+ if (this.flyMode.Checked == true)
+ {
+ bytes[0] = 0x00; // 3C;
+ }
+ */
+
+ //Change instruction for gravity
+
+
+ if (this.flyMode.Checked == true)
+ {
+ byte[] bytes2 = { 0xE9, 0x33, 0x44, 0x19, 0x00, 0x90, 0x90 };
+ checkAndWrite((IntPtr)0x00462238, bytes2, bytes2.Length, new IntPtr());
+
+ message("Fly mode: on (use numpad)");
+ }
+ else
+ {
+ //Z force = 0
+ var adress = 0x006C8BC0; //Base adress
+ byte[] bytes3 = { 0x00, 0x00, 0x00, 0x00 };
+ bytes = checkAndRead((IntPtr)adress, bytes3, bytes3.Length, new IntPtr());
+ adress = BitConverter.ToInt32(bytes3, 0);
+ adress += 0x1C0;
+ bytes = checkAndRead((IntPtr)adress, bytes3, bytes3.Length, new IntPtr());
+ adress = BitConverter.ToInt32(bytes3, 0);
+ adress += 0x98;
+ checkAndWrite((IntPtr)adress, bytes3, bytes3.Length, new IntPtr());
+
+ byte[] bytes2 = { 0xD9, 0x44, 0x24, 0x54, 0xD8, 0x63, 0x04 };
+ checkAndWrite((IntPtr)0x00462238, bytes2, bytes2.Length, new IntPtr());
+
+ message("Fly mode: off");
+ }
+ }
+
+ private void movement (byte dir)
+ {
+ //Read taz structure coordinates offset
+ float value;
+ var adress = 0x006C8BC0; //Base adress
+ byte[] bytes = { 0x00, 0x00, 0x00, 0x00 };
+ int size = bytes.Length;
+ var mem = new IntPtr();
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ adress = BitConverter.ToInt32(bytes, 0);
+ switch (dir)
+ {
+
+ case (0): //Z+
+ //Coordinate
+ adress += 0xC4;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ /*
+ //Camera
+ adress = 0x00708994;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ //Camera point at
+ adress = 0x007089A4;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ */
+ break;
+
+ case (1): //Z-
+ //Coordinate
+ adress += 0xC4;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ /*
+ //Camera
+ adress = 0x00708994;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ //Camera point at
+ adress = 0x007089A4;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ */
+ break;
+
+ case (2): //X+
+ //Coordinate
+ adress += 0xC0;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ /*
+ //Camera
+ adress = 0x00708990;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ //Camera point at
+ adress = 0x007089A0;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ */
+ break;
+
+ case (3): //X-
+ //Coordinate
+ adress += 0xC0;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ /*
+ //Camera
+ adress = 0x00708990;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ //Camera point at
+ adress = 0x007089A0;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ */
+ break;
+
+ case (4): //Y+
+ //Coordinate
+ adress += 0xC8;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ /*
+ //Camera
+ adress = 0x00708998;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ //Camera point at
+ adress = 0x007089A8;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value += 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ */
+ break;
+
+ case (5): //Y-
+ //Coordinate
+ adress += 0xC8;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ /*
+ //Camera
+ adress = 0x00708998;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ //Camera point at
+ adress = 0x007089A8;
+ bytes = checkAndRead((IntPtr)adress, bytes, size, mem);
+ value = BitConverter.ToSingle(bytes, 0);
+ value -= 1000;
+ bytes = BitConverter.GetBytes(value);
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ */
+ break;
+ }
+ }
+
+
+ private void freezeLevelTimer_CheckedChanged(object sender, EventArgs e)
+ {
+
+ if (this.freezeLevelTimer.Checked == true)
+ {
+ //bonuscrates
+ byte[] bytes = { 0x31, 0xDB, 0xEB, 0x10 };
+ checkAndWrite((IntPtr)0x004ECF9F, bytes, bytes.Length, new IntPtr());
+
+ //bonusrace
+ byte[] bytes2 = { 0xA1, 0x2C, 0xC6, 0x71, 0x00, 0x83, 0xF8, 0x01, 0xEB, 0x10 };
+ checkAndWrite((IntPtr)0x004F7305, bytes2, bytes2.Length, new IntPtr());
+
+ //gladiatoons
+ byte[] bytes3 = { 0x8A, 0x15, 0x54, 0x4A, 0x6F, 0x00, 0x84, 0xD2, 0xC7, 0x44, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x10 };
+ checkAndWrite((IntPtr)0x00518D88, bytes3, bytes3.Length, new IntPtr());
+
+ //leveltime
+ byte[] bytes4 = { 0x0F, 0xBE, 0x0D, 0x30, 0x4C, 0x70, 0x00, 0x51, 0xEB, 0x10 };
+ checkAndWrite((IntPtr)0x004A7543, bytes4, bytes4.Length, new IntPtr());
+
+ message("Freeze level timer: on");
+ }
+ else
+ {
+ //bonuscrates
+ byte[] bytes = { 0xD9, 0x05, 0x88, 0x4B };
+ checkAndWrite((IntPtr)0x004ECF9F, bytes, bytes.Length, new IntPtr());
+
+ //bonusrace
+ byte[] bytes2 = { 0xD9, 0x05, 0x88, 0x4B, 0x6F, 0x00, 0xA1, 0x2C, 0xC6, 0x71 };
+ checkAndWrite((IntPtr)0x004F7305, bytes2, bytes2.Length, new IntPtr());
+
+ //gladiatoons
+ byte[] bytes3 = { 0xD9, 0x05, 0x88, 0x4B, 0x6F, 0x00, 0x8A, 0x15, 0x54, 0x4A, 0x6F, 0x00, 0x84, 0xD2, 0xD8, 0x05, 0x84, 0x65 };
+ checkAndWrite((IntPtr)0x00518D88, bytes3, bytes3.Length, new IntPtr());
+
+ //leveltime
+ byte[] bytes4 = { 0xD9, 0x05, 0xB8, 0x8B, 0x6C, 0x00, 0x0F, 0xBE, 0x0D, 0x30 };
+ checkAndWrite((IntPtr)0x004A7543, bytes4, bytes4.Length, new IntPtr());
+
+ message("Freeze level timer: off");
+ }
+ }
+
+ private void smoothLight_CheckedChanged(object sender, EventArgs e)
+ {
+ //Code injection
+ byte[] bytes = { 0x50, 0xB8, 0x05, 0x00, 0x00, 0x00, 0x89, 0x87, 0x44, 0x01, 0x00, 0x00, 0x58, 0xD8, 0x1D, 0x3C, 0x73, 0x5F, 0x00, 0xE9, 0xA7, 0xBB, 0xE6, 0xFF };
+ checkAndWrite((IntPtr)0x005F66A0, bytes, bytes.Length, new IntPtr());
+ //Jump to injection
+ byte[] bytes2 = { 0xE9, 0x42, 0x44, 0x19, 0x00, 0x90 };
+ checkAndWrite((IntPtr)0x00462259, bytes2, bytes2.Length, new IntPtr());
+
+ if (this.smoothLight.Checked == true)
+ {
+
+ //Lighting mode 5
+ byte[] bytes3 = { 0x05 };
+ checkAndWrite((IntPtr)0x005F66A2, bytes3, bytes3.Length, new IntPtr());
+
+ message("Smooth lighting: on");
+ }
+ else
+ {
+ //Lighting mode 4
+ byte[] bytes3 = { 0x04 };
+ checkAndWrite((IntPtr)0x005F66A2, bytes3, bytes3.Length, new IntPtr());
+
+ message("Smooth lighting: off");
+ }
+ }
+
+
+ private void message(string message)
+ {
+ //Jmp to show text
+ var adress = 0x004A9AED;
+ byte[] bytes = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
+ int size = 6;
+ var mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ //Push text
+ adress = 0x004A9B0A;
+ bytes[0] = 0x00;
+ bytes[1] = 0xC4;
+ bytes[2] = 0x58;
+ bytes[3] = 0x00;
+ size = 4;
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ //Hide additional info 1
+ adress = 0x00643030;
+ bytes[0] = 0x00;
+ size = 1;
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ //Hide additional info 2
+ adress = 0x00643038;
+ bytes[0] = 0x00;
+ size = 1;
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ //Text
+ adress = 0x0058C400; //Cave for text adress
+ byte[] bytes2 = Encoding.ASCII.GetBytes(message);
+ size = bytes2.Length + 1; // +1 adds zero at end
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes2, size, mem);
+
+ timer.Stop();
+ timer.Start();
+
+ /*
+ //Jmp to show text
+ var adress = 0x004A9D5C; //Base adress
+ byte[] bytes = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x68, 0x00, 0xC4, 0x58, 0x00 };
+ //byte[] bytes = { 0x0F, 0x85, 0x93, 0x00, 0x00, 0x00, 0x68, 0x24, 0x30, 0x64, 0x00 };
+ int size = 11;
+ var mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ //Text
+ adress = 0x0058C400; //Cave for text adress
+ byte[] bytes2 = Encoding.ASCII.GetBytes(message);
+ size = bytes2.Length + 1; //Add zero
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes2, size, mem);
+
+ timer.Stop();
+ timer.Enabled = true;
+ */
+ }
+
+ private void timer_Tick(object sender, EventArgs e)
+ {
+ timer.Stop();
+
+ //Return original instructions of show text
+ var adress = 0x004A9AED;
+ byte[] bytes = { 0x0F, 0x84, 0x56, 0x02, 0x00, 0x00 };
+ int size = 6;
+ var mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ //Restore to original push
+ adress = 0x004A9B0A;
+ bytes[0] = 0x2C;
+ bytes[1] = 0x12;
+ bytes[2] = 0x64;
+ bytes[3] = 0x00;
+ size = 4;
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ //Restore to original text 1
+ adress = 0x00643030;
+ bytes[0] = 0x25;
+ size = 1;
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ //Restore to original text 2
+ adress = 0x00643038;
+ bytes[0] = 0x28;
+ size = 1;
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+
+ /*
+ //Original push
+ adress = 0x004A9B09; //Base adress
+ byte[] bytes2 = { 0x68, 0x2C, 0x12, 0x64, 0x00 };
+ size = 5;
+ mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ */
+ /*
+ timer.Enabled = false;
+ //Return original instructions of show text
+ var adress = 0x004A9D5C; //Base adress
+ byte[] bytes = { 0x0F, 0x85, 0x93, 0x00, 0x00, 0x00, 0x68, 0x24, 0x30, 0x64, 0x00 };
+ int size = 11;
+ var mem = new IntPtr();
+ checkAndWrite((IntPtr)adress, bytes, size, mem);
+ */
+ }
+
+
+
+ //#######################################################################################################################
+ //Patcher
+
+ private void patch_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ //Check checkboxes
+ if (this.noCD.Checked == false && this.disableDrawDistance.Checked == false && this.disableVideos.Checked == false && this.changeResolution.Checked == false && this.aspectRatio.Checked == false)
+ {
+ MessageBox.Show("Select at least one option", "No options selected", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ return;
+ }
+
+ //Read path from registry
+ string TazGameFolder = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Infogrames Interactive\TazWanted\Release", "Location", null);
+ if (TazGameFolder == null)
+ {
+ // Search in x86 registry
+ TazGameFolder = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Infogrames Interactive\TazWanted\Release", "Location", null);
+ }
+
+ bool backuped = false;
+
+ //backup taz.exe
+ if (File.Exists(TazGameFolder + "\\Taz.exe.backup") == false)
+ {
+ File.Copy(TazGameFolder + "\\Taz.exe", TazGameFolder + "\\Taz.exe.backup");
+ backuped = true;
+ }
+
+ //noCD
+ if (this.noCD.Checked == true)
+ {
+ using (var file = new FileStream(TazGameFolder + "\\Taz.exe", FileMode.Open, FileAccess.ReadWrite))
+ {
+
+ byte[] bytes = new byte[] { 0x33, 0xC0, 0x40, 0xC3 };
+ file.Position = 0xA1F10;
+ file.WriteByte(bytes[0]);
+ file.WriteByte(bytes[1]);
+ file.WriteByte(bytes[2]);
+ file.WriteByte(bytes[3]);
+ file.Close();
+ }
+ }
+
+ //disable draw distance
+ if (this.disableDrawDistance.Checked == true)
+ {
+ using (var file = new FileStream(TazGameFolder + "\\Taz.exe", FileMode.Open, FileAccess.ReadWrite))
+ {
+ byte[] bytes = new byte[] { 0xFF, 0xFF, 0x74 }; // 00 00 75
+ file.Position = 0x74FC4;
+ file.WriteByte(bytes[0]);
+ file.WriteByte(bytes[1]);
+ file.Position = 0x74FD0;
+ file.WriteByte(bytes[2]);
+ file.Close();
+ }
+
+ using (var file = new FileStream(TazGameFolder + "\\taz.dat", FileMode.Open, FileAccess.ReadWrite))
+ {
+ //max default
+ file.Position = 0x44;
+ file.WriteByte(0xFF);
+ file.WriteByte(0xFF);
+ file.Close();
+ }
+ }
+
+ //disable videos
+ if (this.disableVideos.Checked == true)
+ {
+ if (Directory.Exists(TazGameFolder + "\\DISABLED Videos") == false)
+ {
+ Directory.Move(TazGameFolder + "\\Videos", TazGameFolder + "\\DISABLED Videos");
+ }
+ }
+
+ //resolution
+ if (this.changeResolution.Checked == true)
+ {
+ if (this.windowed.Checked == false)
+ {
+ byte[] width = BitConverter.GetBytes(UInt32.Parse(this.width.Text));
+ byte[] height = BitConverter.GetBytes(UInt32.Parse(this.height.Text));
+
+ using (var file = new FileStream(TazGameFolder + "\\taz.dat", FileMode.Open, FileAccess.ReadWrite))
+ {
+ //width
+ file.Position = 0x24;
+ file.WriteByte(width[0]);
+ file.WriteByte(width[1]);
+ file.WriteByte(width[2]);
+ file.WriteByte(width[3]);
+ //height
+ file.Position = 0x28;
+ file.WriteByte(height[0]);
+ file.WriteByte(height[1]);
+ file.WriteByte(height[2]);
+ file.WriteByte(height[3]);
+ //32 bits on color
+ file.Position = 0x30;
+ file.WriteByte(0x20);
+ //fullscreen
+ file.Position = 0x34;
+ file.WriteByte(0x00);
+ //lighting
+ file.Position = 0x38;
+ file.WriteByte(0x01);
+ //outlines
+ file.Position = 0x3C;
+ file.WriteByte(0x01);
+ //no voodoo
+ file.Position = 0x40;
+ file.WriteByte(0x00);
+ file.Close();
+ }
+ }
+ else
+ {
+ using (var file = new FileStream(TazGameFolder + "\\taz.dat", FileMode.Open, FileAccess.ReadWrite))
+ {
+ //windowed
+ file.Position = 0x34;
+ file.WriteByte(0x01);
+ file.Close();
+ }
+ }
+ }
+
+ //aspect ratio
+ if (this.aspectRatio.Checked == true)
+ {
+ byte aspect1 = Byte.Parse(this.aspect1.Text);
+ byte aspect2 = Byte.Parse(this.aspect2.Text);
+
+ using (var file = new FileStream(TazGameFolder + "\\Taz.exe", FileMode.Open, FileAccess.ReadWrite))
+ {
+ //windowed
+ file.Position = 0x8FD76;
+ file.WriteByte(aspect1);
+ file.Position = 0x8FD7D;
+ file.WriteByte(aspect2);
+ file.Close();
+ }
+ }
+
+ //end
+ this.statusField.Text = "Patched successfully (" + TazGameFolder + ")";
+ if (backuped == true)
+ {
+ this.statusField.Text += " and created backup of taz.exe";
+ }
+ this.statusField.ForeColor = System.Drawing.Color.DarkGreen;
+ MessageBox.Show("Patched successfully", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ this.statusField.Text = ex.Message.ToString();
+ this.statusField.ForeColor = System.Drawing.Color.DarkRed;
+ }
+ }
+
+
+ private void restore_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var result = MessageBox.Show("This will restore CD check, draw distance, logo videos and set video mode to 1024x768 (4:3 fullscreen). Continue?", "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
+ if (result == DialogResult.Yes)
+ {
+ //Read path from registry
+ string TazGameFolder = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Infogrames Interactive\TazWanted\Release", "Location", null);
+ if (TazGameFolder == null)
+ {
+ // Search in x86 registry
+ TazGameFolder = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Infogrames Interactive\TazWanted\Release", "Location", null);
+ }
+
+ //restore CD check
+ using (var file = new FileStream(TazGameFolder + "\\Taz.exe", FileMode.Open, FileAccess.ReadWrite))
+ {
+ byte[] bytes = new byte[] { 0x81, 0xEC, 0x38, 0x01 };
+ file.Position = 0xA1F10;
+ file.WriteByte(bytes[0]);
+ file.WriteByte(bytes[1]);
+ file.WriteByte(bytes[2]);
+ file.WriteByte(bytes[3]);
+ file.Close();
+ }
+ //restore draw distace
+ using (var file = new FileStream(TazGameFolder + "\\Taz.exe", FileMode.Open, FileAccess.ReadWrite))
+ {
+ byte[] bytes = new byte[] { 0x00, 0x00, 0x75 };
+ file.Position = 0x74FC4;
+ file.WriteByte(bytes[0]);
+ file.WriteByte(bytes[1]);
+ file.Position = 0x74FD0;
+ file.WriteByte(bytes[2]);
+ file.Close();
+ }
+ using (var file = new FileStream(TazGameFolder + "\\taz.dat", FileMode.Open, FileAccess.ReadWrite))
+ {
+ //max default
+ file.Position = 0x44;
+ file.WriteByte(0x30);
+ file.WriteByte(0x02);
+ file.Close();
+ }
+ //restore videos
+ if (Directory.Exists(TazGameFolder + "\\Videos") == false)
+ {
+ Directory.Move(TazGameFolder + "\\DISABLED Videos", TazGameFolder + "/Videos");
+ }
+ //restore resolution
+ using (var file = new FileStream(TazGameFolder + "\\taz.dat", FileMode.Open, FileAccess.ReadWrite))
+ {
+ //width
+ file.Position = 0x24;
+ file.WriteByte(0x00);
+ file.WriteByte(0x04);
+ file.WriteByte(0x00);
+ file.WriteByte(0x00);
+ //height
+ file.Position = 0x28;
+ file.WriteByte(0x00);
+ file.WriteByte(0x03);
+ file.WriteByte(0x00);
+ file.WriteByte(0x00);
+ //32 bits on color
+ file.Position = 0x30;
+ file.WriteByte(0x20);
+ //fullscreen
+ file.Position = 0x34;
+ file.WriteByte(0x00);
+ //lighting
+ file.Position = 0x38;
+ file.WriteByte(0x01);
+ //outlines
+ file.Position = 0x3C;
+ file.WriteByte(0x01);
+ //no voodoo
+ file.Position = 0x40;
+ file.WriteByte(0x00);
+ file.Close();
+ }
+ //restore aspect ratio
+ using (var file = new FileStream(TazGameFolder + "\\Taz.exe", FileMode.Open, FileAccess.ReadWrite))
+ {
+ //windowed
+ file.Position = 0x8FD76;
+ file.WriteByte(0x04);
+ file.Position = 0x8FD7D;
+ file.WriteByte(0x03);
+ file.Close();
+ }
+ //restore end
+ this.statusField.Text = "Restored successfully (" + TazGameFolder + ")";
+ this.statusField.ForeColor = System.Drawing.Color.DarkGreen;
+ MessageBox.Show("Restored successfully", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ catch (Exception ex)
+ {
+ this.statusField.Text = ex.Message.ToString();
+ this.statusField.ForeColor = System.Drawing.Color.DarkRed;
+ }
+
+ }
+
+
+ private void restoreBackup_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var result = MessageBox.Show("This will restore previously created backup of taz.exe file. Continue?", "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
+ if (result == DialogResult.Yes)
+ {
+ //Read path from registry
+ string TazGameFolder = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Infogrames Interactive\TazWanted\Release", "Location", null);
+ if (TazGameFolder == null)
+ {
+ // Search in x86 registry
+ TazGameFolder = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Infogrames Interactive\TazWanted\Release", "Location", null);
+ }
+
+ //Check backup
+ if (File.Exists(TazGameFolder + "\\Taz.exe.backup") == true)
+ {
+ //Replace
+ File.Delete(TazGameFolder + "\\Taz.exe");
+ File.Copy(TazGameFolder + "\\Taz.exe.backup", TazGameFolder + "\\Taz.exe");
+ }
+ else
+ {
+ this.statusField.Text = "Taz.exe.backup not found!";
+ this.statusField.ForeColor = System.Drawing.Color.DarkRed;
+ return;
+ }
+ //restore end
+ this.statusField.Text = "Restored successfully (" + TazGameFolder + ")";
+ this.statusField.ForeColor = System.Drawing.Color.DarkGreen;
+ MessageBox.Show("Restored successfully", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ catch (Exception ex)
+ {
+ this.statusField.Text = ex.Message.ToString();
+ this.statusField.ForeColor = System.Drawing.Color.DarkRed;
+ }
+ }
+
+ //#######################################################################################################################
+ //GUI
+
+ private void aspectRatio_CheckedChanged(object sender, EventArgs e)
+ {
+ if (this.aspectRatio.Checked == true)
+ {
+ this.aspect1.Enabled = true;
+ this.pointsLabel.Enabled = true;
+ this.aspect2.Enabled = true;
+ }
+ else
+ {
+ this.aspect1.Enabled = false;
+ this.pointsLabel.Enabled = false;
+ this.aspect2.Enabled = false;
+ }
+ }
+
+ private void changeResolution_CheckedChanged(object sender, EventArgs e)
+ {
+ if (this.changeResolution.Checked == true)
+ {
+ this.windowed.Enabled = true;
+ if (this.windowed.Checked == false)
+ {
+ this.height.Enabled = true;
+ this.xLabel.Enabled = true;
+ this.width.Enabled = true;
+ }
+ this.aspectRatio.Checked = true;
+ }
+ else
+ {
+ this.windowed.Enabled = false;
+ this.height.Enabled = false;
+ this.xLabel.Enabled = false;
+ this.width.Enabled = false;
+ this.aspectRatio.Checked = false;
+ }
+ }
+
+ private void windowed_CheckedChanged(object sender, EventArgs e)
+ {
+ if (this.windowed.Checked == true)
+ {
+ this.height.Enabled = false;
+ this.xLabel.Enabled = false;
+ this.width.Enabled = false;
+ autoFillVideo(640, 480);
+ this.aspectRatio.Checked = true;
+ }
+ else
+ {
+ this.height.Enabled = true;
+ this.xLabel.Enabled = true;
+ this.width.Enabled = true;
+ autoFillVideo(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
+ this.aspectRatio.Checked = true;
+ }
+ }
+ }
+}
diff --git a/Taz trainer/Form1.resx b/Taz trainer/Form1.resx
new file mode 100644
index 0000000..9c4ba6f
--- /dev/null
+++ b/Taz trainer/Form1.resx
@@ -0,0 +1,409 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 115, 18
+
+
+ Taz Wanted trainer and patcher v1.0
+
+Trainer usage: launch game and use keys to activate cheats.
+Patcher usage: select necessary patches and click "Patch!".
+Apply pathes after configuring options in native game launcher!
+
+Source code available on GitHub.
+
+
+
+
+ AAABAAEAcnIAAAEACADwPgAAFgAAACgAAAByAAAA5AAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAwEBAAEBAwARAQEAAQMDAAMDAwAEBAUABwUFAAMFCAAZBAQACQcGAAYHCwAIChEAEA0NAAEO
+ EQAKDhcADRAYABoSEgAMFCAAFxoeABQZKwACHiQANCAgAA8fMAAQIDIAISMoADEoKAATKD4AFShCAD0v
+ MAAoMj0AMS5vAF87OwAgO1QANTJ5ADhASgBYREUASUZLAEJGUAAvOIkAMjyTAGJMTQA0SG0AQz+ZADRA
+ nQA1QaAAOE52AENUZwA5RKYAOVaOAFVdbgAyXIQAaGNrAEdjlQBadI8AbHeMAHp+hQB/g4oAeYqlAHKM
+ pgCQlJoAlpeaAK6krQB7pcgAfqfJAICpygCrra8Aia7OAIuwzgCFqfMAibPVALW5vgC1vcYA0sG/AI3B
+ 5QCQw+YAkcPmAMTL0gDK0dcA1NTUAN7e3wDo5uYA0uj8AOzs7QDx8fEA9vPyAPn29gD6+fkA+/v9AP39
+ +wD//f0A+/3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEIAAAAAAAAABwAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAPGR4ZEwQAAAAXAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAABMhOkpKSkpKPzIZAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFyEIABMqP0pKSkpKSkpKSkoyEwAAEgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAOAAAAAAYeOkpKSkpKSkpKSkpKSko/IQsADgAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAcAAALHiEqKjpKSkpKSkpKSkpKSkpKSkpKMhIABAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAHAAAHj9KSkpKPzI6SkpKSkpKSkpKSkpKSkpKNhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAACFKSkpKSkpKSjo2SkpKSkpKSkpKSkpKSkpKOh4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAZ
+ SkpKSkpKSkpKSj8yP0pKSkpKSkpKSkpKSkpKOh4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjpKSkpK
+ SkpKSkpKSko2NkpKSkpKSkpKSkpKSkpKNh4AAAQhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAeSkpKSkpKSkpK
+ SkpKSkpKNjpKSkpKSkpKSkpKSko6KhkTCwAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ RThaNkVFRUU/QlY4RUVFOlpaWlo2NlMyLSpKSkpKHgAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEHjJKSkpKNi0tH0VFRUVFRThXWjpFRUVFPzY/
+ RUVFRUU2OEVFRUU2WlpaWzZFMictKkpKSko/DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwQyP0pKSkoqLS0fRUVFRUVFSjhaOkVFRUVFRUVFRUVF
+ RUVFRUVFRTpQWlo+P0U/Jy0fSkpKSkohABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITZKSkpKSiotLR9FRUVFRUVFP0c6RUVFRUVFRUVFRUVFRUVF
+ RUVFRT1aUTZFRT8nLSc2SkpKSj8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAADgsySkpKSko/Hy0tH0VFRUVFRUVFOjZFRUVFRUVFRUVFRUVFRUVFRUVF
+ Pz02RUVFOictLSpKSkpKSioADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAITpKSkpKSjYtLS0fP0VFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVF
+ RUU2Jy0tKkpKSkpKPw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAADgYySkpKSkpKMS0tLSc2RUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRTEt
+ LS0fSkpKSkpKIQAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAHj9KSkpKSkoqLS0tLSpFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFMS0tLSc2
+ SkpKSko/DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ DgQySkpKSkpKSh8tLS0tKkVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUUqLS0tLSpKSkpK
+ SkohAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHj9K
+ SkpKSko/Jy0tLS0fRUVFRUVFRUVFRUVFRUVFRUVFRT9FRUVFRUVFRUVFRUVFRR8tLS0tKkpKSkpKSj8L
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAqSkpKSkpK
+ SjYtLS0tLS0xRUVFRUVFRUVFRUVFRUVFRUVFP0VFRUVFRUVFRUVFRUU/Hy0tLS0fSkpKSkpKSh4AFwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADzZKSkpKSkpKMS0t
+ LS0tLSpFRUVFRUVFRUVFRUVFRUVFRUU6RUVFRUVFRUVFRUVFRTEtLS0tLR8/SkpKSkpKNgQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeSkpKSkpKSkoxLS0tLS0t
+ Hz9FRUVFRUVFRUVFRUVFRUVFRTpFRUVFRUVFRUVFRUVFKi0tLS0tLTZKSkpKSkpKEwAhAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOADJKSkpKSkpKSiotLS0tLS0tKkVF
+ RUVFRUVFRUVFRUVFRUVFNkVFRUVFRUVFRUVFRT8fLS0tLS0tKkpKSkpKSkoqAAgAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATOkpKSkpKSkpKKi0tLS0tLS0fP0VFRUVF
+ RUVFRUVFRUVFRUU2RUVFRUVFRUVFRUVFKi0tLS0tLS0qSkpKSkpKSj8MAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAB5KSkpKSkpKSj8qLS0tLS0tLS0hRUVFRUVFRUVF
+ RUVFRUVFRTZFRUVFRUVFRUVFRUUfLS0tLS0tLR9KSkpKSkpKSh4AFwAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AKkpKSkpKSkpKPyctLS0tLS0tHws/RUVFRUVFRUVFRUVF
+ RUVFKkVFRUVFRUVFRUVFKi0tLS0tLS0tH0pKSkpKSkpKMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg2SkpKSkpKSko6Jy0tLS0tLS0cAB5FRUVFRUVFRUVFRUVFRT8S
+ MUVFRUVFRUVFRT8cLS0tLS0tLS0nOkpKSkpKSko/DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAEz9KSkpKSkpKSjYtLS0tLS0tLRcAAjZFRUVFRUVFRUVFRUVFNgAcOkVF
+ RUVFRUVFHhwtLS0tLS0tLS02SkpKSkpKSkoeABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAIQAeSkpKSkpKSkpKNi0tLS0tLS0tEgAAD0VFRUVFRUVFRUVFRUUeAAAZP0VFRUVF
+ RSoGFyctLS0tLS0tLTFKSkpKSkpKSioAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAYACFKSkpKSkpKSkoxLS0tLS0tLS0PAAAAHkVFRUVFRUVFRUVFRQ8AAAAcRUVFRUUxDAAM
+ Hy0tLS0tLS0tKkpKSkpKSkpKPwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABQAKkpKSkpKSkpKSjEtLS0tLS0tLQwAAAAAKkVFRUVFRUVFRUUxAAAAAAAXP0VFIQsAAAAhLS0t
+ LS0tLS0qSkpKSkpKSkpKGQAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAUySkpKSkpKSkpKMS0tLS0tLS0tCwAAAAAAKkVFRUVFRUVFPw8AAAAAAAAIEgwAAAAAABwtLS0tLS0t
+ LSpKSkpKSkpKSkohAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzpK
+ SkpKSkpKSkoqLS0tLS0tLS0IAAAAAAAAGT9FRUVFRUUTAAAAAAAAAAAAAAAAAAAAFy0tLS0tLS0tH0pK
+ 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
+ AAAABwAAAC0tLS0tHxAfLS0tLS0tLS0tLS0fHCEnLScfFwwXHxctJxctLS0fFwAAFxchAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj
+ AAAALS0tLS0AAAwtLS0tLS0tLScnIRwcIRwcHx8nLS0cHyEXHC0tLRIcAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAAAAt
+ LS0tLQAACRctHyctLS0tLS0tLS0tLS0tLS0tHxcXHyEfLS0tDwwEACEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAB8tLS0f
+ AAAACB8tEictLS0tLS0tLS0tLS0tLR8SHy0nDC0tLS0PAAgAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwcAAC0tLQAAAAAJ
+ CB8cDCctLS0tLS0tLS0tLS0nJy0tJwsAHC0tLQ8IBAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHy0tAAAjABoACBwM
+ DyctLS0tLS0tLS0tLS0tLRcIAAAPLS0fDAIAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAALS0AAC8AABUAAggMDBwt
+ LS0tLS0tLS0tHxILAAAAAAwtLRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAAAWLQAAMwAAABwAAAQABA8fLS0t
+ JyESEgICAAAADhcADC0cDwAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAfAAAzAAAAAAAOAAAAAAgPHB8tLS0t
+ LRIACAAAAAALFw8AACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAAAAAAAAFxwAAAAACw8SEhIPDAAX
+ AAAhAAwSAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAAAJgAAAAAAAAAAAAAADgAAAAAAAAAAAAAAABwA
+ BgAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAAAzAAAAAAAAAAAAAAAAAAAhFxcOAA4AAAAAAAAAABcA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMmMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////////////AAP//////////////////
+ wAD////////5/////////8AA////////gB/////////AAP///////gAH////////wAD///////gAA///
+ /////8AA//////+AAAD////////AAP/////+AAAAf///////wAD/////+AAAAD///////8AA//////AA
+ AAAf///////AAP/////wAAAAD///////wAD/////4AAAAAf//////8AA/////+AAAAAA///////AAP//
+ ///AAAAAAD//////wAD/////wAAAAAAf/////8AA/////8AAAAAAH//////AAP/////AAAAAAA//////
+ wAD/////gAAAAAAP/////8AA/////4AAAAAAB//////AAP////8AAAAAAAf/////wAD/////AAAAAAAH
+ /////8AA/////gAAAAAAA//////AAP////wAAAAAAAP/////wAD////8AAAAAAAB/////8AA////+AAA
+ AAAAAP/////AAP////gAAAAAAAD/////wAD////wAAAAAAAAf////8AA////8AAAAAAAAH/////AAP//
+ /+AAAAAAAAA/////wAD////gAAAAAAAAH////8AA////wAAAAAAAAB/////AAP///4AAAAAAAAAP////
+ wAD///+AAAAAAAAAD////8AA////AAAAAAAAAAf////AAP///wAAAAAAAAAH////wAD///4AAAAAAAAA
+ A////8AA///+AAAAAAAAAAP////AAP///AAAAAAAAAAB////wAD///wAAAAAAAAAAf///8AA///4AAAA
+ AAAAAAD////AAP//+AAAAAAAAAAA////wAD///gAAAAAAAAAAH///8AA///wAAAAAAAAAAB////AAP//
+ 8AAAAAAAAAAAf///wAD//+AAAAAAAAAAAD///8AA///gAAAAAAAAAAA////AAP//4AAAAAAAAAAAP///
+ wAD//+AAAAAAAAAAAB///8AA///AAAAAAAAAAAAf///AAP//wAAAAAAAAAAAH///wAD//8AAAAAAAAAA
+ AA///8AA///AAAAAAAAAAAAP///AAP//wAAAAAAAAAAAD///wAD//8AAAAAAAAAAAA///8AA//+AAAAA
+ AAAAAAAH///AAP//gAAAAAAAAAAAB///wAD//4AAAAAAAAAAAAf//8AA//+AAAAAAAAAAAAH///AAP//
+ gAAAAAAAAAAAB///wAD//4AAAAAAAAAAAAf//8AA//+AAAAAAAAAAAAH///AAP//gAAAAAAAAAAAA///
+ wAD//4AAAAAAAAAAAAP//8AA//+AAAAAAAAAAAAD///AAP//gAAAAAAAAAAAA///wAD//4AAAAAAAAAA
+ AAH//8AA//+AAAAAAAAAAAAA///AAP//wAAAAAAAAAAAAP//wAD//8AAAAAAAAAAAAD//8AA///AAAAA
+ AAAAAAAB///AAP//wAAAAAAAAAAAAf//wAD//8AAAAAAAAAAAAH//8AA///AAAAAAAAAAAAB///AAP//
+ 4AAAAAAAAAAAA///wAD//+AAAAAAAAAAAAP//8AA///gAAAAAAAAAAAD///AAP//4AAAAAAAAAAAB///
+ wAD///AAAAAAAAAAAAf//8AA///wAAAAAAAAAAAD///AAP//8AAAAAAAAAAAB///wAD///gAAAAAAAAA
+ AAf//8AA///4AAAAAAAAAAAP///AAP///AAAAAAAAAAAD///wAD///4AAAAAAAAAAB///8AA////AAAA
+ AAAAAAA////AAP///4AAAAAAAAAAf///wAD////gAAAAAAAAAP///8AA////4AAAAAAAAAP////AAP//
+ /+AAAAAAAAAH////wAD////wAAAAAAAAD////8AA////+AAAAAAAAB/////AAP////gAAAAAAAAf////
+ wAD////4AAAAAAAAH////8AA////+AAAAAAAAA/////AAP////wAAAAAAAAP////wAD////8AAAAAAAA
+ H////8AA/////gAAAAAAAB/////AAP////+AAAAAAAAf////wAD/////gAAAAAAAP////8AA/////4AA
+ AAAAAH/////AAP////+AAAAAAAP/////wAD/////gAAAAAAB/////8AA/////4AAAAAAAf/////AAP//
+ ///AAAAAAAH/////wAD/////8AgAAAAB/////8AA//////AMAAAAA//////AAP/////wDgAAAAf/////
+ wAD/////+A+AADgP/////8AA//////wP4AAwH//////AAP/////8D/4AcD//////wAD//////g//wPh/
+ /////8AA//////8f///9///////AAP//////////////////wAD//////////////////8AA
+
+
+
\ No newline at end of file
diff --git a/Taz trainer/Program.cs b/Taz trainer/Program.cs
new file mode 100644
index 0000000..d9060fd
--- /dev/null
+++ b/Taz trainer/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Taz_trainer
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/Taz trainer/Properties/AssemblyInfo.cs b/Taz trainer/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..18b8d92
--- /dev/null
+++ b/Taz trainer/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Taz trainer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Taz trainer")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("319655b7-fa36-4819-8b10-78f85147caba")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Taz trainer/Properties/Resources.Designer.cs b/Taz trainer/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..6b9a194
--- /dev/null
+++ b/Taz trainer/Properties/Resources.Designer.cs
@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Taz_trainer.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Taz_trainer.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TAZ {
+ get {
+ object obj = ResourceManager.GetObject("TAZ", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/Taz trainer/Properties/Resources.resx b/Taz trainer/Properties/Resources.resx
new file mode 100644
index 0000000..00b1c75
--- /dev/null
+++ b/Taz trainer/Properties/Resources.resx
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\Resources\TAZ.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/Taz trainer/Properties/Settings.Designer.cs b/Taz trainer/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..7c7c54e
--- /dev/null
+++ b/Taz trainer/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Taz_trainer.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Taz trainer/Properties/Settings.settings b/Taz trainer/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/Taz trainer/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Taz trainer/Resources/TAZ.png b/Taz trainer/Resources/TAZ.png
new file mode 100644
index 0000000..78b8848
Binary files /dev/null and b/Taz trainer/Resources/TAZ.png differ
diff --git a/Taz trainer/TAZLOGO.ico b/Taz trainer/TAZLOGO.ico
new file mode 100644
index 0000000..008ac15
Binary files /dev/null and b/Taz trainer/TAZLOGO.ico differ
diff --git a/Taz trainer/Taz trainer.csproj b/Taz trainer/Taz trainer.csproj
new file mode 100644
index 0000000..111acac
--- /dev/null
+++ b/Taz trainer/Taz trainer.csproj
@@ -0,0 +1,102 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {319655B7-FA36-4819-8B10-78F85147CABA}
+ WinExe
+ Properties
+ Taz_trainer
+ Taz trainer
+ v4.0
+ 512
+ true
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ TAZLOGO.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Taz trainer/bin/Debug/Taz trainer.exe b/Taz trainer/bin/Debug/Taz trainer.exe
new file mode 100644
index 0000000..d0cfa91
Binary files /dev/null and b/Taz trainer/bin/Debug/Taz trainer.exe differ
diff --git a/Taz trainer/bin/Debug/Taz trainer.exe.config b/Taz trainer/bin/Debug/Taz trainer.exe.config
new file mode 100644
index 0000000..74ade9d
--- /dev/null
+++ b/Taz trainer/bin/Debug/Taz trainer.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Taz trainer/bin/Debug/Taz trainer.pdb b/Taz trainer/bin/Debug/Taz trainer.pdb
new file mode 100644
index 0000000..2eb91fb
Binary files /dev/null and b/Taz trainer/bin/Debug/Taz trainer.pdb differ
diff --git a/Taz trainer/bin/Debug/Taz trainer.vshost.exe b/Taz trainer/bin/Debug/Taz trainer.vshost.exe
new file mode 100644
index 0000000..8f90da4
Binary files /dev/null and b/Taz trainer/bin/Debug/Taz trainer.vshost.exe differ
diff --git a/Taz trainer/bin/Debug/Taz trainer.vshost.exe.config b/Taz trainer/bin/Debug/Taz trainer.vshost.exe.config
new file mode 100644
index 0000000..74ade9d
--- /dev/null
+++ b/Taz trainer/bin/Debug/Taz trainer.vshost.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Taz trainer/bin/Debug/Taz trainer.vshost.exe.manifest b/Taz trainer/bin/Debug/Taz trainer.vshost.exe.manifest
new file mode 100644
index 0000000..061c9ca
--- /dev/null
+++ b/Taz trainer/bin/Debug/Taz trainer.vshost.exe.manifest
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Taz trainer/bin/Release/Taz trainer.exe.config b/Taz trainer/bin/Release/Taz trainer.exe.config
new file mode 100644
index 0000000..74ade9d
--- /dev/null
+++ b/Taz trainer/bin/Release/Taz trainer.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Taz trainer/bin/Release/Taz trainer.vshost.exe b/Taz trainer/bin/Release/Taz trainer.vshost.exe
new file mode 100644
index 0000000..8f90da4
Binary files /dev/null and b/Taz trainer/bin/Release/Taz trainer.vshost.exe differ
diff --git a/Taz trainer/bin/Release/Taz trainer.vshost.exe.config b/Taz trainer/bin/Release/Taz trainer.vshost.exe.config
new file mode 100644
index 0000000..74ade9d
--- /dev/null
+++ b/Taz trainer/bin/Release/Taz trainer.vshost.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Taz trainer/bin/Release/Taz trainer.vshost.exe.manifest b/Taz trainer/bin/Release/Taz trainer.vshost.exe.manifest
new file mode 100644
index 0000000..061c9ca
--- /dev/null
+++ b/Taz trainer/bin/Release/Taz trainer.vshost.exe.manifest
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Taz trainer/globalKeyboardHook.cs b/Taz trainer/globalKeyboardHook.cs
new file mode 100644
index 0000000..c3e4106
--- /dev/null
+++ b/Taz trainer/globalKeyboardHook.cs
@@ -0,0 +1,155 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+
+namespace Utilities {
+ ///
+ /// A class that manages a global low level keyboard hook
+ ///
+ class globalKeyboardHook {
+ #region Constant, Structure and Delegate Definitions
+ ///
+ /// defines the callback type for the hook
+ ///
+ public delegate int keyboardHookProc(int code, int wParam, ref keyboardHookStruct lParam);
+
+ public struct keyboardHookStruct {
+ public int vkCode;
+ public int scanCode;
+ public int flags;
+ public int time;
+ public int dwExtraInfo;
+ }
+
+ const int WH_KEYBOARD_LL = 13;
+ const int WM_KEYDOWN = 0x100;
+ const int WM_KEYUP = 0x101;
+ const int WM_SYSKEYDOWN = 0x104;
+ const int WM_SYSKEYUP = 0x105;
+ #endregion
+
+ #region Instance Variables
+ ///
+ /// The collections of keys to watch for
+ ///
+ public List HookedKeys = new List();
+ ///
+ /// Handle to the hook, need this to unhook and call the next hook
+ ///
+ IntPtr hhook = IntPtr.Zero;
+ private keyboardHookProc hookProcDelegate;
+ #endregion
+
+ #region Events
+ ///
+ /// Occurs when one of the hooked keys is pressed
+ ///
+ public event KeyEventHandler KeyDown;
+ ///
+ /// Occurs when one of the hooked keys is released
+ ///
+ public event KeyEventHandler KeyUp;
+ #endregion
+
+ #region Constructors and Destructors
+ ///
+ /// Initializes a new instance of the class and installs the keyboard hook.
+ ///
+ public globalKeyboardHook() {
+ hookProcDelegate = hookProc;
+ hook();
+ }
+
+ ///
+ /// Releases unmanaged resources and performs other cleanup operations before the
+ /// is reclaimed by garbage collection and uninstalls the keyboard hook.
+ ///
+ ~globalKeyboardHook() {
+ unhook();
+ }
+ #endregion
+
+ #region Public Methods
+ ///
+ /// Installs the global hook
+ ///
+ public void hook() {
+ IntPtr hInstance = LoadLibrary("User32");
+ hhook = SetWindowsHookEx(WH_KEYBOARD_LL, hookProcDelegate, hInstance, 0);
+ }
+
+ ///
+ /// Uninstalls the global hook
+ ///
+ public void unhook() {
+ UnhookWindowsHookEx(hhook);
+ }
+
+ ///
+ /// The callback for the keyboard hook
+ ///
+ /// The hook code, if it isn't >= 0, the function shouldn't do anyting
+ /// The event type
+ /// The keyhook event information
+ ///
+ public int hookProc(int code, int wParam, ref keyboardHookStruct lParam) {
+ if (code >= 0) {
+ Keys key = (Keys)lParam.vkCode;
+ if (HookedKeys.Contains(key)) {
+ KeyEventArgs kea = new KeyEventArgs(key);
+ if ((wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN) && (KeyDown != null)) {
+ KeyDown(this, kea) ;
+ } else if ((wParam == WM_KEYUP || wParam == WM_SYSKEYUP) && (KeyUp != null)) {
+ KeyUp(this, kea);
+ }
+ if (kea.Handled)
+ return 1;
+ }
+ }
+ return CallNextHookEx(hhook, code, wParam, ref lParam);
+ }
+ #endregion
+
+ #region DLL imports
+ ///
+ /// Sets the windows hook, do the desired event, one of hInstance or threadId must be non-null
+ ///
+ /// The id of the event you want to hook
+ /// The callback.
+ /// The handle you want to attach the event to, can be null
+ /// The thread you want to attach the event to, can be null
+ /// a handle to the desired hook
+ [DllImport("user32.dll")]
+ static extern IntPtr SetWindowsHookEx(int idHook, keyboardHookProc callback, IntPtr hInstance, uint threadId);
+
+ ///
+ /// Unhooks the windows hook.
+ ///
+ /// The hook handle that was returned from SetWindowsHookEx
+ /// True if successful, false otherwise
+ [DllImport("user32.dll")]
+ static extern bool UnhookWindowsHookEx(IntPtr hInstance);
+
+ ///
+ /// Calls the next hook.
+ ///
+ /// The hook id
+ /// The hook code
+ /// The wparam.
+ /// The lparam.
+ ///
+ [DllImport("user32.dll")]
+ static extern int CallNextHookEx(IntPtr idHook, int nCode, int wParam, ref keyboardHookStruct lParam);
+
+ ///
+ /// Loads the library.
+ ///
+ /// Name of the library
+ /// A handle to the library
+ [DllImport("kernel32.dll")]
+ static extern IntPtr LoadLibrary(string lpFileName);
+ #endregion
+ }
+}
diff --git a/Taz trainer/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/Taz trainer/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..74ef20c
Binary files /dev/null and b/Taz trainer/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/Taz trainer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Taz trainer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..324eefb
Binary files /dev/null and b/Taz trainer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/Taz trainer/obj/Debug/Taz trainer.csproj.FileListAbsolute.txt b/Taz trainer/obj/Debug/Taz trainer.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..aaf6d83
--- /dev/null
+++ b/Taz trainer/obj/Debug/Taz trainer.csproj.FileListAbsolute.txt
@@ -0,0 +1,18 @@
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\bin\Debug\Taz trainer.exe.config
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\bin\Debug\Taz trainer.exe
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\bin\Debug\Taz trainer.pdb
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\obj\Debug\Taz trainer.csprojResolveAssemblyReference.cache
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\obj\Debug\Taz_trainer.Form1.resources
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\obj\Debug\Taz_trainer.Properties.Resources.resources
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\obj\Debug\Taz trainer.csproj.GenerateResource.Cache
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\obj\Debug\Taz trainer.exe
+c:\users\muxajlbl4\documents\visual studio 2015\Projects\Taz trainer\Taz trainer\obj\Debug\Taz trainer.pdb
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\bin\Debug\Taz trainer.exe.config
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\obj\Debug\Taz trainer.exe
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\obj\Debug\Taz trainer.pdb
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\bin\Debug\Taz trainer.exe
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\bin\Debug\Taz trainer.pdb
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\obj\Debug\Taz trainer.csprojResolveAssemblyReference.cache
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\obj\Debug\Taz_trainer.Form1.resources
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\obj\Debug\Taz_trainer.Properties.Resources.resources
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz_Wanted_trainer_and_patcher\Taz trainer\obj\Debug\Taz trainer.csproj.GenerateResource.Cache
diff --git a/Taz trainer/obj/Debug/Taz trainer.csproj.GenerateResource.Cache b/Taz trainer/obj/Debug/Taz trainer.csproj.GenerateResource.Cache
new file mode 100644
index 0000000..a6b4959
Binary files /dev/null and b/Taz trainer/obj/Debug/Taz trainer.csproj.GenerateResource.Cache differ
diff --git a/Taz trainer/obj/Debug/Taz trainer.csprojResolveAssemblyReference.cache b/Taz trainer/obj/Debug/Taz trainer.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..45dbc62
Binary files /dev/null and b/Taz trainer/obj/Debug/Taz trainer.csprojResolveAssemblyReference.cache differ
diff --git a/Taz trainer/obj/Debug/Taz trainer.exe b/Taz trainer/obj/Debug/Taz trainer.exe
new file mode 100644
index 0000000..d0cfa91
Binary files /dev/null and b/Taz trainer/obj/Debug/Taz trainer.exe differ
diff --git a/Taz trainer/obj/Debug/Taz trainer.pdb b/Taz trainer/obj/Debug/Taz trainer.pdb
new file mode 100644
index 0000000..2eb91fb
Binary files /dev/null and b/Taz trainer/obj/Debug/Taz trainer.pdb differ
diff --git a/Taz trainer/obj/Debug/Taz_trainer.Form1.resources b/Taz trainer/obj/Debug/Taz_trainer.Form1.resources
new file mode 100644
index 0000000..5a6d2a4
Binary files /dev/null and b/Taz trainer/obj/Debug/Taz_trainer.Form1.resources differ
diff --git a/Taz trainer/obj/Debug/Taz_trainer.Properties.Resources.resources b/Taz trainer/obj/Debug/Taz_trainer.Properties.Resources.resources
new file mode 100644
index 0000000..5e24b90
Binary files /dev/null and b/Taz trainer/obj/Debug/Taz_trainer.Properties.Resources.resources differ
diff --git a/Taz trainer/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/Taz trainer/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
new file mode 100644
index 0000000..67d73a0
Binary files /dev/null and b/Taz trainer/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ
diff --git a/Taz trainer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/Taz trainer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/Taz trainer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/Taz trainer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/Taz trainer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/Taz trainer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/Taz trainer/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/Taz trainer/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..9eaf019
Binary files /dev/null and b/Taz trainer/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/Taz trainer/obj/Release/Taz trainer.csproj.FileListAbsolute.txt b/Taz trainer/obj/Release/Taz trainer.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..c60cfa2
--- /dev/null
+++ b/Taz trainer/obj/Release/Taz trainer.csproj.FileListAbsolute.txt
@@ -0,0 +1 @@
+C:\Users\MuxaJlbl4\Documents\Visual Studio 2015\Projects\Taz trainer\Taz trainer\bin\Release\Taz trainer.exe.config
diff --git a/Taz trainer/obj/Release/TempPE/Properties.Resources.Designer.cs.dll b/Taz trainer/obj/Release/TempPE/Properties.Resources.Designer.cs.dll
new file mode 100644
index 0000000..c2e33e9
Binary files /dev/null and b/Taz trainer/obj/Release/TempPE/Properties.Resources.Designer.cs.dll differ