diff --git a/src/d_iwad.cpp b/src/d_iwad.cpp index dd673ebe8..af8047a3d 100644 --- a/src/d_iwad.cpp +++ b/src/d_iwad.cpp @@ -194,6 +194,12 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize, iwad->StartupType = FStartupInfo::StrifeStartup; else iwad->StartupType = FStartupInfo::DefaultStartup; } + else if (sc.Compare("StartupSong")) + { + sc.MustGetStringName("="); + sc.MustGetString(); + iwad->Song = sc.String; + } else { sc.ScriptError("Unknown keyword '%s'", sc.String); @@ -766,6 +772,7 @@ const FIWADInfo *FIWadManager::FindIWAD(TArray &wadfiles, const char *i DoomStartupInfo.FgColor = iwad_info->FgColor; } if (DoomStartupInfo.Type == 0) DoomStartupInfo.Type = iwad_info->StartupType; + if (DoomStartupInfo.Song.IsEmpty()) DoomStartupInfo.Song = iwad_info->Song; I_SetIWADInfo(); return iwad_info; } diff --git a/src/d_main.h b/src/d_main.h index 5addc5eb4..f48521f8c 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -101,6 +101,7 @@ struct FIWADInfo FString Required; // Requires another IWAD uint32_t FgColor = 0; // Foreground color for title banner uint32_t BkColor = 0xc0c0c0; // Background color for title banner + FString Song; EGameType gametype = GAME_Doom; // which game are we playing? int StartupType = FStartupInfo::DefaultStartup; // alternate startup type FString MapInfo; // Base mapinfo to load