From 91ea22e85ab50a04ad3470c19c1b7ad60de778b8 Mon Sep 17 00:00:00 2001 From: Player701 Date: Tue, 27 Nov 2018 15:22:58 +0300 Subject: [PATCH 1/2] - Fixed textures on the two switches that rise from the floor in the eastern area of TNT MAP31 --- wadsrc/static/zscript/level_compatibility.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wadsrc/static/zscript/level_compatibility.txt b/wadsrc/static/zscript/level_compatibility.txt index 90ecf8c96..c5915427a 100644 --- a/wadsrc/static/zscript/level_compatibility.txt +++ b/wadsrc/static/zscript/level_compatibility.txt @@ -179,6 +179,11 @@ class LevelCompatibility play { // The famous missing yellow key... SetThingFlags(470, 2016); + // Fix textures on the two switches that rise from the floor in the eastern area + for (int i = 0; i < 8; i++) + { + SetLineFlags(1676 + i, 0, Line.ML_DONTPEGBOTTOM); + } break; } From 9c398cd34327e8e32fe7ce7753550ddf1bdf10d3 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 28 Nov 2018 18:41:58 +0100 Subject: [PATCH 2/2] - fixed: P_Recalculate3DFloors may not be called before the vertex buffer has been set up. Since this function creates dynamic copies for 3D floors that need to be split it requires the vertex buffer index to be set up. In older versions this did not produce errors because there was a fallback render path that was less efficient. Now with that fallback removed this resulted in temporary 3D floors being created without valid vertex data. --- src/p_3dfloors.cpp | 5 ----- src/p_setup.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/p_3dfloors.cpp b/src/p_3dfloors.cpp index 4d9984eaa..732866c5b 100644 --- a/src/p_3dfloors.cpp +++ b/src/p_3dfloors.cpp @@ -891,11 +891,6 @@ void P_Spawn3DFloors (void) line.special=0; line.args[0] = line.args[1] = line.args[2] = line.args[3] = line.args[4] = 0; } - // kg3D - do it in software - for (auto &sec : level.sectors) - { - P_Recalculate3DFloors(&sec); - } } diff --git a/src/p_setup.cpp b/src/p_setup.cpp index 8d502b42b..9b65e69e3 100644 --- a/src/p_setup.cpp +++ b/src/p_setup.cpp @@ -4116,6 +4116,12 @@ void P_SetupLevel(const char *lumpname, int position, bool newGame) // This must be done BEFORE the PolyObj Spawn!!! InitRenderInfo(); // create hardware independent renderer resources for the level. screen->mVertexData->CreateVBO(); + + for (auto &sec : level.sectors) + { + P_Recalculate3DFloors(&sec); + } + SWRenderer->SetColormap(); //The SW renderer needs to do some special setup for the level's default colormap. InitPortalGroups(); P_InitHealthGroups();