ref: 51ee9a0a390a6b25caf953b3fb5c19aa5791f960
parent: 753a8b5c4d51211c5e0ba4c1f0c108eb75e0bb01
author: Andrew Apted <ajapted@gmail.com>
date: Sat Dec 9 15:03:11 EST 2023
fixed BSP_BoundingBox() to not use the *broken* M_AddToBox().
--- a/nano_bsp.c
+++ b/nano_bsp.c
@@ -90,13 +90,25 @@
void BSP_BoundingBox (seg_t * soup, fixed_t * bbox)
{- M_ClearBox (bbox);
+ // Note: not using M_AddToBox() here, it is broken!
+ bbox[BOXLEFT ] = INT_MAX; bbox[BOXRIGHT ] = INT_MIN;
+ bbox[BOXBOTTOM] = INT_MAX; bbox[BOXTOP ] = INT_MIN;
+
seg_t * S;
for (S = soup ; S != NULL ; S = S->next)
{- M_AddToBox (bbox, S->v1->x, S->v1->y);
- M_AddToBox (bbox, S->v2->x, S->v2->y);
+ bbox[BOXLEFT ] = MIN (bbox[BOXLEFT ], S->v1->x);
+ bbox[BOXLEFT ] = MIN (bbox[BOXLEFT ], S->v2->x);
+
+ bbox[BOXBOTTOM] = MIN (bbox[BOXBOTTOM], S->v1->y);
+ bbox[BOXBOTTOM] = MIN (bbox[BOXBOTTOM], S->v2->y);
+
+ bbox[BOXRIGHT ] = MAX (bbox[BOXRIGHT ], S->v1->x);
+ bbox[BOXRIGHT ] = MAX (bbox[BOXRIGHT ], S->v2->x);
+
+ bbox[BOXTOP ] = MAX (bbox[BOXTOP ], S->v1->y);
+ bbox[BOXTOP ] = MAX (bbox[BOXTOP ], S->v2->y);
}
}
--
⑨