From 133fbf139045e288db6ee00db027658540188d12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= Date: Mon, 15 May 2023 10:38:12 -0300 Subject: [PATCH] Disallow starting a new game during a netgame --- src/menu/doommenu.cpp | 47 +++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/src/menu/doommenu.cpp b/src/menu/doommenu.cpp index c8fb9cd3a..c9f54e581 100644 --- a/src/menu/doommenu.cpp +++ b/src/menu/doommenu.cpp @@ -91,33 +91,40 @@ void StartGameDirect(bool hasPlayerClass, bool randomPlayerClass, PClassActor * // shouldn't work outside of a menu if (DMenu::InMenu) { - NewGameStartupInfo.hasPlayerClass = hasPlayerClass; - - if(hasPlayerClass) + if(!netgame) { - if(randomPlayerClass) + NewGameStartupInfo.hasPlayerClass = hasPlayerClass; + + if(hasPlayerClass) { - NewGameStartupInfo.PlayerClass = "Random"; + if(randomPlayerClass) + { + NewGameStartupInfo.PlayerClass = "Random"; + } + else if(!playerClass) + { + NullParam("playerClass"); + } + else + { + NewGameStartupInfo.PlayerClass = playerClass->GetDisplayName(); + } } - else if(!playerClass) + + NewGameStartupInfo.Episode = Episode; + NewGameStartupInfo.Skill = Skill; + + G_DeferedInitNew (&NewGameStartupInfo); + + if (gamestate == GS_FULLCONSOLE) { - NullParam("playerClass"); - } - else - { - NewGameStartupInfo.PlayerClass = playerClass->GetDisplayName(); + gamestate = GS_HIDECONSOLE; + gameaction = ga_newgame; } } - - NewGameStartupInfo.Episode = Episode; - NewGameStartupInfo.Skill = Skill; - - G_DeferedInitNew (&NewGameStartupInfo); - - if (gamestate == GS_FULLCONSOLE) + else { - gamestate = GS_HIDECONSOLE; - gameaction = ga_newgame; + DPrintf(DMSG_WARNING, TEXTCOLOR_RED "Cannot start a new game during a netgame\n"); } M_ClearMenus ();