Updated fragment property names from sollumz repo // credit to alexguirre

This commit is contained in:
Vainko 2023-12-16 15:43:45 +00:00
parent f9a3559263
commit 7fed2be847

View File

@ -73,7 +73,7 @@ namespace CodeWalker.GameFiles
public int Unknown_C0h { get; set; } // 0, 256, 512, 768, 1024, 65280
public int Unknown_C4h { get; set; } // 1, 3, 65, 67
public int Unknown_C8h = -1; // -1
public float Unknown_CCh { get; set; }
public float UnbrokenElasticity { get; set; }
public float GravityFactor { get; set; }
public float BuoyancyFactor { get; set; }
public byte Unknown_D8h; // 0x00
@ -142,7 +142,7 @@ namespace CodeWalker.GameFiles
this.Unknown_C0h = reader.ReadInt32();
this.Unknown_C4h = reader.ReadInt32();
this.Unknown_C8h = reader.ReadInt32();
this.Unknown_CCh = reader.ReadSingle();
this.UnbrokenElasticity = reader.ReadSingle();
this.GravityFactor = reader.ReadSingle();
this.BuoyancyFactor = reader.ReadSingle();
this.Unknown_D8h = reader.ReadByte();
@ -356,7 +356,7 @@ namespace CodeWalker.GameFiles
writer.Write(this.Unknown_C0h);
writer.Write(this.Unknown_C4h);
writer.Write(this.Unknown_C8h);
writer.Write(this.Unknown_CCh);
writer.Write(this.UnbrokenElasticity);
writer.Write(this.GravityFactor);
writer.Write(this.BuoyancyFactor);
writer.Write(this.Unknown_D8h);
@ -383,7 +383,7 @@ namespace CodeWalker.GameFiles
YftXml.ValueTag(sb, indent, "UnknownBC", Unknown_BCh.ToString());
YftXml.ValueTag(sb, indent, "UnknownC0", Unknown_C0h.ToString());
YftXml.ValueTag(sb, indent, "UnknownC4", Unknown_C4h.ToString());
YftXml.ValueTag(sb, indent, "UnknownCC", FloatUtil.ToString(Unknown_CCh));
YftXml.ValueTag(sb, indent, "UnbrokenElasticity", FloatUtil.ToString(UnbrokenElasticity));
YftXml.ValueTag(sb, indent, "GravityFactor", FloatUtil.ToString(GravityFactor));
YftXml.ValueTag(sb, indent, "BuoyancyFactor", FloatUtil.ToString(BuoyancyFactor));
if ((Drawable != null) && (Drawable.OwnerCloth == null))
@ -461,7 +461,7 @@ namespace CodeWalker.GameFiles
Unknown_BCh = Xml.GetChildIntAttribute(node, "UnknownBC", "value");
Unknown_C0h = Xml.GetChildIntAttribute(node, "UnknownC0", "value");
Unknown_C4h = Xml.GetChildIntAttribute(node, "UnknownC4", "value");
Unknown_CCh = Xml.GetChildFloatAttribute(node, "UnknownCC", "value");
UnbrokenElasticity = Xml.GetChildFloatAttribute(node, "UnbrokenElasticity", "value");
GravityFactor = Xml.GetChildFloatAttribute(node, "GravityFactor", "value");
BuoyancyFactor = Xml.GetChildFloatAttribute(node, "BuoyancyFactor", "value");
var dnode = node.SelectSingleNode("Drawable");
@ -1285,8 +1285,8 @@ namespace CodeWalker.GameFiles
public ushort UnkUshort3; // 0
public uint UnkUint2; // 0
public uint UnkUint3; // 0
public float UnkFloat17 { get; set; }
public float UnkFloat18 { get; set; }
public float UnkFloat17 { get; set; } // Data_min idk what to call them vehicle_window_properties.data_min
public float UnkFloat18 { get; set; } // Data_Max idk what to call them vehicle_window_properties.data_max
public ushort UnkUshort4 { get; set; } //0, 1
public ushort UnkUshort5 { get; set; } //2, 2050
public float CracksTextureTiling { get; set; } // UV multiplier for the "shattered" cracks texture that is applied when the window is broken
@ -2111,16 +2111,16 @@ namespace CodeWalker.GameFiles
public uint Unknown_04h = 1; // 0x00000001
public ulong Unknown_08h; // 0x0000000000000000
public uint Unknown_10h; // 0x00000000
public float Unknown_14h { get; set; }
public float Unknown_18h { get; set; }
public float Unknown_1Ch { get; set; }
public float SmallestAngInertia { get; set; }
public float LargestAngInertia { get; set; }
public float MinMoveForce { get; set; }
public ulong ArticulatedBodyTypePointer { get; set; }
public ulong ChildrenUnkFloatsPointer { get; set; }
public Vector3 PositionOffset { get; set; }
public uint Unknown_3Ch { get; set; } = 0x7fc00001; // 0x7f800001, 0x7fc00001
public Vector3 Unknown_40h { get; set; }
public Vector3 OriginalRootCgOffset { get; set; }
public uint Unknown_4Ch { get; set; } = 0x7fc00001; // 0x7f800001, 0x7fc00001
public Vector3 Unknown_50h { get; set; }
public Vector3 UnbrokenCgOffset { get; set; }
public uint Unknown_5Ch = 0x7f800001; // 0x7f800001
public Vector3 DampingLinearC { get; set; }
public uint Unknown_6Ch = 0x7f800001; // 0x7f800001
@ -2186,16 +2186,16 @@ namespace CodeWalker.GameFiles
this.Unknown_04h = reader.ReadUInt32();
this.Unknown_08h = reader.ReadUInt64();
this.Unknown_10h = reader.ReadUInt32();
this.Unknown_14h = reader.ReadSingle();
this.Unknown_18h = reader.ReadSingle();
this.Unknown_1Ch = reader.ReadSingle();
this.SmallestAngInertia = reader.ReadSingle();
this.LargestAngInertia = reader.ReadSingle();
this.MinMoveForce = reader.ReadSingle();
this.ArticulatedBodyTypePointer = reader.ReadUInt64();
this.ChildrenUnkFloatsPointer = reader.ReadUInt64();
this.PositionOffset = reader.ReadVector3();
this.Unknown_3Ch = reader.ReadUInt32();
this.Unknown_40h = reader.ReadVector3();
this.OriginalRootCgOffset = reader.ReadVector3();
this.Unknown_4Ch = reader.ReadUInt32();
this.Unknown_50h = reader.ReadVector3();
this.UnbrokenCgOffset = reader.ReadVector3();
this.Unknown_5Ch = reader.ReadUInt32();
this.DampingLinearC = reader.ReadVector3();
this.Unknown_6Ch = reader.ReadUInt32();
@ -2393,16 +2393,16 @@ namespace CodeWalker.GameFiles
writer.Write(this.Unknown_04h);
writer.Write(this.Unknown_08h);
writer.Write(this.Unknown_10h);
writer.Write(this.Unknown_14h);
writer.Write(this.Unknown_18h);
writer.Write(this.Unknown_1Ch);
writer.Write(this.SmallestAngInertia);
writer.Write(this.LargestAngInertia);
writer.Write(this.MinMoveForce);
writer.Write(this.ArticulatedBodyTypePointer);
writer.Write(this.ChildrenUnkFloatsPointer);
writer.Write(this.PositionOffset);
writer.Write(this.Unknown_3Ch);
writer.Write(this.Unknown_40h);
writer.Write(this.OriginalRootCgOffset);
writer.Write(this.Unknown_4Ch);
writer.Write(this.Unknown_50h);
writer.Write(this.UnbrokenCgOffset);
writer.Write(this.Unknown_5Ch);
writer.Write(this.DampingLinearC);
writer.Write(this.Unknown_6Ch);
@ -2440,12 +2440,12 @@ namespace CodeWalker.GameFiles
}
public void WriteXml(StringBuilder sb, int indent, string ddsfolder)
{
YftXml.ValueTag(sb, indent, "Unknown14", FloatUtil.ToString(Unknown_14h));
YftXml.ValueTag(sb, indent, "Unknown18", FloatUtil.ToString(Unknown_18h));
YftXml.ValueTag(sb, indent, "Unknown1C", FloatUtil.ToString(Unknown_1Ch));
YftXml.ValueTag(sb, indent, "SmallestAngInertia", FloatUtil.ToString(SmallestAngInertia));
YftXml.ValueTag(sb, indent, "LargestAngInertia", FloatUtil.ToString(LargestAngInertia));
YftXml.ValueTag(sb, indent, "MinMoveForce", FloatUtil.ToString(MinMoveForce));
YftXml.SelfClosingTag(sb, indent, "PositionOffset " + FloatUtil.GetVector3XmlString(PositionOffset));
YftXml.SelfClosingTag(sb, indent, "Unknown40 " + FloatUtil.GetVector3XmlString(Unknown_40h));
YftXml.SelfClosingTag(sb, indent, "Unknown50 " + FloatUtil.GetVector3XmlString(Unknown_50h));
YftXml.SelfClosingTag(sb, indent, "OriginalRootCgOffset " + FloatUtil.GetVector3XmlString(OriginalRootCgOffset));
YftXml.SelfClosingTag(sb, indent, "UnbrokenCgOffset " + FloatUtil.GetVector3XmlString(UnbrokenCgOffset));
YftXml.SelfClosingTag(sb, indent, "DampingLinearC " + FloatUtil.GetVector3XmlString(DampingLinearC));
YftXml.SelfClosingTag(sb, indent, "DampingLinearV " + FloatUtil.GetVector3XmlString(DampingLinearV));
YftXml.SelfClosingTag(sb, indent, "DampingLinearV2 " + FloatUtil.GetVector3XmlString(DampingLinearV2));
@ -2515,12 +2515,12 @@ namespace CodeWalker.GameFiles
}
public void ReadXml(XmlNode node, string ddsfolder)
{
Unknown_14h = Xml.GetChildFloatAttribute(node, "Unknown14", "value");
Unknown_18h = Xml.GetChildFloatAttribute(node, "Unknown18", "value");
Unknown_1Ch = Xml.GetChildFloatAttribute(node, "Unknown1C", "value");
SmallestAngInertia = Xml.GetChildFloatAttribute(node, "SmallestAngInertia", "value");
LargestAngInertia = Xml.GetChildFloatAttribute(node, "LargestAngInertia", "value");
MinMoveForce = Xml.GetChildFloatAttribute(node, "MinMoveForce", "value");
PositionOffset = Xml.GetChildVector3Attributes(node, "PositionOffset");
Unknown_40h = Xml.GetChildVector3Attributes(node, "Unknown40");
Unknown_50h = Xml.GetChildVector3Attributes(node, "Unknown50");
OriginalRootCgOffset = Xml.GetChildVector3Attributes(node, "OriginalRootCgOffset");
UnbrokenCgOffset = Xml.GetChildVector3Attributes(node, "UnbrokenCgOffset");
DampingLinearC = Xml.GetChildVector3Attributes(node, "DampingLinearC");
DampingLinearV = Xml.GetChildVector3Attributes(node, "DampingLinearV");
DampingLinearV2 = Xml.GetChildVector3Attributes(node, "DampingLinearV2");
@ -3333,10 +3333,10 @@ namespace CodeWalker.GameFiles
public ulong Unknown_38h; // 0x0000000000000000
public float Mass { get; set; } //in pounds, of course
public float MassInv { get; set; } // 1.0 / Mass
public float Unknown_48h { get; set; } = 1.0f; // 1.0f
public float Unknown_4Ch { get; set; } = 150.0f; // 150.0f
public float Unknown_50h { get; set; } = 6.2831855f; // 6.2831855f = 2*pi
public float Unknown_54h { get; set; } = 1.0f; // 1.0f
public float GravityFactor { get; set; } = 1.0f; // 1.0f
public float MaxSpeed { get; set; } = 150.0f; // 150.0f
public float MaxAngSpeed { get; set; } = 6.2831855f; // 6.2831855f = 2*pi
public float BouyancyFactor { get; set; } = 1.0f; // 1.0f
public ulong Unknown_58h; // 0x0000000000000000
public Vector3 InertiaTensor { get; set; }
public uint Unknown_6Ch = 0x7fc00001; // 0x7fc00001
@ -3381,10 +3381,10 @@ namespace CodeWalker.GameFiles
this.Unknown_38h = reader.ReadUInt64();
this.Mass = reader.ReadSingle();
this.MassInv = reader.ReadSingle();
this.Unknown_48h = reader.ReadSingle();
this.Unknown_4Ch = reader.ReadSingle();
this.Unknown_50h = reader.ReadSingle();
this.Unknown_54h = reader.ReadSingle();
this.GravityFactor = reader.ReadSingle();
this.MaxSpeed = reader.ReadSingle();
this.MaxAngSpeed = reader.ReadSingle();
this.BouyancyFactor = reader.ReadSingle();
this.Unknown_58h = reader.ReadUInt64();
this.InertiaTensor = reader.ReadVector3();
this.Unknown_6Ch = reader.ReadUInt32();
@ -3513,10 +3513,10 @@ namespace CodeWalker.GameFiles
writer.Write(this.Unknown_38h);
writer.Write(this.Mass);
writer.Write(this.MassInv);
writer.Write(this.Unknown_48h);
writer.Write(this.Unknown_4Ch);
writer.Write(this.Unknown_50h);
writer.Write(this.Unknown_54h);
writer.Write(this.GravityFactor);
writer.Write(this.MaxSpeed);
writer.Write(this.MaxAngSpeed);
writer.Write(this.BouyancyFactor);
writer.Write(this.Unknown_58h);
writer.Write(this.InertiaTensor);
writer.Write(this.Unknown_6Ch);
@ -3540,10 +3540,10 @@ namespace CodeWalker.GameFiles
YftXml.StringTag(sb, indent, "Name", YftXml.XmlEscape(Name));
YftXml.ValueTag(sb, indent, "Mass", FloatUtil.ToString(Mass));
YftXml.ValueTag(sb, indent, "MassInv", FloatUtil.ToString(MassInv));
YftXml.ValueTag(sb, indent, "Unknown48", FloatUtil.ToString(Unknown_48h));
YftXml.ValueTag(sb, indent, "Unknown4C", FloatUtil.ToString(Unknown_4Ch));
YftXml.ValueTag(sb, indent, "Unknown50", FloatUtil.ToString(Unknown_50h));
YftXml.ValueTag(sb, indent, "Unknown54", FloatUtil.ToString(Unknown_54h));
YftXml.ValueTag(sb, indent, "GravityFactor", FloatUtil.ToString(GravityFactor));
YftXml.ValueTag(sb, indent, "MaxSpeed", FloatUtil.ToString(MaxSpeed));
YftXml.ValueTag(sb, indent, "MaxAngSpeed", FloatUtil.ToString(MaxAngSpeed));
YftXml.ValueTag(sb, indent, "BouyancyFactor", FloatUtil.ToString(BouyancyFactor));
YftXml.SelfClosingTag(sb, indent, "InertiaTensor " + FloatUtil.GetVector3XmlString(InertiaTensor));
YftXml.SelfClosingTag(sb, indent, "InertiaTensorInv " + FloatUtil.GetVector3XmlString(InertiaTensorInv));
if (Bound != null)
@ -3556,10 +3556,10 @@ namespace CodeWalker.GameFiles
Name = Xml.GetChildInnerText(node, "Name");
Mass = Xml.GetChildFloatAttribute(node, "Mass", "value");
MassInv = Xml.GetChildFloatAttribute(node, "MassInv", "value");
Unknown_48h = Xml.GetChildFloatAttribute(node, "Unknown48", "value");
Unknown_4Ch = Xml.GetChildFloatAttribute(node, "Unknown4C", "value");
Unknown_50h = Xml.GetChildFloatAttribute(node, "Unknown50", "value");
Unknown_54h = Xml.GetChildFloatAttribute(node, "Unknown54", "value");
GravityFactor = Xml.GetChildFloatAttribute(node, "GravityFactor", "value");
MaxSpeed = Xml.GetChildFloatAttribute(node, "MaxSpeed", "value");
MaxAngSpeed = Xml.GetChildFloatAttribute(node, "MaxAngSpeed", "value");
BouyancyFactor = Xml.GetChildFloatAttribute(node, "BouyancyFactor", "value");
InertiaTensor = Xml.GetChildVector3Attributes(node, "InertiaTensor");
InertiaTensorInv = Xml.GetChildVector3Attributes(node, "InertiaTensorInv");
var bnode = node.SelectSingleNode("Bounds");
@ -3971,17 +3971,17 @@ namespace CodeWalker.GameFiles
public byte GlassFlags { get; set; }//flags: 1=?, 2=glass, 4=?, ...
public float MinDamageForce { get; set; }
public float DamageHealth { get; set; }
public float UnkFloat5C { get; set; }
public float UnkFloat60 { get; set; }
public float UnkFloat64 { get; set; }
public float UnkFloat68 { get; set; }
public float UnkFloat6C { get; set; }
public float UnkFloat70 { get; set; }
public float UnkFloat74 { get; set; }
public float UnkFloat78 { get; set; }
public float WeaponHealth { get; set; }
public float WeaponScale { get; set; }
public float VehicleScale { get; set; }
public float PedScale { get; set; }
public float RagdollScale { get; set; }
public float ExplosionScale { get; set; }
public float ObjectScale { get; set; }
public float PedInvMassScale { get; set; }
public float Unknown_7Ch; // 0x00000000
public FragPhysNameStruct_s Name { get; set; }
public float UnkFloatA8 { get; set; }
public float MeleeScale { get; set; }
public float Unknown_ACh; // 0x00000000
public override void Read(ResourceDataReader reader, params object[] parameters)
@ -4015,17 +4015,17 @@ namespace CodeWalker.GameFiles
this.GlassFlags = reader.ReadByte();
this.MinDamageForce = reader.ReadSingle();
this.DamageHealth = reader.ReadSingle();
this.UnkFloat5C = reader.ReadSingle();
this.UnkFloat60 = reader.ReadSingle();
this.UnkFloat64 = reader.ReadSingle();
this.UnkFloat68 = reader.ReadSingle();
this.UnkFloat6C = reader.ReadSingle();
this.UnkFloat70 = reader.ReadSingle();
this.UnkFloat74 = reader.ReadSingle();
this.UnkFloat78 = reader.ReadSingle();
this.WeaponHealth = reader.ReadSingle();
this.WeaponScale = reader.ReadSingle();
this.VehicleScale = reader.ReadSingle();
this.PedScale = reader.ReadSingle();
this.RagdollScale = reader.ReadSingle();
this.ExplosionScale = reader.ReadSingle();
this.ObjectScale = reader.ReadSingle();
this.PedInvMassScale = reader.ReadSingle();
this.Unknown_7Ch = reader.ReadSingle();
this.Name = reader.ReadStruct<FragPhysNameStruct_s>();
this.UnkFloatA8 = reader.ReadSingle();
this.MeleeScale = reader.ReadSingle();
this.Unknown_ACh = reader.ReadSingle();
//if (Unknown_00h != 0)
@ -4138,17 +4138,17 @@ namespace CodeWalker.GameFiles
writer.Write(GlassFlags);
writer.Write(MinDamageForce);
writer.Write(DamageHealth);
writer.Write(UnkFloat5C);
writer.Write(UnkFloat60);
writer.Write(UnkFloat64);
writer.Write(UnkFloat68);
writer.Write(UnkFloat6C);
writer.Write(UnkFloat70);
writer.Write(UnkFloat74);
writer.Write(UnkFloat78);
writer.Write(WeaponHealth);
writer.Write(WeaponScale);
writer.Write(VehicleScale);
writer.Write(PedScale);
writer.Write(RagdollScale);
writer.Write(ExplosionScale);
writer.Write(ObjectScale);
writer.Write(PedInvMassScale);
writer.Write(Unknown_7Ch);
writer.WriteStruct(Name);
writer.Write(UnkFloatA8);
writer.Write(MeleeScale);
writer.Write(Unknown_ACh);
}
public void WriteXml(StringBuilder sb, int indent)
@ -4173,15 +4173,15 @@ namespace CodeWalker.GameFiles
YftXml.ValueTag(sb, indent, "Mass", FloatUtil.ToString(Mass));
YftXml.ValueTag(sb, indent, "MinDamageForce", FloatUtil.ToString(MinDamageForce));
YftXml.ValueTag(sb, indent, "DamageHealth", FloatUtil.ToString(DamageHealth));
YftXml.ValueTag(sb, indent, "UnkFloat5C", FloatUtil.ToString(UnkFloat5C));
YftXml.ValueTag(sb, indent, "UnkFloat60", FloatUtil.ToString(UnkFloat60));
YftXml.ValueTag(sb, indent, "UnkFloat64", FloatUtil.ToString(UnkFloat64));
YftXml.ValueTag(sb, indent, "UnkFloat68", FloatUtil.ToString(UnkFloat68));
YftXml.ValueTag(sb, indent, "UnkFloat6C", FloatUtil.ToString(UnkFloat6C));
YftXml.ValueTag(sb, indent, "UnkFloat70", FloatUtil.ToString(UnkFloat70));
YftXml.ValueTag(sb, indent, "UnkFloat74", FloatUtil.ToString(UnkFloat74));
YftXml.ValueTag(sb, indent, "UnkFloat78", FloatUtil.ToString(UnkFloat78));
YftXml.ValueTag(sb, indent, "UnkFloatA8", FloatUtil.ToString(UnkFloatA8));
YftXml.ValueTag(sb, indent, "WeaponHealth", FloatUtil.ToString(WeaponHealth));
YftXml.ValueTag(sb, indent, "WeaponScale", FloatUtil.ToString(WeaponScale));
YftXml.ValueTag(sb, indent, "VehicleScale", FloatUtil.ToString(VehicleScale));
YftXml.ValueTag(sb, indent, "PedScale", FloatUtil.ToString(PedScale));
YftXml.ValueTag(sb, indent, "RagdollScale", FloatUtil.ToString(RagdollScale));
YftXml.ValueTag(sb, indent, "ExplosionScale", FloatUtil.ToString(ExplosionScale));
YftXml.ValueTag(sb, indent, "ObjectScale", FloatUtil.ToString(ObjectScale));
YftXml.ValueTag(sb, indent, "PedInvMassScale", FloatUtil.ToString(PedInvMassScale));
YftXml.ValueTag(sb, indent, "MeleeScale", FloatUtil.ToString(MeleeScale));
}
public void ReadXml(XmlNode node)
{
@ -4205,15 +4205,15 @@ namespace CodeWalker.GameFiles
Mass = Xml.GetChildFloatAttribute(node, "Mass", "value");
MinDamageForce = Xml.GetChildFloatAttribute(node, "MinDamageForce", "value");
DamageHealth = Xml.GetChildFloatAttribute(node, "DamageHealth", "value");
UnkFloat5C = Xml.GetChildFloatAttribute(node, "UnkFloat5C", "value");
UnkFloat60 = Xml.GetChildFloatAttribute(node, "UnkFloat60", "value");
UnkFloat64 = Xml.GetChildFloatAttribute(node, "UnkFloat64", "value");
UnkFloat68 = Xml.GetChildFloatAttribute(node, "UnkFloat68", "value");
UnkFloat6C = Xml.GetChildFloatAttribute(node, "UnkFloat6C", "value");
UnkFloat70 = Xml.GetChildFloatAttribute(node, "UnkFloat70", "value");
UnkFloat74 = Xml.GetChildFloatAttribute(node, "UnkFloat74", "value");
UnkFloat78 = Xml.GetChildFloatAttribute(node, "UnkFloat78", "value");
UnkFloatA8 = Xml.GetChildFloatAttribute(node, "UnkFloatA8", "value");
WeaponHealth = Xml.GetChildFloatAttribute(node, "WeaponHealth", "value");
WeaponScale = Xml.GetChildFloatAttribute(node, "WeaponScale", "value");
VehicleScale = Xml.GetChildFloatAttribute(node, "VehicleScale", "value");
PedScale = Xml.GetChildFloatAttribute(node, "PedScale", "value");
RagdollScale = Xml.GetChildFloatAttribute(node, "RagdollScale", "value");
ExplosionScale = Xml.GetChildFloatAttribute(node, "ExplosionScale", "value");
ObjectScale = Xml.GetChildFloatAttribute(node, "ObjectScale", "value");
PedInvMassScale = Xml.GetChildFloatAttribute(node, "PedInvMassScale", "value");
MeleeScale = Xml.GetChildFloatAttribute(node, "MeleeScale", "value");
}
public override string ToString()