It should now be able to read files with custom entries

This commit is contained in:
2021-12-02 20:56:23 +01:00
parent b14b28a9a5
commit 63f70a93ca
2 changed files with 55 additions and 2 deletions

View File

@@ -118,7 +118,7 @@ namespace BMGEditor
m_File_Tbl.Entries.Sort((x, y) =>
{
int a = (int)x[70793394], b = (int)y[70793394];
UInt32 a = (UInt32)x[70793394], b = (UInt32)y[70793394];
return a.CompareTo(b);
});
int l = 0;

View File

@@ -76,7 +76,60 @@ namespace BMGEditor
return String.CompareOrdinal(entryNameA, entryNameB);
});
//m_FileTbl
m_FileTbl.Entries.Clear();
foreach (BMG.TextEntry txtEntry in m_File.Entries)
{
Bcsv.Entry entry = new Bcsv.Entry();
m_FileTbl.Entries.Add(entry);
int index = 0;
foreach (Bcsv.Field field in m_FileTbl.Fields.Values)
{
uint hash = field.NameHash;
string valstring;
if (index == 0)
valstring = txtEntry.entryName;
else
valstring = String.Concat(txtEntry.entryNo);
index++;
try
{
switch (field.Type)
{
case 0:
case 3: entry.Add(hash, uint.Parse(valstring)); break;
case 4: entry.Add(hash, ushort.Parse(valstring)); break;
case 5: entry.Add(hash, byte.Parse(valstring)); break;
case 2: entry.Add(hash, float.Parse(valstring)); break;
case 6: entry.Add(hash, valstring); break;
}
}
catch
{
switch (field.Type)
{
case 0:
case 3: entry.Add(hash, (uint)0); break;
case 4: entry.Add(hash, (ushort)0); break;
case 5: entry.Add(hash, (byte)0); break;
case 2: entry.Add(hash, 0f); break;
case 6: entry.Add(hash, ""); break;
}
}
}
}
m_FileTbl.Flush();
m_File.Entries.Sort((x, y) =>
{
int entryIndexA = x.entryNo, entryIndexB = y.entryNo;
return entryIndexA.CompareTo(entryIndexB);
});
m_File.WriteToFile();
}
}