Skip to content

Commit

Permalink
+ CR2W.Json: support unknown classes
Browse files Browse the repository at this point in the history
but as CBytes var..
  • Loading branch information
nikich340 committed Jan 12, 2023
1 parent 557a60b commit 4124f8e
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion WolvenKit.CR2W/JSON/CR2WJsonTool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,17 @@ protected static CR2WFile DewalkCR2W(CR2WJsonData jsonCR2W, int logLevel, CR2WJs
var jsonChunk = kv_chunk.Value;
var cr2wChunk = chunkByKey[kv_chunk.Key];
PrintOK($"{LogIndent(logLevel)}[DewalkCR2W] Chunk {kv_chunk.Key} ({cr2wChunk.REDType})");
DewalkNode(cr2wChunk.data, jsonChunk, chunkByKey, jsonCR2W.extension, logLevel + 1, options);
cr2wChunk.REDObjectFlags = jsonChunk.flags;
if (jsonChunk.vars.ContainsKey("_unknownBytes") && cr2wChunk.data is CBytes dataBytes)
{
// hack for unsupported custom classes
DewalkNode(dataBytes, jsonChunk.vars["_unknownBytes"], chunkByKey, jsonCR2W.extension, logLevel + 1, options);
dataBytes.OverrideREDType = jsonChunk.type;
}
else
{
DewalkNode(cr2wChunk.data, jsonChunk, chunkByKey, jsonCR2W.extension, logLevel + 1, options);
}
if (jsonChunk.unknownBytes != null && jsonChunk.unknownBytes.Length > 0)
{
cr2wChunk.unknownBytes = new CBytes(cr2w, cr2wChunk.data, "unknownBytes");
Expand Down Expand Up @@ -650,6 +659,11 @@ protected static CR2WJsonData WalkCR2W(CR2WFile cr2w, string extension, int logL
if (newElement != null)
jsonChunk.vars[cvar.REDName] = newElement;
}
if (chunk.data.REDName == "unknownBytes" && chunk.data is CBytes dataBytes)
{
// hack for unsupported custom classes
jsonChunk.vars["_unknownBytes"] = WalkNode(chunk.data, extension, logLevel + 1, options);
}
jsonChunk.flags = chunk.REDObjectFlags;
if (chunk.unknownBytes != null && chunk.unknownBytes.Bytes != null && chunk.unknownBytes.Bytes.Length > 0)
{
Expand Down

0 comments on commit 4124f8e

Please sign in to comment.