mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-26 00:40:56 +00:00
In G_HandleMirror(), consult g_mirrorCount instead of gotpic[] w/ MIRROR.
DONT_BUILD. git-svn-id: https://svn.eduke32.com/eduke32@4861 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
c320dba4d0
commit
1734e0db53
1 changed files with 12 additions and 20 deletions
|
@ -4245,42 +4245,34 @@ static void G_SE40(int32_t smoothratio)
|
||||||
|
|
||||||
void G_HandleMirror(int32_t x, int32_t y, int32_t z, int32_t a, int32_t horiz, int32_t smoothratio)
|
void G_HandleMirror(int32_t x, int32_t y, int32_t z, int32_t a, int32_t horiz, int32_t smoothratio)
|
||||||
{
|
{
|
||||||
if ((gotpic[MIRROR>>3]&(1<<(MIRROR&7)))
|
if (g_mirrorCount > 0
|
||||||
#ifdef POLYMER
|
#ifdef POLYMER
|
||||||
&& (getrendermode() != REND_POLYMER)
|
&& (getrendermode() != REND_POLYMER)
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
int32_t j, i = 0, k, dst = INT32_MAX;
|
int32_t i = 0, dst = INT32_MAX;
|
||||||
|
|
||||||
if (g_mirrorCount==0)
|
for (int32_t k=g_mirrorCount-1; k>=0; k--)
|
||||||
{
|
{
|
||||||
// NOTE: We can have g_mirrorCount==0 but gotpic'd MIRROR,
|
const int32_t j =
|
||||||
// for example in LNGA2.
|
klabs(wall[g_mirrorWall[k]].x - x) +
|
||||||
gotpic[MIRROR>>3] &= ~(1<<(MIRROR&7));
|
klabs(wall[g_mirrorWall[k]].y - y);
|
||||||
#ifdef DEBUGGINGAIDS
|
|
||||||
initprintf("Called G_HandleMirror() with g_mirrorCount==0!\n");
|
|
||||||
#endif
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (k=g_mirrorCount-1; k>=0; k--)
|
if (j < dst)
|
||||||
{
|
dst = j, i = k;
|
||||||
j = klabs(wall[g_mirrorWall[k]].x - x);
|
|
||||||
j += klabs(wall[g_mirrorWall[k]].y - y);
|
|
||||||
if (j < dst) dst = j, i = k;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wall[g_mirrorWall[i]].overpicnum != MIRROR)
|
if (wall[g_mirrorWall[i]].overpicnum != MIRROR)
|
||||||
{
|
{
|
||||||
// try to find a new mirror wall
|
// Try to find a new mirror wall in case the original one was broken.
|
||||||
|
|
||||||
int32_t startwall = sector[g_mirrorSector[i]].wallptr;
|
int32_t startwall = sector[g_mirrorSector[i]].wallptr;
|
||||||
int32_t endwall = startwall + sector[g_mirrorSector[i]].wallnum;
|
int32_t endwall = startwall + sector[g_mirrorSector[i]].wallnum;
|
||||||
|
|
||||||
for (k=startwall; k<endwall; k++)
|
for (int32_t k=startwall; k<endwall; k++)
|
||||||
{
|
{
|
||||||
j = wall[k].nextwall;
|
int32_t j = wall[k].nextwall;
|
||||||
if (j >= 0 && (wall[j].cstat&32) && wall[j].overpicnum==MIRROR) // cmp. premap.c
|
if (j >= 0 && (wall[j].cstat&32) && wall[j].overpicnum==MIRROR) // cmp. premap.c
|
||||||
{
|
{
|
||||||
g_mirrorWall[i] = j;
|
g_mirrorWall[i] = j;
|
||||||
|
@ -4296,7 +4288,7 @@ void G_HandleMirror(int32_t x, int32_t y, int32_t z, int32_t a, int32_t horiz, i
|
||||||
|
|
||||||
preparemirror(x, y, a, g_mirrorWall[i], &tposx, &tposy, &tang);
|
preparemirror(x, y, a, g_mirrorWall[i], &tposx, &tposy, &tang);
|
||||||
|
|
||||||
j = g_visibility;
|
int32_t j = g_visibility;
|
||||||
g_visibility = (j>>1) + (j>>2);
|
g_visibility = (j>>1) + (j>>2);
|
||||||
|
|
||||||
if (getrendermode() == REND_CLASSIC)
|
if (getrendermode() == REND_CLASSIC)
|
||||||
|
|
Loading…
Reference in a new issue