mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 11:10:47 +00:00
Equivalent to 04e7e6af69
git-svn-id: https://svn.eduke32.com/eduke32@8363 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
30402e9e13
commit
265e7109aa
1 changed files with 46 additions and 9 deletions
|
@ -159,7 +159,8 @@ int32_t globaltilesizy;
|
||||||
int32_t globalx1, globaly2, globalx3, globaly3;
|
int32_t globalx1, globaly2, globalx3, globaly3;
|
||||||
|
|
||||||
int32_t sloptable[SLOPTABLESIZ];
|
int32_t sloptable[SLOPTABLESIZ];
|
||||||
static intptr_t slopalookup[16384]; // was 2048
|
#define SLOPALOOKUPSIZ (MAXXDIM<<1)
|
||||||
|
static intptr_t slopalookup[SLOPALOOKUPSIZ]; // was 2048
|
||||||
|
|
||||||
static int32_t no_radarang2 = 0;
|
static int32_t no_radarang2 = 0;
|
||||||
static int16_t radarang[1280];
|
static int16_t radarang[1280];
|
||||||
|
@ -3389,7 +3390,7 @@ static void fgrouscan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat)
|
||||||
int32_t i, j, l, globalx1, globaly1, y1, y2, daslope, daz, wxi, wyi;
|
int32_t i, j, l, globalx1, globaly1, y1, y2, daslope, daz, wxi, wyi;
|
||||||
float fi, wx, wy, dasqr;
|
float fi, wx, wy, dasqr;
|
||||||
float globalx, globaly, globalx2, globaly2, globalx3, globaly3, globalz, globalzd, globalzx;
|
float globalx, globaly, globalx2, globaly2, globalx3, globaly3, globalz, globalzd, globalzx;
|
||||||
int32_t shoffs, m1, m2;
|
int32_t shoffs, m1, m2, shy1, shy2;
|
||||||
intptr_t *mptr1, *mptr2;
|
intptr_t *mptr1, *mptr2;
|
||||||
|
|
||||||
const usectortype *const sec = (usectortype *)§or[sectnum];
|
const usectortype *const sec = (usectortype *)§or[sectnum];
|
||||||
|
@ -3523,7 +3524,14 @@ static void fgrouscan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat)
|
||||||
//Avoid visibility overflow by crossing horizon
|
//Avoid visibility overflow by crossing horizon
|
||||||
m1 += klabs(l);
|
m1 += klabs(l);
|
||||||
m2 = m1+l;
|
m2 = m1+l;
|
||||||
mptr1 = (intptr_t *)&slopalookup[y1+(shoffs>>15)]; mptr2 = mptr1+1;
|
shy1 = y1+(shoffs>>15);
|
||||||
|
if ((unsigned)shy1 >= SLOPALOOKUPSIZ-1)
|
||||||
|
{
|
||||||
|
OSD_Printf("%s:%d: slopalookup[] overflow drawing sector %d!\n", EDUKE32_FUNCTION, __LINE__, sectnum);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mptr1 = &slopalookup[shy1]; mptr2 = mptr1+1;
|
||||||
|
|
||||||
for (int x=dax1; x<=dax2; x++)
|
for (int x=dax1; x<=dax2; x++)
|
||||||
{
|
{
|
||||||
|
@ -3531,8 +3539,18 @@ static void fgrouscan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat)
|
||||||
else { y1 = max(umost[x],dplc[x]); y2 = dmost[x]-1; }
|
else { y1 = max(umost[x],dplc[x]); y2 = dmost[x]-1; }
|
||||||
if (y1 <= y2)
|
if (y1 <= y2)
|
||||||
{
|
{
|
||||||
intptr_t *nptr1 = &slopalookup[y1+(shoffs>>15)];
|
shy1 = y1+(shoffs>>15);
|
||||||
intptr_t *nptr2 = &slopalookup[y2+(shoffs>>15)];
|
shy2 = y2+(shoffs>>15);
|
||||||
|
|
||||||
|
if ((unsigned)shy1 >= SLOPALOOKUPSIZ || (unsigned)shy2 >= SLOPALOOKUPSIZ)
|
||||||
|
{
|
||||||
|
// Ridiculously steep gradient?
|
||||||
|
OSD_Printf("%s:%d: slopalookup[] overflow drawing sector %d!\n", EDUKE32_FUNCTION, __LINE__, sectnum);
|
||||||
|
goto next_most;
|
||||||
|
}
|
||||||
|
|
||||||
|
intptr_t *nptr1 = &slopalookup[shy1];
|
||||||
|
intptr_t *nptr2 = &slopalookup[shy2];
|
||||||
|
|
||||||
while (nptr1 <= mptr1)
|
while (nptr1 <= mptr1)
|
||||||
{
|
{
|
||||||
|
@ -3662,6 +3680,7 @@ static void fgrouscan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat)
|
||||||
#undef LINTERPSIZ
|
#undef LINTERPSIZ
|
||||||
if ((x&15) == 0) faketimerhandler();
|
if ((x&15) == 0) faketimerhandler();
|
||||||
}
|
}
|
||||||
|
next_most:
|
||||||
globalx2 += globalx;
|
globalx2 += globalx;
|
||||||
globaly2 += globaly;
|
globaly2 += globaly;
|
||||||
globalzx += globalz;
|
globalzx += globalz;
|
||||||
|
@ -3678,7 +3697,7 @@ static void grouscan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat)
|
||||||
}
|
}
|
||||||
int32_t i, l, x, y, dx, dy, wx, wy, y1, y2, daz;
|
int32_t i, l, x, y, dx, dy, wx, wy, y1, y2, daz;
|
||||||
int32_t daslope, dasqr;
|
int32_t daslope, dasqr;
|
||||||
int32_t shoffs, m1, m2;
|
int32_t shoffs, m1, m2, shy1, shy2;
|
||||||
intptr_t *mptr1, *mptr2, j;
|
intptr_t *mptr1, *mptr2, j;
|
||||||
|
|
||||||
// Er, yes, they're not global anymore:
|
// Er, yes, they're not global anymore:
|
||||||
|
@ -3810,7 +3829,14 @@ static void grouscan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat)
|
||||||
//Avoid visibility overflow by crossing horizon
|
//Avoid visibility overflow by crossing horizon
|
||||||
m1 += klabs((int32_t) (globalzd>>16));
|
m1 += klabs((int32_t) (globalzd>>16));
|
||||||
m2 = m1+l;
|
m2 = m1+l;
|
||||||
mptr1 = (intptr_t *)&slopalookup[y1+(shoffs>>15)]; mptr2 = mptr1+1;
|
shy1 = y1+(shoffs>>15);
|
||||||
|
if ((unsigned)shy1 >= SLOPALOOKUPSIZ - 1)
|
||||||
|
{
|
||||||
|
OSD_Printf("%s:%d: slopalookup[] overflow drawing sector %d!\n", EDUKE32_FUNCTION, __LINE__, sectnum);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mptr1 = &slopalookup[shy1]; mptr2 = mptr1+1;
|
||||||
|
|
||||||
for (x=dax1; x<=dax2; x++)
|
for (x=dax1; x<=dax2; x++)
|
||||||
{
|
{
|
||||||
|
@ -3818,8 +3844,18 @@ static void grouscan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat)
|
||||||
else { y1 = max(umost[x],dplc[x]); y2 = dmost[x]-1; }
|
else { y1 = max(umost[x],dplc[x]); y2 = dmost[x]-1; }
|
||||||
if (y1 <= y2)
|
if (y1 <= y2)
|
||||||
{
|
{
|
||||||
intptr_t *nptr1 = &slopalookup[y1+(shoffs>>15)];
|
shy1 = y1+(shoffs>>15);
|
||||||
intptr_t *nptr2 = &slopalookup[y2+(shoffs>>15)];
|
shy2 = y2+(shoffs>>15);
|
||||||
|
|
||||||
|
if ((unsigned)shy1 >= SLOPALOOKUPSIZ || (unsigned)shy2 >= SLOPALOOKUPSIZ)
|
||||||
|
{
|
||||||
|
// Ridiculously steep gradient?
|
||||||
|
OSD_Printf("%s:%d: slopalookup[] overflow drawing sector %d!\n", EDUKE32_FUNCTION, __LINE__, sectnum);
|
||||||
|
goto next_most;
|
||||||
|
}
|
||||||
|
|
||||||
|
intptr_t *nptr1 = &slopalookup[shy1];
|
||||||
|
intptr_t *nptr2 = &slopalookup[shy2];
|
||||||
|
|
||||||
while (nptr1 <= mptr1)
|
while (nptr1 <= mptr1)
|
||||||
{
|
{
|
||||||
|
@ -3851,6 +3887,7 @@ static void grouscan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat)
|
||||||
|
|
||||||
if ((x&15) == 0) faketimerhandler();
|
if ((x&15) == 0) faketimerhandler();
|
||||||
}
|
}
|
||||||
|
next_most:
|
||||||
globalx2 += globalx;
|
globalx2 += globalx;
|
||||||
globaly2 += globaly;
|
globaly2 += globaly;
|
||||||
globalzx += globalz;
|
globalzx += globalz;
|
||||||
|
|
Loading…
Reference in a new issue