diff --git a/source/games/duke/src/gameloop.cpp b/source/games/duke/src/gameloop.cpp index 1b845ff49..b4bd5ee99 100644 --- a/source/games/duke/src/gameloop.cpp +++ b/source/games/duke/src/gameloop.cpp @@ -165,8 +165,6 @@ void loadscreen_r(MapRecord* rec, CompletionFunc func); void GameInterface::NextLevel(MapRecord* map, int skill) { - if (skill != -1) ud.player_skill = skill + 1; - #if 0 // Loading is so fast on modern system so that this only serves as an irritant, not an asset. auto loadscreen = isRR() ? loadscreen_r : loadscreen_d; @@ -191,6 +189,7 @@ void GameInterface::NewGame(MapRecord* map, int skill) ps[0].last_extra = max_player_health; resetweapons(0); resetinventory(0); + if (skill != -1) skill = skill + 1; startnewgame(map, skill); } diff --git a/source/games/duke/src/premap.cpp b/source/games/duke/src/premap.cpp index 41f0c9d4d..4503b20a6 100644 --- a/source/games/duke/src/premap.cpp +++ b/source/games/duke/src/premap.cpp @@ -765,7 +765,7 @@ void donewgame(MapRecord* map, int sk) show_shareware = 26 * 34; //ud.nextLevel = map; - ud.player_skill = sk != -1 ? sk + 1 : sk; + ud.player_skill = sk; ud.secretlevel = 0; ud.from_bonus = 0; @@ -990,6 +990,7 @@ void enterlevel(MapRecord *mi, int gamemode) void startnewgame(MapRecord* map, int skill) { + ud.player_skill = skill; ud.m_respawn_monsters = (skill == 4); ud.m_monsters_off = ud.monsters_off = 0; ud.m_respawn_items = 0;