From: Rudolf Polzer Date: Sun, 8 Aug 2010 18:56:47 +0000 (+0200) Subject: do not REPEATEDLY blow up _skybox surfaces X-Git-Tag: xonotic-v0.5.0~234 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=bb104da06f8d1cd075da24c5dc3b42f749c26959;p=xonotic%2Fnetradiant.git do not REPEATEDLY blow up _skybox surfaces --- diff --git a/tools/quake3/q3map2/surface.c b/tools/quake3/q3map2/surface.c index 7f511b93..ce7e93d1 100644 --- a/tools/quake3/q3map2/surface.c +++ b/tools/quake3/q3map2/surface.c @@ -3448,6 +3448,7 @@ void FilterDrawsurfsIntoTree( entity_t *e, tree_t *tree ) vec3_t origin, mins, maxs; int refs; int numSurfs, numRefs, numSkyboxSurfaces; + qboolean sb; /* note it */ @@ -3466,15 +3467,18 @@ void FilterDrawsurfsIntoTree( entity_t *e, tree_t *tree ) /* get shader */ si = ds->shaderInfo; - + /* ydnar: skybox surfaces are special */ if( ds->skybox ) { refs = AddReferenceToTree_r( ds, tree->headnode, qtrue ); ds->skybox = qfalse; + sb = qtrue; } else { + sb = qfalse; + /* refs initially zero */ refs = 0; @@ -3594,6 +3598,11 @@ void FilterDrawsurfsIntoTree( entity_t *e, tree_t *tree ) refs = 0; break; } + + /* maybe surface got marked as skybox again */ + /* if we keep that flag, it will get scaled up AGAIN */ + if(sb) + ds->skybox = qfalse; /* tot up the references */ if( refs > 0 )