diff --git a/Generators/GBX.NET.Generators/Utils/ClassIdParser.cs b/Generators/GBX.NET.Generators/Utils/ClassIdParser.cs index aa06feeeb..6d2454088 100644 --- a/Generators/GBX.NET.Generators/Utils/ClassIdParser.cs +++ b/Generators/GBX.NET.Generators/Utils/ClassIdParser.cs @@ -67,7 +67,14 @@ public static Dictionary Parse(TextReader reader) // combine engine and class like EECCC000 var classId = (uint)((currentEngineByte << 24) | (classPart << 12)); - result.Add(classId, currentClassName); + if (!result.TryGetValue(classId, out var curName) || string.IsNullOrEmpty(curName)) + { + result[classId] = currentClassName; + } + else + { + throw new Exception($"Duplicate class id {classId:X8} with names '{curName}' and '{currentClassName}'."); + } } else { diff --git a/Resources/ClassIdManual.txt b/Resources/ClassIdManual.txt index 4e0cdf676..233e1b255 100644 Binary files a/Resources/ClassIdManual.txt and b/Resources/ClassIdManual.txt differ