Add personal/learnset raw editor

This commit is contained in:
Kurt
2022-02-13 13:35:29 -08:00
parent 0a1529474c
commit 6ff2aab801
5 changed files with 29 additions and 83 deletions

View File

@@ -17,5 +17,5 @@ public class EventEncount8a
[FlatBufferItem(0)] public string EncounterName { get; set; } = string.Empty;
[FlatBufferItem(1)] public string Field_01 { get; set; } = string.Empty;
[FlatBufferItem(2)] public int Field_02 { get; set; } // All Entries have empty
[FlatBufferItem(3)] public EventEncountPoke8a[]? Table { get; set; } = Array.Empty<EventEncountPoke8a>();
[FlatBufferItem(3)] public EventEncountPoke8a[] Table { get; set; } = Array.Empty<EventEncountPoke8a>();
}

View File

@@ -50,7 +50,6 @@ private void InitializeComponent()
this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel();
this.B_DumpHash = new System.Windows.Forms.Button();
this.B_FlavorText = new System.Windows.Forms.Button();
this.B_EggMove = new System.Windows.Forms.Button();
this.B_Dex = new System.Windows.Forms.Button();
this.B_Outbreak = new System.Windows.Forms.Button();
this.B_MoveShop = new System.Windows.Forms.Button();
@@ -277,7 +276,6 @@ private void InitializeComponent()
//
this.flowLayoutPanel3.Controls.Add(this.B_DumpHash);
this.flowLayoutPanel3.Controls.Add(this.B_FlavorText);
this.flowLayoutPanel3.Controls.Add(this.B_EggMove);
this.flowLayoutPanel3.Controls.Add(this.B_Dex);
this.flowLayoutPanel3.Controls.Add(this.B_Outbreak);
this.flowLayoutPanel3.Controls.Add(this.B_MoveShop);
@@ -308,19 +306,9 @@ private void InitializeComponent()
this.B_FlavorText.UseVisualStyleBackColor = true;
this.B_FlavorText.Click += new System.EventHandler(this.B_FlavorText_Click);
//
// B_EggMove
//
this.B_EggMove.Location = new System.Drawing.Point(261, 3);
this.B_EggMove.Name = "B_EggMove";
this.B_EggMove.Size = new System.Drawing.Size(123, 55);
this.B_EggMove.TabIndex = 17;
this.B_EggMove.Text = "Egg Move Entries";
this.B_EggMove.UseVisualStyleBackColor = true;
this.B_EggMove.Click += new System.EventHandler(this.B_EggMove_Click);
//
// B_Dex
//
this.B_Dex.Location = new System.Drawing.Point(3, 64);
this.B_Dex.Location = new System.Drawing.Point(261, 3);
this.B_Dex.Name = "B_Dex";
this.B_Dex.Size = new System.Drawing.Size(123, 55);
this.B_Dex.TabIndex = 18;
@@ -330,7 +318,7 @@ private void InitializeComponent()
//
// B_Outbreak
//
this.B_Outbreak.Location = new System.Drawing.Point(132, 64);
this.B_Outbreak.Location = new System.Drawing.Point(3, 64);
this.B_Outbreak.Name = "B_Outbreak";
this.B_Outbreak.Size = new System.Drawing.Size(123, 55);
this.B_Outbreak.TabIndex = 19;
@@ -340,7 +328,7 @@ private void InitializeComponent()
//
// B_MoveShop
//
this.B_MoveShop.Location = new System.Drawing.Point(261, 64);
this.B_MoveShop.Location = new System.Drawing.Point(132, 64);
this.B_MoveShop.Name = "B_MoveShop";
this.B_MoveShop.Size = new System.Drawing.Size(123, 55);
this.B_MoveShop.TabIndex = 20;
@@ -350,7 +338,7 @@ private void InitializeComponent()
//
// B_ScriptCommandNames
//
this.B_ScriptCommandNames.Location = new System.Drawing.Point(3, 125);
this.B_ScriptCommandNames.Location = new System.Drawing.Point(261, 64);
this.B_ScriptCommandNames.Name = "B_ScriptCommandNames";
this.B_ScriptCommandNames.Size = new System.Drawing.Size(123, 55);
this.B_ScriptCommandNames.TabIndex = 21;
@@ -430,7 +418,6 @@ private void InitializeComponent()
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3;
private System.Windows.Forms.Button B_DumpHash;
private System.Windows.Forms.Button B_FlavorText;
private System.Windows.Forms.Button B_EggMove;
private System.Windows.Forms.Button B_OpenFolder;
private System.Windows.Forms.TabPage Tab_Future;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4;

View File

@@ -134,12 +134,6 @@ private void B_FlavorText_Click(object sender, EventArgs e)
Dumper.DumpFlavorText();
System.Media.SystemSounds.Asterisk.Play();
}
private void B_EggMove_Click(object sender, EventArgs e)
{
Dumper.DumpEggEntries();
System.Media.SystemSounds.Asterisk.Play();
}
#endregion
}

View File

@@ -161,15 +161,15 @@ public void DumpAHTB()
var pak = new GFPack(f);
foreach (var bytes in pak.DecompressedFiles)
{
if (AHTB.IsAHTB(bytes))
{
var tbl = new AHTB(bytes);
var summaries = tbl.Summary;
foreach (var t in tbl.ShortSummary)
result.Add(t);
list.Add(Path.GetFileName(f));
list.AddRange(summaries);
}
if (!AHTB.IsAHTB(bytes))
continue;
var tbl = new AHTB(bytes);
var summaries = tbl.Summary;
foreach (var t in tbl.ShortSummary)
result.Add(t);
list.Add(Path.GetFileName(f));
list.AddRange(summaries);
}
for (var i = 0; i < pak.HashAbsolute.Length; i++)
@@ -199,32 +199,6 @@ public void DumpAHTB()
File.WriteAllLines(outname3, gf);
}
public static Dictionary<ulong, string> ReadAHTB(byte[] bytes)
{
if (!AHTB.IsAHTB(bytes))
throw new ArgumentException();
var tbl = new AHTB(bytes);
return tbl.ToDictionary();
}
private TrainerEditor GetTrainerEditor()
{
var editor = new TrainerEditor
{
ReadClass = data => new TrainerClass8(data),
ReadPoke = data => new TrainerPoke8(data),
ReadTrainer = data => new TrainerData8(data),
ReadTeam = TrainerPoke8.ReadTeam,
WriteTeam = TrainerPoke8.WriteTeam,
TrainerData = ROM.GetFilteredFolder(GameFile.TrainerData),
TrainerPoke = ROM.GetFilteredFolder(GameFile.TrainerPoke),
TrainerClass = ROM.GetFilteredFolder(GameFile.TrainerClass),
};
editor.Initialize();
return editor;
}
public void DumpDrops()
{
var names = ROM.GetStrings(TextName.ItemNames);
@@ -386,7 +360,7 @@ public void DumpStatic()
File.WriteAllLines(fn, lines);
var f2 = GetPath("StaticEncountersPKHeX.txt");
File.WriteAllLines(f2, statics.Table.SelectMany(z => z.Table?.Select(x => x.Dump(speciesNames, z.EncounterName))).OrderBy(z => z));
File.WriteAllLines(f2, statics.Table.SelectMany(z => z.Table.Select(x => x.Dump(speciesNames, z.EncounterName))).OrderBy(z => z));
}
public void DumpWilds()
@@ -791,8 +765,8 @@ int GetDexIndex(int species)
for (var species = 0; species <= 980; species++)
{
var entries = dexResearch.Table.Where(e => e.Species == species);
if (!entries.Any())
var entries = Array.FindAll(dexResearch.Table, z => z.Species == species);
if (entries.Length == 0)
continue;
var dexInd = GetDexIndex(species);
@@ -944,27 +918,6 @@ IEnumerable<string> Zip(TextName name, TextName flavor)
File.WriteAllLines(p3, l3);
}
public void DumpEggEntries()
{
}
public static byte[] GetDistributionContents(string path, out int index)
{
var archive = File.ReadAllBytes(path);
// Validate Header
if (archive.Length < 0x20 || archive.Length != 4 + BitConverter.ToInt32(archive, 0x10) || BitConverter.ToInt32(archive, 0x8) != 0x20)
throw new ArgumentException();
index = archive[0];
// TODO: Eventually validate CRC16 over Data[:-4], CRC stored at Data[-4:]
var data = new byte[archive.Length - 0x24];
Array.Copy(archive, 0x20, data, 0, data.Length);
return data;
}
private static readonly string[] LanguageCodes = { "ja", "en", "fr", "it", "de", "es", "ko", "zh", "zh2" };
private static readonly string[] LanguageNames =

View File

@@ -201,6 +201,18 @@ void Randomize(IEnumerable<PokeAdd8a> arr)
}
}
public void EditPersonal_Raw()
{
var names = ROM.GetStrings(TextName.SpeciesNames);
PopFlat<PersonalTableLA, PersonalInfoLAfb>(GameFile.PersonalStats, "Personal Info Editor (Raw)", z => $"{names[z.Species]}{(z.Form == 0 ? "" : $"-{z.Form}")}");
}
public void EditLearnset_Raw()
{
var names = ROM.GetStrings(TextName.SpeciesNames);
PopFlat<Learnset8a, Learnset8aMeta>(GameFile.Learnsets, "Learnset Editor (Raw)", z => $"{names[z.Species]}{(z.Form == 0 ? "" : $"-{z.Form}")}");
}
public void EditMiscSpeciesInfo()
{
var names = ROM.GetStrings(TextName.SpeciesNames);