diff --git a/src/d_iwad.cpp b/src/d_iwad.cpp index 589b2fbb4..54fba56d7 100644 --- a/src/d_iwad.cpp +++ b/src/d_iwad.cpp @@ -584,6 +584,8 @@ FString FIWadManager::IWADPathFileSearch(const FString &file) return ""; } +CVAR(String, extra_args, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG); + int FIWadManager::IdentifyVersion (std::vector&wadfiles, const char *iwad, const char *zdoom_wad, const char *optional_wad) { const char *iwadparm = Args->CheckValue ("-iwad"); @@ -791,13 +793,15 @@ int FIWadManager::IdentifyVersion (std::vector&wadfiles, const char if (autoloadbrightmaps) flags |= 4; if (autoloadwidescreen) flags |= 8; - FString extraArgs; + FString extraArgs = *extra_args; pick = I_PickIWad(&wads[0], (int)wads.Size(), queryiwad, pick, flags, extraArgs); if (pick >= 0) { extraArgs.StripLeftRight(); + extra_args = extraArgs.GetChars(); + if(extraArgs.Len() > 0) { Args->AppendArgsString(extraArgs); diff --git a/src/launcher/launcherwindow.cpp b/src/launcher/launcherwindow.cpp index 860d1a109..11f1079d4 100644 --- a/src/launcher/launcherwindow.cpp +++ b/src/launcher/launcherwindow.cpp @@ -19,6 +19,7 @@ int LauncherWindow::ExecModal(WadStuff* wads, int numwads, int defaultiwad, int* auto launcher = std::make_unique(wads, numwads, defaultiwad, autoloadflags); launcher->SetFrameGeometry((screenSize.width - windowWidth) * 0.5, (screenSize.height - windowHeight) * 0.5, windowWidth, windowHeight); + if(extraArgs) launcher->PlayGame->SetExtraArgs(extraArgs->GetChars()); launcher->Show(); DisplayWindow::RunLoop(); diff --git a/src/launcher/playgamepage.cpp b/src/launcher/playgamepage.cpp index 46bd16a92..d561a672b 100644 --- a/src/launcher/playgamepage.cpp +++ b/src/launcher/playgamepage.cpp @@ -45,6 +45,11 @@ std::string PlayGamePage::GetExtraArgs() return ParametersEdit->GetText(); } +void PlayGamePage::SetExtraArgs(const std::string& args) +{ + ParametersEdit->SetText(args); +} + int PlayGamePage::GetSelectedGame() { return GamesList->GetSelectedItem(); diff --git a/src/launcher/playgamepage.h b/src/launcher/playgamepage.h index af0e95bc3..d54ba2ca1 100644 --- a/src/launcher/playgamepage.h +++ b/src/launcher/playgamepage.h @@ -14,6 +14,7 @@ public: PlayGamePage(LauncherWindow* launcher, WadStuff* wads, int numwads, int defaultiwad); void UpdateLanguage(); + void SetExtraArgs(const std::string& args); std::string GetExtraArgs(); int GetSelectedGame();