diff --git a/pk3DS/Main.cs b/pk3DS/Main.cs index aadc668..d40b321 100644 --- a/pk3DS/Main.cs +++ b/pk3DS/Main.cs @@ -249,7 +249,23 @@ private void B_Item_Click(object sender, EventArgs e) } private void B_Move_Click(object sender, EventArgs e) { - Util.Alert("Not implemented yet."); + if (threads > 0) { Util.Alert("Please wait for all operations to finish first."); return; } + new Thread(() => + { + string toEdit = "move"; + string GARC = getGARCFileName(toEdit); + threadGet(TB_Path.Text + GARC, toEdit, true, true); + while (threads > 0) // Let threads complete + Thread.Sleep(100); + + Invoke((Action)(() => { new Moves(oras).ShowDialog(); })); + + //// When closed, create a new thread to set the GARC back. + //threadSet(TB_Path.Text + GARC, toEdit); + //while (threads > 0) // Let threads complete + // Thread.Sleep(100); + //if (Directory.Exists(toEdit)) Directory.Delete(toEdit, true); + }).Start(); } private void B_LevelUp_Click(object sender, EventArgs e) { @@ -425,8 +441,6 @@ private void L_About_Click(object sender, EventArgs e) "Mega Evolution Editor (MEE): Huntereb & SciresM" + Environment.NewLine + "Evolutions, Moves, and Items and more have yet to be implemented.", "Big thanks to the ProjectPokemon community!"); - } - - + } } } \ No newline at end of file diff --git a/pk3DS/MEE.Designer.cs b/pk3DS/Subforms/MEE.Designer.cs similarity index 100% rename from pk3DS/MEE.Designer.cs rename to pk3DS/Subforms/MEE.Designer.cs diff --git a/pk3DS/MEE.cs b/pk3DS/Subforms/MEE.cs similarity index 100% rename from pk3DS/MEE.cs rename to pk3DS/Subforms/MEE.cs diff --git a/pk3DS/MEE.resx b/pk3DS/Subforms/MEE.resx similarity index 100% rename from pk3DS/MEE.resx rename to pk3DS/Subforms/MEE.resx diff --git a/pk3DS/Subforms/Moves.Designer.cs b/pk3DS/Subforms/Moves.Designer.cs new file mode 100644 index 0000000..363f653 --- /dev/null +++ b/pk3DS/Subforms/Moves.Designer.cs @@ -0,0 +1,631 @@ +namespace pk3DS +{ + partial class Moves + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.L_Type = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.L_Move = new System.Windows.Forms.Label(); + this.CB_Type = new System.Windows.Forms.ComboBox(); + this.CB_Category = new System.Windows.Forms.ComboBox(); + this.L_Category = new System.Windows.Forms.Label(); + this.L_BP = new System.Windows.Forms.Label(); + this.L_PP = new System.Windows.Forms.Label(); + this.L_Min = new System.Windows.Forms.Label(); + this.L_Max = new System.Windows.Forms.Label(); + this.L_Priority = new System.Windows.Forms.Label(); + this.NUD_HitMax = new System.Windows.Forms.NumericUpDown(); + this.NUD_HitMin = new System.Windows.Forms.NumericUpDown(); + this.NUD_Priority = new System.Windows.Forms.NumericUpDown(); + this.NUD_PP = new System.Windows.Forms.NumericUpDown(); + this.NUD_Power = new System.Windows.Forms.NumericUpDown(); + this.NUD_TrapMin = new System.Windows.Forms.NumericUpDown(); + this.L_TrapMin = new System.Windows.Forms.Label(); + this.NUD_TrapMax = new System.Windows.Forms.NumericUpDown(); + this.L_TrapMax = new System.Windows.Forms.Label(); + this.NUD_Recoil = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.NUD_Heal = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.NUD_CritStage = new System.Windows.Forms.NumericUpDown(); + this.L_CritStage = new System.Windows.Forms.Label(); + this.NUD_Flinch = new System.Windows.Forms.NumericUpDown(); + this.label4 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.comboBox4 = new System.Windows.Forms.ComboBox(); + this.comboBox3 = new System.Windows.Forms.ComboBox(); + this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.L_Stage3 = new System.Windows.Forms.Label(); + this.L_Stage2 = new System.Windows.Forms.Label(); + this.L_Stage1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.L_Influcts = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TrapMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TrapMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + this.SuspendLayout(); + // + // L_Type + // + this.L_Type.AutoSize = true; + this.L_Type.Location = new System.Drawing.Point(24, 49); + this.L_Type.Name = "L_Type"; + this.L_Type.Size = new System.Drawing.Size(34, 13); + this.L_Type.TabIndex = 0; + this.L_Type.Text = "Type:"; + this.L_Type.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(61, 16); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(121, 21); + this.comboBox1.TabIndex = 1; + // + // L_Move + // + this.L_Move.AutoSize = true; + this.L_Move.Location = new System.Drawing.Point(18, 19); + this.L_Move.Name = "L_Move"; + this.L_Move.Size = new System.Drawing.Size(37, 13); + this.L_Move.TabIndex = 2; + this.L_Move.Text = "Move:"; + this.L_Move.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Type + // + this.CB_Type.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Type.FormattingEnabled = true; + this.CB_Type.Location = new System.Drawing.Point(71, 46); + this.CB_Type.Name = "CB_Type"; + this.CB_Type.Size = new System.Drawing.Size(99, 21); + this.CB_Type.TabIndex = 3; + // + // CB_Category + // + this.CB_Category.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Category.FormattingEnabled = true; + this.CB_Category.Location = new System.Drawing.Point(71, 73); + this.CB_Category.Name = "CB_Category"; + this.CB_Category.Size = new System.Drawing.Size(99, 21); + this.CB_Category.TabIndex = 4; + // + // L_Category + // + this.L_Category.AutoSize = true; + this.L_Category.Location = new System.Drawing.Point(6, 76); + this.L_Category.Name = "L_Category"; + this.L_Category.Size = new System.Drawing.Size(52, 13); + this.L_Category.TabIndex = 5; + this.L_Category.Text = "Category:"; + this.L_Category.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_BP + // + this.L_BP.AutoSize = true; + this.L_BP.Location = new System.Drawing.Point(18, 111); + this.L_BP.Name = "L_BP"; + this.L_BP.Size = new System.Drawing.Size(40, 13); + this.L_BP.TabIndex = 7; + this.L_BP.Text = "Power:"; + this.L_BP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_PP + // + this.L_PP.AutoSize = true; + this.L_PP.Location = new System.Drawing.Point(7, 143); + this.L_PP.Name = "L_PP"; + this.L_PP.Size = new System.Drawing.Size(51, 13); + this.L_PP.TabIndex = 8; + this.L_PP.Text = "Base PP:"; + this.L_PP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Min + // + this.L_Min.AutoSize = true; + this.L_Min.Location = new System.Drawing.Point(228, 111); + this.L_Min.Name = "L_Min"; + this.L_Min.Size = new System.Drawing.Size(48, 13); + this.L_Min.TabIndex = 10; + this.L_Min.Text = "Min Hits:"; + this.L_Min.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Max + // + this.L_Max.AutoSize = true; + this.L_Max.Location = new System.Drawing.Point(225, 132); + this.L_Max.Name = "L_Max"; + this.L_Max.Size = new System.Drawing.Size(51, 13); + this.L_Max.TabIndex = 12; + this.L_Max.Text = "Max Hits:"; + this.L_Max.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Priority + // + this.L_Priority.AutoSize = true; + this.L_Priority.Location = new System.Drawing.Point(17, 174); + this.L_Priority.Name = "L_Priority"; + this.L_Priority.Size = new System.Drawing.Size(41, 13); + this.L_Priority.TabIndex = 17; + this.L_Priority.Text = "Priority:"; + // + // NUD_HitMax + // + this.NUD_HitMax.Location = new System.Drawing.Point(282, 130); + this.NUD_HitMax.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_HitMax.Name = "NUD_HitMax"; + this.NUD_HitMax.Size = new System.Drawing.Size(30, 20); + this.NUD_HitMax.TabIndex = 18; + // + // NUD_HitMin + // + this.NUD_HitMin.Location = new System.Drawing.Point(282, 109); + this.NUD_HitMin.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_HitMin.Name = "NUD_HitMin"; + this.NUD_HitMin.Size = new System.Drawing.Size(30, 20); + this.NUD_HitMin.TabIndex = 19; + // + // NUD_Priority + // + this.NUD_Priority.Location = new System.Drawing.Point(64, 172); + this.NUD_Priority.Maximum = new decimal(new int[] { + 8, + 0, + 0, + 0}); + this.NUD_Priority.Minimum = new decimal(new int[] { + 8, + 0, + 0, + -2147483648}); + this.NUD_Priority.Name = "NUD_Priority"; + this.NUD_Priority.Size = new System.Drawing.Size(30, 20); + this.NUD_Priority.TabIndex = 20; + // + // NUD_PP + // + this.NUD_PP.Location = new System.Drawing.Point(64, 141); + this.NUD_PP.Maximum = new decimal(new int[] { + 40, + 0, + 0, + 0}); + this.NUD_PP.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_PP.Name = "NUD_PP"; + this.NUD_PP.Size = new System.Drawing.Size(35, 20); + this.NUD_PP.TabIndex = 21; + this.NUD_PP.Value = new decimal(new int[] { + 40, + 0, + 0, + 0}); + // + // NUD_Power + // + this.NUD_Power.Location = new System.Drawing.Point(64, 109); + this.NUD_Power.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_Power.Name = "NUD_Power"; + this.NUD_Power.Size = new System.Drawing.Size(45, 20); + this.NUD_Power.TabIndex = 22; + // + // NUD_TrapMin + // + this.NUD_TrapMin.Location = new System.Drawing.Point(282, 151); + this.NUD_TrapMin.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_TrapMin.Name = "NUD_TrapMin"; + this.NUD_TrapMin.Size = new System.Drawing.Size(30, 20); + this.NUD_TrapMin.TabIndex = 26; + // + // L_TrapMin + // + this.L_TrapMin.AutoSize = true; + this.L_TrapMin.Location = new System.Drawing.Point(224, 153); + this.L_TrapMin.Name = "L_TrapMin"; + this.L_TrapMin.Size = new System.Drawing.Size(52, 13); + this.L_TrapMin.TabIndex = 23; + this.L_TrapMin.Text = "Min Trap:"; + this.L_TrapMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_TrapMax + // + this.NUD_TrapMax.Location = new System.Drawing.Point(282, 172); + this.NUD_TrapMax.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_TrapMax.Name = "NUD_TrapMax"; + this.NUD_TrapMax.Size = new System.Drawing.Size(30, 20); + this.NUD_TrapMax.TabIndex = 25; + // + // L_TrapMax + // + this.L_TrapMax.AutoSize = true; + this.L_TrapMax.Location = new System.Drawing.Point(221, 174); + this.L_TrapMax.Name = "L_TrapMax"; + this.L_TrapMax.Size = new System.Drawing.Size(55, 13); + this.L_TrapMax.TabIndex = 24; + this.L_TrapMax.Text = "Max Trap:"; + this.L_TrapMax.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Recoil + // + this.NUD_Recoil.Location = new System.Drawing.Point(177, 151); + this.NUD_Recoil.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Recoil.Name = "NUD_Recoil"; + this.NUD_Recoil.Size = new System.Drawing.Size(30, 20); + this.NUD_Recoil.TabIndex = 34; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(120, 153); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(51, 13); + this.label1.TabIndex = 31; + this.label1.Text = "Recoil %:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Heal + // + this.NUD_Heal.Location = new System.Drawing.Point(177, 172); + this.NUD_Heal.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Heal.Name = "NUD_Heal"; + this.NUD_Heal.Size = new System.Drawing.Size(30, 20); + this.NUD_Heal.TabIndex = 33; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(128, 174); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(43, 13); + this.label2.TabIndex = 32; + this.label2.Text = "Heal %:"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_CritStage + // + this.NUD_CritStage.Location = new System.Drawing.Point(177, 109); + this.NUD_CritStage.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_CritStage.Name = "NUD_CritStage"; + this.NUD_CritStage.Size = new System.Drawing.Size(30, 20); + this.NUD_CritStage.TabIndex = 30; + // + // L_CritStage + // + this.L_CritStage.AutoSize = true; + this.L_CritStage.Location = new System.Drawing.Point(115, 111); + this.L_CritStage.Name = "L_CritStage"; + this.L_CritStage.Size = new System.Drawing.Size(56, 13); + this.L_CritStage.TabIndex = 27; + this.L_CritStage.Text = "Crit Stage:"; + this.L_CritStage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Flinch + // + this.NUD_Flinch.Location = new System.Drawing.Point(177, 130); + this.NUD_Flinch.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Flinch.Name = "NUD_Flinch"; + this.NUD_Flinch.Size = new System.Drawing.Size(30, 20); + this.NUD_Flinch.TabIndex = 29; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(122, 132); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(49, 13); + this.label4.TabIndex = 28; + this.label4.Text = "Flinch %:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.numericUpDown1); + this.groupBox1.Controls.Add(this.numericUpDown2); + this.groupBox1.Controls.Add(this.numericUpDown3); + this.groupBox1.Controls.Add(this.comboBox4); + this.groupBox1.Controls.Add(this.comboBox3); + this.groupBox1.Controls.Add(this.comboBox2); + this.groupBox1.Controls.Add(this.L_Stage3); + this.groupBox1.Controls.Add(this.L_Stage2); + this.groupBox1.Controls.Add(this.L_Stage1); + this.groupBox1.Location = new System.Drawing.Point(16, 216); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(179, 100); + this.groupBox1.TabIndex = 35; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Stat Stage Changes"; + // + // numericUpDown1 + // + this.numericUpDown1.Location = new System.Drawing.Point(130, 46); + this.numericUpDown1.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(35, 20); + this.numericUpDown1.TabIndex = 41; + // + // numericUpDown2 + // + this.numericUpDown2.Location = new System.Drawing.Point(130, 68); + this.numericUpDown2.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(35, 20); + this.numericUpDown2.TabIndex = 40; + // + // numericUpDown3 + // + this.numericUpDown3.Location = new System.Drawing.Point(130, 24); + this.numericUpDown3.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Size = new System.Drawing.Size(35, 20); + this.numericUpDown3.TabIndex = 39; + // + // comboBox4 + // + this.comboBox4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox4.FormattingEnabled = true; + this.comboBox4.Location = new System.Drawing.Point(30, 67); + this.comboBox4.Name = "comboBox4"; + this.comboBox4.Size = new System.Drawing.Size(99, 21); + this.comboBox4.TabIndex = 38; + // + // comboBox3 + // + this.comboBox3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox3.FormattingEnabled = true; + this.comboBox3.Location = new System.Drawing.Point(30, 45); + this.comboBox3.Name = "comboBox3"; + this.comboBox3.Size = new System.Drawing.Size(99, 21); + this.comboBox3.TabIndex = 37; + // + // comboBox2 + // + this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Location = new System.Drawing.Point(30, 23); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(99, 21); + this.comboBox2.TabIndex = 36; + // + // L_Stage3 + // + this.L_Stage3.AutoSize = true; + this.L_Stage3.Location = new System.Drawing.Point(8, 70); + this.L_Stage3.Name = "L_Stage3"; + this.L_Stage3.Size = new System.Drawing.Size(16, 13); + this.L_Stage3.TabIndex = 2; + this.L_Stage3.Text = "3:"; + // + // L_Stage2 + // + this.L_Stage2.AutoSize = true; + this.L_Stage2.Location = new System.Drawing.Point(8, 48); + this.L_Stage2.Name = "L_Stage2"; + this.L_Stage2.Size = new System.Drawing.Size(16, 13); + this.L_Stage2.TabIndex = 1; + this.L_Stage2.Text = "2:"; + // + // L_Stage1 + // + this.L_Stage1.AutoSize = true; + this.L_Stage1.Location = new System.Drawing.Point(8, 26); + this.L_Stage1.Name = "L_Stage1"; + this.L_Stage1.Size = new System.Drawing.Size(16, 13); + this.L_Stage1.TabIndex = 0; + this.L_Stage1.Text = "1:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(176, 49); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(55, 13); + this.label3.TabIndex = 36; + this.label3.Text = "Targeting:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Influcts + // + this.L_Influcts.AutoSize = true; + this.L_Influcts.Location = new System.Drawing.Point(191, 76); + this.L_Influcts.Name = "L_Influcts"; + this.L_Influcts.Size = new System.Drawing.Size(40, 13); + this.L_Influcts.TabIndex = 37; + this.L_Influcts.Text = "Inflicts:"; + this.L_Influcts.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Moves + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(472, 537); + this.Controls.Add(this.label3); + this.Controls.Add(this.L_Influcts); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.NUD_Recoil); + this.Controls.Add(this.label1); + this.Controls.Add(this.NUD_Heal); + this.Controls.Add(this.label2); + this.Controls.Add(this.NUD_CritStage); + this.Controls.Add(this.L_CritStage); + this.Controls.Add(this.NUD_Flinch); + this.Controls.Add(this.label4); + this.Controls.Add(this.NUD_TrapMin); + this.Controls.Add(this.L_TrapMin); + this.Controls.Add(this.NUD_TrapMax); + this.Controls.Add(this.L_TrapMax); + this.Controls.Add(this.L_Type); + this.Controls.Add(this.L_BP); + this.Controls.Add(this.CB_Type); + this.Controls.Add(this.NUD_Power); + this.Controls.Add(this.CB_Category); + this.Controls.Add(this.L_Category); + this.Controls.Add(this.NUD_PP); + this.Controls.Add(this.NUD_Priority); + this.Controls.Add(this.NUD_HitMin); + this.Controls.Add(this.L_PP); + this.Controls.Add(this.L_Min); + this.Controls.Add(this.L_Priority); + this.Controls.Add(this.NUD_HitMax); + this.Controls.Add(this.L_Max); + this.Controls.Add(this.L_Move); + this.Controls.Add(this.comboBox1); + this.Name = "Moves"; + this.Text = "Moves"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TrapMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TrapMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label L_Type; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.Label L_Move; + private System.Windows.Forms.ComboBox CB_Type; + private System.Windows.Forms.ComboBox CB_Category; + private System.Windows.Forms.Label L_Category; + private System.Windows.Forms.Label L_BP; + private System.Windows.Forms.Label L_PP; + private System.Windows.Forms.Label L_Min; + private System.Windows.Forms.Label L_Max; + private System.Windows.Forms.Label L_Priority; + private System.Windows.Forms.NumericUpDown NUD_HitMax; + private System.Windows.Forms.NumericUpDown NUD_HitMin; + private System.Windows.Forms.NumericUpDown NUD_Priority; + private System.Windows.Forms.NumericUpDown NUD_PP; + private System.Windows.Forms.NumericUpDown NUD_Power; + private System.Windows.Forms.NumericUpDown NUD_TrapMin; + private System.Windows.Forms.Label L_TrapMin; + private System.Windows.Forms.NumericUpDown NUD_TrapMax; + private System.Windows.Forms.Label L_TrapMax; + private System.Windows.Forms.NumericUpDown NUD_Recoil; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericUpDown NUD_Heal; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.NumericUpDown NUD_CritStage; + private System.Windows.Forms.Label L_CritStage; + private System.Windows.Forms.NumericUpDown NUD_Flinch; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.NumericUpDown numericUpDown2; + private System.Windows.Forms.NumericUpDown numericUpDown3; + private System.Windows.Forms.ComboBox comboBox4; + private System.Windows.Forms.ComboBox comboBox3; + private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.Label L_Stage3; + private System.Windows.Forms.Label L_Stage2; + private System.Windows.Forms.Label L_Stage1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label L_Influcts; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Moves.cs b/pk3DS/Subforms/Moves.cs new file mode 100644 index 0000000..c3e85c4 --- /dev/null +++ b/pk3DS/Subforms/Moves.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.IO; + +namespace pk3DS +{ + public partial class Moves : Form + { + public Moves(bool rom_oras) + { + Util.unpackMini(Directory.GetFiles("move")[0], "WD"); + files = Directory.GetFiles("move"); + InitializeComponent(); + } + string[] files; + string[] StatCategories = new string[] { "None", "Attack", "Defense", "Special Attack", "Special Defense", "Speed", "Accuracy", "Evasion", "All", }; + string[] TypeCategories = new string[] { "Status", "Physical", "Special", }; + string[] TargetingTypes = new string[] { "Single Adjacent Ally/Foe", + "Any Ally", "Any Adjacent Ally", "Single Adjacent Foe", "Everyone but User", "All Foes", + "All Allies", "Self", "All Pokemon on Field", "Single Adjacent Foe (2)", "Entire Field", + "Opponent's Field", "User's Field", "Self", "14", "15", + }; + + private void formClosing(object sender, FormClosingEventArgs e) + { + // setEntry(); + Util.packMini("move", "WD", "0", ".bin", "move"); + } + } +} diff --git a/pk3DS/Subforms/Moves.resx b/pk3DS/Subforms/Moves.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/pk3DS/Subforms/Moves.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/pk3DS/Util.cs b/pk3DS/Util.cs index 61e3096..544c4ae 100644 --- a/pk3DS/Util.cs +++ b/pk3DS/Util.cs @@ -600,5 +600,97 @@ internal static string getExeFSFolder(string a) return check; return null; } + + internal static void packMini(string path, string ident, string fileName, string outExt = null, string outFolder = null) + { + if (outFolder == null) outFolder = path; + if (outExt == null) outExt = ".bin"; + // Create new Binary with the relevant header bytes + byte[] data = new byte[4]; + data[0] = (byte)ident[0]; + data[1] = (byte)ident[1]; + string[] files = Directory.GetFiles(path); + Array.Copy(BitConverter.GetBytes((ushort)files.Length), 0, data, 2, 2); + + int count = files.Length; + int dataOffset = 4 + 4 + count * 4; + + // Start the data filling. + using (MemoryStream dataout = new MemoryStream()) + using (MemoryStream offsetMap = new MemoryStream()) + using (BinaryWriter bd = new BinaryWriter(dataout)) + using (BinaryWriter bo = new BinaryWriter(offsetMap)) + { + // For each file... + for (int i = 0; i < count; i++) + { + // Write File Offset + uint fileOffset = (uint)(dataout.Position + dataOffset); + bo.Write((uint)fileOffset); + + // Write File to Stream + bd.Write(File.ReadAllBytes(files[i])); + + // Pad the Data MemoryStream with Zeroes until len%4=0; + while (dataout.Length % 4 != 0) + bd.Write((byte)0); + // File Offset will be updated as the offset is based off of the Data length. + + // Delete the File + File.Delete(files[i]); + } + // Cap the File + bo.Write((uint)(dataout.Position + dataOffset)); + + using (var newPack = File.Create(Path.Combine(outFolder, fileName + outExt))) + using (var header = new MemoryStream(data)) + { + header.WriteTo(newPack); + offsetMap.WriteTo(newPack); + dataout.WriteTo(newPack); + } + } + } + internal static void unpackMini(string path, string ident, string outFolder = null) + { + if (outFolder == null) outFolder = Path.GetDirectoryName(path); + + using (var s = new FileStream(path, FileMode.Open)) + using (var br = new BinaryReader(s)) + { + string fx = new string(br.ReadChars(2)); + + if (fx != ident) return; + + ushort count = br.ReadUInt16(); + string namePad = "D" + Math.Ceiling(Math.Log10(count)); + uint[] offsets = new uint[count + 1]; + for (int i = 0; i < count; i++) + offsets[i] = br.ReadUInt32(); + + uint length = br.ReadUInt32(); + offsets[offsets.Length - 1] = length; + + for (int i = 0; i < count; i++) + { + br.BaseStream.Seek(offsets[i], SeekOrigin.Begin); + using (MemoryStream dataout = new MemoryStream()) + { + byte[] data = new byte[0]; + s.CopyTo(dataout, (int)offsets[i]); + int len = (int)offsets[i + 1] - (int)offsets[i]; + + if (len != 0) + { + data = dataout.ToArray(); + Array.Resize(ref data, len); + } + string newFile = Path.Combine(outFolder, i.ToString(namePad) + ".bin"); + File.WriteAllBytes(newFile, data); + } + } + } + File.Delete(path); // File is unpacked. + } } } diff --git a/pk3DS/pk3DS.csproj b/pk3DS/pk3DS.csproj index 17202f7..5feab50 100644 --- a/pk3DS/pk3DS.csproj +++ b/pk3DS/pk3DS.csproj @@ -50,12 +50,18 @@ - + Form - + MEE.cs + + Form + + + Moves.cs + Form @@ -124,9 +130,12 @@ Main.cs - + MEE.cs + + Moves.cs + Evolution.cs