diff options
author | Andrey Nazarov <skuller@skuller.net> | 2013-03-04 19:55:26 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2013-03-13 19:54:41 +0400 |
commit | 16cf0713b7229e2be17c2af5543c28d720cc8ab9 (patch) | |
tree | 2eab1049cfb9ee6de64b2f2b4b7449901701d324 | |
parent | f11a61b138d4edaf162d127af08331543932a9f4 (diff) |
Don't ERR_DROP from R_AddSkySurface.
Simply ignore oversize surfaces, printing a developer warning.
-rw-r--r-- | src/refresh/gl/sky.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/refresh/gl/sky.c b/src/refresh/gl/sky.c index bd40b79..299b6f7 100644 --- a/src/refresh/gl/sky.c +++ b/src/refresh/gl/sky.c @@ -143,8 +143,11 @@ static void ClipSkyPolygon(int nump, vec3_t vecs, int stage) int newc[2]; int i, j; - if (nump > MAX_CLIP_VERTS - 2) - Com_Error(ERR_DROP, "ClipSkyPolygon: MAX_CLIP_VERTS"); + if (nump > MAX_CLIP_VERTS - 2) { + Com_DPrintf("%s: too many verts\n", __func__); + return; + } + if (stage == 6) { // fully clipped, so draw it DrawSkyPolygon(nump, vecs); @@ -161,8 +164,9 @@ static void ClipSkyPolygon(int nump, vec3_t vecs, int stage) } else if (d < -ON_EPSILON) { back = qtrue; sides[i] = SIDE_BACK; - } else + } else { sides[i] = SIDE_ON; + } dists[i] = d; } @@ -227,7 +231,8 @@ void R_AddSkySurface(mface_t *fa) mvertex_t *vert; if (fa->numsurfedges > MAX_CLIP_VERTS) { - Com_Error(ERR_DROP, "%s: too many verts", __func__); + Com_DPrintf("%s: too many verts\n", __func__); + return; } // calculate vertex values for sky box |