git-svn-id: https://svn.eduke32.com/eduke32@1412 1a8010ca-5511-0410-912e-c29ae57300e0

This commit is contained in:
terminx 2009-06-07 07:36:15 +00:00
parent 92372d50d6
commit aca5dc80e3
2 changed files with 24 additions and 15 deletions

View file

@ -5987,7 +5987,6 @@ int32_t wallvisible(int32_t x, int32_t y, int16_t wallnum)
if (((a2 + (2048 - a1)) & 2047) <= 1024) if (((a2 + (2048 - a1)) & 2047) <= 1024)
return (1); return (1);
else
return (0); return (0);
} }
/* /*

View file

@ -1223,7 +1223,10 @@ static void polymer_displayrooms(int16_t dacursectnum)
doquery = 0; doquery = 0;
i = 0; i = 0;
while (i < sec->wallnum) do
{
// this is a couple of fps faster for me... does it mess anything up?
if (wallvisible(globalposx, globalposy, sec->wallptr + i))
{ {
polymer_drawwall(sectorqueue[front], sec->wallptr + i); polymer_drawwall(sectorqueue[front], sec->wallptr + i);
@ -1231,9 +1234,11 @@ static void polymer_displayrooms(int16_t dacursectnum)
// consider these walls as visportals // consider these walls as visportals
if (wall[sec->wallptr + i].nextsector == -1) if (wall[sec->wallptr + i].nextsector == -1)
doquery = 1; doquery = 1;
}
i++; i++;
} }
while (i < sec->wallnum);
i = 0; i = 0;
while (i < sec->wallnum) while (i < sec->wallnum)
@ -1327,7 +1332,7 @@ static void polymer_displayrooms(int16_t dacursectnum)
} }
i = 0; i = 0;
while (i < sec->wallnum) do
{ {
if ((queryid[sec->wallptr + i]) && if ((queryid[sec->wallptr + i]) &&
(!drawingstate[wall[sec->wallptr + i].nextsector])) (!drawingstate[wall[sec->wallptr + i].nextsector]))
@ -1354,6 +1359,7 @@ static void polymer_displayrooms(int16_t dacursectnum)
i++; i++;
} }
while (i < sec->wallnum);
front++; front++;
} }
@ -1549,10 +1555,11 @@ static void polymer_drawplane(_prplane* plane)
curlight = curlightcount = 0; curlight = curlightcount = 0;
while ((curlight == 0) || ((curlightcount < plane->lightcount) && (curlightcount < pr_maxlightpasses))) while ((curlight == 0) || ((curlightcount < plane->lightcount) && (curlightcount < pr_maxlightpasses)))
{ {
/*
while (plane->lightcount && plane->lights[curlight] == -1) { while (plane->lightcount && plane->lights[curlight] == -1) {
curlight++; curlight++;
} }
*/
materialbits = polymer_bindmaterial(plane->material, plane->lights, plane->lightcount); materialbits = polymer_bindmaterial(plane->material, plane->lights, plane->lightcount);
if (materialbits & prprogrambits[PR_BIT_NORMAL_MAP].bit) if (materialbits & prprogrambits[PR_BIT_NORMAL_MAP].bit)
@ -2261,18 +2268,20 @@ static void polymer_updatewall(int16_t wallnum)
float ypancoef, dist; float ypancoef, dist;
int32_t i; int32_t i;
uint32_t invalid; uint32_t invalid;
int32_t sectofwall = sectorofwall(wallnum);
// yes, this function is messy and unefficient // yes, this function is messy and unefficient
// it also works, bitches // it also works, bitches
wal = &wall[wallnum]; wal = &wall[wallnum];
nwallnum = wal->nextwall; nwallnum = wal->nextwall;
if (sectorofwall(wallnum) == -1)
if (sectofwall == -1)
return; // yay, corrupt map return; // yay, corrupt map
sec = &sector[sectorofwall(wallnum)]; sec = &sector[sectofwall];
if (sec->wallptr > wallnum) if (sec->wallptr > wallnum)
return; // the map is horribly corrupt return; // the map is horribly corrupt
w = prwalls[wallnum]; w = prwalls[wallnum];
s = prsectors[sectorofwall(wallnum)]; s = prsectors[sectofwall];
invalid = s->invalidid; invalid = s->invalidid;
if (nwallnum != -1) if (nwallnum != -1)
{ {
@ -2326,7 +2335,7 @@ static void polymer_updatewall(int16_t wallnum)
else else
{ {
if (w->invalidid != invalid) if (w->invalidid != invalid)
polymer_invalidatesectorlights(sectorofwall(wallnum)); polymer_invalidatesectorlights(sectofwall);
w->invalidid = invalid; w->invalidid = invalid;
w->cstat = wal->cstat; w->cstat = wal->cstat;
@ -2897,7 +2906,7 @@ static void polymer_extractfrustum(GLfloat* modelview, GLfloat* projecti
bglMatrixMode(GL_MODELVIEW); bglMatrixMode(GL_MODELVIEW);
i = 0; i = 0;
while (i < 4) do
{ {
frustum[i] = matrix[(4 * i) + 3] + matrix[4 * i]; // left frustum[i] = matrix[(4 * i) + 3] + matrix[4 * i]; // left
frustum[i + 4] = matrix[(4 * i) + 3] - matrix[4 * i]; // right frustum[i + 4] = matrix[(4 * i) + 3] - matrix[4 * i]; // right
@ -2906,6 +2915,7 @@ static void polymer_extractfrustum(GLfloat* modelview, GLfloat* projecti
frustum[i + 16] = matrix[(4 * i) + 3] - matrix[(4 * i) + 2]; // far frustum[i + 16] = matrix[(4 * i) + 3] - matrix[(4 * i) + 2]; // far
i++; i++;
} }
while (i < 4);
i = 0; i = 0;
if (pr_verbosity >= 3) OSD_Printf("PR : Frustum extracted.\n"); if (pr_verbosity >= 3) OSD_Printf("PR : Frustum extracted.\n");