diff --git a/src/gamedata/g_mapinfo.cpp b/src/gamedata/g_mapinfo.cpp index 4389d28bf8..f37f63d06c 100644 --- a/src/gamedata/g_mapinfo.cpp +++ b/src/gamedata/g_mapinfo.cpp @@ -62,6 +62,8 @@ TArray AllEpisodes; extern TMap HexenMusic; +TArray ParsedLumps(8, true); + //========================================================================== // // @@ -2201,6 +2203,15 @@ void FMapInfoParser::ParseMapInfo (int lump, level_info_t &gamedefaults, level_i defaultinfo = gamedefaults; HexenHack = false; + if (ParsedLumps.Find(lump) != ParsedLumps.Size()) + { + sc.ScriptMessage("MAPINFO file is processed more that once\n"); + } + else + { + ParsedLumps.Push(lump); + } + while (sc.GetString ()) { if (sc.Compare("include")) @@ -2385,6 +2396,7 @@ static void ClearMapinfo() DeinitIntermissions(); primaryLevel->info = nullptr; primaryLevel->F1Pic = ""; + ParsedLumps.Clear(); } //==========================================================================