diff --git a/Nifscan.sln b/Nifscan.sln new file mode 100644 index 0000000..2da65e8 --- /dev/null +++ b/Nifscan.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2012 for Windows Desktop +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nifscan", "Nifscan\Nifscan.csproj", "{954D1A7F-D909-43EC-A1E2-053ABF7358D6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {954D1A7F-D909-43EC-A1E2-053ABF7358D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {954D1A7F-D909-43EC-A1E2-053ABF7358D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {954D1A7F-D909-43EC-A1E2-053ABF7358D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {954D1A7F-D909-43EC-A1E2-053ABF7358D6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Nifscan.v11.suo b/Nifscan.v11.suo new file mode 100644 index 0000000..a5b085b Binary files /dev/null and b/Nifscan.v11.suo differ diff --git a/Nifscan/App.config b/Nifscan/App.config new file mode 100644 index 0000000..58262a1 --- /dev/null +++ b/Nifscan/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Nifscan/FormEC.Designer.cs b/Nifscan/FormEC.Designer.cs new file mode 100644 index 0000000..1c31f4c --- /dev/null +++ b/Nifscan/FormEC.Designer.cs @@ -0,0 +1,264 @@ +namespace Nifscan +{ + partial class FormEC + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.NumericUpDown numericUpDown4; + private System.Windows.Forms.NumericUpDown numericUpDown3; + private System.Windows.Forms.NumericUpDown numericUpDown2; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox1; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.numericUpDown4 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "Default", + "Environment Map", + "Glow Shader", + "Parallax", + "Face Tint", + "Skin Tint", + "Hair Tint", + "Parallax Occ", + "Multitexture Landscape", + "LOD Landscape", + "Snow", + "MultiLayer Parallax", + "Tree Anim", + "LOD Objects", + "Sparkle Snow", + "LOD Objects HD", + "Eye Envmap", + "Cloud", + "LOD Landscape Noise", + "Multitexture Landscape LOD Blend", + "FO4 Dismemberment", + "In All Shader Types"}); + this.comboBox1.Location = new System.Drawing.Point(12, 12); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(193, 23); + this.comboBox1.TabIndex = 0; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // numericUpDown4 + // + this.numericUpDown4.DecimalPlaces = 6; + this.numericUpDown4.Enabled = false; + this.numericUpDown4.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown4.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown4.Location = new System.Drawing.Point(128, 100); + this.numericUpDown4.Maximum = new decimal(new int[] { + 10, + 0, + 0, + 0}); + this.numericUpDown4.Name = "numericUpDown4"; + this.numericUpDown4.Size = new System.Drawing.Size(77, 21); + this.numericUpDown4.TabIndex = 6; + this.numericUpDown4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown4.ValueChanged += new System.EventHandler(this.numericUpDown4_ValueChanged); + // + // numericUpDown3 + // + this.numericUpDown3.DecimalPlaces = 3; + this.numericUpDown3.Enabled = false; + this.numericUpDown3.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown3.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown3.Location = new System.Drawing.Point(60, 109); + this.numericUpDown3.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Size = new System.Drawing.Size(58, 21); + this.numericUpDown3.TabIndex = 5; + this.numericUpDown3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown3.ValueChanged += new System.EventHandler(this.numericUpDown3_ValueChanged); + // + // numericUpDown2 + // + this.numericUpDown2.DecimalPlaces = 3; + this.numericUpDown2.Enabled = false; + this.numericUpDown2.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown2.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown2.Location = new System.Drawing.Point(60, 89); + this.numericUpDown2.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(58, 21); + this.numericUpDown2.TabIndex = 4; + this.numericUpDown2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown2_ValueChanged); + // + // numericUpDown1 + // + this.numericUpDown1.DecimalPlaces = 3; + this.numericUpDown1.Enabled = false; + this.numericUpDown1.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown1.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown1.Location = new System.Drawing.Point(60, 69); + this.numericUpDown1.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(58, 21); + this.numericUpDown1.TabIndex = 3; + this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged); + // + // label5 + // + this.label5.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label5.Location = new System.Drawing.Point(128, 72); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(77, 25); + this.label5.TabIndex = 0; + this.label5.Text = "Miltiple:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label4.Location = new System.Drawing.Point(14, 108); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(40, 20); + this.label4.TabIndex = 0; + this.label4.Text = "B"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label3.Location = new System.Drawing.Point(14, 88); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(40, 20); + this.label3.TabIndex = 0; + this.label3.Text = "G"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label2.Location = new System.Drawing.Point(14, 68); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(40, 20); + this.label2.TabIndex = 0; + this.label2.Text = "R"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // checkBox2 + // + this.checkBox2.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBox2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox2.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox2.Location = new System.Drawing.Point(136, 41); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(70, 25); + this.checkBox2.TabIndex = 2; + this.checkBox2.Text = "Miltiple"; + this.checkBox2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + // + // checkBox1 + // + this.checkBox1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox1.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox1.Location = new System.Drawing.Point(12, 41); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(70, 25); + this.checkBox1.TabIndex = 1; + this.checkBox1.Text = "Color"; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // FormEC + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(217, 142); + this.Controls.Add(this.checkBox2); + this.Controls.Add(this.checkBox1); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.numericUpDown4); + this.Controls.Add(this.numericUpDown3); + this.Controls.Add(this.numericUpDown2); + this.Controls.Add(this.numericUpDown1); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormEC"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "EmissiveColor"; + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + this.ResumeLayout(false); + + } + } +} \ No newline at end of file diff --git a/Nifscan/FormEC.cs b/Nifscan/FormEC.cs new file mode 100644 index 0000000..d9a3656 --- /dev/null +++ b/Nifscan/FormEC.cs @@ -0,0 +1,66 @@ +using System; +using System.Windows.Forms; + +namespace Nifscan +{ + public partial class FormEC : Form + { + public FormEC() + { + InitializeComponent(); + comboBox1.SelectedIndex = FormMain.ecShaderType; + checkBox1.Checked = FormMain.ecColor; + checkBox2.Checked = FormMain.ecMultiple; + numericUpDown1.Value = (decimal)FormMain.ecR; + numericUpDown2.Value = (decimal)FormMain.ecG; + numericUpDown3.Value = (decimal)FormMain.ecB; + numericUpDown4.Value = (decimal)FormMain.ecM; + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + FormMain.ecShaderType = comboBox1.SelectedIndex; + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + FormMain.ecColor = checkBox1.Checked; + numericUpDown1.Enabled = checkBox1.Checked; + numericUpDown2.Enabled = checkBox1.Checked; + numericUpDown3.Enabled = checkBox1.Checked; + changeButton(); + } + + private void checkBox2_CheckedChanged(object sender, EventArgs e) + { + FormMain.ecMultiple = checkBox2.Checked; + numericUpDown4.Enabled = checkBox2.Checked; + changeButton(); + } + + private void numericUpDown1_ValueChanged(object sender, EventArgs e) + { + FormMain.ecR = (float)numericUpDown1.Value; + } + + private void numericUpDown2_ValueChanged(object sender, EventArgs e) + { + FormMain.ecG = (float)numericUpDown2.Value; + } + + private void numericUpDown3_ValueChanged(object sender, EventArgs e) + { + FormMain.ecB = (float)numericUpDown3.Value; + } + + private void numericUpDown4_ValueChanged(object sender, EventArgs e) + { + FormMain.ecM = (float)numericUpDown4.Value; + } + + private void changeButton() + { + FormMain.formMain.buttonColorEC(checkBox1.Checked || checkBox2.Checked); + } + } +} diff --git a/Nifscan/FormEC.resx b/Nifscan/FormEC.resx new file mode 100644 index 0000000..e8ae276 --- /dev/null +++ b/Nifscan/FormEC.resx @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/Nifscan/FormMain.Designer.cs b/Nifscan/FormMain.Designer.cs new file mode 100644 index 0000000..ddcf918 --- /dev/null +++ b/Nifscan/FormMain.Designer.cs @@ -0,0 +1,475 @@ +namespace Nifscan +{ + partial class FormMain + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.CheckBox checkBox10; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox checkBox4; + private System.Windows.Forms.CheckBox checkBox5; + private System.Windows.Forms.CheckBox checkBox6; + private System.Windows.Forms.CheckBox checkBox7; + private System.Windows.Forms.CheckBox checkBox8; + private System.Windows.Forms.CheckBox checkBox9; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.TextBox textBox3; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain)); + this.button1 = new System.Windows.Forms.Button(); + this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.checkBox5 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.button3 = new System.Windows.Forms.Button(); + this.label13 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.checkBox6 = new System.Windows.Forms.CheckBox(); + this.checkBox8 = new System.Windows.Forms.CheckBox(); + this.checkBox7 = new System.Windows.Forms.CheckBox(); + this.checkBox9 = new System.Windows.Forms.CheckBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.checkBox10 = new System.Windows.Forms.CheckBox(); + this.button6 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button1.Location = new System.Drawing.Point(300, 279); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(53, 35); + this.button1.TabIndex = 17; + this.button1.Text = "Path"; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // checkBox1 + // + this.checkBox1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox1.Location = new System.Drawing.Point(10, 8); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(115, 25); + this.checkBox1.TabIndex = 0; + this.checkBox1.Text = "Debug Info"; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // textBox1 + // + this.textBox1.Enabled = false; + this.textBox1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.textBox1.Location = new System.Drawing.Point(195, 125); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(216, 22); + this.textBox1.TabIndex = 8; + // + // textBox2 + // + this.textBox2.Enabled = false; + this.textBox2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.textBox2.Location = new System.Drawing.Point(195, 154); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(216, 22); + this.textBox2.TabIndex = 9; + // + // checkBox3 + // + this.checkBox3.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox3.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox3.Location = new System.Drawing.Point(10, 48); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(115, 25); + this.checkBox3.TabIndex = 1; + this.checkBox3.Text = "Resort Blocks"; + // + // checkBox5 + // + this.checkBox5.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox5.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox5.Location = new System.Drawing.Point(10, 138); + this.checkBox5.Name = "checkBox5"; + this.checkBox5.Size = new System.Drawing.Size(179, 25); + this.checkBox5.TabIndex = 7; + this.checkBox5.Text = "Replace collision material:"; + this.checkBox5.CheckedChanged += new System.EventHandler(this.checkBox5_CheckedChanged); + // + // checkBox2 + // + this.checkBox2.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBox2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox2.Location = new System.Drawing.Point(267, 8); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(145, 25); + this.checkBox2.TabIndex = 3; + this.checkBox2.Text = "Show Collision"; + this.checkBox2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // checkBox4 + // + this.checkBox4.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox4.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox4.Location = new System.Drawing.Point(174, 48); + this.checkBox4.Name = "checkBox4"; + this.checkBox4.Size = new System.Drawing.Size(105, 25); + this.checkBox4.TabIndex = 2; + this.checkBox4.Text = "Use Fixes"; + this.checkBox4.CheckedChanged += new System.EventHandler(this.checkBox4_CheckedChanged); + // + // label1 + // + this.label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label1.Location = new System.Drawing.Point(0, 181); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(422, 2); + this.label1.TabIndex = 0; + // + // label11 + // + this.label11.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label11.Location = new System.Drawing.Point(0, 78); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(422, 2); + this.label11.TabIndex = 0; + // + // label12 + // + this.label12.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label12.Location = new System.Drawing.Point(0, 38); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(422, 2); + this.label12.TabIndex = 0; + // + // button3 + // + this.button3.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button3.Location = new System.Drawing.Point(159, 84); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(103, 30); + this.button3.TabIndex = 5; + this.button3.Text = "Parallax"; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // label13 + // + this.label13.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label13.Location = new System.Drawing.Point(0, 118); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(422, 2); + this.label13.TabIndex = 0; + // + // label14 + // + this.label14.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label14.Location = new System.Drawing.Point(7, 183); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(149, 20); + this.label14.TabIndex = 0; + this.label14.Text = "Shader Flags 1:"; + this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label15 + // + this.label15.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label15.Location = new System.Drawing.Point(0, 273); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(422, 2); + this.label15.TabIndex = 0; + // + // button2 + // + this.button2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button2.Location = new System.Drawing.Point(359, 279); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(53, 35); + this.button2.TabIndex = 18; + this.button2.Text = "Run"; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // textBox3 + // + this.textBox3.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.textBox3.Location = new System.Drawing.Point(10, 285); + this.textBox3.Name = "textBox3"; + this.textBox3.ReadOnly = true; + this.textBox3.Size = new System.Drawing.Size(282, 22); + this.textBox3.TabIndex = 16; + // + // button4 + // + this.button4.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button4.Location = new System.Drawing.Point(9, 84); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(125, 30); + this.button4.TabIndex = 4; + this.button4.Text = "Emissive Color"; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button5.Location = new System.Drawing.Point(287, 84); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(125, 30); + this.button5.TabIndex = 6; + this.button5.Text = "Vertex Colors"; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // checkBox6 + // + this.checkBox6.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox6.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox6.Location = new System.Drawing.Point(10, 206); + this.checkBox6.Name = "checkBox6"; + this.checkBox6.Size = new System.Drawing.Size(55, 20); + this.checkBox6.TabIndex = 10; + this.checkBox6.Text = "Add"; + this.checkBox6.CheckedChanged += new System.EventHandler(this.checkBox6_CheckedChanged); + // + // checkBox8 + // + this.checkBox8.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox8.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox8.Location = new System.Drawing.Point(10, 252); + this.checkBox8.Name = "checkBox8"; + this.checkBox8.Size = new System.Drawing.Size(55, 20); + this.checkBox8.TabIndex = 13; + this.checkBox8.Text = "Add"; + this.checkBox8.CheckedChanged += new System.EventHandler(this.checkBox8_CheckedChanged); + // + // checkBox7 + // + this.checkBox7.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox7.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox7.Location = new System.Drawing.Point(71, 206); + this.checkBox7.Name = "checkBox7"; + this.checkBox7.Size = new System.Drawing.Size(80, 20); + this.checkBox7.TabIndex = 11; + this.checkBox7.Text = "Remove"; + this.checkBox7.CheckedChanged += new System.EventHandler(this.checkBox7_CheckedChanged); + // + // checkBox9 + // + this.checkBox9.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox9.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox9.Location = new System.Drawing.Point(71, 252); + this.checkBox9.Name = "checkBox9"; + this.checkBox9.Size = new System.Drawing.Size(80, 20); + this.checkBox9.TabIndex = 14; + this.checkBox9.Text = "Remove"; + this.checkBox9.CheckedChanged += new System.EventHandler(this.checkBox9_CheckedChanged); + // + // label2 + // + this.label2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label2.Location = new System.Drawing.Point(7, 229); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(149, 20); + this.label2.TabIndex = 0; + this.label2.Text = "Shader Flags 2:"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label3 + // + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label3.Location = new System.Drawing.Point(0, 227); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(422, 2); + this.label3.TabIndex = 0; + // + // comboBox1 + // + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "Specular", + "Skinned", + "Temp_Refraction", + "Vertex_Alpha", + "Greyscale_To_PaletteColor", + "Greyscale_To_PaletteAlpha", + "Use_Falloff", + "Environment_Mapping", + "Recieve_Shadows", + "Cast_Shadows", + "Facegen_Detail_Map", + "Parallax", + "Model_Space_Normals", + "Non_Projective_Shadows", + "Landscape", + "Refraction", + "Fire_Refraction", + "Eye_Environment_Mapping", + "Hair_Soft_Lighting", + "Screendoor_Alpha_Fade", + "Localmap_Hide_Secret", + "FaceGen_RGB_Tint", + "Own_Emit", + "Projected_UV", + "Multiple_Textures", + "Remappable_Textures", + "Decal", + "Dynamic_Decal", + "Parallax_Occlusion", + "External_Emittance", + "Soft_Effect", + "ZBuffer_Test"}); + this.comboBox1.Location = new System.Drawing.Point(157, 194); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(254, 21); + this.comboBox1.TabIndex = 12; + // + // comboBox2 + // + this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Items.AddRange(new object[] { + "ZBuffer_Write", + "LOD_Landscape", + "LOD_Objects", + "No_Fade", + "Double_Sided", + "Vertex_Colors", + "Glow_Map", + "Assume_Shadowmask", + "Packed_Tangent", + "Multi_Index_Snow", + "Vertex_Lighting", + "Uniform_Scale", + "Fit_Slope", + "Billboard", + "No_LOD_Land_Blend", + "EnvMap_Light_Fade", + "Wireframe", + "Weapon_Blood", + "Hide_On_Local_Map", + "Premult_Alpha", + "Cloud_LOD", + "Anisotropic_Lighting", + "No_Transparency_Multisampling", + "Unused01", + "Multi_Layer_Parallax", + "Soft_Lighting", + "Rim_Lighting", + "Back_Lighting", + "Unused02", + "Tree_Anim", + "Effect_Lighting", + "HD_LOD_Objects"}); + this.comboBox2.Location = new System.Drawing.Point(157, 240); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(254, 21); + this.comboBox2.TabIndex = 15; + // + // checkBox10 + // + this.checkBox10.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBox10.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox10.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox10.Location = new System.Drawing.Point(267, 48); + this.checkBox10.Name = "checkBox10"; + this.checkBox10.Size = new System.Drawing.Size(145, 25); + this.checkBox10.TabIndex = 3; + this.checkBox10.Text = "Skin Color"; + this.checkBox10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // button6 + // + this.button6.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button6.Location = new System.Drawing.Point(159, 4); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(103, 30); + this.button6.TabIndex = 5; + this.button6.Text = "X Y Z"; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // FormMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(421, 318); + this.Controls.Add(this.comboBox2); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.label3); + this.Controls.Add(this.label15); + this.Controls.Add(this.label13); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.button6); + this.Controls.Add(this.button3); + this.Controls.Add(this.label12); + this.Controls.Add(this.label11); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label2); + this.Controls.Add(this.label14); + this.Controls.Add(this.checkBox4); + this.Controls.Add(this.checkBox3); + this.Controls.Add(this.checkBox5); + this.Controls.Add(this.checkBox10); + this.Controls.Add(this.checkBox2); + this.Controls.Add(this.checkBox8); + this.Controls.Add(this.checkBox9); + this.Controls.Add(this.checkBox7); + this.Controls.Add(this.checkBox6); + this.Controls.Add(this.checkBox1); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "FormMain"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Nifscan"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + } +} + diff --git a/Nifscan/FormMain.cs b/Nifscan/FormMain.cs new file mode 100644 index 0000000..546ed48 --- /dev/null +++ b/Nifscan/FormMain.cs @@ -0,0 +1,2078 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Text; +using System.Windows.Forms; + +namespace Nifscan +{ + public partial class FormMain : Form + { + public static List texturesList = new List(); + public static bool fixesOn = false; + public static bool parallaxInvert = false; + public static bool parallaxCompare = false; + public static bool parallaxRemove = false; + public static bool parallaxAdd = false; + public static int ecShaderType = 21; + public static bool ecColor = false; + public static bool ecMultiple = false; + public static float ecR = 0; + public static float ecG = 0; + public static float ecB = 0; + public static float ecM = 0; + public static bool vcColor = false; + public static bool vcAlpha = false; + public static bool vcRemove = false; + public static float vcR = 0; + public static float vcG = 0; + public static float vcB = 0; + public static float vcA = 0; + public static bool verX = false; + public static bool verY = false; + public static bool verZ = false; + public static bool verXHard = false; + public static bool verYHard = false; + public static bool verZHard = false; + public static double verXval = 0; + public static double verYval = 0; + public static double verZval = 0; + public static bool verTrim = false; + public static int verTrimNum = 3; + internal static FormMain formMain = null; + List outLog = new List(); + List blocksSizeList = new List(); + List blocksStartList = new List(); + List sizeIndex = new List(); + byte[] bytesFile = null; + string tempPath = null; + string fileName = null; + bool fileChanged = false; + bool debugMode = false; + int blocksCount = 0; + int totalFiles = 0; + int successFiles = 0; + [Flags] + enum ShadeFlags1 : long + { + SLSF1_Specular = 1, + SLSF1_Skinned = 1 << 1, + SLSF1_Temp_Refraction = 1 << 2, + SLSF1_Vertex_Alpha = 1 << 3, + SLSF1_Greyscale_To_PaletteColor = 1 << 4, + SLSF1_Greyscale_To_PaletteAlpha = 1 << 5, + SLSF1_Use_Falloff = 1 << 6, + SLSF1_Environment_Mapping = 1 << 7, + SLSF1_Recieve_Shadows = 1 << 8, + SLSF1_Cast_Shadows = 1 << 9, + SLSF1_Facegen_Detail_Map = 1 << 10, + SLSF1_Parallax = 1 << 11, + SLSF1_Model_Space_Normals = 1 << 12, + SLSF1_Non_Projective_Shadows = 1 << 13, + SLSF1_Landscape = 1 << 14, + SLSF1_Refraction = 1 << 15, + SLSF1_Fire_Refraction = 1 << 16, + SLSF1_Eye_Environment_Mapping = 1 << 17, + SLSF1_Hair_Soft_Lighting = 1 << 18, + SLSF1_Screendoor_Alpha_Fade = 1 << 19, + SLSF1_Localmap_Hide_Secret = 1 << 20, + SLSF1_FaceGen_RGB_Tint = 1 << 21, + SLSF1_Own_Emit = 1 << 22, + SLSF1_Projected_UV = 1 << 23, + SLSF1_Multiple_Textures = 1 << 24, + SLSF1_Remappable_Textures = 1 << 25, + SLSF1_Decal = 1 << 26, + SLSF1_Dynamic_Decal = 1 << 27, + SLSF1_Parallax_Occlusion = 1 << 28, + SLSF1_External_Emittance = 1 << 29, + SLSF1_Soft_Effect = 1 << 30, + SLSF1_ZBuffer_Test = (long)(1 << 31) + }; + [Flags] + enum ShadeFlags2 : long + { + SLSF2_ZBuffer_Write = 1, + SLSF2_LOD_Landscape = 1 << 1, + SLSF2_LOD_Objects = 1 << 2, + SLSF2_No_Fade = 1 << 3, + SLSF2_Double_Sided = 1 << 4, + SLSF2_Vertex_Colors = 1 << 5, + SLSF2_Glow_Map = 1 << 6, + SLSF2_Assume_Shadowmask = 1 << 7, + SLSF2_Packed_Tangent = 1 << 8, + SLSF2_Multi_Index_Snow = 1 << 9, + SLSF2_Vertex_Lighting = 1 << 10, + SLSF2_Uniform_Scale = 1 << 11, + SLSF2_Fit_Slope = 1 << 12, + SLSF2_Billboard = 1 << 13, + SLSF2_No_LOD_Land_Blend = 1 << 14, + SLSF2_EnvMap_Light_Fade = 1 << 15, + SLSF2_Wireframe = 1 << 16, + SLSF2_Weapon_Blood = 1 << 17, + SLSF2_Hide_On_Local_Map = 1 << 18, + SLSF2_Premult_Alpha = 1 << 19, + SLSF2_Cloud_LOD = 1 << 20, + SLSF2_Anisotropic_Lighting = 1 << 21, + SLSF2_No_Transparency_Multisampling = 1 << 22, + SLSF2_Unused01 = 1 << 23, + SLSF2_Multi_Layer_Parallax = 1 << 24, + SLSF2_Soft_Lighting = 1 << 25, + SLSF2_Rim_Lighting = 1 << 26, + SLSF2_Back_Lighting = 1 << 27, + SLSF2_Unused02 = 1 << 28, + SLSF2_Tree_Anim = 1 << 29, + SLSF2_Effect_Lighting = 1 << 30, + SLSF2_HD_LOD_Objects = (long)(1 << 31) + } + [Flags] + enum VectorFlags : uint + { + Has_UV = 1, + Unk2 = 1 << 1, + Unk4 = 1 << 2, + Unk8 = 1 << 3, + Unk16 = 1 << 4, + Unk32 = 1 << 5, + Unk64 = 1 << 6, + Unk128 = 1 << 7, + Unk256 = 1 << 8, + Unk512 = 1 << 9, + Unk1024 = 1 << 10, + Unk2048 = 1 << 11, + Has_Tangents = 1 << 12, + Unk8192 = 1 << 13, + Unk16384 = 1 << 14, + Unk32768 = 1 << 15 + } + + public FormMain() + { + InitializeComponent(); + formMain = this; + } + + private void button1_Click(object sender, EventArgs e) + { + if (tempPath == null) + { + folderBrowserDialog1.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); + } + else + { + folderBrowserDialog1.SelectedPath = tempPath; + } + DialogResult result = folderBrowserDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + tempPath = folderBrowserDialog1.SelectedPath; + textBox3.Text = tempPath; + } + } + + private void button2_Click(object sender, System.EventArgs e) + { + if (Directory.Exists(tempPath)) + { + button2.Enabled = false; + foreach (string line in Directory.EnumerateFiles(tempPath, "*.nif", SearchOption.AllDirectories)) + { + currentFile(line); + totalFiles++; + blocksSizeList.Clear(); + blocksStartList.Clear(); + sizeIndex.Clear(); + blocksCount = 0; + bytesFile = null; + fileName = null; + fileChanged = false; + } + outLog.Insert(0, "TOTAL FOUND " + totalFiles.ToString() + " FILES, " + "SUCCESS PROCESSING " + successFiles.ToString() + " FILES"); + File.WriteAllLines(AppDomain.CurrentDomain.BaseDirectory + "NifScan.log", outLog, new UTF8Encoding(false)); + outLog.Clear(); + totalFiles = 0; + successFiles = 0; + button2.Enabled = true; + } + } + + private void currentFile(string path) + { + if (File.Exists(path)) + { + List blocksTypesList = new List(); + List blocksNamesList = new List(); + List stringsList = new List(); + List groupsList = new List(); + outLog.Add(""); + outLog.Add("PROCESS FILE: " + path); + fileName = Path.GetFileName(path); + int fileSize = (int)new FileInfo(path).Length; + if (fileSize < 200) + { + outLog.Add("WARNING! FILE TO SMALL: " + fileName); + return; + } + bytesFile = new byte[fileSize]; + FileStream fs = File.OpenRead(path); + fs.Read(bytesFile, 0, fileSize); + fs.Close(); + string headerError = null; + bool exportInfo = false; + bool blocksType = false; + bool blocksListFull = false; + bool blocksCountFull = false; + bool blocksSizeFull = false; + bool stringsCount = false; + bool maxStringLength = false; + bool stringsFull = false; + bool groupsCount = false; + bool groupsFull = false; + int exportInfoLines = 0; + int blocksTypeCount = 0; + int maxLengthString = 0; + int numGroups = 0; + int numStrings = 0; + int blockStart = 0; + if (bytesFile[39] != 7 || bytesFile[41] != 2 || bytesFile[42] != 20 || bytesFile[44] != 12 || (bytesFile[52] != 83 && bytesFile[52] != 32)) + { + outLog.Add("WARNING! FILE VERSION UNSUPPORTED: " + fileName); + return; + } + try + { + blocksCount = (int)BitConverter.ToUInt32(bytesFile, 48); + if (blocksCount < 1) + { + outLog.Add("WARNING! FILE NOT HAVE BLOCKS OR FILE ERROR"); + return; + } + for (int i = 56; i < bytesFile.Length; i++) + { + if (!exportInfo) + { + i += bytesFile[i]; + exportInfoLines++; + if (exportInfoLines == 3) + { + exportInfo = true; + } + } + else if (!blocksType && exportInfo) + { + blocksTypeCount = BitConverter.ToUInt16(bytesFile, i); + i++; + blocksType = true; + } + else if (!blocksListFull && blocksType) + { + int length = (int)BitConverter.ToUInt32(bytesFile, i); + i += 3; + string word = null; + while (length != 0) + { + i++; + word += Convert.ToChar(bytesFile[i]).ToString(); + length--; + } + blocksTypesList.Add(word); + if (blocksTypeCount == blocksTypesList.Count) + { + blocksListFull = true; + } + } + else if (!blocksCountFull && blocksListFull) + { + blocksNamesList.Add(blocksTypesList[(BitConverter.ToUInt16(bytesFile, i))]); + i++; + if (blocksCount == blocksNamesList.Count) + { + blocksCountFull = true; + } + } + else if (!blocksSizeFull && blocksCountFull) + { + int size = (int)BitConverter.ToUInt32(bytesFile, i); + sizeIndex.Add(i); + i += 3; + blocksSizeList.Add(size); + blocksStartList.Add(blockStart); + blockStart += size; + if (blocksCount == blocksSizeList.Count) + { + blocksSizeFull = true; + } + } + else if (!stringsCount && blocksSizeFull) + { + numStrings = (int)BitConverter.ToUInt32(bytesFile, i); + i += 3; + stringsCount = true; + } + else if (!maxStringLength && stringsCount) + { + maxLengthString = (int)BitConverter.ToUInt32(bytesFile, i); + i += 3; + maxStringLength = true; + } + else if (!stringsFull && maxStringLength) + { + int length = (int)BitConverter.ToUInt32(bytesFile, i); + i += 3; + string word = null; + while (length != 0) + { + i++; + word += Convert.ToChar(bytesFile[i]).ToString(); + length--; + } + stringsList.Add(word); + if (numStrings == stringsList.Count) + { + stringsFull = true; + } + } + else if (!groupsCount && stringsFull) + { + numGroups = (int)BitConverter.ToUInt32(bytesFile, i); + i += 3; + groupsCount = true; + if (numGroups == 0) + { + groupsFull = true; + } + } + else if (!groupsFull && groupsCount) + { + groupsList.Add(BitConverter.ToUInt32(bytesFile, i)); + i += 3; + if (numGroups == groupsList.Count) + { + groupsFull = true; + } + } + else if (groupsFull) + { + for (int j = 0; j < blocksStartList.Count; j++) + { + blocksStartList[j] = blocksStartList[j] + i; + } + if (debugMode) + { + outLog.Add("blocksTypeCount " + blocksTypeCount); + outLog.Add("blocksCount " + blocksCount); + outLog.Add("maxLengthString " + maxLengthString); + outLog.Add("numStrings " + numStrings); + outLog.Add("numGroups " + numGroups); + outLog.Add(""); + outLog.Add("BLOCKS TYPE:"); + outLog.AddRange(blocksTypesList); + outLog.Add(""); + outLog.Add("BLOCKS LIST:"); + for (int l = 0; l < blocksNamesList.Count; l++) + { + outLog.Add(blocksNamesList[l] + " START: " + blocksStartList[l].ToString() + " SIZE: " + blocksSizeList[l]); + + } + outLog.Add(""); + outLog.Add("STRINGS LIST:"); + outLog.AddRange(stringsList); + outLog.Add(""); + outLog.Add("GROUP LIST:"); + if (numGroups != 0) + { + for (int l = 0; l < groupsList.Count; l++) + { + outLog.Add(groupsList[l].ToString()); + } + } + outLog.Add(""); + } + break; + } + } + } + catch (Exception e) + { + headerError = e.Message; + } + if (headerError == null) + { + if (blocksNamesList.Contains("NiTriStrips")) + { + outLog.Add("WARNING! MESH HAVE NITRISTRIPS: " + fileName); + } + for (int i = 0; i < blocksNamesList.Count; i++) + { + int realBlockStart = blocksStartList[i]; + if (blocksNamesList[i] == "BSXFlags") + { + int flag = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + outLog.Add("Have BSXFlags: " + flag.ToString() + " " + fileName); + } + else if (blocksNamesList[i] == "NiNode" || blocksNamesList[i] == "AvoidNode" || blocksNamesList[i] == "BSFadeNode" || blocksNamesList[i] == "BSLeafAnimNode" || blocksNamesList[i] == "RootCollisionNode" || blocksNamesList[i] == "NiBSAnimationNode" || blocksNamesList[i] == "NiBSParticleNode" || blocksNamesList[i] == "NiBone") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4); + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "BSBlastNode" || blocksNamesList[i] == "BSDamageStage" || blocksNamesList[i] == "BSDebrisNode" || blocksNamesList[i] == "BSRangeNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 3; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "BSMasterParticleSystem") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 2; + int jump4 = jump3 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump3) * 4); + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump4, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "BSMultiBoundNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 8; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "BSOrderedNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 17; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "BSTreeNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4); + int jump4 = jump3 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump3) * 4); + int jump5 = jump4 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump4) * 4); + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump5, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "BSValueNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 5; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "FxButton" || blocksNamesList[i] == "FxWidget") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 293; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "FxRadioButton") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 305; + int jump4 = jump3 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump3) * 4); + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump4, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "NiBillboardNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 2; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "NiLODNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 10; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "NiRoom") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4); + int jump4 = jump3 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump3) * 16); + int jump5 = jump4 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump4) * 4); + int jump6 = jump5 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump5) * 4); + int jump7 = jump6 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump6) * 4); + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump7, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "NiRoomGroup") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 4; + int jump4 = jump3 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump3) * 4); + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump4, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "NiSortAdjustNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 4; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i] == "NiSwitchNode") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int childs = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (childs * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4) + 6; + sortBlocks(realBlockStart, jump, childs, realBlockStart + blocksSizeList[i], jump3, i, blocksNamesList[i]); + } + else if (blocksNamesList[i].StartsWith("bhk")) + { + if (blocksNamesList[i] == "bhkRigidBody" || blocksNamesList[i] == "bhkRigidBodyT") + { + if (bytesFile[realBlockStart + 4] != bytesFile[realBlockStart + 36]) + { + outLog.Add("WARNING! COLLISION LAYERS NOT MATCH: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if (BitConverter.ToSingle(bytesFile, realBlockStart + 192) != 1 || BitConverter.ToSingle(bytesFile, realBlockStart + 196) != 1) + { + outLog.Add("WARNING! COLLISION FACTORS NOT EQUAL ONE: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + } + if (blocksNamesList[i] == "bhkConvexVerticesShape") + { + int jump = realBlockStart + 32; + int vertices = (int)BitConverter.ToUInt32(bytesFile, jump); + int jump2 = jump + 4 + (vertices * 16); + int normals = (int)BitConverter.ToUInt32(bytesFile, jump2); + bool zero = true; + jump2 += 4; + for (int j = 0; j < normals; j++) + { + float n1 = BitConverter.ToSingle(bytesFile, jump2); + jump2 += 4; + float n2 = BitConverter.ToSingle(bytesFile, jump2); + jump2 += 4; + float n3 = BitConverter.ToSingle(bytesFile, jump2); + jump2 += 8; + if (n1 != 0 || n2 != 0 || n3 != 0) + { + zero = false; + break; + } + } + if (zero) + { + outLog.Add("WARNING! ALL COLLISION NORMALS EQUAL ZERO: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + } + if (checkBox2.Checked || checkBox5.Checked) + { + if (blocksNamesList[i] == "bhkBoxShape" || blocksNamesList[i] == "bhkNiTriStripsShape" || blocksNamesList[i] == "bhkSphereShape" || blocksNamesList[i] == "bhkConvexVerticesShape" || blocksNamesList[i] == "bhkCapsuleShape") + { + checkCollisions(realBlockStart, BitConverter.ToUInt32(bytesFile, realBlockStart)); + } + else if (blocksNamesList[i] == "bhkConvexTransformShape" || blocksNamesList[i] == "bhkConvexSweepShape" || blocksNamesList[i] == "bhkTransformShape") + { + checkCollisions(realBlockStart + 4, BitConverter.ToUInt32(bytesFile, realBlockStart + 4)); + } + else if (blocksNamesList[i] == "bhkListShape" || blocksNamesList[i] == "bhkConvexListShape") + { + int jump = realBlockStart + 4 + ((int)BitConverter.ToUInt32(bytesFile, realBlockStart) * 4); + checkCollisions(jump, BitConverter.ToUInt32(bytesFile, jump)); + } + else if (blocksNamesList[i] == "bhkCompressedMeshShapeData") + { + int jump1 = realBlockStart + 58 + ((int)BitConverter.ToUInt32(bytesFile, realBlockStart + 54) * 4); + int jump2 = jump1 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump1) * 4); + int jump3 = jump2 + 4 + ((int)BitConverter.ToUInt32(bytesFile, jump2) * 4); + int count = bytesFile[jump3]; + jump3 += 4; + for (int j = 0; j < count; j++) + { + checkCollisions(jump3, BitConverter.ToUInt32(bytesFile, jump3)); + jump3 += 8; + } + } + } + } + else if (blocksNamesList[i] == "NiTriShape" || blocksNamesList[i] == "BSLODTriShape") + { + int extra = (int)BitConverter.ToUInt32(bytesFile, realBlockStart + 4); + extraCheck(realBlockStart + 8, extra, i, blocksNamesList[i]); + int jump = realBlockStart + 72 + (extra * 4); + int dataBlock = (int)BitConverter.ToUInt32(bytesFile, jump); + jump += 4; + int skinBlock = (int)BitConverter.ToUInt32(bytesFile, jump); + jump += 4; + int jump2 = jump + 9 + ((int)BitConverter.ToUInt32(bytesFile, jump) * 8); + int shaderBlock = (int)BitConverter.ToUInt32(bytesFile, jump2); + int alphaBlock = (int)BitConverter.ToUInt32(bytesFile, jump2 + 4); + int lods = 0; + if (blocksNamesList[i] == "BSLODTriShape") + { + lods += (int)BitConverter.ToUInt32(bytesFile, jump2 + 8); + lods += (int)BitConverter.ToUInt32(bytesFile, jump2 + 12); + lods += (int)BitConverter.ToUInt32(bytesFile, jump2 + 16); + } + int numVertices = 0; + int vcStart = 0; + int vcYesNo = 0; + bool hasTangents = false; + bool hasNormals = false; + bool hasVColors = false; + bool vcEmpty = vcRemove; + if (((blocksNamesList[i] == "NiTriShape" && (realBlockStart + blocksSizeList[i]) == (jump2 + 8)) || (blocksNamesList[i] == "BSLODTriShape" && (realBlockStart + blocksSizeList[i]) == (jump2 + 20))) && (dataBlock >= -1 && dataBlock < blocksCount) && (skinBlock >= -1 && skinBlock < blocksCount) && (shaderBlock >= -1 && shaderBlock < blocksCount) && (alphaBlock >= -1 && alphaBlock < blocksCount)) + { + if ((dataBlock != -1 && blocksNamesList[dataBlock] != "NiTriShapeData" && blocksNamesList[dataBlock] != "NiTriStripsData") || (skinBlock != -1 && blocksNamesList[skinBlock] != "NiSkinInstance" && blocksNamesList[skinBlock] != "BSDismemberSkinInstance") || (shaderBlock != -1 && blocksNamesList[shaderBlock] != "BSLightingShaderProperty" && blocksNamesList[shaderBlock] != "BSEffectShaderProperty" && blocksNamesList[shaderBlock] != "BSWaterShaderProperty" && blocksNamesList[shaderBlock] != "BSSkyShaderProperty") || (alphaBlock != -1 && blocksNamesList[alphaBlock] != "NiAlphaProperty")) + { + outLog.Add("WARNING! INCORRECT BLOCKS LINKS: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if (dataBlock != -1) + { + if ((i + 1 + extra) != dataBlock) + { + outLog.Add("WARNING! NEED REORDER: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if (blocksNamesList[dataBlock] == "NiTriStripsData") + { + outLog.Add("WARNING! MESH HAVE NITRISTRIPSDATA: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if (blocksNamesList[dataBlock] == "NiTriShapeData") + { + realBlockStart = blocksStartList[dataBlock]; + int jump3 = realBlockStart + 4; + numVertices = BitConverter.ToUInt16(bytesFile, jump3); + jump3 += 4; + if (bytesFile[jump3] == 1 && (verTrim || verX || verY || verZ)) + { + jump3++; + for (int j = 0; j < numVertices; j++) + { + if (verTrim) + { + double vertice = (double)BitConverter.ToSingle(bytesFile, jump3); + verticesTrim(jump3, (double)Math.Round(vertice, 6)); + } + if (verXHard) + { + replaceBytesInFile(jump3, BitConverter.GetBytes((float)verXval)); + } + else if (verX) + { + replaceBytesInFile(jump3, BitConverter.GetBytes(BitConverter.ToSingle(bytesFile, jump3) + (float)verXval)); + } + jump3 += 4; + if (verTrim) + { + double vertice = (double)BitConverter.ToSingle(bytesFile, jump3); + verticesTrim(jump3, (double)Math.Round(vertice, 6)); + } + if (verYHard) + { + replaceBytesInFile(jump3, BitConverter.GetBytes((float)verYval)); + } + else if (verY) + { + replaceBytesInFile(jump3, BitConverter.GetBytes(BitConverter.ToSingle(bytesFile, jump3) + (float)verYval)); + } + jump3 += 4; + if (verTrim) + { + double vertice = (double)BitConverter.ToSingle(bytesFile, jump3); + verticesTrim(jump3, (double)Math.Round(vertice, 6)); + } + if (verZHard) + { + replaceBytesInFile(jump3, BitConverter.GetBytes((float)verZval)); + } + else if (verZ) + { + replaceBytesInFile(jump3, BitConverter.GetBytes(BitConverter.ToSingle(bytesFile, jump3) + (float)verZval)); + } + jump3 += 4; + } + } + else + { + jump3++; + jump3 += numVertices * 12; + } + long convert = BitConverter.ToUInt16(bytesFile, jump3); + hasTangents = ((VectorFlags)convert & VectorFlags.Has_Tangents) != 0; + bool hasUV = ((VectorFlags)convert & VectorFlags.Has_UV) != 0; + jump3 += 6; + if (bytesFile[jump3] == 1) + { + hasNormals = true; + jump3 += numVertices * 12; + if (hasTangents) + { + jump3 += numVertices * 24; + } + } + if (shaderBlock != -1 && ((hasTangents && !hasNormals) || (!hasTangents && hasNormals))) + { + outLog.Add("WARNING! TANGENTS NOT WORK: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + jump3 += 17; + if (bytesFile[jump3] == 1) + { + vcYesNo = jump3; + jump3 = jump3 + (numVertices * 16); + hasVColors = true; + if (checkBox4.Checked || vcRemove || vcColor || vcAlpha) + { + int jump4 = vcYesNo + 1; + vcStart = jump4; + for (int j = 0; j < numVertices; j++) + { + if (checkBox4.Checked || vcRemove) + { + float c1 = floatRoundUp(jump4); + jump4 += 4; + float c2 = floatRoundUp(jump4); + jump4 += 4; + float c3 = floatRoundUp(jump4); + jump4 += 4; + float c4 = floatRoundUp(jump4); + jump4 += 4; + if (vcRemove && (c1 < 0.9 || c2 < 0.9 || c3 < 0.9 || c4 < 0.9)) + { + vcEmpty = false; + if (!checkBox4.Checked) + { + break; + } + } + } + else + { + if (vcColor) + { + replaceBytesInFile(jump4, BitConverter.GetBytes(vcR)); + jump4 += 4; + replaceBytesInFile(jump4, BitConverter.GetBytes(vcG)); + jump4 += 4; + replaceBytesInFile(jump4, BitConverter.GetBytes(vcB)); + jump4 += 4; + } + else + { + jump4 += 12; + } + if (vcAlpha) + { + replaceBytesInFile(jump4, BitConverter.GetBytes(vcA)); + } + jump4 += 4; + } + } + } + } + jump3++; + if (hasUV) + { + jump3 += numVertices * 8; + } + int triangles = BitConverter.ToUInt16(bytesFile, jump3 + 6); + if (numVertices > 0 && triangles < 1) + { + outLog.Add("WARNING! NO TRIANGLES: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if (blocksNamesList[i] == "BSLODTriShape" && triangles < lods) + { + outLog.Add("WARNING! LODS MORE TRIANGLES: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + jump3 = jump3 + 12; + if (bytesFile[jump3] == 1) + { + jump3 = jump3 + (triangles * 6); + } + jump3++; + int match = BitConverter.ToUInt16(bytesFile, jump3); + jump3 = jump3 + 2; + if (match > 0) + { + for (int j = 0; j < match; j++) + { + jump3 = jump3 + 2 + (BitConverter.ToUInt16(bytesFile, jump3) * 2); + } + } + if ((realBlockStart + blocksSizeList[dataBlock]) != jump3) + { + outLog.Add("WARNING! ERROR PARS: " + blocksNamesList[dataBlock] + " (" + dataBlock.ToString() + ") " + fileName); + } + } + } + if (shaderBlock != -1 && blocksNamesList[shaderBlock] == "BSLightingShaderProperty") + { + realBlockStart = blocksStartList[shaderBlock]; + int jump3 = realBlockStart + 16 + ((int)BitConverter.ToUInt32(bytesFile, realBlockStart + 8) * 4); + if (jump3 > realBlockStart && (realBlockStart + blocksSizeList[shaderBlock]) > jump3) + { + long shaderFlags1 = BitConverter.ToUInt32(bytesFile, jump3); + bool hasParallaxFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Parallax) != 0; + bool hasCastShadowFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Cast_Shadows) != 0; + bool hasDecalFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Decal) != 0; + bool hasRefractionFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Refraction) != 0; + bool hasSkinFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Skinned) != 0; + bool hasSpaceNormalsFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Model_Space_Normals) != 0; + bool hasVAlphaFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Vertex_Alpha) != 0; + bool hasEnvMapFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Environment_Mapping) != 0; + bool hasEyeEnvMapFlag = ((ShadeFlags1)shaderFlags1 & ShadeFlags1.SLSF1_Eye_Environment_Mapping) != 0; + int textureSetBlock = (int)BitConverter.ToUInt32(bytesFile, jump3 + 24); + bool hasPTexture = false; + bool hasSTexture = false; + string normal = null; + if (textureSetBlock != -1) + { + int jump4 = blocksStartList[textureSetBlock]; + int num = (int)BitConverter.ToUInt32(bytesFile, jump4); + if (num != 9) + { + outLog.Add("WARNING! COUNT OF TEXTURES: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + jump4 += 4; + if (debugMode) + { + outLog.Add(""); + outLog.Add("TEXTURES LIST:"); + } + for (int j = 0; j < num; j++) + { + int length = (int)BitConverter.ToUInt32(bytesFile, jump4); + jump4 += 4; + string word = null; + while (length != 0) + { + word += Convert.ToChar(bytesFile[jump4]).ToString(); + jump4++; + length--; + } + if (j == 1 && !String.IsNullOrEmpty(word)) + { + normal = word; + } + else if (j == 2 && !String.IsNullOrEmpty(word)) + { + hasSTexture = true; + } + else if (j == 3 && !String.IsNullOrEmpty(word) && word.EndsWith("_p.dds", StringComparison.OrdinalIgnoreCase)) + { + if (parallaxCompare && !word.Remove(word.Length - 6).Equals(normal.Remove(normal.Length - 6), StringComparison.OrdinalIgnoreCase)) + { + outLog.Add("WARNING! _P TEXTURE NOT EQUAL _N: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + hasPTexture = true; + } + if (debugMode) + { + outLog.Add((j + 1).ToString() + " " + word); + } + } + } + if (parallaxAdd && normal != null && texturesList.Exists(s => s.Equals(normal, StringComparison.OrdinalIgnoreCase))) + { + if (!parallaxInvert && bytesFile[realBlockStart] == 0 && !hasParallaxFlag && skinBlock == -1) + { + bytesFile[realBlockStart] = 3; + shaderFlags1 += 2048; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + } + else if (parallaxInvert && bytesFile[realBlockStart] == 3 && hasParallaxFlag) + { + bytesFile[realBlockStart] = 0; + shaderFlags1 -= 2048; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + } + } + else if (parallaxRemove && (bytesFile[realBlockStart] == 3 || hasParallaxFlag)) + { + bytesFile[realBlockStart] = 0; + shaderFlags1 -= 2048; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + } + else if (((bytesFile[realBlockStart] == 3 && !hasParallaxFlag) || (bytesFile[realBlockStart] != 3 && hasParallaxFlag)) || ((bytesFile[realBlockStart] == 3 && hasParallaxFlag && (!hasPTexture || !hasVColors || !hasNormals || !hasTangents || skinBlock != -1))) || (hasPTexture && (bytesFile[realBlockStart] != 3 || !hasParallaxFlag))) + { + outLog.Add("WARNING! PARALLAX NOT WORK: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if (alphaBlock != -1 && hasCastShadowFlag && hasDecalFlag) + { + if (!checkBox4.Checked) + { + outLog.Add("WARNING! CAST SHADOW ALPHA DECAL: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + else + { + shaderFlags1 -= 512; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + } + } + if ((hasVAlphaFlag && (!hasVColors || (alphaBlock == -1 && !hasRefractionFlag)))) + { + if (!checkBox4.Checked) + { + outLog.Add("WARNING! ALPHA IN TREE AND ALPHA SHADER FLAG CONFLICT: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + else if (hasVAlphaFlag) + { + shaderFlags1 -= 8; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + } + } + if ((checkBox6.Checked || checkBox7.Checked) && comboBox1.SelectedIndex != -1) + { + if (((ShadeFlags1)shaderFlags1 & (ShadeFlags1)(1 << comboBox1.SelectedIndex)) != 0) + { + if (checkBox7.Checked) + { + shaderFlags1 -= 1 << comboBox1.SelectedIndex; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + } + } + else + { + if (checkBox6.Checked) + { + shaderFlags1 += 1 << comboBox1.SelectedIndex; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + } + } + } + if (checkBox4.Checked && hasEyeEnvMapFlag && bytesFile[realBlockStart] == 16) + { + bytesFile[realBlockStart] = 1; + shaderFlags1 -= 131072; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + hasEyeEnvMapFlag = false; + if (!hasEnvMapFlag) + { + shaderFlags1 += 128; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags1)); + hasEnvMapFlag = true; + } + int shaderTrimStart = realBlockStart + blocksSizeList[shaderBlock] - 24; + resizeByteArray(shaderTrimStart, 24, shaderBlock); + if (realBlockStart > shaderTrimStart) + { + realBlockStart -= 24; + } + if (jump3 > shaderTrimStart) + { + jump3 -= 24; + } + } + if ((hasEnvMapFlag && bytesFile[realBlockStart] != 1) || (!hasEnvMapFlag && bytesFile[realBlockStart] == 1) || (hasEyeEnvMapFlag && bytesFile[realBlockStart] != 16) || (!hasEyeEnvMapFlag && bytesFile[realBlockStart] == 16)) + { + outLog.Add("WARNING! ENVIRONMENT MAP SHADER TYPE AND FLAG CONFLICT: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if ((skinBlock != -1 && !hasSkinFlag) || (skinBlock == -1 && hasSkinFlag)) + { + outLog.Add("WARNING! SKIN IN TREE AND SKIN SHADER FLAG CONFLICT: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + jump3 += 4; + long shaderFlags2 = BitConverter.ToUInt32(bytesFile, jump3); + bool hasVCFlag = ((ShadeFlags2)shaderFlags2 & ShadeFlags2.SLSF2_Vertex_Colors) != 0; + bool hasGlowFlag = ((ShadeFlags2)shaderFlags2 & ShadeFlags2.SLSF2_Glow_Map) != 0; + bool hasSoftLightingFlag = ((ShadeFlags2)shaderFlags2 & ShadeFlags2.SLSF2_Soft_Lighting) != 0; + if (hasVColors && vcRemove && vcEmpty && (bytesFile[realBlockStart] == 0 || bytesFile[realBlockStart] == 1)) + { + if (hasVCFlag) + { + shaderFlags2 -= 32; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags2)); + hasVCFlag = false; + } + bytesFile[vcYesNo] = 0; + resizeByteArray(vcStart, numVertices * 16, dataBlock); + hasVColors = false; + if (realBlockStart > vcStart) + { + realBlockStart -= numVertices * 16; + } + if (jump3 > vcStart) + { + jump3 -= numVertices * 16; + } + } + if ((hasVCFlag && !hasVColors) || (!hasVCFlag && hasVColors)) + { + outLog.Add("WARNING! VERTEX COLORS FLAGS NOT MATCH: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if ((bytesFile[realBlockStart] == 2 && !hasGlowFlag) || (bytesFile[realBlockStart] != 2 && hasGlowFlag)) + { + outLog.Add("WARNING! GLOW TYPE SHADER NOT MATCH: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if (!hasSTexture && hasSoftLightingFlag) + { + if (!checkBox4.Checked) + { + outLog.Add("WARNING! HAS SOFTLIGHTING FLAG BUT TEXTURE NOT: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + else + { + shaderFlags2 -= 33554432; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags2)); + } + } + if ((checkBox8.Checked || checkBox9.Checked) && comboBox2.SelectedIndex != -1) + { + if (((ShadeFlags2)shaderFlags2 & (ShadeFlags2)(1 << comboBox2.SelectedIndex)) != 0) + { + if (checkBox9.Checked) + { + shaderFlags2 -= 1 << comboBox2.SelectedIndex; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags2)); + } + } + else + { + if (checkBox8.Checked) + { + shaderFlags2 += 1 << comboBox2.SelectedIndex; + replaceBytesInFile(jump3, BitConverter.GetBytes(shaderFlags2)); + } + } + } + jump3 += 24; + if ((ecColor || ecMultiple) && (bytesFile[realBlockStart] == ecShaderType || ecShaderType == 21)) + { + if (ecColor) + { + replaceBytesInFile(jump3, BitConverter.GetBytes(ecR)); + jump3 += 4; + replaceBytesInFile(jump3, BitConverter.GetBytes(ecG)); + jump3 += 4; + replaceBytesInFile(jump3, BitConverter.GetBytes(ecB)); + jump3 += 4; + } + else + { + jump3 += 12; + } + if (ecMultiple) + { + replaceBytesInFile(jump3, BitConverter.GetBytes(ecM)); + } + jump3 += 4; + } + else if (checkBox4.Checked) + { + float c1 = floatRoundUp(jump3); + jump3 += 4; + float c2 = floatRoundUp(jump3); + jump3 += 4; + float c3 = floatRoundUp(jump3); + jump3 += 4; + float multi = BitConverter.ToSingle(bytesFile, jump3); + if (multi != 0 && c1 == 0 && c2 == 0 && c3 == 0 && bytesFile[realBlockStart] != 2) + { + replaceBytesInFile(jump3, BitConverter.GetBytes(0)); + } + jump3 += 4; + } + else + { + jump3 += 16; + } + jump3 += 12; + if (bytesFile[realBlockStart] == 5 && hasSkinFlag && hasSpaceNormalsFlag) + { + if (realBlockStart + blocksSizeList[shaderBlock] == jump3 + 40) + { + if (hasTangents || hasNormals || hasVColors || hasVCFlag) + { + outLog.Add("WARNING! SKIN INCORRECT PARAMETERS: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + if (checkBox10.Checked) + { + replaceBytesInFile(jump3, BitConverter.GetBytes((float)23)); + jump3 += 4; + replaceBytesInFile(jump3, BitConverter.GetBytes((float)0.663)); + jump3 += 4; + replaceBytesInFile(jump3, BitConverter.GetBytes((float)0.855)); + jump3 += 4; + replaceBytesInFile(jump3, BitConverter.GetBytes((float)1)); + jump3 += 4; + replaceBytesInFile(jump3, BitConverter.GetBytes((float)4.5)); + jump3 += 4; + replaceBytesInFile(jump3, BitConverter.GetBytes((float)0.4)); + jump3 += 4; + replaceBytesInFile(jump3, BitConverter.GetBytes((float)2)); + } + } + else + { + outLog.Add("WARNING! ERROR PARS: " + blocksNamesList[shaderBlock] + " (" + shaderBlock.ToString() + ") " + fileName); + } + } + } + else + { + outLog.Add("WARNING! ERROR PARS: " + blocksNamesList[shaderBlock] + " (" + shaderBlock.ToString() + ") " + fileName); + } + } + } + else + { + outLog.Add("WARNING! ERROR PARS: " + blocksNamesList[i] + " (" + i.ToString() + ") " + fileName); + } + } + } + if (fileChanged) + { + File.WriteAllBytes(path, bytesFile); + outLog.Add("ATTENTION! FILE WAS UPDATE: " + fileName); + } + successFiles++; + } + else + { + outLog.Add("WARNING! HEADER READ ERROR: " + fileName + " SOME REASON: " + headerError); + } + blocksTypesList = null; + blocksNamesList = null; + stringsList = null; + groupsList = null; + } + } + + private void verticesTrim(int jump, double value) + { + string premath = value.ToString(); + int index = premath.IndexOf(","); + double trim = 0; + if (index > 0) + { + if (premath.Length > (index + verTrimNum + 1)) + { + premath = premath.Remove(index + verTrimNum + 1); + } + Double.TryParse(premath.Replace(',', '.'), NumberStyles.Number, CultureInfo.InvariantCulture, out trim); + replaceBytesInFile(jump, BitConverter.GetBytes((float)trim)); + } + } + + private void extraCheck(int start, int count, int blockIndex, string name) + { + for (int i = 0; i < count; i++) + { + int extra = (int)BitConverter.ToUInt32(bytesFile, start); + if (extra < 0 || extra > blocksCount) + { + outLog.Add("WARNING! EXTRA BLOCKS: " + name + " (" + blockIndex.ToString() + ") " + fileName); + } + start += 4; + } + } + + private void sortBlocks(int blockStart, int jump, int childs, int blockSize, int blockEnd, int blockIndex, string name) + { + if (childs > 0) + { + List childsList = new List(); + bool dubBlocks = false; + bool warnBlocks = false; + jump += 4; + int startList = jump; + if (blockSize == blockEnd) + { + for (int i = 0; i < childs; i++) + { + int child = (int)BitConverter.ToUInt32(bytesFile, jump); + if (child == -1) + { + childsList.Add(-1); + outLog.Add("WARNING! NONE CHILDREN BLOCKS: " + name + " (" + blockIndex.ToString() + ") " + fileName); + } + else if (childsList.Contains(child)) + { + childsList.Add(-1); + outLog.Add("WARNING! DUB CHILDREN BLOCKS: " + name + " (" + blockIndex.ToString() + ") " + fileName); + dubBlocks = true; + } + else if (child >= 0 && child < blocksCount) + { + childsList.Add(child); + } + else + { + warnBlocks = true; + outLog.Add("WARNING! NOT VALID CHILDREN BLOCKS: " + name + " (" + blockIndex.ToString() + ") " + fileName); + } + jump += 4; + } + } + else + { + warnBlocks = true; + outLog.Add("WARNING! ERROR PARS: " + name + " (" + blockIndex.ToString() + "): " + fileName); + } + if (checkBox3.Checked) + { + if (!warnBlocks) + { + if (dubBlocks) + { + outLog.Add("WARNING! DUB CHILDREN BLOCKS WAS REPLACED TO NONE: " + name + " (" + blockIndex.ToString() + ") " + fileName); + } + childsList.Sort(); + int listCount = 0; + for (int i = 0; listCount < childsList.Count; i++) + { + if (childsList[i] == -1) + { + childsList.RemoveAt(i); + childsList.Add(-1); + i--; + } + listCount++; + } + for (int j = 0; j < childsList.Count; j++) + { + replaceBytesInFile(startList, BitConverter.GetBytes(childsList[j])); + startList += 4; + } + } + else + { + outLog.Add("WARNING! SORTING NOT APPLICABLE: " + name + " (" + blockIndex.ToString() + ") " + fileName); + } + } + } + else if (childs < 0) + { + outLog.Add("WARNING! ERROR PARS: " + name + " (" + blockIndex.ToString() + "): " + fileName); + } + } + + private float floatRoundUp(int jump) + { + float n = BitConverter.ToSingle(bytesFile, jump); + if (float.IsNaN(n) || n > 0.989) + { + replaceBytesInFile(jump, BitConverter.GetBytes((float)1)); + n = (float)1; + } + else if (n < 0.011) + { + replaceBytesInFile(jump, BitConverter.GetBytes((float)0)); + n = (float)0; + } + return n; + } + + private void resizeByteArray(int start, int length, int block) + { + List list = new List(bytesFile); + list.RemoveRange(start, length); + bytesFile = null; + bytesFile = list.ToArray(); + list = null; + blocksSizeList[block] = blocksSizeList[block] - length; + replaceBytesInFile(sizeIndex[block], BitConverter.GetBytes(blocksSizeList[block])); + for (int i = 0; i < blocksStartList.Count; i++) + { + if (blocksStartList[i] > start) + { + blocksStartList[i] = blocksStartList[i] - length; + } + } + } + + private void replaceBytesInFile(int start, byte[] array) + { + bytesFile[start] = array[0]; + bytesFile[start + 1] = array[1]; + bytesFile[start + 2] = array[2]; + bytesFile[start + 3] = array[3]; + fileChanged = true; + } + + private byte[] materialBytes(string line) + { + byte[] bytesArray = new byte[4]; + if (line == "SKY_HAV_MAT_BROKEN_STONE") + { + bytesArray[0] = 71; + bytesArray[1] = 55; + bytesArray[2] = 209; + bytesArray[3] = 7; + } + else if (line == "SKY_HAV_MAT_LIGHT_WOOD") + { + bytesArray[0] = 227; + bytesArray[1] = 222; + bytesArray[2] = 199; + bytesArray[3] = 21; + } + else if (line == "SKY_HAV_MAT_SNOW") + { + bytesArray[0] = 175; + bytesArray[1] = 122; + bytesArray[2] = 199; + bytesArray[3] = 23; + } + else if (line == "SKY_HAV_MAT_GRAVEL") + { + bytesArray[0] = 88; + bytesArray[1] = 186; + bytesArray[2] = 139; + bytesArray[3] = 25; + } + else if (line == "SKY_HAV_MAT_MATERIAL_CHAIN_METAL") + { + bytesArray[0] = 228; + bytesArray[1] = 68; + bytesArray[2] = 41; + bytesArray[3] = 26; + } + else if (line == "SKY_HAV_MAT_BOTTLE") + { + bytesArray[0] = 246; + bytesArray[1] = 8; + bytesArray[2] = 107; + bytesArray[3] = 29; + } + else if (line == "SKY_HAV_MAT_WOOD") + { + bytesArray[0] = 17; + bytesArray[1] = 198; + bytesArray[2] = 217; + bytesArray[3] = 29; + } + else if (line == "SKY_HAV_MAT_SKIN") + { + bytesArray[0] = 2; + bytesArray[1] = 183; + bytesArray[2] = 61; + bytesArray[3] = 35; + } + else if (line == "SKY_HAV_MAT_BARREL") + { + bytesArray[0] = 20; + bytesArray[1] = 150; + bytesArray[2] = 163; + bytesArray[3] = 43; + } + else if (line == "SKY_HAV_MAT_MATERIAL_CERAMIC_MEDIUM") + { + bytesArray[0] = 91; + bytesArray[1] = 51; + bytesArray[2] = 151; + bytesArray[3] = 46; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BASKET") + { + bytesArray[0] = 110; + bytesArray[1] = 105; + bytesArray[2] = 34; + bytesArray[3] = 47; + } + else if (line == "SKY_HAV_MAT_ICE") + { + bytesArray[0] = 28; + bytesArray[1] = 93; + bytesArray[2] = 14; + bytesArray[3] = 52; + } + else if (line == "SKY_HAV_MAT_STAIRS_STONE") + { + bytesArray[0] = 61; + bytesArray[1] = 115; + bytesArray[2] = 157; + bytesArray[3] = 53; + } + else if (line == "SKY_HAV_MAT_WATER") + { + bytesArray[0] = 199; + bytesArray[1] = 227; + bytesArray[2] = 17; + bytesArray[3] = 61; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BLADE_1HAND") + { + bytesArray[0] = 164; + bytesArray[1] = 224; + bytesArray[2] = 48; + bytesArray[3] = 63; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BOOK") + { + bytesArray[0] = 82; + bytesArray[1] = 96; + bytesArray[2] = 97; + bytesArray[3] = 75; + } + else if (line == "SKY_HAV_MAT_MATERIAL_CARPET") + { + bytesArray[0] = 63; + bytesArray[1] = 145; + bytesArray[2] = 177; + bytesArray[3] = 76; + } + else if (line == "SKY_HAV_MAT_SOLID_METAL") + { + bytesArray[0] = 59; + bytesArray[1] = 204; + bytesArray[2] = 202; + bytesArray[3] = 76; + } + else if (line == "SKY_HAV_MAT_MATERIAL_AXE_1HAND") + { + bytesArray[0] = 203; + bytesArray[1] = 2; + bytesArray[2] = 211; + bytesArray[3] = 77; + } + else if (line == "SKY_HAV_MAT_STAIRS_WOOD") + { + bytesArray[0] = 149; + bytesArray[1] = 245; + bytesArray[2] = 31; + bytesArray[3] = 87; + } + else if (line == "SKY_HAV_MAT_MUD") + { + bytesArray[0] = 129; + bytesArray[1] = 112; + bytesArray[2] = 152; + bytesArray[3] = 88; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BOULDER_SMALL") + { + bytesArray[0] = 214; + bytesArray[1] = 13; + bytesArray[2] = 113; + bytesArray[3] = 92; + } + else if (line == "SKY_HAV_MAT_STAIRS_SNOW") + { + bytesArray[0] = 43; + bytesArray[1] = 73; + bytesArray[2] = 1; + bytesArray[3] = 93; + } + else if (line == "SKY_HAV_MAT_HEAVY_STONE") + { + bytesArray[0] = 64; + bytesArray[1] = 215; + bytesArray[2] = 160; + bytesArray[3] = 93; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BOWS_STAVES") + { + bytesArray[0] = 65; + bytesArray[1] = 214; + bytesArray[2] = 202; + bytesArray[3] = 95; + } + else if (line == "SKY_HAV_MAT_MATERIAL_WOOD_AS_STAIRS") + { + bytesArray[0] = 12; + bytesArray[1] = 80; + bytesArray[2] = 128; + bytesArray[3] = 107; + } + else if (line == "SKY_HAV_MAT_GRASS") + { + bytesArray[0] = 238; + bytesArray[1] = 104; + bytesArray[2] = 47; + bytesArray[3] = 110; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BOULDER_LARGE") + { + bytesArray[0] = 123; + bytesArray[1] = 206; + bytesArray[2] = 95; + bytesArray[3] = 112; + } + else if (line == "SKY_HAV_MAT_MATERIAL_STONE_AS_STAIRS") + { + bytesArray[0] = 127; + bytesArray[1] = 69; + bytesArray[2] = 107; + bytesArray[3] = 112; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BLADE_2HAND") + { + bytesArray[0] = 116; + bytesArray[1] = 154; + bytesArray[2] = 144; + bytesArray[3] = 120; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BOTTLE_SMALL") + { + bytesArray[0] = 88; + bytesArray[1] = 44; + bytesArray[2] = 191; + bytesArray[3] = 120; + } + else if (line == "SKY_HAV_MAT_SAND") + { + bytesArray[0] = 13; + bytesArray[1] = 77; + bytesArray[2] = 62; + bytesArray[3] = 129; + } + else if (line == "SKY_HAV_MAT_HEAVY_METAL") + { + bytesArray[0] = 163; + bytesArray[1] = 38; + bytesArray[2] = 226; + bytesArray[3] = 132; + } + else if (line == "SKY_HAV_MAT_DRAGON") + { + bytesArray[0] = 23; + bytesArray[1] = 136; + bytesArray[2] = 26; + bytesArray[3] = 150; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BLADE_1HAND_SMALL") + { + bytesArray[0] = 204; + bytesArray[1] = 170; + bytesArray[2] = 10; + bytesArray[3] = 156; + } + else if (line == "SKY_HAV_MAT_MATERIAL_SKIN_SMALL") + { + bytesArray[0] = 62; + bytesArray[1] = 189; + bytesArray[2] = 230; + bytesArray[3] = 156; + } + else if (line == "SKY_HAV_MAT_STAIRS_BROKEN_STONE") + { + bytesArray[0] = 91; + bytesArray[1] = 105; + bytesArray[2] = 102; + bytesArray[3] = 172; + } + else if (line == "SKY_HAV_MAT_MATERIAL_SKIN_LARGE") + { + bytesArray[0] = 147; + bytesArray[1] = 126; + bytesArray[2] = 200; + bytesArray[3] = 176; + } + else if (line == "SKY_HAV_MAT_ORGANIC") + { + bytesArray[0] = 219; + bytesArray[1] = 173; + bytesArray[2] = 81; + bytesArray[3] = 177; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BONE") + { + bytesArray[0] = 20; + bytesArray[1] = 124; + bytesArray[2] = 194; + bytesArray[3] = 181; + } + else if (line == "SKY_HAV_MAT_HEAVY_WOOD") + { + bytesArray[0] = 71; + bytesArray[1] = 112; + bytesArray[2] = 8; + bytesArray[3] = 183; + } + else if (line == "SKY_HAV_MAT_MATERIAL_CHAIN") + { + bytesArray[0] = 102; + bytesArray[1] = 67; + bytesArray[2] = 59; + bytesArray[3] = 183; + } + else if (line == "SKY_HAV_MAT_DIRT") + { + bytesArray[0] = 170; + bytesArray[1] = 62; + bytesArray[2] = 35; + bytesArray[3] = 185; + } + else if (line == "SKY_HAV_MAT_MATERIAL_ARMOR_LIGHT") + { + bytesArray[0] = 157; + bytesArray[1] = 22; + bytesArray[2] = 33; + bytesArray[3] = 204; + } + else if (line == "SKY_HAV_MAT_MATERIAL_SHIELD_LIGHT") + { + bytesArray[0] = 248; + bytesArray[1] = 211; + bytesArray[2] = 134; + bytesArray[3] = 205; + } + else if (line == "SKY_HAV_MAT_MATERIAL_COIN") + { + bytesArray[0] = 62; + bytesArray[1] = 84; + bytesArray[2] = 237; + bytesArray[3] = 213; + } + else if (line == "SKY_HAV_MAT_MATERIAL_SHIELD_HEAVY") + { + bytesArray[0] = 80; + bytesArray[1] = 251; + bytesArray[2] = 173; + bytesArray[3] = 220; + } + else if (line == "SKY_HAV_MAT_MATERIAL_ARMOR_HEAVY") + { + bytesArray[0] = 53; + bytesArray[1] = 48; + bytesArray[2] = 10; + bytesArray[3] = 221; + } + else if (line == "SKY_HAV_MAT_MATERIAL_ARROW") + { + bytesArray[0] = 146; + bytesArray[1] = 181; + bytesArray[2] = 14; + bytesArray[3] = 222; + } + else if (line == "SKY_HAV_MAT_GLASS") + { + bytesArray[0] = 66; + bytesArray[1] = 72; + bytesArray[2] = 233; + bytesArray[3] = 222; + } + else if (line == "SKY_HAV_MAT_STONE") + { + bytesArray[0] = 55; + bytesArray[1] = 242; + bytesArray[2] = 2; + bytesArray[3] = 223; + } + else if (line == "SKY_HAV_MAT_CLOTH") + { + bytesArray[0] = 163; + bytesArray[1] = 156; + bytesArray[2] = 211; + bytesArray[3] = 228; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BLUNT_2HAND") + { + bytesArray[0] = 213; + bytesArray[1] = 43; + bytesArray[2] = 155; + bytesArray[3] = 236; + } + else if (line == "SKY_HAV_MAT_MATERIAL_BOULDER_MEDIUM") + { + bytesArray[0] = 226; + bytesArray[1] = 168; + bytesArray[2] = 86; + bytesArray[3] = 255; + } + else + { + outLog.Add("WARNING! WAS REPLACED WRONG MATERIAL COLLISION: " + fileName); + } + return bytesArray; + } + + private void checkCollisions(int jump, long coll) + { + string mat = null; + if (coll == 131151687) + { + mat = "SKY_HAV_MAT_BROKEN_STONE"; + } + else if (coll == 365420259) + { + mat = "SKY_HAV_MAT_LIGHT_WOOD"; + } + else if (coll == 398949039) + { + mat = "SKY_HAV_MAT_SNOW"; + } + else if (coll == 428587608) + { + mat = "SKY_HAV_MAT_GRAVEL"; + } + else if (coll == 438912228) + { + mat = "SKY_HAV_MAT_MATERIAL_CHAIN_METAL"; + } + else if (coll == 493553910) + { + mat = "SKY_HAV_MAT_BOTTLE"; + } + else if (coll == 500811281) + { + mat = "SKY_HAV_MAT_WOOD"; + } + else if (coll == 591247106) + { + mat = "SKY_HAV_MAT_SKIN"; + } + else if (coll == 732141076) + { + mat = "SKY_HAV_MAT_BARREL"; + } + else if (coll == 781661019) + { + mat = "SKY_HAV_MAT_MATERIAL_CERAMIC_MEDIUM"; + } + else if (coll == 790784366) + { + mat = "SKY_HAV_MAT_MATERIAL_BASKET"; + } + else if (coll == 873356572) + { + mat = "SKY_HAV_MAT_ICE"; + } + else if (coll == 899511101) + { + mat = "SKY_HAV_MAT_STAIRS_STONE"; + } + else if (coll == 1024582599) + { + mat = "SKY_HAV_MAT_WATER"; + } + else if (coll == 1060167844) + { + mat = "SKY_HAV_MAT_MATERIAL_BLADE_1HAND"; + } + else if (coll == 1264672850) + { + mat = "SKY_HAV_MAT_MATERIAL_BOOK"; + } + else if (coll == 1286705471) + { + mat = "SKY_HAV_MAT_MATERIAL_CARPET"; + } + else if (coll == 1288358971) + { + mat = "SKY_HAV_MAT_SOLID_METAL"; + } + else if (coll == 1305674443) + { + mat = "SKY_HAV_MAT_MATERIAL_AXE_1HAND"; + } + else if (coll == 1461712277) + { + mat = "SKY_HAV_MAT_STAIRS_WOOD"; + } + else if (coll == 1486385281) + { + mat = "SKY_HAV_MAT_MUD"; + } + else if (coll == 1550912982) + { + mat = "SKY_HAV_MAT_MATERIAL_BOULDER_SMALL"; + } + else if (coll == 1560365355) + { + mat = "SKY_HAV_MAT_STAIRS_SNOW"; + } + else if (coll == 1570821952) + { + mat = "SKY_HAV_MAT_HEAVY_STONE"; + } + else if (coll == 1607128641) + { + mat = "SKY_HAV_MAT_MATERIAL_BOWS_STAVES"; + } + else if (coll == 1803571212) + { + mat = "SKY_HAV_MAT_MATERIAL_WOOD_AS_STAIRS"; + } + else if (coll == 1848600814) + { + mat = "SKY_HAV_MAT_GRASS"; + } + else if (coll == 1885326971) + { + mat = "SKY_HAV_MAT_MATERIAL_BOULDER_LARGE"; + } + else if (coll == 1886078335) + { + mat = "SKY_HAV_MAT_MATERIAL_STONE_AS_STAIRS"; + } + else if (coll == 2022742644) + { + mat = "SKY_HAV_MAT_MATERIAL_BLADE_2HAND"; + } + else if (coll == 2025794648) + { + mat = "SKY_HAV_MAT_MATERIAL_BOTTLE_SMALL"; + } + else if (coll == 2168343821) + { + mat = "SKY_HAV_MAT_SAND"; + } + else if (coll == 2229413539) + { + mat = "SKY_HAV_MAT_HEAVY_METAL"; + } + else if (coll == 2518321175) + { + mat = "SKY_HAV_MAT_DRAGON"; + } + else if (coll == 2617944780) + { + mat = "SKY_HAV_MAT_MATERIAL_BLADE_1HAND_SMALL"; + } + else if (coll == 2632367422) + { + mat = "SKY_HAV_MAT_MATERIAL_SKIN_SMALL"; + } + else if (coll == 2892392795) + { + mat = "SKY_HAV_MAT_STAIRS_BROKEN_STONE"; + } + else if (coll == 2965929619) + { + mat = "SKY_HAV_MAT_MATERIAL_SKIN_LARGE"; + } + else if (coll == 2974920155) + { + mat = "SKY_HAV_MAT_ORGANIC"; + } + else if (coll == 3049421844) + { + mat = "SKY_HAV_MAT_MATERIAL_BONE"; + } + else if (coll == 3070783559) + { + mat = "SKY_HAV_MAT_HEAVY_WOOD"; + } + else if (coll == 3074114406) + { + mat = "SKY_HAV_MAT_MATERIAL_CHAIN"; + } + else if (coll == 3106094762) + { + mat = "SKY_HAV_MAT_DIRT"; + } + else if (coll == 3424720541) + { + mat = "SKY_HAV_MAT_MATERIAL_ARMOR_LIGHT"; + } + else if (coll == 3448165368) + { + mat = "SKY_HAV_MAT_MATERIAL_SHIELD_LIGHT"; + } + else if (coll == 3589100606) + { + mat = "SKY_HAV_MAT_MATERIAL_COIN"; + } + else if (coll == 3702389584) + { + mat = "SKY_HAV_MAT_MATERIAL_SHIELD_HEAVY"; + } + else if (coll == 3708432437) + { + mat = "SKY_HAV_MAT_MATERIAL_ARMOR_HEAVY"; + } + else if (coll == 3725505938) + { + mat = "SKY_HAV_MAT_MATERIAL_ARROW"; + } + else if (coll == 3739830338) + { + mat = "SKY_HAV_MAT_GLASS"; + } + else if (coll == 3741512247) + { + mat = "SKY_HAV_MAT_STONE"; + } + else if (coll == 3839073443) + { + mat = "SKY_HAV_MAT_CLOTH"; + } + else if (coll == 3969592277) + { + mat = "SKY_HAV_MAT_MATERIAL_BLUNT_2HAND"; + } + else if (coll == 4283869410) + { + mat = "SKY_HAV_MAT_MATERIAL_BOULDER_MEDIUM"; + } + if (checkBox2.Checked) + { + if (mat != null) + { + outLog.Add("HAVE MATERIAL: " + mat); + } + else + { + outLog.Add("WARNING! WRONG MATERIAL COLLISION: " + fileName); + } + } + if (checkBox5.Checked && mat == textBox1.Text && textBox2.Text.Length > 12) + { + replaceBytesInFile(jump, materialBytes(textBox2.Text)); + } + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + debugMode = !debugMode; + } + + private void checkBox5_CheckedChanged(object sender, EventArgs e) + { + textBox1.Enabled = checkBox5.Checked; + textBox2.Enabled = checkBox5.Checked; + } + + private void checkBox6_CheckedChanged(object sender, EventArgs e) + { + if (checkBox6.Checked) + { + checkBox7.Checked = false; + } + } + + private void checkBox7_CheckedChanged(object sender, EventArgs e) + { + if (checkBox7.Checked) + { + checkBox6.Checked = false; + } + } + + private void checkBox8_CheckedChanged(object sender, EventArgs e) + { + if (checkBox8.Checked) + { + checkBox9.Checked = false; + } + } + + private void checkBox9_CheckedChanged(object sender, EventArgs e) + { + if (checkBox9.Checked) + { + checkBox8.Checked = false; + } + } + + private void checkBox4_CheckedChanged(object sender, EventArgs e) + { + if (checkBox4.Checked) + { + fixesOn = true; + vcColor = false; + vcAlpha = false; + buttonColorVC(vcRemove); + } + else + { + fixesOn = false; + } + } + + private void button3_Click(object sender, EventArgs e) + { + var form = new FormParallax(); + form.ShowDialog(); + form = null; + } + + private void button4_Click(object sender, EventArgs e) + { + var form = new FormEC(); + form.ShowDialog(); + form = null; + } + + private void button5_Click(object sender, EventArgs e) + { + var form = new FormVC(); + form.ShowDialog(); + form = null; + } + + private void button6_Click(object sender, EventArgs e) + { + var form = new FormVer(); + form.ShowDialog(); + form = null; + } + + public void buttonColorParallax(bool edit) + { + buttonColor(button3, edit); + } + + public void buttonColorEC(bool edit) + { + buttonColor(button4, edit); + } + + public void buttonColorVC(bool edit) + { + buttonColor(button5, edit); + } + + public void buttonColorVer(bool edit) + { + buttonColor(button6, edit); + } + + private void buttonColor(Button button, bool edit) + { + if (edit) + { + button.ForeColor = System.Drawing.Color.DarkRed; + } + else + { + button.ForeColor = System.Drawing.SystemColors.ControlText; + } + } + } +} diff --git a/Nifscan/FormMain.resx b/Nifscan/FormMain.resx new file mode 100644 index 0000000..d0233c4 --- /dev/null +++ b/Nifscan/FormMain.resx @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAMGAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAADgAAADEAAABlAAAAfAAA + AGwAAABIAAAAKQAAABkAAAANAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAZIBQUU2xK + SbKEW1nZZkZFvCIXF6MDAgKhAAAAkAAAAHMAAABPAAAAMQAAABwAAAAQAAAABgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACQAA + AChAKyt6jV5e57WQj//dzMz/v6Gg/6J3df+SZWPxZ0dFvzAhIaUHBQWgAAAAlwAAAHwAAABZAAAAOAAA + ACEAAAATAAAACAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAASDQcHQGNCQqSba2v8zK6u/+3d3f/8+vr/+/j4//j09P/j1NT/xamo/6iAfv+XaGb5dVFQzD8r + K6kQCwqgAAAAmwAAAIQAAABjAAAAQQAAACYAAAAXAAAACwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABgAAAB8qHBxiglZW0Kp/f//gysr/69nZ/+zb2//8+fn/+/f3//r29v/59PT/+PLy//fw + 8P/o2tr/y7Kx/6+JiP+abGr9g1pZ2083NrAaEhKhAgEBnwAAAIwAAABtAAAASgAAAC0AAAAbAAAADwAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAAMAAAAL04zM4qTY2PxwJ6e/+zb2//s29v/69jY/+zb2//7+Pj/+vb2//n1 + 9f/48/P/8+jo/+nU1P/mzc3/69fX//Pp6f/r3d3/0bm4/7aSkf+dcW/+jWFf6V5BQbkpHBujBQMDoQAA + AJMAAAB2AAAAVAAAADQAAAAfAAAAEgAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgWDw9NcktLtqBycv7YwcH/7+Dg/+3d3f/k0dH/xa6u/+za + 2v/79/f/+vb2//n09P/06ur/5c3N/9W4uP+BZ3P/WkV1/4t2kv/u4eH/8eXl//Dj4//o09P/1r28/7ya + mf+jeHb/k2Zk9G5MSsU3JiWnCwgHoQAAAJkAAAB/AAAAXgAAADwAAAAjAAAAFQAAAAoAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAITckJHKKXFzgtI2N/+na2v/w4uL/7t7e/9K9 + vf+QdXX/o4qK/+vZ2f/69vb/+fX1//jz8//s2tr/3sXF/2VMTP86KHf/PS6Q/yMWcv94ZYr/8eTk//Di + 4v/RpKT/6tfX/+3d3f/r2tr/28TE/8KhoP+pf37/l2ln+3tWVNNGMTCsFQ4OoQAAAJwAAACIAAAAZwAA + AEUAAAApAAAAGQAAAA0AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAApFBQZbUlJm5ppafrNsbH/8ebm//Dj + 4//s3Nz/uqGh/4xubv+CZmb/oIeH/+vY2P/69vb/+fT0//fv7//q19f/n4eH/1o8PP9POqT/fXDO/zop + nP8mGGz/3MbJ//Di4v/RpKT/9ezs/+3d3f/s2tr/6tfX/+fR0f/mzs7/38fG/8enpv+vh4X/mm1r/ole + XeJWPDu0IRYWogMBAaEAAACQAAAAcQAAAE8AAAAwAAAAHAAAABAAAAAGAAAAAQAAAACLX16TrIaE/+PT + 0//z6Oj/8eXl/9/Ozv+niYn/kXFx/4hqav9/Y2P/nYWF/+rX1//59fX/+PPz//bu7v/s2dn/nYKC/3RN + Tf9qRpT/cV3n/2BQv/8tIH3/v6Wv/+/h4f/RpKT/9evr/+3c3P/r2Nj/5c3N/9O1tf+Td4b/jnWP/9vC + xf/mz8//4cjI/8urq/+0jYz/n3Jw/5JkY/FmRka+LiAfpAcFBaIAAACWAAAAewAAAFgAAAA3AAAAHgAA + AAmVZ2XT4tLS//Tq6v/x5eX/zbW1/6F/f/+Wdnb/jW9v/4RoaP97YWH/m4OD/+rW1v/59PT/+PLy//bv + 7//u3t7/yrCw/4xeXv+MXV//Xj6Y/0czqf9BL3H/2ry9/+/g4P/RpKT/9evr/+zb2//q1tb/1r29/1pC + Sf86LIf/KBp7/0c2cf/fxsf/4MPD/9iysv/jyMj/4MXF/9Cvrv+5kpH/pHd1/5doZvl1UVDLPispqQ8K + CqAAAACaAAAAeQAAADOWZWTd5tbW/+rb2/+9nZ3/pYGB/5x6ev+Tc3P/imxs/4BlZf9+ZWX/wKmp/+nW + 1v/48/P/9/Hx//bv7//x5eX/69jY/6qFhf91Tk7/YEBA/041Nf+skpL/5MvL/+7f3//RpKT/9evr/+za + 2v/q19f/jnV1/1k7S/9mVsX/XU64/ygZff+chJv/3r+//9WsrP/r2dn/4cbG/+DExP/gwsL/38DA/9Ox + sP++l5b/qX17/5lraf2CWljZEQsLoAAAAGOVY2Pc49LS/7eSkv+qhYX/oX5+/5h3d/+PcHD/hmlp/5Z8 + fP/XwcH/5c3N/+nU1P/48vL/9/Dw//bu7v/17Oz/7+Hh/+nW1v+vlpb/jnV1/8Kqqv/mzs7/6tfX/+7e + 3v/RpKT/9Orq/+za2v/s2tr/kXNz/3tSUv9lRr7/cGDX/0M0m/+FbZH/3r6+/9ixsf/z6en/4cXF/+HF + xf/ky8v/17m5/6KFkv+vkJ3/27m5/9Wxsf+0ion/YEJBuAAAAHOVY2Pc49HR/7GLi/+ng4P/nnx8/5V1 + df+Nb2//tZ2d/+XQ0P/mz8//5MzM/+nU1P/38fH/9+/v//jy8v/27+//8+np//Dh4f/t3Nz/69jY/+rX + 1//r2dn/7t7e/+3d3f/Ro6P/9Orq/+vY2P/u3t7/xqqq/5BfX/9/VGD/UzeN/0Ascv/Cpqz/3r6+/9ix + sf/z6Oj/4MTE/+fQ0P/Wvr7/XERS/zgqhP8jFm7/i3CL/9q3t//Fnp3/bUtJwQAAAHOVY2Pc49HR/66K + iv+jgID/mnl5/5Fycv+xmJj/xa6u/8Cpqf+/qKj/1r29/+jT0//38PD/4cTE/+bOzv/y5ub/+/j4//v4 + +P/48fH/9Orq//Dj4//v4OD/7t7e/+3c3P/Ro6P/9Onp/+rX1//t29v/69nZ/62MjP9oRkb/Vzw8/6GI + iP/ky8v/3r+//9aurv/z6Oj/4MPD/+vY2P+SeXn/XD1X/2xdyv9MPKn/MiJv/9eys//Fnp3/aklIvwAA + AHOVY2Pc49HR/6yJif+gfX3/l3Z2/41vb/+EaGj/e2Fh/3JaWv9pU1P/tp2d/+jS0v/37+//48jI/9ex + sf/Pn5//zZyc/9aurv/ixcX/7dvb//jy8v/8+vr/+PPz//Tr6//SpaX/9Onp/+rW1v/p1NT/7dzc/+zb + 2//Tvr7/2sXF/+jS0v/mz8//3r6+/9aurv/z6Oj/4MLC/+3c3P+jhYX/hVla/2VHwv9hUMf/Nyh//9Wy + tP/FnZz/aklIvwAAAHSVY2Pc49DQ/7OTk/+gf3//k3R0/4psbP+BZWX/eF5e/29XV/9mUFD/tJub/+fR + 0f/27+//9e3t//Tr6//z6Oj/7Nvb/+PIyP/atrb/0qWl/8yamv/RpKT/3Lq6/+jR0f/RpKT/9Orq//r1 + 9f/17Oz/8OLi/+7f3//t3Nz/7Nra/+jT0//jycn/3r6+/9atrf/z6Oj/38HB/+rX1//ZwcH/jF9f/3FL + Uf9LMWP/gGd7/96+vv/FnZz/a0pJwAAAAHaVY2Pc48/P/+7g4P/s3Nz/4s7O/6WLi/99Y2P/dFtb/2tU + VP9iTU3/s5qa/+fQ0P/07Oz/9ezs//Tq6v/z6Oj/8ubm/9G4t//cvb3/3r6+/+LGxv/ixsb/3Lq6/9Sr + q//NnJz/zZyc/9evr//ixsb/7t3d//nz8//8+fn/9+/v//Dj4//q1tb/4MLC/9Wrq//z5+f/38DA/+HF + xf/t3Nz/ybCw/4BlZf+Xf3//4cjI/96+vv/Gnp3/cExLxAAAAHeVY2Pc4s7O/+7e3v/VwMD/mX19/4Nn + Z/96YGD/cVlZ/2hSUv9fS0v/tZub/93Cwv+mfXv/9fT0/9nGxv/dzMz/8Obm/6N5d//MoqL/4MPD/97A + wP/YtLT/27m5/+DDw//kysr/4sfH/928vP/Wrq7/0KGh/8yamv/SpaX/3bu7/+jS0v/06en/9Orq/9Wr + q//59PT/69nZ/+TKyv/ix8f/7dvb/+za2v/r19f/5MvL/9izs//GnZ3/cExLxAAAAHeVY2Pc38rK/7uh + of+Sc3P/iGtr/39kZP92XV3/bVZW/3FbW/+zmpr/38LC/9zAwP+id3b/8vLy/7yenv/JtbX/6uXl/6J3 + df/NpKT/zcnJ/9LOzv/t5ub/6dvb/+HLy//dwMD/27q6/9y7u//fwcH/4sbG/+HFxf/dvLz/17Cw/9Kl + pf/Nm5v/zZub/86env/jx8f/7t7e//n09P/8+vr/9+/v//Pn5//p1dX/3by8/9iysv/FnZz/cExLxAAA + AHeVY2Pc2MHB/5d2dv+Ob2//hWho/3xhYf91XFz/noaG/9rAwP/hxcX/38LC/9u/v/+cbmz/vqCg/6qB + gf+/pqb/4djY/6B0c//OpaX/HxkZ/wAAAP8YFxf/TktL/4N8fP+3q6v/18fH/9nFxf/Xvr7/17u7/9m7 + u//dv7//4cTE/+LGxv/hxcX/3by8/9ewsP/Sp6f/zp6e/8yamv/Spqb/3by8/+jS0v/06en//Pr6//r1 + 9f/QsbH/cExLxAAAAHeVY2Pc17+//5N0dP+KbW3/gWZm/492dv/MtLT/48rK/93Cwv+ii4v/tpub/9u/ + v/+dcG7/u56e/6Fzc/+cbGz/oHFx/59zcf/Qp6f/HxkZ/wAAAP8AAAD/AAAA/wAAAP8AAAD/DQsL/zUw + MP9iWFj/inp6/7CZmf/EqKj/xaam/8ipqf/Nr6//1be3/93Cwv/kysr/48fH/96/v//XsbH/06en/8+g + oP/Mmpr/zp2d/9q2tv/KpaT/cExLxAAAAHeVY2Pc1r6+/5Bxcf+NcHD/u6Ki/+TNzf/jysr/s5ub/2tX + V/9RQED/qpCQ/9u+vv+hdnT/6Ojo/7CNjf/Jurr/3tbW/55ycP/Sq6r/Hxoa/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAEAP8AJQD/ADIA/wEPAP8QDg7/Mioq/1NERP92X1//lXZ2/6uEhP+wh4f/uZOT/8ys + rP/lzs7/2ra2/9m0tP/YsrL/1ays/9Srq//Fm5r/cExLxAAAAHiVY2Pc1b29/62Skv/eyMj/5tDQ/8Or + q/9+aGj/X0tL/1ZERP9NPT3/qY6O/9u+vv+Zamj/pHh4/55ubv+wj4//yrS0/55xcP/Traz/Hxoa/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAsAP8PdB//F4kv/wdMD/8ABQD/AAAA/wAAAP8AAAD/AAAA/wgG + Bv8lHBz/Szc3/4hgYP/Hpqb/2ra2/9i0tP+8nZ3/wJ+f/9aurv/Empn/cExLxAAAAHmVY2Pc3sbG/+nV + 1f/Qubn/knl5/25WVv9lT0//XEhI/1NBQf9KOjr/p4yM/9q9vf+ec3H/zL29/6J3d/+rh4f/uJaW/51v + bf/VsLD/Hxoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA0A/wlMEP9ww3v/oeKl/zKORf8CJQX/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/0YxMP+/nZz/2bW1/7Sbm/9gX1//S0pK/6CFhf/Fm5r/c09OxwAA + AHqVY2Pc3cXF/6eOjv99YmL/c1tb/2pTU/9hTEz/WEVF/08+Pv9YR0f/vJ6e/9q8vP+fdXP/3dzc/6Z+ + fv/Jv7//3dbW/51vbf/WsrL/IBsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/ABsA/0uRUv+I0I3/Xrpt/223 + c/8LShX/AAQA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0o0M//BoKD/2bS0/7Khof+VlZX/YWFh/2xf + X//Gm5r/c1BOyQAAAHuVY2Pc3MPD/4pvb/95X1//cFhY/2dRUf9eSkr/ZVFR/6GIiP/Yt7f/27m5/9q9 + vP+ZaWj/nnBw/5tpaf+si4v/w6qq/5xvbf/YtbT/IBsb/wAAAP8AAAD/AAAA/wAAAP8AAQD/CzcO/3W8 + dv8jcS3/E2ki/2u2bv8faCv/AA8A/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0s0M//CoqH/2LOz/8+2 + tv+wsLD/ZWVl/454eP/Fmpn/c1BOyQAAAHuVY2PW2sDA/4dsbP91XFz/bFVV/3JcXP+oj4//2ry8/92+ + vv/Pr6//z66u/9m7u/+ec3H/yb29/55wcP+tjo7/uJeX/5xtbP/auLj/Hxoa/wAAAP8AAAD/AAAA/wAA + AP8ABgD/L2ky/0aIR/8AKwD/ACwB/zyEQf85hUH/ARwD/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/002 + Nf/EpaT/2LKy/9awsP+8oKD/spWV/9Oqqv/FmZn/c1BOyQAAAHuVY2PU2L6+/4Npaf9/Zmb/r5aW/9zB + wf/gwsL/y66u/4ZwcP9ENjb/tJaW/9m7u/+edHL/0tHR/59xcf/GwcH/18/P/5xubP/burr/GhYW/wAA + AP8QEBD/GRkZ/w8PD/8BDgH/TZdO/xhEGP8AFwD/AB8A/xdHGv9LmE3/AyUH/wACAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/083Nv/Gp6b/17Gx/9avr//Tra3/yqSk/9Sqqv/FmZj/c1BOyQAAAHuVY2PU2L29/7yj + o//fxsb/4sfH/8esrP+Ebm7/Tj4+/0EzM/85LCz/s5SU/97Bwf+fc3H/nG9t/5lqaP+lgoH/v6Sj/5xt + bP/cvLz/NzU0/26Tbv9pa2n/YmJi/1xcXP9QZ1H/UZVR/wAOAP8AAAD/AAsA/wEYAv9IlUn/DjIQ/wAF + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/1I4N//Iqqr/17Cw/9Ovr/+Sjo7/SUdH/7OSkv/EmJj/c1BOyQAA + AHuVY2PU2Ly8/+TMzP/Dqqr/hW5u/1pHR/9QPz//Rzg4/z4xMf81Kir/spKS/+PHx//r3Nz/4MzM/9W8 + vP/Kraz/zbGw/5xta//ev7//WFVU/4esh/94iXj/aWlp/2NjY/92l3b/bY5t/xwfHP8AAAD/AAAA/wAI + AP8sYyz/IE4g/wAFAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1Q6Of/Kraz/1q+v/9G4uP++vr7/Wlpa/3xu + bv/El5f/c1BOyQAAAHyVY2PU17q6/411df9nUVH/XkpK/1VDQ/9MPDz/QzU1/zouLv8yJyf/sJGR/+PI + yP/v4eH/7t/f/+7e3v/t3Nz/6NXV/5xta//fwcH/W1hY/4KTgv+Hq4f/b29v/2lqaf+EsoT/ZnJm/1dY + V/8tLS3/AQEB/wAAAP8TLxP/LnEu/wABAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1c8O//MsK//1q6u/9e0 + tP/v7Oz/q6ur/7eamv/El5f/dlFQywAAAH6VY2PU1rm5/3ZfX/9kTk7/W0dH/1JAQP9JOTn/QDIy/0s8 + PP+WfHz/1K2t/+LHx//v4OD/uK6u/5WNjf/Vxsb/6NTU/5xtbP/gxMP/X1xc/4KDgv+OuI7/eoN6/3V/ + df+GtIb/ZGVk/15eXv9ZWVn/PT09/wYGBv8CBgL/MYQx/wYSBv8AAAD/AQQB/wweDP8FBQX/AAAA/1k+ + Pf/OtLP/1q2t/9WsrP/Ura3/0ays/9Kmpv/FmJf/eVRTzgAAAH+VY2PU1be3/3NcXP9gTEz/V0VF/04+ + Pv9GNzf/l319/9Sxsf/YsrL/1q6u/+LGxv/f0tL/b29v/1xcXP9ZVlb/5tPT/51vbf/ixsb/Yl9f/4iI + iP+KoIr/i7KL/4iviP9+l37/a2tr/2VlZf9fX1//WVlZ/0pKSv8gISD/KmAq/ypXKv8mJib/OVI5/z96 + P/8rKyv/GRkZ/1s/Pv/Qtrb/1a2t/9KoqP/Cl5b/1Kur/9Klpf/Fl5f/eVRTzgAAAH+VY2PU1ba2/29Z + Wf9eSkr/eWNj/049Pf9DNTX/1LKy/9izs//XsLD/1a2t/+LGxv/bz8//urq6/3Z2dv9JSUn/4c3N/5xu + bP/iyMj/ZmNj/46Ojv+JiYn/iqCK/4afhv93eXf/cXFx/2tra/9mZmb/YGBg/1paWv9UVFT/U15T/16c + Xv9GU0b/SYBJ/z1aPf8xMTH/Kysr/2ZJR//Tu7r/1ays/82jo/+ieXf/3djY/9Glpf/Elpb/eVRTzgAA + AH+VY2PU1LW1/2xXV/94YmL/3Ly8/04+Pv8/MjL/1LCw/9iysv/Wr6//1aur/+HFxf/s3d3/vLm5/3Nz + c/+Nhob/59LS/5xubP/jycn/b2xs/5WVlf+Pj4//iYmJ/4ODg/99fX3/eHh4/3Jycv9sbGz/ZmZm/2Fh + Yf9bW1v/VVVV/1d0V/9Xmlf/TYdN/z5APv84ODj/MjIy/21QT//Vv77/1Kur/9Cmpf+cbmz/nnNy/8ue + nf/ElpX/eVRTzgAAAH+VY2PU07S0/2lUVP92YWH/27u7/0o7O/88Ly//06+v/9ewsP/Vra3/1Kqq/+DE + xP7t3d3/69ra/+HQ0P/q19f/6NTU/51wbv/gxsb/saGh/6CYmP+FgYH/cnFx/3BwcP95eXn/fX19/3h4 + eP9zc3P/bW1t/2dnZ/9hYWH/XFxc/1ZWVv9RVVH/Sk1K/0RERP8+Pj7/OTk5/3NUUv/YxcT/1Kur/9Oo + qP/NoaH/w5aW/8+hof/ElZX/eVRTzgAAAH+VY2PU07Oz/2ZRUf9zXl7/2rq6/0c4OP9VRET/1K+v/9av + r//VrKz/06io/+DDw/7t3Nz/7Nra/+vY2P/q19f/6dXV/6+Ihv+4kpH/4MfH/+jT0//p1NT/5tPT/9XE + xP+4qqr/oZaW/5CJif+Aenr/bWpq/1taWv9UU1P/WVlZ/1tbW/9XV1f/UVFR/0tLS/9FRUX/Pz8//3VW + VP/ayMf/1a2t/8+lpf+MeHj/f2xs/8KYmP/DlJT/eVRTzgAAAH+VY2PU0rGx/2JPT/9xXFz/2rm5/6SI + iP/WsbH/17Gx/9Wtrf/Uqqr/0qen/9/Cwv7s29v/69nZ/+rX1//p1tb/6NTU/9/Gxv+uhoT/m2xq/6V6 + ef+zjYz/v52c/8qtrP/VvLv/4MvL/+rZ2f/w4eH/8ePj//Dj4//l2tr/ysHB/7Grq/+dmJj/iIWF/3Nx + cf9cW1v/QUFB/3lZWP/ezs3/1q2t/7GUlP9wcHD/WFhY/2tbW//DlJP/eVRTzgAAAIGVY2PU0rCw/19M + TP9uWVn/27m5/9m1tf/YsrL/1q+v/9WsrP/Tqan/0qWl/9/Cwv7s2tr/69jY/+rX1//p1dX/6NPT/+fR + 0f/mz8//3sTE/82urf/AnJz/tY6N/6yCgf+jd3X/m21r/5praf+gdHL/q4OB/7aTkf/Co6L/z7a1/9zJ + yP/q3dz/9e3t//jy8v/59PT/9/Pz//n19f/69vb/06mp/8Cnp/+6urr/a2tr/15VVf/ElZT/fldW0wAA + AIKVY2PU0a+v/1xJSf9vWlr/2re3/9m0tP/XsbH/1q6u/9Opqf7Pp6f317q68eve3vrx5eX+7+Hh/u3d + 3f7r2dn+6dXV/ufR0f7lzs7+5c3N/+TLy//jycn/4sfH/+HFxf/gw8P/38HB/9i3t//Oq6v/xaCf/7yU + k/+ziYj/qn59/6Fzcf+aa2r/m21r/6d/ff+1k5L/xKin/9XBwP/bxcT/0aWl/8+mpv+nn5//bmtr/6GC + gv/ElJT/fVdV0wAAAIKVY2PU0a6u/56EhP/SsbH/2ba2/9iysv/Vrq7+1LOz9d7JyfPu5OT58+np//Po + 6P/y5ub/8eXl//Hk5P/w4uL/7+Hh/+/g4P/t3d3+69ra/unW1v7n09P+5s/P/uTLy/7ix8f+4MPD/t7A + wP7cvb3+3Lu7/9u6uv/buLj/2ra2/9m0tP/WsLD/zaWl/8OZmP+6jo3/sYSD/6d5eP+ecG7/zJ+f/9Gk + pP/QoqL/zp+f/86env/Ek5P/fVdV0wAAAIKVY2PU0a2t/9y6uv/at7f/17S0+9u+vvbm1dX28ebm/vLm + 5v/x5eX/8ePj//Di4v/v4eH/7uDg/+7e3v/t3d3/7Nzc/+za2v/r2dn/6tjY/+rW1v/p1dX/6NPT/+jS + 0v/n0dH/5s/P/+XNzf7jy8v+4sjI/uDExP7ewcH+3b29/tu5uf7Ztrb+17Ky/tWurv7VrKz/1Kqq/9Oo + qP/Spqb/0aWl/9Cjo//PoaH/z5+f/86dnf/Dk5L/gVlX1AAAAHGWZ2bV0Kys/tu8vPrizMz47d/f+vHl + 5f/w4+P/8OLi/+/h4f/u39//7t7e/+3d3f/s29v/7Nra/+vZ2f/q19f/6tbW/+nV1f/o09P/6NLS/+fR + 0f/mz8//5s7O/+XNzf/ky8v/48rK/+PJyf/ix8f/4sbG/+HFxf/gw8P/4MLC/9/Bwf/ev7//3r6+/9y7 + u/7bubn+2ba2/teysv7Vr6/+1Kur/tKnp/7QpKT+zqCg/siXl/60g4L/glpYyQAAADuXaGahnnFv/ql+ + fv6yior/uZSU/8Cenv/HqKj/zrGx/9W6uv/bw8P/4cvL/+bR0f/p1dX/6dTU/+jT0//n0tL/59DQ/+bP + z//lzs7/5czM/+TLy//jysr/48jI/+LHx//hxsb/4cTE/+DDw//fwsL/38DA/96/v//evr7/3by8/9y7 + u//curr/27i4/9q3t//atrb/2bS0/9izs//XsbH/0Kio/8GVlf+xg4P/onFx/phnZv2TZWTWa0lGTAAA + AAp/X18IkWVlP49eXlmQX19ukF9fhJJhYZmSYGCuk2Jiw5ZkZNiWZGTql2Zm+ZpoaP6ebW3/o3V1/6p9 + ff+whob/t46O/72Wlv/Dnp7/yaWl/86trf/Us7P/2bq6/92+vv/ewMD/3r+//92+vv/dvLz/3Lu7/9u6 + uv/buLj/2re3/9q2tv/ZtLT/2LOz/9exsf/Pp6f/wJSU/7CCgv+hcHD/mGZm+5FiYtGMXV2Xf1ZWXGlG + RiMAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/f38CjVVVCZNi + YhqRY2MxkF9fR49fX16PXl50kF9fiZJhYZ6SYWGylGJiyJVjY9yXZGTvmGZm/JpoaP+ebGz/o3Nz/6l6 + ev+ugYH/s4eH/7mNjf++k5P/w5qZ/8Scm/++lJP/r4GB/6Bvb/+YZmb6kWFhzotcXJOBVVVYZENDHQAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/AAACi1xcC4ta + Wh+QXV02jF5eTZBgYGOQX194kGBgjZJiYqOTYmK3lWVlzpVnZtaTZmPHjF5ekYFWVlRjOzsYAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gA////////8AAP///////AAAH/// + ///4AAAD//////AAAAB/////wAAAAAf///+AAAAAAP///wAAAAAAH///AAAAAAAB//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAP///+AAAAAP//////4AAP/ + //8= + + + \ No newline at end of file diff --git a/Nifscan/FormParallax.Designer.cs b/Nifscan/FormParallax.Designer.cs new file mode 100644 index 0000000..c07b13e --- /dev/null +++ b/Nifscan/FormParallax.Designer.cs @@ -0,0 +1,132 @@ +namespace Nifscan +{ + partial class FormParallax + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox checkBox4; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormParallax)); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.textBox1.Location = new System.Drawing.Point(12, 25); + this.textBox1.MaxLength = 999999999; + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both; + this.textBox1.Size = new System.Drawing.Size(540, 222); + this.textBox1.TabIndex = 0; + // + // label1 + // + this.label1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.Location = new System.Drawing.Point(12, 2); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(540, 21); + this.label1.TabIndex = 0; + this.label1.Text = "List of _n.dds textures for which is necessary set parallax flags:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button1 + // + this.button1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button1.Location = new System.Drawing.Point(454, 258); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(99, 35); + this.button1.TabIndex = 5; + this.button1.Text = "Save"; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // checkBox1 + // + this.checkBox1.Enabled = false; + this.checkBox1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox1.Location = new System.Drawing.Point(12, 275); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(228, 25); + this.checkBox1.TabIndex = 2; + this.checkBox1.Text = "Invert (remove flags for listed)"; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // checkBox2 + // + this.checkBox2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox2.Location = new System.Drawing.Point(12, 253); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(228, 25); + this.checkBox2.TabIndex = 1; + this.checkBox2.Text = "Compare _p.dds with _n.dds"; + this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + // + // checkBox3 + // + this.checkBox3.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox3.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox3.Location = new System.Drawing.Point(246, 253); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(202, 25); + this.checkBox3.TabIndex = 3; + this.checkBox3.Text = "Add parallax Flags"; + this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged); + // + // checkBox4 + // + this.checkBox4.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox4.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox4.Location = new System.Drawing.Point(246, 275); + this.checkBox4.Name = "checkBox4"; + this.checkBox4.Size = new System.Drawing.Size(202, 25); + this.checkBox4.TabIndex = 4; + this.checkBox4.Text = "Complite remove Flags"; + this.checkBox4.CheckedChanged += new System.EventHandler(this.checkBox4_CheckedChanged); + // + // FormParallax + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(564, 304); + this.Controls.Add(this.checkBox4); + this.Controls.Add(this.checkBox3); + this.Controls.Add(this.checkBox2); + this.Controls.Add(this.checkBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "FormParallax"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Parallax features"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + } +} \ No newline at end of file diff --git a/Nifscan/FormParallax.cs b/Nifscan/FormParallax.cs new file mode 100644 index 0000000..1117f3a --- /dev/null +++ b/Nifscan/FormParallax.cs @@ -0,0 +1,80 @@ +using System; +using System.Windows.Forms; + +namespace Nifscan +{ + public partial class FormParallax : Form + { + public FormParallax() + { + InitializeComponent(); + checkBox1.Checked = FormMain.parallaxInvert; + checkBox2.Checked = FormMain.parallaxCompare; + checkBox3.Checked = FormMain.parallaxAdd; + checkBox4.Checked = FormMain.parallaxRemove; + if (FormMain.texturesList.Count > 0) + { + textBox1.Clear(); + textBox1.AppendText(String.Join(Environment.NewLine, FormMain.texturesList)); + } + } + + private void button1_Click(object sender, EventArgs e) + { + FormMain.texturesList.Clear(); + foreach (string line in textBox1.Lines) + { + if (!String.IsNullOrEmpty(line)) + { + FormMain.texturesList.Add(line); + } + } + Dispose(); + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + FormMain.parallaxInvert = checkBox1.Checked; + } + + private void checkBox2_CheckedChanged(object sender, EventArgs e) + { + FormMain.parallaxCompare = checkBox2.Checked; + } + + private void checkBox3_CheckedChanged(object sender, EventArgs e) + { + if (checkBox3.Checked) + { + checkBox4.Checked = false; + } + else + { + checkBox1.Checked = false; + } + changeState(); + } + + private void checkBox4_CheckedChanged(object sender, EventArgs e) + { + if (checkBox4.Checked) + { + checkBox1.Checked = false; + checkBox3.Checked = false; + } + changeState(); + } + + private void changeState() + { + checkBox1.Enabled = checkBox3.Checked && !checkBox4.Checked; + checkBox2.Enabled = !checkBox3.Checked && !checkBox4.Checked; + checkBox2.Checked = false; + FormMain.parallaxAdd = checkBox3.Checked && !checkBox4.Checked; + FormMain.parallaxRemove = checkBox4.Checked && !checkBox3.Checked; + FormMain.parallaxInvert = checkBox1.Checked; + FormMain.parallaxCompare = checkBox2.Checked; + FormMain.formMain.buttonColorParallax(checkBox3.Checked || checkBox4.Checked); + } + } +} diff --git a/Nifscan/FormParallax.resx b/Nifscan/FormParallax.resx new file mode 100644 index 0000000..4fc9c37 --- /dev/null +++ b/Nifscan/FormParallax.resx @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAMGAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAADgAAADEAAABlAAAAfAAA + AGwAAABIAAAAKQAAABkAAAANAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAZIBQUU2xK + SbKEW1nZZkZFvCIXF6MDAgKhAAAAkAAAAHMAAABPAAAAMQAAABwAAAAQAAAABgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACQAA + AChAKyt6jV5e57WQj//dzMz/v6Gg/6J3df+SZWPxZ0dFvzAhIaUHBQWgAAAAlwAAAHwAAABZAAAAOAAA + ACEAAAATAAAACAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAASDQcHQGNCQqSba2v8zK6u/+3d3f/8+vr/+/j4//j09P/j1NT/xamo/6iAfv+XaGb5dVFQzD8r + K6kQCwqgAAAAmwAAAIQAAABjAAAAQQAAACYAAAAXAAAACwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABgAAAB8qHBxiglZW0Kp/f//gysr/69nZ/+zb2//8+fn/+/f3//r29v/59PT/+PLy//fw + 8P/o2tr/y7Kx/6+JiP+abGr9g1pZ2083NrAaEhKhAgEBnwAAAIwAAABtAAAASgAAAC0AAAAbAAAADwAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAAMAAAAL04zM4qTY2PxwJ6e/+zb2//s29v/69jY/+zb2//7+Pj/+vb2//n1 + 9f/48/P/8+jo/+nU1P/mzc3/69fX//Pp6f/r3d3/0bm4/7aSkf+dcW/+jWFf6V5BQbkpHBujBQMDoQAA + AJMAAAB2AAAAVAAAADQAAAAfAAAAEgAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgWDw9NcktLtqBycv7YwcH/7+Dg/+3d3f/k0dH/xa6u/+za + 2v/79/f/+vb2//n09P/06ur/5c3N/9W4uP+BZ3P/WkV1/4t2kv/u4eH/8eXl//Dj4//o09P/1r28/7ya + mf+jeHb/k2Zk9G5MSsU3JiWnCwgHoQAAAJkAAAB/AAAAXgAAADwAAAAjAAAAFQAAAAoAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAITckJHKKXFzgtI2N/+na2v/w4uL/7t7e/9K9 + vf+QdXX/o4qK/+vZ2f/69vb/+fX1//jz8//s2tr/3sXF/2VMTP86KHf/PS6Q/yMWcv94ZYr/8eTk//Di + 4v/RpKT/6tfX/+3d3f/r2tr/28TE/8KhoP+pf37/l2ln+3tWVNNGMTCsFQ4OoQAAAJwAAACIAAAAZwAA + AEUAAAApAAAAGQAAAA0AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAApFBQZbUlJm5ppafrNsbH/8ebm//Dj + 4//s3Nz/uqGh/4xubv+CZmb/oIeH/+vY2P/69vb/+fT0//fv7//q19f/n4eH/1o8PP9POqT/fXDO/zop + nP8mGGz/3MbJ//Di4v/RpKT/9ezs/+3d3f/s2tr/6tfX/+fR0f/mzs7/38fG/8enpv+vh4X/mm1r/ole + XeJWPDu0IRYWogMBAaEAAACQAAAAcQAAAE8AAAAwAAAAHAAAABAAAAAGAAAAAQAAAACLX16TrIaE/+PT + 0//z6Oj/8eXl/9/Ozv+niYn/kXFx/4hqav9/Y2P/nYWF/+rX1//59fX/+PPz//bu7v/s2dn/nYKC/3RN + Tf9qRpT/cV3n/2BQv/8tIH3/v6Wv/+/h4f/RpKT/9evr/+3c3P/r2Nj/5c3N/9O1tf+Td4b/jnWP/9vC + xf/mz8//4cjI/8urq/+0jYz/n3Jw/5JkY/FmRka+LiAfpAcFBaIAAACWAAAAewAAAFgAAAA3AAAAHgAA + AAmVZ2XT4tLS//Tq6v/x5eX/zbW1/6F/f/+Wdnb/jW9v/4RoaP97YWH/m4OD/+rW1v/59PT/+PLy//bv + 7//u3t7/yrCw/4xeXv+MXV//Xj6Y/0czqf9BL3H/2ry9/+/g4P/RpKT/9evr/+zb2//q1tb/1r29/1pC + Sf86LIf/KBp7/0c2cf/fxsf/4MPD/9iysv/jyMj/4MXF/9Cvrv+5kpH/pHd1/5doZvl1UVDLPispqQ8K + CqAAAACaAAAAeQAAADOWZWTd5tbW/+rb2/+9nZ3/pYGB/5x6ev+Tc3P/imxs/4BlZf9+ZWX/wKmp/+nW + 1v/48/P/9/Hx//bv7//x5eX/69jY/6qFhf91Tk7/YEBA/041Nf+skpL/5MvL/+7f3//RpKT/9evr/+za + 2v/q19f/jnV1/1k7S/9mVsX/XU64/ygZff+chJv/3r+//9WsrP/r2dn/4cbG/+DExP/gwsL/38DA/9Ox + sP++l5b/qX17/5lraf2CWljZEQsLoAAAAGOVY2Pc49LS/7eSkv+qhYX/oX5+/5h3d/+PcHD/hmlp/5Z8 + fP/XwcH/5c3N/+nU1P/48vL/9/Dw//bu7v/17Oz/7+Hh/+nW1v+vlpb/jnV1/8Kqqv/mzs7/6tfX/+7e + 3v/RpKT/9Orq/+za2v/s2tr/kXNz/3tSUv9lRr7/cGDX/0M0m/+FbZH/3r6+/9ixsf/z6en/4cXF/+HF + xf/ky8v/17m5/6KFkv+vkJ3/27m5/9Wxsf+0ion/YEJBuAAAAHOVY2Pc49HR/7GLi/+ng4P/nnx8/5V1 + df+Nb2//tZ2d/+XQ0P/mz8//5MzM/+nU1P/38fH/9+/v//jy8v/27+//8+np//Dh4f/t3Nz/69jY/+rX + 1//r2dn/7t7e/+3d3f/Ro6P/9Orq/+vY2P/u3t7/xqqq/5BfX/9/VGD/UzeN/0Ascv/Cpqz/3r6+/9ix + sf/z6Oj/4MTE/+fQ0P/Wvr7/XERS/zgqhP8jFm7/i3CL/9q3t//Fnp3/bUtJwQAAAHOVY2Pc49HR/66K + iv+jgID/mnl5/5Fycv+xmJj/xa6u/8Cpqf+/qKj/1r29/+jT0//38PD/4cTE/+bOzv/y5ub/+/j4//v4 + +P/48fH/9Orq//Dj4//v4OD/7t7e/+3c3P/Ro6P/9Onp/+rX1//t29v/69nZ/62MjP9oRkb/Vzw8/6GI + iP/ky8v/3r+//9aurv/z6Oj/4MPD/+vY2P+SeXn/XD1X/2xdyv9MPKn/MiJv/9eys//Fnp3/aklIvwAA + AHOVY2Pc49HR/6yJif+gfX3/l3Z2/41vb/+EaGj/e2Fh/3JaWv9pU1P/tp2d/+jS0v/37+//48jI/9ex + sf/Pn5//zZyc/9aurv/ixcX/7dvb//jy8v/8+vr/+PPz//Tr6//SpaX/9Onp/+rW1v/p1NT/7dzc/+zb + 2//Tvr7/2sXF/+jS0v/mz8//3r6+/9aurv/z6Oj/4MLC/+3c3P+jhYX/hVla/2VHwv9hUMf/Nyh//9Wy + tP/FnZz/aklIvwAAAHSVY2Pc49DQ/7OTk/+gf3//k3R0/4psbP+BZWX/eF5e/29XV/9mUFD/tJub/+fR + 0f/27+//9e3t//Tr6//z6Oj/7Nvb/+PIyP/atrb/0qWl/8yamv/RpKT/3Lq6/+jR0f/RpKT/9Orq//r1 + 9f/17Oz/8OLi/+7f3//t3Nz/7Nra/+jT0//jycn/3r6+/9atrf/z6Oj/38HB/+rX1//ZwcH/jF9f/3FL + Uf9LMWP/gGd7/96+vv/FnZz/a0pJwAAAAHaVY2Pc48/P/+7g4P/s3Nz/4s7O/6WLi/99Y2P/dFtb/2tU + VP9iTU3/s5qa/+fQ0P/07Oz/9ezs//Tq6v/z6Oj/8ubm/9G4t//cvb3/3r6+/+LGxv/ixsb/3Lq6/9Sr + q//NnJz/zZyc/9evr//ixsb/7t3d//nz8//8+fn/9+/v//Dj4//q1tb/4MLC/9Wrq//z5+f/38DA/+HF + xf/t3Nz/ybCw/4BlZf+Xf3//4cjI/96+vv/Gnp3/cExLxAAAAHeVY2Pc4s7O/+7e3v/VwMD/mX19/4Nn + Z/96YGD/cVlZ/2hSUv9fS0v/tZub/93Cwv+mfXv/9fT0/9nGxv/dzMz/8Obm/6N5d//MoqL/4MPD/97A + wP/YtLT/27m5/+DDw//kysr/4sfH/928vP/Wrq7/0KGh/8yamv/SpaX/3bu7/+jS0v/06en/9Orq/9Wr + q//59PT/69nZ/+TKyv/ix8f/7dvb/+za2v/r19f/5MvL/9izs//GnZ3/cExLxAAAAHeVY2Pc38rK/7uh + of+Sc3P/iGtr/39kZP92XV3/bVZW/3FbW/+zmpr/38LC/9zAwP+id3b/8vLy/7yenv/JtbX/6uXl/6J3 + df/NpKT/zcnJ/9LOzv/t5ub/6dvb/+HLy//dwMD/27q6/9y7u//fwcH/4sbG/+HFxf/dvLz/17Cw/9Kl + pf/Nm5v/zZub/86env/jx8f/7t7e//n09P/8+vr/9+/v//Pn5//p1dX/3by8/9iysv/FnZz/cExLxAAA + AHeVY2Pc2MHB/5d2dv+Ob2//hWho/3xhYf91XFz/noaG/9rAwP/hxcX/38LC/9u/v/+cbmz/vqCg/6qB + gf+/pqb/4djY/6B0c//OpaX/HxkZ/wAAAP8YFxf/TktL/4N8fP+3q6v/18fH/9nFxf/Xvr7/17u7/9m7 + u//dv7//4cTE/+LGxv/hxcX/3by8/9ewsP/Sp6f/zp6e/8yamv/Spqb/3by8/+jS0v/06en//Pr6//r1 + 9f/QsbH/cExLxAAAAHeVY2Pc17+//5N0dP+KbW3/gWZm/492dv/MtLT/48rK/93Cwv+ii4v/tpub/9u/ + v/+dcG7/u56e/6Fzc/+cbGz/oHFx/59zcf/Qp6f/HxkZ/wAAAP8AAAD/AAAA/wAAAP8AAAD/DQsL/zUw + MP9iWFj/inp6/7CZmf/EqKj/xaam/8ipqf/Nr6//1be3/93Cwv/kysr/48fH/96/v//XsbH/06en/8+g + oP/Mmpr/zp2d/9q2tv/KpaT/cExLxAAAAHeVY2Pc1r6+/5Bxcf+NcHD/u6Ki/+TNzf/jysr/s5ub/2tX + V/9RQED/qpCQ/9u+vv+hdnT/6Ojo/7CNjf/Jurr/3tbW/55ycP/Sq6r/Hxoa/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAEAP8AJQD/ADIA/wEPAP8QDg7/Mioq/1NERP92X1//lXZ2/6uEhP+wh4f/uZOT/8ys + rP/lzs7/2ra2/9m0tP/YsrL/1ays/9Srq//Fm5r/cExLxAAAAHiVY2Pc1b29/62Skv/eyMj/5tDQ/8Or + q/9+aGj/X0tL/1ZERP9NPT3/qY6O/9u+vv+Zamj/pHh4/55ubv+wj4//yrS0/55xcP/Traz/Hxoa/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAsAP8PdB//F4kv/wdMD/8ABQD/AAAA/wAAAP8AAAD/AAAA/wgG + Bv8lHBz/Szc3/4hgYP/Hpqb/2ra2/9i0tP+8nZ3/wJ+f/9aurv/Empn/cExLxAAAAHmVY2Pc3sbG/+nV + 1f/Qubn/knl5/25WVv9lT0//XEhI/1NBQf9KOjr/p4yM/9q9vf+ec3H/zL29/6J3d/+rh4f/uJaW/51v + bf/VsLD/Hxoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA0A/wlMEP9ww3v/oeKl/zKORf8CJQX/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/0YxMP+/nZz/2bW1/7Sbm/9gX1//S0pK/6CFhf/Fm5r/c09OxwAA + AHqVY2Pc3cXF/6eOjv99YmL/c1tb/2pTU/9hTEz/WEVF/08+Pv9YR0f/vJ6e/9q8vP+fdXP/3dzc/6Z+ + fv/Jv7//3dbW/51vbf/WsrL/IBsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/ABsA/0uRUv+I0I3/Xrpt/223 + c/8LShX/AAQA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0o0M//BoKD/2bS0/7Khof+VlZX/YWFh/2xf + X//Gm5r/c1BOyQAAAHuVY2Pc3MPD/4pvb/95X1//cFhY/2dRUf9eSkr/ZVFR/6GIiP/Yt7f/27m5/9q9 + vP+ZaWj/nnBw/5tpaf+si4v/w6qq/5xvbf/YtbT/IBsb/wAAAP8AAAD/AAAA/wAAAP8AAQD/CzcO/3W8 + dv8jcS3/E2ki/2u2bv8faCv/AA8A/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0s0M//CoqH/2LOz/8+2 + tv+wsLD/ZWVl/454eP/Fmpn/c1BOyQAAAHuVY2PW2sDA/4dsbP91XFz/bFVV/3JcXP+oj4//2ry8/92+ + vv/Pr6//z66u/9m7u/+ec3H/yb29/55wcP+tjo7/uJeX/5xtbP/auLj/Hxoa/wAAAP8AAAD/AAAA/wAA + AP8ABgD/L2ky/0aIR/8AKwD/ACwB/zyEQf85hUH/ARwD/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/002 + Nf/EpaT/2LKy/9awsP+8oKD/spWV/9Oqqv/FmZn/c1BOyQAAAHuVY2PU2L6+/4Npaf9/Zmb/r5aW/9zB + wf/gwsL/y66u/4ZwcP9ENjb/tJaW/9m7u/+edHL/0tHR/59xcf/GwcH/18/P/5xubP/burr/GhYW/wAA + AP8QEBD/GRkZ/w8PD/8BDgH/TZdO/xhEGP8AFwD/AB8A/xdHGv9LmE3/AyUH/wACAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/083Nv/Gp6b/17Gx/9avr//Tra3/yqSk/9Sqqv/FmZj/c1BOyQAAAHuVY2PU2L29/7yj + o//fxsb/4sfH/8esrP+Ebm7/Tj4+/0EzM/85LCz/s5SU/97Bwf+fc3H/nG9t/5lqaP+lgoH/v6Sj/5xt + bP/cvLz/NzU0/26Tbv9pa2n/YmJi/1xcXP9QZ1H/UZVR/wAOAP8AAAD/AAsA/wEYAv9IlUn/DjIQ/wAF + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/1I4N//Iqqr/17Cw/9Ovr/+Sjo7/SUdH/7OSkv/EmJj/c1BOyQAA + AHuVY2PU2Ly8/+TMzP/Dqqr/hW5u/1pHR/9QPz//Rzg4/z4xMf81Kir/spKS/+PHx//r3Nz/4MzM/9W8 + vP/Kraz/zbGw/5xta//ev7//WFVU/4esh/94iXj/aWlp/2NjY/92l3b/bY5t/xwfHP8AAAD/AAAA/wAI + AP8sYyz/IE4g/wAFAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1Q6Of/Kraz/1q+v/9G4uP++vr7/Wlpa/3xu + bv/El5f/c1BOyQAAAHyVY2PU17q6/411df9nUVH/XkpK/1VDQ/9MPDz/QzU1/zouLv8yJyf/sJGR/+PI + yP/v4eH/7t/f/+7e3v/t3Nz/6NXV/5xta//fwcH/W1hY/4KTgv+Hq4f/b29v/2lqaf+EsoT/ZnJm/1dY + V/8tLS3/AQEB/wAAAP8TLxP/LnEu/wABAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1c8O//MsK//1q6u/9e0 + tP/v7Oz/q6ur/7eamv/El5f/dlFQywAAAH6VY2PU1rm5/3ZfX/9kTk7/W0dH/1JAQP9JOTn/QDIy/0s8 + PP+WfHz/1K2t/+LHx//v4OD/uK6u/5WNjf/Vxsb/6NTU/5xtbP/gxMP/X1xc/4KDgv+OuI7/eoN6/3V/ + df+GtIb/ZGVk/15eXv9ZWVn/PT09/wYGBv8CBgL/MYQx/wYSBv8AAAD/AQQB/wweDP8FBQX/AAAA/1k+ + Pf/OtLP/1q2t/9WsrP/Ura3/0ays/9Kmpv/FmJf/eVRTzgAAAH+VY2PU1be3/3NcXP9gTEz/V0VF/04+ + Pv9GNzf/l319/9Sxsf/YsrL/1q6u/+LGxv/f0tL/b29v/1xcXP9ZVlb/5tPT/51vbf/ixsb/Yl9f/4iI + iP+KoIr/i7KL/4iviP9+l37/a2tr/2VlZf9fX1//WVlZ/0pKSv8gISD/KmAq/ypXKv8mJib/OVI5/z96 + P/8rKyv/GRkZ/1s/Pv/Qtrb/1a2t/9KoqP/Cl5b/1Kur/9Klpf/Fl5f/eVRTzgAAAH+VY2PU1ba2/29Z + Wf9eSkr/eWNj/049Pf9DNTX/1LKy/9izs//XsLD/1a2t/+LGxv/bz8//urq6/3Z2dv9JSUn/4c3N/5xu + bP/iyMj/ZmNj/46Ojv+JiYn/iqCK/4afhv93eXf/cXFx/2tra/9mZmb/YGBg/1paWv9UVFT/U15T/16c + Xv9GU0b/SYBJ/z1aPf8xMTH/Kysr/2ZJR//Tu7r/1ays/82jo/+ieXf/3djY/9Glpf/Elpb/eVRTzgAA + AH+VY2PU1LW1/2xXV/94YmL/3Ly8/04+Pv8/MjL/1LCw/9iysv/Wr6//1aur/+HFxf/s3d3/vLm5/3Nz + c/+Nhob/59LS/5xubP/jycn/b2xs/5WVlf+Pj4//iYmJ/4ODg/99fX3/eHh4/3Jycv9sbGz/ZmZm/2Fh + Yf9bW1v/VVVV/1d0V/9Xmlf/TYdN/z5APv84ODj/MjIy/21QT//Vv77/1Kur/9Cmpf+cbmz/nnNy/8ue + nf/ElpX/eVRTzgAAAH+VY2PU07S0/2lUVP92YWH/27u7/0o7O/88Ly//06+v/9ewsP/Vra3/1Kqq/+DE + xP7t3d3/69ra/+HQ0P/q19f/6NTU/51wbv/gxsb/saGh/6CYmP+FgYH/cnFx/3BwcP95eXn/fX19/3h4 + eP9zc3P/bW1t/2dnZ/9hYWH/XFxc/1ZWVv9RVVH/Sk1K/0RERP8+Pj7/OTk5/3NUUv/YxcT/1Kur/9Oo + qP/NoaH/w5aW/8+hof/ElZX/eVRTzgAAAH+VY2PU07Oz/2ZRUf9zXl7/2rq6/0c4OP9VRET/1K+v/9av + r//VrKz/06io/+DDw/7t3Nz/7Nra/+vY2P/q19f/6dXV/6+Ihv+4kpH/4MfH/+jT0//p1NT/5tPT/9XE + xP+4qqr/oZaW/5CJif+Aenr/bWpq/1taWv9UU1P/WVlZ/1tbW/9XV1f/UVFR/0tLS/9FRUX/Pz8//3VW + VP/ayMf/1a2t/8+lpf+MeHj/f2xs/8KYmP/DlJT/eVRTzgAAAH+VY2PU0rGx/2JPT/9xXFz/2rm5/6SI + iP/WsbH/17Gx/9Wtrf/Uqqr/0qen/9/Cwv7s29v/69nZ/+rX1//p1tb/6NTU/9/Gxv+uhoT/m2xq/6V6 + ef+zjYz/v52c/8qtrP/VvLv/4MvL/+rZ2f/w4eH/8ePj//Dj4//l2tr/ysHB/7Grq/+dmJj/iIWF/3Nx + cf9cW1v/QUFB/3lZWP/ezs3/1q2t/7GUlP9wcHD/WFhY/2tbW//DlJP/eVRTzgAAAIGVY2PU0rCw/19M + TP9uWVn/27m5/9m1tf/YsrL/1q+v/9WsrP/Tqan/0qWl/9/Cwv7s2tr/69jY/+rX1//p1dX/6NPT/+fR + 0f/mz8//3sTE/82urf/AnJz/tY6N/6yCgf+jd3X/m21r/5praf+gdHL/q4OB/7aTkf/Co6L/z7a1/9zJ + yP/q3dz/9e3t//jy8v/59PT/9/Pz//n19f/69vb/06mp/8Cnp/+6urr/a2tr/15VVf/ElZT/fldW0wAA + AIKVY2PU0a+v/1xJSf9vWlr/2re3/9m0tP/XsbH/1q6u/9Opqf7Pp6f317q68eve3vrx5eX+7+Hh/u3d + 3f7r2dn+6dXV/ufR0f7lzs7+5c3N/+TLy//jycn/4sfH/+HFxf/gw8P/38HB/9i3t//Oq6v/xaCf/7yU + k/+ziYj/qn59/6Fzcf+aa2r/m21r/6d/ff+1k5L/xKin/9XBwP/bxcT/0aWl/8+mpv+nn5//bmtr/6GC + gv/ElJT/fVdV0wAAAIKVY2PU0a6u/56EhP/SsbH/2ba2/9iysv/Vrq7+1LOz9d7JyfPu5OT58+np//Po + 6P/y5ub/8eXl//Hk5P/w4uL/7+Hh/+/g4P/t3d3+69ra/unW1v7n09P+5s/P/uTLy/7ix8f+4MPD/t7A + wP7cvb3+3Lu7/9u6uv/buLj/2ra2/9m0tP/WsLD/zaWl/8OZmP+6jo3/sYSD/6d5eP+ecG7/zJ+f/9Gk + pP/QoqL/zp+f/86env/Ek5P/fVdV0wAAAIKVY2PU0a2t/9y6uv/at7f/17S0+9u+vvbm1dX28ebm/vLm + 5v/x5eX/8ePj//Di4v/v4eH/7uDg/+7e3v/t3d3/7Nzc/+za2v/r2dn/6tjY/+rW1v/p1dX/6NPT/+jS + 0v/n0dH/5s/P/+XNzf7jy8v+4sjI/uDExP7ewcH+3b29/tu5uf7Ztrb+17Ky/tWurv7VrKz/1Kqq/9Oo + qP/Spqb/0aWl/9Cjo//PoaH/z5+f/86dnf/Dk5L/gVlX1AAAAHGWZ2bV0Kys/tu8vPrizMz47d/f+vHl + 5f/w4+P/8OLi/+/h4f/u39//7t7e/+3d3f/s29v/7Nra/+vZ2f/q19f/6tbW/+nV1f/o09P/6NLS/+fR + 0f/mz8//5s7O/+XNzf/ky8v/48rK/+PJyf/ix8f/4sbG/+HFxf/gw8P/4MLC/9/Bwf/ev7//3r6+/9y7 + u/7bubn+2ba2/teysv7Vr6/+1Kur/tKnp/7QpKT+zqCg/siXl/60g4L/glpYyQAAADuXaGahnnFv/ql+ + fv6yior/uZSU/8Cenv/HqKj/zrGx/9W6uv/bw8P/4cvL/+bR0f/p1dX/6dTU/+jT0//n0tL/59DQ/+bP + z//lzs7/5czM/+TLy//jysr/48jI/+LHx//hxsb/4cTE/+DDw//fwsL/38DA/96/v//evr7/3by8/9y7 + u//curr/27i4/9q3t//atrb/2bS0/9izs//XsbH/0Kio/8GVlf+xg4P/onFx/phnZv2TZWTWa0lGTAAA + AAp/X18IkWVlP49eXlmQX19ukF9fhJJhYZmSYGCuk2Jiw5ZkZNiWZGTql2Zm+ZpoaP6ebW3/o3V1/6p9 + ff+whob/t46O/72Wlv/Dnp7/yaWl/86trf/Us7P/2bq6/92+vv/ewMD/3r+//92+vv/dvLz/3Lu7/9u6 + uv/buLj/2re3/9q2tv/ZtLT/2LOz/9exsf/Pp6f/wJSU/7CCgv+hcHD/mGZm+5FiYtGMXV2Xf1ZWXGlG + RiMAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/f38CjVVVCZNi + YhqRY2MxkF9fR49fX16PXl50kF9fiZJhYZ6SYWGylGJiyJVjY9yXZGTvmGZm/JpoaP+ebGz/o3Nz/6l6 + ev+ugYH/s4eH/7mNjf++k5P/w5qZ/8Scm/++lJP/r4GB/6Bvb/+YZmb6kWFhzotcXJOBVVVYZENDHQAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/AAACi1xcC4ta + Wh+QXV02jF5eTZBgYGOQX194kGBgjZJiYqOTYmK3lWVlzpVnZtaTZmPHjF5ekYFWVlRjOzsYAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gA////////8AAP///////AAAH/// + ///4AAAD//////AAAAB/////wAAAAAf///+AAAAAAP///wAAAAAAH///AAAAAAAB//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAP///+AAAAAP//////4AAP/ + //8= + + + \ No newline at end of file diff --git a/Nifscan/FormVC.Designer.cs b/Nifscan/FormVC.Designer.cs new file mode 100644 index 0000000..63fbbce --- /dev/null +++ b/Nifscan/FormVC.Designer.cs @@ -0,0 +1,241 @@ +namespace Nifscan +{ + partial class FormVC + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.NumericUpDown numericUpDown4; + private System.Windows.Forms.NumericUpDown numericUpDown3; + private System.Windows.Forms.NumericUpDown numericUpDown2; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox3; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.numericUpDown4 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.SuspendLayout(); + // + // numericUpDown4 + // + this.numericUpDown4.DecimalPlaces = 6; + this.numericUpDown4.Enabled = false; + this.numericUpDown4.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown4.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown4.Location = new System.Drawing.Point(135, 67); + this.numericUpDown4.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown4.Name = "numericUpDown4"; + this.numericUpDown4.Size = new System.Drawing.Size(77, 21); + this.numericUpDown4.TabIndex = 5; + this.numericUpDown4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown4.ValueChanged += new System.EventHandler(this.numericUpDown4_ValueChanged); + // + // numericUpDown3 + // + this.numericUpDown3.DecimalPlaces = 3; + this.numericUpDown3.Enabled = false; + this.numericUpDown3.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown3.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown3.Location = new System.Drawing.Point(56, 76); + this.numericUpDown3.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Size = new System.Drawing.Size(58, 21); + this.numericUpDown3.TabIndex = 4; + this.numericUpDown3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown3.ValueChanged += new System.EventHandler(this.numericUpDown3_ValueChanged); + // + // numericUpDown2 + // + this.numericUpDown2.DecimalPlaces = 3; + this.numericUpDown2.Enabled = false; + this.numericUpDown2.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown2.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown2.Location = new System.Drawing.Point(56, 56); + this.numericUpDown2.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(58, 21); + this.numericUpDown2.TabIndex = 3; + this.numericUpDown2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown2_ValueChanged); + // + // numericUpDown1 + // + this.numericUpDown1.DecimalPlaces = 3; + this.numericUpDown1.Enabled = false; + this.numericUpDown1.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown1.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown1.Location = new System.Drawing.Point(56, 36); + this.numericUpDown1.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(58, 21); + this.numericUpDown1.TabIndex = 2; + this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged); + // + // label9 + // + this.label9.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label9.Location = new System.Drawing.Point(135, 39); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(77, 25); + this.label9.TabIndex = 0; + this.label9.Text = "Alpha:"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label8 + // + this.label8.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label8.Location = new System.Drawing.Point(10, 75); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(40, 20); + this.label8.TabIndex = 0; + this.label8.Text = "B"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label7 + // + this.label7.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label7.Location = new System.Drawing.Point(10, 55); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(40, 20); + this.label7.TabIndex = 0; + this.label7.Text = "G"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label6 + // + this.label6.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label6.Location = new System.Drawing.Point(10, 35); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(40, 20); + this.label6.TabIndex = 0; + this.label6.Text = "R"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // checkBox2 + // + this.checkBox2.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBox2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox2.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox2.Location = new System.Drawing.Point(143, 7); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(70, 25); + this.checkBox2.TabIndex = 1; + this.checkBox2.Text = "Alpha"; + this.checkBox2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + // + // checkBox1 + // + this.checkBox1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox1.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox1.Location = new System.Drawing.Point(12, 7); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(70, 25); + this.checkBox1.TabIndex = 0; + this.checkBox1.Text = "Color"; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // checkBox3 + // + this.checkBox3.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox3.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox3.Location = new System.Drawing.Point(12, 108); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(201, 25); + this.checkBox3.TabIndex = 1; + this.checkBox3.Text = "Remove white Vertex Colors"; + this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged); + // + // FormVC + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(224, 138); + this.Controls.Add(this.numericUpDown4); + this.Controls.Add(this.numericUpDown3); + this.Controls.Add(this.numericUpDown2); + this.Controls.Add(this.numericUpDown1); + this.Controls.Add(this.label9); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.checkBox3); + this.Controls.Add(this.checkBox2); + this.Controls.Add(this.checkBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormVC"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "VertexColors"; + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + this.ResumeLayout(false); + + } + } +} \ No newline at end of file diff --git a/Nifscan/FormVC.cs b/Nifscan/FormVC.cs new file mode 100644 index 0000000..15661dd --- /dev/null +++ b/Nifscan/FormVC.cs @@ -0,0 +1,83 @@ +using System; +using System.Windows.Forms; + +namespace Nifscan +{ + public partial class FormVC : Form + { + public FormVC() + { + InitializeComponent(); + checkBox1.Enabled = !FormMain.fixesOn; + checkBox2.Enabled = !FormMain.fixesOn; + checkBox1.Checked = FormMain.vcColor; + checkBox2.Checked = FormMain.vcAlpha; + checkBox3.Checked = FormMain.vcRemove; + numericUpDown1.Value = (decimal)FormMain.vcR; + numericUpDown2.Value = (decimal)FormMain.vcG; + numericUpDown3.Value = (decimal)FormMain.vcB; + numericUpDown4.Value = (decimal)FormMain.vcA; + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + FormMain.vcColor = checkBox1.Checked; + numericUpDown1.Enabled = checkBox1.Checked; + numericUpDown2.Enabled = checkBox1.Checked; + numericUpDown3.Enabled = checkBox1.Checked; + changeButton(); + } + + private void checkBox2_CheckedChanged(object sender, EventArgs e) + { + FormMain.vcAlpha = checkBox2.Checked; + numericUpDown4.Enabled = checkBox2.Checked; + changeButton(); + } + + private void numericUpDown1_ValueChanged(object sender, EventArgs e) + { + FormMain.vcR = (float)numericUpDown1.Value; + } + + private void numericUpDown2_ValueChanged(object sender, EventArgs e) + { + FormMain.vcG = (float)numericUpDown2.Value; + } + + private void numericUpDown3_ValueChanged(object sender, EventArgs e) + { + FormMain.vcB = (float)numericUpDown3.Value; + } + + private void numericUpDown4_ValueChanged(object sender, EventArgs e) + { + FormMain.vcA = (float)numericUpDown4.Value; + } + + private void checkBox3_CheckedChanged(object sender, EventArgs e) + { + FormMain.vcRemove = checkBox3.Checked; + if (checkBox3.Checked) + { + checkBox1.Checked = false; + checkBox2.Checked = false; + checkBox1.Enabled = false; + checkBox2.Enabled = false; + checkBox1_CheckedChanged(this, new EventArgs()); + checkBox2_CheckedChanged(this, new EventArgs()); + } + else if (!FormMain.fixesOn) + { + checkBox1.Enabled = true; + checkBox2.Enabled = true; + } + changeButton(); + } + + private void changeButton() + { + FormMain.formMain.buttonColorVC(checkBox1.Checked || checkBox2.Checked || checkBox3.Checked); + } + } +} diff --git a/Nifscan/FormVC.resx b/Nifscan/FormVC.resx new file mode 100644 index 0000000..e8ae276 --- /dev/null +++ b/Nifscan/FormVC.resx @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/Nifscan/FormVer.Designer.cs b/Nifscan/FormVer.Designer.cs new file mode 100644 index 0000000..d34924d --- /dev/null +++ b/Nifscan/FormVer.Designer.cs @@ -0,0 +1,283 @@ +namespace Nifscan +{ + partial class FormVer + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox checkBox4; + private System.Windows.Forms.CheckBox checkBox5; + private System.Windows.Forms.CheckBox checkBox6; + private System.Windows.Forms.CheckBox checkBox7; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.NumericUpDown numericUpDown2; + private System.Windows.Forms.NumericUpDown numericUpDown3; + private System.Windows.Forms.NumericUpDown numericUpDown4; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.checkBox5 = new System.Windows.Forms.CheckBox(); + this.checkBox6 = new System.Windows.Forms.CheckBox(); + this.label1 = new System.Windows.Forms.Label(); + this.numericUpDown4 = new System.Windows.Forms.NumericUpDown(); + this.checkBox7 = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit(); + this.SuspendLayout(); + // + // checkBox1 + // + this.checkBox1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox1.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox1.Location = new System.Drawing.Point(12, 68); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(44, 25); + this.checkBox1.TabIndex = 7; + this.checkBox1.Text = "X"; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // numericUpDown1 + // + this.numericUpDown1.DecimalPlaces = 6; + this.numericUpDown1.Enabled = false; + this.numericUpDown1.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown1.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown1.Location = new System.Drawing.Point(129, 70); + this.numericUpDown1.Maximum = new decimal(new int[] { + 100000000, + 0, + 0, + 0}); + this.numericUpDown1.Minimum = new decimal(new int[] { + 100000000, + 0, + 0, + -2147483648}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(145, 21); + this.numericUpDown1.TabIndex = 8; + this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown1.Value = new decimal(new int[] { + 100000000, + 0, + 0, + -2147483648}); + this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown4_ValueChanged); + // + // checkBox2 + // + this.checkBox2.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox2.Location = new System.Drawing.Point(62, 68); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(61, 25); + this.checkBox2.TabIndex = 7; + this.checkBox2.Text = "Hard"; + this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + // + // numericUpDown2 + // + this.numericUpDown2.DecimalPlaces = 6; + this.numericUpDown2.Enabled = false; + this.numericUpDown2.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown2.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown2.Location = new System.Drawing.Point(129, 101); + this.numericUpDown2.Maximum = new decimal(new int[] { + 100000000, + 0, + 0, + 0}); + this.numericUpDown2.Minimum = new decimal(new int[] { + 100000000, + 0, + 0, + -2147483648}); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(145, 21); + this.numericUpDown2.TabIndex = 8; + this.numericUpDown2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown2.Value = new decimal(new int[] { + 100000000, + 0, + 0, + -2147483648}); + this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged); + // + // numericUpDown3 + // + this.numericUpDown3.DecimalPlaces = 6; + this.numericUpDown3.Enabled = false; + this.numericUpDown3.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown3.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDown3.Location = new System.Drawing.Point(129, 132); + this.numericUpDown3.Maximum = new decimal(new int[] { + 100000000, + 0, + 0, + 0}); + this.numericUpDown3.Minimum = new decimal(new int[] { + 100000000, + 0, + 0, + -2147483648}); + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Size = new System.Drawing.Size(145, 21); + this.numericUpDown3.TabIndex = 8; + this.numericUpDown3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown3.Value = new decimal(new int[] { + 100000000, + 0, + 0, + -2147483648}); + this.numericUpDown3.ValueChanged += new System.EventHandler(this.numericUpDown2_ValueChanged); + // + // checkBox3 + // + this.checkBox3.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox3.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox3.Location = new System.Drawing.Point(12, 99); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(44, 25); + this.checkBox3.TabIndex = 7; + this.checkBox3.Text = "Y"; + this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged); + // + // checkBox4 + // + this.checkBox4.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox4.Location = new System.Drawing.Point(62, 99); + this.checkBox4.Name = "checkBox4"; + this.checkBox4.Size = new System.Drawing.Size(61, 25); + this.checkBox4.TabIndex = 7; + this.checkBox4.Text = "Hard"; + this.checkBox4.CheckedChanged += new System.EventHandler(this.checkBox4_CheckedChanged); + // + // checkBox5 + // + this.checkBox5.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox5.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox5.Location = new System.Drawing.Point(12, 130); + this.checkBox5.Name = "checkBox5"; + this.checkBox5.Size = new System.Drawing.Size(44, 25); + this.checkBox5.TabIndex = 7; + this.checkBox5.Text = "Z"; + this.checkBox5.CheckedChanged += new System.EventHandler(this.checkBox5_CheckedChanged); + // + // checkBox6 + // + this.checkBox6.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox6.Location = new System.Drawing.Point(62, 130); + this.checkBox6.Name = "checkBox6"; + this.checkBox6.Size = new System.Drawing.Size(61, 25); + this.checkBox6.TabIndex = 7; + this.checkBox6.Text = "Hard"; + this.checkBox6.CheckedChanged += new System.EventHandler(this.checkBox6_CheckedChanged); + // + // label1 + // + this.label1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.Location = new System.Drawing.Point(9, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(262, 56); + this.label1.TabIndex = 9; + this.label1.Text = "Set vertices coordinates be offset value. Hard - set all vertices coordination be" + + " this value."; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // numericUpDown4 + // + this.numericUpDown4.Enabled = false; + this.numericUpDown4.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.numericUpDown4.Location = new System.Drawing.Point(231, 159); + this.numericUpDown4.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numericUpDown4.Name = "numericUpDown4"; + this.numericUpDown4.Size = new System.Drawing.Size(43, 21); + this.numericUpDown4.TabIndex = 8; + this.numericUpDown4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numericUpDown4.Value = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.numericUpDown4.ValueChanged += new System.EventHandler(this.numericUpDown4_ValueChanged_1); + // + // checkBox7 + // + this.checkBox7.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.checkBox7.ForeColor = System.Drawing.Color.DarkRed; + this.checkBox7.Location = new System.Drawing.Point(12, 157); + this.checkBox7.Name = "checkBox7"; + this.checkBox7.Size = new System.Drawing.Size(213, 25); + this.checkBox7.TabIndex = 7; + this.checkBox7.Text = "Trim coordinates after dot"; + this.checkBox7.CheckedChanged += new System.EventHandler(this.checkBox7_CheckedChanged); + // + // FormVer + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(286, 192); + this.Controls.Add(this.label1); + this.Controls.Add(this.checkBox6); + this.Controls.Add(this.checkBox4); + this.Controls.Add(this.checkBox2); + this.Controls.Add(this.checkBox7); + this.Controls.Add(this.checkBox5); + this.Controls.Add(this.checkBox3); + this.Controls.Add(this.checkBox1); + this.Controls.Add(this.numericUpDown4); + this.Controls.Add(this.numericUpDown3); + this.Controls.Add(this.numericUpDown2); + this.Controls.Add(this.numericUpDown1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormVer"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Vertices"; + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit(); + this.ResumeLayout(false); + + } + } +} \ No newline at end of file diff --git a/Nifscan/FormVer.cs b/Nifscan/FormVer.cs new file mode 100644 index 0000000..2dfae9a --- /dev/null +++ b/Nifscan/FormVer.cs @@ -0,0 +1,92 @@ +using System; +using System.Windows.Forms; + +namespace Nifscan +{ + public partial class FormVer : Form + { + public FormVer() + { + InitializeComponent(); + checkBox1.Checked = FormMain.verX; + checkBox3.Checked = FormMain.verY; + checkBox5.Checked = FormMain.verZ; + checkBox2.Checked = FormMain.verXHard; + checkBox4.Checked = FormMain.verYHard; + checkBox6.Checked = FormMain.verZHard; + checkBox7.Checked = FormMain.verTrim; + numericUpDown1.Value = (decimal)FormMain.verXval; + numericUpDown2.Value = (decimal)FormMain.verYval; + numericUpDown3.Value = (decimal)FormMain.verZval; + numericUpDown4.Value = (decimal)FormMain.verTrimNum; + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + FormMain.verX = checkBox1.Checked; + numericUpDown1.Enabled = checkBox1.Checked; + changeButton(); + } + + private void checkBox2_CheckedChanged(object sender, EventArgs e) + { + FormMain.verXHard = checkBox2.Checked; + } + + private void numericUpDown4_ValueChanged(object sender, EventArgs e) + { + FormMain.verXval = (double)numericUpDown1.Value; + } + + private void checkBox3_CheckedChanged(object sender, EventArgs e) + { + FormMain.verY = checkBox3.Checked; + numericUpDown2.Enabled = checkBox3.Checked; + changeButton(); + } + + private void checkBox4_CheckedChanged(object sender, EventArgs e) + { + FormMain.verYHard = checkBox4.Checked; + } + + private void numericUpDown1_ValueChanged(object sender, EventArgs e) + { + FormMain.verYval = (double)numericUpDown2.Value; + } + + private void checkBox5_CheckedChanged(object sender, EventArgs e) + { + FormMain.verZ = checkBox5.Checked; + numericUpDown3.Enabled = checkBox5.Checked; + changeButton(); + } + + private void checkBox6_CheckedChanged(object sender, EventArgs e) + { + FormMain.verZHard = checkBox6.Checked; + } + + private void numericUpDown2_ValueChanged(object sender, EventArgs e) + { + FormMain.verZval = (double)numericUpDown3.Value; + } + + private void changeButton() + { + FormMain.formMain.buttonColorVer(checkBox1.Checked || checkBox3.Checked || checkBox5.Checked || checkBox7.Checked); + } + + private void checkBox7_CheckedChanged(object sender, EventArgs e) + { + FormMain.verTrim = checkBox7.Checked; + numericUpDown4.Enabled = checkBox7.Checked; + changeButton(); + } + + private void numericUpDown4_ValueChanged_1(object sender, EventArgs e) + { + FormMain.verTrimNum = (int)numericUpDown4.Value; + } + } +} diff --git a/Nifscan/FormVer.resx b/Nifscan/FormVer.resx new file mode 100644 index 0000000..e8ae276 --- /dev/null +++ b/Nifscan/FormVer.resx @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/Nifscan/Nifscan.csproj b/Nifscan/Nifscan.csproj new file mode 100644 index 0000000..d466616 --- /dev/null +++ b/Nifscan/Nifscan.csproj @@ -0,0 +1,146 @@ + + + + + Debug + AnyCPU + {954D1A7F-D909-43EC-A1E2-053ABF7358D6} + WinExe + Properties + Nifscan + Nifscan + v4.0 + 512 + + false + опубликовать\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + favicon.ico + + + Nifscan.Program + + + + + + + + + Form + + + FormEC.cs + + + Form + + + FormMain.cs + + + Form + + + FormVer.cs + + + + + Form + + + FormParallax.cs + + + Form + + + FormVC.cs + + + FormEC.cs + + + FormMain.cs + + + FormVer.cs + + + FormParallax.cs + + + FormVC.cs + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 и x64%29 + true + + + False + Клиентский профиль .NET Framework 3.5 SP1 + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 4.5 + true + + + + + \ No newline at end of file diff --git a/Nifscan/Program.cs b/Nifscan/Program.cs new file mode 100644 index 0000000..7f623f9 --- /dev/null +++ b/Nifscan/Program.cs @@ -0,0 +1,16 @@ +using System; +using System.Windows.Forms; + +namespace Nifscan +{ + static class Program + { + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FormMain()); + } + } +} diff --git a/Nifscan/Properties/AssemblyInfo.cs b/Nifscan/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c94de21 --- /dev/null +++ b/Nifscan/Properties/AssemblyInfo.cs @@ -0,0 +1,13 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] +[assembly: AssemblyVersion("1.0.0.0")] diff --git a/Nifscan/bin/Release/Nifscan.exe b/Nifscan/bin/Release/Nifscan.exe new file mode 100644 index 0000000..4c5b6d8 Binary files /dev/null and b/Nifscan/bin/Release/Nifscan.exe differ diff --git a/Nifscan/bin/Release/Nifscan.exe.config b/Nifscan/bin/Release/Nifscan.exe.config new file mode 100644 index 0000000..58262a1 --- /dev/null +++ b/Nifscan/bin/Release/Nifscan.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Nifscan/bin/Release/Nifscan.pdb b/Nifscan/bin/Release/Nifscan.pdb new file mode 100644 index 0000000..52a50cf Binary files /dev/null and b/Nifscan/bin/Release/Nifscan.pdb differ diff --git a/Nifscan/bin/Release/Nifscan.vshost.exe b/Nifscan/bin/Release/Nifscan.vshost.exe new file mode 100644 index 0000000..8c84517 Binary files /dev/null and b/Nifscan/bin/Release/Nifscan.vshost.exe differ diff --git a/Nifscan/bin/Release/Nifscan.vshost.exe.config b/Nifscan/bin/Release/Nifscan.vshost.exe.config new file mode 100644 index 0000000..58262a1 --- /dev/null +++ b/Nifscan/bin/Release/Nifscan.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Nifscan/bin/Release/Nifscan.vshost.exe.manifest b/Nifscan/bin/Release/Nifscan.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/Nifscan/bin/Release/Nifscan.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Nifscan/favicon.ico b/Nifscan/favicon.ico new file mode 100644 index 0000000..1d1164f Binary files /dev/null and b/Nifscan/favicon.ico differ diff --git a/Nifscan/obj/Release/Nifscan.FormEC.resources b/Nifscan/obj/Release/Nifscan.FormEC.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Nifscan/obj/Release/Nifscan.FormEC.resources differ diff --git a/Nifscan/obj/Release/Nifscan.FormMain.resources b/Nifscan/obj/Release/Nifscan.FormMain.resources new file mode 100644 index 0000000..e8ac659 Binary files /dev/null and b/Nifscan/obj/Release/Nifscan.FormMain.resources differ diff --git a/Nifscan/obj/Release/Nifscan.FormParallax.resources b/Nifscan/obj/Release/Nifscan.FormParallax.resources new file mode 100644 index 0000000..e8ac659 Binary files /dev/null and b/Nifscan/obj/Release/Nifscan.FormParallax.resources differ diff --git a/Nifscan/obj/Release/Nifscan.FormVC.resources b/Nifscan/obj/Release/Nifscan.FormVC.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Nifscan/obj/Release/Nifscan.FormVC.resources differ diff --git a/Nifscan/obj/Release/Nifscan.FormVer.resources b/Nifscan/obj/Release/Nifscan.FormVer.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Nifscan/obj/Release/Nifscan.FormVer.resources differ diff --git a/Nifscan/obj/Release/Nifscan.csproj.FileListAbsolute.txt b/Nifscan/obj/Release/Nifscan.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..c0d0be8 --- /dev/null +++ b/Nifscan/obj/Release/Nifscan.csproj.FileListAbsolute.txt @@ -0,0 +1,11 @@ +C:\Build\Nifscan\Nifscan\bin\Release\Nifscan.exe.config +C:\Build\Nifscan\Nifscan\bin\Release\Nifscan.exe +C:\Build\Nifscan\Nifscan\bin\Release\Nifscan.pdb +C:\Build\Nifscan\Nifscan\obj\Release\Nifscan.FormEC.resources +C:\Build\Nifscan\Nifscan\obj\Release\Nifscan.FormMain.resources +C:\Build\Nifscan\Nifscan\obj\Release\Nifscan.FormVer.resources +C:\Build\Nifscan\Nifscan\obj\Release\Nifscan.FormParallax.resources +C:\Build\Nifscan\Nifscan\obj\Release\Nifscan.FormVC.resources +C:\Build\Nifscan\Nifscan\obj\Release\Nifscan.csproj.GenerateResource.Cache +C:\Build\Nifscan\Nifscan\obj\Release\Nifscan.exe +C:\Build\Nifscan\Nifscan\obj\Release\Nifscan.pdb diff --git a/Nifscan/obj/Release/Nifscan.csproj.GenerateResource.Cache b/Nifscan/obj/Release/Nifscan.csproj.GenerateResource.Cache new file mode 100644 index 0000000..6029ff3 Binary files /dev/null and b/Nifscan/obj/Release/Nifscan.csproj.GenerateResource.Cache differ diff --git a/Nifscan/obj/Release/Nifscan.exe b/Nifscan/obj/Release/Nifscan.exe new file mode 100644 index 0000000..4c5b6d8 Binary files /dev/null and b/Nifscan/obj/Release/Nifscan.exe differ diff --git a/Nifscan/obj/Release/Nifscan.pdb b/Nifscan/obj/Release/Nifscan.pdb new file mode 100644 index 0000000..52a50cf Binary files /dev/null and b/Nifscan/obj/Release/Nifscan.pdb differ