summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Swanson2015-05-12 00:32:49 -0700
committerMike Swanson2015-05-12 00:38:15 -0700
commit81c69106b287db38fe93a2855a66baef9f7ca9d7 (patch)
tree79130294def3eafa902b70cb9f4100fd92f0ebac
parentb3678129fd7bed6c3287ab682819b075e8bf495a (diff)
downloadchocolate-doom-81c69106b287db38fe93a2855a66baef9f7ca9d7.tar.gz
chocolate-doom-81c69106b287db38fe93a2855a66baef9f7ca9d7.tar.bz2
chocolate-doom-81c69106b287db38fe93a2855a66baef9f7ca9d7.zip
doom: the sky changes in final2 map11->12 and map20->21 transitions.
The id Anthology version of doom2.exe with Final Doom fixed the "Sky never changes in Doom II" bug. The original Doom source release included the repaired code, but it was re-bugged in an early Chocolate Doom version to emulate the behavior of the better-known versions of vanilla. Thanks to @fabiangreffrath for demonstrating how he (more-generically) fixed the bug in Crispy Doom. Closes #533
-rw-r--r--src/doom/g_game.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/doom/g_game.c b/src/doom/g_game.c
index 64f5b274..bc582a52 100644
--- a/src/doom/g_game.c
+++ b/src/doom/g_game.c
@@ -612,6 +612,30 @@ void G_DoLoadLevel (void)
skyflatnum = R_FlatNumForName(DEH_String(SKYFLATNAME));
+ // The "Sky never changes in Doom II" bug was fixed in
+ // the id Anthology version of doom2.exe for Final Doom.
+ if ((gamemode == commercial) && (gameversion == exe_final2))
+ {
+ char *skytexturename;
+
+ if (gamemap < 12)
+ {
+ skytexturename = "SKY1";
+ }
+ else if (gamemap < 21)
+ {
+ skytexturename = "SKY2";
+ }
+ else
+ {
+ skytexturename = "SKY3";
+ }
+
+ skytexturename = DEH_String(skytexturename);
+
+ skytexture = R_TextureNumForName(skytexturename);
+ }
+
levelstarttic = gametic; // for time calculation
if (wipegamestate == GS_LEVEL)