diff --git a/src/d_main.cpp b/src/d_main.cpp index f677f88b32..5d36459db4 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -1998,6 +1998,7 @@ static void D_DoomInit() { rngseed = staticrngseed = atoi(v); use_staticrng = true; + Printf("D_DoomInit: Static RNGseed %d set.\n", rngseed); } else rngseed = I_MakeRNGSeed(); diff --git a/src/g_level.cpp b/src/g_level.cpp index c721be4e1e..7b37ad471f 100644 --- a/src/g_level.cpp +++ b/src/g_level.cpp @@ -408,13 +408,11 @@ void G_InitNew (const char *mapname, bool bTitleLevel) if (!savegamerestore) { - if (use_staticrng) + if (!netgame && !demorecording && !demoplayback) { - rngseed = staticrngseed; - } - else if (!netgame) - { // [RH] Change the random seed for each new single player game - rngseed = rngseed + 1; + // [RH] Change the random seed for each new single player game + // [ED850] The demo already sets the RNG. + rngseed = use_staticrng ? staticrngseed : (rngseed + 1); } FRandom::StaticClearRandom (); P_ClearACSVars(true);