internal void SetNameValues(BinaryDataTreeDecompiler decompiler, BinaryDataTreePackedNode packedNode, int numNameValues) { NameValues = new List <BinaryDataTreeBuildNameValue>(numNameValues); for (int y = 0; y < numNameValues; y++) { NameValues.Add(new BinaryDataTreeBuildNameValue()); } for (int x = 0; x < NameValues.Count; x++) { int packed_name_value_index = packedNode.NameValueOffset + x; var packed_name_value = decompiler.NameValues[packed_name_value_index]; var build_name_value = NameValues[x]; if (x == (NameValues.Count - 1)) { if (!packed_name_value.IsLastNameValue) { throw new InvalidDataException("Expected IsLastNameValue"); } } build_name_value.Name = decompiler.ReadName(packed_name_value.NameOffset); build_name_value.Variant.Read(decompiler.ValueDataPool, packed_name_value); if (packed_name_value.HasUnicodeData) { decompiler.HasUnicodeStrings = true; } } }
internal void SetChildren(BinaryDataTreeDecompiler decompiler, BinaryDataTreePackedNode packedNode, int numChildNodes) { Children = new List <BinaryDataTreeBuildNode>(numChildNodes); for (int x = 0; x < numChildNodes; x++) { Children.Add(decompiler.Nodes[packedNode.ChildNodeIndex + x]); } }
internal void SetParent(BinaryDataTreeDecompiler decompiler, BinaryDataTreePackedNode packedNode) { if (packedNode.IsRootNode) { decompiler.RootNode = this; Parent = null; } else { Parent = decompiler.Nodes[packedNode.ParentIndex]; } }