Corrupt map fixes

Specifically seems to fix ebase.map by msandt


git-svn-id: https://svn.eduke32.com/eduke32@1510 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2009-10-01 00:28:40 +00:00
parent dcd7c3c9fe
commit ecb3e90817
3 changed files with 10 additions and 10 deletions

View file

@ -10260,7 +10260,7 @@ int32_t sectorofwall(int16_t theline)
int32_t i, gap; int32_t i, gap;
if ((theline < 0) || (theline >= numwalls)) return(-1); if ((theline < 0) || (theline >= numwalls)) return(-1);
i = wall[theline].nextwall; if (i >= 0) return(wall[i].nextsector); i = wall[theline].nextwall; if (i >= 0 && i < MAXWALLS) return(wall[i].nextsector);
gap = (numsectors>>1); i = gap; gap = (numsectors>>1); i = gap;
while (gap > 1) while (gap > 1)
@ -10999,7 +10999,7 @@ void draw2dscreen(int32_t posxe, int32_t posye, int16_t ange, int32_t zoome, int
{ {
col = 33; col = 33;
if ((wal->cstat&1) != 0) col = 5; if ((wal->cstat&1) != 0) col = 5;
if (wal->nextwall!=-1&&((wal->cstat^wall[wal->nextwall].cstat)&1)) col = 2; if (wal->nextwall >= 0 && wal->nextwall < MAXWALLS && ((wal->cstat^wall[wal->nextwall].cstat)&1)) col = 2;
if ((i == linehighlight) || ((linehighlight >= 0) && (i == wall[linehighlight].nextwall))) if ((i == linehighlight) || ((linehighlight >= 0) && (i == wall[linehighlight].nextwall)))
if (totalclock & 16) col += (2<<2); if (totalclock & 16) col += (2<<2);
} }

View file

@ -2934,7 +2934,7 @@ static void polymer_updatewall(int16_t wallnum)
wal = &wall[wallnum]; wal = &wall[wallnum];
nwallnum = wal->nextwall; nwallnum = wal->nextwall;
if (sectofwall == -1) if (sectofwall < 0 || sectofwall > numsectors || wallnum < 0 || wallnum > numwalls)
return; // yay, corrupt map return; // yay, corrupt map
sec = &sector[sectofwall]; sec = &sector[sectofwall];
if (sec->wallptr > wallnum) if (sec->wallptr > wallnum)
@ -2942,7 +2942,7 @@ static void polymer_updatewall(int16_t wallnum)
w = prwalls[wallnum]; w = prwalls[wallnum];
s = prsectors[sectofwall]; s = prsectors[sectofwall];
invalid = s->invalidid; invalid = s->invalidid;
if (nwallnum != -1) if (nwallnum >= 0 && nwallnum < MAXWALLS)
{ {
ns = prsectors[wal->nextsector]; ns = prsectors[wal->nextsector];
invalid += ns->invalidid; invalid += ns->invalidid;
@ -2963,7 +2963,7 @@ static void polymer_updatewall(int16_t wallnum)
if (picanm[wallpicnum]&192) wallpicnum += animateoffs(wallpicnum,wallnum+16384); if (picanm[wallpicnum]&192) wallpicnum += animateoffs(wallpicnum,wallnum+16384);
walloverpicnum = wal->overpicnum; walloverpicnum = wal->overpicnum;
if (picanm[walloverpicnum]&192) walloverpicnum += animateoffs(walloverpicnum,wallnum+16384); if (picanm[walloverpicnum]&192) walloverpicnum += animateoffs(walloverpicnum,wallnum+16384);
if (nwallnum != -1) if (nwallnum >= 0 && nwallnum < MAXWALLS)
{ {
nwallpicnum = wall[nwallnum].picnum; nwallpicnum = wall[nwallnum].picnum;
if (picanm[nwallpicnum]&192) nwallpicnum += animateoffs(nwallpicnum,wallnum+16384); if (picanm[nwallpicnum]&192) nwallpicnum += animateoffs(nwallpicnum,wallnum+16384);
@ -3006,7 +3006,7 @@ static void polymer_updatewall(int16_t wallnum)
w->yrepeat = wal->yrepeat; w->yrepeat = wal->yrepeat;
w->overpicnum = walloverpicnum; w->overpicnum = walloverpicnum;
w->shade = wal->shade; w->shade = wal->shade;
if (nwallnum != -1) if (nwallnum >= 0 && nwallnum < MAXWALLS)
{ {
w->nwallpicnum = nwallpicnum; w->nwallpicnum = nwallpicnum;
w->nwallxpanning = wall[nwallnum].xpanning; w->nwallxpanning = wall[nwallnum].xpanning;
@ -3022,7 +3022,7 @@ static void polymer_updatewall(int16_t wallnum)
else else
xref = 0; xref = 0;
if (wal->nextsector == -1) if (wal->nextsector < 0 || wal->nextsector > numsectors)
{ {
Bmemcpy(w->wall.buffer, &s->floor.buffer[(wallnum - sec->wallptr) * 5], sizeof(GLfloat) * 3); Bmemcpy(w->wall.buffer, &s->floor.buffer[(wallnum - sec->wallptr) * 5], sizeof(GLfloat) * 3);
Bmemcpy(&w->wall.buffer[5], &s->floor.buffer[(wal->point2 - sec->wallptr) * 5], sizeof(GLfloat) * 3); Bmemcpy(&w->wall.buffer[5], &s->floor.buffer[(wal->point2 - sec->wallptr) * 5], sizeof(GLfloat) * 3);

View file

@ -58,7 +58,6 @@ static BOOL window_class_registered = FALSE;
static HANDLE instanceflag = NULL; static HANDLE instanceflag = NULL;
int32_t backgroundidle = 1; int32_t backgroundidle = 1;
int32_t is_vista = 0;
static WORD sysgamma[3][256]; static WORD sysgamma[3][256];
extern int32_t curbrightness, gammabrightness; extern int32_t curbrightness, gammabrightness;
@ -500,7 +499,6 @@ static void print_os_version(void)
if (osv.dwMajorVersion == 6) if (osv.dwMajorVersion == 6)
{ {
is_vista = 1;
switch (osv.dwMinorVersion) switch (osv.dwMinorVersion)
{ {
case 0: case 0:
@ -509,6 +507,9 @@ static void print_os_version(void)
case 1: case 1:
ver = "7"; ver = "7";
break; break;
default:
ver = "Unknown Post-2010 Product";
break;
} }
break; break;
} }
@ -524,7 +525,6 @@ static void print_os_version(void)
break; break;
default: default:
ver = "Unknown";
initprintf("OS: Unknown OS\n"); initprintf("OS: Unknown OS\n");
return; return;
} }