ref: 567224136999a7b5db85f7926b01bf27dabf7089
parent: 51ee9a0a390a6b25caf953b3fb5c19aa5791f960
author: Andrew Apted <ajapted@gmail.com>
date: Sat Dec 9 15:13:21 EST 2023
added some debugging code (but commented out).
--- a/nano_bsp.c
+++ b/nano_bsp.c
@@ -76,6 +76,56 @@
return node;
}
+
+/* DEBUG:
+void DumpNode (node_t * N, int lev)
+{+ char spaces[256];
+
+ if (lev > 100) lev = 100;
+
+ int i;
+ for (i = 0 ; i < lev*2 ; i++)
+ spaces[i] = ' ';
+
+ spaces[lev*2] = 0;
+
+ printf ("%snode %p\n", spaces, N);+
+ printf ("%sbbox (%d %d) .. (%d %d)\n", spaces,+ N->bbox[BOXLEFT] >> 16, N->bbox[BOXBOTTOM] >> 16,
+ N->bbox[BOXRIGHT] >> 16, N->bbox[BOXTOP] >> 16);
+
+ if (N->sub == NULL)
+ {+ printf ("%sright\n", spaces);+ printf ("%s{\n", spaces);+ DumpNode (N->right, lev + 1);
+ printf ("%s}\n", spaces);+
+ printf ("%sleft\n", spaces);+ printf ("%s{\n", spaces);+ DumpNode (N->left, lev + 1);
+ printf ("%s}\n", spaces);+ }
+ else
+ {+ subsector_t * sub = N->sub;
+
+ printf ("%ssector #%d\n", spaces, (int)(sub->sector - sectors));+
+ seg_t * S;
+ for (S = sub->segs ; S != NULL ; S = S->next)
+ {+ printf ("%s line #%d, side %d : (%d %d) --> (%d %d)\n", spaces,+ (int) (S->linedef - lines), S->side,
+ S->v1->x >> 16, S->v1->y >> 16,
+ S->v2->x >> 16, S->v2->y >> 16);
+ }
+ }
+}
+*/
+
//----------------------------------------------------------------------------
void BSP_CalcOffset (seg_t * seg)
@@ -90,7 +140,7 @@
void BSP_BoundingBox (seg_t * soup, fixed_t * bbox)
{- // Note: not using M_AddToBox() here, it is broken!
+ // Note: not using M_AddToBox() here, because it is broken!
bbox[BOXLEFT ] = INT_MAX; bbox[BOXRIGHT ] = INT_MIN;
bbox[BOXBOTTOM] = INT_MAX; bbox[BOXTOP ] = INT_MIN;
@@ -296,7 +346,9 @@
if (S == part)
continue;
- switch (BSP_SegOnSide (part, S))
+ int side = BSP_SegOnSide (part, S);
+
+ switch (side)
{case 0: eval->split += 1; break;
case -1: eval->left += 1; break;
@@ -623,4 +675,8 @@
seg_t * list = BSP_CreateSegs ();
root_node = BSP_SubdivideSegs (list);
+
+/* DEBUG:
+ DumpNode (root_node, 0);
+*/
}
--
⑨