- add Group feature to handle Autoload-groups

This commit is contained in:
vanhofen 2015-01-22 09:38:35 +01:00 committed by Randy Heit
parent b47cb9027a
commit 5973568bd2
3 changed files with 19 additions and 4 deletions

View file

@ -137,6 +137,12 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize)
sc.MustGetString(); sc.MustGetString();
iwad->Autoname = sc.String; iwad->Autoname = sc.String;
} }
else if (sc.Compare("Group"))
{
sc.MustGetStringName("=");
sc.MustGetString();
iwad->Group = sc.String;
}
else if (sc.Compare("Config")) else if (sc.Compare("Config"))
{ {
sc.MustGetStringName("="); sc.MustGetStringName("=");

View file

@ -1989,7 +1989,7 @@ static void D_DoomInit()
// //
//========================================================================== //==========================================================================
static void AddAutoloadFiles(const char *gamesection) static void AddAutoloadFiles(const char *group, const char *autoname)
{ {
if (!(gameinfo.flags & GI_SHAREWARE) && !Args->CheckParm("-noautoload")) if (!(gameinfo.flags & GI_SHAREWARE) && !Args->CheckParm("-noautoload"))
{ {
@ -2026,10 +2026,18 @@ static void AddAutoloadFiles(const char *gamesection)
file += ".Autoload"; file += ".Autoload";
D_AddConfigWads (allwads, file); D_AddConfigWads (allwads, file);
// Add group-specific wads
if (group != NULL)
{
file = group;
file += ".Autoload";
D_AddConfigWads(allwads, file);
}
// Add IWAD-specific wads // Add IWAD-specific wads
if (gamesection != NULL) if (autoname != NULL)
{ {
file = gamesection; file = autoname;
file += ".Autoload"; file += ".Autoload";
D_AddConfigWads(allwads, file); D_AddConfigWads(allwads, file);
} }
@ -2262,7 +2270,7 @@ void D_DoomMain (void)
FBaseCVar::DisableCallbacks(); FBaseCVar::DisableCallbacks();
GameConfig->DoGameSetup (gameinfo.ConfigName); GameConfig->DoGameSetup (gameinfo.ConfigName);
AddAutoloadFiles(iwad_info->Autoname); AddAutoloadFiles(iwad_info->Group, iwad_info->Autoname);
// Run automatically executed files // Run automatically executed files
execFiles = new DArgs; execFiles = new DArgs;

View file

@ -75,6 +75,7 @@ struct FIWADInfo
{ {
FString Name; // Title banner text for this IWAD FString Name; // Title banner text for this IWAD
FString Autoname; // Name of autoload ini section for this IWAD FString Autoname; // Name of autoload ini section for this IWAD
FString Group; // Groupname for this IWAD
FString Configname; // Name of config section for this IWAD FString Configname; // Name of config section for this IWAD
FString Required; // Requires another IWAD FString Required; // Requires another IWAD
DWORD FgColor; // Foreground color for title banner DWORD FgColor; // Foreground color for title banner