mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-11-16 20:17:30 +08:00
tweak(drawable): update Unknown values
This commit is contained in:
parent
4d49215671
commit
3a04afa9e3
@ -813,22 +813,22 @@ namespace CodeWalker.GameFiles
|
|||||||
public ulong BoneTagsPointer { get; set; }
|
public ulong BoneTagsPointer { get; set; }
|
||||||
public ushort BoneTagsCapacity { get; set; }
|
public ushort BoneTagsCapacity { get; set; }
|
||||||
public ushort BoneTagsCount { get; set; }
|
public ushort BoneTagsCount { get; set; }
|
||||||
public FlagsUint Unknown_1Ch { get; set; }
|
public FlagsUint BoneIdTable { get; set; }
|
||||||
public ulong BonesPointer { get; set; }
|
public ulong BonesPointer { get; set; }
|
||||||
public ulong TransformationsInvertedPointer { get; set; }
|
public ulong TransformationsInvertedPointer { get; set; }
|
||||||
public ulong TransformationsPointer { get; set; }
|
public ulong TransformationsPointer { get; set; }
|
||||||
public ulong ParentIndicesPointer { get; set; }
|
public ulong ParentIndicesPointer { get; set; }
|
||||||
public ulong ChildIndicesPointer { get; set; }
|
public ulong ChildIndicesPointer { get; set; }
|
||||||
public ulong Unknown_48h; // 0x0000000000000000
|
public ulong Properties; // 0x0000000000000000
|
||||||
public MetaHash Unknown_50h { get; set; }
|
public MetaHash Signature { get; set; }
|
||||||
public MetaHash Unknown_54h { get; set; }
|
public MetaHash SignatureNonChiral { get; set; }
|
||||||
public MetaHash Unknown_58h { get; set; }
|
public MetaHash SignatureComprehensive { get; set; }
|
||||||
public ushort Unknown_5Ch { get; set; } = 1; // 0x0001
|
public ushort RefCount { get; set; } = 1; // 0x0001
|
||||||
public ushort BonesCount { get; set; }
|
public ushort NumBones { get; set; }
|
||||||
public ushort ChildIndicesCount { get; set; }
|
public ushort NumChildCount { get; set; }
|
||||||
public ushort Unknown_62h; // 0x0000
|
public ushort Unknown_62h; // 0x0000 Padding
|
||||||
public uint Unknown_64h; // 0x00000000
|
public uint Unknown_64h; // 0x00000000 Padding
|
||||||
public ulong Unknown_68h; // 0x0000000000000000
|
public ulong Unknown_68h; // 0x0000000000000000 Padding
|
||||||
|
|
||||||
// reference data
|
// reference data
|
||||||
public ResourcePointerArray64<SkeletonBoneTag> BoneTags { get; set; }
|
public ResourcePointerArray64<SkeletonBoneTag> BoneTags { get; set; }
|
||||||
@ -861,30 +861,30 @@ namespace CodeWalker.GameFiles
|
|||||||
this.BoneTagsPointer = reader.ReadUInt64();
|
this.BoneTagsPointer = reader.ReadUInt64();
|
||||||
this.BoneTagsCapacity = reader.ReadUInt16();
|
this.BoneTagsCapacity = reader.ReadUInt16();
|
||||||
this.BoneTagsCount = reader.ReadUInt16();
|
this.BoneTagsCount = reader.ReadUInt16();
|
||||||
this.Unknown_1Ch = reader.ReadUInt32();
|
this.BoneIdTable = reader.ReadUInt32();
|
||||||
this.BonesPointer = reader.ReadUInt64();
|
this.BonesPointer = reader.ReadUInt64();
|
||||||
this.TransformationsInvertedPointer = reader.ReadUInt64();
|
this.TransformationsInvertedPointer = reader.ReadUInt64();
|
||||||
this.TransformationsPointer = reader.ReadUInt64();
|
this.TransformationsPointer = reader.ReadUInt64();
|
||||||
this.ParentIndicesPointer = reader.ReadUInt64();
|
this.ParentIndicesPointer = reader.ReadUInt64();
|
||||||
this.ChildIndicesPointer = reader.ReadUInt64();
|
this.ChildIndicesPointer = reader.ReadUInt64();
|
||||||
this.Unknown_48h = reader.ReadUInt64();
|
this.Properties = reader.ReadUInt64();
|
||||||
this.Unknown_50h = new MetaHash(reader.ReadUInt32());
|
this.Signature = new MetaHash(reader.ReadUInt32());
|
||||||
this.Unknown_54h = new MetaHash(reader.ReadUInt32());
|
this.SignatureNonChiral = new MetaHash(reader.ReadUInt32());
|
||||||
this.Unknown_58h = new MetaHash(reader.ReadUInt32());
|
this.SignatureComprehensive = new MetaHash(reader.ReadUInt32());
|
||||||
this.Unknown_5Ch = reader.ReadUInt16();
|
this.RefCount = reader.ReadUInt16();
|
||||||
this.BonesCount = reader.ReadUInt16();
|
this.NumBones = reader.ReadUInt16();
|
||||||
this.ChildIndicesCount = reader.ReadUInt16();
|
this.NumChildCount = reader.ReadUInt16();
|
||||||
this.Unknown_62h = reader.ReadUInt16();
|
this.Unknown_62h = reader.ReadUInt16();
|
||||||
this.Unknown_64h = reader.ReadUInt32();
|
this.Unknown_64h = reader.ReadUInt32();
|
||||||
this.Unknown_68h = reader.ReadUInt64();
|
this.Unknown_68h = reader.ReadUInt64();
|
||||||
|
|
||||||
// read reference data
|
// read reference data
|
||||||
this.BoneTags = reader.ReadBlockAt<ResourcePointerArray64<SkeletonBoneTag>>(this.BoneTagsPointer, this.BoneTagsCapacity);
|
this.BoneTags = reader.ReadBlockAt<ResourcePointerArray64<SkeletonBoneTag>>(this.BoneTagsPointer, this.BoneTagsCapacity);
|
||||||
this.Bones = reader.ReadBlockAt<SkeletonBonesBlock>((this.BonesPointer != 0) ? (BonesPointer - 16) : 0, (uint)this.BonesCount);
|
this.Bones = reader.ReadBlockAt<SkeletonBonesBlock>((this.BonesPointer != 0) ? (BonesPointer - 16) : 0, (uint)this.NumBones);
|
||||||
this.TransformationsInverted = reader.ReadStructsAt<Matrix>(this.TransformationsInvertedPointer, this.BonesCount);
|
this.TransformationsInverted = reader.ReadStructsAt<Matrix>(this.TransformationsInvertedPointer, this.NumBones);
|
||||||
this.Transformations = reader.ReadStructsAt<Matrix>(this.TransformationsPointer, this.BonesCount);
|
this.Transformations = reader.ReadStructsAt<Matrix>(this.TransformationsPointer, this.NumBones);
|
||||||
this.ParentIndices = reader.ReadShortsAt(this.ParentIndicesPointer, this.BonesCount);
|
this.ParentIndices = reader.ReadShortsAt(this.ParentIndicesPointer, this.NumBones);
|
||||||
this.ChildIndices = reader.ReadShortsAt(this.ChildIndicesPointer, this.ChildIndicesCount);
|
this.ChildIndices = reader.ReadShortsAt(this.ChildIndicesPointer, this.NumChildCount);
|
||||||
|
|
||||||
|
|
||||||
AssignBoneParents();
|
AssignBoneParents();
|
||||||
@ -927,9 +927,9 @@ namespace CodeWalker.GameFiles
|
|||||||
this.TransformationsPointer = (ulong)(this.TransformationsBlock != null ? this.TransformationsBlock.FilePosition : 0);
|
this.TransformationsPointer = (ulong)(this.TransformationsBlock != null ? this.TransformationsBlock.FilePosition : 0);
|
||||||
this.ParentIndicesPointer = (ulong)(this.ParentIndicesBlock != null ? this.ParentIndicesBlock.FilePosition : 0);
|
this.ParentIndicesPointer = (ulong)(this.ParentIndicesBlock != null ? this.ParentIndicesBlock.FilePosition : 0);
|
||||||
this.ChildIndicesPointer = (ulong)(this.ChildIndicesBlock != null ? this.ChildIndicesBlock.FilePosition : 0);
|
this.ChildIndicesPointer = (ulong)(this.ChildIndicesBlock != null ? this.ChildIndicesBlock.FilePosition : 0);
|
||||||
this.BonesCount = (ushort)(this.Bones?.Items != null ? this.Bones.Items.Length : 0);
|
this.NumBones = (ushort)(this.Bones?.Items != null ? this.Bones.Items.Length : 0);
|
||||||
this.ChildIndicesCount = (ushort)(this.ChildIndicesBlock != null ? this.ChildIndicesBlock.ItemCount : 0);
|
this.NumChildCount = (ushort)(this.ChildIndicesBlock != null ? this.ChildIndicesBlock.ItemCount : 0);
|
||||||
this.BoneTagsCount = Math.Min(BonesCount, BoneTagsCapacity);
|
this.BoneTagsCount = Math.Min(NumBones, BoneTagsCapacity);
|
||||||
|
|
||||||
|
|
||||||
// write structure data
|
// write structure data
|
||||||
@ -939,29 +939,29 @@ namespace CodeWalker.GameFiles
|
|||||||
writer.Write(this.BoneTagsPointer);
|
writer.Write(this.BoneTagsPointer);
|
||||||
writer.Write(this.BoneTagsCapacity);
|
writer.Write(this.BoneTagsCapacity);
|
||||||
writer.Write(this.BoneTagsCount);
|
writer.Write(this.BoneTagsCount);
|
||||||
writer.Write(this.Unknown_1Ch);
|
writer.Write(this.BoneIdTable);
|
||||||
writer.Write(this.BonesPointer);
|
writer.Write(this.BonesPointer);
|
||||||
writer.Write(this.TransformationsInvertedPointer);
|
writer.Write(this.TransformationsInvertedPointer);
|
||||||
writer.Write(this.TransformationsPointer);
|
writer.Write(this.TransformationsPointer);
|
||||||
writer.Write(this.ParentIndicesPointer);
|
writer.Write(this.ParentIndicesPointer);
|
||||||
writer.Write(this.ChildIndicesPointer);
|
writer.Write(this.ChildIndicesPointer);
|
||||||
writer.Write(this.Unknown_48h);
|
writer.Write(this.Properties);
|
||||||
writer.Write(this.Unknown_50h);
|
writer.Write(this.Signature);
|
||||||
writer.Write(this.Unknown_54h);
|
writer.Write(this.SignatureNonChiral);
|
||||||
writer.Write(this.Unknown_58h);
|
writer.Write(this.SignatureComprehensive);
|
||||||
writer.Write(this.Unknown_5Ch);
|
writer.Write(this.RefCount);
|
||||||
writer.Write(this.BonesCount);
|
writer.Write(this.NumBones);
|
||||||
writer.Write(this.ChildIndicesCount);
|
writer.Write(this.NumChildCount);
|
||||||
writer.Write(this.Unknown_62h);
|
writer.Write(this.Unknown_62h);
|
||||||
writer.Write(this.Unknown_64h);
|
writer.Write(this.Unknown_64h);
|
||||||
writer.Write(this.Unknown_68h);
|
writer.Write(this.Unknown_68h);
|
||||||
}
|
}
|
||||||
public void WriteXml(StringBuilder sb, int indent)
|
public void WriteXml(StringBuilder sb, int indent)
|
||||||
{
|
{
|
||||||
YdrXml.ValueTag(sb, indent, "Unknown1C", Unknown_1Ch.Value.ToString());
|
YdrXml.ValueTag(sb, indent, "BoneIdTable", BoneIdTable.Value.ToString());
|
||||||
YdrXml.ValueTag(sb, indent, "Unknown50", Unknown_50h.Hash.ToString());
|
YdrXml.ValueTag(sb, indent, "Signature", Signature.Hash.ToString());
|
||||||
YdrXml.ValueTag(sb, indent, "Unknown54", Unknown_54h.Hash.ToString());
|
YdrXml.ValueTag(sb, indent, "SignatureNonChiral", SignatureNonChiral.Hash.ToString());
|
||||||
YdrXml.ValueTag(sb, indent, "Unknown58", Unknown_58h.Hash.ToString());
|
YdrXml.ValueTag(sb, indent, "SignatureComprehensive", SignatureComprehensive.Hash.ToString());
|
||||||
|
|
||||||
if (Bones?.Items != null)
|
if (Bones?.Items != null)
|
||||||
{
|
{
|
||||||
@ -971,10 +971,10 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
public void ReadXml(XmlNode node)
|
public void ReadXml(XmlNode node)
|
||||||
{
|
{
|
||||||
Unknown_1Ch = Xml.GetChildUIntAttribute(node, "Unknown1C", "value");
|
BoneIdTable = Xml.GetChildUIntAttribute(node, "BoneIdTable", "value");
|
||||||
Unknown_50h = Xml.GetChildUIntAttribute(node, "Unknown50", "value");
|
Signature = Xml.GetChildUIntAttribute(node, "Signature", "value");
|
||||||
Unknown_54h = Xml.GetChildUIntAttribute(node, "Unknown54", "value");
|
SignatureNonChiral = Xml.GetChildUIntAttribute(node, "SignatureNonChiral", "value");
|
||||||
Unknown_58h = Xml.GetChildUIntAttribute(node, "Unknown58", "value");
|
SignatureComprehensive = Xml.GetChildUIntAttribute(node, "SignatureComprehensive", "value");
|
||||||
|
|
||||||
var bones = XmlMeta.ReadItemArray<Bone>(node, "Bones");
|
var bones = XmlMeta.ReadItemArray<Bone>(node, "Bones");
|
||||||
if (bones != null)
|
if (bones != null)
|
||||||
@ -1422,12 +1422,12 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
skel.BoneTagsCapacity = BoneTagsCapacity;
|
skel.BoneTagsCapacity = BoneTagsCapacity;
|
||||||
skel.BoneTagsCount = BoneTagsCount;
|
skel.BoneTagsCount = BoneTagsCount;
|
||||||
skel.Unknown_1Ch = Unknown_1Ch;
|
skel.BoneIdTable = BoneIdTable;
|
||||||
skel.Unknown_50h = Unknown_50h;
|
skel.Signature = Signature;
|
||||||
skel.Unknown_54h = Unknown_54h;
|
skel.SignatureNonChiral = SignatureNonChiral;
|
||||||
skel.Unknown_58h = Unknown_58h;
|
skel.SignatureComprehensive = SignatureComprehensive;
|
||||||
skel.BonesCount = BonesCount;
|
skel.NumBones = NumBones;
|
||||||
skel.ChildIndicesCount = ChildIndicesCount;
|
skel.NumChildCount = NumChildCount;
|
||||||
|
|
||||||
if (BoneTags != null)
|
if (BoneTags != null)
|
||||||
{
|
{
|
||||||
@ -1473,7 +1473,7 @@ namespace CodeWalker.GameFiles
|
|||||||
nb.Flags = ob.Flags;
|
nb.Flags = ob.Flags;
|
||||||
nb.Index = ob.Index;
|
nb.Index = ob.Index;
|
||||||
nb.Tag = ob.Tag;
|
nb.Tag = ob.Tag;
|
||||||
nb.Index2 = ob.Index2;
|
nb.MirrorIndex = ob.MirrorIndex;
|
||||||
nb.Name = ob.Name;
|
nb.Name = ob.Name;
|
||||||
nb.AnimRotation = ob.AnimRotation;
|
nb.AnimRotation = ob.AnimRotation;
|
||||||
nb.AnimTranslation = ob.AnimTranslation;
|
nb.AnimTranslation = ob.AnimTranslation;
|
||||||
@ -2030,18 +2030,18 @@ namespace CodeWalker.GameFiles
|
|||||||
// structure data
|
// structure data
|
||||||
public Quaternion Rotation { get; set; }
|
public Quaternion Rotation { get; set; }
|
||||||
public Vector3 Translation { get; set; }
|
public Vector3 Translation { get; set; }
|
||||||
public uint Unknown_1Ch; // 0x00000000 RHW?
|
public uint Unknown_1Ch; // 0x00000000 padding
|
||||||
public Vector3 Scale { get; set; }
|
public Vector3 Scale { get; set; }
|
||||||
public float Unknown_2Ch { get; set; } = 1.0f; // 1.0 RHW?
|
public float Unknown_2Ch { get; set; } = 1.0f; // 1.0 padding
|
||||||
public short NextSiblingIndex { get; set; } //limb end index? IK chain?
|
public short NextSiblingIndex { get; set; }
|
||||||
public short ParentIndex { get; set; }
|
public short ParentIndex { get; set; }
|
||||||
public uint Unknown_34h; // 0x00000000
|
public uint Unknown_34h; // 0x00000000 padding
|
||||||
public ulong NamePointer { get; set; }
|
public ulong NamePointer { get; set; }
|
||||||
public EBoneFlags Flags { get; set; }
|
public EBoneFlags Flags { get; set; } // Dofs
|
||||||
public short Index { get; set; }
|
public short Index { get; set; }
|
||||||
public ushort Tag { get; set; }
|
public ushort Tag { get; set; } // Bone IDs
|
||||||
public short Index2 { get; set; }//always same as Index
|
public short MirrorIndex { get; set; }//always same as Index
|
||||||
public ulong Unknown_48h; // 0x0000000000000000
|
public ulong Unknown_48h; // 0x0000000000000000 padding
|
||||||
|
|
||||||
// reference data
|
// reference data
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
@ -2076,7 +2076,7 @@ namespace CodeWalker.GameFiles
|
|||||||
this.Flags = (EBoneFlags)reader.ReadUInt16();
|
this.Flags = (EBoneFlags)reader.ReadUInt16();
|
||||||
this.Index = reader.ReadInt16();
|
this.Index = reader.ReadInt16();
|
||||||
this.Tag = reader.ReadUInt16();
|
this.Tag = reader.ReadUInt16();
|
||||||
this.Index2 = reader.ReadInt16();
|
this.MirrorIndex = reader.ReadInt16();
|
||||||
this.Unknown_48h = reader.ReadUInt64();
|
this.Unknown_48h = reader.ReadUInt64();
|
||||||
|
|
||||||
// read reference data
|
// read reference data
|
||||||
@ -2118,7 +2118,7 @@ namespace CodeWalker.GameFiles
|
|||||||
writer.Write((ushort)this.Flags);
|
writer.Write((ushort)this.Flags);
|
||||||
writer.Write(this.Index);
|
writer.Write(this.Index);
|
||||||
writer.Write(this.Tag);
|
writer.Write(this.Tag);
|
||||||
writer.Write(this.Index2);
|
writer.Write(this.MirrorIndex);
|
||||||
writer.Write(this.Unknown_48h);
|
writer.Write(this.Unknown_48h);
|
||||||
}
|
}
|
||||||
public void WriteXml(StringBuilder sb, int indent)
|
public void WriteXml(StringBuilder sb, int indent)
|
||||||
@ -2139,7 +2139,7 @@ namespace CodeWalker.GameFiles
|
|||||||
Name = Xml.GetChildInnerText(node, "Name");
|
Name = Xml.GetChildInnerText(node, "Name");
|
||||||
Tag = (ushort)Xml.GetChildUIntAttribute(node, "Tag", "value");
|
Tag = (ushort)Xml.GetChildUIntAttribute(node, "Tag", "value");
|
||||||
Index = (short)Xml.GetChildIntAttribute(node, "Index", "value");
|
Index = (short)Xml.GetChildIntAttribute(node, "Index", "value");
|
||||||
Index2 = Index;
|
MirrorIndex = Index;
|
||||||
ParentIndex = (short)Xml.GetChildIntAttribute(node, "ParentIndex", "value");
|
ParentIndex = (short)Xml.GetChildIntAttribute(node, "ParentIndex", "value");
|
||||||
NextSiblingIndex = (short)Xml.GetChildIntAttribute(node, "SiblingIndex", "value");
|
NextSiblingIndex = (short)Xml.GetChildIntAttribute(node, "SiblingIndex", "value");
|
||||||
Flags = Xml.GetChildEnumInnerText<EBoneFlags>(node, "Flags");
|
Flags = Xml.GetChildEnumInnerText<EBoneFlags>(node, "Flags");
|
||||||
|
Loading…
Reference in New Issue
Block a user