mirror of
https://github.com/kwsch/pkNX.git
synced 2026-05-09 04:31:08 -05:00
Add dump for mastery levels, duplicate levels
This commit is contained in:
parent
ec9d9c539e
commit
58cf010e44
|
|
@ -28,7 +28,7 @@ public class Learnset8aMeta
|
|||
[FlatBufferItem(2)] public Learnset8aEntry[] Mainline { get; set; } = Array.Empty<Learnset8aEntry>();
|
||||
[FlatBufferItem(3)] public Learnset8aEntry[] Arceus { get; set; } = Array.Empty<Learnset8aEntry>();
|
||||
|
||||
public byte[] WriteAsLearn6()
|
||||
public byte[] WriteLearnsetAsLearn6()
|
||||
{
|
||||
using var ms = new MemoryStream();
|
||||
using var br = new BinaryWriter(ms);
|
||||
|
|
@ -40,6 +40,19 @@ public byte[] WriteAsLearn6()
|
|||
br.Write(-1);
|
||||
return ms.ToArray();
|
||||
}
|
||||
|
||||
public byte[] WriteMasteryAsLearn6()
|
||||
{
|
||||
using var ms = new MemoryStream();
|
||||
using var br = new BinaryWriter(ms);
|
||||
foreach (var entry in Arceus)
|
||||
{
|
||||
br.Write(entry.Move);
|
||||
br.Write(entry.LevelMaster);
|
||||
}
|
||||
br.Write(-1);
|
||||
return ms.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
[FlatBufferTable, TypeConverter(typeof(ExpandableObjectConverter))]
|
||||
|
|
|
|||
|
|
@ -271,9 +271,11 @@ public void DumpLearnsetBinary()
|
|||
var obj = FlatBufferConverter.DeserializeFrom<Learnset8a>(data);
|
||||
var pt = GetPersonal();
|
||||
var result = new byte[pt.TableLength][];
|
||||
var mastery = new byte[pt.TableLength][];
|
||||
for (int i = 0; i < result.Length; i++)
|
||||
result[i] = Array.Empty<byte>();
|
||||
result[i] = mastery[i] = Array.Empty<byte>();
|
||||
|
||||
var Dupes = new List<(int Species, int Form)>();
|
||||
foreach (var e in obj.Table)
|
||||
{
|
||||
if (e.Arceus.Length == 0)
|
||||
|
|
@ -282,12 +284,30 @@ public void DumpLearnsetBinary()
|
|||
var entry = (PersonalInfoLA_Bin)pt[index];
|
||||
if (!entry.IsPresentInGame)
|
||||
continue;
|
||||
result[index] = e.WriteAsLearn6();
|
||||
result[index] = e.WriteLearnsetAsLearn6();
|
||||
mastery[index] = e.WriteMasteryAsLearn6();
|
||||
|
||||
if (e.Arceus.Select(z => z.Level).Distinct().Count() != e.Arceus.Length)
|
||||
Dupes.Add(new(e.Species, e.Form));
|
||||
}
|
||||
|
||||
var mini = MiniUtil.PackMini(result, "la");
|
||||
var bin = GetPath(Path.Combine("bin", "lvlmove_la.pkl"));
|
||||
File.WriteAllBytes(bin, mini);
|
||||
// Learnset
|
||||
{
|
||||
var mini = MiniUtil.PackMini(result, "la");
|
||||
var bin = GetPath(Path.Combine("bin", "lvlmove_la.pkl"));
|
||||
File.WriteAllBytes(bin, mini);
|
||||
}
|
||||
// Mastery
|
||||
{
|
||||
var mini = MiniUtil.PackMini(mastery, "la");
|
||||
var bin = GetPath(Path.Combine("bin", "mastery_la.pkl"));
|
||||
File.WriteAllBytes(bin, mini);
|
||||
}
|
||||
// Dupes
|
||||
{
|
||||
var txt = GetPath(Path.Combine("bin", "lvlmove_dupes.txt"));
|
||||
File.WriteAllLines(txt, Dupes.Select(z => $"{(Species)z.Species}{(z.Form == 0 ? "" : $"{z.Form}")}"));
|
||||
}
|
||||
}
|
||||
|
||||
private PersonalTable GetPersonal()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user