diff --git a/PKHeX.csproj b/PKHeX.csproj
index e34f532fb..bb15760cd 100644
--- a/PKHeX.csproj
+++ b/PKHeX.csproj
@@ -215,6 +215,12 @@
SAV_Pokepuff.cs
+
+ Form
+
+
+ SAV_SimpleTrainer.cs
+
Form
@@ -305,6 +311,9 @@
SAV_Pokepuff.cs
+
+ SAV_SimpleTrainer.cs
+
SAV_SuperTrain.cs
diff --git a/PKX/f1-Main.cs b/PKX/f1-Main.cs
index 26ea74541..f79637ae0 100644
--- a/PKX/f1-Main.cs
+++ b/PKX/f1-Main.cs
@@ -3791,7 +3791,10 @@ namespace PKHeX
}
private void B_OpenTrainerInfo_Click(object sender, EventArgs e)
{
- new SAV_Trainer().ShowDialog();
+ if (SAV.Generation < 6)
+ new SAV_SimpleTrainer().ShowDialog();
+ else if (SAV.Generation == 6)
+ new SAV_Trainer().ShowDialog();
// Refresh conversion info
PKMConverter.updateConfig(SAV.SubRegion, SAV.Country, SAV.ConsoleRegion, SAV.OT, SAV.Gender);
}
diff --git a/SAV/SAV_SimpleTrainer.Designer.cs b/SAV/SAV_SimpleTrainer.Designer.cs
new file mode 100644
index 000000000..e95c93130
--- /dev/null
+++ b/SAV/SAV_SimpleTrainer.Designer.cs
@@ -0,0 +1,746 @@
+namespace PKHeX
+{
+ partial class SAV_SimpleTrainer
+ {
+ ///
+ /// 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.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.L_Started = new System.Windows.Forms.Label();
+ this.CAL_AdventureStartDate = new System.Windows.Forms.DateTimePicker();
+ this.CAL_HoFDate = new System.Windows.Forms.DateTimePicker();
+ this.L_LastSaved = new System.Windows.Forms.Label();
+ this.MT_Seconds = new System.Windows.Forms.MaskedTextBox();
+ this.MT_Hours = new System.Windows.Forms.MaskedTextBox();
+ this.L_Seconds = new System.Windows.Forms.Label();
+ this.L_Hours = new System.Windows.Forms.Label();
+ this.MT_Minutes = new System.Windows.Forms.MaskedTextBox();
+ this.L_Minutes = new System.Windows.Forms.Label();
+ this.CAL_AdventureStartTime = new System.Windows.Forms.DateTimePicker();
+ this.CAL_HoFTime = new System.Windows.Forms.DateTimePicker();
+ this.TB_OTName = new System.Windows.Forms.TextBox();
+ this.CB_Gender = new System.Windows.Forms.ComboBox();
+ this.L_TrainerName = new System.Windows.Forms.Label();
+ this.L_TID = new System.Windows.Forms.Label();
+ this.MT_Money = new System.Windows.Forms.MaskedTextBox();
+ this.L_SID = new System.Windows.Forms.Label();
+ this.L_Money = new System.Windows.Forms.Label();
+ this.MT_TID = new System.Windows.Forms.MaskedTextBox();
+ this.MT_SID = new System.Windows.Forms.MaskedTextBox();
+ this.B_MaxCash = new System.Windows.Forms.Button();
+ this.GB_Map = new System.Windows.Forms.GroupBox();
+ this.NUD_Z = new System.Windows.Forms.NumericUpDown();
+ this.NUD_M = new System.Windows.Forms.NumericUpDown();
+ this.NUD_Y = new System.Windows.Forms.NumericUpDown();
+ this.NUD_X = new System.Windows.Forms.NumericUpDown();
+ this.L_Y = new System.Windows.Forms.Label();
+ this.L_CurrentMap = new System.Windows.Forms.Label();
+ this.L_Z = new System.Windows.Forms.Label();
+ this.L_X = new System.Windows.Forms.Label();
+ this.B_Save = new System.Windows.Forms.Button();
+ this.B_Cancel = new System.Windows.Forms.Button();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.groupBox3 = new System.Windows.Forms.GroupBox();
+ this.CHK_H8 = new System.Windows.Forms.CheckBox();
+ this.CHK_H7 = new System.Windows.Forms.CheckBox();
+ this.CHK_H6 = new System.Windows.Forms.CheckBox();
+ this.CHK_H5 = new System.Windows.Forms.CheckBox();
+ this.CHK_H4 = new System.Windows.Forms.CheckBox();
+ this.CHK_H3 = new System.Windows.Forms.CheckBox();
+ this.CHK_H2 = new System.Windows.Forms.CheckBox();
+ this.CHK_H1 = new System.Windows.Forms.CheckBox();
+ this.CHK_8 = new System.Windows.Forms.CheckBox();
+ this.CHK_7 = new System.Windows.Forms.CheckBox();
+ this.CHK_6 = new System.Windows.Forms.CheckBox();
+ this.CHK_5 = new System.Windows.Forms.CheckBox();
+ this.CHK_4 = new System.Windows.Forms.CheckBox();
+ this.CHK_3 = new System.Windows.Forms.CheckBox();
+ this.CHK_2 = new System.Windows.Forms.CheckBox();
+ this.CHK_1 = new System.Windows.Forms.CheckBox();
+ this.groupBox2.SuspendLayout();
+ this.GB_Map.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_Z)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_M)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_Y)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_X)).BeginInit();
+ this.groupBox1.SuspendLayout();
+ this.groupBox3.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // groupBox2
+ //
+ this.groupBox2.Controls.Add(this.L_Started);
+ this.groupBox2.Controls.Add(this.CAL_AdventureStartDate);
+ this.groupBox2.Controls.Add(this.CAL_HoFDate);
+ this.groupBox2.Controls.Add(this.L_LastSaved);
+ this.groupBox2.Controls.Add(this.MT_Seconds);
+ this.groupBox2.Controls.Add(this.MT_Hours);
+ this.groupBox2.Controls.Add(this.L_Seconds);
+ this.groupBox2.Controls.Add(this.L_Hours);
+ this.groupBox2.Controls.Add(this.MT_Minutes);
+ this.groupBox2.Controls.Add(this.L_Minutes);
+ this.groupBox2.Controls.Add(this.CAL_AdventureStartTime);
+ this.groupBox2.Controls.Add(this.CAL_HoFTime);
+ this.groupBox2.Location = new System.Drawing.Point(12, 98);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(200, 151);
+ this.groupBox2.TabIndex = 70;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "Adventure Info";
+ //
+ // L_Started
+ //
+ this.L_Started.Location = new System.Drawing.Point(4, 51);
+ this.L_Started.Name = "L_Started";
+ this.L_Started.Size = new System.Drawing.Size(80, 20);
+ this.L_Started.TabIndex = 36;
+ this.L_Started.Text = "Game Started:";
+ this.L_Started.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // CAL_AdventureStartDate
+ //
+ this.CAL_AdventureStartDate.Format = System.Windows.Forms.DateTimePickerFormat.Short;
+ this.CAL_AdventureStartDate.Location = new System.Drawing.Point(90, 51);
+ this.CAL_AdventureStartDate.MaxDate = new System.DateTime(2050, 12, 31, 0, 0, 0, 0);
+ this.CAL_AdventureStartDate.MinDate = new System.DateTime(2000, 1, 1, 0, 0, 0, 0);
+ this.CAL_AdventureStartDate.Name = "CAL_AdventureStartDate";
+ this.CAL_AdventureStartDate.Size = new System.Drawing.Size(99, 20);
+ this.CAL_AdventureStartDate.TabIndex = 35;
+ this.CAL_AdventureStartDate.Value = new System.DateTime(2000, 1, 1, 0, 0, 0, 0);
+ //
+ // CAL_HoFDate
+ //
+ this.CAL_HoFDate.Format = System.Windows.Forms.DateTimePickerFormat.Short;
+ this.CAL_HoFDate.Location = new System.Drawing.Point(90, 107);
+ this.CAL_HoFDate.MaxDate = new System.DateTime(4095, 12, 31, 0, 0, 0, 0);
+ this.CAL_HoFDate.Name = "CAL_HoFDate";
+ this.CAL_HoFDate.Size = new System.Drawing.Size(99, 20);
+ this.CAL_HoFDate.TabIndex = 31;
+ this.CAL_HoFDate.Value = new System.DateTime(2000, 1, 1, 0, 0, 0, 0);
+ //
+ // L_LastSaved
+ //
+ this.L_LastSaved.Location = new System.Drawing.Point(4, 107);
+ this.L_LastSaved.Name = "L_LastSaved";
+ this.L_LastSaved.Size = new System.Drawing.Size(80, 20);
+ this.L_LastSaved.TabIndex = 32;
+ this.L_LastSaved.Text = "Hall of Fame:";
+ this.L_LastSaved.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // MT_Seconds
+ //
+ this.MT_Seconds.Location = new System.Drawing.Point(166, 17);
+ this.MT_Seconds.Mask = "00";
+ this.MT_Seconds.Name = "MT_Seconds";
+ this.MT_Seconds.Size = new System.Drawing.Size(22, 20);
+ this.MT_Seconds.TabIndex = 28;
+ this.MT_Seconds.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // MT_Hours
+ //
+ this.MT_Hours.Location = new System.Drawing.Point(44, 17);
+ this.MT_Hours.Mask = "00000";
+ this.MT_Hours.Name = "MT_Hours";
+ this.MT_Hours.Size = new System.Drawing.Size(38, 20);
+ this.MT_Hours.TabIndex = 25;
+ this.MT_Hours.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // L_Seconds
+ //
+ this.L_Seconds.AutoSize = true;
+ this.L_Seconds.Location = new System.Drawing.Point(136, 20);
+ this.L_Seconds.Name = "L_Seconds";
+ this.L_Seconds.Size = new System.Drawing.Size(29, 13);
+ this.L_Seconds.TabIndex = 30;
+ this.L_Seconds.Text = "Sec:";
+ //
+ // L_Hours
+ //
+ this.L_Hours.AutoSize = true;
+ this.L_Hours.Location = new System.Drawing.Point(12, 20);
+ this.L_Hours.Name = "L_Hours";
+ this.L_Hours.Size = new System.Drawing.Size(26, 13);
+ this.L_Hours.TabIndex = 26;
+ this.L_Hours.Text = "Hrs:";
+ //
+ // MT_Minutes
+ //
+ this.MT_Minutes.Location = new System.Drawing.Point(111, 17);
+ this.MT_Minutes.Mask = "00";
+ this.MT_Minutes.Name = "MT_Minutes";
+ this.MT_Minutes.Size = new System.Drawing.Size(22, 20);
+ this.MT_Minutes.TabIndex = 27;
+ this.MT_Minutes.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // L_Minutes
+ //
+ this.L_Minutes.AutoSize = true;
+ this.L_Minutes.Location = new System.Drawing.Point(84, 20);
+ this.L_Minutes.Name = "L_Minutes";
+ this.L_Minutes.Size = new System.Drawing.Size(27, 13);
+ this.L_Minutes.TabIndex = 29;
+ this.L_Minutes.Text = "Min:";
+ //
+ // CAL_AdventureStartTime
+ //
+ this.CAL_AdventureStartTime.CustomFormat = "hh:mm tt";
+ this.CAL_AdventureStartTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+ this.CAL_AdventureStartTime.Location = new System.Drawing.Point(116, 70);
+ this.CAL_AdventureStartTime.MaxDate = new System.DateTime(2050, 12, 31, 0, 0, 0, 0);
+ this.CAL_AdventureStartTime.MinDate = new System.DateTime(2000, 1, 1, 0, 0, 0, 0);
+ this.CAL_AdventureStartTime.Name = "CAL_AdventureStartTime";
+ this.CAL_AdventureStartTime.ShowUpDown = true;
+ this.CAL_AdventureStartTime.Size = new System.Drawing.Size(73, 20);
+ this.CAL_AdventureStartTime.TabIndex = 34;
+ this.CAL_AdventureStartTime.Value = new System.DateTime(2001, 1, 1, 0, 0, 0, 0);
+ //
+ // CAL_HoFTime
+ //
+ this.CAL_HoFTime.CustomFormat = "hh:mm tt";
+ this.CAL_HoFTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+ this.CAL_HoFTime.Location = new System.Drawing.Point(116, 126);
+ this.CAL_HoFTime.MaxDate = new System.DateTime(2050, 12, 31, 0, 0, 0, 0);
+ this.CAL_HoFTime.MinDate = new System.DateTime(2000, 1, 1, 0, 0, 0, 0);
+ this.CAL_HoFTime.Name = "CAL_HoFTime";
+ this.CAL_HoFTime.ShowUpDown = true;
+ this.CAL_HoFTime.Size = new System.Drawing.Size(73, 20);
+ this.CAL_HoFTime.TabIndex = 37;
+ this.CAL_HoFTime.Value = new System.DateTime(2001, 1, 1, 0, 0, 0, 0);
+ //
+ // TB_OTName
+ //
+ this.TB_OTName.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.TB_OTName.Location = new System.Drawing.Point(99, 11);
+ this.TB_OTName.MaxLength = 12;
+ this.TB_OTName.Name = "TB_OTName";
+ this.TB_OTName.Size = new System.Drawing.Size(93, 20);
+ this.TB_OTName.TabIndex = 57;
+ this.TB_OTName.Text = "WWWWWWWWWWWW";
+ this.TB_OTName.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // CB_Gender
+ //
+ this.CB_Gender.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CB_Gender.FormattingEnabled = true;
+ this.CB_Gender.Items.AddRange(new object[] {
+ "♂",
+ "♀"});
+ this.CB_Gender.Location = new System.Drawing.Point(99, 55);
+ this.CB_Gender.Name = "CB_Gender";
+ this.CB_Gender.Size = new System.Drawing.Size(40, 21);
+ this.CB_Gender.TabIndex = 68;
+ //
+ // L_TrainerName
+ //
+ this.L_TrainerName.Location = new System.Drawing.Point(7, 13);
+ this.L_TrainerName.Name = "L_TrainerName";
+ this.L_TrainerName.Size = new System.Drawing.Size(87, 16);
+ this.L_TrainerName.TabIndex = 58;
+ this.L_TrainerName.Text = "Name:";
+ this.L_TrainerName.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_TID
+ //
+ this.L_TID.Location = new System.Drawing.Point(9, 35);
+ this.L_TID.Name = "L_TID";
+ this.L_TID.Size = new System.Drawing.Size(38, 13);
+ this.L_TID.TabIndex = 61;
+ this.L_TID.Text = "TID:";
+ this.L_TID.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // MT_Money
+ //
+ this.MT_Money.Location = new System.Drawing.Point(119, 33);
+ this.MT_Money.Mask = "0000000";
+ this.MT_Money.Name = "MT_Money";
+ this.MT_Money.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
+ this.MT_Money.Size = new System.Drawing.Size(52, 20);
+ this.MT_Money.TabIndex = 59;
+ this.MT_Money.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // L_SID
+ //
+ this.L_SID.Location = new System.Drawing.Point(9, 58);
+ this.L_SID.Name = "L_SID";
+ this.L_SID.Size = new System.Drawing.Size(38, 13);
+ this.L_SID.TabIndex = 62;
+ this.L_SID.Text = "SID:";
+ this.L_SID.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_Money
+ //
+ this.L_Money.AutoSize = true;
+ this.L_Money.Location = new System.Drawing.Point(102, 36);
+ this.L_Money.Name = "L_Money";
+ this.L_Money.Size = new System.Drawing.Size(16, 13);
+ this.L_Money.TabIndex = 60;
+ this.L_Money.Text = "$:";
+ //
+ // MT_TID
+ //
+ this.MT_TID.Location = new System.Drawing.Point(53, 34);
+ this.MT_TID.Mask = "00000";
+ this.MT_TID.Name = "MT_TID";
+ this.MT_TID.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
+ this.MT_TID.Size = new System.Drawing.Size(39, 20);
+ this.MT_TID.TabIndex = 63;
+ this.MT_TID.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ this.MT_TID.TextChanged += new System.EventHandler(this.changeFFFF);
+ //
+ // MT_SID
+ //
+ this.MT_SID.Location = new System.Drawing.Point(53, 55);
+ this.MT_SID.Mask = "00000";
+ this.MT_SID.Name = "MT_SID";
+ this.MT_SID.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
+ this.MT_SID.Size = new System.Drawing.Size(39, 20);
+ this.MT_SID.TabIndex = 64;
+ this.MT_SID.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ this.MT_SID.TextChanged += new System.EventHandler(this.changeFFFF);
+ //
+ // B_MaxCash
+ //
+ this.B_MaxCash.Location = new System.Drawing.Point(172, 33);
+ this.B_MaxCash.Name = "B_MaxCash";
+ this.B_MaxCash.Size = new System.Drawing.Size(20, 20);
+ this.B_MaxCash.TabIndex = 66;
+ this.B_MaxCash.Text = "+";
+ this.B_MaxCash.UseVisualStyleBackColor = true;
+ //
+ // GB_Map
+ //
+ this.GB_Map.Controls.Add(this.NUD_Z);
+ this.GB_Map.Controls.Add(this.NUD_M);
+ this.GB_Map.Controls.Add(this.NUD_Y);
+ this.GB_Map.Controls.Add(this.NUD_X);
+ this.GB_Map.Controls.Add(this.L_Y);
+ this.GB_Map.Controls.Add(this.L_CurrentMap);
+ this.GB_Map.Controls.Add(this.L_Z);
+ this.GB_Map.Controls.Add(this.L_X);
+ this.GB_Map.Location = new System.Drawing.Point(218, 100);
+ this.GB_Map.Name = "GB_Map";
+ this.GB_Map.Size = new System.Drawing.Size(157, 125);
+ this.GB_Map.TabIndex = 71;
+ this.GB_Map.TabStop = false;
+ this.GB_Map.Text = "Map Position";
+ //
+ // NUD_Z
+ //
+ this.NUD_Z.Location = new System.Drawing.Point(93, 68);
+ this.NUD_Z.Maximum = new decimal(new int[] {
+ 65535,
+ 0,
+ 0,
+ 0});
+ this.NUD_Z.Minimum = new decimal(new int[] {
+ 65535,
+ 0,
+ 0,
+ -2147483648});
+ this.NUD_Z.Name = "NUD_Z";
+ this.NUD_Z.Size = new System.Drawing.Size(50, 20);
+ this.NUD_Z.TabIndex = 53;
+ //
+ // NUD_M
+ //
+ this.NUD_M.Location = new System.Drawing.Point(93, 16);
+ this.NUD_M.Maximum = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.NUD_M.Name = "NUD_M";
+ this.NUD_M.Size = new System.Drawing.Size(50, 20);
+ this.NUD_M.TabIndex = 52;
+ //
+ // NUD_Y
+ //
+ this.NUD_Y.Location = new System.Drawing.Point(93, 94);
+ this.NUD_Y.Maximum = new decimal(new int[] {
+ 65535,
+ 0,
+ 0,
+ 0});
+ this.NUD_Y.Name = "NUD_Y";
+ this.NUD_Y.Size = new System.Drawing.Size(50, 20);
+ this.NUD_Y.TabIndex = 51;
+ //
+ // NUD_X
+ //
+ this.NUD_X.Location = new System.Drawing.Point(93, 42);
+ this.NUD_X.Maximum = new decimal(new int[] {
+ 65535,
+ 0,
+ 0,
+ 0});
+ this.NUD_X.Name = "NUD_X";
+ this.NUD_X.Size = new System.Drawing.Size(50, 20);
+ this.NUD_X.TabIndex = 50;
+ //
+ // L_Y
+ //
+ this.L_Y.Location = new System.Drawing.Point(6, 94);
+ this.L_Y.Name = "L_Y";
+ this.L_Y.Size = new System.Drawing.Size(80, 20);
+ this.L_Y.TabIndex = 49;
+ this.L_Y.Text = "Y Coordinate:";
+ this.L_Y.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_CurrentMap
+ //
+ this.L_CurrentMap.Location = new System.Drawing.Point(6, 16);
+ this.L_CurrentMap.Name = "L_CurrentMap";
+ this.L_CurrentMap.Size = new System.Drawing.Size(80, 20);
+ this.L_CurrentMap.TabIndex = 46;
+ this.L_CurrentMap.Text = "Current Map:";
+ this.L_CurrentMap.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_Z
+ //
+ this.L_Z.Location = new System.Drawing.Point(6, 68);
+ this.L_Z.Name = "L_Z";
+ this.L_Z.Size = new System.Drawing.Size(80, 20);
+ this.L_Z.TabIndex = 48;
+ this.L_Z.Text = "Z Coordinate:";
+ this.L_Z.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_X
+ //
+ this.L_X.Location = new System.Drawing.Point(6, 42);
+ this.L_X.Name = "L_X";
+ this.L_X.Size = new System.Drawing.Size(80, 20);
+ this.L_X.TabIndex = 47;
+ this.L_X.Text = "X Coordinate:";
+ this.L_X.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // B_Save
+ //
+ this.B_Save.Location = new System.Drawing.Point(300, 226);
+ this.B_Save.Name = "B_Save";
+ this.B_Save.Size = new System.Drawing.Size(75, 23);
+ this.B_Save.TabIndex = 73;
+ this.B_Save.Text = "Save";
+ this.B_Save.UseVisualStyleBackColor = true;
+ this.B_Save.Click += new System.EventHandler(this.B_Save_Click);
+ //
+ // B_Cancel
+ //
+ this.B_Cancel.Location = new System.Drawing.Point(219, 226);
+ this.B_Cancel.Name = "B_Cancel";
+ this.B_Cancel.Size = new System.Drawing.Size(75, 23);
+ this.B_Cancel.TabIndex = 72;
+ this.B_Cancel.Text = "Cancel";
+ this.B_Cancel.UseVisualStyleBackColor = true;
+ this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click);
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.TB_OTName);
+ this.groupBox1.Controls.Add(this.B_MaxCash);
+ this.groupBox1.Controls.Add(this.MT_SID);
+ this.groupBox1.Controls.Add(this.MT_TID);
+ this.groupBox1.Controls.Add(this.L_Money);
+ this.groupBox1.Controls.Add(this.L_SID);
+ this.groupBox1.Controls.Add(this.CB_Gender);
+ this.groupBox1.Controls.Add(this.MT_Money);
+ this.groupBox1.Controls.Add(this.L_TID);
+ this.groupBox1.Controls.Add(this.L_TrainerName);
+ this.groupBox1.Location = new System.Drawing.Point(12, 12);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(200, 82);
+ this.groupBox1.TabIndex = 74;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Trainer";
+ //
+ // groupBox3
+ //
+ this.groupBox3.Controls.Add(this.CHK_H8);
+ this.groupBox3.Controls.Add(this.CHK_H7);
+ this.groupBox3.Controls.Add(this.CHK_H6);
+ this.groupBox3.Controls.Add(this.CHK_H5);
+ this.groupBox3.Controls.Add(this.CHK_H4);
+ this.groupBox3.Controls.Add(this.CHK_H3);
+ this.groupBox3.Controls.Add(this.CHK_H2);
+ this.groupBox3.Controls.Add(this.CHK_H1);
+ this.groupBox3.Controls.Add(this.CHK_8);
+ this.groupBox3.Controls.Add(this.CHK_7);
+ this.groupBox3.Controls.Add(this.CHK_6);
+ this.groupBox3.Controls.Add(this.CHK_5);
+ this.groupBox3.Controls.Add(this.CHK_4);
+ this.groupBox3.Controls.Add(this.CHK_3);
+ this.groupBox3.Controls.Add(this.CHK_2);
+ this.groupBox3.Controls.Add(this.CHK_1);
+ this.groupBox3.Location = new System.Drawing.Point(219, 12);
+ this.groupBox3.Name = "groupBox3";
+ this.groupBox3.Size = new System.Drawing.Size(157, 82);
+ this.groupBox3.TabIndex = 75;
+ this.groupBox3.TabStop = false;
+ this.groupBox3.Text = "Badges";
+ //
+ // CHK_H8
+ //
+ this.CHK_H8.AutoSize = true;
+ this.CHK_H8.Location = new System.Drawing.Point(130, 55);
+ this.CHK_H8.Name = "CHK_H8";
+ this.CHK_H8.Size = new System.Drawing.Size(15, 14);
+ this.CHK_H8.TabIndex = 15;
+ this.CHK_H8.UseVisualStyleBackColor = true;
+ this.CHK_H8.Visible = false;
+ //
+ // CHK_H7
+ //
+ this.CHK_H7.AutoSize = true;
+ this.CHK_H7.Location = new System.Drawing.Point(113, 55);
+ this.CHK_H7.Name = "CHK_H7";
+ this.CHK_H7.Size = new System.Drawing.Size(15, 14);
+ this.CHK_H7.TabIndex = 14;
+ this.CHK_H7.UseVisualStyleBackColor = true;
+ this.CHK_H7.Visible = false;
+ //
+ // CHK_H6
+ //
+ this.CHK_H6.AutoSize = true;
+ this.CHK_H6.Location = new System.Drawing.Point(96, 55);
+ this.CHK_H6.Name = "CHK_H6";
+ this.CHK_H6.Size = new System.Drawing.Size(15, 14);
+ this.CHK_H6.TabIndex = 13;
+ this.CHK_H6.UseVisualStyleBackColor = true;
+ this.CHK_H6.Visible = false;
+ //
+ // CHK_H5
+ //
+ this.CHK_H5.AutoSize = true;
+ this.CHK_H5.Location = new System.Drawing.Point(79, 55);
+ this.CHK_H5.Name = "CHK_H5";
+ this.CHK_H5.Size = new System.Drawing.Size(15, 14);
+ this.CHK_H5.TabIndex = 12;
+ this.CHK_H5.UseVisualStyleBackColor = true;
+ this.CHK_H5.Visible = false;
+ //
+ // CHK_H4
+ //
+ this.CHK_H4.AutoSize = true;
+ this.CHK_H4.Location = new System.Drawing.Point(62, 55);
+ this.CHK_H4.Name = "CHK_H4";
+ this.CHK_H4.Size = new System.Drawing.Size(15, 14);
+ this.CHK_H4.TabIndex = 11;
+ this.CHK_H4.UseVisualStyleBackColor = true;
+ this.CHK_H4.Visible = false;
+ //
+ // CHK_H3
+ //
+ this.CHK_H3.AutoSize = true;
+ this.CHK_H3.Location = new System.Drawing.Point(45, 55);
+ this.CHK_H3.Name = "CHK_H3";
+ this.CHK_H3.Size = new System.Drawing.Size(15, 14);
+ this.CHK_H3.TabIndex = 10;
+ this.CHK_H3.UseVisualStyleBackColor = true;
+ this.CHK_H3.Visible = false;
+ //
+ // CHK_H2
+ //
+ this.CHK_H2.AutoSize = true;
+ this.CHK_H2.Location = new System.Drawing.Point(28, 55);
+ this.CHK_H2.Name = "CHK_H2";
+ this.CHK_H2.Size = new System.Drawing.Size(15, 14);
+ this.CHK_H2.TabIndex = 9;
+ this.CHK_H2.UseVisualStyleBackColor = true;
+ this.CHK_H2.Visible = false;
+ //
+ // CHK_H1
+ //
+ this.CHK_H1.AutoSize = true;
+ this.CHK_H1.Location = new System.Drawing.Point(11, 55);
+ this.CHK_H1.Name = "CHK_H1";
+ this.CHK_H1.Size = new System.Drawing.Size(15, 14);
+ this.CHK_H1.TabIndex = 8;
+ this.CHK_H1.UseVisualStyleBackColor = true;
+ this.CHK_H1.Visible = false;
+ //
+ // CHK_8
+ //
+ this.CHK_8.AutoSize = true;
+ this.CHK_8.Location = new System.Drawing.Point(130, 27);
+ this.CHK_8.Name = "CHK_8";
+ this.CHK_8.Size = new System.Drawing.Size(15, 14);
+ this.CHK_8.TabIndex = 7;
+ this.CHK_8.UseVisualStyleBackColor = true;
+ this.CHK_8.Visible = false;
+ //
+ // CHK_7
+ //
+ this.CHK_7.AutoSize = true;
+ this.CHK_7.Location = new System.Drawing.Point(113, 27);
+ this.CHK_7.Name = "CHK_7";
+ this.CHK_7.Size = new System.Drawing.Size(15, 14);
+ this.CHK_7.TabIndex = 6;
+ this.CHK_7.UseVisualStyleBackColor = true;
+ this.CHK_7.Visible = false;
+ //
+ // CHK_6
+ //
+ this.CHK_6.AutoSize = true;
+ this.CHK_6.Location = new System.Drawing.Point(96, 27);
+ this.CHK_6.Name = "CHK_6";
+ this.CHK_6.Size = new System.Drawing.Size(15, 14);
+ this.CHK_6.TabIndex = 5;
+ this.CHK_6.UseVisualStyleBackColor = true;
+ this.CHK_6.Visible = false;
+ //
+ // CHK_5
+ //
+ this.CHK_5.AutoSize = true;
+ this.CHK_5.Location = new System.Drawing.Point(79, 27);
+ this.CHK_5.Name = "CHK_5";
+ this.CHK_5.Size = new System.Drawing.Size(15, 14);
+ this.CHK_5.TabIndex = 4;
+ this.CHK_5.UseVisualStyleBackColor = true;
+ this.CHK_5.Visible = false;
+ //
+ // CHK_4
+ //
+ this.CHK_4.AutoSize = true;
+ this.CHK_4.Location = new System.Drawing.Point(62, 27);
+ this.CHK_4.Name = "CHK_4";
+ this.CHK_4.Size = new System.Drawing.Size(15, 14);
+ this.CHK_4.TabIndex = 3;
+ this.CHK_4.UseVisualStyleBackColor = true;
+ this.CHK_4.Visible = false;
+ //
+ // CHK_3
+ //
+ this.CHK_3.AutoSize = true;
+ this.CHK_3.Location = new System.Drawing.Point(45, 27);
+ this.CHK_3.Name = "CHK_3";
+ this.CHK_3.Size = new System.Drawing.Size(15, 14);
+ this.CHK_3.TabIndex = 2;
+ this.CHK_3.UseVisualStyleBackColor = true;
+ this.CHK_3.Visible = false;
+ //
+ // CHK_2
+ //
+ this.CHK_2.AutoSize = true;
+ this.CHK_2.Location = new System.Drawing.Point(28, 27);
+ this.CHK_2.Name = "CHK_2";
+ this.CHK_2.Size = new System.Drawing.Size(15, 14);
+ this.CHK_2.TabIndex = 1;
+ this.CHK_2.UseVisualStyleBackColor = true;
+ this.CHK_2.Visible = false;
+ //
+ // CHK_1
+ //
+ this.CHK_1.AutoSize = true;
+ this.CHK_1.Location = new System.Drawing.Point(11, 27);
+ this.CHK_1.Name = "CHK_1";
+ this.CHK_1.Size = new System.Drawing.Size(15, 14);
+ this.CHK_1.TabIndex = 0;
+ this.CHK_1.UseVisualStyleBackColor = true;
+ this.CHK_1.Visible = false;
+ //
+ // SAV_SimpleTrainer
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(386, 261);
+ this.Controls.Add(this.groupBox3);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.B_Save);
+ this.Controls.Add(this.B_Cancel);
+ this.Controls.Add(this.GB_Map);
+ this.Controls.Add(this.groupBox2);
+ this.Name = "SAV_SimpleTrainer";
+ this.Text = "Trainer Data Editor";
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.GB_Map.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_Z)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_M)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_Y)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_X)).EndInit();
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.groupBox3.ResumeLayout(false);
+ this.groupBox3.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.Label L_Started;
+ private System.Windows.Forms.DateTimePicker CAL_AdventureStartDate;
+ private System.Windows.Forms.DateTimePicker CAL_HoFDate;
+ private System.Windows.Forms.Label L_LastSaved;
+ private System.Windows.Forms.MaskedTextBox MT_Seconds;
+ private System.Windows.Forms.MaskedTextBox MT_Hours;
+ private System.Windows.Forms.Label L_Seconds;
+ private System.Windows.Forms.Label L_Hours;
+ private System.Windows.Forms.MaskedTextBox MT_Minutes;
+ private System.Windows.Forms.Label L_Minutes;
+ private System.Windows.Forms.DateTimePicker CAL_AdventureStartTime;
+ private System.Windows.Forms.DateTimePicker CAL_HoFTime;
+ private System.Windows.Forms.TextBox TB_OTName;
+ private System.Windows.Forms.ComboBox CB_Gender;
+ private System.Windows.Forms.Label L_TrainerName;
+ private System.Windows.Forms.Label L_TID;
+ private System.Windows.Forms.MaskedTextBox MT_Money;
+ private System.Windows.Forms.Label L_SID;
+ private System.Windows.Forms.Label L_Money;
+ private System.Windows.Forms.MaskedTextBox MT_TID;
+ private System.Windows.Forms.MaskedTextBox MT_SID;
+ private System.Windows.Forms.Button B_MaxCash;
+ private System.Windows.Forms.GroupBox GB_Map;
+ private System.Windows.Forms.NumericUpDown NUD_Z;
+ private System.Windows.Forms.NumericUpDown NUD_M;
+ private System.Windows.Forms.NumericUpDown NUD_Y;
+ private System.Windows.Forms.NumericUpDown NUD_X;
+ private System.Windows.Forms.Label L_Y;
+ private System.Windows.Forms.Label L_CurrentMap;
+ private System.Windows.Forms.Label L_Z;
+ private System.Windows.Forms.Label L_X;
+ private System.Windows.Forms.Button B_Save;
+ private System.Windows.Forms.Button B_Cancel;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.GroupBox groupBox3;
+ private System.Windows.Forms.CheckBox CHK_8;
+ private System.Windows.Forms.CheckBox CHK_7;
+ private System.Windows.Forms.CheckBox CHK_6;
+ private System.Windows.Forms.CheckBox CHK_5;
+ private System.Windows.Forms.CheckBox CHK_4;
+ private System.Windows.Forms.CheckBox CHK_3;
+ private System.Windows.Forms.CheckBox CHK_2;
+ private System.Windows.Forms.CheckBox CHK_1;
+ private System.Windows.Forms.CheckBox CHK_H8;
+ private System.Windows.Forms.CheckBox CHK_H7;
+ private System.Windows.Forms.CheckBox CHK_H6;
+ private System.Windows.Forms.CheckBox CHK_H5;
+ private System.Windows.Forms.CheckBox CHK_H4;
+ private System.Windows.Forms.CheckBox CHK_H3;
+ private System.Windows.Forms.CheckBox CHK_H2;
+ private System.Windows.Forms.CheckBox CHK_H1;
+ }
+}
\ No newline at end of file
diff --git a/SAV/SAV_SimpleTrainer.cs b/SAV/SAV_SimpleTrainer.cs
new file mode 100644
index 000000000..4f19aa6c7
--- /dev/null
+++ b/SAV/SAV_SimpleTrainer.cs
@@ -0,0 +1,136 @@
+using System;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace PKHeX
+{
+ public partial class SAV_SimpleTrainer : Form
+ {
+ public SAV_SimpleTrainer()
+ {
+ InitializeComponent();
+ Util.TranslateInterface(this, Main.curlanguage);
+
+ cba = new[] {CHK_1, CHK_2, CHK_3, CHK_4, CHK_5, CHK_6, CHK_7, CHK_8};
+ TB_OTName.MaxLength = SAV.OTLength;
+ B_MaxCash.Click += (sender, e) => MT_Money.Text = "9,999,999";
+
+ TB_OTName.Text = SAV.OT;
+ CB_Gender.SelectedIndex = SAV.Gender;
+ MT_TID.Text = SAV.TID.ToString("00000");
+ MT_SID.Text = SAV.SID.ToString("00000");
+ MT_Money.Text = SAV.Money.ToString();
+
+ int badgeval = 0;
+ if (SAV is SAV4)
+ {
+ SAV4 s = (SAV4)SAV;
+ NUD_M.Value = s.M;
+ NUD_X.Value = s.X;
+ NUD_Z.Value = s.Z;
+ NUD_Y.Value = s.Y;
+
+ badgeval = s.Badges;
+ if (s.Version == GameVersion.HGSS)
+ {
+ badgeval |= s.Badges16 << 8;
+ cba = cba.Concat(new[] {CHK_H1, CHK_H2, CHK_H3, CHK_H4, CHK_H5, CHK_H6, CHK_H7, CHK_H8}).ToArray();
+ }
+ }
+ else if (SAV is SAV5)
+ {
+ SAV5 s = (SAV5)SAV;
+ NUD_M.Value = s.M;
+ NUD_X.Value = s.X;
+ NUD_Z.Value = s.Z;
+ NUD_Y.Value = s.Y;
+
+ badgeval = s.Badges;
+ }
+
+ for (int i = 0; i < cba.Length; i++)
+ {
+ cba[i].Visible = true;
+ cba[i].Checked = (badgeval & 1 << i) != 0;
+ }
+
+ MT_Hours.Text = SAV.PlayedHours.ToString();
+ MT_Minutes.Text = SAV.PlayedMinutes.ToString();
+ MT_Seconds.Text = SAV.PlayedSeconds.ToString();
+ CAL_HoFDate.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToFame);
+ CAL_HoFTime.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToFame % 86400);
+ CAL_AdventureStartDate.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToStart);
+ CAL_AdventureStartTime.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToStart % 86400);
+ }
+ private readonly CheckBox[] cba;
+ private readonly SaveFile SAV = Main.SAV.Clone();
+
+ private void changeFFFF(object sender, EventArgs e)
+ {
+ MaskedTextBox box = sender as MaskedTextBox;
+ if (box.Text == "") box.Text = "0";
+ if (Util.ToInt32(box.Text) > 65535) box.Text = "65535";
+ }
+
+ private void B_Save_Click(object sender, EventArgs e)
+ {
+ SAV.OT = TB_OTName.Text;
+ SAV.Gender = (byte)CB_Gender.SelectedIndex;
+
+ SAV.TID = (ushort)Util.ToUInt32(MT_TID.Text);
+ SAV.SID = (ushort)Util.ToUInt32(MT_SID.Text);
+ SAV.Money = Util.ToUInt32(MT_Money.Text);
+
+ // Copy Badges
+ int badgeval = 0;
+ for (int i = 0; i < cba.Length; i++)
+ badgeval |= (cba[i].Checked ? 1 : 0) << i;
+
+ if (SAV is SAV4)
+ {
+ SAV4 s = (SAV4)SAV;
+ s.M = (int)NUD_M.Value;
+ s.X = (int)NUD_X.Value;
+ s.Z = (int)NUD_Z.Value;
+ s.Y = (int)NUD_Y.Value;
+ s.Badges = badgeval & 0xFF;
+ if (s.Version == GameVersion.HGSS)
+ {
+ s.Badges16 = badgeval >> 8;
+ }
+ }
+ else if (SAV is SAV5)
+ {
+ SAV5 s = (SAV5)SAV;
+ s.M = (int)NUD_M.Value;
+ s.X = (int)NUD_X.Value;
+ s.Z = (int)NUD_Z.Value;
+ s.Y = (int)NUD_Y.Value;
+ s.Badges = badgeval & 0xFF;
+ }
+
+ // Save PlayTime
+ SAV.PlayedHours = ushort.Parse(MT_Hours.Text);
+ SAV.PlayedMinutes = ushort.Parse(MT_Minutes.Text) % 60;
+ SAV.PlayedSeconds = ushort.Parse(MT_Seconds.Text) % 60;
+
+ SAV.SecondsToStart = getSeconds(CAL_AdventureStartDate, CAL_AdventureStartTime);
+ SAV.SecondsToFame = getSeconds(CAL_HoFDate, CAL_HoFTime);
+
+ SAV.Data.CopyTo(Main.SAV.Data, 0);
+ Main.SAV.Edited = true;
+ Close();
+ }
+ private void B_Cancel_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ private int getSeconds(DateTimePicker date, DateTimePicker time)
+ {
+ int val = (int)(date.Value - new DateTime(2000, 1, 1)).TotalSeconds;
+ val -= val % 86400;
+ val += (int)(time.Value - new DateTime(2000, 1, 1)).TotalSeconds;
+ return val;
+ }
+ }
+}
diff --git a/SAV/SAV_SimpleTrainer.resx b/SAV/SAV_SimpleTrainer.resx
new file mode 100644
index 000000000..1af7de150
--- /dev/null
+++ b/SAV/SAV_SimpleTrainer.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/Saves/SAV4.cs b/Saves/SAV4.cs
index 2ddac43e1..bcdf79d86 100644
--- a/Saves/SAV4.cs
+++ b/Saves/SAV4.cs
@@ -8,14 +8,14 @@ namespace PKHeX
public override string BAKName => $"{FileName} [{OT} ({Version})" +/* - {LastSavedTime}*/ "].bak";
public override string Filter => (Footer.Length > 0 ? "DeSmuME DSV|*.dsv|" : "") + "SAV File|*.sav";
public override string Extension => ".sav";
- public SAV4(byte[] data = null)
+ public SAV4(byte[] data = null, int versionOverride = -1)
{
Data = data == null ? new byte[SaveUtil.SIZE_G4RAW] : (byte[])data.Clone();
BAK = (byte[])Data.Clone();
Exportable = !Data.SequenceEqual(new byte[Data.Length]);
// Get Version
- SaveVersion = Math.Max(SaveUtil.getIsG4SAV(Data), 0); // Empty file default to DP
+ SaveVersion = versionOverride > -1 ? versionOverride : Math.Max(SaveUtil.getIsG4SAV(Data), 0); // Empty file default to DP
getActiveBlock();
getSAVOffsets();
@@ -27,7 +27,7 @@ namespace PKHeX
public readonly int SaveVersion;
public override byte[] BAK { get; }
public override bool Exportable { get; }
- public override SaveFile Clone() { return new SAV4(Data); }
+ public override SaveFile Clone() { return new SAV4(Data, SaveVersion); }
public override int SIZE_STORED => PKX.SIZE_4STORED;
public override int SIZE_PARTY => PKX.SIZE_4PARTY;
@@ -313,7 +313,7 @@ namespace PKHeX
}
// Trainer Info
- protected override GameVersion Version
+ public override GameVersion Version
{
get
{
@@ -356,7 +356,7 @@ namespace PKHeX
get { return BitConverter.ToUInt16(Data, Trainer1 + 0x12); }
set { BitConverter.GetBytes(value).CopyTo(Data, Trainer1 + 0x12); }
}
- public uint Money
+ public override uint Money
{
get { return BitConverter.ToUInt32(Data, Trainer1 + 0x14); }
set { BitConverter.GetBytes(value).CopyTo(Data, Trainer1 + 0x14); }
@@ -398,17 +398,17 @@ namespace PKHeX
Data[Trainer1 + 0x1F] = (byte)value;
}
}
- public int PlayedHours
+ public override int PlayedHours
{
get { return BitConverter.ToUInt16(Data, Trainer1 + 0x22); }
set { BitConverter.GetBytes((ushort)value).CopyTo(Data, Trainer1 + 0x22); }
}
- public int PlayedMinutes
+ public override int PlayedMinutes
{
get { return Data[Trainer1 + 0x24]; }
set { Data[Trainer1 + 0x24] = (byte)value; }
}
- public int PlayedSeconds
+ public override int PlayedSeconds
{
get { return Data[Trainer1 + 0x25]; }
set { Data[Trainer1 + 0x25] = (byte)value; }
@@ -527,8 +527,8 @@ namespace PKHeX
}
}
}
- public int SecondsToStart { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x34); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x34); } }
- public int SecondsToFame { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x3C); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x3C); } }
+ public override int SecondsToStart { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x34); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x34); } }
+ public override int SecondsToFame { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x3C); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x3C); } }
// Storage
public int UnlockedBoxes
diff --git a/Saves/SAV5.cs b/Saves/SAV5.cs
index 7718fd095..e47aa054c 100644
--- a/Saves/SAV5.cs
+++ b/Saves/SAV5.cs
@@ -10,14 +10,14 @@ namespace PKHeX
public override string BAKName => $"{FileName} [{OT} ({Version})" +/* - {LastSavedTime}*/ "].bak";
public override string Filter => (Footer.Length > 0 ? "DeSmuME DSV|*.dsv|" : "") + "SAV File|*.sav";
public override string Extension => ".sav";
- public SAV5(byte[] data = null)
+ public SAV5(byte[] data = null, int versionOverride = -1)
{
Data = data == null ? new byte[SaveUtil.SIZE_G5RAW] : (byte[])data.Clone();
BAK = (byte[])Data.Clone();
Exportable = !Data.SequenceEqual(new byte[Data.Length]);
// Get Version
- SaveVersion = SaveUtil.getIsG5SAV(Data);
+ SaveVersion = versionOverride > -1 ? versionOverride : SaveUtil.getIsG5SAV(Data);
if (SaveVersion < 0) // Invalidate Data
Data = null;
@@ -81,7 +81,7 @@ namespace PKHeX
private int SaveVersion { get; set; }
public override byte[] BAK { get; }
public override bool Exportable { get; }
- public override SaveFile Clone() { return new SAV5(Data); }
+ public override SaveFile Clone() { return new SAV5(Data, SaveVersion); }
public override int SIZE_STORED => PKX.SIZE_5STORED;
public override int SIZE_PARTY => PKX.SIZE_5PARTY;
@@ -508,7 +508,7 @@ namespace PKHeX
protected override MysteryGift[] MysteryGiftCards { get { return new MysteryGift[0]; } set { } }
// Trainer Info
- protected override GameVersion Version
+ public override GameVersion Version
{
get
{
@@ -541,7 +541,7 @@ namespace PKHeX
get { return BitConverter.ToUInt16(Data, Trainer1 + 0x14 + 2); }
set { BitConverter.GetBytes(value).CopyTo(Data, Trainer1 + 0x14 + 2); }
}
- public uint Money
+ public override uint Money
{
get { return BitConverter.ToUInt32(Data, Trainer2); }
set { BitConverter.GetBytes(value).CopyTo(Data, Trainer2); }
@@ -587,22 +587,22 @@ namespace PKHeX
set { BitConverter.GetBytes(value * 18).CopyTo(Data, Trainer1 + 0x18E); }
}
- public int PlayedHours
+ public override int PlayedHours
{
get { return BitConverter.ToUInt16(Data, Trainer1 + 0x24); }
set { BitConverter.GetBytes((ushort)value).CopyTo(Data, Trainer1 + 0x24); }
}
- public int PlayedMinutes
+ public override int PlayedMinutes
{
get { return Data[Trainer1 + 0x24 + 2]; }
set { Data[Trainer1 + 0x24 + 2] = (byte)value; }
}
- public int PlayedSeconds
+ public override int PlayedSeconds
{
get { return Data[Trainer1 + 0x24 + 3]; }
set { Data[Trainer1 + 0x24 + 3] = (byte)value; }
}
- public int SecondsToStart { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x34); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x34); } }
- public int SecondsToFame { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x3C); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x3C); } }
+ public override int SecondsToStart { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x34); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x34); } }
+ public override int SecondsToFame { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x3C); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x3C); } }
}
}
diff --git a/Saves/SAV6.cs b/Saves/SAV6.cs
index 016a7a717..fc9b4e24d 100644
--- a/Saves/SAV6.cs
+++ b/Saves/SAV6.cs
@@ -270,7 +270,7 @@ namespace PKHeX
public int Spinda { get; private set; } = int.MinValue;
public int EncounterCount { get; private set; } = int.MinValue;
- protected override GameVersion Version
+ public override GameVersion Version
{
get
{
@@ -392,7 +392,7 @@ namespace PKHeX
get { return Data[Trainer1 + 0x14D]; }
set { Data[Trainer1 + 0x14D] = (byte)value; }
}
- public uint Money
+ public override uint Money
{
get { return BitConverter.ToUInt32(Data, Trainer2 + 0x8); }
set { BitConverter.GetBytes(value).CopyTo(Data, Trainer2 + 0x8); }
@@ -433,16 +433,17 @@ namespace PKHeX
}
}
- public int PlayedHours{
+ public override int PlayedHours
+ {
get { return BitConverter.ToUInt16(Data, PlayTime); }
set { BitConverter.GetBytes((ushort)value).CopyTo(Data, PlayTime); }
}
- public int PlayedMinutes
+ public override int PlayedMinutes
{
get { return Data[PlayTime + 2]; }
set { Data[PlayTime + 2] = (byte)value; }
}
- public int PlayedSeconds
+ public override int PlayedSeconds
{
get { return Data[PlayTime + 3]; }
set { Data[PlayTime + 3] = (byte)value; }
@@ -461,8 +462,8 @@ namespace PKHeX
public int ResumeHour { get { return Data[AdventureInfo + 0xB]; } set { Data[AdventureInfo + 0xB] = (byte)value; } }
public int ResumeMinute { get { return Data[AdventureInfo + 0xC]; } set { Data[AdventureInfo + 0xC] = (byte)value; } }
public int ResumeSeconds { get { return Data[AdventureInfo + 0xD]; } set { Data[AdventureInfo + 0xD] = (byte)value; } }
- public int SecondsToStart { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x18); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x18); } }
- public int SecondsToFame { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x20); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x20); } }
+ public override int SecondsToStart { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x18); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x18); } }
+ public override int SecondsToFame { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x20); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x20); } }
public uint getPSSStat(int index) { return BitConverter.ToUInt32(Data, PSSStats + 4*index); }
public void setPSSStat(int index, uint value) { BitConverter.GetBytes(value).CopyTo(Data, PSSStats + 4*index); }
diff --git a/Saves/SaveFile.cs b/Saves/SaveFile.cs
index 0ee735328..1daf83b72 100644
--- a/Saves/SaveFile.cs
+++ b/Saves/SaveFile.cs
@@ -40,7 +40,7 @@ namespace PKHeX
}
public virtual string MiscSaveChecks() { return ""; }
public virtual string MiscSaveInfo() { return ""; }
- protected abstract GameVersion Version { get; }
+ public abstract GameVersion Version { get; }
public abstract bool ChecksumsValid { get; }
public abstract string ChecksumInfo { get; }
public abstract int Generation { get; }
@@ -282,6 +282,12 @@ namespace PKHeX
public abstract ushort TID { get; set; }
public abstract ushort SID { get; set; }
public abstract string OT { get; set; }
+ public abstract int PlayedHours { get; set; }
+ public abstract int PlayedMinutes { get; set; }
+ public abstract int PlayedSeconds { get; set; }
+ public abstract int SecondsToStart { get; set; }
+ public abstract int SecondsToFame { get; set; }
+ public abstract uint Money { get; set; }
public abstract int BoxCount { get; }
public abstract int PartyCount { get; protected set; }
public virtual int CurrentBox { get { return 0; } set { } }