Add TrinityCharacterCreationMasterComponent schema

Field14 varies between many overworld objects, but its use is unclear to me at the moment
This commit is contained in:
sora10pls 2024-09-23 22:13:56 -04:00
parent 51fe9491ec
commit fa1d01dc0a
2 changed files with 56 additions and 0 deletions

View File

@ -95,6 +95,7 @@ private static void Dump(Memory<byte> data, string type, TextWriter tw, int dept
case "trinity_EnvironmentParameter": DumpTrinityEnvironmentParameter(data, tw, depth); break;
case "trinity_OverrideSensorData": DumpTrinityOverrideSensorData(data, tw, depth); break;
case "pe_FlatbuffersDataComponent": DumpPEFlatbuffersDataComponent(data, tw, depth); break;
case "trinity_CharacterCreationMasterComponent": DumpTrinityCharacterCreationMasterComponent(data, tw, depth); break;
default:
if (ThrowOnUnknownType)
throw new ArgumentOutOfRangeException(nameof(type), type, null);
@ -110,6 +111,35 @@ private static void Dump(Memory<byte> data, string type, TextWriter tw, int dept
AddToBucket(data.Span, type);
}
private static void DumpTrinityCharacterCreationMasterComponent(Memory<byte> data, TextWriter tw, int depth)
{
var props = FlatBufferConverter.DeserializeFrom<TrinityCharacterCreationMasterComponent>(data);
Write(tw, depth, $"{nameof(props.Field00)}: {props.Field00}");
Write(tw, depth, $"{nameof(props.Field01)}: {props.Field01}");
Write(tw, depth, $"{nameof(props.Field02)}: {props.Field02}");
Write(tw, depth, $"{nameof(props.Field03)}: {props.Field03}");
Write(tw, depth, $"{nameof(props.Field04)}: {props.Field04}");
Write(tw, depth, $"{nameof(props.Field05)}: {props.Field05}");
Write(tw, depth, $"{nameof(props.Field06)}: {props.Field06}");
Write(tw, depth, $"{nameof(props.Field07)}: {props.Field07}");
Write(tw, depth, $"{nameof(props.Field08)}: {props.Field08}");
Write(tw, depth, $"{nameof(props.Field09)}: {props.Field09}");
Write(tw, depth, $"{nameof(props.Field10)}: {props.Field10}");
Write(tw, depth, $"{nameof(props.Field11)}: {props.Field11}");
Write(tw, depth, $"{nameof(props.Field12)}: {props.Field12}");
Write(tw, depth, $"{nameof(props.Field13)}: {props.Field13}");
Write(tw, depth, $"{nameof(props.Field14)}: {props.Field14}");
foreach (var obj in props.Field15)
{
Write(tw, depth + 1, $"{nameof(obj.ModelType)}: {obj.ModelType}");
Write(tw, depth + 1, $"{nameof(obj.ModelPath)}: {obj.ModelPath}");
Write(tw, depth + 1, $"{nameof(obj.Variant)}: {obj.Variant}");
}
Write(tw, depth, $"{nameof(props.Field16)}: {props.Field16}");
}
private static void DumpTrinityOverrideSensorData(Memory<byte> data, TextWriter tw, int depth)
{
var props = FlatBufferConverter.DeserializeFrom<TrinityOverrideSensorData>(data);

View File

@ -114,4 +114,30 @@ table TrinitySceneObject (fs_serializer) {
Field_08:[string] (required);
}
table TrinityCharacterCreationMasterComponent (fs_serializer) {
Field_00:string (required);
Field_01:byte;
Field_02:float;
Field_03:float;
Field_04:float;
Field_05:byte;
Field_06:float;
Field_07:uint;
Field_08:float;
Field_09:uint;
Field_10:float;
Field_11:uint;
Field_12:float;
Field_13:byte;
Field_14:uint;
Field_15:[TrinityCharacterCreationMasterComponentInner] (required);
Field_16:string;
}
table TrinityCharacterCreationMasterComponentInner (fs_serializer) {
ModelType:string;
ModelPath:string;
Variant:string;
}
root_type TrinitySceneObject;