From fd2aae74834f6f5b72f6d9481e013a5dd9dc707e Mon Sep 17 00:00:00 2001 From: MaxED Date: Sun, 10 Apr 2016 21:16:42 +0000 Subject: [PATCH] Re-fixed: fixed a crash when determining sprite angles when there was more than one sprite for the same frame and angle. --- Source/Core/Config/ThingTypeInfo.cs | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/Source/Core/Config/ThingTypeInfo.cs b/Source/Core/Config/ThingTypeInfo.cs index b630198b..739f4c8c 100644 --- a/Source/Core/Config/ThingTypeInfo.cs +++ b/Source/Core/Config/ThingTypeInfo.cs @@ -580,12 +580,17 @@ namespace CodeImp.DoomBuilder.Config // Even more sanity checks if(!string.IsNullOrEmpty(frames[targetangle - 1])) - General.ErrorLogger.Add(ErrorType.Warning, "Warning in actor \"" + title + "\":" + index + ". Sprite \"" + sourcename + "\", frame " + targetframe + ", angle " + targetangle + " is double-defined"); + { + General.ErrorLogger.Add(ErrorType.Warning, "Warning in actor \"" + title + "\":" + index + + ". Sprite \"" + sourcename + "\", frame " + targetframe + ", angle " + targetangle + + " is double-defined in sprites \"" + frames[targetangle - 1] + "\" and \"" + s + "\""); + } else + { + // Add to collection + frames[targetangle - 1] = s; processedcount++; - - // Add to collection - frames[targetangle - 1] = s; + } } // Check second frame block? @@ -619,13 +624,18 @@ namespace CodeImp.DoomBuilder.Config // Even more sanity checks if(!string.IsNullOrEmpty(frames[targetangle - 1])) - General.ErrorLogger.Add(ErrorType.Warning, "Warning in actor \"" + title + "\":" + index + ". Sprite \"" + sourcename + "\", frame " + targetframe + ", angle " + targetangle + " is double-defined"); + { + General.ErrorLogger.Add(ErrorType.Warning, "Warning in actor \"" + title + "\":" + index + + ". Sprite \"" + sourcename + "\", frame " + targetframe + ", angle " + targetangle + + " is double-defined in sprites \"" + frames[targetangle - 1] + "\" and \"" + s + "\""); + } else + { + // Add to collections + frames[targetangle - 1] = s; + mirror[targetangle - 1] = true; processedcount++; - - // Add to collections - frames[targetangle - 1] = s; - mirror[targetangle - 1] = true; + } } // Gathered all sprites?