From c1428107f96710d6ff2aef31b0e51a64120a458e Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 17 Jan 2020 19:01:24 -0800 Subject: [PATCH] Show Type/Value of block more cleanly Show Type in DropDown Show Value in TextLabel Export Value as filename after Key, helps show value Import filename ignore content after Key (import accounting for value in export filename) --- .../Gen8/SAV_BlockDump8.Designer.cs | 3 +- .../Save Editors/Gen8/SAV_BlockDump8.cs | 38 ++++++++++++++----- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_BlockDump8.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_BlockDump8.Designer.cs index 466a766e0..a9e0ff41a 100644 --- a/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_BlockDump8.Designer.cs +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_BlockDump8.Designer.cs @@ -399,10 +399,11 @@ private void InitializeComponent() // this.CB_Key.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; this.CB_Key.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Key.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.CB_Key.FormattingEnabled = true; this.CB_Key.Location = new System.Drawing.Point(89, 12); this.CB_Key.Name = "CB_Key"; - this.CB_Key.Size = new System.Drawing.Size(121, 21); + this.CB_Key.Size = new System.Drawing.Size(183, 22); this.CB_Key.TabIndex = 0; this.CB_Key.SelectedIndexChanged += new System.EventHandler(this.CB_Key_SelectedIndexChanged); // diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_BlockDump8.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_BlockDump8.cs index dd5577a54..ddd35995c 100644 --- a/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_BlockDump8.cs +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_BlockDump8.cs @@ -19,7 +19,7 @@ public SAV_BlockDump8(SaveFile sav) WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = (SAV8SWSH)sav; - var blocks = SAV.AllBlocks.Select((z, i) => new ComboItem($"{z.Key:X8} - {i:0000}", (int)z.Key)); + var blocks = SAV.AllBlocks.Select((z, i) => new ComboItem($"{z.Key:X8} - {i:0000} {z.Type}", (int)z.Key)); CB_Key.InitializeBinding(); CB_Key.DataSource = blocks.ToArray(); } @@ -44,7 +44,7 @@ private void B_ExportAll_Click(object sender, EventArgs e) private static void ExportAllBlocks(IEnumerable blocks, string path) { foreach (var b in blocks.Where(z => z.Data.Length != 0)) - File.WriteAllBytes(Path.Combine(path, $"{b.Key:X8}.bin"), b.Data); + File.WriteAllBytes(Path.Combine(path, $"{GetBlockFileNameWithoutExtension(b)}.bin"), b.Data); } private void B_ImportFolder_Click(object sender, EventArgs e) @@ -75,8 +75,8 @@ private void B_ExportAllSingle_Click(object sender, EventArgs e) private static void ExportSelectBlock(SCBlock block) { - var key = block.Key; - using var sfd = new SaveFileDialog {FileName = $"{key:X8}.bin"}; + var name = GetBlockFileNameWithoutExtension(block); + using var sfd = new SaveFileDialog {FileName = $"{name}.bin"}; if (sfd.ShowDialog() != DialogResult.OK) return; File.WriteAllBytes(sfd.FileName, block.Data); @@ -131,14 +131,28 @@ private static void ExportAllBlocksAsSingleFile(IReadOnlyList blocks, s File.WriteAllBytes(path, data); } + private static string GetBlockFileNameWithoutExtension(SCBlock block) + { + var key = block.Key; + var name = $"{key:X8}"; + if (block.HasValue()) + name += $" {block.GetValue()}"; + return name; + } + private static string GetBlockSummary(SCBlock b) { var sb = new StringBuilder(); - sb - .Append("Key: ").AppendFormat("{0:X8}", b.Key).AppendLine() - .Append("Length: ").AppendFormat("{0:X8}", b.Data.Length).AppendLine() - .Append("Type: ").Append(b.Type).AppendLine() - .Append("SubType: ").Append(b.SubType).AppendLine(); + sb.Append("Key: ").AppendFormat("{0:X8}", b.Key).AppendLine(); + sb.Append("Type: ").Append(b.Type).AppendLine(); + if (b.Data.Length != 0) + sb.Append("Length: ").AppendFormat("{0:X8}", b.Data.Length).AppendLine(); + + if (b.SubType != 0) + sb.Append("SubType: ").Append(b.SubType).AppendLine(); + else if (b.HasValue()) + sb.Append("Value: ").Append(b.GetValue()).AppendLine(); + return sb.ToString(); } @@ -149,6 +163,12 @@ private static List ImportBlocksFromFolder(string path, SAV8SWSH sav) foreach (var f in files) { var fn = Path.GetFileNameWithoutExtension(f); + + // Trim off Value summary if present + var space = fn.IndexOf(' '); + if (space >= 0) + fn = fn.Substring(0, space); + var hex = Util.GetHexValue(fn); try {