Added more Battle Subway fields (#4334)

* Added current set fields BW(2) subway

* Added battle subway data

* Fixed checking wrong chkbox

* Added NPC met flag
This commit is contained in:
Hernán Indíbil de la Cruz Calvo 2024-08-08 01:56:39 +02:00 committed by GitHub
parent 97aa9805a9
commit 68eb8a58d5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 450 additions and 81 deletions

View file

@ -13,6 +13,7 @@ public interface ISaveBlock5BW
Daycare5 Daycare { get; }
BoxLayout5 BoxLayout { get; }
PlayerData5 PlayerData { get; }
BattleSubwayPlay5 BattleSubwayPlay { get; }
BattleSubway5 BattleSubway { get; }
Entralink5 Entralink { get; }
Musical5 Musical { get; }

View file

@ -108,6 +108,7 @@ public sealed class SaveBlockAccessor5B2W2(SAV5B2W2 sav)
public Entralink5B2W2 Entralink { get; } = new(sav, Block(sav, 53));
public Zukan5 Zukan { get; } = new(sav, Block(sav, 54), 0x328); // form flags size is + 8 from B/W with new forms (Therians)
public Encount5B2W2 Encount { get; } = new(sav, Block(sav, 55));
public BattleSubwayPlay5 BattleSubwayPlay { get; } = new(sav, Block(sav, 56));
public BattleSubway5 BattleSubway { get; } = new(sav, Block(sav, 57));
public EntreeForest EntreeForest { get; } = new(sav, Block(sav, 60));
public PWTBlock5 PWT { get; } = new(sav, Block(sav, 63));

View file

@ -103,6 +103,7 @@ public sealed class SaveBlockAccessor5BW(SAV5BW sav) : ISaveBlockAccessor<BlockI
public Entralink5BW Entralink { get; } = new(sav, Block(sav, 53));
public Zukan5 Zukan { get; } = new(sav, Block(sav, 55), 0x320);
public Encount5BW Encount { get; } = new(sav, Block(sav, 56));
public BattleSubwayPlay5 BattleSubwayPlay { get; } = new(sav, Block(sav, 57));
public BattleSubway5 BattleSubway { get; } = new(sav, Block(sav, 58));
public EntreeForest EntreeForest { get; } = new(sav, Block(sav, 61));
EventWork5 ISaveBlock5BW.EventWork => EventWork;

View file

@ -180,6 +180,7 @@ public abstract class SAV5 : SaveFile, ISaveBlock5BW, IEventFlagProvider37, IBox
public abstract BoxLayout5 BoxLayout { get; }
public abstract PlayerData5 PlayerData { get; }
public abstract PlayerPosition5 PlayerPosition { get; }
public abstract BattleSubwayPlay5 BattleSubwayPlay { get; }
public abstract BattleSubway5 BattleSubway { get; }
public abstract Entralink5 Entralink { get; }
public abstract Musical5 Musical { get; }

View file

@ -27,6 +27,7 @@ public sealed class SAV5B2W2 : SAV5, ISaveBlock5B2W2
public override BoxLayout5 BoxLayout => Blocks.BoxLayout;
public override PlayerData5 PlayerData => Blocks.PlayerData;
public override PlayerPosition5 PlayerPosition => Blocks.PlayerPosition;
public override BattleSubwayPlay5 BattleSubwayPlay => Blocks.BattleSubwayPlay;
public override BattleSubway5 BattleSubway => Blocks.BattleSubway;
public override Entralink5 Entralink => Blocks.Entralink;
public override Musical5 Musical => Blocks.Musical;

View file

@ -27,6 +27,7 @@ public sealed class SAV5BW : SAV5
public override BoxLayout5 BoxLayout => Blocks.BoxLayout;
public override PlayerData5 PlayerData => Blocks.PlayerData;
public override PlayerPosition5 PlayerPosition => Blocks.PlayerPosition;
public override BattleSubwayPlay5 BattleSubwayPlay => Blocks.BattleSubwayPlay;
public override BattleSubway5 BattleSubway => Blocks.BattleSubway;
public override Entralink5BW Entralink => Blocks.Entralink;
public override Musical5 Musical => Blocks.Musical;

View file

@ -15,6 +15,8 @@ public sealed class BattleSubway5(SAV5 sav, Memory<byte> raw) : SaveBlock<SAV5>(
public bool SuperDouble { get => ((Flags >> 5) & 1) != 0; set => Flags = (Flags & ~(1 << 5)) | ((value ? 1 : 0) << 5); }
public bool SuperMulti { get => ((Flags >> 6) & 1) != 0; set => Flags = (Flags & ~(1 << 6)) | ((value ? 1 : 0) << 6); }
public bool Flag7 { get => ((Flags >> 7) & 1) != 0; set => Flags = (Flags & ~(1 << 7)) | ((value ? 1 : 0) << 7); }
public int Flags2 { get => Data[0x05]; set => Data[0x05] = (byte)value; }
public bool NPCMet { get => ((Flags2 >> 2) & 1) != 0; set => Flags2 = (Flags2 & ~(1 << 2)) | ((value ? 1 : 0) << 2); }
public int SinglePast { get => ReadUInt16LittleEndian(Data[0x08..]); set => WriteUInt16LittleEndian(Data[0x08..], (ushort)value); }
public int DoublePast { get => ReadUInt16LittleEndian(Data[0x0A..]); set => WriteUInt16LittleEndian(Data[0x0A..], (ushort)value); }
@ -32,4 +34,12 @@ public sealed class BattleSubway5(SAV5 sav, Memory<byte> raw) : SaveBlock<SAV5>(
public int SuperDoubleRecord { get => ReadUInt16LittleEndian(Data[0x26..]); set => WriteUInt16LittleEndian(Data[0x26..], (ushort)value); }
public int SuperMultiNPCRecord { get => ReadUInt16LittleEndian(Data[0x28..]); set => WriteUInt16LittleEndian(Data[0x28..], (ushort)value); }
public int SuperMultiFriendsRecord { get => ReadUInt16LittleEndian(Data[0x2A..]); set => WriteUInt16LittleEndian(Data[0x2A..], (ushort)value); }
public int SingleSet { get => ReadUInt16LittleEndian(Data[0x2C..]); set => WriteUInt16LittleEndian(Data[0x2C..], (ushort)value); }
public int DoubleSet { get => ReadUInt16LittleEndian(Data[0x2E..]); set => WriteUInt16LittleEndian(Data[0x2E..], (ushort)value); }
public int MultiNPCSet { get => ReadUInt16LittleEndian(Data[0x30..]); set => WriteUInt16LittleEndian(Data[0x30..], (ushort)value); }
public int MultiFriendsSet { get => ReadUInt16LittleEndian(Data[0x32..]); set => WriteUInt16LittleEndian(Data[0x32..], (ushort)value); }
public int SuperSingleSet { get => ReadUInt16LittleEndian(Data[0x36..]); set => WriteUInt16LittleEndian(Data[0x36..], (ushort)value); }
public int SuperDoubleSet { get => ReadUInt16LittleEndian(Data[0x38..]); set => WriteUInt16LittleEndian(Data[0x38..], (ushort)value); }
public int SuperMultiNPCSet { get => ReadUInt16LittleEndian(Data[0x3A..]); set => WriteUInt16LittleEndian(Data[0x3A..], (ushort)value); }
public int SuperMultiFriendsSet { get => ReadUInt16LittleEndian(Data[0x3C..]); set => WriteUInt16LittleEndian(Data[0x3C..], (ushort)value); }
}

View file

@ -0,0 +1,10 @@
using System;
using static System.Buffers.Binary.BinaryPrimitives;
namespace PKHeX.Core;
public sealed class BattleSubwayPlay5(SAV5 sav, Memory<byte> raw) : SaveBlock<SAV5>(sav, raw)
{
public int CurrentType { get => Data[0x00]; set => Data[0x00] = (byte)value; }
public int CurrentBattle { get => Data[0x02]; set => Data[0x02] = (byte)value; }
}

View file

@ -110,14 +110,31 @@ namespace PKHeX.WinForms
LB_Slots = new System.Windows.Forms.ListBox();
TAB_Subway = new System.Windows.Forms.TabPage();
GB_SubwayChecks = new System.Windows.Forms.GroupBox();
CHK_Subway7 = new System.Windows.Forms.CheckBox();
CHK_Subway3 = new System.Windows.Forms.CheckBox();
CHK_Subway2 = new System.Windows.Forms.CheckBox();
CHK_Subway1 = new System.Windows.Forms.CheckBox();
CHK_Subway0 = new System.Windows.Forms.CheckBox();
CHK_Subway1 = new System.Windows.Forms.CheckBox();
CHK_Subway2 = new System.Windows.Forms.CheckBox();
CHK_Subway3 = new System.Windows.Forms.CheckBox();
CHK_SuperSingle = new System.Windows.Forms.CheckBox();
CHK_SuperMulti = new System.Windows.Forms.CheckBox();
CHK_SuperDouble = new System.Windows.Forms.CheckBox();
CHK_SuperSingle = new System.Windows.Forms.CheckBox();
CHK_Subway7 = new System.Windows.Forms.CheckBox();
CHK_SWNPCMet = new System.Windows.Forms.CheckBox();
GB_CurrentData = new System.Windows.Forms.GroupBox();
L_CurrentType = new System.Windows.Forms.Label();
L_CurrentBattle = new System.Windows.Forms.Label();
NUD_CurrentType = new System.Windows.Forms.NumericUpDown();
NUD_CurrentBattle = new System.Windows.Forms.NumericUpDown();
GB_SubwaySets = new System.Windows.Forms.GroupBox();
L_NormalSets = new System.Windows.Forms.Label();
L_SuperSets = new System.Windows.Forms.Label();
CHK_SingleSet = new System.Windows.Forms.CheckBox();
CHK_DoubleSet = new System.Windows.Forms.CheckBox();
CHK_MultiNPCSet = new System.Windows.Forms.CheckBox();
CHK_MultiFriendsSet = new System.Windows.Forms.CheckBox();
CHK_SuperSingleSet = new System.Windows.Forms.CheckBox();
CHK_SuperDoubleSet = new System.Windows.Forms.CheckBox();
CHK_SuperMultiNPCSet = new System.Windows.Forms.CheckBox();
CHK_SuperMultiFriendsSet = new System.Windows.Forms.CheckBox();
GB_SuperMulti = new System.Windows.Forms.GroupBox();
L_SMultiNPC = new System.Windows.Forms.Label();
L_SMultiFriends = new System.Windows.Forms.Label();
@ -165,6 +182,7 @@ namespace PKHeX.WinForms
B_ImportFC = new System.Windows.Forms.Button();
B_DumpFC = new System.Windows.Forms.Button();
TAB_Medals = new System.Windows.Forms.TabPage();
TB_MedalType = new System.Windows.Forms.TextBox();
B_ObtainAllMedals = new System.Windows.Forms.Button();
CAL_MedalDate = new System.Windows.Forms.DateTimePicker();
CHK_MedalUnread = new System.Windows.Forms.CheckBox();
@ -176,7 +194,6 @@ namespace PKHeX.WinForms
CB_Prop = new System.Windows.Forms.ComboBox();
TipExpB = new System.Windows.Forms.ToolTip(components);
TipExpW = new System.Windows.Forms.ToolTip(components);
TB_MedalType = new System.Windows.Forms.TextBox();
TC_Misc.SuspendLayout();
TAB_Main.SuspendLayout();
((System.ComponentModel.ISupportInitialize)NUD_Record32V).BeginInit();
@ -208,6 +225,10 @@ namespace PKHeX.WinForms
((System.ComponentModel.ISupportInitialize)NUD_Animation).BeginInit();
TAB_Subway.SuspendLayout();
GB_SubwayChecks.SuspendLayout();
GB_CurrentData.SuspendLayout();
((System.ComponentModel.ISupportInitialize)NUD_CurrentType).BeginInit();
((System.ComponentModel.ISupportInitialize)NUD_CurrentBattle).BeginInit();
GB_SubwaySets.SuspendLayout();
GB_SuperMulti.SuspendLayout();
((System.ComponentModel.ISupportInitialize)NUD_SMultiFriendsRecord).BeginInit();
((System.ComponentModel.ISupportInitialize)NUD_SMultiFriendsPast).BeginInit();
@ -1177,6 +1198,8 @@ namespace PKHeX.WinForms
// TAB_Subway
//
TAB_Subway.Controls.Add(GB_SubwayChecks);
TAB_Subway.Controls.Add(GB_CurrentData);
TAB_Subway.Controls.Add(GB_SubwaySets);
TAB_Subway.Controls.Add(GB_SuperMulti);
TAB_Subway.Controls.Add(GB_SuperDoubles);
TAB_Subway.Controls.Add(GB_SuperSingles);
@ -1194,67 +1217,24 @@ namespace PKHeX.WinForms
//
// GB_SubwayChecks
//
GB_SubwayChecks.Controls.Add(CHK_Subway7);
GB_SubwayChecks.Controls.Add(CHK_Subway3);
GB_SubwayChecks.Controls.Add(CHK_Subway2);
GB_SubwayChecks.Controls.Add(CHK_Subway1);
GB_SubwayChecks.Controls.Add(CHK_Subway0);
GB_SubwayChecks.Controls.Add(CHK_Subway1);
GB_SubwayChecks.Controls.Add(CHK_Subway2);
GB_SubwayChecks.Controls.Add(CHK_Subway3);
GB_SubwayChecks.Controls.Add(CHK_SuperSingle);
GB_SubwayChecks.Controls.Add(CHK_SuperMulti);
GB_SubwayChecks.Controls.Add(CHK_SuperDouble);
GB_SubwayChecks.Controls.Add(CHK_SuperSingle);
GB_SubwayChecks.Controls.Add(CHK_Subway7);
GB_SubwayChecks.Controls.Add(CHK_SWNPCMet);
GB_SubwayChecks.Location = new System.Drawing.Point(247, 7);
GB_SubwayChecks.Margin = new System.Windows.Forms.Padding(2);
GB_SubwayChecks.Name = "GB_SubwayChecks";
GB_SubwayChecks.Padding = new System.Windows.Forms.Padding(2);
GB_SubwayChecks.Size = new System.Drawing.Size(138, 174);
GB_SubwayChecks.Size = new System.Drawing.Size(138, 130);
GB_SubwayChecks.TabIndex = 3;
GB_SubwayChecks.TabStop = false;
GB_SubwayChecks.Text = "Subway Flags";
//
// CHK_Subway7
//
CHK_Subway7.AutoSize = true;
CHK_Subway7.Location = new System.Drawing.Point(10, 147);
CHK_Subway7.Margin = new System.Windows.Forms.Padding(2);
CHK_Subway7.Name = "CHK_Subway7";
CHK_Subway7.Size = new System.Drawing.Size(54, 19);
CHK_Subway7.TabIndex = 8;
CHK_Subway7.Text = "Flag7";
CHK_Subway7.UseVisualStyleBackColor = true;
//
// CHK_Subway3
//
CHK_Subway3.AutoSize = true;
CHK_Subway3.Location = new System.Drawing.Point(10, 72);
CHK_Subway3.Margin = new System.Windows.Forms.Padding(2);
CHK_Subway3.Name = "CHK_Subway3";
CHK_Subway3.Size = new System.Drawing.Size(54, 19);
CHK_Subway3.TabIndex = 4;
CHK_Subway3.Text = "Flag3";
CHK_Subway3.UseVisualStyleBackColor = true;
//
// CHK_Subway2
//
CHK_Subway2.AutoSize = true;
CHK_Subway2.Location = new System.Drawing.Point(10, 54);
CHK_Subway2.Margin = new System.Windows.Forms.Padding(2);
CHK_Subway2.Name = "CHK_Subway2";
CHK_Subway2.Size = new System.Drawing.Size(54, 19);
CHK_Subway2.TabIndex = 3;
CHK_Subway2.Text = "Flag2";
CHK_Subway2.UseVisualStyleBackColor = true;
//
// CHK_Subway1
//
CHK_Subway1.AutoSize = true;
CHK_Subway1.Location = new System.Drawing.Point(10, 37);
CHK_Subway1.Margin = new System.Windows.Forms.Padding(2);
CHK_Subway1.Name = "CHK_Subway1";
CHK_Subway1.Size = new System.Drawing.Size(54, 19);
CHK_Subway1.TabIndex = 2;
CHK_Subway1.Text = "Flag1";
CHK_Subway1.UseVisualStyleBackColor = true;
//
// CHK_Subway0
//
CHK_Subway0.AutoSize = true;
@ -1266,10 +1246,54 @@ namespace PKHeX.WinForms
CHK_Subway0.Text = "Flag0";
CHK_Subway0.UseVisualStyleBackColor = true;
//
// CHK_Subway1
//
CHK_Subway1.AutoSize = true;
CHK_Subway1.Location = new System.Drawing.Point(77, 20);
CHK_Subway1.Margin = new System.Windows.Forms.Padding(2);
CHK_Subway1.Name = "CHK_Subway1";
CHK_Subway1.Size = new System.Drawing.Size(54, 19);
CHK_Subway1.TabIndex = 2;
CHK_Subway1.Text = "Flag1";
CHK_Subway1.UseVisualStyleBackColor = true;
//
// CHK_Subway2
//
CHK_Subway2.AutoSize = true;
CHK_Subway2.Location = new System.Drawing.Point(10, 38);
CHK_Subway2.Margin = new System.Windows.Forms.Padding(2);
CHK_Subway2.Name = "CHK_Subway2";
CHK_Subway2.Size = new System.Drawing.Size(54, 19);
CHK_Subway2.TabIndex = 3;
CHK_Subway2.Text = "Flag2";
CHK_Subway2.UseVisualStyleBackColor = true;
//
// CHK_Subway3
//
CHK_Subway3.AutoSize = true;
CHK_Subway3.Location = new System.Drawing.Point(77, 38);
CHK_Subway3.Margin = new System.Windows.Forms.Padding(2);
CHK_Subway3.Name = "CHK_Subway3";
CHK_Subway3.Size = new System.Drawing.Size(54, 19);
CHK_Subway3.TabIndex = 4;
CHK_Subway3.Text = "Flag3";
CHK_Subway3.UseVisualStyleBackColor = true;
//
// CHK_SuperSingle
//
CHK_SuperSingle.AutoSize = true;
CHK_SuperSingle.Location = new System.Drawing.Point(10, 56);
CHK_SuperSingle.Margin = new System.Windows.Forms.Padding(2);
CHK_SuperSingle.Name = "CHK_SuperSingle";
CHK_SuperSingle.Size = new System.Drawing.Size(101, 19);
CHK_SuperSingle.TabIndex = 5;
CHK_SuperSingle.Text = "Super Singles?";
CHK_SuperSingle.UseVisualStyleBackColor = true;
//
// CHK_SuperMulti
//
CHK_SuperMulti.AutoSize = true;
CHK_SuperMulti.Location = new System.Drawing.Point(10, 129);
CHK_SuperMulti.Location = new System.Drawing.Point(10, 74);
CHK_SuperMulti.Margin = new System.Windows.Forms.Padding(2);
CHK_SuperMulti.Name = "CHK_SuperMulti";
CHK_SuperMulti.Size = new System.Drawing.Size(92, 19);
@ -1280,7 +1304,7 @@ namespace PKHeX.WinForms
// CHK_SuperDouble
//
CHK_SuperDouble.AutoSize = true;
CHK_SuperDouble.Location = new System.Drawing.Point(10, 112);
CHK_SuperDouble.Location = new System.Drawing.Point(10, 92);
CHK_SuperDouble.Margin = new System.Windows.Forms.Padding(2);
CHK_SuperDouble.Name = "CHK_SuperDouble";
CHK_SuperDouble.Size = new System.Drawing.Size(107, 19);
@ -1288,16 +1312,227 @@ namespace PKHeX.WinForms
CHK_SuperDouble.Text = "Super Doubles?";
CHK_SuperDouble.UseVisualStyleBackColor = true;
//
// CHK_SuperSingle
// CHK_Subway7
//
CHK_SuperSingle.AutoSize = true;
CHK_SuperSingle.Location = new System.Drawing.Point(10, 95);
CHK_SuperSingle.Margin = new System.Windows.Forms.Padding(2);
CHK_SuperSingle.Name = "CHK_SuperSingle";
CHK_SuperSingle.Size = new System.Drawing.Size(101, 19);
CHK_SuperSingle.TabIndex = 5;
CHK_SuperSingle.Text = "Super Singles?";
CHK_SuperSingle.UseVisualStyleBackColor = true;
CHK_Subway7.AutoSize = true;
CHK_Subway7.Location = new System.Drawing.Point(10, 110);
CHK_Subway7.Margin = new System.Windows.Forms.Padding(2);
CHK_Subway7.Name = "CHK_Subway7";
CHK_Subway7.Size = new System.Drawing.Size(54, 19);
CHK_Subway7.TabIndex = 8;
CHK_Subway7.Text = "Flag7";
CHK_Subway7.UseVisualStyleBackColor = true;
//
// CHK_SWNPCMet
//
CHK_SWNPCMet.AutoSize = true;
CHK_SWNPCMet.Location = new System.Drawing.Point(64, 110);
CHK_SWNPCMet.Margin = new System.Windows.Forms.Padding(2);
CHK_SWNPCMet.Name = "CHK_SWNPCMet";
CHK_SWNPCMet.Size = new System.Drawing.Size(74, 19);
CHK_SWNPCMet.TabIndex = 8;
CHK_SWNPCMet.Text = "NPC met";
CHK_SWNPCMet.UseVisualStyleBackColor = true;
//
// GB_CurrentData
//
GB_CurrentData.Controls.Add(L_CurrentType);
GB_CurrentData.Controls.Add(L_CurrentBattle);
GB_CurrentData.Controls.Add(NUD_CurrentType);
GB_CurrentData.Controls.Add(NUD_CurrentBattle);
GB_CurrentData.Location = new System.Drawing.Point(248, 140);
GB_CurrentData.Margin = new System.Windows.Forms.Padding(2);
GB_CurrentData.Name = "GB_CurrentData";
GB_CurrentData.Padding = new System.Windows.Forms.Padding(2);
GB_CurrentData.Size = new System.Drawing.Size(138, 73);
GB_CurrentData.TabIndex = 3;
GB_CurrentData.TabStop = false;
GB_CurrentData.Text = "Current run data";
//
// L_CurrentType
//
L_CurrentType.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
L_CurrentType.AutoSize = true;
L_CurrentType.Location = new System.Drawing.Point(45, 23);
L_CurrentType.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
L_CurrentType.Name = "L_CurrentType";
L_CurrentType.Size = new System.Drawing.Size(31, 15);
L_CurrentType.TabIndex = 0;
L_CurrentType.Text = "Type";
L_CurrentType.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// L_CurrentBattle
//
L_CurrentBattle.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
L_CurrentBattle.AutoSize = true;
L_CurrentBattle.Location = new System.Drawing.Point(17, 47);
L_CurrentBattle.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
L_CurrentBattle.Name = "L_CurrentBattle";
L_CurrentBattle.Size = new System.Drawing.Size(59, 15);
L_CurrentBattle.TabIndex = 0;
L_CurrentBattle.Text = "Battle No.";
L_CurrentBattle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// NUD_CurrentType
//
NUD_CurrentType.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
NUD_CurrentType.Location = new System.Drawing.Point(82, 21);
NUD_CurrentType.Margin = new System.Windows.Forms.Padding(2);
NUD_CurrentType.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
NUD_CurrentType.Name = "NUD_CurrentType";
NUD_CurrentType.Size = new System.Drawing.Size(48, 23);
NUD_CurrentType.TabIndex = 1;
//
// NUD_CurrentBattle
//
NUD_CurrentBattle.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
NUD_CurrentBattle.Location = new System.Drawing.Point(82, 45);
NUD_CurrentBattle.Margin = new System.Windows.Forms.Padding(2);
NUD_CurrentBattle.Maximum = new decimal(new int[] { 255, 0, 0, 0 });
NUD_CurrentBattle.Name = "NUD_CurrentBattle";
NUD_CurrentBattle.Size = new System.Drawing.Size(48, 23);
NUD_CurrentBattle.TabIndex = 1;
//
// GB_SubwaySets
//
GB_SubwaySets.Controls.Add(L_NormalSets);
GB_SubwaySets.Controls.Add(L_SuperSets);
GB_SubwaySets.Controls.Add(CHK_SingleSet);
GB_SubwaySets.Controls.Add(CHK_DoubleSet);
GB_SubwaySets.Controls.Add(CHK_MultiNPCSet);
GB_SubwaySets.Controls.Add(CHK_MultiFriendsSet);
GB_SubwaySets.Controls.Add(CHK_SuperSingleSet);
GB_SubwaySets.Controls.Add(CHK_SuperDoubleSet);
GB_SubwaySets.Controls.Add(CHK_SuperMultiNPCSet);
GB_SubwaySets.Controls.Add(CHK_SuperMultiFriendsSet);
GB_SubwaySets.Location = new System.Drawing.Point(247, 216);
GB_SubwaySets.Margin = new System.Windows.Forms.Padding(2);
GB_SubwaySets.Name = "GB_SubwaySets";
GB_SubwaySets.Padding = new System.Windows.Forms.Padding(2);
GB_SubwaySets.Size = new System.Drawing.Size(138, 107);
GB_SubwaySets.TabIndex = 3;
GB_SubwaySets.TabStop = false;
GB_SubwaySets.Text = "Is run active?";
//
// L_NormalSets
//
L_NormalSets.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
L_NormalSets.AutoSize = true;
L_NormalSets.Location = new System.Drawing.Point(42, 19);
L_NormalSets.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
L_NormalSets.Name = "L_NormalSets";
L_NormalSets.Size = new System.Drawing.Size(47, 15);
L_NormalSets.TabIndex = 0;
L_NormalSets.Text = "Normal";
L_NormalSets.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// L_SuperSets
//
L_SuperSets.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
L_SuperSets.AutoSize = true;
L_SuperSets.Location = new System.Drawing.Point(90, 19);
L_SuperSets.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
L_SuperSets.Name = "L_SuperSets";
L_SuperSets.Size = new System.Drawing.Size(37, 15);
L_SuperSets.TabIndex = 1;
L_SuperSets.Text = "Super";
L_SuperSets.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// CHK_SingleSet
//
CHK_SingleSet.AutoSize = true;
CHK_SingleSet.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
CHK_SingleSet.Location = new System.Drawing.Point(16, 36);
CHK_SingleSet.Margin = new System.Windows.Forms.Padding(2);
CHK_SingleSet.Name = "CHK_SingleSet";
CHK_SingleSet.Size = new System.Drawing.Size(58, 19);
CHK_SingleSet.TabIndex = 2;
CHK_SingleSet.Text = "Single";
CHK_SingleSet.UseVisualStyleBackColor = true;
CHK_SingleSet.CheckedChanged += CHK_SingleSet_CheckedChanged;
//
// CHK_DoubleSet
//
CHK_DoubleSet.AutoSize = true;
CHK_DoubleSet.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
CHK_DoubleSet.Location = new System.Drawing.Point(10, 53);
CHK_DoubleSet.Margin = new System.Windows.Forms.Padding(2);
CHK_DoubleSet.Name = "CHK_DoubleSet";
CHK_DoubleSet.Size = new System.Drawing.Size(64, 19);
CHK_DoubleSet.TabIndex = 3;
CHK_DoubleSet.Text = "Double";
CHK_DoubleSet.UseVisualStyleBackColor = true;
CHK_DoubleSet.CheckedChanged += CHK_DoubleSet_CheckedChanged;
//
// CHK_MultiNPCSet
//
CHK_MultiNPCSet.AutoSize = true;
CHK_MultiNPCSet.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
CHK_MultiNPCSet.Location = new System.Drawing.Point(24, 70);
CHK_MultiNPCSet.Margin = new System.Windows.Forms.Padding(2);
CHK_MultiNPCSet.Name = "CHK_MultiNPCSet";
CHK_MultiNPCSet.Size = new System.Drawing.Size(50, 19);
CHK_MultiNPCSet.TabIndex = 4;
CHK_MultiNPCSet.Text = "NPC";
CHK_MultiNPCSet.UseVisualStyleBackColor = true;
CHK_MultiNPCSet.CheckedChanged += CHK_MultiNPCSet_CheckedChanged;
//
// CHK_MultiFriendsSet
//
CHK_MultiFriendsSet.AutoSize = true;
CHK_MultiFriendsSet.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
CHK_MultiFriendsSet.Location = new System.Drawing.Point(10, 87);
CHK_MultiFriendsSet.Margin = new System.Windows.Forms.Padding(2);
CHK_MultiFriendsSet.Name = "CHK_MultiFriendsSet";
CHK_MultiFriendsSet.Size = new System.Drawing.Size(64, 19);
CHK_MultiFriendsSet.TabIndex = 5;
CHK_MultiFriendsSet.Text = "Friends";
CHK_MultiFriendsSet.UseVisualStyleBackColor = true;
CHK_MultiFriendsSet.CheckedChanged += CHK_MultiFriendsSet_CheckedChanged;
//
// CHK_SuperSingleSet
//
CHK_SuperSingleSet.AutoSize = true;
CHK_SuperSingleSet.Location = new System.Drawing.Point(102, 38);
CHK_SuperSingleSet.Margin = new System.Windows.Forms.Padding(2);
CHK_SuperSingleSet.Name = "CHK_SuperSingleSet";
CHK_SuperSingleSet.Size = new System.Drawing.Size(15, 14);
CHK_SuperSingleSet.TabIndex = 6;
CHK_SuperSingleSet.UseVisualStyleBackColor = true;
CHK_SuperSingleSet.CheckedChanged += CHK_SuperSingleSet_CheckedChanged;
//
// CHK_SuperDoubleSet
//
CHK_SuperDoubleSet.AutoSize = true;
CHK_SuperDoubleSet.Location = new System.Drawing.Point(102, 55);
CHK_SuperDoubleSet.Margin = new System.Windows.Forms.Padding(2);
CHK_SuperDoubleSet.Name = "CHK_SuperDoubleSet";
CHK_SuperDoubleSet.Size = new System.Drawing.Size(15, 14);
CHK_SuperDoubleSet.TabIndex = 7;
CHK_SuperDoubleSet.UseVisualStyleBackColor = true;
CHK_SuperDoubleSet.CheckedChanged += CHK_SuperDoubleSet_CheckedChanged;
//
// CHK_SuperMultiNPCSet
//
CHK_SuperMultiNPCSet.AutoSize = true;
CHK_SuperMultiNPCSet.Location = new System.Drawing.Point(102, 72);
CHK_SuperMultiNPCSet.Margin = new System.Windows.Forms.Padding(2);
CHK_SuperMultiNPCSet.Name = "CHK_SuperMultiNPCSet";
CHK_SuperMultiNPCSet.Size = new System.Drawing.Size(15, 14);
CHK_SuperMultiNPCSet.TabIndex = 8;
CHK_SuperMultiNPCSet.UseVisualStyleBackColor = true;
CHK_SuperMultiNPCSet.CheckedChanged += CHK_SuperMultiNPCSet_CheckedChanged;
//
// CHK_SuperMultiFriendsSet
//
CHK_SuperMultiFriendsSet.AutoSize = true;
CHK_SuperMultiFriendsSet.Location = new System.Drawing.Point(102, 89);
CHK_SuperMultiFriendsSet.Margin = new System.Windows.Forms.Padding(2);
CHK_SuperMultiFriendsSet.Name = "CHK_SuperMultiFriendsSet";
CHK_SuperMultiFriendsSet.Size = new System.Drawing.Size(15, 14);
CHK_SuperMultiFriendsSet.TabIndex = 9;
CHK_SuperMultiFriendsSet.UseVisualStyleBackColor = true;
CHK_SuperMultiFriendsSet.CheckedChanged += CHK_SuperMultiFriendsSet_CheckedChanged;
//
// GB_SuperMulti
//
@ -1841,6 +2076,15 @@ namespace PKHeX.WinForms
TAB_Medals.Text = "Medals";
TAB_Medals.UseVisualStyleBackColor = true;
//
// TB_MedalType
//
TB_MedalType.Location = new System.Drawing.Point(212, 103);
TB_MedalType.Name = "TB_MedalType";
TB_MedalType.ReadOnly = true;
TB_MedalType.Size = new System.Drawing.Size(175, 23);
TB_MedalType.TabIndex = 4;
TB_MedalType.TabStop = false;
//
// B_ObtainAllMedals
//
B_ObtainAllMedals.Location = new System.Drawing.Point(3, 264);
@ -1931,15 +2175,6 @@ namespace PKHeX.WinForms
CB_Prop.TabIndex = 0;
CB_Prop.SelectedIndexChanged += CB_Prop_SelectedIndexChanged;
//
// TB_MedalType
//
TB_MedalType.ReadOnly = true;
TB_MedalType.Location = new System.Drawing.Point(212, 103);
TB_MedalType.Name = "TB_MedalType";
TB_MedalType.Size = new System.Drawing.Size(175, 23);
TB_MedalType.TabIndex = 4;
TB_MedalType.TabStop = false;
//
// SAV_Misc5
//
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
@ -1987,6 +2222,12 @@ namespace PKHeX.WinForms
TAB_Subway.ResumeLayout(false);
GB_SubwayChecks.ResumeLayout(false);
GB_SubwayChecks.PerformLayout();
GB_CurrentData.ResumeLayout(false);
GB_CurrentData.PerformLayout();
((System.ComponentModel.ISupportInitialize)NUD_CurrentType).EndInit();
((System.ComponentModel.ISupportInitialize)NUD_CurrentBattle).EndInit();
GB_SubwaySets.ResumeLayout(false);
GB_SubwaySets.PerformLayout();
GB_SuperMulti.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)NUD_SMultiFriendsRecord).EndInit();
((System.ComponentModel.ISupportInitialize)NUD_SMultiFriendsPast).EndInit();
@ -2137,11 +2378,28 @@ namespace PKHeX.WinForms
private System.Windows.Forms.CheckBox CHK_SuperDouble;
private System.Windows.Forms.CheckBox CHK_SuperSingle;
private System.Windows.Forms.Panel PAN_MissionMeta;
private System.Windows.Forms.CheckBox CHK_Subway7;
private System.Windows.Forms.CheckBox CHK_Subway3;
private System.Windows.Forms.CheckBox CHK_Subway2;
private System.Windows.Forms.CheckBox CHK_Subway1;
private System.Windows.Forms.CheckBox CHK_Subway0;
private System.Windows.Forms.CheckBox CHK_Subway1;
private System.Windows.Forms.CheckBox CHK_Subway2;
private System.Windows.Forms.CheckBox CHK_Subway3;
private System.Windows.Forms.CheckBox CHK_Subway7;
private System.Windows.Forms.CheckBox CHK_SWNPCMet;
private System.Windows.Forms.GroupBox GB_CurrentData;
private System.Windows.Forms.Label L_CurrentType;
private System.Windows.Forms.Label L_CurrentBattle;
private System.Windows.Forms.NumericUpDown NUD_CurrentType;
private System.Windows.Forms.NumericUpDown NUD_CurrentBattle;
private System.Windows.Forms.GroupBox GB_SubwaySets;
private System.Windows.Forms.Label L_NormalSets;
private System.Windows.Forms.Label L_SuperSets;
private System.Windows.Forms.CheckBox CHK_SingleSet;
private System.Windows.Forms.CheckBox CHK_DoubleSet;
private System.Windows.Forms.CheckBox CHK_MultiNPCSet;
private System.Windows.Forms.CheckBox CHK_MultiFriendsSet;
private System.Windows.Forms.CheckBox CHK_SuperSingleSet;
private System.Windows.Forms.CheckBox CHK_SuperDoubleSet;
private System.Windows.Forms.CheckBox CHK_SuperMultiNPCSet;
private System.Windows.Forms.CheckBox CHK_SuperMultiFriendsSet;
private System.Windows.Forms.ComboBox CB_RoamStatus;
private System.Windows.Forms.Label L_RoamStatus;
private System.Windows.Forms.TabPage TAB_BWCityForest;

View file

@ -13,6 +13,7 @@ public partial class SAV_Misc5 : Form
{
private readonly SaveFile Origin;
private readonly SAV5 SAV;
private readonly BattleSubwayPlay5 swp;
private readonly BattleSubway5 sw;
private bool editing;
@ -27,6 +28,7 @@ public partial class SAV_Misc5 : Form
WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
SAV = (SAV5)(Origin = sav).Clone();
swp = SAV.BattleSubwayPlay;
sw = SAV.BattleSubway;
ReadMain();
LoadForest();
@ -662,6 +664,10 @@ public partial class SAV_Misc5 : Form
private void ReadSubway()
{
// Running Battle Subway Data
NUD_CurrentType.SetValueClamped(swp.CurrentType);
NUD_CurrentBattle.SetValueClamped(swp.CurrentBattle);
// Save Normal Checks
CHK_Subway0.Checked = sw.Flag0;
CHK_Subway1.Checked = sw.Flag1;
@ -674,6 +680,27 @@ public partial class SAV_Misc5 : Form
CHK_SuperMulti.Checked = sw.SuperMulti;
CHK_Subway7.Checked = sw.Flag7;
// NPC Met Flag
CHK_SWNPCMet.Checked = sw.NPCMet;
// Current Run Checks
CHK_SingleSet.Checked = sw.SingleSet == (sw.SinglePast / 7 + 1);
L_SinglePast.Text = CHK_SingleSet.Checked ? "Current" : "Past";
CHK_DoubleSet.Checked = sw.DoubleSet == (sw.DoublePast / 7 + 1);
L_DoublePast.Text = CHK_DoubleSet.Checked ? "Current" : "Past";
CHK_MultiNPCSet.Checked = sw.MultiNPCSet == (sw.MultiNPCPast / 7 + 1);
L_MultiNpcPast.Text = CHK_MultiNPCSet.Checked ? "Current" : "Past";
CHK_MultiFriendsSet.Checked = sw.MultiFriendsSet == (sw.MultiFriendsPast / 7 + 1);
L_MultiFriendsPast.Text = CHK_MultiFriendsSet.Checked ? "Current" : "Past";
CHK_SuperSingleSet.Checked = sw.SuperSingleSet == (sw.SuperSinglePast / 7 + 1);
L_SSinglePast.Text = CHK_SuperSingleSet.Checked ? "Current" : "Past";
CHK_SuperDoubleSet.Checked = sw.SuperDoubleSet == (sw.SuperDoublePast / 7 + 1);
L_SDoublePast.Text = CHK_SuperDoubleSet.Checked ? "Current" : "Past";
CHK_SuperMultiNPCSet.Checked = sw.SuperMultiNPCSet == (sw.SuperMultiNPCPast / 7 + 1);
L_SMultiNpcPast.Text = CHK_SuperMultiNPCSet.Checked ? "Current" : "Past";
CHK_SuperMultiFriendsSet.Checked = sw.SuperMultiFriendsSet == (sw.SuperMultiFriendsPast / 7 + 1);
L_SMultiFriendsPast.Text = CHK_SuperMultiFriendsSet.Checked ? "Current" : "Past";
// Normal
// Single
NUD_SinglePast.SetValueClamped(sw.SinglePast);
@ -711,6 +738,10 @@ public partial class SAV_Misc5 : Form
private void SaveSubway()
{
// Running Battle Subway Data
swp.CurrentType = (int)NUD_CurrentType.Value;
swp.CurrentBattle = (int)NUD_CurrentBattle.Value;
// Save Normal Checks
sw.Flag0 = CHK_Subway0.Checked;
sw.Flag1 = CHK_Subway1.Checked;
@ -723,6 +754,9 @@ public partial class SAV_Misc5 : Form
sw.SuperMulti = CHK_SuperMulti.Checked;
sw.Flag7 = CHK_Subway7.Checked;
// NPC Met Flag
sw.NPCMet = CHK_SWNPCMet.Checked;
// Normal
// Single
sw.SinglePast = (int)NUD_SinglePast.Value;
@ -756,6 +790,16 @@ public partial class SAV_Misc5 : Form
// Multi Friends
sw.SuperMultiFriendsPast = (int)NUD_SMultiFriendsPast.Value;
sw.SuperMultiFriendsRecord = (int)NUD_SMultiFriendsRecord.Value;
// Current Run Checks
sw.SingleSet = (CHK_SingleSet.Checked ? sw.SinglePast / 7 + 1 : 0);
sw.DoubleSet = (CHK_DoubleSet.Checked ? sw.DoublePast / 7 + 1 : 0);
sw.MultiNPCSet = (CHK_MultiNPCSet.Checked ? sw.MultiNPCPast / 7 + 1 : 0);
sw.MultiFriendsSet = (CHK_MultiFriendsSet.Checked ? sw.MultiFriendsPast / 7 + 1 : 0);
sw.SuperSingleSet = (CHK_SuperSingleSet.Checked ? sw.SuperSinglePast / 7 + 1 : 0);
sw.SuperDoubleSet = (CHK_SuperDoubleSet.Checked ? sw.SuperDoublePast / 7 + 1 : 0);
sw.SuperMultiNPCSet = (CHK_SuperMultiNPCSet.Checked ? sw.SuperMultiNPCPast / 7 + 1 : 0);
sw.SuperMultiFriendsSet = (CHK_SuperMultiFriendsSet.Checked ? sw.SuperMultiFriendsPast / 7 + 1 : 0);
}
private const string ForestCityBinFilter = "Forest City Bin|*.fc5";
@ -900,6 +944,46 @@ public partial class SAV_Misc5 : Form
SAV.Musical.SetHasProp(CB_Prop.SelectedIndex, CHK_PropObtained.Checked);
}
private void CHK_SingleSet_CheckedChanged(object sender, EventArgs e)
{
L_SinglePast.Text = CHK_SingleSet.Checked ? "Current" : "Past";
}
private void CHK_DoubleSet_CheckedChanged(object sender, EventArgs e)
{
L_DoublePast.Text = CHK_DoubleSet.Checked ? "Current" : "Past";
}
private void CHK_MultiNPCSet_CheckedChanged(object sender, EventArgs e)
{
L_MultiNpcPast.Text = CHK_MultiNPCSet.Checked ? "Current" : "Past";
}
private void CHK_MultiFriendsSet_CheckedChanged(object sender, EventArgs e)
{
L_MultiFriendsPast.Text = CHK_MultiFriendsSet.Checked ? "Current" : "Past";
}
private void CHK_SuperSingleSet_CheckedChanged(object sender, EventArgs e)
{
L_SSinglePast.Text = CHK_SuperSingleSet.Checked ? "Current" : "Past";
}
private void CHK_SuperDoubleSet_CheckedChanged(object sender, EventArgs e)
{
L_SDoublePast.Text = CHK_SuperDoubleSet.Checked ? "Current" : "Past";
}
private void CHK_SuperMultiNPCSet_CheckedChanged(object sender, EventArgs e)
{
L_SMultiNpcPast.Text = CHK_SuperMultiNPCSet.Checked ? "Current" : "Past";
}
private void CHK_SuperMultiFriendsSet_CheckedChanged(object sender, EventArgs e)
{
L_SMultiFriendsPast.Text = CHK_SuperMultiFriendsSet.Checked ? "Current" : "Past";
}
private void B_UnlockAllProps_Click(object sender, EventArgs e)
{
SAV.Musical.UnlockAllMusicalProps();

View file

@ -1,4 +1,5 @@
<root>
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">