-// Shadow Volume BSP code written by Forest "LordHavoc" Hale on 2003-11-06 and placed into public domain.
-// Modified by LordHavoc (to make it work and other nice things like that) on 2007-01-24 and 2007-01-25
-// Optimized by LordHavoc on 2009-12-24 and 2009-12-25
+// Shadow Volume BSP code written by Ashley Rose Hale (LadyHavoc) on 2003-11-06 and placed into public domain.
+// Modified by LadyHavoc (to make it work and other nice things like that) on 2007-01-24 and 2007-01-25
+// Optimized by LadyHavoc on 2009-12-24 and 2009-12-25
#include <math.h>
#include <string.h>
{
// now we need to create up to numpoints + 1 new nodes, forming a BSP tree
// describing the occluder polygon's shadow volume
- int i, j, p, basenum;
+ int i, j, p;
svbsp_node_t *node;
// points and lines are valid testers but not occluders
// note down the first available nodenum for the *parentnodenumpointer
// line which is done last to allow multithreaded queries during an
// insertion
- basenum = b->numnodes;
for (i = 0, p = poly->numpoints - 1;i < poly->numpoints;p = i, i++)
{
#if 1
// note we still allow points and lines to be tested...
if (numpoints < 1)
return 0;
+ // if the polygon has too many points, we would crash
+ if (numpoints > MAX_SVBSP_POLYGONPOINTS)
+ return 0;
poly.numpoints = numpoints;
for (i = 0;i < numpoints;i++)
{