From fbf57293c177b80273763c22ee173549f543e578 Mon Sep 17 00:00:00 2001 From: dexy Date: Sun, 13 Jan 2019 22:18:57 +1100 Subject: [PATCH] Skewy wheels bug fix --- CodeWalker.Core/GameFiles/Resources/Frag.cs | 11 ++++++----- Rendering/Renderable.cs | 7 +++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CodeWalker.Core/GameFiles/Resources/Frag.cs b/CodeWalker.Core/GameFiles/Resources/Frag.cs index a81db3d..afab44f 100644 --- a/CodeWalker.Core/GameFiles/Resources/Frag.cs +++ b/CodeWalker.Core/GameFiles/Resources/Frag.cs @@ -2449,12 +2449,13 @@ namespace CodeWalker.GameFiles for (int i = 0; i < Children.data_items.Length; i++) { var child = Children.data_items[i]; + var gi = child.GroupIndex; child.OwnerFragPhysLod = this; child.OwnerFragPhysIndex = i; - if ((Groups?.data_items != null) && (i < Groups.data_items.Length)) + if ((Groups?.data_items != null) && (gi < Groups.data_items.Length)) { - var group = Groups.data_items[i]; + var group = Groups.data_items[gi]; var str = group.Name.ToString().ToLowerInvariant(); JenkIndex.Ensure(str); child.GroupNameHash = JenkHash.GenHash(str); @@ -3358,7 +3359,7 @@ namespace CodeWalker.GameFiles public uint Unknown_04h { get; set; } // 0x00000001 public float Unknown_08h { get; set; } public float Unknown_0Ch { get; set; } - public ushort BoneIndex { get; set; } + public ushort GroupIndex { get; set; } public ushort BoneTag { get; set; } public uint Unknown_14h { get; set; } // 0x00000000 public uint Unknown_18h { get; set; } // 0x00000000 @@ -3438,7 +3439,7 @@ namespace CodeWalker.GameFiles this.Unknown_04h = reader.ReadUInt32(); this.Unknown_08h = reader.ReadSingle(); this.Unknown_0Ch = reader.ReadSingle(); - this.BoneIndex = reader.ReadUInt16(); + this.GroupIndex = reader.ReadUInt16(); this.BoneTag = reader.ReadUInt16(); this.Unknown_14h = reader.ReadUInt32(); this.Unknown_18h = reader.ReadUInt32(); @@ -3534,7 +3535,7 @@ namespace CodeWalker.GameFiles writer.Write(this.Unknown_04h); writer.Write(this.Unknown_08h); writer.Write(this.Unknown_0Ch); - writer.Write(this.BoneIndex); + writer.Write(this.GroupIndex); writer.Write(this.BoneTag); writer.Write(this.Unknown_14h); writer.Write(this.Unknown_18h); diff --git a/Rendering/Renderable.cs b/Rendering/Renderable.cs index 2a56c8b..978dc0f 100644 --- a/Rendering/Renderable.cs +++ b/Rendering/Renderable.cs @@ -202,6 +202,13 @@ namespace CodeWalker.Rendering case 5859: //wheel_rm3 case 26398: //wheel_rr fragtransforms[fragtransformid].M11 = -1; + fragtransforms[fragtransformid].M12 = 0; + fragtransforms[fragtransformid].M13 = 0; + fragtransforms[fragtransformid].M21 = 0; + fragtransforms[fragtransformid].M22 = 1; + fragtransforms[fragtransformid].M23 = 0; + fragtransforms[fragtransformid].M31 = 0; + fragtransforms[fragtransformid].M32 = 0; fragtransforms[fragtransformid].M33 = -1; break; default: