]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
split model_brushq3_t num_lightmaps field into num_originallightmaps (for lightmapind...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 23 Feb 2007 11:43:03 +0000 (11:43 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 23 Feb 2007 11:43:03 +0000 (11:43 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6906 d7cf8633-e32d-0410-b094-e92efae38249

model_brush.c
model_shared.h

index 7bf40f5237aaef6288e52bdb6e09cc1828f3b3dd..f0e3d326957ce681c770b0280c914c1bc08cb72f 100644 (file)
@@ -4782,6 +4782,7 @@ static void Mod_Q3BSP_LoadLightmaps(lump_t *l, lump_t *faceslump)
        if (l->filelen % sizeof(*in))
                Host_Error("Mod_Q3BSP_LoadLightmaps: funny lump size in %s",loadmodel->name);
        count = l->filelen / sizeof(*in);
+       loadmodel->brushq3.num_originallightmaps = count;
 
        // now check the surfaces to see if any of them index an odd numbered
        // lightmap, if so this is not a deluxemapped bsp file
@@ -4841,18 +4842,18 @@ static void Mod_Q3BSP_LoadLightmaps(lump_t *l, lump_t *faceslump)
                loadmodel->brushq3.num_lightmapmergepower = power;
        loadmodel->brushq3.num_lightmapmerge = 1 << loadmodel->brushq3.num_lightmapmergepower;
 
-       loadmodel->brushq3.num_lightmaps = ((count >> loadmodel->brushq3.deluxemapping) + (1 << (loadmodel->brushq3.num_lightmapmergepower * 2)) - 1) >> (loadmodel->brushq3.num_lightmapmergepower * 2);
-       loadmodel->brushq3.data_lightmaps = (rtexture_t **)Mem_Alloc(loadmodel->mempool, loadmodel->brushq3.num_lightmaps * sizeof(rtexture_t *));
+       loadmodel->brushq3.num_mergedlightmaps = ((count >> loadmodel->brushq3.deluxemapping) + (1 << (loadmodel->brushq3.num_lightmapmergepower * 2)) - 1) >> (loadmodel->brushq3.num_lightmapmergepower * 2);
+       loadmodel->brushq3.data_lightmaps = (rtexture_t **)Mem_Alloc(loadmodel->mempool, loadmodel->brushq3.num_mergedlightmaps * sizeof(rtexture_t *));
        if (loadmodel->brushq3.deluxemapping)
-               loadmodel->brushq3.data_deluxemaps = (rtexture_t **)Mem_Alloc(loadmodel->mempool, loadmodel->brushq3.num_lightmaps * sizeof(rtexture_t *));
+               loadmodel->brushq3.data_deluxemaps = (rtexture_t **)Mem_Alloc(loadmodel->mempool, loadmodel->brushq3.num_mergedlightmaps * sizeof(rtexture_t *));
 
        j = 128 << loadmodel->brushq3.num_lightmapmergepower;
        if (loadmodel->brushq3.data_lightmaps)
-               for (i = 0;i < loadmodel->brushq3.num_lightmaps;i++)
+               for (i = 0;i < loadmodel->brushq3.num_mergedlightmaps;i++)
                        loadmodel->brushq3.data_lightmaps[i] = R_LoadTexture2D(loadmodel->texturepool, va("lightmap%04i", i), j, j, NULL, TEXTYPE_RGB, TEXF_FORCELINEAR | TEXF_PRECACHE, NULL);
 
        if (loadmodel->brushq3.data_deluxemaps)
-               for (i = 0;i < loadmodel->brushq3.num_lightmaps;i++)
+               for (i = 0;i < loadmodel->brushq3.num_mergedlightmaps;i++)
                        loadmodel->brushq3.data_deluxemaps[i] = R_LoadTexture2D(loadmodel->texturepool, va("deluxemap%04i", i), j, j, NULL, TEXTYPE_RGB, TEXF_FORCELINEAR | TEXF_PRECACHE, NULL);
 
        power = loadmodel->brushq3.num_lightmapmergepower;
@@ -4939,9 +4940,9 @@ static void Mod_Q3BSP_LoadFaces(lump_t *l)
                        n = LittleLong(in->lightmapindex);
                        if (n < 0)
                                n = -1;
-                       else if (n >= (loadmodel->brushq3.num_lightmaps << (loadmodel->brushq3.num_lightmapmergepower * 2)))
+                       else if (n >= loadmodel->brushq3.num_originallightmaps)
                        {
-                               Con_Printf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): invalid lightmapindex %i (%i lightmaps)\n", i, out->texture->name, n, loadmodel->brushq3.num_lightmaps);
+                               Con_Printf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): invalid lightmapindex %i (%i lightmaps)\n", i, out->texture->name, n, loadmodel->brushq3.num_originallightmaps);
                                n = -1;
                        }
                        else
@@ -6087,7 +6088,7 @@ qboolean Mod_CanSeeBox_Trace(int numsamples, float t, model_t *model, vec3_t eye
 {
        // we already have done PVS culling at this point...
        // so we don't need to do it again.
-       
+
        int i;
        vec3_t testorigin, mins, maxs;
 
index 0dd2fb336502673da1c2c45adc69128a1535cde1..36d72434854d8c7ebb239b82040d8ec89aef2207 100644 (file)
@@ -479,7 +479,8 @@ typedef struct model_brushq3_s
        q3deffect_t *data_effects;
 
        // lightmap textures
-       int num_lightmaps;
+       int num_originallightmaps;
+       int num_mergedlightmaps;
        int num_lightmapmergepower;
        int num_lightmapmerge;
        rtexture_t **data_lightmaps;