]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - svbsp.c
Add .md extension to README so it actually parses the markdown
[xonotic/darkplaces.git] / svbsp.c
diff --git a/svbsp.c b/svbsp.c
index 85b82a49d222805e802f26e99c8e3a290a9ac33f..1ad7fafc82248c7826c96da409514800468c1fa4 100644 (file)
--- a/svbsp.c
+++ b/svbsp.c
@@ -1,14 +1,14 @@
 
-// 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>
 #include "svbsp.h"
 #include "polygon.h"
 
-#define MAX_SVBSP_POLYGONPOINTS 16
+#define MAX_SVBSP_POLYGONPOINTS 64
 #define SVBSP_CLIP_EPSILON (1.0f / 1024.0f)
 
 #define SVBSP_DotProduct(a,b) ((a)[0]*(b)[0]+(a)[1]*(b)[1]+(a)[2]*(b)[2])
@@ -409,6 +409,9 @@ int SVBSP_AddPolygon(svbsp_t *b, int numpoints, const float *points, int inserto
        // 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++)
        {