diff --git a/CodeWalker.Core/GameFiles/Resources/Particle.cs b/CodeWalker.Core/GameFiles/Resources/Particle.cs index fa55a40..f73bbb5 100644 --- a/CodeWalker.Core/GameFiles/Resources/Particle.cs +++ b/CodeWalker.Core/GameFiles/Resources/Particle.cs @@ -93,14 +93,14 @@ namespace CodeWalker.GameFiles - if (Unknown_18h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_40h != 0) - { } - if (Unknown_58h != 0) - { } + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_40h != 0) + //{ }//no hit + //if (Unknown_58h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -192,14 +192,14 @@ namespace CodeWalker.GameFiles this.ParticleRuleNameHashes = reader.ReadBlock>(); this.ParticleRules = reader.ReadBlock>(); - if (Unknown_4h != 1) - { } - if (Unknown_8h != 0) - { } - if (Unknown_10h != 0) - { } - if (Unknown_18h != 1) - { } + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_8h != 0) + //{ }//no hit + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 1) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -250,14 +250,14 @@ namespace CodeWalker.GameFiles this.EffectRuleNameHashes = reader.ReadBlock>(); this.EffectRules = reader.ReadBlock>(); - if (Unknown_4h != 1) - { } - if (Unknown_8h != 0) - { } - if (Unknown_10h != 0) - { } - if (Unknown_18h != 1) - { } + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_8h != 0) + //{ }//no hit + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 1) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -328,18 +328,18 @@ namespace CodeWalker.GameFiles this.Hashes = reader.ReadBlockAt>(this.HashesPointer, this.HashesCount1); this.EmitterRules = reader.ReadBlockAt>(this.EffectRulesPointer, this.EffectRulesCount1); - if (Unknown_4h != 1) - { } - if (Unknown_8h != 0) - { } - if (Unknown_10h != 0) - { } - if (Unknown_18h != 1) - { } - if (Unknown_2Ch != 0) - { } - if (Unknown_3Ch != 0) - { } + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_8h != 0) + //{ }//no hit + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 1) + //{ }//no hit + //if (Unknown_2Ch != 0) + //{ }//no hit + //if (Unknown_3Ch != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -385,22 +385,22 @@ namespace CodeWalker.GameFiles public override long BlockLength => 0x240; // structure data - public MetaHash VFT { get; set; } + public uint VFT { get; set; } public uint Unknown_4h = 1; // 0x00000001 public ulong Unknown_8h; // 0x0000000000000000 - public MetaHash Unknown_10h { get; set; } + public uint Unknown_10h { get; set; } // 2, 3, 4, 5, 6, 7, 10, 21 public uint Unknown_14h; //0x00000000 public ulong Unknown_18h; // 0x0000000000000000 public ParticleEffectSpawner Spawner1 { get; set; } public ParticleEffectSpawner Spawner2 { get; set; } - public MetaHash Unknown_100h { get; set; } - public MetaHash Unknown_104h { get; set; } - public MetaHash Unknown_108h { get; set; } - public MetaHash Unknown_10Ch { get; set; } + public uint Unknown_100h { get; set; } // 0, 1, 2 + public uint Unknown_104h { get; set; } // 0, 1, 7 + public uint Unknown_108h { get; set; } // 0, 1, 2 + public uint Unknown_10Ch { get; set; } public uint Unknown_110h; // 0x00000000 - public MetaHash Unknown_114h { get; set; } - public MetaHash Unknown_118h { get; set; } - public MetaHash Unknown_11Ch { get; set; } + public float Unknown_114h { get; set; } = 1.0f; + public uint Unknown_118h { get; set; } //index/id + public uint Unknown_11Ch { get; set; } //index/id public ulong NamePointer { get; set; } public ResourcePointerList64 BehaviourList1 { get; set; } public ResourcePointerList64 BehaviourList2 { get; set; } @@ -413,25 +413,25 @@ namespace CodeWalker.GameFiles public ulong Unknown_198h; // 0x0000000000000000 public ulong Unknown_1A0h; // 0x0000000000000000 public ulong Unknown_1A8h; // 0x0000000000000000 - public MetaHash VFTx3 { get; set; } + public uint VFT2 { get; set; } = 0x40605c50; // 0x40605c50, 0x40607c70 public uint Unknown_1B4h = 1; // 0x00000001 public ulong String1Pointer { get; set; } public ulong String2Pointer { get; set; } public ulong Unknown_1C8h; // 0x0000000000000000 - public MetaHash Unknown_1D0h { get; set; } + public uint Unknown_1D0h { get; set; } //index/id public uint Unknown_1D4h; // 0x00000000 - public MetaHash VFTx4 { get; set; } + public uint VFT3 { get; set; } = 0x40605b48; // 0x40605b48, 0x40607b68 public uint Unknown_1DCh = 1; // 0x00000001 - public MetaHash Unknown_1E0h { get; set; } - public MetaHash Unknown_1E4h { get; set; } - public MetaHash Unknown_1E8h { get; set; } - public MetaHash Unknown_1ECh { get; set; } + public uint Unknown_1E0h { get; set; } // 0, 4 + public uint Unknown_1E4h { get; set; } // 0, 1 + public uint Unknown_1E8h { get; set; } + public uint Unknown_1ECh { get; set; } // 0, 1 public ResourcePointerList64 ShaderVars { get; set; } public ulong Unknown_200h = 1; // 0x0000000000000001 - public MetaHash Unknown_208h { get; set; } + public MetaHash FxcFile { get; set; } // ptfx_sprite, ptfx_trail public uint Unknown_20Ch; // 0x00000000 public ResourceSimpleList64 UnknownList2 { get; set; } - public MetaHash Unknown_220h { get; set; } + public uint Unknown_220h { get; set; } public uint Unknown_224h; // 0x00000000 public ulong Unknown_228h; // 0x0000000000000000 public ulong Unknown_230h; // 0x0000000000000000 @@ -460,7 +460,7 @@ namespace CodeWalker.GameFiles this.Unknown_108h = reader.ReadUInt32(); this.Unknown_10Ch = reader.ReadUInt32(); this.Unknown_110h = reader.ReadUInt32(); - this.Unknown_114h = reader.ReadUInt32(); + this.Unknown_114h = reader.ReadSingle(); this.Unknown_118h = reader.ReadUInt32(); this.Unknown_11Ch = reader.ReadUInt32(); this.NamePointer = reader.ReadUInt64(); @@ -475,14 +475,14 @@ namespace CodeWalker.GameFiles this.Unknown_198h = reader.ReadUInt64(); this.Unknown_1A0h = reader.ReadUInt64(); this.Unknown_1A8h = reader.ReadUInt64(); - this.VFTx3 = reader.ReadUInt32(); + this.VFT2 = reader.ReadUInt32(); this.Unknown_1B4h = reader.ReadUInt32(); this.String1Pointer = reader.ReadUInt64(); this.String2Pointer = reader.ReadUInt64(); this.Unknown_1C8h = reader.ReadUInt64(); this.Unknown_1D0h = reader.ReadUInt32(); this.Unknown_1D4h = reader.ReadUInt32(); - this.VFTx4 = reader.ReadUInt32(); + this.VFT3 = reader.ReadUInt32(); this.Unknown_1DCh = reader.ReadUInt32(); this.Unknown_1E0h = reader.ReadUInt32(); this.Unknown_1E4h = reader.ReadUInt32(); @@ -490,7 +490,7 @@ namespace CodeWalker.GameFiles this.Unknown_1ECh = reader.ReadUInt32(); this.ShaderVars = reader.ReadBlock>(); this.Unknown_200h = reader.ReadUInt64(); - this.Unknown_208h = reader.ReadUInt32(); + this.FxcFile = reader.ReadUInt32(); this.Unknown_20Ch = reader.ReadUInt32(); this.UnknownList2 = reader.ReadBlock>(); this.Unknown_220h = reader.ReadUInt32(); @@ -507,129 +507,279 @@ namespace CodeWalker.GameFiles #endregion - if (Unknown_4h != 1) - { } - if (Unknown_8h != 0) - { } - switch (Unknown_10h) - { - default: - break; - } - if (Unknown_14h != 0) - { } - if (Unknown_18h != 0) - { } - switch (Unknown_100h) - { - default: - break; - } - switch (Unknown_104h) - { - default: - break; - } - switch (Unknown_108h) - { - default: - break; - } - switch (Unknown_10Ch) - { - default: - break; - } - if (Unknown_110h != 0) - { } - switch (Unknown_114h) - { - default: - break; - } - switch (Unknown_118h) - { - default: - break; - } - switch (Unknown_11Ch) - { - default: - break; - } - if (Unknown_178h != 0) - { } - if (Unknown_180h != 0) - { } - if (Unknown_198h != 0) - { } - if (Unknown_1A0h != 0) - { } - if (Unknown_1A8h != 0) - { } - switch (VFTx3) - { - default: - break; - } - if (Unknown_1B4h != 1) - { } - if (Unknown_1C8h != 0) - { } - switch (Unknown_1D0h) - { - default: - break; - } - if (Unknown_1D4h != 0) - { } - switch (VFTx4) - { - default: - break; - } - if (Unknown_1DCh != 1) - { } - switch (Unknown_1E0h) - { - default: - break; - } - switch (Unknown_1E4h) - { - default: - break; - } - switch (Unknown_1E8h) - { - default: - break; - } - switch (Unknown_1ECh) - { - default: - break; - } - if (Unknown_200h != 1) - { } - if (Unknown_208h != 0) - { } - if (Unknown_20Ch != 0) - { } - switch (Unknown_220h) - { - default: - break; - } - if (Unknown_224h != 0) - { } - if (Unknown_228h != 0) - { } - if (Unknown_230h != 0) - { } - if (Unknown_238h != 0) + if ((UnknownList2?.data_items?.Length ?? 0) != 0) { } + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_8h != 0) + //{ }//no hit + //switch (Unknown_10h) + //{ + // case 4: + // case 2: + // case 3: + // case 6: + // case 7: + // case 5: + // case 10: + // case 21: + // break; + // default: + // break;//no hit + //} + //if (Unknown_14h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //switch (Unknown_100h) + //{ + // case 2: + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_104h) + //{ + // case 0: + // case 1: + // case 7: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_108h) + //{ + // case 2: + // case 1: + // case 0: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_10Ch) + //{ + // case 0x00010100: + // case 0x00010000: + // case 0x00010101: + // break; + // default: + // break;//no hit + //} + //if (Unknown_110h != 0) + //{ }//no hit + //if (Unknown_114h != 1.0f) + //{ }//no hit + //switch (Unknown_118h) + //{ + // case 0: + // case 8: + // case 13: + // case 15: + // case 16: + // case 1: + // case 20: + // case 9: + // case 5: + // case 11: + // case 22: + // case 2: + // case 12: + // case 10: + // case 6: + // case 14: + // case 23: + // case 3: + // case 19: + // case 18: + // case 4: + // case 7: + // case 25: + // case 26: + // case 21: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_11Ch) + //{ + // case 2: + // case 3: + // case 14: + // case 23: + // case 48: + // case 22: + // case 1: + // case 12: + // case 11: + // case 0: + // case 25: + // case 7: + // case 8: + // case 21: + // case 15: + // case 28: + // case 18: + // case 20: + // case 33: + // case 5: + // case 26: + // case 24: + // case 9: + // case 35: + // case 10: + // case 38: + // case 27: + // case 13: + // case 16: + // case 17: + // case 36: + // case 4: + // case 19: + // case 31: + // case 47: + // case 32: + // case 34: + // case 6: + // case 30: + // break; + // default: + // break;//no hit + //} + //if (Unknown_178h != 0) + //{ }//no hit + //if (Unknown_180h != 0) + //{ }//no hit + //if (Unknown_198h != 0) + //{ }//no hit + //if (Unknown_1A0h != 0) + //{ }//no hit + //if (Unknown_1A8h != 0) + //{ }//no hit + //switch (VFTx3) + //{ + // case 0x40605c50: + // case 0x40607c70: + // break; + // default: + // break;//no hit + //} + //if (Unknown_1B4h != 1) + //{ }//no hit + //if (Unknown_1C8h != 0) + //{ }//no hit + //switch (Unknown_1D0h) + //{ + // case 5: + // case 2: + // case 8: + // case 6: + // case 13: + // case 16: + // case 20: + // case 3: + // case 12: + // case 1: + // case 14: + // case 27: + // case 21: + // case 9: + // case 4: + // case 19: + // break; + // default: + // break;//no hit + //} + //if (Unknown_1D4h != 0) + //{ }//no hit + //switch (VFTx4) + //{ + // case 0x40605b48: + // case 0x40607b68: + // break; + // default: + // break;//no hit + //} + //if (Unknown_1DCh != 1) + //{ }//no hit + //switch (Unknown_1E0h) + //{ + // case 0: + // case 4: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_1E4h) + //{ + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_1E8h) + //{ + // case 0x00000101: + // case 1: + // case 0x00010001: + // case 0x01000000: + // case 0x00000100: + // case 0x01000100: + // case 0: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_1ECh) + //{ + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} + //if (Unknown_200h != 1) + //{ }//no hit + //switch (FxcFile) // .fxc shader file name + //{ + // case 0x0eb0d762: // ptfx_sprite + // case 0xe7b0585f: // ptfx_trail + // break; + // default: + // break;//no hit + //} + //if (FxcFile != JenkHash.GenHash(String1?.ToString() ?? "")) + //{ }//no hit + //if (Unknown_20Ch != 0) + //{ }//no hit + //switch (Unknown_220h) + //{ + // case 1: + // case 2: + // case 0: + // case 0x00000202: + // case 0x00000102: + // case 0x00000101: + // case 3: + // case 4: + // case 0x00000100: + // case 0x00000103: + // break; + // default: + // break;//no hit + //} + //if (Unknown_224h != 0) + //{ }//no hit + //if (Unknown_228h != 0) + //{ }//no hit + //if (Unknown_230h != 0) + //{ }//no hit + //if (Unknown_238h != 0) + //{ }//no hit + } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -667,14 +817,14 @@ namespace CodeWalker.GameFiles writer.Write(this.Unknown_198h); writer.Write(this.Unknown_1A0h); writer.Write(this.Unknown_1A8h); - writer.Write(this.VFTx3); + writer.Write(this.VFT2); writer.Write(this.Unknown_1B4h); writer.Write(this.String1Pointer); writer.Write(this.String2Pointer); writer.Write(this.Unknown_1C8h); writer.Write(this.Unknown_1D0h); writer.Write(this.Unknown_1D4h); - writer.Write(this.VFTx4); + writer.Write(this.VFT3); writer.Write(this.Unknown_1DCh); writer.Write(this.Unknown_1E0h); writer.Write(this.Unknown_1E4h); @@ -682,7 +832,7 @@ namespace CodeWalker.GameFiles writer.Write(this.Unknown_1ECh); writer.WriteBlock(this.ShaderVars); writer.Write(this.Unknown_200h); - writer.Write(this.Unknown_208h); + writer.Write(this.FxcFile); writer.Write(this.Unknown_20Ch); writer.WriteBlock(this.UnknownList2); writer.Write(this.Unknown_220h); @@ -723,13 +873,11 @@ namespace CodeWalker.GameFiles { public override long BlockLength => 0x58; + + + // structure data - public MetaHash Unknown_0h { get; set; } // 0x73616942 //text? - public MetaHash Unknown_4h { get; set; } // 0x6E694C20 - public MetaHash Unknown_8h { get; set; } // 0x6553206B - public MetaHash Unknown_Ch { get; set; } // 0x30305F74 - public ulong Unknown_10h; // 0x0000000000000000 - public ulong Unknown_18h; // 0x0000000000000000 + public PsoChar32 Name { get; set; } public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 public ulong Unknown_30h; // 0x0000000000000000 @@ -741,12 +889,7 @@ namespace CodeWalker.GameFiles public override void Read(ResourceDataReader reader, params object[] parameters) { // read structure data - this.Unknown_0h = reader.ReadUInt32(); - this.Unknown_4h = reader.ReadUInt32(); - this.Unknown_8h = reader.ReadUInt32(); - this.Unknown_Ch = reader.ReadUInt32(); - this.Unknown_10h = reader.ReadUInt64(); - this.Unknown_18h = reader.ReadUInt64(); + this.Name = reader.ReadStruct(); this.Unknown_20h = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64(); this.Unknown_30h = reader.ReadUInt64(); @@ -755,56 +898,50 @@ namespace CodeWalker.GameFiles this.Unknown_50h = reader.ReadUInt32(); this.Unknown_54h = reader.ReadUInt32(); - switch (Unknown_0h) + //if (Name.ToString() != "Bias Link Set_00") + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_30h != 0) + //{ }//no hit + //if (Unknown_38h != 0) + //{ }//no hit + switch (Unknown_50h) // ..index? { - default: + case 0x000000f6: + case 0x000000f7: + case 0x000000d5: + case 0x000000f0: + case 0x000000f1: + case 0x000000f2: + case 0x000000f3: + case 0x000000f4: + case 0x000000ed: + case 0x000000a6: + case 0x000000a7: + case 0x000000e7: + case 0x00000081: + case 0x00000082: + case 0x00000083: + case 0x000000e5: + case 0x000000e6: + case 0x000000e8: + case 0x000000e9: + case 0x000000ea: break; - } - switch (Unknown_4h) - { default: - break; + break;//more } - switch (Unknown_8h) - { - default: - break; - } - switch (Unknown_Ch) - { - default: - break; - } - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_30h != 0) - { } - if (Unknown_38h != 0) - { } - switch (Unknown_50h) - { - default: - break; - } - if (Unknown_54h != 0) - { } + //if (Unknown_54h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { // write structure data - writer.Write(this.Unknown_0h); - writer.Write(this.Unknown_4h); - writer.Write(this.Unknown_8h); - writer.Write(this.Unknown_Ch); - writer.Write(this.Unknown_10h); - writer.Write(this.Unknown_18h); + writer.WriteStruct(this.Name); writer.Write(this.Unknown_20h); writer.Write(this.Unknown_28h); writer.Write(this.Unknown_30h); @@ -828,10 +965,10 @@ namespace CodeWalker.GameFiles public override long BlockLength => 0x30; // structure data - public MetaHash Unknown_0h { get; set; } - public MetaHash Unknown_4h { get; set; } - public MetaHash Unknown_8h { get; set; } - public MetaHash Unknown_Ch { get; set; } + public float Unknown_0h { get; set; } + public float Unknown_4h { get; set; } + public float Unknown_8h { get; set; } + public float Unknown_Ch { get; set; } public ulong String1Pointer { get; set; } public ulong DrawablePointer { get; set; } public MetaHash Unknown_20h { get; set; } @@ -845,10 +982,10 @@ namespace CodeWalker.GameFiles public override void Read(ResourceDataReader reader, params object[] parameters) { // read structure data - this.Unknown_0h = reader.ReadUInt32(); - this.Unknown_4h = reader.ReadUInt32(); - this.Unknown_8h = reader.ReadUInt32(); - this.Unknown_Ch = reader.ReadUInt32(); + this.Unknown_0h = reader.ReadSingle(); + this.Unknown_4h = reader.ReadSingle(); + this.Unknown_8h = reader.ReadSingle(); + this.Unknown_Ch = reader.ReadSingle(); this.String1Pointer = reader.ReadUInt64(); this.DrawablePointer = reader.ReadUInt64(); this.Unknown_20h = reader.ReadUInt32(); @@ -862,33 +999,86 @@ namespace CodeWalker.GameFiles switch (Unknown_0h) { - default: + case 0.355044f: + case 1.0f: + case 0.308508f: break; + default: + break;//more } switch (Unknown_4h) { - default: + case 0.894308f: + case 1.0f: + case 0.127314f: break; + default: + break;//more } switch (Unknown_8h) { - default: + case 0.894308f: + case 1.0f: + case 0.127314f: break; + default: + break;//more } switch (Unknown_Ch) { - default: + case 0.4f: + case 0.5f: + case 0.178602f: break; + default: + break;//more } - switch (Unknown_20h) + switch (Unknown_20h) // hash { - default: + case 0x87a5ed82: // + case 0xdb0ab622: // + case 0x85d8e70c: // + case 0xfe3b1a3e: // + case 0x4a77efcd: // + case 0xcdbc28bc: // + case 0xe3fa614b: // + case 0xcc0119e3: // + case 0x978e7951: // + case 0xe9413645: // + case 0xd619b1d0: // + case 0x53ba65f6: // + case 0x0cb74ad6: // + case 0x9c16576d: // + case 0xc1bc3b5a: // + case 0xe9bcdb08: // + case 0x12b9b850: // + case 0x3c331001: // + case 0x38ab2e35: // + case 0xdbac05f2: // + case 0x6f0b6a5c: // + case 0x264b52a9: // + case 0xec45fc49: // + case 0xf5f584ba: // + case 0x995cb2ef: // + case 0x52330054: // + case 0x444d4290: // + case 0xce5992f4: // + case 0x74cfdbd3: // + case 0x9381ce76: // + case 0x95644bd1: // + case 0x7e6fd926: // + case 0xdb801b83: // + case 0xf0402c1d: // + case 0x21e42911: // + case 0xb1178b81: // break; + default: + break;//no hit } - if (Unknown_24h != 0) - { } - if (Unknown_28h != 0) - { } + //if (Unknown_24h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -925,28 +1115,28 @@ namespace CodeWalker.GameFiles public override long BlockLength => 0x70; // structure data - public MetaHash VFT { get; set; } + public uint VFT { get; set; } public uint Unknown_4h = 1; // 0x00000001 public ulong Unknown_8h; // 0x0000000000000000 public ulong Unknown_10h; // 0x0000000000000000 - public MetaHash Unknown_18h { get; set; } - public MetaHash Unknown_1Ch { get; set; } - public MetaHash Unknown_20h { get; set; } - public MetaHash Unknown_24h { get; set; } - public MetaHash Unknown_28h { get; set; } + public float Unknown_18h { get; set; } // 0, 0.1f, 1.0f + public float Unknown_1Ch { get; set; } // 0, 0.8f, 1.0f, 1.1f, ... + public uint Unknown_20h { get; set; } // eg. 0xff736626 - colour? + public float Unknown_24h { get; set; } // 1.0f, 7.0f, 100.0f, ... + public uint Unknown_28h { get; set; } // 0, 4, 8, 9, 10, 11, 12, 14 //index/id public uint Unknown_2Ch; // 0x00000000 public ulong Unknown_30h; // 0x0000000000000000 - public MetaHash Unknown_38h { get; set; } - public MetaHash Unknown_3Ch { get; set; } - public MetaHash Unknown_40h { get; set; } - public MetaHash Unknown_44h { get; set; } - public MetaHash Unknown_48h { get; set; } + public float Unknown_38h { get; set; } // 0, 0.1f, 0.3f, 1.0f + public float Unknown_3Ch { get; set; } // 0, 1.0f, 1.1f, 1.2f, 1.4f, 1.5f + public uint Unknown_40h { get; set; } // eg. 0xffffffff, 0xffffeca8 - colour? + public float Unknown_44h { get; set; } // 0, 0.4f, 1.0f, 100.0f, .... + public uint Unknown_48h { get; set; } // 0, 4, 8, 9, 10, 11, 12, 14 //index/id public uint Unknown_4Ch; // 0x00000000 public ulong Unknown_50h; // 0x0000000000000000 public ulong EmitterRulePointer { get; set; } public ulong String1Pointer { get; set; } - public uint Unknown_68h { get; set; } - public uint Unknown_6Ch { get; set; } + public float Unknown_68h { get; set; } // 0, 0.5f, 1.0f + public uint Unknown_6Ch { get; set; } // eg. 0x01010100 // reference data public ParticleEffectRule EmitterRule { get; set; } @@ -959,103 +1149,194 @@ namespace CodeWalker.GameFiles this.Unknown_4h = reader.ReadUInt32(); this.Unknown_8h = reader.ReadUInt64(); this.Unknown_10h = reader.ReadUInt64(); - this.Unknown_18h = reader.ReadUInt32(); - this.Unknown_1Ch = reader.ReadUInt32(); + this.Unknown_18h = reader.ReadSingle(); + this.Unknown_1Ch = reader.ReadSingle(); this.Unknown_20h = reader.ReadUInt32(); - this.Unknown_24h = reader.ReadUInt32(); + this.Unknown_24h = reader.ReadSingle(); this.Unknown_28h = reader.ReadUInt32(); this.Unknown_2Ch = reader.ReadUInt32(); this.Unknown_30h = reader.ReadUInt64(); - this.Unknown_38h = reader.ReadUInt32(); - this.Unknown_3Ch = reader.ReadUInt32(); + this.Unknown_38h = reader.ReadSingle(); + this.Unknown_3Ch = reader.ReadSingle(); this.Unknown_40h = reader.ReadUInt32(); - this.Unknown_44h = reader.ReadUInt32(); + this.Unknown_44h = reader.ReadSingle(); this.Unknown_48h = reader.ReadUInt32(); this.Unknown_4Ch = reader.ReadUInt32(); this.Unknown_50h = reader.ReadUInt64(); this.EmitterRulePointer = reader.ReadUInt64(); this.String1Pointer = reader.ReadUInt64(); - this.Unknown_68h = reader.ReadUInt32(); + this.Unknown_68h = reader.ReadSingle(); this.Unknown_6Ch = reader.ReadUInt32(); // read reference data this.EmitterRule = reader.ReadBlockAt(this.EmitterRulePointer); this.String1 = reader.ReadBlockAt(this.String1Pointer); - if (Unknown_40h != 1) - { } - if (Unknown_8h != 0) - { } - if (Unknown_10h != 0) - { } - switch (Unknown_18h) - { - default: - break; - } + //if (Unknown_4h != 1) + //{ } + //if (Unknown_8h != 0) + //{ }//no hit + //if (Unknown_10h != 0) + //{ }//no hit + //switch (Unknown_18h) + //{ + // case 0: + // case 1.0f: + // case 0.1f: + // break; + // default: + // break;//no hit + //} switch (Unknown_1Ch) { - default: + case 0: + case 1.0f: + case 1.1f: + case 0.8f: + case 0.9f: + case 1.5f: break; - } - switch (Unknown_20h) - { default: - break; + break;//more } + //switch (Unknown_20h) + //{ + // case 0: + // case 0xffffffff: + // case 0x00ffffff: + // case 0xff736626: + // case 0xff404040: + // case 0xfffaf7c8: + // case 0xfffc42f9: + // case 0xff4f3535: + // case 0xff321a1a: + // case 0xffffd591: + // break; + // default: + // break;//no hit + //} switch (Unknown_24h) { - default: + case 0: + case 100.0f: + case 0.6f: + case 1.0f: + case 0.3f: + case 1.2f: + case 7.0f: break; - } - switch (Unknown_28h) - { default: - break; - } - if (Unknown_2Ch != 0) - { } - if (Unknown_30h != 0) - { } - switch (Unknown_38h) - { - default: - break; - } - switch (Unknown_3Ch) - { - default: - break; - } - switch (Unknown_40h) - { - default: - break; + break;//more } + //switch (Unknown_28h) + //{ + // case 0: + // case 8: + // case 11: + // case 9: + // case 12: + // case 10: + // case 14: + // case 4: + // break; + // default: + // break;//no hit + //} + //if (Unknown_2Ch != 0) + //{ }//no hit + //if (Unknown_30h != 0) + //{ }//no hit + //switch (Unknown_38h) + //{ + // case 0: + // case 1.0f: + // case 0.1f: + // case 0.3f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_3Ch) + //{ + // case 0: + // case 1.0f: + // case 1.1f: + // case 1.2f: + // case 1.4f: + // case 1.5f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_40h) + //{ + // case 0: + // case 0xffffffff: + // case 0xffffeca8: + // case 0xff8c7d2e: + // case 0xffd1d1d1: + // case 0xfff0dfb6: + // case 0xffcc16b4: + // case 0xff4c3434: + // case 0xff24341a: + // case 0xfffff1bd: + // break; + // default: + // break;//no hit + //} switch (Unknown_44h) { - default: + case 0: + case 100.0f: + case 0.8f: + case 1.0f: + case 0.4f: + case 1.8f: break; - } - switch (Unknown_48h) - { default: - break; - } - if (Unknown_4Ch != 0) - { } - if (Unknown_50h != 0) - { } - switch (Unknown_68h) - { - default: - break; - } - switch (Unknown_6Ch) - { - default: - break; + break;//more } + //switch (Unknown_48h) + //{ + // case 0: + // case 8: + // case 11: + // case 9: + // case 12: + // case 10: + // case 14: + // case 4: + // break; + // default: + // break;//no hit + //} + //if (Unknown_4Ch != 0) + //{ }//no hit + //if (Unknown_50h != 0) + //{ }//no hit + //switch (Unknown_68h) + //{ + // case 0: + // case 1.0f: + // case 0.5f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_6Ch) + //{ + // case 0: + // case 1: + // case 0x00010000: + // case 0x00000100: + // case 0x00010101: + // case 0x01010100: + // case 0x00010100: + // case 0x01010101: + // break; + // default: + // break;//no hit + //} } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -1112,43 +1393,43 @@ namespace CodeWalker.GameFiles public uint Unknown_4h = 1; // 0x00000001 public ulong Unknown_8h; // 0x0000000000000000 public ulong Unknown_10h = 1; // 0x0000000000000001 - public MetaHash Unknown_18h { get; set; } = 0x40866666; // 0x40866666 //4.2f + public float Unknown_18h { get; set; } = 4.2f; public uint Unknown_1Ch; // 0x00000000 public ulong NamePointer { get; set; } - public ulong Unknown_28h { get; set; } // 0x50000000 -> ".?AVptxFxList@rage@@" pointer to itself - public MetaHash Unknown_30h { get; set; } + public ulong Unknown_28h { get; set; } = 0x0000000050000000; // 0x50000000 -> ".?AVptxFxList@rage@@" pointer to itself + public uint VFT2 { get; set; } = 0x4060e3e8; // 0x4060e3e8, 0x40610408 public uint Unknown_34h = 1; // 0x00000001 public ulong EventEmittersPointer { get; set; } public ushort EventEmittersCount1 { get; set; } public ushort EventEmittersCount2 { get; set; } - public MetaHash Unknown_44h { get; set; } + public uint Unknown_44h; // 0x00000000 public ulong UnknownData1Pointer { get; set; } - public MetaHash Unknown_50h { get; set; } - public MetaHash Unknown_54h { get; set; } + public uint Unknown_50h { get; set; } // 0, 0xffffffff + public uint Unknown_54h { get; set; } // eg. 0x01010200 public ulong Unknown_58h; // 0x0000000000000000 public ulong Unknown_60h; // 0x0000000000000000 public uint Unknown_68h; // 0x00000000 - public MetaHash Unknown_6Ch { get; set; } - public MetaHash Unknown_70h { get; set; } - public MetaHash Unknown_74h { get; set; } - public MetaHash Unknown_78h { get; set; } - public MetaHash Unknown_7Ch { get; set; } - public MetaHash Unknown_80h { get; set; } - public MetaHash Unknown_84h { get; set; } - public MetaHash Unknown_88h { get; set; } - public MetaHash Unknown_8Ch { get; set; } - public MetaHash Unknown_90h { get; set; } - public MetaHash Unknown_94h { get; set; } - public MetaHash Unknown_98h { get; set; } - public MetaHash Unknown_9Ch { get; set; } - public MetaHash Unknown_A0h { get; set; } - public MetaHash Unknown_A4h { get; set; } - public MetaHash Unknown_A8h { get; set; } - public MetaHash Unknown_ACh { get; set; } - public MetaHash Unknown_B0h { get; set; } - public MetaHash Unknown_B4h { get; set; } - public MetaHash Unknown_B8h { get; set; } - public MetaHash Unknown_BCh { get; set; } + public uint Unknown_6Ch { get; set; } = 0x7f800001; // 0x7f800001 + public float Unknown_70h { get; set; } + public float Unknown_74h { get; set; } // 0, 0.1f, 0.25f, 1.0f + public float Unknown_78h { get; set; } + public float Unknown_7Ch { get; set; } + public float Unknown_80h { get; set; } + public float Unknown_84h { get; set; } + public uint Unknown_88h { get; set; } // eg. 0x01010105 + public uint Unknown_8Ch { get; set; } // eg. 0x01010002 + public float Unknown_90h { get; set; } + public float Unknown_94h { get; set; } + public float Unknown_98h { get; set; } + public uint Unknown_9Ch { get; set; } // 0x7f800001 + public float Unknown_A0h { get; set; } + public float Unknown_A4h { get; set; } + public float Unknown_A8h { get; set; } + public float Unknown_ACh { get; set; } + public float Unknown_B0h { get; set; } + public float Unknown_B4h { get; set; } + public float Unknown_B8h { get; set; } + public uint Unknown_BCh { get; set; } // eg. 0x00010103 public ParticleKeyframeProp KeyframeProp0 { get; set; } public ParticleKeyframeProp KeyframeProp1 { get; set; } public ParticleKeyframeProp KeyframeProp2 { get; set; } @@ -1158,9 +1439,9 @@ namespace CodeWalker.GameFiles public ushort KeyframePropsCount1 { get; set; } public ushort KeyframePropsCount2 { get; set; } public uint Unknown_39Ch; // 0x00000000 - public MetaHash Unknown_3A0h { get; set; } + public uint Unknown_3A0h { get; set; } // eg. 0x00090100 public uint Unknown_3A4h; // 0x00000000 - public MetaHash Unknown_3A8h { get; set; } = 0x42C80000; // 0x42C80000 //100.0f + public float Unknown_3A8h { get; set; } = 100.0f; public uint Unknown_3ACh { get; set; } // 0x00000000 public ulong Unknown_3B0h { get; set; } // 0x0000000000000000 public ulong Unknown_3B8h { get; set; } // 0x0000000000000000 @@ -1181,11 +1462,11 @@ namespace CodeWalker.GameFiles this.Unknown_4h = reader.ReadUInt32(); this.Unknown_8h = reader.ReadUInt64(); this.Unknown_10h = reader.ReadUInt64(); - this.Unknown_18h = reader.ReadUInt32(); + this.Unknown_18h = reader.ReadSingle(); this.Unknown_1Ch = reader.ReadUInt32(); this.NamePointer = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64(); - this.Unknown_30h = reader.ReadUInt32(); + this.VFT2 = reader.ReadUInt32(); this.Unknown_34h = reader.ReadUInt32(); this.EventEmittersPointer = reader.ReadUInt64(); this.EventEmittersCount1 = reader.ReadUInt16(); @@ -1198,25 +1479,25 @@ namespace CodeWalker.GameFiles this.Unknown_60h = reader.ReadUInt64(); this.Unknown_68h = reader.ReadUInt32(); this.Unknown_6Ch = reader.ReadUInt32(); - this.Unknown_70h = reader.ReadUInt32(); - this.Unknown_74h = reader.ReadUInt32(); - this.Unknown_78h = reader.ReadUInt32(); - this.Unknown_7Ch = reader.ReadUInt32(); - this.Unknown_80h = reader.ReadUInt32(); - this.Unknown_84h = reader.ReadUInt32(); + this.Unknown_70h = reader.ReadSingle(); + this.Unknown_74h = reader.ReadSingle(); + this.Unknown_78h = reader.ReadSingle(); + this.Unknown_7Ch = reader.ReadSingle(); + this.Unknown_80h = reader.ReadSingle(); + this.Unknown_84h = reader.ReadSingle(); this.Unknown_88h = reader.ReadUInt32(); this.Unknown_8Ch = reader.ReadUInt32(); - this.Unknown_90h = reader.ReadUInt32(); - this.Unknown_94h = reader.ReadUInt32(); - this.Unknown_98h = reader.ReadUInt32(); + this.Unknown_90h = reader.ReadSingle(); + this.Unknown_94h = reader.ReadSingle(); + this.Unknown_98h = reader.ReadSingle(); this.Unknown_9Ch = reader.ReadUInt32(); - this.Unknown_A0h = reader.ReadUInt32(); - this.Unknown_A4h = reader.ReadUInt32(); - this.Unknown_A8h = reader.ReadUInt32(); - this.Unknown_ACh = reader.ReadUInt32(); - this.Unknown_B0h = reader.ReadUInt32(); - this.Unknown_B4h = reader.ReadUInt32(); - this.Unknown_B8h = reader.ReadUInt32(); + this.Unknown_A0h = reader.ReadSingle(); + this.Unknown_A4h = reader.ReadSingle(); + this.Unknown_A8h = reader.ReadSingle(); + this.Unknown_ACh = reader.ReadSingle(); + this.Unknown_B0h = reader.ReadSingle(); + this.Unknown_B4h = reader.ReadSingle(); + this.Unknown_B8h = reader.ReadSingle(); this.Unknown_BCh = reader.ReadUInt32(); this.KeyframeProp0 = reader.ReadBlock(); this.KeyframeProp1 = reader.ReadBlock(); @@ -1229,7 +1510,7 @@ namespace CodeWalker.GameFiles this.Unknown_39Ch = reader.ReadUInt32(); this.Unknown_3A0h = reader.ReadUInt32(); this.Unknown_3A4h = reader.ReadUInt32(); - this.Unknown_3A8h = reader.ReadUInt32(); + this.Unknown_3A8h = reader.ReadSingle(); this.Unknown_3ACh = reader.ReadUInt32(); this.Unknown_3B0h = reader.ReadUInt64(); this.Unknown_3B8h = reader.ReadUInt64(); @@ -1243,168 +1524,296 @@ namespace CodeWalker.GameFiles #endregion - if (Unknown_4h != 1) - { } - if (Unknown_8h != 0) - { } - if (Unknown_10h != 1) - { } - if (Unknown_18h != 0x40866666) - { } - if (Unknown_1Ch != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_30h) - { - default: - break; - } - if (Unknown_34h != 1) - { } - switch (Unknown_44h) - { - default: - break; - } - switch (Unknown_50h) - { - default: - break; - } + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_8h != 0) + //{ }//no hit + //if (Unknown_10h != 1) + //{ }//no hit + //if (Unknown_18h != 4.2f) + //{ }//no hit + //if (Unknown_1Ch != 0) + //{ }//no hit + //switch (Unknown_28h) + //{ + // case 0x0000000050000000: + // break; + // default: + // break;//no hit + //} + //switch (VFT2) //some VFT + //{ + // case 0x4060e3e8: + // case 0x40610408: + // break; + // default: + // break;//no hit + //} + //if (Unknown_34h != 1) + //{ }//no hit + //if (Unknown_44h != 0) + //{ }//no hit + //switch (Unknown_50h) + //{ + // case 0xffffffff: + // case 0: + // break; + // default: + // break;//no hit + //} switch (Unknown_54h) { - default: + case 0x01000000: + case 0x01010001: + case 0x01010200: + case 0x01010000: + case 0x01000200: + case 0x01000001: + case 0x01000201: + case 0x01000100: break; - } - if (Unknown_58h != 0) - { } - if (Unknown_60h != 0) - { } - if (Unknown_68h != 0) - { } - switch (Unknown_6Ch) - { default: - break; + break;//more } + //if (Unknown_58h != 0) + //{ }//no hit + //if (Unknown_60h != 0) + //{ }//no hit + //if ((Unknown_68h != 0) && (Unknown_68h != 0x80000000))//float? + //{ }//no hit + //if (Unknown_6Ch != 0x7f800001) + //{ }//no hit switch (Unknown_70h) { - default: + case 0: + case 1.0f: + case 0.5f: + case 0.2f: + case 0.1f: break; - } - switch (Unknown_74h) - { default: - break; + break;//more } + //switch (Unknown_74h) + //{ + // case 0.25f: + // case 0: + // case 1.0f: + // case 0.1f: + // break; + // default: + // break;//no hit + //} switch (Unknown_78h) { - default: + case 0.2f: + case 0.5f: + case 1.0f: break; + default: + break;//more } switch (Unknown_7Ch) { - default: + case 0.2f: + case 0.5f: + case 1.0f: break; + default: + break;//more } switch (Unknown_80h) { - default: + case 1.0f: + case 2.0f: + case 1.2f: + case 1.5f: break; + default: + break;//more } switch (Unknown_84h) { - default: + case 1.0f: + case 2.0f: break; - } - switch (Unknown_88h) - { default: - break; - } - switch (Unknown_8Ch) - { - default: - break; + break;//more } + //switch (Unknown_88h) + //{ + // case 0x01010100: + // case 0x01010101: + // case 0x00010004: + // case 0x01010002: + // case 0x00000003: + // case 0x01010105: + // case 0x00010105: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_8Ch) + //{ + // case 0x00010004: + // case 0x01010101: + // case 0x01010100: + // case 0x01010002: + // case 0x00000003: + // case 0x00010105: + // case 0x00000005: + // break; + // default: + // break;//no hit + //} switch (Unknown_90h) { - default: + case 0: + case 1.1f: + case 1.5f: + case 1.2f: + case 6.0f: break; + default: + break;//more } switch (Unknown_94h) { - default: + case 0: + case 1.8f: + case 10.0f: + case 0.4f: + case -1.0f: + case -9.0f: break; + default: + break;//more } switch (Unknown_98h) { - default: + case 0: + case 5.0f: + case 1.5f: + case -1.0f: + case 0.5f: + case 0.2f: + case 1.0f: + case 12.0f: break; - } - switch (Unknown_9Ch) - { default: - break; + break;//more } + //if (Unknown_9Ch != 0x7f800001) + //{ }//no hit switch (Unknown_A0h) { - default: + case 0: + case 4.5f: + case 11.0f: + case 5.0f: break; + default: + break;//and more } switch (Unknown_A4h) { - default: + case 38.0f: + case 25.0f: break; + default: + break;//and more } switch (Unknown_A8h) { - default: + case 40.0f: + case 30.0f: break; + default: + break;//and more } switch (Unknown_ACh) { - default: + case 15.0f: + case 4.0f: break; + default: + break;//and more } switch (Unknown_B0h) { - default: + case 40.0f: + case 12.0f: break; + default: + break;//and more } switch (Unknown_B4h) { - default: + case 3.0f: + case 0: + case 0.500002f: + case 1.5f: break; + default: + break;//more } switch (Unknown_B8h) { - default: + case 2.0f: + case 0: + case 1.5f: + case 1.0f: + case 3.0f: + case 5.0f: + case 9.0f: break; + default: + break;//more } switch (Unknown_BCh) { - default: + case 0x00010103: + case 0: + case 0x01000000: + case 0x01010003: + case 0x00000103: + case 0x00000002: + case 0x00000003: + case 0x00010100: + case 0x01000002: + case 0x00010002: + case 0x01010002: break; - } - if (Unknown_39Ch != 0) - { } - switch (Unknown_3A0h) - { default: - break; + break;//more } - if (Unknown_3A4h != 0) - { } - if (Unknown_3A8h != 0x42C80000) - { } - if (Unknown_3ACh != 0) - { } - if (Unknown_3B0h != 0) - { } - if (Unknown_3B8h != 0) - { } + //if (Unknown_39Ch != 0) + //{ }//no hit + //switch (Unknown_3A0h) + //{ + // case 0: + // case 1: + // case 0x00000100: + // case 0x00010100: + // case 0x00020100: + // case 0x00080000: + // case 0x00090100: + // case 0x000b0100: + // case 0x000c0100: + // break; + // default: + // break;//no hit + //} + //if (Unknown_3A4h != 0) + //{ }//no hit + //if (Unknown_3A8h != 100.0f) + //{ }//no hit + //if (Unknown_3ACh != 0) + //{ }//no hit + //if (Unknown_3B0h != 0) + //{ }//no hit + //if (Unknown_3B8h != 0) + //{ }//no hit } @@ -1427,7 +1836,7 @@ namespace CodeWalker.GameFiles writer.Write(this.Unknown_1Ch); writer.Write(this.NamePointer); writer.Write(this.Unknown_28h); - writer.Write(this.Unknown_30h); + writer.Write(this.VFT2); writer.Write(this.Unknown_34h); writer.Write(this.EventEmittersPointer); writer.Write(this.EventEmittersCount1); @@ -1521,8 +1930,8 @@ namespace CodeWalker.GameFiles public ulong Unknown_50h; // 0x0000000000000000 public ulong Unknown_58h; // 0x0000000000000000 public ulong Unknown_60h; // 0x0000000000000000 - public MetaHash Unknown_68h { get; set; } - public MetaHash Unknown_6Ch { get; set; } + public MetaHash Unknown_68h { get; set; } // name hash? + public uint Unknown_6Ch { get; set; } public ResourceSimpleList64 Items { get; set; } public ulong Unknown_80h; // 0x0000000000000000 public ulong Unknown_88h; // 0x0000000000000000 @@ -1552,46 +1961,123 @@ namespace CodeWalker.GameFiles this.Unknown_88h = reader.ReadUInt64(); - if (Unknown_4h != 1) - { } - if (Unknown_8h != 0) - { } - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_30h != 0) - { } - if (Unknown_38h != 0) - { } - if (Unknown_40h != 0) - { } - if (Unknown_48h != 0) - { } - if (Unknown_50h != 0) - { } - if (Unknown_58h != 0) - { } - if (Unknown_60h != 0) - { } - switch (Unknown_68h) + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_8h != 0) + //{ }//no hit + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_30h != 0) + //{ }//no hit + //if (Unknown_38h != 0) + //{ }//no hit + //if (Unknown_40h != 0) + //{ }//no hit + //if (Unknown_48h != 0) + //{ }//no hit + //if (Unknown_50h != 0) + //{ }//no hit + //if (Unknown_58h != 0) + //{ }//no hit + //if (Unknown_60h != 0) + //{ }//no hit + switch (Unknown_68h) // name hash ..? { - default: + case 0x30e327d4: // + case 0x412a554c: // + case 0x1f641348: // + case 0x3dc78098: // + case 0xa67a1155: // + case 0xd5c0fce5: // + case 0xe7af1a2c: // + case 0x7fae9df8: // + case 0x60500691: // + case 0x8306b23a: // + case 0x1c256ba4: // + case 0x351ed852: // + case 0xf0274f77: // + case 0x687b4382: // + case 0x61532d47: // + case 0x686f965f: // + case 0x2946e76f: // + case 0xd0ef73c5: // + case 0x64c7fc25: // + case 0x0aadcbef: // + case 0xfb8eb4e6: // + case 0xa7228870: // + case 0xe5480b3b: // + case 0xd7c1e22b: // + case 0xce8e57a7: // + case 0x34d6ded7: // + case 0xff864d6c: // + case 0x61c50318: // + case 0xe00e5025: // + case 0x9fc4652b: // + case 0x60855078: // + case 0xc9fe6abb: // + case 0x4af0ffa1: // + case 0xa83b53f0: // + case 0xdd18b4f2: // + case 0xe511bc23: // + case 0xd2df1fa0: // + case 0x45e377e9: // + case 0x5e692d43: // + case 0x1104051e: // + case 0x841ab3da: // + case 0x41d49131: // + case 0x64c6c696: // + case 0x13c0cac4: // + case 0xe7d61ff7: // break; + default: + break;//and more... } - switch (Unknown_6Ch) + switch (Unknown_6Ch)//some offset..? { - default: + case 0x00007a00: + case 0x00007b00: + case 0x00007c00: + case 0x00007d00: + case 0x00007e00: + case 0x00007f00: + case 0x00008000: + case 0x00008100: + case 0x00008200: + case 0x00008300: + case 0x0000e400: + case 0x0000e500: + case 0x0000e600: + case 0x0000e700: + case 0x0000e800: + case 0x0000e900: + case 0x0000ea00: + case 0x0000eb00: + case 0x0000ec00: + case 0x0000ed00: + case 0x0000ee00: + case 0x0000ef00: + case 0x0000f000: + case 0x0000f100: + case 0x0000f200: + case 0x0000f300: + case 0x0000f400: + case 0x00000600: + case 0x00000700: + case 0x00000800: break; + default: + break;///and more...... } - if (Unknown_80h != 0) - { } - if (Unknown_88h != 0) - { } + //if (Unknown_80h != 0) + //{ }//no hit + //if (Unknown_88h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -1653,35 +2139,89 @@ namespace CodeWalker.GameFiles switch (Unknown_0h) { - default: + case 0: + case 1.0f: + case 0.6f: + case 0.010234f: + case 0.12f: + case 0.8f: break; + default: + break; //and more.. } switch (Unknown_4h) { - default: + case 0: + case 1.0f: + case 1.66666663f: + case 97.7135f: + case 8.333334f: + case 1.47058821f: + case 5.00000048f: break; + default: + break; //and more... } - if (Unknown_8h != 0) - { } + //if (Unknown_8h != 0) + //{ }//no hit switch (Unknown_10h) { - default: + case 0: + case 1.2f: + case 5.0f: + case 2.4f: + case 7.0f: + case 1.0f: + case 0.6f: + case 0.931395f: + case 0.45f: + case 0.55f: + case 0.5f: break; + default: + break; //and more.. } switch (Unknown_14h) { - default: + case 0: + case 1.2f: + case 5.0f: + case 2.4f: + case 7.0f: + case 1.0f: + case 0.6f: + case 0.73913f: + case 0.3f: + case 0.5f: break; + default: + break; //and more... } switch (Unknown_18h) { - default: + case -0.8f: + case -0.5f: + case 0: + case 1.0f: + case 0.213439f: + case 4.000001f: + case 0.05f: break; + default: + break; //and more... } switch (Unknown_1Ch) { - default: + case 0: + case 1.0f: + case 0.669767f: + case 0.945107f: + case 0.798588f: + case 0.03f: + case 0.6f: break; + default: + break;// and more.. } } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -1696,76 +2236,6 @@ namespace CodeWalker.GameFiles writer.Write(this.Unknown_1Ch); } } - [TC(typeof(EXP))] public class ParticleKeyframePropItem2 : ResourceSystemBlock - { - public override long BlockLength => 0x20; - - // structure data - public MetaHash Unknown_0h { get; set; } - public MetaHash Unknown_4h { get; set; } - public ulong Unknown_8h; // 0x0000000000000000 - public MetaHash Unknown_10h { get; set; } - public MetaHash Unknown_14h { get; set; } - public MetaHash Unknown_18h { get; set; } - public MetaHash Unknown_1Ch { get; set; } - - public override void Read(ResourceDataReader reader, params object[] parameters) - { - // read structure data - this.Unknown_0h = reader.ReadUInt32(); - this.Unknown_4h = reader.ReadUInt32(); - this.Unknown_8h = reader.ReadUInt64(); - this.Unknown_10h = reader.ReadUInt32(); - this.Unknown_14h = reader.ReadUInt32(); - this.Unknown_18h = reader.ReadUInt32(); - this.Unknown_1Ch = reader.ReadUInt32(); - - switch (Unknown_0h) - { - default: - break; - } - switch (Unknown_4h) - { - default: - break; - } - if (Unknown_8h != 0) - { } - switch (Unknown_10h) - { - default: - break; - } - switch (Unknown_14h) - { - default: - break; - } - switch (Unknown_18h) - { - default: - break; - } - switch (Unknown_1Ch) - { - default: - break; - } - } - - public override void Write(ResourceDataWriter writer, params object[] parameters) - { - // write structure data - writer.Write(this.Unknown_0h); - writer.Write(this.Unknown_4h); - writer.Write(this.Unknown_8h); - writer.Write(this.Unknown_10h); - writer.Write(this.Unknown_14h); - writer.Write(this.Unknown_18h); - writer.Write(this.Unknown_1Ch); - } - } [TC(typeof(EXP))] public class ParticleEventEmitter : ResourceSystemBlock @@ -1777,10 +2247,10 @@ namespace CodeWalker.GameFiles // structure data public uint VFT { get; set; } public uint Unknown_4h = 1; // 0x00000001 - public MetaHash Unknown_8h { get; set; } + public uint Unknown_8h { get; set; } // 0, 1, 2, 3, 4, 5, 6 public uint Unknown_Ch; // 0x00000000 - public MetaHash Unknown_10h { get; set; } - public uint Unknown_14h; // 0x00000000 + public float Unknown_10h { get; set; } + public float Unknown_14h { get; set; } public ulong UnknownDataPointer { get; set; } public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 @@ -1788,12 +2258,12 @@ namespace CodeWalker.GameFiles public ulong String2Pointer { get; set; } public ulong EmitterRulePointer { get; set; } public ulong ParticleRulePointer { get; set; } - public MetaHash Unknown_50h { get; set; } - public MetaHash Unknown_54h { get; set; } - public MetaHash Unknown_58h { get; set; } - public MetaHash Unknown_5Ch { get; set; } - public MetaHash Unknown_60h { get; set; } - public MetaHash Unknown_64h { get; set; } + public float Unknown_50h { get; set; } + public float Unknown_54h { get; set; } + public float Unknown_58h { get; set; } + public float Unknown_5Ch { get; set; } + public uint Unknown_60h { get; set; } // eg. 0xfffafafa - colour? + public uint Unknown_64h { get; set; } // eg. 0x5affffff - colour? public ulong Unknown_68h; // 0x0000000000000000 // reference data @@ -1810,8 +2280,8 @@ namespace CodeWalker.GameFiles this.Unknown_4h = reader.ReadUInt32(); this.Unknown_8h = reader.ReadUInt32(); this.Unknown_Ch = reader.ReadUInt32(); - this.Unknown_10h = reader.ReadUInt32(); - this.Unknown_14h = reader.ReadUInt32(); + this.Unknown_10h = reader.ReadSingle(); + this.Unknown_14h = reader.ReadSingle(); this.UnknownDataPointer = reader.ReadUInt64(); this.Unknown_20h = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64(); @@ -1819,10 +2289,10 @@ namespace CodeWalker.GameFiles this.String2Pointer = reader.ReadUInt64(); this.EmitterRulePointer = reader.ReadUInt64(); this.ParticleRulePointer = reader.ReadUInt64(); - this.Unknown_50h = reader.ReadUInt32(); - this.Unknown_54h = reader.ReadUInt32(); - this.Unknown_58h = reader.ReadUInt32(); - this.Unknown_5Ch = reader.ReadUInt32(); + this.Unknown_50h = reader.ReadSingle(); + this.Unknown_54h = reader.ReadSingle(); + this.Unknown_58h = reader.ReadSingle(); + this.Unknown_5Ch = reader.ReadSingle(); this.Unknown_60h = reader.ReadUInt32(); this.Unknown_64h = reader.ReadUInt32(); this.Unknown_68h = reader.ReadUInt64(); @@ -1834,58 +2304,124 @@ namespace CodeWalker.GameFiles this.EmitterRule = reader.ReadBlockAt(this.EmitterRulePointer); this.ParticleRule = reader.ReadBlockAt(this.ParticleRulePointer); - if (Unknown_4h != 1) - { } - switch (Unknown_8h) - { - default: - break; - } - if (Unknown_Ch != 0) - { } + //if (Unknown_4h != 1) + //{ }//no hit + //switch (Unknown_8h) + //{ + // case 0: + // case 1: + // case 2: + // case 3: + // case 4: + // case 5: + // case 6: + // break; + // default: + // break;//no hit + //} + //if (Unknown_Ch != 0) + //{ }//no hit switch (Unknown_10h) { - default: + case 0: + case 0.015f: + case 0.1f: + case 0.3f: + case 0.8f: break; + default: + break;//more } - if (Unknown_14h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } + switch (Unknown_14h) + { + case 1.0f: + case 0.15f: + case 0.01f: + case 0.1f: + case 0.3f: + break; + default: + break;//more + } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit switch (Unknown_50h) { - default: + case 1.0f: + case 2.0f: + case 1.2f: + case 0.8f: break; + default: + break;//more } switch (Unknown_54h) { - default: + case 1.0f: + case 2.0f: + case 1.2f: + case 0.8f: break; + default: + break;//and more } switch (Unknown_58h) { - default: + case 1.0f: + case 0.5f: + case 0.95f: + case 1.2f: + case 0.4f: break; + default: + break;//more } switch (Unknown_5Ch) { - default: + case 1.0f: + case 1.2f: + case 0.5f: + case 0.4f: break; + default: + break;//more } switch (Unknown_60h) { - default: + case 0xffffffff: + case 0xfffafafa: + case 0xb4ffffff: + case 0xffffdcc8: + case 0xc8ffdcc8: + case 0x5affffff: + case 0xfffff2d1: + case 0xc8ffffff: break; + default: + break;//more } switch (Unknown_64h) { - default: + case 0xffffffff: + case 0xffffefc2: + case 0x32ffffff: + case 0x78ffa680: + case 0x50ffa680: + case 0x96f7b068: + case 0x5affffff: + case 0xa0ffd280: + case 0xb4ffffff: + case 0xffffebba: + case 0xffffb47a: + case 0xbeffffff: break; + default: + break;//more } - if (Unknown_68h != 0) - { } + //if (Unknown_68h != 0) + //{ }//no hit } @@ -1945,9 +2481,9 @@ namespace CodeWalker.GameFiles public uint VFT { get; set; } public uint Unknown_4h = 1; // 0x00000001 public ulong Unknown_8h; // 0x0000000000000000 - public MetaHash Unknown_10h { get; set; } + public uint Unknown_10h { get; set; } // 2, 3, 4, 5, 6, 10, 21 public uint Unknown_14h; // 0x00000000 - public float Unknown_18h { get; set; } = 4.1f; // 0x40833333 4.1f + public float Unknown_18h { get; set; } = 4.1f; // 4.1f public uint Unknown_1Ch; // 0x00000000 public ulong NamePointer { get; set; } public ulong Unknown_28h; // 0x0000000000000000 @@ -1965,7 +2501,7 @@ namespace CodeWalker.GameFiles public ushort KeyframePropsCount1 = 10; // 10 public ushort KeyframePropsCount2 = 10; // 10 public uint Unknown_624h; // 0x00000000 - public MetaHash Unknown_628h { get; set; } + public uint Unknown_628h { get; set; } // 0, 1 public uint Unknown_62Ch; // 0x00000000 // reference data @@ -2015,48 +2551,59 @@ namespace CodeWalker.GameFiles this.KeyframeProps2 = reader.ReadBlockAt>(this.KeyframeProps2Pointer, this.KeyframePropsCount2); - if (Unknown_4h != 1) - { } - if (Unknown_8h != 0) - { } - switch (Unknown_10h) - { - default: - break; - } - if (Unknown_14h != 0) - { } - if (Unknown_18h != 4.1f) - { } - if (Unknown_1Ch != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_30h != 0) - { } - if (Unknown_40h != 0) - { } - if (Unknown_50h != 0) - { } - if (Unknown_60h != 0) - { } - if (Unknown_68h != 0) - { } - if (Unknown_70h != 0) - { } - if (KeyframePropsCount1 != 10) - { } - if (KeyframePropsCount2 != 10) - { } - if (Unknown_624h != 0) - { } - switch (Unknown_628h) - { - default: - break; - } - if (Unknown_62Ch != 0) - { } + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_8h != 0) + //{ }//no hit + //switch (Unknown_10h) + //{ + // case 3: + // case 2: + // case 4: + // case 5: + // case 10: + // case 21: + // case 6: + // break; + // default: + // break;//no hit + //} + //if (Unknown_14h != 0) + //{ }//no hit + //if (Unknown_18h != 4.1f) + //{ }//no hit + //if (Unknown_1Ch != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_30h != 0) + //{ }//no hit + //if (Unknown_40h != 0) + //{ }//no hit + //if (Unknown_50h != 0) + //{ }//no hit + //if (Unknown_60h != 0) + //{ }//no hit + //if (Unknown_68h != 0) + //{ }//no hit + //if (Unknown_70h != 0) + //{ }//no hit + //if (KeyframePropsCount1 != 10) + //{ }//no hit + //if (KeyframePropsCount2 != 10) + //{ }//no hit + //if (Unknown_624h != 0) + //{ }//no hit + //switch (Unknown_628h) + //{ + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} + //if (Unknown_62Ch != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -2158,9 +2705,12 @@ namespace CodeWalker.GameFiles this.Unknown_28h = reader.ReadBlock>(); this.Unknown_38h = reader.ReadUInt64(); - if (Unknown_20h != 1) - { } - if (Unknown_38h != 0) + //if (Unknown_20h != 1) + //{ }//no hit + //if (Unknown_38h != 0) + //{ }//no hit + + if ((Unknown_10h?.data_items?.Length ?? 0) > 0) { } } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -2207,10 +2757,10 @@ namespace CodeWalker.GameFiles this.String1 = reader.ReadBlockAt(this.String1Pointer); - if (Unknown_8h != 0) - { } - if (Unknown_10h != 0) - { } + //if (Unknown_8h != 0) + //{ }//no hit + //if (Unknown_10h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -2255,14 +2805,64 @@ namespace CodeWalker.GameFiles // read reference data this.Item = reader.ReadBlockAt(this.ItemPointer); - switch (Unknown_0h) - { - default: - break; - } - if (Unknown_4h != 0) + if (Item != null) { } + switch (Unknown_0h) // hash... + { + case 0x1104051e: // + case 0x13c0cac4: // + case 0x41d49131: // + case 0x45e377e9: // + case 0x4af0ffa1: // + case 0xe00e5025: // + case 0x1f641348: // + case 0x3dc78098: // + case 0x7fae9df8: // + case 0x60500691: // + case 0xce8e57a7: // + case 0x61c50318: // + case 0xc9fe6abb: // + case 0x9fc4652b: // + case 0xe7d61ff7: // + case 0x30e327d4: // + case 0x412a554c: // + case 0xa7228870: // + case 0xe7af1a2c: // + case 0xfb8eb4e6: // + case 0x60855078: // + case 0x64c7fc25: // + case 0xd0ef73c5: // + case 0xe5480b3b: // + case 0x8306b23a: // + case 0xd2df1fa0: // + case 0xa83b53f0: // + case 0: + case 0x75990186: // + case 0xd5c0fce5: // + case 0x5e692d43: // + case 0x64c6c696: // + case 0x0aadcbef: // + case 0x841ab3da: // + case 0x513812a5: // + case 0xf256e579: // + case 0xef500a62: // + case 0x34d6ded7: // + case 0x2946e76f: // + case 0xc35aaf9b: // + case 0xe2c464a6: // + case 0xa67a1155: // + case 0x3ee8e85e: // + case 0x72668c6f: // + case 0xd7c1e22b: // + case 0xff864d6c: // + break; + default: + break;//no hit + } + //if (Unknown_4h != 0) + //{ }//no hit + } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -2292,7 +2892,7 @@ namespace CodeWalker.GameFiles // structure data public ResourceSimpleList64 Unknown_0h { get; set; } public MetaHash Unknown_10h { get; set; } - public MetaHash Unknown_14h { get; set; } + public uint Unknown_14h { get; set; } // 0, 1 public override void Read(ResourceDataReader reader, params object[] parameters) { @@ -2300,6 +2900,67 @@ namespace CodeWalker.GameFiles this.Unknown_0h = reader.ReadBlock>(); this.Unknown_10h = reader.ReadUInt32(); this.Unknown_14h = reader.ReadUInt32(); + + switch (Unknown_10h) // hash... + { + case 0x45e377e9: // + case 0x1104051e: // + case 0xe00e5025: // + case 0x41d49131: // + case 0x4af0ffa1: // + case 0x13c0cac4: // + case 0x7fae9df8: // + case 0x1f641348: // + case 0x3dc78098: // + case 0x60500691: // + case 0xce8e57a7: // + case 0x61c50318: // + case 0xc9fe6abb: // + case 0x9fc4652b: // + case 0xe7d61ff7: // + case 0x30e327d4: // + case 0x412a554c: // + case 0xe7af1a2c: // + case 0xfb8eb4e6: // + case 0xa7228870: // + case 0x60855078: // + case 0x64c7fc25: // + case 0xd0ef73c5: // + case 0xe5480b3b: // + case 0x8306b23a: // + case 0xd2df1fa0: // + case 0xa83b53f0: // + case 0: + case 0x75990186: // + case 0xd5c0fce5: // + case 0x5e692d43: // + case 0x64c6c696: // + case 0x0aadcbef: // + case 0x841ab3da: // + case 0x513812a5: // + case 0xf256e579: // + case 0xef500a62: // + case 0x34d6ded7: // + case 0x2946e76f: // + case 0xc35aaf9b: // + case 0xe2c464a6: // + case 0xa67a1155: // + case 0x3ee8e85e: // + case 0x72668c6f: // + case 0xd7c1e22b: // + case 0xff864d6c: // + break; + default: + break;//no hit + } + //switch (Unknown_14h) + //{ + // case 1: + // case 0: + // break; + // default: + // break;//no hit + //} } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -2308,17 +2969,6 @@ namespace CodeWalker.GameFiles writer.WriteBlock(this.Unknown_0h); writer.Write(this.Unknown_10h); writer.Write(this.Unknown_14h); - - switch (Unknown_10h) - { - default: - break; - } - switch (Unknown_14h) - { - default: - break; - } } public override Tuple[] GetParts() @@ -2335,39 +2985,48 @@ namespace CodeWalker.GameFiles public override long BlockLength => 0x30; // structure data - public ResourceSimpleList64 Unknown_0h { get; set; } + public ResourceSimpleList64 Unknown_0h { get; set; } public ulong Unknown_10h; // 0x0000000000000000 public ulong Unknown_18h; // 0x0000000000000000 - public MetaHash Unknown_20h { get; set; } - public MetaHash Unknown_24h { get; set; } + public uint Unknown_20h { get; set; } // 0, 1, 2, 3, 4 + public uint Unknown_24h { get; set; } // 0, 1 public ulong Unknown_28h; // 0x0000000000000000 public override void Read(ResourceDataReader reader, params object[] parameters) { // read structure data - this.Unknown_0h = reader.ReadBlock>(); + this.Unknown_0h = reader.ReadBlock>(); this.Unknown_10h = reader.ReadUInt64(); this.Unknown_18h = reader.ReadUInt64(); this.Unknown_20h = reader.ReadUInt32(); this.Unknown_24h = reader.ReadUInt32(); this.Unknown_28h = reader.ReadUInt64(); - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - switch (Unknown_20h) - { - default: - break; - } - switch (Unknown_24h) - { - default: - break; - } - if (Unknown_28h != 0) - { } + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //switch (Unknown_20h) + //{ + // case 3: + // case 2: + // case 1: + // case 0: + // case 4: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_24h) + //{ + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} + //if (Unknown_28h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -2422,17 +3081,17 @@ namespace CodeWalker.GameFiles // structure data public uint VFT { get; set; } public uint Unknown_4h = 1; // 0x00000001 - public MetaHash Unknown_8h { get; set; } + public uint Unknown_8h { get; set; } // 0, 1, 2 public ParticleDomainType DomainType { get; set; } - public byte Unknown_Dh { get; set; } - public ushort Unknown_Eh { get; set; } - public MetaHash Unknown_10h { get; set; } + public byte Unknown_Dh; // 0x00 + public ushort Unknown_Eh; // 0x0000 + public uint Unknown_10h { get; set; } // eg. 0x00010100 public uint Unknown_14h; // 0x00000000 public ParticleKeyframeProp KeyframeProp0 { get; set; } public ParticleKeyframeProp KeyframeProp1 { get; set; } public ParticleKeyframeProp KeyframeProp2 { get; set; } public ParticleKeyframeProp KeyframeProp3 { get; set; } - public MetaHash Unknown_258h { get; set; } + public float Unknown_258h { get; set; } // -1.0f, 2.0f, 2.1f public uint Unknown_25Ch; // 0x00000000 public ResourcePointerList64 KeyframeProps { get; set; } public ulong Unknown_270h; // 0x0000000000000000 @@ -2453,47 +3112,58 @@ namespace CodeWalker.GameFiles this.KeyframeProp1 = reader.ReadBlock(); this.KeyframeProp2 = reader.ReadBlock(); this.KeyframeProp3 = reader.ReadBlock(); - this.Unknown_258h = reader.ReadUInt32(); + this.Unknown_258h = reader.ReadSingle(); this.Unknown_25Ch = reader.ReadUInt32(); this.KeyframeProps = reader.ReadBlock>(); this.Unknown_270h = reader.ReadUInt64(); this.Unknown_278h = reader.ReadUInt64(); - if (Unknown_4h != 1) - { } - switch (Unknown_8h) - { - default: - break; - } - switch (Unknown_Dh) - { - default: - break; - } - switch (Unknown_Eh) - { - default: - break; - } - switch (Unknown_10h) - { - default: - break; - } - if (Unknown_14h != 0) - { } - switch (Unknown_258h) - { - default: - break; - } - if (Unknown_25Ch != 0) - { } - if (Unknown_270h != 0) - { } - if (Unknown_278h != 0) - { } + //if (Unknown_4h != 1) + //{ }//no hit + //switch (Unknown_8h) + //{ + // case 0: + // case 1: + // case 2: + // break; + // default: + // break;//no hit + //} + //if (Unknown_Dh != 0) + //{ }//no hit + //if (Unknown_Eh != 0) + //{ }//no hit + //switch (Unknown_10h) + //{ + // case 0: + // case 0x00000100: + // case 0x00000101: + // case 1: + // case 0x00010001: + // case 0x00010000: + // case 0x00010100: + // case 0x00010101: + // break; + // default: + // break;//no hit + //} + //if (Unknown_14h != 0) + //{ }//no hit + //switch (Unknown_258h) + //{ + // case 2.0f: + // case 2.1f: + // case -1.0f: + // break; + // default: + // break;//no hit + //} + //if (Unknown_25Ch != 0) + //{ }//no hit + //if (Unknown_270h != 0) + //{ }//no hit + //if (Unknown_278h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -2626,10 +3296,10 @@ namespace CodeWalker.GameFiles this.Type = (ParticleBehaviourType)reader.ReadUInt32(); this.Unknown_Ch = reader.ReadUInt32(); - if (Unknown_4h != 1) - { } - if (Unknown_Ch != 0) - { } + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_Ch != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -2698,14 +3368,14 @@ namespace CodeWalker.GameFiles this.Unknown_20h = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64(); - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -2731,8 +3401,8 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp0 { get; set; } public ParticleKeyframeProp KeyframeProp1 { get; set; } public ulong Unknown_150h; // 0x0000000000000000 - public MetaHash Unknown_158h { get; set; } - public MetaHash Unknown_15Ch { get; set; } + public uint Unknown_158h { get; set; } // 0, 1, 2 + public uint Unknown_15Ch { get; set; } // 0, 1 public ulong Unknown_160h; // 0x0000000000000000 public ulong Unknown_168h; // 0x0000000000000000 @@ -2752,26 +3422,33 @@ namespace CodeWalker.GameFiles this.Unknown_160h = reader.ReadUInt64(); this.Unknown_168h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_150h != 0) - { } - switch (Unknown_158h) - { - default: - break; - } - switch (Unknown_15Ch) - { - default: - break; - } - if (Unknown_160h != 0) - { } - if (Unknown_168h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_150h != 0) + //{ }//no hit + //switch (Unknown_158h) + //{ + // case 0: + // case 1: + // case 2: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_15Ch) + //{ + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} + //if (Unknown_160h != 0) + //{ }//no hit + //if (Unknown_168h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -2821,14 +3498,14 @@ namespace CodeWalker.GameFiles this.Unknown_20h = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64(); - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -2856,10 +3533,10 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp1 { get; set; } public ParticleKeyframeProp KeyframeProp2 { get; set; } public ParticleKeyframeProp KeyframeProp3 { get; set; } - public MetaHash Unknown_270h { get; set; } - public MetaHash Unknown_274h { get; set; } - public MetaHash Unknown_278h { get; set; } - public MetaHash Unknown_27Ch { get; set; } + public uint Unknown_270h { get; set; } // 0, 1, 2 + public uint Unknown_274h { get; set; } // 0, 1, 2 + public uint Unknown_278h { get; set; } // eg. 0x00010101 + public float Unknown_27Ch { get; set; } public override void Read(ResourceDataReader reader, params object[] parameters) { @@ -2876,31 +3553,54 @@ namespace CodeWalker.GameFiles this.Unknown_270h = reader.ReadUInt32(); this.Unknown_274h = reader.ReadUInt32(); this.Unknown_278h = reader.ReadUInt32(); - this.Unknown_27Ch = reader.ReadUInt32(); + this.Unknown_27Ch = reader.ReadSingle(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_270h) - { - default: - break; - } - switch (Unknown_274h) - { - default: - break; - } - switch (Unknown_278h) - { - default: - break; - } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //switch (Unknown_270h) + //{ + // case 1: + // case 0: + // case 2: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_274h) + //{ + // case 1: + // case 0: + // case 2: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_278h) + //{ + // case 0x00010000: + // case 1: + // case 0: + // case 0x00010001: + // case 0x00000101: + // case 0x00010101: + // case 0x00010100: + // break; + // default: + // break;//no hit + //} switch (Unknown_27Ch) { - default: + case 0: + case 0.5f: + case 1.0f: + case 0.001f: + case 0.01f: + case 0.1f: break; + default: + break;//and more.. } } @@ -2947,8 +3647,8 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp1 { get; set; } public ParticleKeyframeProp KeyframeProp2 { get; set; } public ParticleKeyframeProp KeyframeProp3 { get; set; } - public MetaHash Unknown_270h { get; set; } - public MetaHash Unknown_274h { get; set; } + public uint Unknown_270h { get; set; } // 0, 1, 2 + public uint Unknown_274h { get; set; } // 0, 1 public ulong Unknown_278h; // 0x0000000000000000 public override void Read(ResourceDataReader reader, params object[] parameters) @@ -2967,22 +3667,29 @@ namespace CodeWalker.GameFiles this.Unknown_274h = reader.ReadUInt32(); this.Unknown_278h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_270h) - { - default: - break; - } - switch (Unknown_274h) - { - default: - break; - } - if (Unknown_278h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //switch (Unknown_270h) + //{ + // case 0: + // case 1: + // case 2: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_274h) + //{ + // case 1: + // case 0: + // break; + // default: + // break;//no hit + //} + //if (Unknown_278h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3025,7 +3732,7 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp0 { get; set; } public ParticleKeyframeProp KeyframeProp1 { get; set; } public ulong Unknown_150h; // 0x0000000000000000 - public MetaHash Unknown_158h { get; set; } + public uint Unknown_158h { get; set; } // 0, 1, 2 public uint Unknown_15Ch; // 0x00000000 public ulong Unknown_160h; // 0x0000000000000000 public ulong Unknown_168h; // 0x0000000000000000 @@ -3046,23 +3753,27 @@ namespace CodeWalker.GameFiles this.Unknown_160h = reader.ReadUInt64(); this.Unknown_168h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_150h != 0) - { } - switch (Unknown_158h) - { - default: - break; - } - if (Unknown_15Ch != 0) - { } - if (Unknown_160h != 0) - { } - if (Unknown_168h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_150h != 0) + //{ }//no hit + //switch (Unknown_158h) + //{ + // case 0: + // case 1: + // case 2: + // break; + // default: + // break;//no hit + //} + //if (Unknown_15Ch != 0) + //{ }//no hit + //if (Unknown_160h != 0) + //{ }//no hit + //if (Unknown_168h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3101,7 +3812,7 @@ namespace CodeWalker.GameFiles public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 public ParticleKeyframeProp KeyframeProp0 { get; set; } - public MetaHash Unknown_C0h { get; set; } + public uint Unknown_C0h { get; set; } // 0, 1 public uint Unknown_C4h; // 0x00000000 public ulong Unknown_C8h; // 0x0000000000000000 @@ -3119,19 +3830,22 @@ namespace CodeWalker.GameFiles this.Unknown_C8h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_C0h) - { - default: - break; - } - if (Unknown_C4h != 0) - { } - if (Unknown_C8h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //switch (Unknown_C0h) + //{ + // case 1: + // case 0: + // break; + // default: + // break;//no hit + //} + //if (Unknown_C4h != 0) + //{ }//no hit + //if (Unknown_C8h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3167,10 +3881,10 @@ namespace CodeWalker.GameFiles public ulong Unknown_28h; // 0x0000000000000000 public ParticleKeyframeProp KeyframeProp0 { get; set; } public ParticleKeyframeProp KeyframeProp1 { get; set; } - public MetaHash Unknown_150h { get; set; } - public MetaHash Unknown_154h { get; set; } - public MetaHash Unknown_158h { get; set; } - public MetaHash Unknown_15Ch { get; set; } + public float Unknown_150h { get; set; } + public float Unknown_154h { get; set; } + public uint Unknown_158h { get; set; } // 30, 50, 60, 70, 100 + public uint Unknown_15Ch { get; set; } // 0, 20, 25, 40, 50, 60, 65, 75, 100 public ulong Unknown_160h; // 0x0000000000000000 public ulong Unknown_168h; // 0x0000000000000000 @@ -3184,41 +3898,71 @@ namespace CodeWalker.GameFiles this.Unknown_28h = reader.ReadUInt64(); this.KeyframeProp0 = reader.ReadBlock(); this.KeyframeProp1 = reader.ReadBlock(); - this.Unknown_150h = reader.ReadUInt32(); - this.Unknown_154h = reader.ReadUInt32(); + this.Unknown_150h = reader.ReadSingle(); + this.Unknown_154h = reader.ReadSingle(); this.Unknown_158h = reader.ReadUInt32(); this.Unknown_15Ch = reader.ReadUInt32(); this.Unknown_160h = reader.ReadUInt64(); this.Unknown_168h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit switch (Unknown_150h) { - default: + case 0.001f: + case 0.02f: + case 0.1f: + case 0.5f: + case 0.4f: + case 0.01f: + case 0: break; + default: + break;//more } switch (Unknown_154h) { - default: + case 0.05f: + case 0.2f: + case 0.1f: + case 0.4f: + case 0: break; - } - switch (Unknown_158h) - { default: - break; + break;//more } - switch (Unknown_15Ch) - { - default: - break; - } - if (Unknown_160h != 0) - { } - if (Unknown_168h != 0) - { } + //switch (Unknown_158h)//percentage + //{ + // case 100: + // case 70: + // case 50: + // case 60: + // case 30: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_15Ch)//percentage + //{ + // case 0: + // case 100: + // case 60: + // case 40: + // case 50: + // case 75: + // case 65: + // case 20: + // case 25: + // break; + // default: + // break;//no hit + //} + //if (Unknown_160h != 0) + //{ }//no hit + //if (Unknown_168h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3258,10 +4002,10 @@ namespace CodeWalker.GameFiles public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 public ParticleKeyframeProp KeyframeProp0 { get; set; } - public MetaHash Unknown_C0h { get; set; } - public MetaHash Unknown_C4h { get; set; } - public MetaHash Unknown_C8h { get; set; } - public MetaHash Unknown_CCh { get; set; } + public uint Unknown_C0h { get; set; } // 0, 2 + public uint Unknown_C4h { get; set; } + public uint Unknown_C8h { get; set; } // 0, 1, 2 + public uint Unknown_CCh { get; set; } // eg. 0x01010100 public override void Read(ResourceDataReader reader, params object[] parameters) { @@ -3277,29 +4021,58 @@ namespace CodeWalker.GameFiles this.Unknown_C8h = reader.ReadUInt32(); this.Unknown_CCh = reader.ReadUInt32(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_C0h) - { - default: - break; - } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //switch (Unknown_C0h) + //{ + // case 0: + // case 2: + // break; + // default: + // break;//no hit + //} switch (Unknown_C4h) { - default: + case 3: + case 48: + case 0: + case 11: + case 35: + case 43: + case 24: + case 7: + case 37: + case 0xffffffff: // -1.. + case 2: break; - } - switch (Unknown_C8h) - { default: - break; + break;//more } + //switch (Unknown_C8h) + //{ + // case 1: + // case 0: + // case 2: + // break; + // default: + // break;//no hit + //} switch (Unknown_CCh) { - default: + case 0x01000001: + case 0x01000101: + case 0x01010100: + case 0x01010000: + case 0x01000000: + case 0x01010101: + case 0x01000100: + case 0x01010001: + case 1: break; + default: + break;//more } } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -3338,8 +4111,8 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp0 { get; set; } public ParticleKeyframeProp KeyframeProp1 { get; set; } public ParticleKeyframeProp KeyframeProp2 { get; set; } - public MetaHash Unknown_1E0h { get; set; } - public MetaHash Unknown_1E4h { get; set; } + public uint Unknown_1E0h { get; set; } // 0, 2 + public uint Unknown_1E4h { get; set; } // eg. 0x00010101 public ulong Unknown_1E8h; // 0x0000000000000000 public override void Read(ResourceDataReader reader, params object[] parameters) @@ -3357,22 +4130,33 @@ namespace CodeWalker.GameFiles this.Unknown_1E4h = reader.ReadUInt32(); this.Unknown_1E8h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_1E0h) - { - default: - break; - } - switch (Unknown_1E4h) - { - default: - break; - } - if (Unknown_1E8h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //switch (Unknown_1E0h) + //{ + // case 0: + // case 2: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_1E4h) + //{ + // case 0x00000100: // 256 + // case 0x00000101: + // case 0x00010101: + // case 0x00010100: + // case 1: + // case 0: + // case 0x00010001: + // break; + // default: + // break;//no hit + //} + //if (Unknown_1E8h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3411,19 +4195,19 @@ namespace CodeWalker.GameFiles public ulong Unknown_18h; // 0x0000000000000000 public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 - public MetaHash Unknown_30h { get; set; } - public MetaHash Unknown_34h { get; set; } - public MetaHash Unknown_38h { get; set; } - public MetaHash Unknown_3Ch { get; set; } - public MetaHash Unknown_40h { get; set; } - public MetaHash Unknown_44h { get; set; } - public MetaHash Unknown_48h { get; set; } - public MetaHash Unknown_4Ch { get; set; } - public MetaHash Unknown_50h { get; set; } - public MetaHash Unknown_54h { get; set; } - public MetaHash Unknown_58h { get; set; } - public MetaHash Unknown_5Ch { get; set; } - public MetaHash Unknown_60h { get; set; } + public float Unknown_30h { get; set; } // 0, -0.1f, -1.0f, 1.0f, 0.57735f + public float Unknown_34h { get; set; } // 0, -1.0f, 1.0f, 0.77f, 0.57735f + public float Unknown_38h { get; set; } // 0, -0.125f, 1.0f, 0.77f, 0.57735f + public uint Unknown_3Ch { get; set; } // 0x7f800001 + public uint Unknown_40h { get; set; } // 0, 1, 2, 3, 4 + public float Unknown_44h { get; set; } // 0, 0.1f, 0.2f, 0.25f, 0.5f, 1.0f + public float Unknown_48h { get; set; } // 0, 0.1f, 0.2f, 0.25f, 0.5f, 1.0f + public float Unknown_4Ch { get; set; } // 0, -1.0f, -0.1f, ..., 0.15f, .., 3.0f, ... + public float Unknown_50h { get; set; } // 0, 0.07f, 5.0f, 10.0f + public float Unknown_54h { get; set; } // 0, 0.5f, 1.0f, 2.0f + public float Unknown_58h { get; set; } // 0, 0.1f, 0.2f, ..., 0.75f, 1.0f + public uint Unknown_5Ch { get; set; } // eg. 0x01010100 + public uint Unknown_60h { get; set; } // 0, 1, 0x100 public uint Unknown_64h; // 0x00000000 public ulong Unknown_68h; // 0x0000000000000000 @@ -3436,99 +4220,183 @@ namespace CodeWalker.GameFiles this.Unknown_18h = reader.ReadUInt64(); this.Unknown_20h = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64(); - this.Unknown_30h = reader.ReadUInt32(); - this.Unknown_34h = reader.ReadUInt32(); - this.Unknown_38h = reader.ReadUInt32(); + this.Unknown_30h = reader.ReadSingle(); + this.Unknown_34h = reader.ReadSingle(); + this.Unknown_38h = reader.ReadSingle(); this.Unknown_3Ch = reader.ReadUInt32(); this.Unknown_40h = reader.ReadUInt32(); - this.Unknown_44h = reader.ReadUInt32(); - this.Unknown_48h = reader.ReadUInt32(); - this.Unknown_4Ch = reader.ReadUInt32(); - this.Unknown_50h = reader.ReadUInt32(); - this.Unknown_54h = reader.ReadUInt32(); - this.Unknown_58h = reader.ReadUInt32(); + this.Unknown_44h = reader.ReadSingle(); + this.Unknown_48h = reader.ReadSingle(); + this.Unknown_4Ch = reader.ReadSingle(); + this.Unknown_50h = reader.ReadSingle(); + this.Unknown_54h = reader.ReadSingle(); + this.Unknown_58h = reader.ReadSingle(); this.Unknown_5Ch = reader.ReadUInt32(); this.Unknown_60h = reader.ReadUInt32(); this.Unknown_64h = reader.ReadUInt32(); this.Unknown_68h = reader.ReadUInt64(); - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_30h) - { - default: - break; - } - switch (Unknown_34h) - { - default: - break; - } - switch (Unknown_38h) - { - default: - break; - } - switch (Unknown_3Ch) - { - default: - break; - } - switch (Unknown_40h) - { - default: - break; - } - switch (Unknown_44h) - { - default: - break; - } - switch (Unknown_48h) - { - default: - break; - } - switch (Unknown_4Ch) - { - default: - break; - } - switch (Unknown_50h) - { - default: - break; - } - switch (Unknown_54h) - { - default: - break; - } - switch (Unknown_58h) - { - default: - break; - } - switch (Unknown_5Ch) - { - default: - break; - } - switch (Unknown_60h) - { - default: - break; - } - if (Unknown_64h != 0) - { } - if (Unknown_68h != 0) - { } + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //switch (Unknown_30h) + //{ + // case 0: + // case 0.57735f: + // case -0.1f: + // case 1.0f: + // case -1.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_34h) + //{ + // case 0: + // case 1.0f: + // case 0.77f: + // case 0.57735f: + // case -1.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_38h) + //{ + // case 0: + // case 1.0f: + // case 0.77f: + // case 0.57735f: + // case -0.125f: + // break; + // default: + // break;//no hit + //} + //if (Unknown_3Ch != 0x7f800001) + //{ }//no hit + //switch (Unknown_40h) + //{ + // case 0: + // case 1: + // case 2: + // case 4: + // case 3: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_44h) + //{ + // case 0: + // case 0.5f: + // case 0.25f: + // case 1.0f: + // case 0.2f: + // case 0.1f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_48h) + //{ + // case 0: + // case 0.5f: + // case 1.0f: + // case 0.2f: + // case 0.1f: + // case 0.25f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_4Ch) + //{ + // case 0: + // case 1.0f: + // case -0.35f: + // case -0.5f: + // case -1.0f: + // case 0.15f: + // case 3.0f: + // case -0.1f: + // case -0.2f: + // case 0.001f: + // case 0.25f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_50h) + //{ + // case 0: + // case 5.0f: + // case 0.07f: + // case 10.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_54h) + //{ + // case 0: + // case 0.5f: + // case 1.0f: + // case 2.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_58h) + //{ + // case 0: + // case 0.6f: + // case 0.25f: + // case 0.75f: + // case 0.5f: + // case 0.65f: + // case 0.2f: + // case 0.4f: + // case 0.3f: + // case 0.1f: + // case 1.0f: + // case 0.7f: + // case 0.05f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_5Ch) + //{ + // case 0x00000100: + // case 0: + // case 0x00010100: + // case 0x00000101: + // case 0x01010100: + // case 0x01000100: + // case 0x00010000: + // case 0x00000001: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_60h) + //{ + // case 0: + // case 1: + // case 0x00000100: + // break; + // default: + // break;//no hit + //} + //if (Unknown_64h != 0) + //{ }//no hit + //if (Unknown_68h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3569,11 +4437,11 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp0 { get; set; } public ulong Unknown_C0h; // 0x0000000000000000 public ulong Unknown_C8h; // 0x0000000000000000 - public MetaHash Unknown_D0h { get; set; } - public MetaHash Unknown_D4h { get; set; } - public MetaHash Unknown_D8h { get; set; } - public MetaHash Unknown_DCh { get; set; } - public MetaHash Unknown_E0h { get; set; } + public float Unknown_D0h { get; set; } // 15.0f, 20.0f, ..., 100.0f + public float Unknown_D4h { get; set; } // 30.0f, 50.0f, ..., 200.0f + public uint Unknown_D8h { get; set; } // 0, 1, 2 + public uint Unknown_DCh { get; set; } // 0, 1, 2 + public uint Unknown_E0h { get; set; } // 0, 1 public uint Unknown_E4h; // 0x00000000 public ulong Unknown_E8h; // 0x0000000000000000 @@ -3588,51 +4456,72 @@ namespace CodeWalker.GameFiles this.KeyframeProp0 = reader.ReadBlock(); this.Unknown_C0h = reader.ReadUInt64(); this.Unknown_C8h = reader.ReadUInt64(); - this.Unknown_D0h = reader.ReadUInt32(); - this.Unknown_D4h = reader.ReadUInt32(); + this.Unknown_D0h = reader.ReadSingle(); + this.Unknown_D4h = reader.ReadSingle(); this.Unknown_D8h = reader.ReadUInt32(); this.Unknown_DCh = reader.ReadUInt32(); this.Unknown_E0h = reader.ReadUInt32(); this.Unknown_E4h = reader.ReadUInt32(); this.Unknown_E8h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_C0h != 0) - { } - if (Unknown_C8h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_C0h != 0) + //{ }//no hit + //if (Unknown_C8h != 0) + //{ }//no hit switch (Unknown_D0h) { - default: + case 15.0f: + case 20.0f: + case 30.0f: + case 100.0f: break; + default: + break;//more } switch (Unknown_D4h) { - default: + case 30.0f: + case 50.0f: + case 40.0f: + case 200.0f: break; - } - switch (Unknown_D8h) - { default: - break; + break;//more } - switch (Unknown_DCh) - { - default: - break; - } - switch (Unknown_E0h) - { - default: - break; - } - if (Unknown_E4h != 0) - { } - if (Unknown_E8h != 0) - { } + //switch (Unknown_D8h) + //{ + // case 1: + // case 2: + // case 0: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_DCh) + //{ + // case 1: + // case 0: + // case 2: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_E0h) + //{ + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} + //if (Unknown_E4h != 0) + //{ }//no hit + //if (Unknown_E8h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3681,10 +4570,10 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp6 { get; set; } public ParticleKeyframeProp KeyframeProp7 { get; set; } public ParticleKeyframeProp KeyframeProp8 { get; set; } - public MetaHash Unknown_540h { get; set; } - public MetaHash Unknown_544h { get; set; } - public MetaHash Unknown_548h { get; set; } - public MetaHash Unknown_54Ch { get; set; } + public float Unknown_540h { get; set; } + public uint Unknown_544h { get; set; } // eg. 0x01010101 + public uint Unknown_548h { get; set; } // eg. 0x01000101 + public uint Unknown_54Ch { get; set; } // 0, 2, 4, 5, 6 public override void Read(ResourceDataReader reader, params object[] parameters) { @@ -3703,36 +4592,70 @@ namespace CodeWalker.GameFiles this.KeyframeProp6 = reader.ReadBlock(); this.KeyframeProp7 = reader.ReadBlock(); this.KeyframeProp8 = reader.ReadBlock(); - this.Unknown_540h = reader.ReadUInt32(); + this.Unknown_540h = reader.ReadSingle(); this.Unknown_544h = reader.ReadUInt32(); this.Unknown_548h = reader.ReadUInt32(); this.Unknown_54Ch = reader.ReadUInt32(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit switch (Unknown_540h) { - default: + case 0: + case 0.2f: + case 0.01f: + case 1.0f: + case 0.014f: + case 0.1f: break; - } - switch (Unknown_544h) - { default: - break; - } - switch (Unknown_548h) - { - default: - break; - } - switch (Unknown_54Ch) - { - default: - break; + break;//more } + //switch (Unknown_544h) + //{ + // case 0x00000100: + // case 0x01010101: + // case 0x00000001: + // case 0x00000101: + // case 0x01000101: + // case 0x01000100: + // case 0: + // case 0x01000001: + // case 0x01000000: + // case 0x00010100: + // case 0x00010000: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_548h) + //{ + // case 0: + // case 1: + // case 0x01000100: + // case 0x01000000: + // case 0x00000101: + // case 0x00000100: + // case 0x01000101: + // case 0x01000001: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_54Ch) + //{ + // case 0: + // case 6: + // case 5: + // case 4: + // case 2: + // break; + // default: + // break;//no hit + //} } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3785,8 +4708,8 @@ namespace CodeWalker.GameFiles public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 public uint Unknown_30h; // 0x00000000 - public MetaHash Unknown_34h { get; set; } - public MetaHash Unknown_38h { get; set; } + public float Unknown_34h { get; set; } // 0, 0.2f, 0.5f, 1.0f, 2.0f, 3.0f, 5.0f + public float Unknown_38h { get; set; } // 0, 1.0f public uint Unknown_3Ch; // 0x00000000 public override void Read(ResourceDataReader reader, params object[] parameters) @@ -3799,32 +4722,43 @@ namespace CodeWalker.GameFiles this.Unknown_20h = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64(); this.Unknown_30h = reader.ReadUInt32(); - this.Unknown_34h = reader.ReadUInt32(); - this.Unknown_38h = reader.ReadUInt32(); + this.Unknown_34h = reader.ReadSingle(); + this.Unknown_38h = reader.ReadSingle(); this.Unknown_3Ch = reader.ReadUInt32(); - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_30h != 0) - { } - switch (Unknown_34h) - { - default: - break; - } - switch (Unknown_38h) - { - default: - break; - } - if (Unknown_3Ch != 0) - { } + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_30h != 0) + //{ }//no hit + //switch (Unknown_34h) + //{ + // case 0: + // case 2.0f: + // case 0.5f: + // case 3.0f: + // case 1.0f: + // case 5.0f: + // case 0.2f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_38h) + //{ + // case 0: + // case 1.0f: + // break; + // default: + // break;//no hit + //} + //if (Unknown_3Ch != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -3853,17 +4787,17 @@ namespace CodeWalker.GameFiles public ulong Unknown_28h; // 0x0000000000000000 public ParticleKeyframeProp KeyframeProp0 { get; set; } public ParticleKeyframeProp KeyframeProp1 { get; set; } - public MetaHash Unknown_150h { get; set; } - public MetaHash Unknown_154h { get; set; } - public MetaHash Unknown_158h { get; set; } - public MetaHash Unknown_15Ch { get; set; } - public MetaHash Unknown_160h { get; set; } - public MetaHash Unknown_164h { get; set; } - public MetaHash Unknown_168h { get; set; } - public MetaHash Unknown_16Ch { get; set; } - public MetaHash Unknown_170h { get; set; } - public float Unknown_174h = 0.3f; // 0x3E99999A // 0.3f - public float Unknown_178h = 1.0f; // 0x3F800000 // 1.0f + public uint Unknown_150h { get; set; } // 1010, 1015, 1020, 1030, 1040, 9000, 9001, 9010 + public uint Unknown_154h; // 0x00000000 + public float Unknown_158h { get; set; } // 20.0f, 100.0f, 6.5f, ... + public float Unknown_15Ch { get; set; } // 0, 0.001f, 0.025f, 0.1f, 0.125f, 0.25f, 0.3f + public float Unknown_160h { get; set; } // 0, 0.5f, 1.0f + public float Unknown_164h { get; set; } // 1.0f, 4.0f + public float Unknown_168h { get; set; } // 0, 0.025, 0.05 + public float Unknown_16Ch { get; set; } // 0.3f, 0.8f, 1.0f, ... + public uint Unknown_170h { get; set; } // eg. 0x01010000 + public float Unknown_174h { get; set; } = 0.3f; + public float Unknown_178h { get; set; } = 1.0f; public uint Unknown_17Ch; // 0x00000000 public override void Read(ResourceDataReader reader, params object[] parameters) @@ -3878,72 +4812,115 @@ namespace CodeWalker.GameFiles this.KeyframeProp1 = reader.ReadBlock(); this.Unknown_150h = reader.ReadUInt32(); this.Unknown_154h = reader.ReadUInt32(); - this.Unknown_158h = reader.ReadUInt32(); - this.Unknown_15Ch = reader.ReadUInt32(); - this.Unknown_160h = reader.ReadUInt32(); - this.Unknown_164h = reader.ReadUInt32(); - this.Unknown_168h = reader.ReadUInt32(); - this.Unknown_16Ch = reader.ReadUInt32(); + this.Unknown_158h = reader.ReadSingle(); + this.Unknown_15Ch = reader.ReadSingle(); + this.Unknown_160h = reader.ReadSingle(); + this.Unknown_164h = reader.ReadSingle(); + this.Unknown_168h = reader.ReadSingle(); + this.Unknown_16Ch = reader.ReadSingle(); this.Unknown_170h = reader.ReadUInt32(); this.Unknown_174h = reader.ReadSingle(); this.Unknown_178h = reader.ReadSingle(); this.Unknown_17Ch = reader.ReadUInt32(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_150h) - { - default: - break; - } - switch (Unknown_154h) - { - default: - break; - } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //switch (Unknown_150h) + //{ + // case 0x000003fc: // 1020 + // case 0x00002328: // 9000 + // case 0x00002332: // 9010 + // case 0x00000410: // 1040 + // case 0x000003f2: // 1010 + // case 0x00000406: // 1030 + // case 0x00002329: // 9001 + // case 0x000003f7: // 1015 + // break; + // default: + // break;//no hit + //} + //if (Unknown_154h != 0) + //{ }//no hit switch (Unknown_158h) { - default: + case 20.0f: + case 100.0f: + case 6.5f: break; - } - switch (Unknown_15Ch) - { default: - break; - } - switch (Unknown_160h) - { - default: - break; - } - switch (Unknown_164h) - { - default: - break; - } - switch (Unknown_168h) - { - default: - break; + break;//more } + //switch (Unknown_15Ch) + //{ + // case 0: + // case 0.25f: + // case 0.1f: + // case 0.001f: + // case 0.3f: + // case 0.025f: + // case 0.125f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_160h) + //{ + // case 1.0f: + // case 0: + // case 0.5f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_164h) + //{ + // case 1.0f: + // case 4.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_168h) + //{ + // case 0: + // case 0.05f: + // case 0.025f: + // break; + // default: + // break;//no hit + //} switch (Unknown_16Ch) { - default: + case 0.55f: + case 1.0f: + case 0.7f: + case 0.3f: + case 0.8f: break; - } - switch (Unknown_170h) - { default: - break; + break;//more } - if (Unknown_174h != 0.3f) - { } - if (Unknown_178h != 1.0f) - { } - if (Unknown_17Ch != 0) - { } + //switch (Unknown_170h) + //{ + // case 0x01010000: + // case 0x00010000: + // case 0x00000101: + // case 0x00010101: + // case 0x01000000: + // case 0: + // case 0x00010001: + // break; + // default: + // break;//no hit + //} + //if (Unknown_174h != 0.3f) + //{ }//no hit + //if (Unknown_178h != 1.0f) + //{ }//no hit + //if (Unknown_17Ch != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -3992,8 +4969,8 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp0 { get; set; } public ParticleKeyframeProp KeyframeProp1 { get; set; } public ulong Unknown_150h; // 0x0000000000000000 - public MetaHash Unknown_158h { get; set; } - public MetaHash Unknown_15Ch { get; set; } + public uint Unknown_158h { get; set; } // 0, 1, 2, 3 + public uint Unknown_15Ch { get; set; } // 0, 1, 2, 3, 4 public ulong Unknown_160h; // 0x0000000000000000 public ulong Unknown_168h; // 0x0000000000000000 @@ -4013,26 +4990,37 @@ namespace CodeWalker.GameFiles this.Unknown_160h = reader.ReadUInt64(); this.Unknown_168h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_150h != 0) - { } - switch (Unknown_158h) - { - default: - break; - } - switch (Unknown_15Ch) - { - default: - break; - } - if (Unknown_160h != 0) - { } - if (Unknown_168h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_150h != 0) + //{ }//no hit + //switch (Unknown_158h) + //{ + // case 2: + // case 1: + // case 0: + // case 3: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_15Ch) + //{ + // case 4: + // case 1: + // case 3: + // case 0: + // case 2: + // break; + // default: + // break;//no hit + //} + //if (Unknown_160h != 0) + //{ }//no hit + //if (Unknown_168h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4074,8 +5062,8 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp1 { get; set; } public ParticleKeyframeProp KeyframeProp2 { get; set; } public ParticleKeyframeProp KeyframeProp3 { get; set; } - public uint Unknown_270h; // 0x00000000 - public MetaHash Unknown_274h { get; set; } + public uint Unknown_270h { get; set; } // 0, 2 + public uint Unknown_274h { get; set; } // 0, 1 public ulong Unknown_278h; // 0x0000000000000000 public override void Read(ResourceDataReader reader, params object[] parameters) @@ -4095,19 +5083,22 @@ namespace CodeWalker.GameFiles this.Unknown_278h = reader.ReadUInt64(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_270h != 0) - { } - switch (Unknown_274h) - { - default: - break; - } - if (Unknown_278h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if ((Unknown_270h != 0) && (Unknown_270h != 2)) + //{ }//no hit + //switch (Unknown_274h) + //{ + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} + //if (Unknown_278h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4160,10 +5151,10 @@ namespace CodeWalker.GameFiles this.KeyframeProp0 = reader.ReadBlock(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4196,17 +5187,17 @@ namespace CodeWalker.GameFiles public ulong Unknown_28h; // 0x0000000000000000 public ParticleKeyframeProp KeyframeProp0 { get; set; } public uint Unknown_C0h; // 0x00000000 - public MetaHash Unknown_C4h { get; set; } - public MetaHash Unknown_C8h { get; set; } - public MetaHash Unknown_CCh { get; set; } + public float Unknown_C4h { get; set; } // 0, 1.0f + public float Unknown_C8h { get; set; } // 0, 1.0f + public uint Unknown_CCh { get; set; } = 0x7f800001; // 0x7f800001 public uint Unknown_D0h; // 0x00000000 - public MetaHash Unknown_D4h { get; set; } - public MetaHash Unknown_D8h { get; set; } - public MetaHash Unknown_DCh { get; set; } - public MetaHash Unknown_E0h { get; set; } - public MetaHash Unknown_E4h { get; set; } + public uint Unknown_D4h { get; set; } // 0, 1, 2, 3, 4, 5 + public uint Unknown_D8h { get; set; } // 1, 2, 3, 4, 6 + public float Unknown_DCh { get; set; } // 0, 0.1f, 0.2f, 0.4f, 1.0f + public float Unknown_E0h { get; set; } // 0, 0.1f, 0.4f, 1.0f + public float Unknown_E4h { get; set; } // 0, 0.5f public uint Unknown_E8h; // 0x00000000 - public MetaHash Unknown_ECh { get; set; } + public uint Unknown_ECh { get; set; } // eg. 0x01000000 public override void Read(ResourceDataReader reader, params object[] parameters) { @@ -4218,73 +5209,113 @@ namespace CodeWalker.GameFiles this.Unknown_28h = reader.ReadUInt64(); this.KeyframeProp0 = reader.ReadBlock(); this.Unknown_C0h = reader.ReadUInt32(); - this.Unknown_C4h = reader.ReadUInt32(); - this.Unknown_C8h = reader.ReadUInt32(); + this.Unknown_C4h = reader.ReadSingle(); + this.Unknown_C8h = reader.ReadSingle(); this.Unknown_CCh = reader.ReadUInt32(); this.Unknown_D0h = reader.ReadUInt32(); this.Unknown_D4h = reader.ReadUInt32(); this.Unknown_D8h = reader.ReadUInt32(); - this.Unknown_DCh = reader.ReadUInt32(); - this.Unknown_E0h = reader.ReadUInt32(); - this.Unknown_E4h = reader.ReadUInt32(); + this.Unknown_DCh = reader.ReadSingle(); + this.Unknown_E0h = reader.ReadSingle(); + this.Unknown_E4h = reader.ReadSingle(); this.Unknown_E8h = reader.ReadUInt32(); this.Unknown_ECh = reader.ReadUInt32(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_C0h != 0) - { } - switch (Unknown_C4h) - { - default: - break; - } - switch (Unknown_C8h) - { - default: - break; - } - switch (Unknown_CCh) - { - default: - break; - } - if (Unknown_D0h != 0) - { } - switch (Unknown_D4h) - { - default: - break; - } - switch (Unknown_D8h) - { - default: - break; - } - switch (Unknown_DCh) - { - default: - break; - } - switch (Unknown_E0h) - { - default: - break; - } - switch (Unknown_E4h) - { - default: - break; - } - if (Unknown_E8h != 0) - { } - switch (Unknown_ECh) - { - default: - break; - } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_C0h != 0) + //{ }//no hit + //switch (Unknown_C4h) + //{ + // case 0: + // case 1.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_C8h) + //{ + // case 1.0f: + // case 0: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_CCh) + //{ + // case 0x7f800001: // NaN + // break; + // default: + // break;//no hit + //} + //if (Unknown_D0h != 0) + //{ }//no hit + //switch (Unknown_D4h) + //{ + // case 1: + // case 2: + // case 0: + // case 3: + // case 5: + // case 4: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_D8h) + //{ + // case 1: + // case 2: + // case 4: + // case 3: + // case 6: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_DCh) + //{ + // case 0: + // case 0.2f: + // case 0.1f: + // case 0.4f: + // case 1.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_E0h) + //{ + // case 0: + // case 0.1f: + // case 0.4f: + // case 1.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_E4h) + //{ + // case 0: + // case 0.5f: + // break; + // default: + // break;//no hit + //} + //if (Unknown_E8h != 0) + //{ }//no hit + //switch (Unknown_ECh) + //{ + // case 0x00010000: + // case 0x00000101: + // case 0: + // case 0x01000000: + // break; + // default: + // break;//no hit + //} } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4334,10 +5365,10 @@ namespace CodeWalker.GameFiles public ParticleKeyframeProp KeyframeProp4 { get; set; } public ParticleKeyframeProp KeyframeProp5 { get; set; } public ParticleKeyframeProp KeyframeProp6 { get; set; } - public MetaHash Unknown_420h { get; set; } - public MetaHash Unknown_424h { get; set; } - public MetaHash Unknown_428h { get; set; } - public MetaHash Unknown_42Ch { get; set; } + public float Unknown_420h { get; set; } // 1.0f, 3.0f + public float Unknown_424h { get; set; } // 1.0f + public uint Unknown_428h { get; set; } // 0, 1, 2 + public MetaHash Unknown_42Ch { get; set; } // 0x00000101, 0x00010101 public override void Read(ResourceDataReader reader, params object[] parameters) { @@ -4354,36 +5385,43 @@ namespace CodeWalker.GameFiles this.KeyframeProp4 = reader.ReadBlock(); this.KeyframeProp5 = reader.ReadBlock(); this.KeyframeProp6 = reader.ReadBlock(); - this.Unknown_420h = reader.ReadUInt32(); - this.Unknown_424h = reader.ReadUInt32(); + this.Unknown_420h = reader.ReadSingle(); + this.Unknown_424h = reader.ReadSingle(); this.Unknown_428h = reader.ReadUInt32(); this.Unknown_42Ch = reader.ReadUInt32(); - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - switch (Unknown_420h) - { - default: - break; - } - switch (Unknown_424h) - { - default: - break; - } - switch (Unknown_428h) - { - default: - break; - } - switch (Unknown_42Ch) - { - default: - break; - } + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //switch (Unknown_420h) + //{ + // case 3.0f: + // case 1.0f: + // break; + // default: + // break;//no hit + //} + //if (Unknown_424h != 1.0f) + //{ }//no hit + //switch (Unknown_428h) + //{ + // case 1: + // case 0: + // case 2: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_42Ch) + //{ + // case 0x00000101: + // case 0x00010101: + // break; + // default: + // break;//no hit + //} } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4431,8 +5469,8 @@ namespace CodeWalker.GameFiles public ulong Unknown_18h; // 0x0000000000000000 public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 - public float Unknown_30h { get; set; } = 100.0f; // 0x42C80000 // 100.0f - public MetaHash Unknown_34h { get; set; } + public float Unknown_30h { get; set; } = 100.0f; // 100.0f + public float Unknown_34h { get; set; } = 2.0f; // 2.0f public ulong Unknown_38h; // 0x0000000000000000 public override void Read(ResourceDataReader reader, params object[] parameters) @@ -4444,27 +5482,24 @@ namespace CodeWalker.GameFiles this.Unknown_18h = reader.ReadUInt64(); this.Unknown_20h = reader.ReadUInt64(); this.Unknown_28h = reader.ReadUInt64(); - this.Unknown_30h = reader.ReadUInt32(); - this.Unknown_34h = reader.ReadUInt32(); + this.Unknown_30h = reader.ReadSingle(); + this.Unknown_34h = reader.ReadSingle(); this.Unknown_38h = reader.ReadUInt64(); - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_30h != 100.0f) - { } - switch (Unknown_34h) - { - default: - break; - } - if (Unknown_38h != 0) - { } + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_30h != 100.0f) + //{ }//no hit + //if (Unknown_34h != 2.0f) + //{ }//no hit + //if (Unknown_38h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4492,11 +5527,11 @@ namespace CodeWalker.GameFiles public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 public uint Unknown_30h; // 0x00000000 - public MetaHash Unknown_34h { get; set; } - public MetaHash Unknown_38h { get; set; } - public MetaHash Unknown_3Ch { get; set; } - public MetaHash Unknown_40h { get; set; } - public MetaHash Unknown_44h { get; set; } + public uint Unknown_34h { get; set; } // 0, 1, 3, 0xffffffff + public uint Unknown_38h { get; set; } // 9000, 9001, 9003, 9007, 0xffffffff + public float Unknown_3Ch { get; set; } // 0, 0.05f, 0.15f, 0.2f, 0.75f + public float Unknown_40h { get; set; } // 0.5f, 1.0f, 1.5f, 1.6f, 1.75f, 2.0f + public float Unknown_44h { get; set; } // 0.01f, 0.03f, 0.08f, 0.5f public ulong Unknown_48h; // 0x0000000000000000 public override void Read(ResourceDataReader reader, params object[] parameters) @@ -4511,48 +5546,77 @@ namespace CodeWalker.GameFiles this.Unknown_30h = reader.ReadUInt32(); this.Unknown_34h = reader.ReadUInt32(); this.Unknown_38h = reader.ReadUInt32(); - this.Unknown_3Ch = reader.ReadUInt32(); - this.Unknown_40h = reader.ReadUInt32(); - this.Unknown_44h = reader.ReadUInt32(); + this.Unknown_3Ch = reader.ReadSingle(); + this.Unknown_40h = reader.ReadSingle(); + this.Unknown_44h = reader.ReadSingle(); this.Unknown_48h = reader.ReadUInt64(); - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_30h != 0) - { } - switch (Unknown_34h) - { - default: - break; - } - switch (Unknown_38h) - { - default: - break; - } - switch (Unknown_3Ch) - { - default: - break; - } - switch (Unknown_40h) - { - default: - break; - } - switch (Unknown_44h) - { - default: - break; - } - if (Unknown_48h != 0) - { } + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_30h != 0) + //{ }//no hit + //switch (Unknown_34h) + //{ + // case 0: + // case 0xffffffff: + // case 1: + // case 3: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_38h) + //{ + // case 9007: + // case 9001: + // case 0xffffffff: + // case 9000: + // case 9003: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_3Ch) + //{ + // case 0.75f: + // case 0: + // case 0.2f: + // case 0.15f: + // case 0.05f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_40h) + //{ + // case 1.75f: + // case 1.0f: + // case 1.5f: + // case 1.6f: + // case 0.5f: + // case 2.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_44h) + //{ + // case 0.08f: + // case 0.03f: + // case 0.5f: + // case 0.01f: + // break; + // default: + // break;//no hit + //} + //if (Unknown_48h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4584,12 +5648,12 @@ namespace CodeWalker.GameFiles public ulong Unknown_20h; // 0x0000000000000000 public ulong Unknown_28h; // 0x0000000000000000 public uint Unknown_30h; // 0x00000000 - public MetaHash Unknown_34h { get; set; } - public MetaHash Unknown_38h { get; set; } - public MetaHash Unknown_3Ch { get; set; } - public MetaHash Unknown_40h { get; set; } - public MetaHash Unknown_44h { get; set; } - public MetaHash Unknown_48h { get; set; } + public uint Unknown_34h { get; set; } = 2; // 2 + public float Unknown_38h { get; set; } = 0.75f; // 0.75f + public float Unknown_3Ch { get; set; } = 2.0f; // 2.0f + public float Unknown_40h { get; set; } = 0.025f; // 0.025f + public float Unknown_44h { get; set; } = 0.2f; // 0.2f + public float Unknown_48h { get; set; } = 0.25f; // 0.25f public uint Unknown_4Ch; // 0x00000000 public override void Read(ResourceDataReader reader, params object[] parameters) @@ -4603,55 +5667,67 @@ namespace CodeWalker.GameFiles this.Unknown_28h = reader.ReadUInt64(); this.Unknown_30h = reader.ReadUInt32(); this.Unknown_34h = reader.ReadUInt32(); - this.Unknown_38h = reader.ReadUInt32(); - this.Unknown_3Ch = reader.ReadUInt32(); - this.Unknown_40h = reader.ReadUInt32(); - this.Unknown_44h = reader.ReadUInt32(); - this.Unknown_48h = reader.ReadUInt32(); + this.Unknown_38h = reader.ReadSingle(); + this.Unknown_3Ch = reader.ReadSingle(); + this.Unknown_40h = reader.ReadSingle(); + this.Unknown_44h = reader.ReadSingle(); + this.Unknown_48h = reader.ReadSingle(); this.Unknown_4Ch = reader.ReadUInt32(); - if (Unknown_10h != 0) - { } - if (Unknown_18h != 0) - { } - if (Unknown_20h != 0) - { } - if (Unknown_28h != 0) - { } - if (Unknown_30h != 0) - { } - switch (Unknown_34h) - { - default: - break; - } - switch (Unknown_38h) - { - default: - break; - } - switch (Unknown_3Ch) - { - default: - break; - } - switch (Unknown_40h) - { - default: - break; - } - switch (Unknown_44h) - { - default: - break; - } - switch (Unknown_48h) - { - default: - break; - } - if (Unknown_4Ch != 0) - { } + //if (Unknown_10h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_30h != 0) + //{ }//no hit + //switch (Unknown_34h) + //{ + // case 2: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_38h) + //{ + // case 0.75f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_3Ch) + //{ + // case 2.0f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_40h) + //{ + // case 0.025f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_44h) + //{ + // case 0.2f: + // break; + // default: + // break;//no hit + //} + //switch (Unknown_48h) + //{ + // case 0.25f: + // break; + // default: + // break;//no hit + //} + //if (Unknown_4Ch != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4704,8 +5780,8 @@ namespace CodeWalker.GameFiles public ulong Unknown_8h; // 0x0000000000000000 public MetaHash Unknown_10h { get; set; } public ParticleShaderVarType Type { get; set; } - public byte Unknown_15h { get; set; } - public ushort Unknown_16h { get; set; } + public byte Unknown_15h; // 0x00 + public ushort Unknown_16h; // 0x0000 public override void Read(ResourceDataReader reader, params object[] parameters) { @@ -4718,25 +5794,41 @@ namespace CodeWalker.GameFiles this.Unknown_15h = reader.ReadByte(); this.Unknown_16h = reader.ReadUInt16(); - if (Unknown_4h != 1) - { } - if (Unknown_8h != 0) - { } - switch (Unknown_10h) + //if (Unknown_4h != 1) + //{ }//no hit + //if (Unknown_8h != 0) + //{ }//no hit + switch (Unknown_10h) //parameter name..? { - default: + case 0xea057402: // + case 0x0b3045be: // "softness" + case 0x91bf3028: // + case 0x4a8a0a28: // + case 0xf8338e85: // + case 0xbfd98c1d: // + case 0xc6fe034a: // + case 0xf03acb8c: // + case 0x81634888: // + case 0xb695f45c: // + case 0x403390ea: // + case 0x18ca6c12: // + case 0x1458f27b: // + case 0xa781a38b: // + case 0x77b842ed: // + case 0x7b483bc5: // + case 0x6a1dbec3: // + case 0xba5af058: // + case 0xdf7cc018: // + case 0xb36327d1: // + case 0x0df47048: // break; - } - switch (Unknown_15h) - { default: - break; - } - switch (Unknown_16h) - { - default: - break; + break;//no hit } + //if (Unknown_15h != 0) + //{ }//no hit + //if (Unknown_16h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4773,16 +5865,16 @@ namespace CodeWalker.GameFiles public override long BlockLength => 0x40; // structure data - public MetaHash Unknown_18h { get; set; } - public MetaHash Unknown_1Ch { get; set; } - public MetaHash Unknown_20h { get; set; } - public MetaHash Unknown_24h { get; set; } - public MetaHash Unknown_28h { get; set; } - public MetaHash Unknown_2Ch { get; set; } - public MetaHash Unknown_30h { get; set; } - public MetaHash Unknown_34h { get; set; } - public MetaHash Unknown_38h { get; set; } - public MetaHash Unknown_3Ch { get; set; } + public uint Unknown_18h { get; set; } // 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18, 19, 21, 22, 32 //shader var index..? + public uint Unknown_1Ch; // 0x00000000 + public uint Unknown_20h; // 0x00000000 + public uint Unknown_24h; // 0x00000000 + public uint Unknown_28h; // 0x00000000 + public uint Unknown_2Ch; // 0x00000000 + public float Unknown_30h { get; set; } // 0, 0.1f, 0.2f, ..., 1.0f, 2.0f, ... + public float Unknown_34h { get; set; } // 0, 0.5f, 0.996f, 1.0f + public float Unknown_38h { get; set; } // 0, 0.1f, 0.2f, ..., 1.0f, ... + public uint Unknown_3Ch; // 0x00000000 public override void Read(ResourceDataReader reader, params object[] parameters) { @@ -4795,61 +5887,81 @@ namespace CodeWalker.GameFiles this.Unknown_24h = reader.ReadUInt32(); this.Unknown_28h = reader.ReadUInt32(); this.Unknown_2Ch = reader.ReadUInt32(); - this.Unknown_30h = reader.ReadUInt32(); - this.Unknown_34h = reader.ReadUInt32(); - this.Unknown_38h = reader.ReadUInt32(); + this.Unknown_30h = reader.ReadSingle(); + this.Unknown_34h = reader.ReadSingle(); + this.Unknown_38h = reader.ReadSingle(); this.Unknown_3Ch = reader.ReadUInt32(); - switch (Unknown_18h) - { - default: - break; - } - switch (Unknown_1Ch) - { - default: - break; - } - switch (Unknown_20h) - { - default: - break; - } - switch (Unknown_24h) - { - default: - break; - } - switch (Unknown_28h) - { - default: - break; - } - switch (Unknown_2Ch) - { - default: - break; - } + //switch (Unknown_18h) //shader var index..? + //{ + // case 32: + // case 22: + // case 21: + // case 19: + // case 18: + // case 14: + // case 13: + // case 12: + // case 11: + // case 10: + // case 9: + // case 8: + // case 7: + // case 6: + // case 5: + // case 4: + // break; + // default: + // break;//no hit + //} + //if (Unknown_1Ch != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_24h != 0) + //{ }//no hit + //if (Unknown_28h != 0) + //{ }//no hit + //if (Unknown_2Ch != 0) + //{ }//no hit switch (Unknown_30h) { - default: + case 1.0f: + case 0.1f: + case 0.2f: + case 0.02f: + case 0.01f: + case 2.0f: + case 0.4f: + case 0: break; - } - switch (Unknown_34h) - { default: - break; + break;//and more.. } + //switch (Unknown_34h) + //{ + // case 0: + // case 1.0f: + // case 0.5f: + // case 0.996f: + // break; + // default: + // break;//no hit + //} switch (Unknown_38h) { - default: + case 0: + case 1.0f: + case 0.5f: + case 0.1f: + case 0.2f: + case 0.7f: break; - } - switch (Unknown_3Ch) - { default: - break; + break;//more } + //if (Unknown_3Ch != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4875,14 +5987,14 @@ namespace CodeWalker.GameFiles public override long BlockLength => 0x40; // structure data - public MetaHash Unknown_18h { get; set; } - public MetaHash Unknown_1Ch { get; set; } - public MetaHash Unknown_20h { get; set; } - public MetaHash Unknown_24h { get; set; } + public uint Unknown_18h { get; set; } // 3, 4, 6, 7 + public uint Unknown_1Ch; // 0x00000000 + public uint Unknown_20h; // 0x00000000 + public uint Unknown_24h; // 0x00000000 public ulong TexturePointer { get; set; } public ulong NamePointer { get; set; } public MetaHash NameHash { get; set; } - public MetaHash Unknown_3Ch { get; set; } + public uint Unknown_3Ch { get; set; } // 0, 1 // reference data public Texture Texture { get; set; } @@ -4907,36 +6019,41 @@ namespace CodeWalker.GameFiles this.Name = reader.ReadBlockAt(this.NamePointer); - switch (Unknown_18h) - { - default: - break; - } - switch (Unknown_1Ch) - { - default: - break; - } - switch (Unknown_20h) - { - default: - break; - } - switch (Unknown_24h) - { - default: - break; - } - switch (NameHash) - { - default: - break; - } - switch (Unknown_3Ch) - { - default: - break; - } + //switch (Unknown_18h) //shader var index..? + //{ + // case 7: + // case 6: + // case 4: + // case 3: + // break; + // default: + // break;//no hit + //} + //if (Unknown_1Ch != 0) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_24h != 0) + //{ }//no hit + //switch (NameHash) + //{ + // case 0: + // case 0xda1c24ad: // ptfx_gloop + // case 0xc4e50054: // ptfx_water_splashes_sheet + // break; + // default: + // break;//and more... + //} + //if (NameHash != JenkHash.GenHash(Name?.ToString() ?? "")) + //{ }//no hit + //switch (Unknown_3Ch) + //{ + // case 0: + // case 1: + // break; + // default: + // break;//no hit + //} } public override void Write(ResourceDataWriter writer, params object[] parameters) { @@ -4972,7 +6089,7 @@ namespace CodeWalker.GameFiles public override long BlockLength => 0x50; // structure data - public MetaHash Unknown_18h { get; set; } + public uint Unknown_18h { get; set; } // 9, 14, 15, 16, 17, 20, 23, 31 public uint Unknown_1Ch = 1; // 0x00000001 public ulong Unknown_20h; // 0x0000000000000000 public ResourceSimpleList64 Items { get; set; } @@ -4993,21 +6110,30 @@ namespace CodeWalker.GameFiles this.Unknown_40h = reader.ReadUInt64(); this.Unknown_48h = reader.ReadUInt64(); - switch (Unknown_18h) - { - default: - break; - } - if (Unknown_1Ch != 1) - { } - if (Unknown_20h != 0) - { } - if (Unknown_38h != 0) - { } - if (Unknown_40h != 0) - { } - if (Unknown_48h != 0) - { } + //switch (Unknown_18h) //shader var index..? + //{ + // case 31: + // case 23: + // case 20: + // case 17: + // case 16: + // case 15: + // case 14: + // case 9: + // break; + // default: + // break;//no hit + //} + //if (Unknown_1Ch != 1) + //{ }//no hit + //if (Unknown_20h != 0) + //{ }//no hit + //if (Unknown_38h != 0) + //{ }//no hit + //if (Unknown_40h != 0) + //{ }//no hit + //if (Unknown_48h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) @@ -5037,44 +6163,63 @@ namespace CodeWalker.GameFiles public override long BlockLength => 0x20; // structure data - public MetaHash Unknown_0h { get; set; } - public MetaHash Unknown_4h { get; set; } + public float Unknown_0h { get; set; } + public float Unknown_4h { get; set; } public ulong Unknown_8h; // 0x0000000000000000 - public MetaHash Unknown_10h { get; set; } + public float Unknown_10h { get; set; } public uint Unknown_14h; // 0x00000000 public ulong Unknown_18h; // 0x0000000000000000 public override void Read(ResourceDataReader reader, params object[] parameters) { // read structure data - this.Unknown_0h = reader.ReadUInt32(); - this.Unknown_4h = reader.ReadUInt32(); + this.Unknown_0h = reader.ReadSingle(); + this.Unknown_4h = reader.ReadSingle(); this.Unknown_8h = reader.ReadUInt64(); - this.Unknown_10h = reader.ReadUInt32(); + this.Unknown_10h = reader.ReadSingle(); this.Unknown_14h = reader.ReadUInt32(); this.Unknown_18h = reader.ReadUInt64(); switch (Unknown_0h) { - default: + case 0: + case 0.2f: + case 1.0f: + case 0.149759f: + case 0.63285f: break; + default: + break;//and more.. } switch (Unknown_4h) { - default: + case 0: + case 5.0f: + case 1.25f: + case 6.67739534f: + case 2.07000327f: break; + default: + break;//and more.. } - if (Unknown_8h != 0) - { } + //if (Unknown_8h != 0) + //{ }//no hit switch (Unknown_10h) { - default: + case 20.0f: + case 1.0f: + case 0.2f: + case 0.8f: + case 1.080267f: + case 0: break; + default: + break;//and more.. } - if (Unknown_14h != 0) - { } - if (Unknown_18h != 0) - { } + //if (Unknown_14h != 0) + //{ }//no hit + //if (Unknown_18h != 0) + //{ }//no hit } public override void Write(ResourceDataWriter writer, params object[] parameters) {