shithub: nanobsp

Download patch

ref: 4ca3d741525333c8c5fa8b023c0b2f9c04e7f8f6
parent: cdd1296e6dc80a6514c9b5626c8e96ed75b0e127
author: Andrew Apted <ajapted@gmail.com>
date: Mon Dec 11 08:33:39 EST 2023

force loading in-wad nodes when playing demos, or via `-nobsp` option.

--- a/README.md
+++ b/README.md
@@ -22,9 +22,10 @@
 renderer -- it is unable to create nice polygons for OpenGL renderers.
 This is something I *might* implement later on, but probably won't.
 
-The ability to load nodes from the wad file has been retained, but
-currently this only kicks in when demos are being played, since demos
-will usually desync if the nodes are even slightly different.
+The ability to load nodes from the wad file has been retained.  This
+can be forced using the new `-nobsp` option, plus it will automatically
+kick in when demos are being played, since demos will usually desync if
+the nodes are even slightly different.
 
 
 Engine changes
--- a/p_setup.c
+++ b/p_setup.c
@@ -900,15 +900,17 @@
     P_LoadSideDefs (lumpnum+ML_SIDEDEFS);
     P_LoadLineDefs (lumpnum+ML_LINEDEFS);
 
-    if (true)
+    // andrewj: force using the original nodes for demos, since they
+    //          *WILL* desync otherwise.
+    if (demoplayback || M_CheckParm("-nobsp") > 0)
     {
-        Nano_BuildBSP ();
-    }
-    else
-    {
         P_LoadSegs (lumpnum+ML_SEGS);
         P_LoadSubsectors (lumpnum+ML_SSECTORS);
         P_LoadNodes (lumpnum+ML_NODES);
+    }
+    else
+    {
+        Nano_BuildBSP ();
     }
 
     P_GroupLines ();
--