coelckers / prboom-plus

This is a cleaned up copy of the PrBoom+ SVN repository as a courtesy for those interested in forking that port
289 stars 115 forks source link

Problem with level progression after using -warp as a command line parameter #21

Closed bjh13 closed 5 years ago

bjh13 commented 5 years ago

When using -warp 2 1 in the command line to start on episode 2 with the normal doom.wad iwad, after completing the level it took me to E1M2 instead of E2M2. See attached save, which is right at the exit. This result is present in PrBoom-Plus 2.5.1.7um but not the last original release, 2.5.1.5.test, even when using the same savefile. prboom-plus-savegame0.zip

fabiangreffrath commented 5 years ago

Does this also happen if you use IDCLEV21?

fabiangreffrath commented 5 years ago

What happens if you use "-warp 3 1" and finish the first map? Does it lead you to E2M2 or E1M2?

fabiangreffrath commented 5 years ago

You don't even need to use the "-warp" parameter of the IDCLEV cheat, this also happens if you start a regular game from the menu with episode 2 or higher.

The reason is that the wminfo.nextep value is not updated for non-UMAPINFO level progressions. This patch fixes this issue:

--- a/prboom2/src/g_game.c
+++ b/prboom2/src/g_game.c
@@ -1608,7 +1608,7 @@ void G_DoCompleted (void)
   }

   wminfo.didsecret = players[consoleplayer].didsecret;
-  wminfo.epsd = gameepisode -1;
+  wminfo.nextep = wminfo.epsd = gameepisode -1;
   wminfo.last = gamemap -1;

   // wminfo.next is 0 biased, unlike gamemap
fabiangreffrath commented 5 years ago

@coelckers What is going to happen here? This issue is quite severe...