From 260ffbe57b77c42835a2c44a018eafe8fe451eea Mon Sep 17 00:00:00 2001 From: ZZYZX <zzyzx@virtual> Date: Sun, 27 May 2018 23:25:17 +0300 Subject: [PATCH] Fixed skin remapping method --- Source/Core/GZBuilder/md3/ModelReader.cs | 16 ++++++++++++---- Source/Core/Properties/AssemblyInfo.cs | 4 ++-- .../BuilderModes/Properties/AssemblyInfo.cs | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Source/Core/GZBuilder/md3/ModelReader.cs b/Source/Core/GZBuilder/md3/ModelReader.cs index a3a18bef5..205ab66e6 100755 --- a/Source/Core/GZBuilder/md3/ModelReader.cs +++ b/Source/Core/GZBuilder/md3/ModelReader.cs @@ -396,15 +396,23 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3 vertices[i].nz = -nsum.z / total; } + List<int> exGroups = new List<int>(); Dictionary<int, int> textureGroupRemap = new Dictionary<int, int>(); - int topGrp = 0; for (int i = 0; i < polys.Length; i++) { - if (textureGroupRemap.ContainsKey(polys[i].TexNum)) + if (exGroups.Contains(polys[i].TexNum)) continue; - textureGroupRemap[polys[i].TexNum] = topGrp++; + if (exGroups.Count == 0 || + polys[i].TexNum <= exGroups[0]) + exGroups.Insert(0, polys[i].TexNum); + else if (exGroups.Count == 0 || + polys[i].TexNum >= exGroups[exGroups.Count - 1]) + exGroups.Add(polys[i].TexNum); } + for (int i = 0; i < exGroups.Count; i++) + textureGroupRemap[exGroups[i]] = i; + if (skins == null) { List<WorldVertex> out_verts = new List<WorldVertex>(); @@ -427,7 +435,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3 } else { - for (int k = 0; k < topGrp; k++) + for (int k = 0; k < exGroups.Count; k++) { List<WorldVertex> out_verts = new List<WorldVertex>(); List<int> out_polys = new List<int>(); diff --git a/Source/Core/Properties/AssemblyInfo.cs b/Source/Core/Properties/AssemblyInfo.cs index fe650852f..02e38eabc 100755 --- a/Source/Core/Properties/AssemblyInfo.cs +++ b/Source/Core/Properties/AssemblyInfo.cs @@ -30,6 +30,6 @@ using CodeImp.DoomBuilder; // Build Number // Revision // -[assembly: AssemblyVersion("2.3.0.3022")] +[assembly: AssemblyVersion("2.3.0.3023")] [assembly: NeutralResourcesLanguageAttribute("en")] -[assembly: AssemblyHash("634ba54")] +[assembly: AssemblyHash("85f00ab")] diff --git a/Source/Plugins/BuilderModes/Properties/AssemblyInfo.cs b/Source/Plugins/BuilderModes/Properties/AssemblyInfo.cs index aa6799efa..4e0992178 100755 --- a/Source/Plugins/BuilderModes/Properties/AssemblyInfo.cs +++ b/Source/Plugins/BuilderModes/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Resources; // Build Number // Revision // -[assembly: AssemblyVersion("2.3.0.3022")] +[assembly: AssemblyVersion("2.3.0.3023")] [assembly: NeutralResourcesLanguageAttribute("en")] -- GitLab