mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-22 20:13:06 +00:00
Enhance Text trash editor
#4222 SuggestAppend species dropdown Indicate trash-to-be-applied when hovering on button Fix ClickOT in pkmEditor applying English on Japanese Gen3 saves
This commit is contained in:
parent
95eb008125
commit
f7900ed8b4
4 changed files with 31 additions and 12 deletions
|
@ -40,6 +40,7 @@ public abstract class SAV3 : SaveFile, ILangDeviantSave, IEventFlag37, IBoxDetai
|
|||
public readonly byte[] Storage = new byte[9 * SIZE_SECTOR_USED]; // [0x83D0]
|
||||
|
||||
private readonly int ActiveSlot;
|
||||
public sealed override int Language { get => Japanese ? (int)LanguageID.Japanese : (int)LanguageID.English; set { } }
|
||||
|
||||
protected SAV3(bool japanese) => Japanese = japanese;
|
||||
|
||||
|
@ -314,13 +315,15 @@ public abstract class SAV3 : SaveFile, ILangDeviantSave, IEventFlag37, IBoxDetai
|
|||
|
||||
public abstract uint SecurityKey { get; set; }
|
||||
|
||||
public Span<byte> OriginalTrainerTrash => Small.AsSpan(0, 8);
|
||||
|
||||
public sealed override string OT
|
||||
{
|
||||
get => GetString(Small.AsSpan(0, 8));
|
||||
get => GetString(OriginalTrainerTrash);
|
||||
set
|
||||
{
|
||||
int len = Japanese ? 5 : MaxStringLengthOT;
|
||||
SetString(Small.AsSpan(0, len), value, len, StringConverterOption.ClearFF);
|
||||
SetString(OriginalTrainerTrash[..len], value, len, StringConverterOption.ClearFF); // match the game-init FF terminating pattern
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -395,7 +395,7 @@ public sealed partial class PKMEditor : UserControl, IMainEditor
|
|||
UC_OTGender.Gender = (byte)(tr.Gender & 1);
|
||||
TID_Trainer.LoadInfo(tr);
|
||||
|
||||
if (tr.Version != 0)
|
||||
if (tr.Version.IsValidSavedVersion())
|
||||
CB_GameOrigin.SelectedValue = (int)tr.Version;
|
||||
|
||||
var lang = tr.Language;
|
||||
|
|
|
@ -58,6 +58,8 @@ namespace PKHeX.WinForms
|
|||
// CB_Species
|
||||
//
|
||||
CB_Species.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
|
||||
CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
|
||||
CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
|
||||
CB_Species.FormattingEnabled = true;
|
||||
CB_Species.Location = new System.Drawing.Point(89, 18);
|
||||
CB_Species.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using PKHeX.Core;
|
||||
|
||||
|
@ -50,8 +51,16 @@ public partial class TrashEditor : Form
|
|||
|
||||
editing = false;
|
||||
CenterToParent();
|
||||
B_ApplyTrash.MouseHover += (_, _) =>
|
||||
{
|
||||
var text = GetTrashString();
|
||||
var data = SetString(text);
|
||||
var display = $"{text} = {Environment.NewLine}{string.Join(' ', data.Select(z => $"{z:X2}"))}";
|
||||
Tip.Show(display, B_ApplyTrash);
|
||||
};
|
||||
}
|
||||
|
||||
private readonly ToolTip Tip = new() { InitialDelay = 200, IsBalloon = false, AutoPopDelay = 32_767 };
|
||||
private readonly List<NumericUpDown> Bytes = [];
|
||||
public string FinalString;
|
||||
public byte[] FinalBytes;
|
||||
|
@ -151,16 +160,9 @@ public partial class TrashEditor : Form
|
|||
|
||||
private void B_ApplyTrash_Click(object sender, EventArgs e)
|
||||
{
|
||||
var species = (ushort)WinFormsUtil.GetIndex(CB_Species);
|
||||
var language = WinFormsUtil.GetIndex(CB_Language);
|
||||
var gen = (byte)NUD_Generation.Value;
|
||||
string speciesName = SpeciesName.GetSpeciesNameGeneration(species, language, gen);
|
||||
|
||||
if (string.IsNullOrEmpty(speciesName)) // no result
|
||||
speciesName = CB_Species.Text;
|
||||
|
||||
string text = GetTrashString();
|
||||
byte[] data = SetString(text);
|
||||
byte[] current = SetString(TB_Text.Text);
|
||||
byte[] data = SetString(speciesName);
|
||||
if (data.Length <= current.Length)
|
||||
{
|
||||
WinFormsUtil.Alert("Trash byte layer is hidden by current text.",
|
||||
|
@ -176,6 +178,18 @@ public partial class TrashEditor : Form
|
|||
Bytes[i].Value = data[i];
|
||||
}
|
||||
|
||||
private string GetTrashString()
|
||||
{
|
||||
var species = (ushort)WinFormsUtil.GetIndex(CB_Species);
|
||||
var language = WinFormsUtil.GetIndex(CB_Language);
|
||||
var gen = (byte)NUD_Generation.Value;
|
||||
string text = SpeciesName.GetSpeciesNameGeneration(species, language, gen);
|
||||
|
||||
if (string.IsNullOrEmpty(text)) // no result
|
||||
text = CB_Species.Text;
|
||||
return text;
|
||||
}
|
||||
|
||||
private void B_ClearTrash_Click(object sender, EventArgs e)
|
||||
{
|
||||
byte[] current = SetString(TB_Text.Text);
|
||||
|
|
Loading…
Reference in a new issue