diff --git a/source/common/engine/startupinfo.h b/source/common/engine/startupinfo.h index ec4ee2b30..d24e07d68 100644 --- a/source/common/engine/startupinfo.h +++ b/source/common/engine/startupinfo.h @@ -10,6 +10,7 @@ struct FStartupInfo uint32_t BkColor; // Background color for title banner FString Song; FString con; + FString def; int Type; int LoadLights = -1; int LoadBrightmaps = -1; diff --git a/source/core/gamecontrol.cpp b/source/core/gamecontrol.cpp index 3b93b0bad..75b4b577e 100644 --- a/source/core/gamecontrol.cpp +++ b/source/core/gamecontrol.cpp @@ -1357,6 +1357,11 @@ void LoadDefinitions() if (!loaddefinitionsfile(defsfile, true, false)) loaded = defsfile; } } + + if (GameStartupInfo.def.IsNotEmpty()) + { + loaddefinitionsfile(GameStartupInfo.def, false); // Stuff from gameinfo. + } if (loaded) { diff --git a/source/core/initfs.cpp b/source/core/initfs.cpp index f511378ca..4a59514c0 100644 --- a/source/core/initfs.cpp +++ b/source/core/initfs.cpp @@ -127,6 +127,11 @@ static TArray ParseGameInfo(TArray& pwads, const char* fn, con sc.MustGetString(); GameStartupInfo.con = sc.String;; } + else if (!nextKey.CompareNoCase("DEF")) + { + sc.MustGetString(); + GameStartupInfo.def = sc.String;; + } else { // Silently ignore unknown properties