]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_brush.c
fix memory corruption when using trailparticles with an effect that has a dlight
[xonotic/darkplaces.git] / model_brush.c
index b3dadfb83ec307c0c7eec51c0395e3a5093ab607..dbd2708797856e43ef651a0445a1fe4a8b161559 100644 (file)
@@ -4526,7 +4526,7 @@ static void Mod_Q3BSP_LoadLightmaps(lump_t *l, lump_t *faceslump)
                }
        }
 
-       convertedpixels = Mem_Alloc(tempmempool, size*size*4);
+       convertedpixels = (unsigned char *) Mem_Alloc(tempmempool, size*size*4);
        loadmodel->brushq3.lightmapsize = size;
        loadmodel->brushq3.num_originallightmaps = count;
 
@@ -4725,7 +4725,7 @@ static void Mod_Q3BSP_LoadFaces(lump_t *l)
        loadmodel->num_surfaces = count;
 
        if(count > 0)
-               patchtess = Mem_Alloc(tempmempool, count * sizeof(*patchtess));
+               patchtess = (patchtess_t*) Mem_Alloc(tempmempool, count * sizeof(*patchtess));
 
        i = 0;
        oldi = i;
@@ -4836,11 +4836,11 @@ static void Mod_Q3BSP_LoadFaces(lump_t *l)
                        cxtess = Q3PatchTesselationOnX(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_collision_tolerance.value);
                        cytess = Q3PatchTesselationOnY(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_collision_tolerance.value);
                        // bound to user settings
-                       cxtess = bound(r_subdivisions_mintess.integer, xtess, r_subdivisions_collision_maxtess.integer);
-                       cytess = bound(r_subdivisions_mintess.integer, ytess, r_subdivisions_collision_maxtess.integer);
+                       cxtess = bound(r_subdivisions_collision_mintess.integer, cxtess, r_subdivisions_collision_maxtess.integer);
+                       cytess = bound(r_subdivisions_collision_mintess.integer, cytess, r_subdivisions_collision_maxtess.integer);
                        // bound to sanity settings
-                       cxtess = bound(1, xtess, 1024);
-                       cytess = bound(1, ytess, 1024);
+                       cxtess = bound(1, cxtess, 1024);
+                       cytess = bound(1, cytess, 1024);
 
                        // store it for the LOD grouping step
                        patchtess[patchtesscount].surface_id = i;
@@ -4856,8 +4856,8 @@ static void Mod_Q3BSP_LoadFaces(lump_t *l)
                        patchtess[patchtesscount].lodgroup[4] = in->specific.patch.maxs[1];
                        patchtess[patchtesscount].lodgroup[5] = in->specific.patch.maxs[2];
 
-                       patchtess[patchtesscount].cxtess = xtess;
-                       patchtess[patchtesscount].cytess = ytess;
+                       patchtess[patchtesscount].cxtess = cxtess;
+                       patchtess[patchtesscount].cytess = cytess;
                        ++patchtesscount;
                        break;
                case Q3FACETYPE_FLARE: