Add yucky textrepl parsing
This commit is contained in:
parent
81fde92ea4
commit
5d23f87359
|
@ -93,3 +93,14 @@ public class PropRenderType : Property
|
|||
mode = (Mode)reader.ReadUInt32();
|
||||
}
|
||||
}
|
||||
|
||||
public class PropString : Property
|
||||
{
|
||||
public string value;
|
||||
|
||||
public override void Read(BinaryReader reader)
|
||||
{
|
||||
base.Read(reader);
|
||||
value = Encoding.UTF8.GetString(reader.ReadBytes(length)).Replace("\0", string.Empty);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -105,6 +105,10 @@ public class DbFile
|
|||
"P$ModelName" => new PropertyChunk<PropModelName>(),
|
||||
"P$Scale" => new PropertyChunk<PropScale>(),
|
||||
"P$RenderTyp" => new PropertyChunk<PropRenderType>(),
|
||||
"P$OTxtRepr0" => new PropertyChunk<PropString>(),
|
||||
"P$OTxtRepr1" => new PropertyChunk<PropString>(),
|
||||
"P$OTxtRepr2" => new PropertyChunk<PropString>(),
|
||||
"P$OTxtRepr3" => new PropertyChunk<PropString>(),
|
||||
"LD$MetaProp" => new LinkDataMetaProp(),
|
||||
_ when entryName.StartsWith("L$") => new LinkChunk(),
|
||||
_ when entryName.StartsWith("P$") => new PropertyChunk<PropGeneric>(),
|
||||
|
|
|
@ -38,12 +38,20 @@ public class ObjectHierarchy
|
|||
if (db.Chunks.TryGetValue("P$ModelName", out var modelNamesRaw) &&
|
||||
db.Chunks.TryGetValue("P$Scale", out var scalesRaw) &&
|
||||
db.Chunks.TryGetValue("P$RenderTyp", out var renderTypesRaw) &&
|
||||
db.Chunks.TryGetValue("P$OTxtRepr0", out var txtRepl0Raw) &&
|
||||
db.Chunks.TryGetValue("P$OTxtRepr1", out var txtRepl1Raw) &&
|
||||
db.Chunks.TryGetValue("P$OTxtRepr2", out var txtRepl2Raw) &&
|
||||
db.Chunks.TryGetValue("P$OTxtRepr3", out var txtRepl3Raw) &&
|
||||
db.Chunks.TryGetValue("L$MetaProp", out var metaPropLinksRaw) &&
|
||||
db.Chunks.TryGetValue("LD$MetaProp", out var metaPropLinkDataRaw))
|
||||
{
|
||||
var modelNames = (PropertyChunk<PropModelName>)modelNamesRaw;
|
||||
var scales = (PropertyChunk<PropScale>)scalesRaw;
|
||||
var renderTypes = (PropertyChunk<PropRenderType>)renderTypesRaw;
|
||||
var txtRepl0s = (PropertyChunk<PropString>)txtRepl0Raw;
|
||||
var txtRepl1s = (PropertyChunk<PropString>)txtRepl1Raw;
|
||||
var txtRepl2s = (PropertyChunk<PropString>)txtRepl2Raw;
|
||||
var txtRepl3s = (PropertyChunk<PropString>)txtRepl3Raw;
|
||||
var metaPropLinks = (LinkChunk)metaPropLinksRaw;
|
||||
var metaPropLinkData = (LinkDataMetaProp)metaPropLinkDataRaw;
|
||||
|
||||
|
@ -52,12 +60,20 @@ public class ObjectHierarchy
|
|||
gam.Chunks.TryGetValue("P$ModelName", out var gamModelNames) &&
|
||||
gam.Chunks.TryGetValue("P$Scale", out var gamScales) &&
|
||||
gam.Chunks.TryGetValue("P$RenderTyp", out var gamRenderTypes) &&
|
||||
gam.Chunks.TryGetValue("P$OTxtRepr0", out var gamTxtRepl0s) &&
|
||||
gam.Chunks.TryGetValue("P$OTxtRepr1", out var gamTxtRepl1s) &&
|
||||
gam.Chunks.TryGetValue("P$OTxtRepr2", out var gamTxtRepl2s) &&
|
||||
gam.Chunks.TryGetValue("P$OTxtRepr3", out var gamTxtRepl3s) &&
|
||||
gam.Chunks.TryGetValue("L$MetaProp", out var gamLinks) &&
|
||||
gam.Chunks.TryGetValue("LD$MetaProp", out var gamLinkData))
|
||||
{
|
||||
modelNames.properties.AddRange(((PropertyChunk<PropModelName>)gamModelNames).properties);
|
||||
scales.properties.AddRange(((PropertyChunk<PropScale>)gamScales).properties);
|
||||
renderTypes.properties.AddRange(((PropertyChunk<PropRenderType>)gamRenderTypes).properties);
|
||||
txtRepl0s.properties.AddRange(((PropertyChunk<PropString>)gamTxtRepl0s).properties);
|
||||
txtRepl1s.properties.AddRange(((PropertyChunk<PropString>)gamTxtRepl1s).properties);
|
||||
txtRepl2s.properties.AddRange(((PropertyChunk<PropString>)gamTxtRepl2s).properties);
|
||||
txtRepl3s.properties.AddRange(((PropertyChunk<PropString>)gamTxtRepl3s).properties);
|
||||
metaPropLinks.links.AddRange(((LinkChunk)gamLinks).links);
|
||||
metaPropLinkData.linkData.AddRange(((LinkDataMetaProp)gamLinkData).linkData);
|
||||
}
|
||||
|
@ -108,6 +124,22 @@ public class ObjectHierarchy
|
|||
{
|
||||
TryAddProp("P$RenderTyp", prop);
|
||||
}
|
||||
foreach (var prop in txtRepl0s.properties)
|
||||
{
|
||||
TryAddProp("P$OTxtRepr0", prop);
|
||||
}
|
||||
foreach (var prop in txtRepl1s.properties)
|
||||
{
|
||||
TryAddProp("P$OTxtRepr1", prop);
|
||||
}
|
||||
foreach (var prop in txtRepl2s.properties)
|
||||
{
|
||||
TryAddProp("P$OTxtRepr2", prop);
|
||||
}
|
||||
foreach (var prop in txtRepl3s.properties)
|
||||
{
|
||||
TryAddProp("P$OTxtRepr3", prop);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue