From 18d1084f7cdb40096e845bc36ab01cb1e5c919c4 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 28 Nov 2021 18:37:57 +0100 Subject: [PATCH] - fixed assignment of map hacks with multiple maps assigned. The parser only ever added the last MD4 but not the others. --- source/core/defparser.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/source/core/defparser.cpp b/source/core/defparser.cpp index f2c1ed2cb..45202775f 100644 --- a/source/core/defparser.cpp +++ b/source/core/defparser.cpp @@ -828,6 +828,7 @@ void parseMapinfo(FScanner& sc, FScriptPosition& pos) { usermaphack_t mhk; FScanner::SavedPos blockend; + TArray md4s; if (sc.StartBraces(&blockend)) return; while (!sc.FoundEndBrace(blockend)) @@ -839,14 +840,18 @@ void parseMapinfo(FScanner& sc, FScriptPosition& pos) else if (sc.Compare("mapmd4")) { sc.GetString(); - for (int i = 0; i < 16; i++) - { - char smallbuf[3] = { sc.String[2 * i], sc.String[2 * i + 1], 0 }; - mhk.md4[i] = (uint8_t)strtol(smallbuf, nullptr, 16); - } + md4s.Push(sc.String); } } - AddUserMapHack(mhk); + for (auto& md4 : md4s) + { + for (int i = 0; i < 16; i++) + { + char smallbuf[3] = { md4[2 * i], md4[2 * i + 1], 0 }; + mhk.md4[i] = (uint8_t)strtol(smallbuf, nullptr, 16); + } + AddUserMapHack(mhk); + } } //===========================================================================