Update solved unknowns and document possible meanings

This commit is contained in:
ook3D 2023-07-31 13:26:26 -04:00
parent 6f081935a0
commit dcc5cd5837

View File

@ -2069,21 +2069,21 @@ namespace CodeWalker.GameFiles
public ulong Unknown_60h; // 0x0000000000000000 public ulong Unknown_60h; // 0x0000000000000000
public uint Unknown_68h; // 0x00000000 public uint Unknown_68h; // 0x00000000
public uint Unknown_6Ch { get; set; } = 0x7f800001; // 0x7f800001 public uint Unknown_6Ch { get; set; } = 0x7f800001; // 0x7f800001
public float Unknown_70h { get; set; } public float Unknown_70h { get; set; } // Particle Playback / Duration
public float Unknown_74h { get; set; } // 0, 0.1f, 0.25f, 1.0f public float Unknown_74h { get; set; } // 0, 0.1f, 0.25f, 1.0f
public float Unknown_78h { get; set; } public float PlaybackDelay { get; set; } // Particle Playback delay in MS
public float Unknown_7Ch { get; set; } public float Unknown_7Ch { get; set; }
public float Unknown_80h { get; set; } public float PlaybackSpeedScale { get; set; } // effects playback speed
public float Unknown_84h { get; set; } public float PlaybackSpeedScaleModifier { get; set; } // effects playback speed
public uint Unknown_88h { get; set; } // eg. 0x01010105 public uint Unknown_88h { get; set; } // eg. 0x01010105
public uint Unknown_8Ch { get; set; } // eg. 0x01010002 public uint Unknown_8Ch { get; set; } // eg. 0x01010002
public float Unknown_90h { get; set; } public float Unknown_90h { get; set; } // Effects angle which effect is visible ( X / Y Axis )
public float Unknown_94h { get; set; } public float Unknown_94h { get; set; } // Effects angle which effect is visible ( Z Axis )
public float Unknown_98h { get; set; } public float Unknown_98h { get; set; }
public uint Unknown_9Ch { get; set; } = 0x7f800001;// 0x7f800001 public uint Unknown_9Ch { get; set; } = 0x7f800001;// 0x7f800001
public float Unknown_A0h { get; set; } public float Unknown_A0h { get; set; } // vo visual difference (?)
public float Unknown_A4h { get; set; } public float Unknown_A4h { get; set; } // no visual difference (?)
public float Unknown_A8h { get; set; } public float Unknown_A8h { get; set; } // set to 1-4 to disable effect(?)
public float Unknown_ACh { get; set; } public float Unknown_ACh { get; set; }
public float Unknown_B0h { get; set; } public float Unknown_B0h { get; set; }
public float Unknown_B4h { get; set; } public float Unknown_B4h { get; set; }
@ -2141,10 +2141,10 @@ namespace CodeWalker.GameFiles
this.Unknown_6Ch = reader.ReadUInt32(); this.Unknown_6Ch = reader.ReadUInt32();
this.Unknown_70h = reader.ReadSingle(); this.Unknown_70h = reader.ReadSingle();
this.Unknown_74h = reader.ReadSingle(); this.Unknown_74h = reader.ReadSingle();
this.Unknown_78h = reader.ReadSingle(); this.PlaybackDelay = reader.ReadSingle();
this.Unknown_7Ch = reader.ReadSingle(); this.Unknown_7Ch = reader.ReadSingle();
this.Unknown_80h = reader.ReadSingle(); this.PlaybackSpeedScale = reader.ReadSingle();
this.Unknown_84h = reader.ReadSingle(); this.PlaybackSpeedScaleModifier = reader.ReadSingle();
this.Unknown_88h = reader.ReadUInt32(); this.Unknown_88h = reader.ReadUInt32();
this.Unknown_8Ch = reader.ReadUInt32(); this.Unknown_8Ch = reader.ReadUInt32();
this.Unknown_90h = reader.ReadSingle(); this.Unknown_90h = reader.ReadSingle();
@ -2531,10 +2531,10 @@ namespace CodeWalker.GameFiles
writer.Write(this.Unknown_6Ch); writer.Write(this.Unknown_6Ch);
writer.Write(this.Unknown_70h); writer.Write(this.Unknown_70h);
writer.Write(this.Unknown_74h); writer.Write(this.Unknown_74h);
writer.Write(this.Unknown_78h); writer.Write(this.PlaybackDelay);
writer.Write(this.Unknown_7Ch); writer.Write(this.Unknown_7Ch);
writer.Write(this.Unknown_80h); writer.Write(this.PlaybackSpeedScale);
writer.Write(this.Unknown_84h); writer.Write(this.PlaybackSpeedScaleModifier);
writer.Write(this.Unknown_88h); writer.Write(this.Unknown_88h);
writer.Write(this.Unknown_8Ch); writer.Write(this.Unknown_8Ch);
writer.Write(this.Unknown_90h); writer.Write(this.Unknown_90h);
@ -2572,10 +2572,10 @@ namespace CodeWalker.GameFiles
YptXml.ValueTag(sb, indent, "Unknown54", YptXml.UintString(Unknown_54h)); YptXml.ValueTag(sb, indent, "Unknown54", YptXml.UintString(Unknown_54h));
YptXml.ValueTag(sb, indent, "Unknown70", FloatUtil.ToString(Unknown_70h)); YptXml.ValueTag(sb, indent, "Unknown70", FloatUtil.ToString(Unknown_70h));
YptXml.ValueTag(sb, indent, "Unknown74", FloatUtil.ToString(Unknown_74h)); YptXml.ValueTag(sb, indent, "Unknown74", FloatUtil.ToString(Unknown_74h));
YptXml.ValueTag(sb, indent, "Unknown78", FloatUtil.ToString(Unknown_78h)); YptXml.ValueTag(sb, indent, "PlaybackDelay", FloatUtil.ToString(PlaybackDelay));
YptXml.ValueTag(sb, indent, "Unknown7C", FloatUtil.ToString(Unknown_7Ch)); YptXml.ValueTag(sb, indent, "Unknown7C", FloatUtil.ToString(Unknown_7Ch));
YptXml.ValueTag(sb, indent, "Unknown80", FloatUtil.ToString(Unknown_80h)); YptXml.ValueTag(sb, indent, "PlaybackSpeedScale", FloatUtil.ToString(PlaybackSpeedScale));
YptXml.ValueTag(sb, indent, "Unknown84", FloatUtil.ToString(Unknown_84h)); YptXml.ValueTag(sb, indent, "PlaybackSpeedScaleModifier", FloatUtil.ToString(PlaybackSpeedScaleModifier));
YptXml.ValueTag(sb, indent, "Unknown88", YptXml.UintString(Unknown_88h)); YptXml.ValueTag(sb, indent, "Unknown88", YptXml.UintString(Unknown_88h));
YptXml.ValueTag(sb, indent, "Unknown8C", YptXml.UintString(Unknown_8Ch)); YptXml.ValueTag(sb, indent, "Unknown8C", YptXml.UintString(Unknown_8Ch));
YptXml.ValueTag(sb, indent, "Unknown90", FloatUtil.ToString(Unknown_90h)); YptXml.ValueTag(sb, indent, "Unknown90", FloatUtil.ToString(Unknown_90h));
@ -2617,10 +2617,10 @@ namespace CodeWalker.GameFiles
Unknown_54h = Xml.GetChildUIntAttribute(node, "Unknown54"); Unknown_54h = Xml.GetChildUIntAttribute(node, "Unknown54");
Unknown_70h = Xml.GetChildFloatAttribute(node, "Unknown70"); Unknown_70h = Xml.GetChildFloatAttribute(node, "Unknown70");
Unknown_74h = Xml.GetChildFloatAttribute(node, "Unknown74"); Unknown_74h = Xml.GetChildFloatAttribute(node, "Unknown74");
Unknown_78h = Xml.GetChildFloatAttribute(node, "Unknown78"); PlaybackDelay = Xml.GetChildFloatAttribute(node, "PlaybackDelay");
Unknown_7Ch = Xml.GetChildFloatAttribute(node, "Unknown7C"); Unknown_7Ch = Xml.GetChildFloatAttribute(node, "Unknown7C");
Unknown_80h = Xml.GetChildFloatAttribute(node, "Unknown80"); PlaybackSpeedScale = Xml.GetChildFloatAttribute(node, "PlaybackSpeedScale");
Unknown_84h = Xml.GetChildFloatAttribute(node, "Unknown84"); PlaybackSpeedScaleModifier = Xml.GetChildFloatAttribute(node, "PlaybackSpeedScaleModifier");
Unknown_88h = Xml.GetChildUIntAttribute(node, "Unknown88"); Unknown_88h = Xml.GetChildUIntAttribute(node, "Unknown88");
Unknown_8Ch = Xml.GetChildUIntAttribute(node, "Unknown8C"); Unknown_8Ch = Xml.GetChildUIntAttribute(node, "Unknown8C");
Unknown_90h = Xml.GetChildFloatAttribute(node, "Unknown90"); Unknown_90h = Xml.GetChildFloatAttribute(node, "Unknown90");
@ -2717,17 +2717,17 @@ namespace CodeWalker.GameFiles
public uint Unknown_Ch; // 0x00000000 public uint Unknown_Ch; // 0x00000000
public float Unknown_10h { get; set; } public float Unknown_10h { get; set; }
public float Unknown_14h { get; set; } public float Unknown_14h { get; set; }
public ulong UnknownDataPointer { get; set; } public ulong EvolutionParamsPointer { get; set; }
public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_20h; // 0x0000000000000000
public ulong Unknown_28h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000
public ulong EmitterRuleNamePointer { get; set; } public ulong EmitterRuleNamePointer { get; set; }
public ulong ParticleRuleNamePointer { get; set; } public ulong ParticleRuleNamePointer { get; set; }
public ulong EmitterRulePointer { get; set; } public ulong EmitterRulePointer { get; set; }
public ulong ParticleRulePointer { get; set; } public ulong ParticleRulePointer { get; set; }
public float Unknown_50h { get; set; } public float MoveSpeedScale { get; set; }
public float Unknown_54h { get; set; } public float MoveSpeedScaleModifier { get; set; }
public float Unknown_58h { get; set; } public float ParticleScale { get; set; }
public float Unknown_5Ch { get; set; } public float ParticleScaleModifier { get; set; }
public uint Colour1 { get; set; } // eg. 0xfffafafa - colour? public uint Colour1 { get; set; } // eg. 0xfffafafa - colour?
public uint Colour2 { get; set; } // eg. 0x5affffff - colour? public uint Colour2 { get; set; } // eg. 0x5affffff - colour?
public ulong Unknown_68h; // 0x0000000000000000 public ulong Unknown_68h; // 0x0000000000000000
@ -2749,23 +2749,23 @@ namespace CodeWalker.GameFiles
this.Unknown_Ch = reader.ReadUInt32(); this.Unknown_Ch = reader.ReadUInt32();
this.Unknown_10h = reader.ReadSingle(); this.Unknown_10h = reader.ReadSingle();
this.Unknown_14h = reader.ReadSingle(); this.Unknown_14h = reader.ReadSingle();
this.UnknownDataPointer = reader.ReadUInt64(); this.EvolutionParamsPointer = reader.ReadUInt64();
this.Unknown_20h = reader.ReadUInt64(); this.Unknown_20h = reader.ReadUInt64();
this.Unknown_28h = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64();
this.EmitterRuleNamePointer = reader.ReadUInt64(); this.EmitterRuleNamePointer = reader.ReadUInt64();
this.ParticleRuleNamePointer = reader.ReadUInt64(); this.ParticleRuleNamePointer = reader.ReadUInt64();
this.EmitterRulePointer = reader.ReadUInt64(); this.EmitterRulePointer = reader.ReadUInt64();
this.ParticleRulePointer = reader.ReadUInt64(); this.ParticleRulePointer = reader.ReadUInt64();
this.Unknown_50h = reader.ReadSingle(); this.MoveSpeedScale = reader.ReadSingle();
this.Unknown_54h = reader.ReadSingle(); this.MoveSpeedScaleModifier = reader.ReadSingle();
this.Unknown_58h = reader.ReadSingle(); this.ParticleScale = reader.ReadSingle();
this.Unknown_5Ch = reader.ReadSingle(); this.ParticleScaleModifier = reader.ReadSingle();
this.Colour1 = reader.ReadUInt32(); this.Colour1 = reader.ReadUInt32();
this.Colour2 = reader.ReadUInt32(); this.Colour2 = reader.ReadUInt32();
this.Unknown_68h = reader.ReadUInt64(); this.Unknown_68h = reader.ReadUInt64();
// read reference data // read reference data
this.UnknownData = reader.ReadBlockAt<ParticleUnknown1>(this.UnknownDataPointer); this.UnknownData = reader.ReadBlockAt<ParticleUnknown1>(this.EvolutionParamsPointer);
this.EmitterRuleName = reader.ReadBlockAt<string_r>(this.EmitterRuleNamePointer); this.EmitterRuleName = reader.ReadBlockAt<string_r>(this.EmitterRuleNamePointer);
this.ParticleRuleName = reader.ReadBlockAt<string_r>(this.ParticleRuleNamePointer); this.ParticleRuleName = reader.ReadBlockAt<string_r>(this.ParticleRuleNamePointer);
this.EmitterRule = reader.ReadBlockAt<ParticleEmitterRule>(this.EmitterRulePointer); this.EmitterRule = reader.ReadBlockAt<ParticleEmitterRule>(this.EmitterRulePointer);
@ -2829,7 +2829,7 @@ namespace CodeWalker.GameFiles
//{ }//no hit //{ }//no hit
//if (Unknown_28h != 0) //if (Unknown_28h != 0)
//{ }//no hit //{ }//no hit
switch (Unknown_50h) switch (MoveSpeedScale)
{ {
case 1.0f: case 1.0f:
case 2.0f: case 2.0f:
@ -2839,7 +2839,7 @@ namespace CodeWalker.GameFiles
default: default:
break;//more break;//more
} }
switch (Unknown_54h) switch (MoveSpeedScaleModifier)
{ {
case 1.0f: case 1.0f:
case 2.0f: case 2.0f:
@ -2849,7 +2849,7 @@ namespace CodeWalker.GameFiles
default: default:
break;//and more break;//and more
} }
switch (Unknown_58h) switch (ParticleScale)
{ {
case 1.0f: case 1.0f:
case 0.5f: case 0.5f:
@ -2860,7 +2860,7 @@ namespace CodeWalker.GameFiles
default: default:
break;//more break;//more
} }
switch (Unknown_5Ch) switch (ParticleScaleModifier)
{ {
case 1.0f: case 1.0f:
case 1.2f: case 1.2f:
@ -2909,7 +2909,7 @@ namespace CodeWalker.GameFiles
public override void Write(ResourceDataWriter writer, params object[] parameters) public override void Write(ResourceDataWriter writer, params object[] parameters)
{ {
// update structure data // update structure data
this.UnknownDataPointer = (ulong)(this.UnknownData != null ? this.UnknownData.FilePosition : 0); this.EvolutionParamsPointer = (ulong)(this.UnknownData != null ? this.UnknownData.FilePosition : 0);
this.EmitterRuleNamePointer = (ulong)(this.EmitterRuleName != null ? this.EmitterRuleName.FilePosition : 0); this.EmitterRuleNamePointer = (ulong)(this.EmitterRuleName != null ? this.EmitterRuleName.FilePosition : 0);
this.ParticleRuleNamePointer = (ulong)(this.ParticleRuleName != null ? this.ParticleRuleName.FilePosition : 0); this.ParticleRuleNamePointer = (ulong)(this.ParticleRuleName != null ? this.ParticleRuleName.FilePosition : 0);
this.EmitterRulePointer = (ulong)(this.EmitterRule != null ? this.EmitterRule.FilePosition : 0); this.EmitterRulePointer = (ulong)(this.EmitterRule != null ? this.EmitterRule.FilePosition : 0);
@ -2922,17 +2922,17 @@ namespace CodeWalker.GameFiles
writer.Write(this.Unknown_Ch); writer.Write(this.Unknown_Ch);
writer.Write(this.Unknown_10h); writer.Write(this.Unknown_10h);
writer.Write(this.Unknown_14h); writer.Write(this.Unknown_14h);
writer.Write(this.UnknownDataPointer); writer.Write(this.EvolutionParamsPointer);
writer.Write(this.Unknown_20h); writer.Write(this.Unknown_20h);
writer.Write(this.Unknown_28h); writer.Write(this.Unknown_28h);
writer.Write(this.EmitterRuleNamePointer); writer.Write(this.EmitterRuleNamePointer);
writer.Write(this.ParticleRuleNamePointer); writer.Write(this.ParticleRuleNamePointer);
writer.Write(this.EmitterRulePointer); writer.Write(this.EmitterRulePointer);
writer.Write(this.ParticleRulePointer); writer.Write(this.ParticleRulePointer);
writer.Write(this.Unknown_50h); writer.Write(this.MoveSpeedScale);
writer.Write(this.Unknown_54h); writer.Write(this.MoveSpeedScaleModifier);
writer.Write(this.Unknown_58h); writer.Write(this.ParticleScale);
writer.Write(this.Unknown_5Ch); writer.Write(this.ParticleScaleModifier);
writer.Write(this.Colour1); writer.Write(this.Colour1);
writer.Write(this.Colour2); writer.Write(this.Colour2);
writer.Write(this.Unknown_68h); writer.Write(this.Unknown_68h);
@ -2943,10 +2943,10 @@ namespace CodeWalker.GameFiles
YptXml.StringTag(sb, indent, "ParticleRule", YptXml.XmlEscape(ParticleRuleName?.Value ?? "")); YptXml.StringTag(sb, indent, "ParticleRule", YptXml.XmlEscape(ParticleRuleName?.Value ?? ""));
YptXml.ValueTag(sb, indent, "Unknown10", FloatUtil.ToString(Unknown_10h)); YptXml.ValueTag(sb, indent, "Unknown10", FloatUtil.ToString(Unknown_10h));
YptXml.ValueTag(sb, indent, "Unknown14", FloatUtil.ToString(Unknown_14h)); YptXml.ValueTag(sb, indent, "Unknown14", FloatUtil.ToString(Unknown_14h));
YptXml.ValueTag(sb, indent, "Unknown50", FloatUtil.ToString(Unknown_50h)); YptXml.ValueTag(sb, indent, "MoveSpeedScale", FloatUtil.ToString(MoveSpeedScale));
YptXml.ValueTag(sb, indent, "Unknown54", FloatUtil.ToString(Unknown_54h)); YptXml.ValueTag(sb, indent, "MoveSpeedScaleModifier", FloatUtil.ToString(MoveSpeedScaleModifier));
YptXml.ValueTag(sb, indent, "Unknown58", FloatUtil.ToString(Unknown_58h)); YptXml.ValueTag(sb, indent, "ParticleScale", FloatUtil.ToString(ParticleScale));
YptXml.ValueTag(sb, indent, "Unknown5C", FloatUtil.ToString(Unknown_5Ch)); YptXml.ValueTag(sb, indent, "ParticleScaleModifier", FloatUtil.ToString(ParticleScaleModifier));
YptXml.ValueTag(sb, indent, "Colour1", YptXml.UintString(Colour1)); YptXml.ValueTag(sb, indent, "Colour1", YptXml.UintString(Colour1));
YptXml.ValueTag(sb, indent, "Colour2", YptXml.UintString(Colour2)); YptXml.ValueTag(sb, indent, "Colour2", YptXml.UintString(Colour2));
if (UnknownData != null) if (UnknownData != null)
@ -2962,10 +2962,10 @@ namespace CodeWalker.GameFiles
ParticleRuleName = (string_r)Xml.GetChildInnerText(node, "ParticleRule"); if (ParticleRuleName.Value == null) ParticleRuleName = null; ParticleRuleName = (string_r)Xml.GetChildInnerText(node, "ParticleRule"); if (ParticleRuleName.Value == null) ParticleRuleName = null;
Unknown_10h = Xml.GetChildFloatAttribute(node, "Unknown10"); Unknown_10h = Xml.GetChildFloatAttribute(node, "Unknown10");
Unknown_14h = Xml.GetChildFloatAttribute(node, "Unknown14"); Unknown_14h = Xml.GetChildFloatAttribute(node, "Unknown14");
Unknown_50h = Xml.GetChildFloatAttribute(node, "Unknown50"); MoveSpeedScale = Xml.GetChildFloatAttribute(node, "MoveSpeedScale");
Unknown_54h = Xml.GetChildFloatAttribute(node, "Unknown54"); MoveSpeedScaleModifier = Xml.GetChildFloatAttribute(node, "MoveSpeedScaleModifier");
Unknown_58h = Xml.GetChildFloatAttribute(node, "Unknown58"); ParticleScale = Xml.GetChildFloatAttribute(node, "ParticleScale");
Unknown_5Ch = Xml.GetChildFloatAttribute(node, "Unknown5C"); ParticleScaleModifier = Xml.GetChildFloatAttribute(node, "ParticleScaleModifier");
Colour1 = Xml.GetChildUIntAttribute(node, "Colour1"); Colour1 = Xml.GetChildUIntAttribute(node, "Colour1");
Colour2 = Xml.GetChildUIntAttribute(node, "Colour2"); Colour2 = Xml.GetChildUIntAttribute(node, "Colour2");
var udnode = node.SelectSingleNode("UnknownData"); var udnode = node.SelectSingleNode("UnknownData");