Hopefully those phs calc bugs/crashes are properly fixed now...

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4095 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2012-07-23 03:42:46 +00:00
parent 846a2264ba
commit 6b827e89ff
1 changed files with 30 additions and 30 deletions

View File

@ -868,7 +868,7 @@ static void CM_CreatePatch( q3cpatch_t *patch, q2mapsurface_t *shaderref, const
{ {
qbyte *data; qbyte *data;
data = Hunk_Alloc( patch->numfacets * sizeof( q2cbrush_t ) + totalsides * ( sizeof( q2cbrushside_t ) + sizeof( mplane_t ) ) ); data = Hunk_AllocName( patch->numfacets * sizeof( q2cbrush_t ) + totalsides * ( sizeof( q2cbrushside_t ) + sizeof( mplane_t ) ), "patch");
patch->facets = ( q2cbrush_t * )data; data += patch->numfacets * sizeof( q2cbrush_t ); patch->facets = ( q2cbrush_t * )data; data += patch->numfacets * sizeof( q2cbrush_t );
memcpy( patch->facets, facets, patch->numfacets * sizeof( q2cbrush_t ) ); memcpy( patch->facets, facets, patch->numfacets * sizeof( q2cbrush_t ) );
@ -1080,7 +1080,7 @@ qboolean CMod_LoadSurfaces (lump_t *l)
// Host_Error ("Map has too many surfaces"); // Host_Error ("Map has too many surfaces");
numtexinfo = count; numtexinfo = count;
out = map_surfaces = Hunk_Alloc(count * sizeof(*map_surfaces)); out = map_surfaces = Hunk_AllocName(count * sizeof(*map_surfaces), "surfaces");
for ( i=0 ; i<count ; i++, in++, out++) for ( i=0 ; i<count ; i++, in++, out++)
{ {
@ -1242,7 +1242,7 @@ qboolean CMod_LoadTexInfo (lump_t *l) //yes I know these load from the same plac
out->texture = Mod_LoadWall (name, sname); out->texture = Mod_LoadWall (name, sname);
if (!out->texture || !out->texture->width || !out->texture->height) if (!out->texture || !out->texture->width || !out->texture->height)
{ {
out->texture = Hunk_Alloc(sizeof(texture_t) + 16*16+8*8+4*4+2*2); out->texture = Hunk_AllocName(sizeof(texture_t) + 16*16+8*8+4*4+2*2, in->texture);
Con_Printf (CON_WARNING "Couldn't load %s\n", name); Con_Printf (CON_WARNING "Couldn't load %s\n", name);
memcpy(out->texture, r_notexture_mip, sizeof(texture_t) + 16*16+8*8+4*4+2*2); memcpy(out->texture, r_notexture_mip, sizeof(texture_t) + 16*16+8*8+4*4+2*2);
@ -1442,7 +1442,7 @@ qboolean CMod_LoadNodes (lump_t *l)
return false; return false;
} }
out = Hunk_Alloc(sizeof(mnode_t)*count); out = Hunk_AllocName(sizeof(mnode_t)*count, "nodes");
loadmodel->nodes = out; loadmodel->nodes = out;
loadmodel->numnodes = count; loadmodel->numnodes = count;
@ -1874,7 +1874,7 @@ void CMod_LoadEntityString (lump_t *l)
// if (l->filelen > MAX_Q2MAP_ENTSTRING) // if (l->filelen > MAX_Q2MAP_ENTSTRING)
// Host_Error ("Map has too large entity lump"); // Host_Error ("Map has too large entity lump");
map_entitystring = Hunk_Alloc(l->filelen+1); map_entitystring = Hunk_AllocName(l->filelen+1, "ents");
memcpy (map_entitystring, cmod_base + l->fileofs, l->filelen); memcpy (map_entitystring, cmod_base + l->fileofs, l->filelen);
loadmodel->entities = map_entitystring; loadmodel->entities = map_entitystring;
@ -2012,15 +2012,15 @@ qboolean CModQ3_LoadShaders (lump_t *l)
// Host_Error ("Map has too many shaders"); // Host_Error ("Map has too many shaders");
numtexinfo = count; numtexinfo = count;
out = map_surfaces = Hunk_Alloc(count*sizeof(*out)); out = map_surfaces = Hunk_AllocName(count*sizeof(*out), "tsurfaces");
loadmodel->texinfo = Hunk_Alloc(sizeof(mtexinfo_t)*count); loadmodel->texinfo = Hunk_AllocName(sizeof(mtexinfo_t)*count, "texinfo");
loadmodel->numtextures = count; loadmodel->numtextures = count;
loadmodel->textures = Hunk_Alloc(sizeof(texture_t*)*count); loadmodel->textures = Hunk_AllocName(sizeof(texture_t*)*count, "textures");
for ( i=0 ; i<count ; i++, in++, out++ ) for ( i=0 ; i<count ; i++, in++, out++ )
{ {
loadmodel->texinfo[i].texture = Hunk_Alloc(sizeof(texture_t)); loadmodel->texinfo[i].texture = Hunk_AllocName(sizeof(texture_t), in->shadername);
Q_strncpyz(loadmodel->texinfo[i].texture->name, in->shadername, sizeof(loadmodel->texinfo[i].texture->name)); Q_strncpyz(loadmodel->texinfo[i].texture->name, in->shadername, sizeof(loadmodel->texinfo[i].texture->name));
loadmodel->textures[i] = loadmodel->texinfo[i].texture; loadmodel->textures[i] = loadmodel->texinfo[i].texture;
@ -2054,13 +2054,13 @@ qboolean CModQ3_LoadVertexes (lump_t *l)
return false; return false;
} }
out = Hunk_Alloc ( count*sizeof(*out) ); out = Hunk_AllocName ( count*sizeof(*out), "vert_v");
stout = Hunk_Alloc ( count*sizeof(*stout) ); stout = Hunk_AllocName ( count*sizeof(*stout), "vert_st");
lmout = Hunk_Alloc ( count*sizeof(*lmout) ); lmout = Hunk_AllocName ( count*sizeof(*lmout), "vert_lm1");
cout = Hunk_Alloc ( count*sizeof(*cout) ); cout = Hunk_AllocName ( count*sizeof(*cout), "vert_c");
nout = Hunk_Alloc ( count*sizeof(*nout) ); nout = Hunk_AllocName ( count*sizeof(*nout), "vert_n");
sout = Hunk_Alloc ( count*sizeof(*nout) ); sout = Hunk_AllocName ( count*sizeof(*nout), "vert_s");
tout = Hunk_Alloc ( count*sizeof(*nout) ); tout = Hunk_AllocName ( count*sizeof(*nout), "vert_t");
map_verts = out; map_verts = out;
map_vertstmexcoords = stout; map_vertstmexcoords = stout;
map_vertlstmexcoords[0] = lmout; map_vertlstmexcoords[0] = lmout;
@ -2118,13 +2118,13 @@ qboolean CModRBSP_LoadVertexes (lump_t *l)
return false; return false;
} }
out = Hunk_Alloc ( count*sizeof(*out) ); out = Hunk_AllocName ( count*sizeof(*out), "vert_v");
stout = Hunk_Alloc ( count*sizeof(*stout) ); stout = Hunk_AllocName ( count*sizeof(*stout), "vert_st");
lmout = Hunk_Alloc ( MAXLIGHTMAPS*count*sizeof(*lmout) ); lmout = Hunk_AllocName ( MAXLIGHTMAPS*count*sizeof(*lmout), "vert_lm4");
cout = Hunk_Alloc ( count*sizeof(*cout) ); cout = Hunk_AllocName ( count*sizeof(*cout), "vert_c");
nout = Hunk_Alloc ( count*sizeof(*nout) ); nout = Hunk_AllocName ( count*sizeof(*nout), "vert_n");
sout = Hunk_Alloc ( count*sizeof(*sout) ); sout = Hunk_AllocName ( count*sizeof(*sout), "vert_s");
tout = Hunk_Alloc ( count*sizeof(*tout) ); tout = Hunk_AllocName ( count*sizeof(*tout), "vert_t");
map_verts = out; map_verts = out;
map_vertstmexcoords = stout; map_vertstmexcoords = stout;
for (sty = 0; sty < MAXLIGHTMAPS; sty++) for (sty = 0; sty < MAXLIGHTMAPS; sty++)
@ -2297,7 +2297,7 @@ qboolean CModQ3_LoadFogs (lump_t *l)
return false; return false;
} }
count = l->filelen / sizeof(*in); count = l->filelen / sizeof(*in);
out = Hunk_Alloc ( count*sizeof(*out) ); out = Hunk_AllocName ( count*sizeof(*out), "fogs");
map_fogs = out; map_fogs = out;
map_numfogs = count; map_numfogs = count;
@ -2317,7 +2317,7 @@ qboolean CModQ3_LoadFogs (lump_t *l)
out->shader = R_RegisterShader_Lightmap ( in->shader ); out->shader = R_RegisterShader_Lightmap ( in->shader );
R_BuildDefaultTexnums(&out->shader->defaulttextures, out->shader); R_BuildDefaultTexnums(&out->shader->defaulttextures, out->shader);
out->numplanes = brush->numsides; out->numplanes = brush->numsides;
out->planes = Hunk_Alloc ( out->numplanes*sizeof(cplane_t *) ); out->planes = Hunk_AllocName ( out->numplanes*sizeof(cplane_t *), "fogplane");
for ( j = 0; j < out->numplanes; j++ ) for ( j = 0; j < out->numplanes; j++ )
{ {
@ -3346,7 +3346,7 @@ qboolean CModQ3_LoadVisibility (lump_t *l)
numclusters++; numclusters++;
map_q3pvs = Hunk_Alloc(sizeof(*map_q3pvs) + (numclusters+7)/8 * numclusters); map_q3pvs = Hunk_AllocName(sizeof(*map_q3pvs) + (numclusters+7)/8 * numclusters, "pvs");
memset (map_q3pvs, 0xff, sizeof(*map_q3pvs) + (numclusters+7)/8 * numclusters); memset (map_q3pvs, 0xff, sizeof(*map_q3pvs) + (numclusters+7)/8 * numclusters);
map_q3pvs->numclusters = numclusters; map_q3pvs->numclusters = numclusters;
numvisibility = 0; numvisibility = 0;
@ -3550,12 +3550,12 @@ void CMQ3_CalcPHS (void)
Con_DPrintf ("Building PHS...\n"); Con_DPrintf ("Building PHS...\n");
map_q3phs = Hunk_Alloc(sizeof(*map_q3phs) + (map_q3pvs->numclusters+sizeof(int)*8-1)/8 * map_q3pvs->numclusters); map_q3phs = Hunk_AllocName(sizeof(*map_q3phs) + map_q3pvs->rowsize * map_q3pvs->numclusters, "phs");
rowwords = map_q3pvs->rowsize / sizeof(int); rowwords = map_q3pvs->rowsize / sizeof(int);
rowbytes = map_q3pvs->rowsize; rowbytes = map_q3pvs->rowsize;
memset ( map_q3phs, 0, sizeof(*map_q3phs) + (map_q3pvs->numclusters+sizeof(int)*8-1)/8 * map_q3pvs->numclusters ); memset ( map_q3phs, 0, sizeof(*map_q3phs) + map_q3pvs->rowsize * map_q3pvs->numclusters );
map_q3phs->rowsize = map_q3pvs->rowsize; map_q3phs->rowsize = map_q3pvs->rowsize;
map_q3phs->numclusters = numclusters = map_q3pvs->numclusters; map_q3phs->numclusters = numclusters = map_q3pvs->numclusters;
@ -3593,8 +3593,8 @@ void CMQ3_CalcPHS (void)
continue; continue;
// OR this pvs row into the phs // OR this pvs row into the phs
index = (j<<3) + k; index = (j<<3) + k;
// if (index >= numclusters) if (index >= numclusters)
// Host_Error ("CM_CalcPHS: Bad bit in PVS"); // pad bits should be 0 Host_Error ("CM_CalcPHS: Bad bit in PVS"); // pad bits should be 0
src = (unsigned int *)(map_q3pvs->data) + index*rowwords; src = (unsigned int *)(map_q3pvs->data) + index*rowwords;
for (l=0 ; l<rowwords ; l++) for (l=0 ; l<rowwords ; l++)
dest[l] |= src[l]; dest[l] |= src[l];