Formatting change

git-svn-id: https://svn.eduke32.com/eduke32@331 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2006-11-13 23:12:47 +00:00
parent 757da2432b
commit 37dea75dc6
44 changed files with 13087 additions and 12209 deletions

View file

@ -40,7 +40,7 @@ void hlineasm4(long cnt, long skiploadincs, long paloffs, unsigned long by, unsi
palptr = (char *)&ghlinepal[paloffs]; palptr = (char *)&ghlinepal[paloffs];
if (!skiploadincs) { gbxinc = asm1; gbyinc = asm2; } if (!skiploadincs) { gbxinc = asm1; gbyinc = asm2; }
for(;cnt>=0;cnt--) for (;cnt>=0;cnt--)
{ {
*((char *)p) = palptr[gbuf[((bx>>(32-glogx))<<glogy)+(by>>(32-glogy))]]; *((char *)p) = palptr[gbuf[((bx>>(32-glogx))<<glogy)+(by>>(32-glogy))]];
bx -= gbxinc; bx -= gbxinc;
@ -63,7 +63,7 @@ void slopevlin(long p, long i, long slopaloffs, long cnt, long bx, long by)
bz = asm3; bzinc = (asm1>>3); bz = asm3; bzinc = (asm1>>3);
slopalptr = (long *)slopaloffs; slopalptr = (long *)slopaloffs;
for(;cnt>0;cnt--) for (;cnt>0;cnt--)
{ {
i = krecip(bz>>6); bz += bzinc; i = krecip(bz>>6); bz += bzinc;
u = bx+globalx3*i; u = bx+globalx3*i;
@ -81,7 +81,7 @@ void vlineasm1(long vinc, long paloffs, long cnt, unsigned long vplc, long bufpl
{ {
gbuf = (char *)bufplc; gbuf = (char *)bufplc;
gpal = (char *)paloffs; gpal = (char *)paloffs;
for(;cnt>=0;cnt--) for (;cnt>=0;cnt--)
{ {
*((char *)p) = gpal[gbuf[vplc>>glogy]]; *((char *)p) = gpal[gbuf[vplc>>glogy]];
p += bpl; p += bpl;
@ -96,7 +96,7 @@ void mvlineasm1(long vinc, long paloffs, long cnt, unsigned long vplc, long bufp
gbuf = (char *)bufplc; gbuf = (char *)bufplc;
gpal = (char *)paloffs; gpal = (char *)paloffs;
for(;cnt>=0;cnt--) for (;cnt>=0;cnt--)
{ {
ch = gbuf[vplc>>glogy]; if (ch != 255) *((char *)p) = gpal[ch]; ch = gbuf[vplc>>glogy]; if (ch != 255) *((char *)p) = gpal[ch];
p += bpl; p += bpl;
@ -113,7 +113,7 @@ void tvlineasm1(long vinc, long paloffs, long cnt, unsigned long vplc, long bufp
gpal = (char *)paloffs; gpal = (char *)paloffs;
if (transmode) if (transmode)
{ {
for(;cnt>=0;cnt--) for (;cnt>=0;cnt--)
{ {
ch = gbuf[vplc>>glogy]; ch = gbuf[vplc>>glogy];
if (ch != 255) *((char *)p) = gtrans[(*((char *)p))+(gpal[ch]<<8)]; if (ch != 255) *((char *)p) = gtrans[(*((char *)p))+(gpal[ch]<<8)];
@ -123,7 +123,7 @@ void tvlineasm1(long vinc, long paloffs, long cnt, unsigned long vplc, long bufp
} }
else else
{ {
for(;cnt>=0;cnt--) for (;cnt>=0;cnt--)
{ {
ch = gbuf[vplc>>glogy]; ch = gbuf[vplc>>glogy];
if (ch != 255) *((char *)p) = gtrans[((*((char *)p))<<8)+gpal[ch]]; if (ch != 255) *((char *)p) = gtrans[((*((char *)p))<<8)+gpal[ch]];
@ -141,7 +141,7 @@ void mhline(long bufplc, unsigned long bx, long cntup16, long junk, unsigned lon
gbuf = (char *)bufplc; gbuf = (char *)bufplc;
gpal = (char *)asm3; gpal = (char *)asm3;
for(cntup16>>=16;cntup16>0;cntup16--) for (cntup16>>=16;cntup16>0;cntup16--)
{ {
ch = gbuf[((bx>>(32-glogx))<<glogy)+(by>>(32-glogy))]; ch = gbuf[((bx>>(32-glogx))<<glogy)+(by>>(32-glogy))];
if (ch != 255) *((char *)p) = gpal[ch]; if (ch != 255) *((char *)p) = gpal[ch];
@ -160,7 +160,7 @@ void thline(long bufplc, unsigned long bx, long cntup16, long junk, unsigned lon
gpal = (char *)asm3; gpal = (char *)asm3;
if (transmode) if (transmode)
{ {
for(cntup16>>=16;cntup16>0;cntup16--) for (cntup16>>=16;cntup16>0;cntup16--)
{ {
ch = gbuf[((bx>>(32-glogx))<<glogy)+(by>>(32-glogy))]; ch = gbuf[((bx>>(32-glogx))<<glogy)+(by>>(32-glogy))];
if (ch != 255) *((char *)p) = gtrans[(*((char *)p))+(gpal[ch]<<8)]; if (ch != 255) *((char *)p) = gtrans[(*((char *)p))+(gpal[ch]<<8)];
@ -171,7 +171,7 @@ void thline(long bufplc, unsigned long bx, long cntup16, long junk, unsigned lon
} }
else else
{ {
for(cntup16>>=16;cntup16>0;cntup16--) for (cntup16>>=16;cntup16>0;cntup16--)
{ {
ch = gbuf[((bx>>(32-glogx))<<glogy)+(by>>(32-glogy))]; ch = gbuf[((bx>>(32-glogx))<<glogy)+(by>>(32-glogy))];
if (ch != 255) *((char *)p) = gtrans[((*((char *)p))<<8)+gpal[ch]]; if (ch != 255) *((char *)p) = gtrans[((*((char *)p))<<8)+gpal[ch]];
@ -194,7 +194,7 @@ void setupspritevline(long paloffs, long bxinc, long byinc, long ysiz)
void spritevline(long bx, long by, long cnt, long bufplc, long p) void spritevline(long bx, long by, long cnt, long bufplc, long p)
{ {
gbuf = (char *)bufplc; gbuf = (char *)bufplc;
for(;cnt>1;cnt--) for (;cnt>1;cnt--)
{ {
(*(char *)p) = gpal[gbuf[(bx>>16)*glogy+(by>>16)]]; (*(char *)p) = gpal[gbuf[(bx>>16)*glogy+(by>>16)]];
bx += gbxinc; bx += gbxinc;
@ -216,7 +216,7 @@ void mspritevline(long bx, long by, long cnt, long bufplc, long p)
char ch; char ch;
gbuf = (char *)bufplc; gbuf = (char *)bufplc;
for(;cnt>1;cnt--) for (;cnt>1;cnt--)
{ {
ch = gbuf[(bx>>16)*glogy+(by>>16)]; ch = gbuf[(bx>>16)*glogy+(by>>16)];
if (ch != 255) (*(char *)p) = gpal[ch]; if (ch != 255) (*(char *)p) = gpal[ch];
@ -240,7 +240,7 @@ void tspritevline(long bx, long by, long cnt, long bufplc, long p)
gbuf = (char *)bufplc; gbuf = (char *)bufplc;
if (transmode) if (transmode)
{ {
for(;cnt>1;cnt--) for (;cnt>1;cnt--)
{ {
ch = gbuf[(bx>>16)*glogy+(by>>16)]; ch = gbuf[(bx>>16)*glogy+(by>>16)];
if (ch != 255) *((char *)p) = gtrans[(*((char *)p))+(gpal[ch]<<8)]; if (ch != 255) *((char *)p) = gtrans[(*((char *)p))+(gpal[ch]<<8)];
@ -251,7 +251,7 @@ void tspritevline(long bx, long by, long cnt, long bufplc, long p)
} }
else else
{ {
for(;cnt>1;cnt--) for (;cnt>1;cnt--)
{ {
ch = gbuf[(bx>>16)*glogy+(by>>16)]; ch = gbuf[(bx>>16)*glogy+(by>>16)];
if (ch != 255) *((char *)p) = gtrans[((*((char *)p))<<8)+gpal[ch]]; if (ch != 255) *((char *)p) = gtrans[((*((char *)p))<<8)+gpal[ch]];
@ -271,7 +271,7 @@ void drawslab (long dx, long v, long dy, long vi, long vptr, long p)
while (dy > 0) while (dy > 0)
{ {
for(x=0;x<dx;x++) *(char *)(p+x) = gpal[(long)(*(char *)((v>>16)+vptr))]; for (x=0;x<dx;x++) *(char *)(p+x) = gpal[(long)(*(char *)((v>>16)+vptr))];
p += bpl; v += vi; dy--; p += bpl; v += vi; dy--;
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -23,7 +23,7 @@ static long kzipopen(char *filnam)
char newst[BMAX_PATH+4]; char newst[BMAX_PATH+4];
newst[0] = '|'; newst[0] = '|';
for(i=0;filnam[i] && (i < sizeof(newst)-2);i++) newst[i+1] = filnam[i]; for (i=0;filnam[i] && (i < sizeof(newst)-2);i++) newst[i+1] = filnam[i];
newst[i+1] = 0; newst[i+1] = 0;
return(kzopen(newst)); return(kzopen(newst));
} }
@ -65,7 +65,7 @@ static long cachesize = 0;
long cachecount = 0; long cachecount = 0;
char zerochar = 0; char zerochar = 0;
long cachestart = 0, cacnum = 0, agecount = 0; long cachestart = 0, cacnum = 0, agecount = 0;
typedef struct { long *hand, leng; char *lock; } cactype; typedef struct { long *hand, leng; char *lock ; } cactype;
cactype cac[MAXCACHEOBJECTS]; cactype cac[MAXCACHEOBJECTS];
static long lockrecip[200]; static long lockrecip[200];
@ -83,7 +83,7 @@ void initcache(long dacachestart, long dacachesize)
{ {
long i; long i;
for(i=1;i<200;i++) lockrecip[i] = (1<<28)/(200-i); for (i=1;i<200;i++) lockrecip[i] = (1<<28)/(200-i);
cachestart = dacachestart; cachestart = dacachestart;
cachesize = dacachesize; cachesize = dacachesize;
@ -115,13 +115,13 @@ void allocache(long *newhandle, long newbytes, char *newlockptr)
//Find best place //Find best place
bestval = 0x7fffffff; o1 = cachesize; bestval = 0x7fffffff; o1 = cachesize;
for(z=cacnum-1;z>=0;z--) for (z=cacnum-1;z>=0;z--)
{ {
o1 -= cac[z].leng; o1 -= cac[z].leng;
o2 = o1+newbytes; if (o2 > cachesize) continue; o2 = o1+newbytes; if (o2 > cachesize) continue;
daval = 0; daval = 0;
for(i=o1,zz=z;i<o2;i+=cac[zz++].leng) for (i=o1,zz=z;i<o2;i+=cac[zz++].leng)
{ {
if (*cac[zz].lock == 0) continue; if (*cac[zz].lock == 0) continue;
if (*cac[zz].lock >= 200) { daval = 0x7fffffff; break; } if (*cac[zz].lock >= 200) { daval = 0x7fffffff; break; }
@ -141,7 +141,7 @@ void allocache(long *newhandle, long newbytes, char *newlockptr)
reportandexit("CACHE SPACE ALL LOCKED UP!"); reportandexit("CACHE SPACE ALL LOCKED UP!");
//Suck things out //Suck things out
for(sucklen=-newbytes,suckz=bestz;sucklen<0;sucklen+=cac[suckz++].leng) for (sucklen=-newbytes,suckz=bestz;sucklen<0;sucklen+=cac[suckz++].leng)
if (*cac[suckz].lock) *cac[suckz].hand = 0; if (*cac[suckz].lock) *cac[suckz].hand = 0;
//Remove all blocks except 1 //Remove all blocks except 1
@ -167,7 +167,7 @@ void allocache(long *newhandle, long newbytes, char *newlockptr)
if (*cac[bestz].lock == 0) { cac[bestz].leng += sucklen; return; } if (*cac[bestz].lock == 0) { cac[bestz].leng += sucklen; return; }
cacnum++; if (cacnum > MAXCACHEOBJECTS) reportandexit("Too many objects in cache! (cacnum > MAXCACHEOBJECTS)"); cacnum++; if (cacnum > MAXCACHEOBJECTS) reportandexit("Too many objects in cache! (cacnum > MAXCACHEOBJECTS)");
for(z=cacnum-1;z>bestz;z--) cac[z] = cac[z-1]; for (z=cacnum-1;z>bestz;z--) cac[z] = cac[z-1];
cac[bestz].leng = sucklen; cac[bestz].leng = sucklen;
cac[bestz].lock = &zerochar; cac[bestz].lock = &zerochar;
} }
@ -177,7 +177,7 @@ void suckcache(long *suckptr)
long i; long i;
//Can't exit early, because invalid pointer might be same even though lock = 0 //Can't exit early, because invalid pointer might be same even though lock = 0
for(i=0;i<cacnum;i++) for (i=0;i<cacnum;i++)
if ((long)(*cac[i].hand) == (long)suckptr) if ((long)(*cac[i].hand) == (long)suckptr)
{ {
if (*cac[i].lock) *cac[i].hand = 0; if (*cac[i].lock) *cac[i].hand = 0;
@ -205,7 +205,7 @@ void agecache(void)
if (agecount >= cacnum) agecount = cacnum-1; if (agecount >= cacnum) agecount = cacnum-1;
if (agecount < 0) return; if (agecount < 0) return;
for(cnt=(cacnum>>4);cnt>=0;cnt--) for (cnt=(cacnum>>4);cnt>=0;cnt--)
{ {
ch = (*cac[agecount].lock); ch = (*cac[agecount].lock);
if (((ch-2)&255) < 198) if (((ch-2)&255) < 198)
@ -221,7 +221,7 @@ static void reportandexit(char *errormessage)
//setvmode(0x3); //setvmode(0x3);
j = 0; j = 0;
for(i=0;i<cacnum;i++) for (i=0;i<cacnum;i++)
{ {
Bprintf("%ld- ",i); Bprintf("%ld- ",i);
if (cac[i].hand) Bprintf("ptr: 0x%lx, ",*cac[i].hand); if (cac[i].hand) Bprintf("ptr: 0x%lx, ",*cac[i].hand);
@ -477,7 +477,7 @@ if (i < 0) { free(zfn); return -1; }
Bread(groupfil[numgroupfiles],gfilelist[numgroupfiles],gnumfiles[numgroupfiles]<<4); Bread(groupfil[numgroupfiles],gfilelist[numgroupfiles],gnumfiles[numgroupfiles]<<4);
j = 0; j = 0;
for(i=0;i<gnumfiles[numgroupfiles];i++) for (i=0;i<gnumfiles[numgroupfiles];i++)
{ {
k = B_LITTLE32(*((long *)&gfilelist[numgroupfiles][(i<<4)+12])); k = B_LITTLE32(*((long *)&gfilelist[numgroupfiles][(i<<4)+12]));
gfilelist[numgroupfiles][(i<<4)+12] = 0; gfilelist[numgroupfiles][(i<<4)+12] = 0;
@ -494,7 +494,7 @@ void uninitsinglegroupfile(long grphandle)
{ {
long i, grpnum = -1; long i, grpnum = -1;
for(i=numgroupfiles-1;i>=0;i--) for (i=numgroupfiles-1;i>=0;i--)
if (groupfil[i] != -1 && groupfil[i] == grphandle) if (groupfil[i] != -1 && groupfil[i] == grphandle)
{ {
kfree(gfilelist[i]); kfree(gfilelist[i]);
@ -522,7 +522,7 @@ void uninitsinglegroupfile(long grphandle)
} }
// fix up the open files that need attention // fix up the open files that need attention
for(i=0;i<MAXOPENFILES;i++) { for (i=0;i<MAXOPENFILES;i++) {
if (filegrp[i] >= 254) // external file (255) or ZIPped file (254) if (filegrp[i] >= 254) // external file (255) or ZIPped file (254)
continue; continue;
else if (filegrp[i] == grpnum) // close file in group we closed else if (filegrp[i] == grpnum) // close file in group we closed
@ -536,7 +536,7 @@ void uninitgroupfile(void)
{ {
long i; long i;
for(i=numgroupfiles-1;i>=0;i--) for (i=numgroupfiles-1;i>=0;i--)
if (groupfil[i] != -1) if (groupfil[i] != -1)
{ {
kfree(gfilelist[i]); kfree(gfilelist[i]);
@ -547,7 +547,7 @@ void uninitgroupfile(void)
numgroupfiles = 0; numgroupfiles = 0;
// JBF 20040111: "close" any files open in groups // JBF 20040111: "close" any files open in groups
for(i=0;i<MAXOPENFILES;i++) { for (i=0;i<MAXOPENFILES;i++) {
if (filegrp[i] < 254) // JBF 20040130: not external or ZIPped if (filegrp[i] < 254) // JBF 20040130: not external or ZIPped
filehan[i] = -1; filehan[i] = -1;
} }
@ -596,17 +596,17 @@ long kopen4load(char *filename, char searchfirst)
} }
#endif #endif
for(k=numgroupfiles-1;k>=0;k--) for (k=numgroupfiles-1;k>=0;k--)
{ {
if (searchfirst == 1) k = 0; if (searchfirst == 1) k = 0;
if (groupfil[k] >= 0) if (groupfil[k] >= 0)
{ {
for(i=gnumfiles[k]-1;i>=0;i--) for (i=gnumfiles[k]-1;i>=0;i--)
{ {
gfileptr = (char *)&gfilelist[k][i<<4]; gfileptr = (char *)&gfilelist[k][i<<4];
bad = 0; bad = 0;
for(j=0;j<13;j++) for (j=0;j<13;j++)
{ {
if (!filename[j]) break; if (!filename[j]) break;
if (toupperlookup[filename[j]] != toupperlookup[gfileptr[j]]) if (toupperlookup[filename[j]] != toupperlookup[gfileptr[j]])
@ -688,13 +688,16 @@ long klseek(long handle, long offset, long whence)
if (groupfil[groupnum] != -1) if (groupfil[groupnum] != -1)
{ {
switch(whence) switch (whence)
{ {
case BSEEK_SET: filepos[handle] = offset; break; case BSEEK_SET:
case BSEEK_END: i = filehan[handle]; filepos[handle] = offset; break;
case BSEEK_END:
i = filehan[handle];
filepos[handle] = (gfileoffs[groupnum][i+1]-gfileoffs[groupnum][i])+offset; filepos[handle] = (gfileoffs[groupnum][i+1]-gfileoffs[groupnum][i])+offset;
break; break;
case BSEEK_CUR: filepos[handle] += offset; break; case BSEEK_CUR:
filepos[handle] += offset; break;
} }
return(filepos[handle]); return(filepos[handle]);
} }
@ -902,7 +905,8 @@ CACHE1D_FIND_REC *klistpath(const char *_path, const char *mask, int type)
case -1: goto failure; case -1: goto failure;
//case 1: initprintf("%s:%s dropped for lower priority\n", d,dirent->name); break; //case 1: initprintf("%s:%s dropped for lower priority\n", d,dirent->name); break;
//case 0: initprintf("%s:%s accepted\n", d,dirent->name); break; //case 0: initprintf("%s:%s accepted\n", d,dirent->name); break;
default: break; default:
break;
} }
} }
Bclosedir(dir); Bclosedir(dir);
@ -970,10 +974,12 @@ CACHE1D_FIND_REC *klistpath(const char *_path, const char *mask, int type)
// the entry is in the clear // the entry is in the clear
switch (klistaddentry(&rec, buf, ftype, CACHE1D_SOURCE_ZIP)) { switch (klistaddentry(&rec, buf, ftype, CACHE1D_SOURCE_ZIP)) {
case -1: goto failure; case -1:
goto failure;
//case 1: initprintf("<ZIP>:%s dropped for lower priority\n", buf); break; //case 1: initprintf("<ZIP>:%s dropped for lower priority\n", buf); break;
//case 0: initprintf("<ZIP>:%s accepted\n", buf); break; //case 0: initprintf("<ZIP>:%s accepted\n", buf); break;
default: break; default:
break;
} }
} }
} }
@ -985,15 +991,17 @@ CACHE1D_FIND_REC *klistpath(const char *_path, const char *mask, int type)
buf[12] = 0; buf[12] = 0;
for (i=0;i<MAXGROUPFILES;i++) { for (i=0;i<MAXGROUPFILES;i++) {
if (groupfil[i] == -1) continue; if (groupfil[i] == -1) continue;
for(j=gnumfiles[i]-1;j>=0;j--) for (j=gnumfiles[i]-1;j>=0;j--)
{ {
Bmemcpy(buf,&gfilelist[i][j<<4],12); Bmemcpy(buf,&gfilelist[i][j<<4],12);
if (!Bwildmatch(buf,mask)) continue; if (!Bwildmatch(buf,mask)) continue;
switch (klistaddentry(&rec, buf, CACHE1D_FIND_FILE, CACHE1D_SOURCE_GRP)) { switch (klistaddentry(&rec, buf, CACHE1D_FIND_FILE, CACHE1D_SOURCE_GRP)) {
case -1: goto failure; case -1:
goto failure;
//case 1: initprintf("<GRP>:%s dropped for lower priority\n", workspace); break; //case 1: initprintf("<GRP>:%s dropped for lower priority\n", workspace); break;
//case 0: initprintf("<GRP>:%s accepted\n", workspace); break; //case 0: initprintf("<GRP>:%s accepted\n", workspace); break;
default: break; default:
break;
} }
} }
} }
@ -1052,7 +1060,7 @@ if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; }
copybufbyte(lzwbuf4,ptr,(long)dasizeof); copybufbyte(lzwbuf4,ptr,(long)dasizeof);
k += (long)dasizeof; k += (long)dasizeof;
for(i=1;i<count;i++) for (i=1;i<count;i++)
{ {
if (k >= kgoal) if (k >= kgoal)
{ {
@ -1060,7 +1068,7 @@ if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; }
if (kread(fil,lzwbuf5,(long)leng) != leng) return -1; if (kread(fil,lzwbuf5,(long)leng) != leng) return -1;
k = 0; kgoal = lzwuncompress(lzwbuf5,(long)leng,lzwbuf4); k = 0; kgoal = lzwuncompress(lzwbuf5,(long)leng,lzwbuf4);
} }
for(j=0;j<dasizeof;j++) ptr[j+dasizeof] = ((ptr[j]+lzwbuf4[j+k])&255); for (j=0;j<dasizeof;j++) ptr[j+dasizeof] = ((ptr[j]+lzwbuf4[j+k])&255);
k += dasizeof; k += dasizeof;
ptr += dasizeof; ptr += dasizeof;
} }
@ -1091,7 +1099,7 @@ if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; }
copybufbyte(lzwbuf4,ptr,(long)dasizeof); copybufbyte(lzwbuf4,ptr,(long)dasizeof);
k += (long)dasizeof; k += (long)dasizeof;
for(i=1;i<count;i++) for (i=1;i<count;i++)
{ {
if (k >= kgoal) if (k >= kgoal)
{ {
@ -1099,7 +1107,7 @@ if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; }
if (Bfread(lzwbuf5,(long)leng,1,fil) != 1) return -1; if (Bfread(lzwbuf5,(long)leng,1,fil) != 1) return -1;
k = 0; kgoal = lzwuncompress(lzwbuf5,(long)leng,lzwbuf4); k = 0; kgoal = lzwuncompress(lzwbuf5,(long)leng,lzwbuf4);
} }
for(j=0;j<dasizeof;j++) ptr[j+dasizeof] = ((ptr[j]+lzwbuf4[j+k])&255); for (j=0;j<dasizeof;j++) ptr[j+dasizeof] = ((ptr[j]+lzwbuf4[j+k])&255);
k += dasizeof; k += dasizeof;
ptr += dasizeof; ptr += dasizeof;
} }
@ -1132,9 +1140,9 @@ if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; }
Bwrite(fil,&swleng,2); Bwrite(fil,lzwbuf5,(long)leng); Bwrite(fil,&swleng,2); Bwrite(fil,lzwbuf5,(long)leng);
} }
for(i=1;i<count;i++) for (i=1;i<count;i++)
{ {
for(j=0;j<dasizeof;j++) lzwbuf4[j+k] = ((ptr[j+dasizeof]-ptr[j])&255); for (j=0;j<dasizeof;j++) lzwbuf4[j+k] = ((ptr[j+dasizeof]-ptr[j])&255);
k += dasizeof; k += dasizeof;
if (k > LZWSIZE-dasizeof) if (k > LZWSIZE-dasizeof)
{ {
@ -1176,9 +1184,9 @@ if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; }
Bfwrite(&swleng,2,1,fil); Bfwrite(lzwbuf5,(long)leng,1,fil); Bfwrite(&swleng,2,1,fil); Bfwrite(lzwbuf5,(long)leng,1,fil);
} }
for(i=1;i<count;i++) for (i=1;i<count;i++)
{ {
for(j=0;j<dasizeof;j++) lzwbuf4[j+k] = ((ptr[j+dasizeof]-ptr[j])&255); for (j=0;j<dasizeof;j++) lzwbuf4[j+k] = ((ptr[j+dasizeof]-ptr[j])&255);
k += dasizeof; k += dasizeof;
if (k > LZWSIZE-dasizeof) if (k > LZWSIZE-dasizeof)
{ {
@ -1201,7 +1209,7 @@ static long lzwcompress(char *lzwinbuf, long uncompleng, char *lzwoutbuf)
long bytecnt1, bitcnt, numbits, oneupnumbits; long bytecnt1, bitcnt, numbits, oneupnumbits;
short *shortptr; short *shortptr;
for(i=255;i>=0;i--) { lzwbuf1[i] = i; lzwbuf3[i] = (i+1)&255; } for (i=255;i>=0;i--) { lzwbuf1[i] = i; lzwbuf3[i] = (i+1)&255; }
clearbuf(lzwbuf2,256>>1,0xffffffff); clearbuf(lzwbuf2,256>>1,0xffffffff);
clearbuf(lzwoutbuf,((uncompleng+15)+3)>>2,0L); clearbuf(lzwoutbuf,((uncompleng+15)+3)>>2,0L);
@ -1253,7 +1261,7 @@ static long lzwcompress(char *lzwinbuf, long uncompleng, char *lzwoutbuf)
return((bitcnt+7)>>3); return((bitcnt+7)>>3);
} }
shortptr[1] = (short)0; shortptr[1] = (short)0;
for(i=0;i<uncompleng;i++) lzwoutbuf[i+4] = lzwinbuf[i]; for (i=0;i<uncompleng;i++) lzwoutbuf[i+4] = lzwinbuf[i];
return(uncompleng+4); return(uncompleng+4);
} }
@ -1270,7 +1278,7 @@ static long lzwuncompress(char *lzwinbuf, long compleng, char *lzwoutbuf)
copybuf(lzwinbuf+4,lzwoutbuf,((compleng-4)+3)>>2); copybuf(lzwinbuf+4,lzwoutbuf,((compleng-4)+3)>>2);
return((long)B_LITTLE16(shortptr[0])); //uncompleng return((long)B_LITTLE16(shortptr[0])); //uncompleng
} }
for(i=255;i>=0;i--) { lzwbuf2[i] = i; lzwbuf3[i] = i; } for (i=255;i>=0;i--) { lzwbuf2[i] = i; lzwbuf3[i] = i; }
currstr = 256; bitcnt = (4<<3); outbytecnt = 0; currstr = 256; bitcnt = (4<<3); outbytecnt = 0;
numbits = 8; oneupnumbits = (1<<8); numbits = 8; oneupnumbits = (1<<8);
do do
@ -1283,11 +1291,11 @@ static long lzwuncompress(char *lzwinbuf, long compleng, char *lzwoutbuf)
lzwbuf3[currstr] = dat; lzwbuf3[currstr] = dat;
for(leng=0;dat>=256;leng++,dat=lzwbuf3[dat]) for (leng=0;dat>=256;leng++,dat=lzwbuf3[dat])
lzwbuf1[leng] = lzwbuf2[dat]; lzwbuf1[leng] = lzwbuf2[dat];
lzwoutbuf[outbytecnt++] = dat; lzwoutbuf[outbytecnt++] = dat;
for(i=leng-1;i>=0;i--) lzwoutbuf[outbytecnt++] = lzwbuf1[i]; for (i=leng-1;i>=0;i--) lzwoutbuf[outbytecnt++] = lzwbuf1[i];
lzwbuf2[currstr-1] = dat; lzwbuf2[currstr] = dat; lzwbuf2[currstr-1] = dat; lzwbuf2[currstr] = dat;
currstr++; currstr++;

View file

@ -95,9 +95,12 @@ bssize_t Bread(int fd, void *buf, bsize_t count)
int Blseek(int fildes, int offset, int whence) int Blseek(int fildes, int offset, int whence)
{ {
switch (whence) { switch (whence) {
case BSEEK_SET: whence=SEEK_SET; break; case BSEEK_SET:
case BSEEK_CUR: whence=SEEK_CUR; break; whence=SEEK_SET; break;
case BSEEK_END: whence=SEEK_END; break; case BSEEK_CUR:
whence=SEEK_CUR; break;
case BSEEK_END:
whence=SEEK_END; break;
} }
return lseek(fildes,offset,whence); return lseek(fildes,offset,whence);
} }
@ -686,7 +689,7 @@ long Bwildmatch (const char *i, const char *j)
{ {
if (*j == '*') if (*j == '*')
{ {
for(k=i,j++;*k;k++) if (Bwildmatch(k,j)) return(1); for (k=i,j++;*k;k++) if (Bwildmatch(k,j)) return(1);
continue; continue;
} }
if (!*i) return(0); if (!*i) return(0);

View file

@ -13,7 +13,8 @@
static long vesares[13][2] = {{320,200},{360,200},{320,240},{360,240},{320,400}, static long vesares[13][2] = {{320,200},{360,200},{320,240},{360,240},{320,400},
{360,400},{640,350},{640,400},{640,480},{800,600}, {360,400},{640,350},{640,400},{640,480},{800,600},
{1024,768},{1280,1024},{1600,1200}}; {1024,768},{1280,1024},{1600,1200}
};
static int readconfig(BFILE *fp, const char *key, char *value, unsigned len) static int readconfig(BFILE *fp, const char *key, char *value, unsigned len)
{ {

View file

@ -204,7 +204,7 @@ static int getatoken(scriptfile *sf, tokenlist *tl, int ntokens)
tok = scriptfile_gettoken(sf); tok = scriptfile_gettoken(sf);
if (!tok) return T_EOF; if (!tok) return T_EOF;
for(i=0;i<ntokens;i++) { for (i=0;i<ntokens;i++) {
if (!Bstrcasecmp(tok, tl[i].text)) if (!Bstrcasecmp(tok, tl[i].text))
return tl[i].tokenid; return tl[i].tokenid;
} }
@ -465,7 +465,7 @@ static int defsparser(scriptfile *script)
if (scriptfile_getsymbol(script,&xsiz)) break; if (scriptfile_getsymbol(script,&xsiz)) break;
if (scriptfile_getsymbol(script,&ysiz)) break; if (scriptfile_getsymbol(script,&ysiz)) break;
if(xsiz > 0 && ysiz > 0) if (xsiz > 0 && ysiz > 0)
{ {
tilesizx[tile] = xsiz; tilesizx[tile] = xsiz;
tilesizy[tile] = ysiz; tilesizy[tile] = ysiz;
@ -501,7 +501,7 @@ static int defsparser(scriptfile *script)
{ {
if ((unsigned long)i < MAXTILES) if ((unsigned long)i < MAXTILES)
{ {
if(xsiz > 0 && ysiz > 0) if (xsiz > 0 && ysiz > 0)
{ {
tilesizx[i] = xsiz; tilesizx[i] = xsiz;
tilesizy[i] = ysiz; tilesizy[i] = ysiz;
@ -563,13 +563,17 @@ static int defsparser(scriptfile *script)
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
for (tilex = ftilenume; tilex <= ltilenume && happy; tilex++) { for (tilex = ftilenume; tilex <= ltilenume && happy; tilex++) {
switch (md_defineframe(lastmodelid, framename, tilex, max(0,modelskin))) { switch (md_defineframe(lastmodelid, framename, tilex, max(0,modelskin))) {
case 0: break; case 0:
case -1: happy = 0; break; // invalid model id!? break;
case -2: initprintf("Invalid tile number on line %s:%d\n", case -1:
happy = 0; break; // invalid model id!?
case -2:
initprintf("Invalid tile number on line %s:%d\n",
script->filename, scriptfile_getlinum(script,cmdtokptr)); script->filename, scriptfile_getlinum(script,cmdtokptr));
happy = 0; happy = 0;
break; break;
case -3: initprintf("Invalid frame name on line %s:%d\n", case -3:
initprintf("Invalid frame name on line %s:%d\n",
script->filename, scriptfile_getlinum(script,cmdtokptr)); script->filename, scriptfile_getlinum(script,cmdtokptr));
happy = 0; happy = 0;
break; break;
@ -596,15 +600,20 @@ static int defsparser(scriptfile *script)
} }
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
switch (md_defineanimation(lastmodelid, startframe, endframe, (int)(dfps*(65536.0*.001)), flags)) { switch (md_defineanimation(lastmodelid, startframe, endframe, (int)(dfps*(65536.0*.001)), flags)) {
case 0: break; case 0:
case -1: break; // invalid model id!? break;
case -2: initprintf("Invalid starting frame name on line %s:%d\n", case -1:
break; // invalid model id!?
case -2:
initprintf("Invalid starting frame name on line %s:%d\n",
script->filename, scriptfile_getlinum(script,cmdtokptr)); script->filename, scriptfile_getlinum(script,cmdtokptr));
break; break;
case -3: initprintf("Invalid ending frame name on line %s:%d\n", case -3:
initprintf("Invalid ending frame name on line %s:%d\n",
script->filename, scriptfile_getlinum(script,cmdtokptr)); script->filename, scriptfile_getlinum(script,cmdtokptr));
break; break;
case -4: initprintf("Out of memory on line %s:%d\n", case -4:
initprintf("Out of memory on line %s:%d\n",
script->filename, scriptfile_getlinum(script,cmdtokptr)); script->filename, scriptfile_getlinum(script,cmdtokptr));
break; break;
} }
@ -636,15 +645,20 @@ static int defsparser(scriptfile *script)
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
switch (md_defineskin(lastmodelid, skinfn, palnum, max(0,modelskin), 0)) { switch (md_defineskin(lastmodelid, skinfn, palnum, max(0,modelskin), 0)) {
case 0: break; case 0:
case -1: break; // invalid model id!? break;
case -2: initprintf("Invalid skin filename on line %s:%d\n", case -1:
break; // invalid model id!?
case -2:
initprintf("Invalid skin filename on line %s:%d\n",
script->filename, scriptfile_getlinum(script,cmdtokptr)); script->filename, scriptfile_getlinum(script,cmdtokptr));
break; break;
case -3: initprintf("Invalid palette number on line %s:%d\n", case -3:
initprintf("Invalid palette number on line %s:%d\n",
script->filename, scriptfile_getlinum(script,cmdtokptr)); script->filename, scriptfile_getlinum(script,cmdtokptr));
break; break;
case -4: initprintf("Out of memory on line %s:%d\n", case -4:
initprintf("Out of memory on line %s:%d\n",
script->filename, scriptfile_getlinum(script,cmdtokptr)); script->filename, scriptfile_getlinum(script,cmdtokptr));
break; break;
} }
@ -732,9 +746,12 @@ static int defsparser(scriptfile *script)
while (script->textptr < modelend) { while (script->textptr < modelend) {
switch (getatoken(script,modeltokens,sizeof(modeltokens)/sizeof(tokenlist))) { switch (getatoken(script,modeltokens,sizeof(modeltokens)/sizeof(tokenlist))) {
//case T_ERROR: initprintf("Error on line %s:%d in model tokens\n", script->filename,script->linenum); break; //case T_ERROR: initprintf("Error on line %s:%d in model tokens\n", script->filename,script->linenum); break;
case T_SCALE: scriptfile_getdouble(script,&scale); break; case T_SCALE:
case T_SHADE: scriptfile_getnumber(script,&shadeoffs); break; scriptfile_getdouble(script,&scale); break;
case T_ZADD: scriptfile_getdouble(script,&mzadd); break; case T_SHADE:
scriptfile_getnumber(script,&shadeoffs); break;
case T_ZADD:
scriptfile_getdouble(script,&mzadd); break;
case T_FRAME: case T_FRAME:
{ {
char *frametokptr = script->ltextptr; char *frametokptr = script->ltextptr;
@ -743,11 +760,15 @@ static int defsparser(scriptfile *script)
if (scriptfile_getbraces(script,&frameend)) break; if (scriptfile_getbraces(script,&frameend)) break;
while (script->textptr < frameend) { while (script->textptr < frameend) {
switch(getatoken(script,modelframetokens,sizeof(modelframetokens)/sizeof(tokenlist))) { switch (getatoken(script,modelframetokens,sizeof(modelframetokens)/sizeof(tokenlist))) {
case T_FRAME: scriptfile_getstring(script,&framename); break; case T_FRAME:
case T_TILE: scriptfile_getsymbol(script,&ftilenume); ltilenume = ftilenume; break; scriptfile_getstring(script,&framename); break;
case T_TILE0: scriptfile_getsymbol(script,&ftilenume); break; //first tile number case T_TILE:
case T_TILE1: scriptfile_getsymbol(script,&ltilenume); break; //last tile number (inclusive) scriptfile_getsymbol(script,&ftilenume); ltilenume = ftilenume; break;
case T_TILE0:
scriptfile_getsymbol(script,&ftilenume); break; //first tile number
case T_TILE1:
scriptfile_getsymbol(script,&ltilenume); break; //last tile number (inclusive)
} }
} }
@ -769,13 +790,17 @@ static int defsparser(scriptfile *script)
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
for (tilex = ftilenume; tilex <= ltilenume && happy; tilex++) { for (tilex = ftilenume; tilex <= ltilenume && happy; tilex++) {
switch (md_defineframe(lastmodelid, framename, tilex, max(0,modelskin))) { switch (md_defineframe(lastmodelid, framename, tilex, max(0,modelskin))) {
case 0: break; case 0:
case -1: happy = 0; break; // invalid model id!? break;
case -2: initprintf("Invalid tile number on line %s:%d\n", case -1:
happy = 0; break; // invalid model id!?
case -2:
initprintf("Invalid tile number on line %s:%d\n",
script->filename, scriptfile_getlinum(script,frametokptr)); script->filename, scriptfile_getlinum(script,frametokptr));
happy = 0; happy = 0;
break; break;
case -3: initprintf("Invalid frame name on line %s:%d\n", case -3:
initprintf("Invalid frame name on line %s:%d\n",
script->filename, scriptfile_getlinum(script,frametokptr)); script->filename, scriptfile_getlinum(script,frametokptr));
happy = 0; happy = 0;
break; break;
@ -794,11 +819,15 @@ static int defsparser(scriptfile *script)
if (scriptfile_getbraces(script,&animend)) break; if (scriptfile_getbraces(script,&animend)) break;
while (script->textptr < animend) { while (script->textptr < animend) {
switch(getatoken(script,modelanimtokens,sizeof(modelanimtokens)/sizeof(tokenlist))) { switch (getatoken(script,modelanimtokens,sizeof(modelanimtokens)/sizeof(tokenlist))) {
case T_FRAME0: scriptfile_getstring(script,&startframe); break; case T_FRAME0:
case T_FRAME1: scriptfile_getstring(script,&endframe); break; scriptfile_getstring(script,&startframe); break;
case T_FPS: scriptfile_getdouble(script,&dfps); break; //animation frame rate case T_FRAME1:
case T_FLAGS: scriptfile_getsymbol(script,&flags); break; scriptfile_getstring(script,&endframe); break;
case T_FPS:
scriptfile_getdouble(script,&dfps); break; //animation frame rate
case T_FLAGS:
scriptfile_getsymbol(script,&flags); break;
} }
} }
@ -812,15 +841,20 @@ static int defsparser(scriptfile *script)
} }
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
switch (md_defineanimation(lastmodelid, startframe, endframe, (int)(dfps*(65536.0*.001)), flags)) { switch (md_defineanimation(lastmodelid, startframe, endframe, (int)(dfps*(65536.0*.001)), flags)) {
case 0: break; case 0:
case -1: break; // invalid model id!? break;
case -2: initprintf("Invalid starting frame name on line %s:%d\n", case -1:
break; // invalid model id!?
case -2:
initprintf("Invalid starting frame name on line %s:%d\n",
script->filename, scriptfile_getlinum(script,animtokptr)); script->filename, scriptfile_getlinum(script,animtokptr));
break; break;
case -3: initprintf("Invalid ending frame name on line %s:%d\n", case -3:
initprintf("Invalid ending frame name on line %s:%d\n",
script->filename, scriptfile_getlinum(script,animtokptr)); script->filename, scriptfile_getlinum(script,animtokptr));
break; break;
case -4: initprintf("Out of memory on line %s:%d\n", case -4:
initprintf("Out of memory on line %s:%d\n",
script->filename, scriptfile_getlinum(script,animtokptr)); script->filename, scriptfile_getlinum(script,animtokptr));
break; break;
} }
@ -834,10 +868,13 @@ static int defsparser(scriptfile *script)
if (scriptfile_getbraces(script,&skinend)) break; if (scriptfile_getbraces(script,&skinend)) break;
while (script->textptr < skinend) { while (script->textptr < skinend) {
switch(getatoken(script,modelskintokens,sizeof(modelskintokens)/sizeof(tokenlist))) { switch (getatoken(script,modelskintokens,sizeof(modelskintokens)/sizeof(tokenlist))) {
case T_PAL: scriptfile_getsymbol(script,&palnum); break; case T_PAL:
case T_FILE: scriptfile_getstring(script,&skinfn); break; //skin filename scriptfile_getsymbol(script,&palnum); break;
case T_SURF: scriptfile_getnumber(script,&surfnum); break; case T_FILE:
scriptfile_getstring(script,&skinfn); break; //skin filename
case T_SURF:
scriptfile_getnumber(script,&surfnum); break;
} }
} }
@ -851,15 +888,20 @@ static int defsparser(scriptfile *script)
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
switch (md_defineskin(lastmodelid, skinfn, palnum, max(0,modelskin), surfnum)) { switch (md_defineskin(lastmodelid, skinfn, palnum, max(0,modelskin), surfnum)) {
case 0: break; case 0:
case -1: break; // invalid model id!? break;
case -2: initprintf("Invalid skin filename on line %s:%d\n", case -1:
break; // invalid model id!?
case -2:
initprintf("Invalid skin filename on line %s:%d\n",
script->filename, scriptfile_getlinum(script,skintokptr)); script->filename, scriptfile_getlinum(script,skintokptr));
break; break;
case -3: initprintf("Invalid palette number on line %s:%d\n", case -3:
initprintf("Invalid palette number on line %s:%d\n",
script->filename, scriptfile_getlinum(script,skintokptr)); script->filename, scriptfile_getlinum(script,skintokptr));
break; break;
case -4: initprintf("Out of memory on line %s:%d\n", case -4:
initprintf("Out of memory on line %s:%d\n",
script->filename, scriptfile_getlinum(script,skintokptr)); script->filename, scriptfile_getlinum(script,skintokptr));
break; break;
} }
@ -874,18 +916,29 @@ static int defsparser(scriptfile *script)
if (scriptfile_getbraces(script,&frameend)) break; if (scriptfile_getbraces(script,&frameend)) break;
while (script->textptr < frameend) { while (script->textptr < frameend) {
switch(getatoken(script,modelhudtokens,sizeof(modelhudtokens)/sizeof(tokenlist))) { switch (getatoken(script,modelhudtokens,sizeof(modelhudtokens)/sizeof(tokenlist))) {
case T_TILE: scriptfile_getsymbol(script,&ftilenume); ltilenume = ftilenume; break; case T_TILE:
case T_TILE0: scriptfile_getsymbol(script,&ftilenume); break; //first tile number scriptfile_getsymbol(script,&ftilenume); ltilenume = ftilenume; break;
case T_TILE1: scriptfile_getsymbol(script,&ltilenume); break; //last tile number (inclusive) case T_TILE0:
case T_XADD: scriptfile_getdouble(script,&xadd); break; scriptfile_getsymbol(script,&ftilenume); break; //first tile number
case T_YADD: scriptfile_getdouble(script,&yadd); break; case T_TILE1:
case T_ZADD: scriptfile_getdouble(script,&zadd); break; scriptfile_getsymbol(script,&ltilenume); break; //last tile number (inclusive)
case T_ANGADD:scriptfile_getdouble(script,&angadd); break; case T_XADD:
case T_HIDE: flags |= 1; break; scriptfile_getdouble(script,&xadd); break;
case T_NOBOB: flags |= 2; break; case T_YADD:
case T_FLIPPED: flags |= 4; break; scriptfile_getdouble(script,&yadd); break;
case T_NODEPTH: flags |= 8; break; case T_ZADD:
scriptfile_getdouble(script,&zadd); break;
case T_ANGADD:
scriptfile_getdouble(script,&angadd); break;
case T_HIDE:
flags |= 1; break;
case T_NOBOB:
flags |= 2; break;
case T_FLIPPED:
flags |= 4; break;
case T_NODEPTH:
flags |= 8; break;
} }
} }
@ -907,13 +960,17 @@ static int defsparser(scriptfile *script)
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
for (tilex = ftilenume; tilex <= ltilenume && happy; tilex++) { for (tilex = ftilenume; tilex <= ltilenume && happy; tilex++) {
switch (md_definehud(lastmodelid, tilex, xadd, yadd, zadd, angadd, flags)) { switch (md_definehud(lastmodelid, tilex, xadd, yadd, zadd, angadd, flags)) {
case 0: break; case 0:
case -1: happy = 0; break; // invalid model id!? break;
case -2: initprintf("Invalid tile number on line %s:%d\n", case -1:
happy = 0; break; // invalid model id!?
case -2:
initprintf("Invalid tile number on line %s:%d\n",
script->filename, scriptfile_getlinum(script,hudtokptr)); script->filename, scriptfile_getlinum(script,hudtokptr));
happy = 0; happy = 0;
break; break;
case -3: initprintf("Invalid frame name on line %s:%d\n", case -3:
initprintf("Invalid frame name on line %s:%d\n",
script->filename, scriptfile_getlinum(script,hudtokptr)); script->filename, scriptfile_getlinum(script,hudtokptr));
happy = 0; happy = 0;
break; break;
@ -969,7 +1026,7 @@ static int defsparser(scriptfile *script)
if ((tile1 < 0) || (tile0 >= MAXTILES)) if ((tile1 < 0) || (tile0 >= MAXTILES))
{ initprintf("Invalid tile range on line %s:%d\n",script->filename, scriptfile_getlinum(script,voxeltokptr)); break; } { initprintf("Invalid tile range on line %s:%d\n",script->filename, scriptfile_getlinum(script,voxeltokptr)); break; }
#ifdef SUPERBUILD #ifdef SUPERBUILD
for(tilex=tile0;tilex<=tile1;tilex++) tiletovox[tilex] = lastvoxid; for (tilex=tile0;tilex<=tile1;tilex++) tiletovox[tilex] = lastvoxid;
#endif #endif
break; //last tile number (inclusive) break; //last tile number (inclusive)
case T_SCALE: { case T_SCALE: {
@ -995,14 +1052,22 @@ static int defsparser(scriptfile *script)
while (script->textptr < modelend) { while (script->textptr < modelend) {
switch (getatoken(script,skyboxtokens,sizeof(skyboxtokens)/sizeof(tokenlist))) { switch (getatoken(script,skyboxtokens,sizeof(skyboxtokens)/sizeof(tokenlist))) {
//case T_ERROR: initprintf("Error on line %s:%d in skybox tokens\n",script->filename,linenum); break; //case T_ERROR: initprintf("Error on line %s:%d in skybox tokens\n",script->filename,linenum); break;
case T_TILE: scriptfile_getsymbol(script,&tile ); break; case T_TILE:
case T_PAL: scriptfile_getsymbol(script,&pal ); break; scriptfile_getsymbol(script,&tile ); break;
case T_FRONT: scriptfile_getstring(script,&fn[0]); break; case T_PAL:
case T_RIGHT: scriptfile_getstring(script,&fn[1]); break; scriptfile_getsymbol(script,&pal ); break;
case T_BACK: scriptfile_getstring(script,&fn[2]); break; case T_FRONT:
case T_LEFT: scriptfile_getstring(script,&fn[3]); break; scriptfile_getstring(script,&fn[0]); break;
case T_TOP: scriptfile_getstring(script,&fn[4]); break; case T_RIGHT:
case T_BOTTOM:scriptfile_getstring(script,&fn[5]); break; scriptfile_getstring(script,&fn[1]); break;
case T_BACK:
scriptfile_getstring(script,&fn[2]); break;
case T_LEFT:
scriptfile_getstring(script,&fn[3]); break;
case T_TOP:
scriptfile_getstring(script,&fn[4]); break;
case T_BOTTOM:
scriptfile_getstring(script,&fn[5]); break;
} }
} }
@ -1028,11 +1093,16 @@ static int defsparser(scriptfile *script)
if (scriptfile_getbraces(script,&tintend)) break; if (scriptfile_getbraces(script,&tintend)) break;
while (script->textptr < tintend) { while (script->textptr < tintend) {
switch (getatoken(script,tinttokens,sizeof(tinttokens)/sizeof(tokenlist))) { switch (getatoken(script,tinttokens,sizeof(tinttokens)/sizeof(tokenlist))) {
case T_PAL: scriptfile_getsymbol(script,&pal); break; case T_PAL:
case T_RED: scriptfile_getnumber(script,&red); red = min(255,max(0,red)); break; scriptfile_getsymbol(script,&pal); break;
case T_GREEN: scriptfile_getnumber(script,&green); green = min(255,max(0,green)); break; case T_RED:
case T_BLUE: scriptfile_getnumber(script,&blue); blue = min(255,max(0,blue)); break; scriptfile_getnumber(script,&red); red = min(255,max(0,red)); break;
case T_FLAGS: scriptfile_getsymbol(script,&flags); break; case T_GREEN:
scriptfile_getnumber(script,&green); green = min(255,max(0,green)); break;
case T_BLUE:
scriptfile_getnumber(script,&blue); blue = min(255,max(0,blue)); break;
case T_FLAGS:
scriptfile_getsymbol(script,&flags); break;
} }
} }
@ -1064,10 +1134,14 @@ static int defsparser(scriptfile *script)
if (scriptfile_getbraces(script,&palend)) break; if (scriptfile_getbraces(script,&palend)) break;
while (script->textptr < palend) { while (script->textptr < palend) {
switch (getatoken(script,texturetokens_pal,sizeof(texturetokens_pal)/sizeof(tokenlist))) { switch (getatoken(script,texturetokens_pal,sizeof(texturetokens_pal)/sizeof(tokenlist))) {
case T_FILE: scriptfile_getstring(script,&fn); break; case T_FILE:
case T_ALPHACUT: scriptfile_getdouble(script,&alphacut); break; scriptfile_getstring(script,&fn); break;
case T_NOCOMPRESS: flags |= 1; break; case T_ALPHACUT:
default: break; scriptfile_getdouble(script,&alphacut); break;
case T_NOCOMPRESS:
flags |= 1; break;
default:
break;
} }
} }
@ -1089,7 +1163,8 @@ static int defsparser(scriptfile *script)
hicsetsubsttex(tile,pal,fn,alphacut,flags); hicsetsubsttex(tile,pal,fn,alphacut,flags);
} break; } break;
default: break; default:
break;
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -6,12 +6,12 @@
#if defined USE_OPENGL #if defined USE_OPENGL
#ifdef RENDERTYPESDL #ifdef RENDERTYPESDL
# ifdef __APPLE__ # ifdef __APPLE__
# include <SDL/SDL.h> # include <SDL/SDL.h>
# else # else
#include "SDL.h" #include "SDL.h"
#endif #endif
#endif #endif
void (APIENTRY * bglClearColor)( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); void (APIENTRY * bglClearColor)( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
@ -160,7 +160,7 @@ int loadgldriver(const char *driver)
#endif #endif
if (!driver) { if (!driver) {
#ifdef _WIN32 #ifdef _WIN32
driver = "OPENGL32.DLL"; driver = "OPENGL32.DLL";
#elif defined __APPLE__ #elif defined __APPLE__
driver = "/System/Library/Frameworks/OpenGL.framework/OpenGL"; driver = "/System/Library/Frameworks/OpenGL.framework/OpenGL";

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,7 @@ child = (long *)malloc((ucompleng+256)*sizeof(long)); if (!child) { free(nodev);
sibry = (long *)malloc((ucompleng+256)*sizeof(long)); if (!sibry) { free(sibly); free(child); free(nodev); return(0); } sibry = (long *)malloc((ucompleng+256)*sizeof(long)); if (!sibry) { free(sibly); free(child); free(nodev); return(0); }
#endif #endif
for(i=255;i>=0;i--) { nodev[i] = i; child[i] = -1; } for (i=255;i>=0;i--) { nodev[i] = i; child[i] = -1; }
memset(compbuf,0,ucompleng+15); memset(compbuf,0,ucompleng+15);
cptr = ucompbuf; eptr = &ucompbuf[ucompleng]; cptr = ucompbuf; eptr = &ucompbuf[ucompleng];
@ -32,7 +32,7 @@ child = (long *)malloc((ucompleng+256)*sizeof(long)); if (!child) { free(nodev);
numnodes = 256; bitcnt = (4<<3); nbits = 8; oneupnbits = (1<<8); hmask = ((oneupnbits>>1)-1); numnodes = 256; bitcnt = (4<<3); nbits = 8; oneupnbits = (1<<8); hmask = ((oneupnbits>>1)-1);
do do
{ {
for(i=cptr[0];i>=0;i=j) for (i=cptr[0];i>=0;i=j)
{ {
cptr++; if (cptr >= eptr) goto lzwcompbreak2b; cptr++; if (cptr >= eptr) goto lzwcompbreak2b;
j = child[i]; if (j < 0) { child[i] = numnodes; break; } j = child[i]; if (j < 0) { child[i] = numnodes; break; }
@ -45,12 +45,14 @@ child = (long *)malloc((ucompleng+256)*sizeof(long)); if (!child) { free(nodev);
else { if (sibry[j] < 0) { sibry[j] = numnodes; goto lzwcompbreak2a; } j = sibry[j]; } else { if (sibry[j] < 0) { sibry[j] = numnodes; goto lzwcompbreak2a; } j = sibry[j]; }
} }
#else #else
for(;nodev[j]!=cptr[0];j=sibly[j]) for (;nodev[j]!=cptr[0];j=sibly[j])
if (sibly[j] < 0) { sibly[j] = numnodes; goto lzwcompbreak2a; } if (sibly[j] < 0) { sibly[j] = numnodes; goto lzwcompbreak2a; }
#endif #endif
} }
lzwcompbreak2a: nodev[numnodes] = cptr[0]; lzwcompbreak2a:
lzwcompbreak2b: child[numnodes] = sibly[numnodes] = -1; nodev[numnodes] = cptr[0];
lzwcompbreak2b:
child[numnodes] = sibly[numnodes] = -1;
#if USENEW #if USENEW
sibry[numnodes] = -1; sibry[numnodes] = -1;
#endif #endif
@ -94,13 +96,13 @@ suffix = (unsigned char *)malloc(totnodes*sizeof(char)); if (!suffix) { free(pre
prefix[numnodes] = dat; prefix[numnodes] = dat;
ucompbuf++; ucompbuf++;
for(leng=0;dat>=256;dat=prefix[dat]) { for (leng=0;dat>=256;dat=prefix[dat]) {
if ((long)ucompbuf+leng-ucomp > ucompleng) goto bail; if ((long)ucompbuf+leng-ucomp > ucompleng) goto bail;
ucompbuf[leng++] = suffix[dat]; ucompbuf[leng++] = suffix[dat];
} }
ucptr = &ucompbuf[leng-1]; ucptr = &ucompbuf[leng-1];
for(i=(leng>>1)-1;i>=0;i--) { ch = ucompbuf[i]; ucompbuf[i] = ucptr[-i]; ucptr[-i] = ch; } for (i=(leng>>1)-1;i>=0;i--) { ch = ucompbuf[i]; ucompbuf[i] = ucptr[-i]; ucptr[-i] = ch; }
ucompbuf[-1] = dat; ucompbuf += leng; ucompbuf[-1] = dat; ucompbuf += leng;
suffix[numnodes-1] = suffix[numnodes] = dat; suffix[numnodes-1] = suffix[numnodes] = dat;

View file

@ -206,7 +206,7 @@ static void freeallmodels ()
if (models) if (models)
{ {
for(i=0;i<nextmodelid;i++) mdfree(models[i]); for (i=0;i<nextmodelid;i++) mdfree(models[i]);
free(models); models = NULL; free(models); models = NULL;
nummodelsalloced = 0; nummodelsalloced = 0;
nextmodelid = 0; nextmodelid = 0;
@ -227,26 +227,26 @@ static void clearskins ()
mdmodel *m; mdmodel *m;
int i, j; int i, j;
for(i=0;i<nextmodelid;i++) for (i=0;i<nextmodelid;i++)
{ {
m = models[i]; m = models[i];
if (m->mdnum == 1) { if (m->mdnum == 1) {
voxmodel *v = (voxmodel*)m; voxmodel *v = (voxmodel*)m;
for(j=0;j<MAXPALOOKUPS;j++) { for (j=0;j<MAXPALOOKUPS;j++) {
if (v->texid[j]) bglDeleteTextures(1,(GLuint*)&v->texid[j]); if (v->texid[j]) bglDeleteTextures(1,(GLuint*)&v->texid[j]);
v->texid[j] = 0; v->texid[j] = 0;
} }
} else if (m->mdnum == 2 || m->mdnum == 3) { } else if (m->mdnum == 2 || m->mdnum == 3) {
md2model *m2 = (md2model*)m; md2model *m2 = (md2model*)m;
mdskinmap_t *sk; mdskinmap_t *sk;
for(j=0;j<m2->numskins*(HICEFFECTMASK+1);j++) for (j=0;j<m2->numskins*(HICEFFECTMASK+1);j++)
{ {
if (m2->texid[j]) bglDeleteTextures(1,(GLuint*)&m2->texid[j]); if (m2->texid[j]) bglDeleteTextures(1,(GLuint*)&m2->texid[j]);
m2->texid[j] = 0; m2->texid[j] = 0;
} }
for(sk=m2->skinmap;sk;sk=sk->next) for (sk=m2->skinmap;sk;sk=sk->next)
for(j=0;j<(HICEFFECTMASK+1);j++) for (j=0;j<(HICEFFECTMASK+1);j++)
{ {
if (sk->texid[j]) bglDeleteTextures(1,(GLuint*)&sk->texid[j]); if (sk->texid[j]) bglDeleteTextures(1,(GLuint*)&sk->texid[j]);
sk->texid[j] = 0; sk->texid[j] = 0;
@ -254,10 +254,10 @@ static void clearskins ()
} }
} }
for(i=0;i<MAXVOXELS;i++) for (i=0;i<MAXVOXELS;i++)
{ {
voxmodel *v = (voxmodel*)voxmodels[i]; if (!v) continue; voxmodel *v = (voxmodel*)voxmodels[i]; if (!v) continue;
for(j=0;j<MAXPALOOKUPS;j++) { for (j=0;j<MAXPALOOKUPS;j++) {
if (v->texid[j]) bglDeleteTextures(1,(GLuint*)&v->texid[j]); if (v->texid[j]) bglDeleteTextures(1,(GLuint*)&v->texid[j]);
v->texid[j] = 0; v->texid[j] = 0;
} }
@ -313,13 +313,13 @@ static long framename2index (mdmodel *vm, const char *nam)
{ {
int i = 0; int i = 0;
switch(vm->mdnum) switch (vm->mdnum)
{ {
case 2: case 2:
{ {
md2model *m = (md2model *)vm; md2model *m = (md2model *)vm;
md2frame_t *fr; md2frame_t *fr;
for(i=0;i<m->numframes;i++) for (i=0;i<m->numframes;i++)
{ {
fr = (md2frame_t *)&m->frames[i*m->framebytes]; fr = (md2frame_t *)&m->frames[i*m->framebytes];
if (!Bstrcmp(fr->name, nam)) break; if (!Bstrcmp(fr->name, nam)) break;
@ -329,7 +329,7 @@ static long framename2index (mdmodel *vm, const char *nam)
case 3: case 3:
{ {
md3model *m = (md3model *)vm; md3model *m = (md3model *)vm;
for(i=0;i<m->numframes;i++) for (i=0;i<m->numframes;i++)
if (!Bstrcmp(m->head.frames[i].nam,nam)) break; if (!Bstrcmp(m->head.frames[i].nam,nam)) break;
} }
break; break;
@ -500,8 +500,8 @@ static int daskinloader (long filh, long *fptr, long *bpl, long *sizx, long *siz
if (tsizx == 0 || tsizy == 0) { free(picfil); return -1; } if (tsizx == 0 || tsizy == 0) { free(picfil); return -1; }
if (!glinfo.texnpot) { if (!glinfo.texnpot) {
for(xsiz=1;xsiz<tsizx;xsiz+=xsiz); for (xsiz=1;xsiz<tsizx;xsiz+=xsiz);
for(ysiz=1;ysiz<tsizy;ysiz+=ysiz); for (ysiz=1;ysiz<tsizy;ysiz+=ysiz);
} else { } else {
xsiz = tsizx; xsiz = tsizx;
ysiz = tsizy; ysiz = tsizy;
@ -516,11 +516,11 @@ static int daskinloader (long filh, long *fptr, long *bpl, long *sizx, long *siz
free(picfil); free(picfil);
cptr = &britable[gammabrightness ? 0 : curbrightness][0]; cptr = &britable[gammabrightness ? 0 : curbrightness][0];
for(y=0,j=0;y<tsizy;y++,j+=xsiz) for (y=0,j=0;y<tsizy;y++,j+=xsiz)
{ {
coltype *rpptr = &pic[j], tcol; coltype *rpptr = &pic[j], tcol;
for(x=0;x<tsizx;x++) for (x=0;x<tsizx;x++)
{ {
tcol.b = cptr[rpptr[x].b]; tcol.b = cptr[rpptr[x].b];
tcol.g = cptr[rpptr[x].g]; tcol.g = cptr[rpptr[x].g];
@ -545,7 +545,7 @@ static int daskinloader (long filh, long *fptr, long *bpl, long *sizx, long *siz
} }
} }
if (!glinfo.bgra) { if (!glinfo.bgra) {
for(j=xsiz*ysiz-1;j>=0;j--) { for (j=xsiz*ysiz-1;j>=0;j--) {
swapchar(&pic[j].r, &pic[j].b); swapchar(&pic[j].r, &pic[j].b);
} }
} }
@ -769,8 +769,8 @@ static long mdloadskin (md2model *m, int number, int pal, int surf)
if (m->mdnum == 2) if (m->mdnum == 2)
{ {
long *lptr; long *lptr;
for(lptr=m->glcmds;(i=*lptr++);) for (lptr=m->glcmds;(i=*lptr++);)
for(i=labs(i);i>0;i--,lptr+=3) for (i=labs(i);i>0;i--,lptr+=3)
{ {
((float *)lptr)[0] *= fx; ((float *)lptr)[0] *= fx;
((float *)lptr)[1] *= fy; ((float *)lptr)[1] *= fy;
@ -784,7 +784,7 @@ static long mdloadskin (md2model *m, int number, int pal, int surf)
for (surfi=0;surfi<m3->head.numsurfs;surfi++) for (surfi=0;surfi<m3->head.numsurfs;surfi++)
{ {
s = &m3->head.surfs[surfi]; s = &m3->head.surfs[surfi];
for(i=s->numverts-1;i>=0;i--) for (i=s->numverts-1;i>=0;i--)
{ {
s->uv[i].u *= fx; s->uv[i].u *= fx;
s->uv[i].v *= fy; s->uv[i].v *= fy;
@ -934,7 +934,7 @@ if ((head.id != 0x32504449) || (head.vers != 8)) { free(m); return(0); } //"IDP2
#endif #endif
strcpy(st,filnam); strcpy(st,filnam);
for(i=strlen(st)-1;i>0;i--) for (i=strlen(st)-1;i>0;i--)
if ((st[i] == '/') || (st[i] == '\\')) { i++; break; } if ((st[i] == '/') || (st[i] == '\\')) { i++; break; }
if (i<0) i=0; if (i<0) i=0;
st[i] = 0; st[i] = 0;
@ -1102,7 +1102,7 @@ int partition(unsigned short *indexes, float *depths, int f, int l) {
void quicksort(unsigned short *indexes, float *depths, int first, int last) { void quicksort(unsigned short *indexes, float *depths, int first, int last) {
int pivIndex = 0; int pivIndex = 0;
if(first < last) { if (first < last) {
pivIndex = partition(indexes,depths,first, last); pivIndex = partition(indexes,depths,first, last);
quicksort(indexes,depths,first,(pivIndex-1)); quicksort(indexes,depths,first,(pivIndex-1));
quicksort(indexes,depths,(pivIndex+1),last); quicksort(indexes,depths,(pivIndex+1),last);
@ -1169,7 +1169,7 @@ if ((m->head.id != 0x33504449) && (m->head.vers != 15)) { free(m); return(0); }
} }
#endif #endif
for(surfi=0;surfi<m->head.numsurfs;surfi++) for (surfi=0;surfi<m->head.numsurfs;surfi++)
{ {
s = &m->head.surfs[surfi]; s = &m->head.surfs[surfi];
klseek(fil,ofsurf,SEEK_SET); kread(fil,s,sizeof(md3surf_t)); klseek(fil,ofsurf,SEEK_SET); kread(fil,s,sizeof(md3surf_t));
@ -1194,7 +1194,7 @@ if ((m->head.id != 0x33504449) && (m->head.vers != 15)) { free(m); return(0); }
s->tris = (md3tri_t *)malloc(leng[0]+leng[1]+leng[2]+leng[3]); s->tris = (md3tri_t *)malloc(leng[0]+leng[1]+leng[2]+leng[3]);
if (!s->tris) if (!s->tris)
{ {
for(surfi--;surfi>=0;surfi--) free(m->head.surfs[surfi].tris); for (surfi--;surfi>=0;surfi--) free(m->head.surfs[surfi].tris);
if (m->head.tags) free(m->head.tags); free(m->head.frames); free(m); return(0); if (m->head.tags) free(m->head.tags); free(m->head.frames); free(m); return(0);
} }
s->shaders = (md3shader_t *)(((long)s->tris )+leng[0]); s->shaders = (md3shader_t *)(((long)s->tris )+leng[0]);
@ -1234,19 +1234,19 @@ if ((m->head.id != 0x33504449) && (m->head.vers != 15)) { free(m); return(0); }
#if 0 #if 0
strcpy(st,filnam); strcpy(st,filnam);
for(i=0,j=0;st[i];i++) if ((st[i] == '/') || (st[i] == '\\')) j = i+1; for (i=0,j=0;st[i];i++) if ((st[i] == '/') || (st[i] == '\\')) j = i+1;
st[j] = '*'; st[j+1] = 0; st[j] = '*'; st[j+1] = 0;
kzfindfilestart(st); bsc = -1; kzfindfilestart(st); bsc = -1;
while (kzfindfile(st)) while (kzfindfile(st))
{ {
if (st[0] == '\\') continue; if (st[0] == '\\') continue;
for(i=0,j=0;st[i];i++) if (st[i] == '.') j = i+1; for (i=0,j=0;st[i];i++) if (st[i] == '.') j = i+1;
if ((!stricmp(&st[j],"JPG")) || (!stricmp(&st[j],"PNG")) || (!stricmp(&st[j],"GIF")) || if ((!stricmp(&st[j],"JPG")) || (!stricmp(&st[j],"PNG")) || (!stricmp(&st[j],"GIF")) ||
(!stricmp(&st[j],"PCX")) || (!stricmp(&st[j],"TGA")) || (!stricmp(&st[j],"BMP")) || (!stricmp(&st[j],"PCX")) || (!stricmp(&st[j],"TGA")) || (!stricmp(&st[j],"BMP")) ||
(!stricmp(&st[j],"CEL"))) (!stricmp(&st[j],"CEL")))
{ {
for(i=0;st[i];i++) if (st[i] != filnam[i]) break; for (i=0;st[i];i++) if (st[i] != filnam[i]) break;
if (i > bsc) { bsc = i; strcpy(bst,st); } if (i > bsc) { bsc = i; strcpy(bst,st); }
} }
} }
@ -1315,7 +1315,7 @@ static int md3draw (md3model *m, spritetype *tspr)
// floor aligned // floor aligned
k1 = tspr->y; k1 = tspr->y;
if((globalorientation&48)==32) if ((globalorientation&48)==32)
{ {
m0.z = -m0.z; m1.z = -m1.z; a0.z = -a0.z; m0.z = -m0.z; m1.z = -m1.z; a0.z = -a0.z;
m0.y = -m0.y; m1.y = -m1.y; a0.y = -a0.y; m0.y = -m0.y; m1.y = -m1.y; a0.y = -a0.y;
@ -1349,7 +1349,7 @@ static int md3draw (md3model *m, spritetype *tspr)
mat[14] += a0.y*mat[2] + a0.z*mat[6] + a0.x*mat[10]; mat[14] += a0.y*mat[2] + a0.z*mat[6] + a0.x*mat[10];
// floor aligned // floor aligned
if((globalorientation&48)==32) if ((globalorientation&48)==32)
{ {
f = mat[4]; mat[4] = mat[8]*16.0; mat[8] = -f*(1.0/16.0); f = mat[4]; mat[4] = mat[8]*16.0; mat[8] = -f*(1.0/16.0);
f = mat[5]; mat[5] = mat[9]*16.0; mat[9] = -f*(1.0/16.0); f = mat[5]; mat[5] = mat[9]*16.0; mat[9] = -f*(1.0/16.0);
@ -1421,13 +1421,13 @@ if (tspr->cstat&2) { if (!(tspr->cstat&512)) pc[3] = 0.66; else pc[3] = 0.33; }
k2 = (float)sintable[(spriteext[tspr->owner].roll+512)&2047] / 16384.0; k2 = (float)sintable[(spriteext[tspr->owner].roll+512)&2047] / 16384.0;
k3 = (float)sintable[spriteext[tspr->owner].roll&2047] / 16384.0; k3 = (float)sintable[spriteext[tspr->owner].roll&2047] / 16384.0;
} }
for(surfi=0;surfi<m->head.numsurfs;surfi++) for (surfi=0;surfi<m->head.numsurfs;surfi++)
{ {
s = &m->head.surfs[surfi]; s = &m->head.surfs[surfi];
v0 = &s->xyzn[m->cframe*s->numverts]; v0 = &s->xyzn[m->cframe*s->numverts];
v1 = &s->xyzn[m->nframe*s->numverts]; v1 = &s->xyzn[m->nframe*s->numverts];
for(i=s->numverts-1;i>=0;i--) for (i=s->numverts-1;i>=0;i--)
{ {
if (spriteext[tspr->owner].pitch || spriteext[tspr->owner].roll) if (spriteext[tspr->owner].pitch || spriteext[tspr->owner].roll)
{ {
@ -1515,7 +1515,7 @@ if (tspr->cstat&2) { if (!(tspr->cstat&512)) pc[3] = 0.66; else pc[3] = 0.33; }
indexes[i] = i; indexes[i] = i;
}*/ }*/
for(i=s->numtris-1;i>=0;i--) for (i=s->numtris-1;i>=0;i--)
{ {
// Matrix multiplication - ugly but clear // Matrix multiplication - ugly but clear
fp.x = (vertlist[s->tris[i].i[0]].x * mat[0]) + (vertlist[s->tris[i].i[0]].y * mat[4]) + (vertlist[s->tris[i].i[0]].z * mat[8]) + mat[12]; fp.x = (vertlist[s->tris[i].i[0]].x * mat[0]) + (vertlist[s->tris[i].i[0]].y * mat[4]) + (vertlist[s->tris[i].i[0]].z * mat[8]) + mat[12];
@ -1567,8 +1567,8 @@ if (tspr->cstat&2) { if (!(tspr->cstat&512)) pc[3] = 0.66; else pc[3] = 0.33; }
quicksort(indexes, maxdepths, 0, s->numtris - 1); quicksort(indexes, maxdepths, 0, s->numtris - 1);
bglBegin(GL_TRIANGLES); bglBegin(GL_TRIANGLES);
for(i=s->numtris-1;i>=0;i--) for (i=s->numtris-1;i>=0;i--)
for(j=0;j<3;j++) for (j=0;j<3;j++)
{ {
k = s->tris[indexes[i]].i[j]; k = s->tris[indexes[i]].i[j];
bglTexCoord2f(s->uv[k].u,s->uv[k].v); bglTexCoord2f(s->uv[k].u,s->uv[k].v);
@ -1582,8 +1582,8 @@ if (tspr->cstat&2) { if (!(tspr->cstat&512)) pc[3] = 0.66; else pc[3] = 0.33; }
else else
{ {
bglBegin(GL_TRIANGLES); bglBegin(GL_TRIANGLES);
for(i=s->numtris-1;i>=0;i--) for (i=s->numtris-1;i>=0;i--)
for(j=0;j<3;j++) for (j=0;j<3;j++)
{ {
k = s->tris[i].i[j]; k = s->tris[i].i[j];
bglTexCoord2f(s->uv[k].u,s->uv[k].v); bglTexCoord2f(s->uv[k].u,s->uv[k].v);
@ -1616,12 +1616,12 @@ static void md3free (md3model *m)
if (!m) return; if (!m) return;
for(anim=m->animations; anim; anim=nanim) for (anim=m->animations; anim; anim=nanim)
{ {
nanim = anim->next; nanim = anim->next;
free(anim); free(anim);
} }
for(sk=m->skinmap; sk; sk=nsk) for (sk=m->skinmap; sk; sk=nsk)
{ {
nsk = sk->next; nsk = sk->next;
free(sk->fn); free(sk->fn);
@ -1630,7 +1630,7 @@ static void md3free (md3model *m)
if (m->head.surfs) if (m->head.surfs)
{ {
for(surfi=m->head.numsurfs-1;surfi>=0;surfi--) for (surfi=m->head.numsurfs-1;surfi>=0;surfi--)
{ {
s = &m->head.surfs[surfi]; s = &m->head.surfs[surfi];
if (s->tris) free(s->tris); if (s->tris) free(s->tris);
@ -1675,7 +1675,7 @@ unsigned gloadtex (long *picbuf, long xsiz, long ysiz, long is8bit, long dapal)
cptr = (unsigned char*)&britable[gammabrightness ? 0 : curbrightness][0]; cptr = (unsigned char*)&britable[gammabrightness ? 0 : curbrightness][0];
if (!is8bit) if (!is8bit)
{ {
for(i=xsiz*ysiz-1;i>=0;i--) for (i=xsiz*ysiz-1;i>=0;i--)
{ {
pic2[i].b = cptr[pic[i].r]; pic2[i].b = cptr[pic[i].r];
pic2[i].g = cptr[pic[i].g]; pic2[i].g = cptr[pic[i].g];
@ -1686,7 +1686,7 @@ unsigned gloadtex (long *picbuf, long xsiz, long ysiz, long is8bit, long dapal)
else else
{ {
if (palookup[dapal] == 0) dapal = 0; if (palookup[dapal] == 0) dapal = 0;
for(i=xsiz*ysiz-1;i>=0;i--) for (i=xsiz*ysiz-1;i>=0;i--)
{ {
pic2[i].b = cptr[palette[(long)palookup[dapal][pic[i].a]*3+2]*4]; pic2[i].b = cptr[palette[(long)palookup[dapal][pic[i].a]*3+2]*4];
pic2[i].g = cptr[palette[(long)palookup[dapal][pic[i].a]*3+1]*4]; pic2[i].g = cptr[palette[(long)palookup[dapal][pic[i].a]*3+1]*4];
@ -1707,7 +1707,7 @@ unsigned gloadtex (long *picbuf, long xsiz, long ysiz, long is8bit, long dapal)
static long getvox (long x, long y, long z) static long getvox (long x, long y, long z)
{ {
z += x*yzsiz + y*zsiz; z += x*yzsiz + y*zsiz;
for(x=vcolhashead[(z*214013)&vcolhashsizm1];x>=0;x=vcol[x].n) for (x=vcolhashead[(z*214013)&vcolhashsizm1];x>=0;x=vcol[x].n)
if (vcol[x].p == z) return(vcol[x].c); if (vcol[x].p == z) return(vcol[x].c);
return(0x808080); return(0x808080);
} }
@ -1728,7 +1728,7 @@ static void setzrange0 (long *lptr, long z0, long z1)
long z, ze; long z, ze;
if (!((z0^z1)&~31)) { lptr[z0>>5] &= ((~(-1<<SHIFTMOD32(z0)))|(-1<<SHIFTMOD32(z1))); return; } if (!((z0^z1)&~31)) { lptr[z0>>5] &= ((~(-1<<SHIFTMOD32(z0)))|(-1<<SHIFTMOD32(z1))); return; }
z = (z0>>5); ze = (z1>>5); z = (z0>>5); ze = (z1>>5);
lptr[z] &=~(-1<<SHIFTMOD32(z0)); for(z++;z<ze;z++) lptr[z] = 0; lptr[z] &=~(-1<<SHIFTMOD32(z0)); for (z++;z<ze;z++) lptr[z] = 0;
lptr[z] &= (-1<<SHIFTMOD32(z1)); lptr[z] &= (-1<<SHIFTMOD32(z1));
} }
@ -1738,7 +1738,7 @@ static void setzrange1 (long *lptr, long z0, long z1)
long z, ze; long z, ze;
if (!((z0^z1)&~31)) { lptr[z0>>5] |= ((~(-1<<SHIFTMOD32(z1)))&(-1<<SHIFTMOD32(z0))); return; } if (!((z0^z1)&~31)) { lptr[z0>>5] |= ((~(-1<<SHIFTMOD32(z1)))&(-1<<SHIFTMOD32(z0))); return; }
z = (z0>>5); ze = (z1>>5); z = (z0>>5); ze = (z1>>5);
lptr[z] |= (-1<<SHIFTMOD32(z0)); for(z++;z<ze;z++) lptr[z] = -1; lptr[z] |= (-1<<SHIFTMOD32(z0)); for (z++;z<ze;z++) lptr[z] = -1;
lptr[z] |=~(-1<<SHIFTMOD32(z1)); lptr[z] |=~(-1<<SHIFTMOD32(z1));
} }
@ -1747,19 +1747,19 @@ static long isrectfree (long x0, long y0, long dx, long dy)
#if 0 #if 0
long i, j, x; long i, j, x;
i = y0*gvox->mytexx + x0; i = y0*gvox->mytexx + x0;
for(dy=0;dy;dy--,i+=gvox->mytexx) for (dy=0;dy;dy--,i+=gvox->mytexx)
for(x=0;x<dx;x++) { j = i+x; if (zbit[j>>5]&(1<<SHIFTMOD32(j))) return(0); } for (x=0;x<dx;x++) { j = i+x; if (zbit[j>>5]&(1<<SHIFTMOD32(j))) return(0); }
#else #else
long i, c, m, m1, x; long i, c, m, m1, x;
i = y0*mytexo5 + (x0>>5); dx += x0-1; c = (dx>>5) - (x0>>5); i = y0*mytexo5 + (x0>>5); dx += x0-1; c = (dx>>5) - (x0>>5);
m = ~pow2m1[x0&31]; m1 = pow2m1[(dx&31)+1]; m = ~pow2m1[x0&31]; m1 = pow2m1[(dx&31)+1];
if (!c) { for(m&=m1;dy;dy--,i+=mytexo5) if (zbit[i]&m) return(0); } if (!c) { for (m&=m1;dy;dy--,i+=mytexo5) if (zbit[i]&m) return(0); }
else else
{ for(;dy;dy--,i+=mytexo5) { for (;dy;dy--,i+=mytexo5)
{ {
if (zbit[i]&m) return(0); if (zbit[i]&m) return(0);
for(x=1;x<c;x++) if (zbit[i+x]) return(0); for (x=1;x<c;x++) if (zbit[i+x]) return(0);
if (zbit[i+x]&m1) return(0); if (zbit[i+x]&m1) return(0);
} }
} }
@ -1772,19 +1772,19 @@ static void setrect (long x0, long y0, long dx, long dy)
#if 0 #if 0
long i, j, y; long i, j, y;
i = y0*gvox->mytexx + x0; i = y0*gvox->mytexx + x0;
for(y=0;y<dy;y++,i+=gvox->mytexx) for (y=0;y<dy;y++,i+=gvox->mytexx)
for(x=0;x<dx;x++) { j = i+x; zbit[j>>5] |= (1<<SHIFTMOD32(j)); } for (x=0;x<dx;x++) { j = i+x; zbit[j>>5] |= (1<<SHIFTMOD32(j)); }
#else #else
long i, c, m, m1, x; long i, c, m, m1, x;
i = y0*mytexo5 + (x0>>5); dx += x0-1; c = (dx>>5) - (x0>>5); i = y0*mytexo5 + (x0>>5); dx += x0-1; c = (dx>>5) - (x0>>5);
m = ~pow2m1[x0&31]; m1 = pow2m1[(dx&31)+1]; m = ~pow2m1[x0&31]; m1 = pow2m1[(dx&31)+1];
if (!c) { for(m&=m1;dy;dy--,i+=mytexo5) zbit[i] |= m; } if (!c) { for (m&=m1;dy;dy--,i+=mytexo5) zbit[i] |= m; }
else else
{ for(;dy;dy--,i+=mytexo5) { for (;dy;dy--,i+=mytexo5)
{ {
zbit[i] |= m; zbit[i] |= m;
for(x=1;x<c;x++) zbit[i+x] = -1; for (x=1;x<c;x++) zbit[i+x] = -1;
zbit[i+x] |= m1; zbit[i+x] |= m1;
} }
} }
@ -1815,45 +1815,57 @@ static void addquad (long x0, long y0, long z0, long x1, long y1, long z1, long
if (x < y) { z = x; x = y; y = z; i += 3; } if (x < y) { z = x; x = y; y = z; i += 3; }
z = shcnt[y*shcntp+x]++; z = shcnt[y*shcntp+x]++;
lptr = &gvox->mytex[(shp[z].y+VOXBORDWIDTH)*gvox->mytexx+(shp[z].x+VOXBORDWIDTH)]; lptr = &gvox->mytex[(shp[z].y+VOXBORDWIDTH)*gvox->mytexx+(shp[z].x+VOXBORDWIDTH)];
switch(face) switch (face)
{ {
case 0: ny = y1; x2 = x0; x0 = x1; x1 = x2; break; case 0:
case 1: ny = y0; y0++; y1++; y2++; break; ny = y1; x2 = x0; x0 = x1; x1 = x2; break;
case 2: nz = z1; y0 = y2; y2 = y1; y1 = y0; z0++; z1++; z2++; break; case 1:
case 3: nz = z0; break; ny = y0; y0++; y1++; y2++; break;
case 4: nx = x1; y2 = y0; y0 = y1; y1 = y2; x0++; x1++; x2++; break; case 2:
case 5: nx = x0; break; nz = z1; y0 = y2; y2 = y1; y1 = y0; z0++; z1++; z2++; break;
case 3:
nz = z0; break;
case 4:
nx = x1; y2 = y0; y0 = y1; y1 = y2; x0++; x1++; x2++; break;
case 5:
nx = x0; break;
} }
for(yy=0;yy<y;yy++,lptr+=gvox->mytexx) for (yy=0;yy<y;yy++,lptr+=gvox->mytexx)
for(xx=0;xx<x;xx++) for (xx=0;xx<x;xx++)
{ {
switch(face) switch (face)
{ {
case 0: if (i < 3) { nx = x1+x-1-xx; nz = z1+yy; } //back case 0:
if (i < 3) { nx = x1+x-1-xx; nz = z1+yy; } //back
else { nx = x1+y-1-yy; nz = z1+xx; } break; else { nx = x1+y-1-yy; nz = z1+xx; } break;
case 1: if (i < 3) { nx = x0+xx; nz = z0+yy; } //front case 1:
if (i < 3) { nx = x0+xx; nz = z0+yy; } //front
else { nx = x0+yy; nz = z0+xx; } break; else { nx = x0+yy; nz = z0+xx; } break;
case 2: if (i < 3) { nx = x1-x+xx; ny = y1-1-yy; } //bot case 2:
if (i < 3) { nx = x1-x+xx; ny = y1-1-yy; } //bot
else { nx = x1-1-yy; ny = y1-1-xx; } break; else { nx = x1-1-yy; ny = y1-1-xx; } break;
case 3: if (i < 3) { nx = x0+xx; ny = y0+yy; } //top case 3:
if (i < 3) { nx = x0+xx; ny = y0+yy; } //top
else { nx = x0+yy; ny = y0+xx; } break; else { nx = x0+yy; ny = y0+xx; } break;
case 4: if (i < 3) { ny = y1+x-1-xx; nz = z1+yy; } //right case 4:
if (i < 3) { ny = y1+x-1-xx; nz = z1+yy; } //right
else { ny = y1+y-1-yy; nz = z1+xx; } break; else { ny = y1+y-1-yy; nz = z1+xx; } break;
case 5: if (i < 3) { ny = y0+xx; nz = z0+yy; } //left case 5:
if (i < 3) { ny = y0+xx; nz = z0+yy; } //left
else { ny = y0+yy; nz = z0+xx; } break; else { ny = y0+yy; nz = z0+xx; } break;
} }
lptr[xx] = getvox(nx,ny,nz); lptr[xx] = getvox(nx,ny,nz);
} }
//Extend borders horizontally //Extend borders horizontally
for(yy=VOXBORDWIDTH;yy<y+VOXBORDWIDTH;yy++) for (yy=VOXBORDWIDTH;yy<y+VOXBORDWIDTH;yy++)
for(xx=0;xx<VOXBORDWIDTH;xx++) for (xx=0;xx<VOXBORDWIDTH;xx++)
{ {
lptr = &gvox->mytex[(shp[z].y+yy)*gvox->mytexx+shp[z].x]; lptr = &gvox->mytex[(shp[z].y+yy)*gvox->mytexx+shp[z].x];
lptr[xx] = lptr[VOXBORDWIDTH]; lptr[xx+x+VOXBORDWIDTH] = lptr[x-1+VOXBORDWIDTH]; lptr[xx] = lptr[VOXBORDWIDTH]; lptr[xx+x+VOXBORDWIDTH] = lptr[x-1+VOXBORDWIDTH];
} }
//Extend borders vertically //Extend borders vertically
for(yy=0;yy<VOXBORDWIDTH;yy++) for (yy=0;yy<VOXBORDWIDTH;yy++)
{ {
memcpy(&gvox->mytex[(shp[z].y+yy)*gvox->mytexx+shp[z].x], memcpy(&gvox->mytex[(shp[z].y+yy)*gvox->mytexx+shp[z].x],
&gvox->mytex[(shp[z].y+VOXBORDWIDTH)*gvox->mytexx+shp[z].x], &gvox->mytex[(shp[z].y+VOXBORDWIDTH)*gvox->mytexx+shp[z].x],
@ -1867,7 +1879,7 @@ if (x < y) { z = x; x = y; y = z; i += 3; }
qptr->v[0].x = x0; qptr->v[0].y = y0; qptr->v[0].z = z0; qptr->v[0].x = x0; qptr->v[0].y = y0; qptr->v[0].z = z0;
qptr->v[1].x = x1; qptr->v[1].y = y1; qptr->v[1].z = z1; qptr->v[1].x = x1; qptr->v[1].y = y1; qptr->v[1].z = z1;
qptr->v[2].x = x2; qptr->v[2].y = y2; qptr->v[2].z = z2; qptr->v[2].x = x2; qptr->v[2].y = y2; qptr->v[2].z = z2;
for(j=0;j<3;j++) { qptr->v[j].u = shp[z].x+VOXBORDWIDTH; qptr->v[j].v = shp[z].y+VOXBORDWIDTH; } for (j=0;j<3;j++) { qptr->v[j].u = shp[z].x+VOXBORDWIDTH; qptr->v[j].v = shp[z].y+VOXBORDWIDTH; }
if (i < 3) qptr->v[1].u += x; else qptr->v[1].v += y; if (i < 3) qptr->v[1].u += x; else qptr->v[1].v += y;
qptr->v[2].u += x; qptr->v[2].v += y; qptr->v[2].u += x; qptr->v[2].v += y;
@ -1908,14 +1920,14 @@ if (x < y) { z = x; x = y; y = z; }
memset(shcntmal,0,i); shcnt = &shcntmal[-shcntp-1]; memset(shcntmal,0,i); shcnt = &shcntmal[-shcntp-1];
gmaxx = gmaxy = garea = 0; gmaxx = gmaxy = garea = 0;
if (pow2m1[32] != -1) { for(i=0;i<32;i++) pow2m1[i] = (1<<i)-1; pow2m1[32] = -1; } if (pow2m1[32] != -1) { for (i=0;i<32;i++) pow2m1[i] = (1<<i)-1; pow2m1[32] = -1; }
for(i=0;i<7;i++) gvox->qfacind[i] = -1; for (i=0;i<7;i++) gvox->qfacind[i] = -1;
i = ((max(ysiz,zsiz)+1)<<2); i = ((max(ysiz,zsiz)+1)<<2);
bx0 = (long *)malloc(i<<1); if (!bx0) { free(gvox); return(0); } bx0 = (long *)malloc(i<<1); if (!bx0) { free(gvox); return(0); }
by0 = (long *)(((long)bx0)+i); by0 = (long *)(((long)bx0)+i);
for(cnt=0;cnt<2;cnt++) for (cnt=0;cnt<2;cnt++)
{ {
if (!cnt) daquad = cntquad; if (!cnt) daquad = cntquad;
else daquad = addquad; else daquad = addquad;
@ -1923,10 +1935,10 @@ bx0 = (long *)malloc(i<<1); if (!bx0) { free(gvox); return(0); }
memset(by0,-1,(max(ysiz,zsiz)+1)<<2); v = 0; memset(by0,-1,(max(ysiz,zsiz)+1)<<2); v = 0;
for(i=-1;i<=1;i+=2) for (i=-1;i<=1;i+=2)
for(y=0;y<ysiz;y++) for (y=0;y<ysiz;y++)
for(x=0;x<=xsiz;x++) for (x=0;x<=xsiz;x++)
for(z=0;z<=zsiz;z++) for (z=0;z<=zsiz;z++)
{ {
ov = v; v = (isolid(x,y,z) && (!isolid(x,y+i,z))); ov = v; v = (isolid(x,y,z) && (!isolid(x,y+i,z)));
if ((by0[z] >= 0) && ((by0[z] != oz) || (v >= ov))) if ((by0[z] >= 0) && ((by0[z] != oz) || (v >= ov)))
@ -1934,10 +1946,10 @@ bx0 = (long *)malloc(i<<1); if (!bx0) { free(gvox); return(0); }
if (v > ov) oz = z; else if ((v < ov) && (by0[z] != oz)) { bx0[z] = x; by0[z] = oz; } if (v > ov) oz = z; else if ((v < ov) && (by0[z] != oz)) { bx0[z] = x; by0[z] = oz; }
} }
for(i=-1;i<=1;i+=2) for (i=-1;i<=1;i+=2)
for(z=0;z<zsiz;z++) for (z=0;z<zsiz;z++)
for(x=0;x<=xsiz;x++) for (x=0;x<=xsiz;x++)
for(y=0;y<=ysiz;y++) for (y=0;y<=ysiz;y++)
{ {
ov = v; v = (isolid(x,y,z) && (!isolid(x,y,z-i))); ov = v; v = (isolid(x,y,z) && (!isolid(x,y,z-i)));
if ((by0[y] >= 0) && ((by0[y] != oz) || (v >= ov))) if ((by0[y] >= 0) && ((by0[y] != oz) || (v >= ov)))
@ -1945,10 +1957,10 @@ bx0 = (long *)malloc(i<<1); if (!bx0) { free(gvox); return(0); }
if (v > ov) oz = y; else if ((v < ov) && (by0[y] != oz)) { bx0[y] = x; by0[y] = oz; } if (v > ov) oz = y; else if ((v < ov) && (by0[y] != oz)) { bx0[y] = x; by0[y] = oz; }
} }
for(i=-1;i<=1;i+=2) for (i=-1;i<=1;i+=2)
for(x=0;x<xsiz;x++) for (x=0;x<xsiz;x++)
for(y=0;y<=ysiz;y++) for (y=0;y<=ysiz;y++)
for(z=0;z<=zsiz;z++) for (z=0;z<=zsiz;z++)
{ {
ov = v; v = (isolid(x,y,z) && (!isolid(x-i,y,z))); ov = v; v = (isolid(x,y,z) && (!isolid(x-i,y,z)));
if ((by0[z] >= 0) && ((by0[z] != oz) || (v >= ov))) if ((by0[z] >= 0) && ((by0[z] != oz) || (v >= ov)))
@ -1962,18 +1974,19 @@ bx0 = (long *)malloc(i<<1); if (!bx0) { free(gvox); return(0); }
if (!shp) { free(bx0); free(gvox); return(0); } if (!shp) { free(bx0); free(gvox); return(0); }
sc = 0; sc = 0;
for(y=gmaxy;y;y--) for (y=gmaxy;y;y--)
for(x=gmaxx;x>=y;x--) for (x=gmaxx;x>=y;x--)
{ {
i = shcnt[y*shcntp+x]; shcnt[y*shcntp+x] = sc; //shcnt changes from counter to head index i = shcnt[y*shcntp+x]; shcnt[y*shcntp+x] = sc; //shcnt changes from counter to head index
for(;i>0;i--) { shp[sc].x = x; shp[sc].y = y; sc++; } for (;i>0;i--) { shp[sc].x = x; shp[sc].y = y; sc++; }
} }
for(gvox->mytexx=32;gvox->mytexx<(gmaxx+(VOXBORDWIDTH<<1));gvox->mytexx<<=1); for (gvox->mytexx=32;gvox->mytexx<(gmaxx+(VOXBORDWIDTH<<1));gvox->mytexx<<=1);
for(gvox->mytexy=32;gvox->mytexy<(gmaxy+(VOXBORDWIDTH<<1));gvox->mytexy<<=1); for (gvox->mytexy=32;gvox->mytexy<(gmaxy+(VOXBORDWIDTH<<1));gvox->mytexy<<=1);
while (gvox->mytexx*gvox->mytexy*8 < garea*9) //This should be sufficient to fit most skins... while (gvox->mytexx*gvox->mytexy*8 < garea*9) //This should be sufficient to fit most skins...
{ {
skindidntfit:; skindidntfit:
;
if (gvox->mytexx <= gvox->mytexy) gvox->mytexx <<= 1; else gvox->mytexy <<= 1; if (gvox->mytexx <= gvox->mytexy) gvox->mytexx <<= 1; else gvox->mytexy <<= 1;
} }
mytexo5 = (gvox->mytexx>>5); mytexo5 = (gvox->mytexx>>5);
@ -1983,7 +1996,7 @@ skindidntfit:;
memset(zbit,0,i); memset(zbit,0,i);
v = gvox->mytexx*gvox->mytexy; v = gvox->mytexx*gvox->mytexy;
for(z=0;z<sc;z++) for (z=0;z<sc;z++)
{ {
dx = shp[z].x+(VOXBORDWIDTH<<1); dy = shp[z].y+(VOXBORDWIDTH<<1); i = v; dx = shp[z].x+(VOXBORDWIDTH<<1); dy = shp[z].y+(VOXBORDWIDTH<<1); i = v;
do do
@ -2002,14 +2015,14 @@ skindidntfit:;
//Re-generate shp[].x/y (box sizes) from shcnt (now head indices) for next pass :/ //Re-generate shp[].x/y (box sizes) from shcnt (now head indices) for next pass :/
j = 0; j = 0;
for(y=gmaxy;y;y--) for (y=gmaxy;y;y--)
for(x=gmaxx;x>=y;x--) for (x=gmaxx;x>=y;x--)
{ {
i = shcnt[y*shcntp+x]; i = shcnt[y*shcntp+x];
for(;j<i;j++) { shp[j].x = x0; shp[j].y = y0; } for (;j<i;j++) { shp[j].x = x0; shp[j].y = y0; }
x0 = x; y0 = y; x0 = x; y0 = y;
} }
for(;j<sc;j++) { shp[j].x = x0; shp[j].y = y0; } for (;j<sc;j++) { shp[j].x = x0; shp[j].y = y0; }
goto skindidntfit; goto skindidntfit;
} }
@ -2045,7 +2058,7 @@ static long loadvox (const char *filnam)
zpiv = ((float)zsiz)*.5; zpiv = ((float)zsiz)*.5;
klseek(fil,-768,SEEK_END); klseek(fil,-768,SEEK_END);
for(i=0;i<256;i++) for (i=0;i<256;i++)
{ kread(fil,c,3); pal[i] = (((long)c[0])<<18)+(((long)c[1])<<10)+(((long)c[2])<<2)+(i<<24); } { kread(fil,c,3); pal[i] = (((long)c[0])<<18)+(((long)c[1])<<10)+(((long)c[2])<<2)+(i<<24); }
pal[255] = -1; pal[255] = -1;
@ -2060,20 +2073,20 @@ static long loadvox (const char *filnam)
tbuf = (unsigned char *)malloc(zsiz*sizeof(char)); if (!tbuf) { kclose(fil); return(-1); } tbuf = (unsigned char *)malloc(zsiz*sizeof(char)); if (!tbuf) { kclose(fil); return(-1); }
klseek(fil,12,SEEK_SET); klseek(fil,12,SEEK_SET);
for(x=0;x<xsiz;x++) for (x=0;x<xsiz;x++)
for(y=0,j=x*yzsiz;y<ysiz;y++,j+=zsiz) for (y=0,j=x*yzsiz;y<ysiz;y++,j+=zsiz)
{ {
kread(fil,tbuf,zsiz); kread(fil,tbuf,zsiz);
for(z=zsiz-1;z>=0;z--) for (z=zsiz-1;z>=0;z--)
{ if (tbuf[z] != 255) { i = j+z; vbit[i>>5] |= (1<<SHIFTMOD32(i)); } } { if (tbuf[z] != 255) { i = j+z; vbit[i>>5] |= (1<<SHIFTMOD32(i)); } }
} }
klseek(fil,12,SEEK_SET); klseek(fil,12,SEEK_SET);
for(x=0;x<xsiz;x++) for (x=0;x<xsiz;x++)
for(y=0,j=x*yzsiz;y<ysiz;y++,j+=zsiz) for (y=0,j=x*yzsiz;y<ysiz;y++,j+=zsiz)
{ {
kread(fil,tbuf,zsiz); kread(fil,tbuf,zsiz);
for(z=0;z<zsiz;z++) for (z=0;z<zsiz;z++)
{ {
if (tbuf[z] == 255) continue; if (tbuf[z] == 255) continue;
if ((!x) || (!y) || (!z) || (x == xsiz-1) || (y == ysiz-1) || (z == zsiz-1)) if ((!x) || (!y) || (!z) || (x == xsiz-1) || (y == ysiz-1) || (z == zsiz-1))
@ -2113,14 +2126,14 @@ xyoffs = (unsigned short *)malloc(i); if (!xyoffs) { kclose(fil); return(-1); }
kread(fil,xyoffs,i); for (i=i/sizeof(short)-1; i>=0; i--) xyoffs[i] = B_LITTLE16(xyoffs[i]); kread(fil,xyoffs,i); for (i=i/sizeof(short)-1; i>=0; i--) xyoffs[i] = B_LITTLE16(xyoffs[i]);
klseek(fil,-768,SEEK_END); klseek(fil,-768,SEEK_END);
for(i=0;i<256;i++) for (i=0;i<256;i++)
{ kread(fil,c,3); pal[i] = B_LITTLE32((((long)c[0])<<18)+(((long)c[1])<<10)+(((long)c[2])<<2)+(i<<24)); } { kread(fil,c,3); pal[i] = B_LITTLE32((((long)c[0])<<18)+(((long)c[1])<<10)+(((long)c[2])<<2)+(i<<24)); }
yzsiz = ysiz*zsiz; i = ((xsiz*yzsiz+31)>>3); yzsiz = ysiz*zsiz; i = ((xsiz*yzsiz+31)>>3);
vbit = (long *)malloc(i); if (!vbit) { free(xyoffs); kclose(fil); return(-1); } vbit = (long *)malloc(i); if (!vbit) { free(xyoffs); kclose(fil); return(-1); }
memset(vbit,0,i); memset(vbit,0,i);
for(vcolhashsizm1=4096;vcolhashsizm1<(mip1leng>>1);vcolhashsizm1<<=1); vcolhashsizm1--; //approx to numvoxs! for (vcolhashsizm1=4096;vcolhashsizm1<(mip1leng>>1);vcolhashsizm1<<=1); vcolhashsizm1--; //approx to numvoxs!
vcolhashead = (long *)malloc((vcolhashsizm1+1)*sizeof(long)); if (!vcolhashead) { free(xyoffs); kclose(fil); return(-1); } vcolhashead = (long *)malloc((vcolhashsizm1+1)*sizeof(long)); if (!vcolhashead) { free(xyoffs); kclose(fil); return(-1); }
memset(vcolhashead,-1,(vcolhashsizm1+1)*sizeof(long)); memset(vcolhashead,-1,(vcolhashsizm1+1)*sizeof(long));
@ -2131,8 +2144,8 @@ vcolhashead = (long *)malloc((vcolhashsizm1+1)*sizeof(long)); if (!vcolhashead)
kread(fil,tbuf,i); kclose(fil); kread(fil,tbuf,i); kclose(fil);
cptr = tbuf; cptr = tbuf;
for(x=0;x<xsiz;x++) //Set surface voxels to 1 else 0 for (x=0;x<xsiz;x++) //Set surface voxels to 1 else 0
for(y=0,j=x*yzsiz;y<ysiz;y++,j+=zsiz) for (y=0,j=x*yzsiz;y<ysiz;y++,j+=zsiz)
{ {
i = xyoffs[x*ysizp1+y+1] - xyoffs[x*ysizp1+y]; if (!i) continue; i = xyoffs[x*ysizp1+y+1] - xyoffs[x*ysizp1+y]; if (!i) continue;
z1 = 0; z1 = 0;
@ -2142,7 +2155,7 @@ vcolhashead = (long *)malloc((vcolhashsizm1+1)*sizeof(long)); if (!vcolhashead)
if (!(cptr[-1]&16)) setzrange1(vbit,j+z1,j+z0); if (!(cptr[-1]&16)) setzrange1(vbit,j+z1,j+z0);
i -= k+3; z1 = z0+k; i -= k+3; z1 = z0+k;
setzrange1(vbit,j+z0,j+z1); setzrange1(vbit,j+z0,j+z1);
for(z=z0;z<z1;z++) putvox(x,y,z,pal[*cptr++]); for (z=z0;z<z1;z++) putvox(x,y,z,pal[*cptr++]);
} }
} }
@ -2176,15 +2189,15 @@ kread(fil,&i,4); if (B_LITTLE32(i) != 0x6c78764b) { kclose(fil); return(-1); } /
vbit = (long *)malloc(i); if (!vbit) { free(ylen); kclose(fil); return(-1); } vbit = (long *)malloc(i); if (!vbit) { free(ylen); kclose(fil); return(-1); }
memset(vbit,0,i); memset(vbit,0,i);
for(vcolhashsizm1=4096;vcolhashsizm1<numvoxs;vcolhashsizm1<<=1); vcolhashsizm1--; for (vcolhashsizm1=4096;vcolhashsizm1<numvoxs;vcolhashsizm1<<=1); vcolhashsizm1--;
vcolhashead = (long *)malloc((vcolhashsizm1+1)*sizeof(long)); if (!vcolhashead) { free(ylen); kclose(fil); return(-1); } vcolhashead = (long *)malloc((vcolhashsizm1+1)*sizeof(long)); if (!vcolhashead) { free(ylen); kclose(fil); return(-1); }
memset(vcolhashead,-1,(vcolhashsizm1+1)*sizeof(long)); memset(vcolhashead,-1,(vcolhashsizm1+1)*sizeof(long));
for(x=0;x<xsiz;x++) for (x=0;x<xsiz;x++)
for(y=0,j=x*yzsiz;y<ysiz;y++,j+=zsiz) for (y=0,j=x*yzsiz;y<ysiz;y++,j+=zsiz)
{ {
z1 = zsiz; z1 = zsiz;
for(i=ylen[x*ysiz+y];i>0;i--) for (i=ylen[x*ysiz+y];i>0;i--)
{ {
kread(fil,c,8); //b,g,r,a,z_lo,z_hi,vis,dir kread(fil,c,8); //b,g,r,a,z_lo,z_hi,vis,dir
z0 = B_LITTLE16(*(unsigned short *)&c[4]); z0 = B_LITTLE16(*(unsigned short *)&c[4]);
@ -2230,16 +2243,16 @@ if ((i != 0x09072000) || (xsiz != 1024) || (ysiz != 1024)) { kclose(fil); return
kclose(fil); kclose(fil);
v = vbuf; v = vbuf;
for(y=0;y<ysiz;y++) for (y=0;y<ysiz;y++)
for(x=0,j=y*zsiz;x<xsiz;x++,j+=yzsiz) for (x=0,j=y*zsiz;x<xsiz;x++,j+=yzsiz)
{ {
z = 0; z = 0;
while (1) while (1)
{ {
setzrange0(vbit,j+z,j+v[1]); setzrange0(vbit,j+z,j+v[1]);
for(z=v[1];z<=v[2];z++) putvox(x,y,z,(*(long *)&v[(z-v[1]+1)<<2])&0xffffff); for (z=v[1];z<=v[2];z++) putvox(x,y,z,(*(long *)&v[(z-v[1]+1)<<2])&0xffffff);
if (!v[0]) break; z = v[2]-v[1]-v[0]+2; v += v[0]*4; if (!v[0]) break; z = v[2]-v[1]-v[0]+2; v += v[0]*4;
for(z+=v[3];z<v[3];z++) putvox(x,y,z,(*(long *)&v[(z-v[3])<<2])&0xffffff); for (z+=v[3];z<v[3];z++) putvox(x,y,z,(*(long *)&v[(z-v[3])<<2])&0xffffff);
} }
v += ((((long)v[2])-((long)v[1])+2)<<2); v += ((((long)v[2])-((long)v[1])+2)<<2);
} }
@ -2399,7 +2412,7 @@ if (tspr->cstat&2) { if (!(tspr->cstat&512)) pc[3] = 0.66; else pc[3] = 0.33; }
if (!m->texid[globalpal]) m->texid[globalpal] = gloadtex(m->mytex,m->mytexx,m->mytexy,m->is8bit,globalpal); if (!m->texid[globalpal]) m->texid[globalpal] = gloadtex(m->mytex,m->mytexx,m->mytexy,m->is8bit,globalpal);
else bglBindTexture(GL_TEXTURE_2D,m->texid[globalpal]); else bglBindTexture(GL_TEXTURE_2D,m->texid[globalpal]);
bglBegin(GL_QUADS); bglBegin(GL_QUADS);
for(i=0,fi=0;i<m->qcnt;i++) for (i=0,fi=0;i<m->qcnt;i++)
{ {
if (i == m->qfacind[fi]) { f = clut[fi++]; bglColor4f(pc[0]*f,pc[1]*f,pc[2]*f,pc[3]*f); } if (i == m->qfacind[fi]) { f = clut[fi++]; bglColor4f(pc[0]*f,pc[1]*f,pc[2]*f,pc[3]*f); }
vptr = &m->quad[i].v[0]; vptr = &m->quad[i].v[0];
@ -2408,7 +2421,7 @@ if (tspr->cstat&2) { if (!(tspr->cstat&512)) pc[3] = 0.66; else pc[3] = 0.33; }
yy = vptr[0].y+vptr[2].y; yy = vptr[0].y+vptr[2].y;
zz = vptr[0].z+vptr[2].z; zz = vptr[0].z+vptr[2].z;
for(j=0;j<4;j++) for (j=0;j<4;j++)
{ {
#if (VOXBORDWIDTH == 0) #if (VOXBORDWIDTH == 0)
bglTexCoord2f(((float)vptr[j].u)*ru+uhack[vptr[j].u!=vptr[0].u], bglTexCoord2f(((float)vptr[j].u)*ru+uhack[vptr[j].u!=vptr[0].u],
@ -2449,11 +2462,14 @@ mdmodel *mdload (const char *filnam)
fil = kopen4load((char *)filnam,0); if (fil < 0) return(0); fil = kopen4load((char *)filnam,0); if (fil < 0) return(0);
kread(fil,&i,4); klseek(fil,0,SEEK_SET); kread(fil,&i,4); klseek(fil,0,SEEK_SET);
switch(B_LITTLE32(i)) switch (B_LITTLE32(i))
{ {
case 0x32504449: vm = (mdmodel*)md2load(fil,filnam); break; //IDP2 case 0x32504449:
case 0x33504449: vm = (mdmodel*)md3load(fil); break; //IDP3 vm = (mdmodel*)md2load(fil,filnam); break; //IDP2
default: vm = (mdmodel*)0; break; case 0x33504449:
vm = (mdmodel*)md3load(fil); break; //IDP3
default:
vm = (mdmodel*)0; break;
} }
kclose(fil); kclose(fil);
return(vm); return(vm);

View file

@ -206,7 +206,7 @@ long netread (long *other, char *dabuf, long bufsiz) //0:no packets in buffer
snatchip = (long)ip.sin_addr.s_addr; snatchport = (long)ip.sin_port; snatchip = (long)ip.sin_addr.s_addr; snatchport = (long)ip.sin_port;
(*other) = myconnectindex; (*other) = myconnectindex;
for(i=0;i<MAXPLAYERS;i++) for (i=0;i<MAXPLAYERS;i++)
if ((otherip[i] == snatchip) && (otherport[i] == snatchport)) if ((otherip[i] == snatchip) && (otherport[i] == snatchport))
{ (*other) = i; break; } { (*other) = i; break; }
@ -256,14 +256,14 @@ long isvalidipaddress (char *st)
long i, bcnt, num; long i, bcnt, num;
bcnt = 0; num = 0; bcnt = 0; num = 0;
for(i=0;st[i];i++) for (i=0;st[i];i++)
{ {
if (st[i] == '.') { bcnt++; num = 0; continue; } if (st[i] == '.') { bcnt++; num = 0; continue; }
if (st[i] == ':') if (st[i] == ':')
{ {
if (bcnt != 3) return(0); if (bcnt != 3) return(0);
num = 0; num = 0;
for(i++;st[i];i++) for (i++;st[i];i++)
{ {
if ((st[i] >= '0') && (st[i] <= '9')) if ((st[i] >= '0') && (st[i] <= '9'))
{ num = num*10+st[i]-'0'; if (num >= 65536) return(0); } { num = num*10+st[i]-'0'; if (num >= 65536) return(0); }
@ -293,9 +293,9 @@ static long crctab16[256];
static void initcrc16 () static void initcrc16 ()
{ {
long i, j, k, a; long i, j, k, a;
for(j=0;j<256;j++) for (j=0;j<256;j++)
{ {
for(i=7,k=(j<<8),a=0;i>=0;i--,k=((k<<1)&65535)) for (i=7,k=(j<<8),a=0;i>=0;i--,k=((k<<1)&65535))
{ {
if ((k^a)&0x8000) a = ((a<<1)&65535)^0x1021; if ((k^a)&0x8000) a = ((a<<1)&65535)^0x1021;
else a = ((a<<1)&65535); else a = ((a<<1)&65535);
@ -309,7 +309,7 @@ static unsigned short getcrc16 (char *buffer, long bufleng)
long i, j; long i, j;
j = 0; j = 0;
for(i=bufleng-1;i>=0;i--) updatecrc16(j,buffer[i]); for (i=bufleng-1;i>=0;i--) updatecrc16(j,buffer[i]);
return((unsigned short)(j&65535)); return((unsigned short)(j&65535));
} }
@ -332,11 +332,11 @@ static void initmultiplayers_reset(void)
#endif #endif
lastsendtims[0] = GetTickCount(); lastsendtims[0] = GetTickCount();
for(i=1;i<MAXPLAYERS;i++) lastsendtims[i] = lastsendtims[0]; for (i=1;i<MAXPLAYERS;i++) lastsendtims[i] = lastsendtims[0];
numplayers = 1; myconnectindex = 0; numplayers = 1; myconnectindex = 0;
memset(otherip,0,sizeof(otherip)); memset(otherip,0,sizeof(otherip));
for(i=0;i<MAXPLAYERS;i++) otherport[i] = htons(NETPORT); for (i=0;i<MAXPLAYERS;i++) otherport[i] = htons(NETPORT);
} }
// Multiplayer command line summary. Assume myconnectindex always = 0 for 192.168.1.2 // Multiplayer command line summary. Assume myconnectindex always = 0 for 192.168.1.2
@ -372,7 +372,7 @@ long initmultiplayersparms(long argc, char **argv)
netinit(portnum); netinit(portnum);
for(i=0;i<argc;i++) for (i=0;i<argc;i++)
{ {
//if (((argv[i][0] == '/') || (argv[i][0] == '-')) && //if (((argv[i][0] == '/') || (argv[i][0] == '-')) &&
// ((argv[i][1] == 'N') || (argv[i][1] == 'n')) && // ((argv[i][1] == 'N') || (argv[i][1] == 'n')) &&
@ -412,7 +412,7 @@ long initmultiplayersparms(long argc, char **argv)
if (isvalidipaddress(st)) if (isvalidipaddress(st))
{ {
if ((danetmode == 1) && (daindex == myconnectindex)) daindex++; if ((danetmode == 1) && (daindex == myconnectindex)) daindex++;
for(j=0;st[j];j++) { for (j=0;st[j];j++) {
if (st[j] == ':') if (st[j] == ':')
{ otherport[daindex] = htons((unsigned short)atol(&st[j+1])); st[j] = 0; break; } { otherport[daindex] = htons((unsigned short)atol(&st[j+1])); st[j] = 0; break; }
} }
@ -425,7 +425,7 @@ long initmultiplayersparms(long argc, char **argv)
LPHOSTENT lph; LPHOSTENT lph;
unsigned short pt = htons(NETPORT); unsigned short pt = htons(NETPORT);
for(j=0;st[j];j++) for (j=0;st[j];j++)
if (st[j] == ':') if (st[j] == ':')
{ pt = htons((unsigned short)atol(&st[j+1])); st[j] = 0; break; } { pt = htons((unsigned short)atol(&st[j+1])); st[j] = 0; break; }
if ((lph = gethostbyname(st))) if ((lph = gethostbyname(st)))
@ -448,7 +448,7 @@ if ((danetmode == 255) && (daindex)) { numplayers = 2; danetmode = 0; } //an IP
// printf("Player %d: %d.%d.%d.%d:%d\n",i,otherip[i]&255,(otherip[i]>>8)&255,(otherip[i]>>16)&255,((unsigned long)otherip[i])>>24,ntohs(otherport[i])); // printf("Player %d: %d.%d.%d.%d:%d\n",i,otherip[i]&255,(otherip[i]>>8)&255,(otherip[i]>>16)&255,((unsigned long)otherip[i])>>24,ntohs(otherport[i]));
connecthead = 0; connecthead = 0;
for(i=0;i<numplayers-1;i++) connectpoint2[i] = i+1; for (i=0;i<numplayers-1;i++) connectpoint2[i] = i+1;
connectpoint2[numplayers-1] = -1; connectpoint2[numplayers-1] = -1;
// return (((!danetmode) && (numplayers >= 2)) || (numplayers == 2)); // return (((!danetmode) && (numplayers >= 2)) || (numplayers == 2));
@ -471,7 +471,7 @@ long initmultiplayerscycle(void)
tims = GetTickCount(); tims = GetTickCount();
if (myconnectindex == connecthead) //Player 0 only if (myconnectindex == connecthead) //Player 0 only
{ {
for(i=numplayers-1;i>0;i--) for (i=numplayers-1;i>0;i--)
if (!otherip[i]) break; if (!otherip[i]) break;
if (!i) { if (!i) {
nfIncCP(); //Addfaz NatFree nfIncCP(); //Addfaz NatFree
@ -527,7 +527,7 @@ void initmultiplayers (long argc, char **argv, char damultioption, char dacomrat
{ {
otims = tims; otims = tims;
sprintf(tbuf,"\rWait for players (%d/%d): ",myconnectindex,numplayers); sprintf(tbuf,"\rWait for players (%d/%d): ",myconnectindex,numplayers);
for(i=0;i<numplayers;i++) for (i=0;i<numplayers;i++)
{ {
if (i == myconnectindex) { strcat(tbuf,"<me> "); continue; } if (i == myconnectindex) { strcat(tbuf,"<me> "); continue; }
if (!otherip[i]) { strcat(tbuf,"?.?.?.?:? "); continue; } if (!otherip[i]) { strcat(tbuf,"?.?.?.?:? "); continue; }
@ -570,13 +570,13 @@ void dosendpackets (long other) //Host to send intially, client to send to other
k = 2; k = 2;
*(long *)&pakbuf[k] = icnt0[other]; k += 4; *(long *)&pakbuf[k] = icnt0[other]; k += 4;
memset(&pakbuf[k],0,32); memset(&pakbuf[k],0,32);
for(i=icnt0[other];i<icnt0[other]+256;i++) for (i=icnt0[other];i<icnt0[other]+256;i++)
if (ipak[other][i&(FIFSIZ-1)]) if (ipak[other][i&(FIFSIZ-1)])
pakbuf[((i-icnt0[other])>>3)+k] |= (1<<((i-icnt0[other])&7)); pakbuf[((i-icnt0[other])>>3)+k] |= (1<<((i-icnt0[other])&7));
k += 32; k += 32;
while ((ocnt0[other] < ocnt1[other]) && (!opak[other][ocnt0[other]&(FIFSIZ-1)])) ocnt0[other]++; while ((ocnt0[other] < ocnt1[other]) && (!opak[other][ocnt0[other]&(FIFSIZ-1)])) ocnt0[other]++;
for(i=ocnt0[other];i<ocnt1[other];i++) for (i=ocnt0[other];i<ocnt1[other];i++)
{ {
j = *(short *)&pakmem[opak[other][i&(FIFSIZ-1)]]; if (!j) continue; //packet already acked j = *(short *)&pakmem[opak[other][i&(FIFSIZ-1)]]; if (!j) continue; //packet already acked
if (k+6+j+4 > (long)sizeof(pakbuf)) break; if (k+6+j+4 > (long)sizeof(pakbuf)) break;
@ -624,7 +624,7 @@ long getpacket (long *retother, char *bufptr)
if (netready) if (netready)
{ {
for(i=connecthead;i>=0;i=connectpoint2[i]) for (i=connecthead;i>=0;i=connectpoint2[i])
{ {
if (i != myconnectindex) dosendpackets(i); if (i != myconnectindex) dosendpackets(i);
if ((!danetmode) && (myconnectindex != connecthead)) break; //slaves in M/S mode only send to master if ((!danetmode) && (myconnectindex != connecthead)) break; //slaves in M/S mode only send to master
@ -657,7 +657,7 @@ long getpacket (long *retother, char *bufptr)
//Master responds to slave with 0xab whenever it receives a 0xaa - even if during game! //Master responds to slave with 0xab whenever it receives a 0xaa - even if during game!
if ((pakbuf[k] == 0xaa) && (myconnectindex == connecthead)) if ((pakbuf[k] == 0xaa) && (myconnectindex == connecthead))
{ {
for(other=1;other<numplayers;other++) for (other=1;other<numplayers;other++)
{ {
//Only send to others asking for a response //Only send to others asking for a response
if ((otherip[other]) && ((otherip[other] != snatchip) || (otherport[other] != snatchport))) continue; if ((otherip[other]) && ((otherip[other] != snatchip) || (otherport[other] != snatchport))) continue;
@ -699,7 +699,7 @@ long getpacket (long *retother, char *bufptr)
numplayers = (long)pakbuf[k+2]; numplayers = (long)pakbuf[k+2];
connecthead = 0; connecthead = 0;
for(i=0;i<numplayers-1;i++) connectpoint2[i] = i+1; for (i=0;i<numplayers-1;i++) connectpoint2[i] = i+1;
connectpoint2[numplayers-1] = -1; connectpoint2[numplayers-1] = -1;
otherip[connecthead] = snatchip; otherip[connecthead] = snatchip;
@ -721,7 +721,7 @@ long getpacket (long *retother, char *bufptr)
else else
{ {
if (ocnt0[other] < ic0) ocnt0[other] = ic0; if (ocnt0[other] < ic0) ocnt0[other] = ic0;
for(i=ic0;i<min(ic0+256,ocnt1[other]);i++) for (i=ic0;i<min(ic0+256,ocnt1[other]);i++)
if (pakbuf[((i-ic0)>>3)+k]&(1<<((i-ic0)&7))) if (pakbuf[((i-ic0)>>3)+k]&(1<<((i-ic0)&7)))
opak[other][i&(FIFSIZ-1)] = 0; opak[other][i&(FIFSIZ-1)] = 0;
k += 32; k += 32;
@ -746,7 +746,7 @@ long getpacket (long *retother, char *bufptr)
//Return next valid packet from any player //Return next valid packet from any player
if (!bufptr) return(0); if (!bufptr) return(0);
for(i=connecthead;i>=0;i=connectpoint2[i]) for (i=connecthead;i>=0;i=connectpoint2[i])
{ {
if (i != myconnectindex) if (i != myconnectindex)
{ {
@ -786,7 +786,7 @@ const char *getexternaladdress(void)
char *host = "checkip.dyndns.org"; char *host = "checkip.dyndns.org";
char *req = "GET / HTTP/1.0\r\n\r\n"; char *req = "GET / HTTP/1.0\r\n\r\n";
if(ipaddr[0]) if (ipaddr[0])
return(ipaddr); return(ipaddr);
#ifdef _WIN32 #ifdef _WIN32
@ -812,18 +812,18 @@ const char *getexternaladdress(void)
memset(&(dest_addr.sin_zero), '\0', 8); memset(&(dest_addr.sin_zero), '\0', 8);
sockfd = socket(PF_INET, SOCK_STREAM, 0); sockfd = socket(PF_INET, SOCK_STREAM, 0);
if(sockfd == SOCKET_ERROR) { if (sockfd == SOCKET_ERROR) {
initprintf("mmulti: socket() error in getexternaladdress() (%d)\n",errno); initprintf("mmulti: socket() error in getexternaladdress() (%d)\n",errno);
return(0); return(0);
} }
if(connect(sockfd, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr)) == SOCKET_ERROR) { if (connect(sockfd, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr)) == SOCKET_ERROR) {
initprintf("mmulti: connect() error in getexternaladdress() (%d)\n",errno); initprintf("mmulti: connect() error in getexternaladdress() (%d)\n",errno);
return(0); return(0);
} }
bytes_sent = send(sockfd, req, strlen(req), 0); bytes_sent = send(sockfd, req, strlen(req), 0);
if(bytes_sent == SOCKET_ERROR) { if (bytes_sent == SOCKET_ERROR) {
initprintf("mmulti: send() error in getexternaladdress() (%d)\n",errno); initprintf("mmulti: send() error in getexternaladdress() (%d)\n",errno);
return(0); return(0);
} }
@ -836,11 +836,11 @@ const char *getexternaladdress(void)
WSACleanup(); WSACleanup();
#endif #endif
for(i=0;(unsigned)i<strlen(tempbuf);i++) for (i=0;(unsigned)i<strlen(tempbuf);i++)
{ {
if(isdigit(tempbuf[i]) && (isdigit(tempbuf[i+1]) || (tempbuf[i+1] == '.')) && (isdigit(tempbuf[i+2]) || (tempbuf[i+2] == '.')) && (isdigit(tempbuf[i+3]) || (tempbuf[i+3] == '.'))) if (isdigit(tempbuf[i]) && (isdigit(tempbuf[i+1]) || (tempbuf[i+1] == '.')) && (isdigit(tempbuf[i+2]) || (tempbuf[i+2] == '.')) && (isdigit(tempbuf[i+3]) || (tempbuf[i+3] == '.')))
{ {
while(isdigit(tempbuf[i]) || (tempbuf[i] == '.')) while (isdigit(tempbuf[i]) || (tempbuf[i] == '.'))
{ {
ipaddr[j] = tempbuf[i]; ipaddr[j] = tempbuf[i];
i++, j++; i++, j++;

View file

@ -110,7 +110,7 @@ static void _internal_drawosdchar(int x, int y, char ch, int shade, int pal)
if (white<0) { if (white<0) {
// find the palette index closest to white // find the palette index closest to white
k=0; k=0;
for(i=0;i<256;i++) for (i=0;i<256;i++)
{ {
j = ((int)curpalette[i].r)+((int)curpalette[i].g)+((int)curpalette[i].b); j = ((int)curpalette[i].r)+((int)curpalette[i].g)+((int)curpalette[i].b);
if (j > k) { k = j; white = i; } if (j > k) { k = j; white = i; }
@ -132,7 +132,7 @@ static void _internal_drawosdstr(int x, int y, char *ch, int len, int shade, int
if (white<0) { if (white<0) {
// find the palette index closest to white // find the palette index closest to white
k=0; k=0;
for(i=0;i<256;i++) for (i=0;i<256;i++)
{ {
j = ((int)curpalette[i].r)+((int)curpalette[i].g)+((int)curpalette[i].b); j = ((int)curpalette[i].r)+((int)curpalette[i].g)+((int)curpalette[i].b);
if (j > k) { k = j; white = i; } if (j > k) { k = j; white = i; }
@ -152,7 +152,7 @@ static void _internal_drawosdcursor(int x, int y, int type, int lastkeypress)
if (white<0) { if (white<0) {
// find the palette index closest to white // find the palette index closest to white
k=0; k=0;
for(i=0;i<256;i++) for (i=0;i<256;i++)
{ {
j = ((int)palette[i*3])+((int)palette[i*3+1])+((int)palette[i*3+2]); j = ((int)palette[i*3])+((int)palette[i*3+1])+((int)palette[i*3+2]);
if (j > k) { k = j; white = i; } if (j > k) { k = j; white = i; }
@ -803,9 +803,12 @@ static char *strtoken(char *s, char **ptrptr, int *restart)
break; break;
} else if (*p == '\\') { } else if (*p == '\\') {
switch (*(++p)) { switch (*(++p)) {
case 'n': *p2 = '\n'; break; case 'n':
case 'r': *p2 = '\r'; break; *p2 = '\n'; break;
default: *p2 = *p; break; case 'r':
*p2 = '\r'; break;
default:
*p2 = *p; break;
} }
} else { } else {
*p2 = *p; *p2 = *p;
@ -876,8 +879,10 @@ int OSD_Dispatch(const char *cmd)
ofp.parms = (const char **)parms; ofp.parms = (const char **)parms;
ofp.raw = cmd; ofp.raw = cmd;
switch (symb->func(&ofp)) { switch (symb->func(&ofp)) {
case OSDCMD_OK: break; case OSDCMD_OK:
case OSDCMD_SHOWHELP: OSD_Printf("%s\n", symb->help); break; break;
case OSDCMD_SHOWHELP:
OSD_Printf("%s\n", symb->help); break;
} }
state = wtp; state = wtp;

File diff suppressed because it is too large Load diff

View file

@ -184,13 +184,13 @@ void copybufreverse(void *S, void *D, long c)
void qinterpolatedown16(long bufptr, long num, long val, long add) void qinterpolatedown16(long bufptr, long num, long val, long add)
{ // gee, I wonder who could have provided this... { // gee, I wonder who could have provided this...
long i, *lptr = (long *)bufptr; long i, *lptr = (long *)bufptr;
for(i=0;i<num;i++) { lptr[i] = (val>>16); val += add; } for (i=0;i<num;i++) { lptr[i] = (val>>16); val += add; }
} }
void qinterpolatedown16short(long bufptr, long num, long val, long add) void qinterpolatedown16short(long bufptr, long num, long val, long add)
{ // ...maybe the same person who provided this too? { // ...maybe the same person who provided this too?
long i; short *sptr = (short *)bufptr; long i; short *sptr = (short *)bufptr;
for(i=0;i<num;i++) { sptr[i] = (short)(val>>16); val += add; } for (i=0;i<num;i++) { sptr[i] = (short)(val>>16); val += add; }
} }
void clearbuf(void *d, long c, long a) void clearbuf(void *d, long c, long a)
@ -232,13 +232,13 @@ void clearbufbyte(void *D, long c, long a)
void copybufbyte(void *S, void *D, long c) void copybufbyte(void *S, void *D, long c)
{ {
char *p = (char*)S, *q = (char*)D; char *p = (char*)S, *q = (char*)D;
while((c--) > 0) *(q++) = *(p++); while ((c--) > 0) *(q++) = *(p++);
} }
void copybufreverse(void *S, void *D, long c) void copybufreverse(void *S, void *D, long c)
{ {
char *p = (char*)S, *q = (char*)D; char *p = (char*)S, *q = (char*)D;
while((c--) > 0) *(q++) = *(p--); while ((c--) > 0) *(q++) = *(p--);
} }
#endif #endif

View file

@ -178,8 +178,8 @@ int scriptfile_getlinum (scriptfile *sf, char *ptr)
ind = ((long)ptr) - ((long)sf->textbuf); ind = ((long)ptr) - ((long)sf->textbuf);
for(stp=1;stp+stp<sf->linenum;stp+=stp); //stp = highest power of 2 less than sf->linenum for (stp=1;stp+stp<sf->linenum;stp+=stp); //stp = highest power of 2 less than sf->linenum
for(i=0;stp;stp>>=1) for (i=0;stp;stp>>=1)
if ((i+stp < sf->linenum) && (sf->lineoffs[i+stp] < ind)) i += stp; if ((i+stp < sf->linenum) && (sf->lineoffs[i+stp] < ind)) i += stp;
return(i+1); //i = index to highest lineoffs which is less than ind; convert to 1-based line numbers return(i+1); //i = index to highest lineoffs which is less than ind; convert to 1-based line numbers
} }
@ -190,7 +190,7 @@ void scriptfile_preparse (scriptfile *sf, char *tx, long flen)
//Count number of lines //Count number of lines
numcr = 1; numcr = 1;
for(i=0;i<flen;i++) for (i=0;i<flen;i++)
{ {
//detect all 4 types of carriage return (\r, \n, \r\n, \n\r :) //detect all 4 types of carriage return (\r, \n, \r\n, \n\r :)
cr=0;if (tx[i] == '\r') { i += (tx[i+1] == '\n'); cr = 1; } cr=0;if (tx[i] == '\r') { i += (tx[i+1] == '\n'); cr = 1; }
@ -203,7 +203,7 @@ void scriptfile_preparse (scriptfile *sf, char *tx, long flen)
//Preprocess file for comments (// and /*...*/, and convert all whitespace to single spaces) //Preprocess file for comments (// and /*...*/, and convert all whitespace to single spaces)
nflen = 0; ws = 0; cs = 0; numcr = 0; inquote = 0; nflen = 0; ws = 0; cs = 0; numcr = 0; inquote = 0;
for(i=0;i<flen;i++) for (i=0;i<flen;i++)
{ {
//detect all 4 types of carriage return (\r, \n, \r\n, \n\r :) //detect all 4 types of carriage return (\r, \n, \r\n, \n\r :)
cr=0;if (tx[i] == '\r') { i += (tx[i+1] == '\n'); cr = 1; } cr=0;if (tx[i] == '\r') { i += (tx[i+1] == '\n'); cr = 1; }
@ -236,9 +236,9 @@ void scriptfile_preparse (scriptfile *sf, char *tx, long flen)
#if 0 #if 0
//for debugging only: //for debugging only:
printf("pre-parsed file:flen=%d,nflen=%d\n",flen,nflen); printf("pre-parsed file:flen=%d,nflen=%d\n",flen,nflen);
for(i=0;i<nflen;i++) { if (tx[i] < 32) printf("_"); else printf("%c",tx[i]); } for (i=0;i<nflen;i++) { if (tx[i] < 32) printf("_"); else printf("%c",tx[i]); }
printf("[eof]\nnumlines=%d\n",sf->linenum); printf("[eof]\nnumlines=%d\n",sf->linenum);
for(i=0;i<sf->linenum;i++) printf("line %d = byte %d\n",i,sf->lineoffs[i]); for (i=0;i<sf->linenum;i++) printf("line %d = byte %d\n",i,sf->lineoffs[i]);
#endif #endif
flen = nflen; flen = nflen;
@ -339,7 +339,7 @@ static char * getsymbtabspace(int reqd)
if (symbtablength + reqd > symbtaballoclength) if (symbtablength + reqd > symbtaballoclength)
{ {
for(i=max(symbtaballoclength,SYMBTABSTARTSIZE);symbtablength+reqd>i;i<<=1); for (i=max(symbtaballoclength,SYMBTABSTARTSIZE);symbtablength+reqd>i;i<<=1);
np = (char *)realloc(symbtab, i); if (!np) return NULL; np = (char *)realloc(symbtab, i); if (!np) return NULL;
symbtab = np; symbtaballoclength = i; symbtab = np; symbtaballoclength = i;
} }

View file

@ -663,7 +663,8 @@ void getvalidmodes(void)
#ifdef USE_OPENGL #ifdef USE_OPENGL
16,24,32, 16,24,32,
#endif #endif
0 }; 0
};
static int defaultres[][2] = { static int defaultres[][2] = {
{1280,1024},{1280,960},{1152,864},{1024,768},{800,600},{640,480}, {1280,1024},{1280,960},{1152,864},{1024,768},{800,600},{640,480},
{640,400},{512,384},{480,360},{400,300},{320,240},{320,200},{0,0} {640,400},{512,384},{480,360},{400,300},{320,240},{320,200},{0,0}
@ -788,10 +789,10 @@ int checkvideomode(int *x, int *y, int c, int fs, int forced)
} }
} }
#ifdef ANY_WINDOWED_SIZE #ifdef ANY_WINDOWED_SIZE
if (!forced && (fs&1) == 0 && (nearest < 0 || (validmode[nearest].xdim!=*x || validmode[nearest].ydim!=*y))) if (!forced && (fs&1) == 0 && (nearest < 0 || (validmode[nearest].xdim!=*x || validmode[nearest].ydim!=*y)))
return 0x7fffffffl; return 0x7fffffffl;
#endif #endif
if (nearest < 0) { if (nearest < 0) {
// no mode that will match (eg. if no fullscreen modes) // no mode that will match (eg. if no fullscreen modes)
@ -1071,7 +1072,7 @@ void begindrawing(void)
setvlinebpl(bytesperline); setvlinebpl(bytesperline);
j = 0; j = 0;
for(i=0;i<=ydim;i++) ylookup[i] = j, j += bytesperline; for (i=0;i<=ydim;i++) ylookup[i] = j, j += bytesperline;
modechange=0; modechange=0;
} }
} }
@ -1301,10 +1302,14 @@ int handleevents(void)
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONUP:
switch (ev.button.button) { switch (ev.button.button) {
case SDL_BUTTON_LEFT: j = 0; break; case SDL_BUTTON_LEFT:
case SDL_BUTTON_RIGHT: j = 1; break; j = 0; break;
case SDL_BUTTON_MIDDLE: j = 2; break; case SDL_BUTTON_RIGHT:
default: j = ev.button.button; break; j = 1; break;
case SDL_BUTTON_MIDDLE:
j = 2; break;
default:
j = ev.button.button; break;
} }
if (j<0) break; if (j<0) break;

View file

@ -95,14 +95,22 @@ void initsb(char dadigistat, char damusistat, long dasamplerate, char danumspeak
} }
switch (FSOUND_GetOutput()) { switch (FSOUND_GetOutput()) {
case FSOUND_OUTPUT_NOSOUND: s = "No Sound"; break; case FSOUND_OUTPUT_NOSOUND:
case FSOUND_OUTPUT_WINMM: s = "WINMM"; break; s = "No Sound"; break;
case FSOUND_OUTPUT_DSOUND: s = "DirectSound"; break; case FSOUND_OUTPUT_WINMM:
case FSOUND_OUTPUT_OSS: s = "OSS"; break; s = "WINMM"; break;
case FSOUND_OUTPUT_ESD: s = "ESound"; break; case FSOUND_OUTPUT_DSOUND:
case FSOUND_OUTPUT_ALSA: s = "ALSA"; break; s = "DirectSound"; break;
case FSOUND_OUTPUT_ASIO: s = "ASIO"; break; case FSOUND_OUTPUT_OSS:
default: s = "Other"; break; s = "OSS"; break;
case FSOUND_OUTPUT_ESD:
s = "ESound"; break;
case FSOUND_OUTPUT_ALSA:
s = "ALSA"; break;
case FSOUND_OUTPUT_ASIO:
s = "ASIO"; break;
default:
s = "Other"; break;
} }
printOSD("Using FMOD \"%s\" output driver\n", s); printOSD("Using FMOD \"%s\" output driver\n", s);

View file

@ -112,10 +112,12 @@ static INT_PTR CALLBACK ConfigPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
case IDCALWAYSSHOW: case IDCALWAYSSHOW:
settings.forcesetup = IsDlgButtonChecked(hwndDlg, IDCALWAYSSHOW) == BST_CHECKED; settings.forcesetup = IsDlgButtonChecked(hwndDlg, IDCALWAYSSHOW) == BST_CHECKED;
return TRUE; return TRUE;
default: break; default:
break;
} }
break; break;
default: break; default:
break;
} }
return FALSE; return FALSE;
} }
@ -296,7 +298,8 @@ static INT_PTR CALLBACK startup_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam,
if (mode == TAB_CONFIG) done = 0; if (mode == TAB_CONFIG) done = 0;
else quitevent++; else quitevent++;
return TRUE; return TRUE;
case WIN_STARTWIN_START: done = 1; return TRUE; case WIN_STARTWIN_START:
done = 1; return TRUE;
} }
return FALSE; return FALSE;
@ -305,7 +308,8 @@ static INT_PTR CALLBACK startup_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam,
return (BOOL)GetSysColorBrush(COLOR_WINDOW); return (BOOL)GetSysColorBrush(COLOR_WINDOW);
break; break;
default: break; default:
break;
} }
return FALSE; return FALSE;
@ -422,8 +426,10 @@ int startwin_run(void)
while (done < 0) { while (done < 0) {
switch (GetMessage(&msg, NULL, 0,0)) { switch (GetMessage(&msg, NULL, 0,0)) {
case 0: done = 1; break; case 0:
case -1: return -1; done = 1; break;
case -1:
return -1;
default: default:
if (IsWindow(startupdlg) && IsDialogMessage(startupdlg, &msg)) break; if (IsWindow(startupdlg) && IsDialogMessage(startupdlg, &msg)) break;
TranslateMessage(&msg); TranslateMessage(&msg);

View file

@ -910,7 +910,8 @@ static BOOL CALLBACK InitDirectInput_enum(LPCDIDEVICEINSTANCE lpddi, LPVOID pvRe
); );
*/ */
break; break;
default: d = "OTHER"; break; default:
d = "OTHER"; break;
} }
initprintf(" * %s: %s\n", d, lpddi->tszProductName); initprintf(" * %s: %s\n", d, lpddi->tszProductName);
@ -1494,40 +1495,74 @@ static void ShowDInputErrorBox(const char *m, HRESULT r)
static const char * GetDInputError(HRESULT code) static const char * GetDInputError(HRESULT code)
{ {
switch (code) { switch (code) {
case DI_OK: return "DI_OK"; case DI_OK:
case DI_BUFFEROVERFLOW: return "DI_BUFFEROVERFLOW"; return "DI_OK";
case DI_DOWNLOADSKIPPED: return "DI_DOWNLOADSKIPPED"; case DI_BUFFEROVERFLOW:
case DI_EFFECTRESTARTED: return "DI_EFFECTRESTARTED"; return "DI_BUFFEROVERFLOW";
case DI_POLLEDDEVICE: return "DI_POLLEDDEVICE"; case DI_DOWNLOADSKIPPED:
case DI_TRUNCATED: return "DI_TRUNCATED"; return "DI_DOWNLOADSKIPPED";
case DI_TRUNCATEDANDRESTARTED: return "DI_TRUNCATEDANDRESTARTED"; case DI_EFFECTRESTARTED:
case DIERR_ACQUIRED: return "DIERR_ACQUIRED"; return "DI_EFFECTRESTARTED";
case DIERR_ALREADYINITIALIZED: return "DIERR_ALREADYINITIALIZED"; case DI_POLLEDDEVICE:
case DIERR_BADDRIVERVER: return "DIERR_BADDRIVERVER"; return "DI_POLLEDDEVICE";
case DIERR_BETADIRECTINPUTVERSION: return "DIERR_BETADIRECTINPUTVERSION"; case DI_TRUNCATED:
case DIERR_DEVICEFULL: return "DIERR_DEVICEFULL"; return "DI_TRUNCATED";
case DIERR_DEVICENOTREG: return "DIERR_DEVICENOTREG"; case DI_TRUNCATEDANDRESTARTED:
case DIERR_EFFECTPLAYING: return "DIERR_EFFECTPLAYING"; return "DI_TRUNCATEDANDRESTARTED";
case DIERR_HASEFFECTS: return "DIERR_HASEFFECTS"; case DIERR_ACQUIRED:
case DIERR_GENERIC: return "DIERR_GENERIC"; return "DIERR_ACQUIRED";
case DIERR_HANDLEEXISTS: return "DIERR_HANDLEEXISTS"; case DIERR_ALREADYINITIALIZED:
case DIERR_INCOMPLETEEFFECT: return "DIERR_INCOMPLETEEFFECT"; return "DIERR_ALREADYINITIALIZED";
case DIERR_INPUTLOST: return "DIERR_INPUTLOST"; case DIERR_BADDRIVERVER:
case DIERR_INVALIDPARAM: return "DIERR_INVALIDPARAM"; return "DIERR_BADDRIVERVER";
case DIERR_MOREDATA: return "DIERR_MOREDATA"; case DIERR_BETADIRECTINPUTVERSION:
case DIERR_NOAGGREGATION: return "DIERR_NOAGGREGATION"; return "DIERR_BETADIRECTINPUTVERSION";
case DIERR_NOINTERFACE: return "DIERR_NOINTERFACE"; case DIERR_DEVICEFULL:
case DIERR_NOTACQUIRED: return "DIERR_NOTACQUIRED"; return "DIERR_DEVICEFULL";
case DIERR_NOTBUFFERED: return "DIERR_NOTBUFFERED"; case DIERR_DEVICENOTREG:
case DIERR_NOTDOWNLOADED: return "DIERR_NOTDOWNLOADED"; return "DIERR_DEVICENOTREG";
case DIERR_NOTEXCLUSIVEACQUIRED: return "DIERR_NOTEXCLUSIVEACQUIRED"; case DIERR_EFFECTPLAYING:
case DIERR_NOTFOUND: return "DIERR_NOTFOUND"; return "DIERR_EFFECTPLAYING";
case DIERR_NOTINITIALIZED: return "DIERR_NOTINITIALIZED"; case DIERR_HASEFFECTS:
case DIERR_OLDDIRECTINPUTVERSION: return "DIERR_OLDDIRECTINPUTVERSION"; return "DIERR_HASEFFECTS";
case DIERR_OUTOFMEMORY: return "DIERR_OUTOFMEMORY"; case DIERR_GENERIC:
case DIERR_UNSUPPORTED: return "DIERR_UNSUPPORTED"; return "DIERR_GENERIC";
case E_PENDING: return "E_PENDING"; case DIERR_HANDLEEXISTS:
default: break; return "DIERR_HANDLEEXISTS";
case DIERR_INCOMPLETEEFFECT:
return "DIERR_INCOMPLETEEFFECT";
case DIERR_INPUTLOST:
return "DIERR_INPUTLOST";
case DIERR_INVALIDPARAM:
return "DIERR_INVALIDPARAM";
case DIERR_MOREDATA:
return "DIERR_MOREDATA";
case DIERR_NOAGGREGATION:
return "DIERR_NOAGGREGATION";
case DIERR_NOINTERFACE:
return "DIERR_NOINTERFACE";
case DIERR_NOTACQUIRED:
return "DIERR_NOTACQUIRED";
case DIERR_NOTBUFFERED:
return "DIERR_NOTBUFFERED";
case DIERR_NOTDOWNLOADED:
return "DIERR_NOTDOWNLOADED";
case DIERR_NOTEXCLUSIVEACQUIRED:
return "DIERR_NOTEXCLUSIVEACQUIRED";
case DIERR_NOTFOUND:
return "DIERR_NOTFOUND";
case DIERR_NOTINITIALIZED:
return "DIERR_NOTINITIALIZED";
case DIERR_OLDDIRECTINPUTVERSION:
return "DIERR_OLDDIRECTINPUTVERSION";
case DIERR_OUTOFMEMORY:
return "DIERR_OUTOFMEMORY";
case DIERR_UNSUPPORTED:
return "DIERR_UNSUPPORTED";
case E_PENDING:
return "E_PENDING";
default:
break;
} }
return "Unknown error"; return "Unknown error";
} }
@ -1993,7 +2028,7 @@ void begindrawing(void)
setvlinebpl(bytesperline); setvlinebpl(bytesperline);
j = 0; j = 0;
for(i=0;i<=ydim;i++) ylookup[i] = j, j += bytesperline; for (i=0;i<=ydim;i++) ylookup[i] = j, j += bytesperline;
modechange=0; modechange=0;
} }
@ -3170,118 +3205,230 @@ static void ShowDDrawErrorBox(const char *m, HRESULT r)
static const char * GetDDrawError(HRESULT code) static const char * GetDDrawError(HRESULT code)
{ {
switch (code) { switch (code) {
case DD_OK: return "DD_OK"; case DD_OK:
case DDERR_ALREADYINITIALIZED: return "DDERR_ALREADYINITIALIZED"; return "DD_OK";
case DDERR_BLTFASTCANTCLIP: return "DDERR_BLTFASTCANTCLIP"; case DDERR_ALREADYINITIALIZED:
case DDERR_CANNOTATTACHSURFACE: return "DDERR_CANNOTATTACHSURFACE"; return "DDERR_ALREADYINITIALIZED";
case DDERR_CANNOTDETACHSURFACE: return "DDERR_CANNOTDETACHSURFACE"; case DDERR_BLTFASTCANTCLIP:
case DDERR_CANTCREATEDC: return "DDERR_CANTCREATEDC"; return "DDERR_BLTFASTCANTCLIP";
case DDERR_CANTDUPLICATE: return "DDERR_CANTDUPLICATE"; case DDERR_CANNOTATTACHSURFACE:
case DDERR_CANTLOCKSURFACE: return "DDERR_CANTLOCKSURFACE"; return "DDERR_CANNOTATTACHSURFACE";
case DDERR_CANTPAGELOCK: return "DDERR_CANTPAGELOCK"; case DDERR_CANNOTDETACHSURFACE:
case DDERR_CANTPAGEUNLOCK: return "DDERR_CANTPAGEUNLOCK"; return "DDERR_CANNOTDETACHSURFACE";
case DDERR_CLIPPERISUSINGHWND: return "DDERR_CLIPPERISUSINGHWND"; case DDERR_CANTCREATEDC:
case DDERR_COLORKEYNOTSET: return "DDERR_COLORKEYNOTSET"; return "DDERR_CANTCREATEDC";
case DDERR_CURRENTLYNOTAVAIL: return "DDERR_CURRENTLYNOTAVAIL"; case DDERR_CANTDUPLICATE:
case DDERR_DCALREADYCREATED: return "DDERR_DCALREADYCREATED"; return "DDERR_CANTDUPLICATE";
case DDERR_DEVICEDOESNTOWNSURFACE: return "DDERR_DEVICEDOESNTOWNSURFACE"; case DDERR_CANTLOCKSURFACE:
case DDERR_DIRECTDRAWALREADYCREATED: return "DDERR_DIRECTDRAWALREADYCREATED"; return "DDERR_CANTLOCKSURFACE";
case DDERR_EXCEPTION: return "DDERR_EXCEPTION"; case DDERR_CANTPAGELOCK:
case DDERR_EXCLUSIVEMODEALREADYSET: return "DDERR_EXCLUSIVEMODEALREADYSET"; return "DDERR_CANTPAGELOCK";
case DDERR_EXPIRED: return "DDERR_EXPIRED"; case DDERR_CANTPAGEUNLOCK:
case DDERR_GENERIC: return "DDERR_GENERIC"; return "DDERR_CANTPAGEUNLOCK";
case DDERR_HEIGHTALIGN: return "DDERR_HEIGHTALIGN"; case DDERR_CLIPPERISUSINGHWND:
case DDERR_HWNDALREADYSET: return "DDERR_HWNDALREADYSET"; return "DDERR_CLIPPERISUSINGHWND";
case DDERR_HWNDSUBCLASSED: return "DDERR_HWNDSUBCLASSED"; case DDERR_COLORKEYNOTSET:
case DDERR_IMPLICITLYCREATED: return "DDERR_IMPLICITLYCREATED"; return "DDERR_COLORKEYNOTSET";
case DDERR_INCOMPATIBLEPRIMARY: return "DDERR_INCOMPATIBLEPRIMARY"; case DDERR_CURRENTLYNOTAVAIL:
case DDERR_INVALIDCAPS: return "DDERR_INVALIDCAPS"; return "DDERR_CURRENTLYNOTAVAIL";
case DDERR_INVALIDCLIPLIST: return "DDERR_INVALIDCLIPLIST"; case DDERR_DCALREADYCREATED:
case DDERR_INVALIDDIRECTDRAWGUID: return "DDERR_INVALIDDIRECTDRAWGUID"; return "DDERR_DCALREADYCREATED";
case DDERR_INVALIDMODE: return "DDERR_INVALIDMODE"; case DDERR_DEVICEDOESNTOWNSURFACE:
case DDERR_INVALIDOBJECT: return "DDERR_INVALIDOBJECT"; return "DDERR_DEVICEDOESNTOWNSURFACE";
case DDERR_INVALIDPARAMS: return "DDERR_INVALIDPARAMS"; case DDERR_DIRECTDRAWALREADYCREATED:
case DDERR_INVALIDPIXELFORMAT: return "DDERR_INVALIDPIXELFORMAT"; return "DDERR_DIRECTDRAWALREADYCREATED";
case DDERR_INVALIDPOSITION: return "DDERR_INVALIDPOSITION"; case DDERR_EXCEPTION:
case DDERR_INVALIDRECT: return "DDERR_INVALIDRECT"; return "DDERR_EXCEPTION";
case DDERR_INVALIDSTREAM: return "DDERR_INVALIDSTREAM"; case DDERR_EXCLUSIVEMODEALREADYSET:
case DDERR_INVALIDSURFACETYPE: return "DDERR_INVALIDSURFACETYPE"; return "DDERR_EXCLUSIVEMODEALREADYSET";
case DDERR_LOCKEDSURFACES: return "DDERR_LOCKEDSURFACES"; case DDERR_EXPIRED:
case DDERR_MOREDATA: return "DDERR_MOREDATA"; return "DDERR_EXPIRED";
case DDERR_NO3D: return "DDERR_NO3D"; case DDERR_GENERIC:
case DDERR_NOALPHAHW: return "DDERR_NOALPHAHW"; return "DDERR_GENERIC";
case DDERR_NOBLTHW: return "DDERR_NOBLTHW"; case DDERR_HEIGHTALIGN:
case DDERR_NOCLIPLIST: return "DDERR_NOCLIPLIST"; return "DDERR_HEIGHTALIGN";
case DDERR_NOCLIPPERATTACHED: return "DDERR_NOCLIPPERATTACHED"; case DDERR_HWNDALREADYSET:
case DDERR_NOCOLORCONVHW: return "DDERR_NOCOLORCONVHW"; return "DDERR_HWNDALREADYSET";
case DDERR_NOCOLORKEY: return "DDERR_NOCOLORKEY"; case DDERR_HWNDSUBCLASSED:
case DDERR_NOCOLORKEYHW: return "DDERR_NOCOLORKEYHW"; return "DDERR_HWNDSUBCLASSED";
case DDERR_NOCOOPERATIVELEVELSET: return "DDERR_NOCOOPERATIVELEVELSET"; case DDERR_IMPLICITLYCREATED:
case DDERR_NODC: return "DDERR_NODC"; return "DDERR_IMPLICITLYCREATED";
case DDERR_NODDROPSHW: return "DDERR_NODDROPSHW"; case DDERR_INCOMPATIBLEPRIMARY:
case DDERR_NODIRECTDRAWHW: return "DDERR_NODIRECTDRAWHW"; return "DDERR_INCOMPATIBLEPRIMARY";
case DDERR_NODIRECTDRAWSUPPORT: return "DDERR_NODIRECTDRAWSUPPORT"; case DDERR_INVALIDCAPS:
case DDERR_NOEMULATION: return "DDERR_NOEMULATION"; return "DDERR_INVALIDCAPS";
case DDERR_NOEXCLUSIVEMODE: return "DDERR_NOEXCLUSIVEMODE"; case DDERR_INVALIDCLIPLIST:
case DDERR_NOFLIPHW: return "DDERR_NOFLIPHW"; return "DDERR_INVALIDCLIPLIST";
case DDERR_NOFOCUSWINDOW: return "DDERR_NOFOCUSWINDOW"; case DDERR_INVALIDDIRECTDRAWGUID:
case DDERR_NOGDI: return "DDERR_NOGDI"; return "DDERR_INVALIDDIRECTDRAWGUID";
case DDERR_NOHWND: return "DDERR_NOHWND"; case DDERR_INVALIDMODE:
case DDERR_NOMIPMAPHW: return "DDERR_NOMIPMAPHW"; return "DDERR_INVALIDMODE";
case DDERR_NOMIRRORHW: return "DDERR_NOMIRRORHW"; case DDERR_INVALIDOBJECT:
case DDERR_NONONLOCALVIDMEM: return "DDERR_NONONLOCALVIDMEM"; return "DDERR_INVALIDOBJECT";
case DDERR_NOOPTIMIZEHW: return "DDERR_NOOPTIMIZEHW"; case DDERR_INVALIDPARAMS:
case DDERR_NOOVERLAYDEST: return "DDERR_NOOVERLAYDEST"; return "DDERR_INVALIDPARAMS";
case DDERR_NOOVERLAYHW: return "DDERR_NOOVERLAYHW"; case DDERR_INVALIDPIXELFORMAT:
case DDERR_NOPALETTEATTACHED: return "DDERR_NOPALETTEATTACHED"; return "DDERR_INVALIDPIXELFORMAT";
case DDERR_NOPALETTEHW: return "DDERR_NOPALETTEHW"; case DDERR_INVALIDPOSITION:
case DDERR_NORASTEROPHW: return "DDERR_NORASTEROPHW"; return "DDERR_INVALIDPOSITION";
case DDERR_NOROTATIONHW: return "DDERR_NOROTATIONHW"; case DDERR_INVALIDRECT:
case DDERR_NOSTRETCHHW: return "DDERR_NOSTRETCHHW"; return "DDERR_INVALIDRECT";
case DDERR_NOT4BITCOLOR: return "DDERR_NOT4BITCOLOR"; case DDERR_INVALIDSTREAM:
case DDERR_NOT4BITCOLORINDEX: return "DDERR_NOT4BITCOLORINDEX"; return "DDERR_INVALIDSTREAM";
case DDERR_NOT8BITCOLOR: return "DDERR_NOT8BITCOLOR"; case DDERR_INVALIDSURFACETYPE:
case DDERR_NOTAOVERLAYSURFACE: return "DDERR_NOTAOVERLAYSURFACE"; return "DDERR_INVALIDSURFACETYPE";
case DDERR_NOTEXTUREHW: return "DDERR_NOTEXTUREHW"; case DDERR_LOCKEDSURFACES:
case DDERR_NOTFLIPPABLE: return "DDERR_NOTFLIPPABLE"; return "DDERR_LOCKEDSURFACES";
case DDERR_NOTFOUND: return "DDERR_NOTFOUND"; case DDERR_MOREDATA:
case DDERR_NOTINITIALIZED: return "DDERR_NOTINITIALIZED"; return "DDERR_MOREDATA";
case DDERR_NOTLOADED: return "DDERR_NOTLOADED"; case DDERR_NO3D:
case DDERR_NOTLOCKED: return "DDERR_NOTLOCKED"; return "DDERR_NO3D";
case DDERR_NOTPAGELOCKED: return "DDERR_NOTPAGELOCKED"; case DDERR_NOALPHAHW:
case DDERR_NOTPALETTIZED: return "DDERR_NOTPALETTIZED"; return "DDERR_NOALPHAHW";
case DDERR_NOVSYNCHW: return "DDERR_NOVSYNCHW"; case DDERR_NOBLTHW:
case DDERR_NOZBUFFERHW: return "DDERR_NOZBUFFERHW"; return "DDERR_NOBLTHW";
case DDERR_NOZOVERLAYHW: return "DDERR_NOZOVERLAYHW"; case DDERR_NOCLIPLIST:
case DDERR_OUTOFCAPS: return "DDERR_OUTOFCAPS"; return "DDERR_NOCLIPLIST";
case DDERR_OUTOFMEMORY: return "DDERR_OUTOFMEMORY"; case DDERR_NOCLIPPERATTACHED:
case DDERR_OUTOFVIDEOMEMORY: return "DDERR_OUTOFVIDEOMEMORY"; return "DDERR_NOCLIPPERATTACHED";
case DDERR_OVERLAPPINGRECTS: return "DDERR_OVERLAPPINGRECTS"; case DDERR_NOCOLORCONVHW:
case DDERR_OVERLAYCANTCLIP: return "DDERR_OVERLAYCANTCLIP"; return "DDERR_NOCOLORCONVHW";
case DDERR_OVERLAYCOLORKEYONLYONEACTIVE: return "DDERR_OVERLAYCOLORKEYONLYONEACTIVE"; case DDERR_NOCOLORKEY:
case DDERR_OVERLAYNOTVISIBLE: return "DDERR_OVERLAYNOTVISIBLE"; return "DDERR_NOCOLORKEY";
case DDERR_PALETTEBUSY: return "DDERR_PALETTEBUSY"; case DDERR_NOCOLORKEYHW:
case DDERR_PRIMARYSURFACEALREADYEXISTS: return "DDERR_PRIMARYSURFACEALREADYEXISTS"; return "DDERR_NOCOLORKEYHW";
case DDERR_REGIONTOOSMALL: return "DDERR_REGIONTOOSMALL"; case DDERR_NOCOOPERATIVELEVELSET:
case DDERR_SURFACEALREADYATTACHED: return "DDERR_SURFACEALREADYATTACHED"; return "DDERR_NOCOOPERATIVELEVELSET";
case DDERR_SURFACEALREADYDEPENDENT: return "DDERR_SURFACEALREADYDEPENDENT"; case DDERR_NODC:
case DDERR_SURFACEBUSY: return "DDERR_SURFACEBUSY"; return "DDERR_NODC";
case DDERR_SURFACEISOBSCURED: return "DDERR_SURFACEISOBSCURED"; case DDERR_NODDROPSHW:
case DDERR_SURFACELOST: return "DDERR_SURFACELOST"; return "DDERR_NODDROPSHW";
case DDERR_SURFACENOTATTACHED: return "DDERR_SURFACENOTATTACHED"; case DDERR_NODIRECTDRAWHW:
case DDERR_TOOBIGHEIGHT: return "DDERR_TOOBIGHEIGHT"; return "DDERR_NODIRECTDRAWHW";
case DDERR_TOOBIGSIZE: return "DDERR_TOOBIGSIZE"; case DDERR_NODIRECTDRAWSUPPORT:
case DDERR_TOOBIGWIDTH: return "DDERR_TOOBIGWIDTH"; return "DDERR_NODIRECTDRAWSUPPORT";
case DDERR_UNSUPPORTED: return "DDERR_UNSUPPORTED"; case DDERR_NOEMULATION:
case DDERR_UNSUPPORTEDFORMAT: return "DDERR_UNSUPPORTEDFORMAT"; return "DDERR_NOEMULATION";
case DDERR_UNSUPPORTEDMASK: return "DDERR_UNSUPPORTEDMASK"; case DDERR_NOEXCLUSIVEMODE:
case DDERR_UNSUPPORTEDMODE: return "DDERR_UNSUPPORTEDMODE"; return "DDERR_NOEXCLUSIVEMODE";
case DDERR_VERTICALBLANKINPROGRESS: return "DDERR_VERTICALBLANKINPROGRESS"; case DDERR_NOFLIPHW:
case DDERR_VIDEONOTACTIVE: return "DDERR_VIDEONOTACTIVE"; return "DDERR_NOFLIPHW";
case DDERR_WASSTILLDRAWING: return "DDERR_WASSTILLDRAWING"; case DDERR_NOFOCUSWINDOW:
case DDERR_WRONGMODE: return "DDERR_WRONGMODE"; return "DDERR_NOFOCUSWINDOW";
case DDERR_XALIGN: return "DDERR_XALIGN"; case DDERR_NOGDI:
default: break; return "DDERR_NOGDI";
case DDERR_NOHWND:
return "DDERR_NOHWND";
case DDERR_NOMIPMAPHW:
return "DDERR_NOMIPMAPHW";
case DDERR_NOMIRRORHW:
return "DDERR_NOMIRRORHW";
case DDERR_NONONLOCALVIDMEM:
return "DDERR_NONONLOCALVIDMEM";
case DDERR_NOOPTIMIZEHW:
return "DDERR_NOOPTIMIZEHW";
case DDERR_NOOVERLAYDEST:
return "DDERR_NOOVERLAYDEST";
case DDERR_NOOVERLAYHW:
return "DDERR_NOOVERLAYHW";
case DDERR_NOPALETTEATTACHED:
return "DDERR_NOPALETTEATTACHED";
case DDERR_NOPALETTEHW:
return "DDERR_NOPALETTEHW";
case DDERR_NORASTEROPHW:
return "DDERR_NORASTEROPHW";
case DDERR_NOROTATIONHW:
return "DDERR_NOROTATIONHW";
case DDERR_NOSTRETCHHW:
return "DDERR_NOSTRETCHHW";
case DDERR_NOT4BITCOLOR:
return "DDERR_NOT4BITCOLOR";
case DDERR_NOT4BITCOLORINDEX:
return "DDERR_NOT4BITCOLORINDEX";
case DDERR_NOT8BITCOLOR:
return "DDERR_NOT8BITCOLOR";
case DDERR_NOTAOVERLAYSURFACE:
return "DDERR_NOTAOVERLAYSURFACE";
case DDERR_NOTEXTUREHW:
return "DDERR_NOTEXTUREHW";
case DDERR_NOTFLIPPABLE:
return "DDERR_NOTFLIPPABLE";
case DDERR_NOTFOUND:
return "DDERR_NOTFOUND";
case DDERR_NOTINITIALIZED:
return "DDERR_NOTINITIALIZED";
case DDERR_NOTLOADED:
return "DDERR_NOTLOADED";
case DDERR_NOTLOCKED:
return "DDERR_NOTLOCKED";
case DDERR_NOTPAGELOCKED:
return "DDERR_NOTPAGELOCKED";
case DDERR_NOTPALETTIZED:
return "DDERR_NOTPALETTIZED";
case DDERR_NOVSYNCHW:
return "DDERR_NOVSYNCHW";
case DDERR_NOZBUFFERHW:
return "DDERR_NOZBUFFERHW";
case DDERR_NOZOVERLAYHW:
return "DDERR_NOZOVERLAYHW";
case DDERR_OUTOFCAPS:
return "DDERR_OUTOFCAPS";
case DDERR_OUTOFMEMORY:
return "DDERR_OUTOFMEMORY";
case DDERR_OUTOFVIDEOMEMORY:
return "DDERR_OUTOFVIDEOMEMORY";
case DDERR_OVERLAPPINGRECTS:
return "DDERR_OVERLAPPINGRECTS";
case DDERR_OVERLAYCANTCLIP:
return "DDERR_OVERLAYCANTCLIP";
case DDERR_OVERLAYCOLORKEYONLYONEACTIVE:
return "DDERR_OVERLAYCOLORKEYONLYONEACTIVE";
case DDERR_OVERLAYNOTVISIBLE:
return "DDERR_OVERLAYNOTVISIBLE";
case DDERR_PALETTEBUSY:
return "DDERR_PALETTEBUSY";
case DDERR_PRIMARYSURFACEALREADYEXISTS:
return "DDERR_PRIMARYSURFACEALREADYEXISTS";
case DDERR_REGIONTOOSMALL:
return "DDERR_REGIONTOOSMALL";
case DDERR_SURFACEALREADYATTACHED:
return "DDERR_SURFACEALREADYATTACHED";
case DDERR_SURFACEALREADYDEPENDENT:
return "DDERR_SURFACEALREADYDEPENDENT";
case DDERR_SURFACEBUSY:
return "DDERR_SURFACEBUSY";
case DDERR_SURFACEISOBSCURED:
return "DDERR_SURFACEISOBSCURED";
case DDERR_SURFACELOST:
return "DDERR_SURFACELOST";
case DDERR_SURFACENOTATTACHED:
return "DDERR_SURFACENOTATTACHED";
case DDERR_TOOBIGHEIGHT:
return "DDERR_TOOBIGHEIGHT";
case DDERR_TOOBIGSIZE:
return "DDERR_TOOBIGSIZE";
case DDERR_TOOBIGWIDTH:
return "DDERR_TOOBIGWIDTH";
case DDERR_UNSUPPORTED:
return "DDERR_UNSUPPORTED";
case DDERR_UNSUPPORTEDFORMAT:
return "DDERR_UNSUPPORTEDFORMAT";
case DDERR_UNSUPPORTEDMASK:
return "DDERR_UNSUPPORTEDMASK";
case DDERR_UNSUPPORTEDMODE:
return "DDERR_UNSUPPORTEDMODE";
case DDERR_VERTICALBLANKINPROGRESS:
return "DDERR_VERTICALBLANKINPROGRESS";
case DDERR_VIDEONOTACTIVE:
return "DDERR_VIDEONOTACTIVE";
case DDERR_WASSTILLDRAWING:
return "DDERR_WASSTILLDRAWING";
case DDERR_WRONGMODE:
return "DDERR_WRONGMODE";
case DDERR_XALIGN:
return "DDERR_XALIGN";
default:
break;
} }
return "Unknown error"; return "Unknown error";
} }

File diff suppressed because it is too large Load diff

View file

@ -25,11 +25,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
void endanimsounds(long fr) void endanimsounds(long fr)
{ {
switch(ud.volume_number) switch (ud.volume_number)
{ {
case 0:break; case 0:
break;
case 1: case 1:
switch(fr) switch (fr)
{ {
case 1: case 1:
sound(WIND_AMBIENCE); sound(WIND_AMBIENCE);
@ -61,7 +62,7 @@ void endanimsounds(long fr)
} }
break; break;
case 2: case 2:
switch(fr) switch (fr)
{ {
case 1: case 1:
sound(WIND_REPEAT); sound(WIND_REPEAT);
@ -89,7 +90,7 @@ void endanimsounds(long fr)
void logoanimsounds(long fr) void logoanimsounds(long fr)
{ {
switch(fr) switch (fr)
{ {
case 1: case 1:
sound(FLY_BY); sound(FLY_BY);
@ -102,7 +103,7 @@ void logoanimsounds(long fr)
void intro4animsounds(long fr) void intro4animsounds(long fr)
{ {
switch(fr) switch (fr)
{ {
case 1: case 1:
sound(INTRO4_B); sound(INTRO4_B);
@ -119,7 +120,7 @@ void intro4animsounds(long fr)
void first4animsounds(long fr) void first4animsounds(long fr)
{ {
switch(fr) switch (fr)
{ {
case 1: case 1:
sound(INTRO4_1); sound(INTRO4_1);
@ -138,7 +139,7 @@ void first4animsounds(long fr)
void intro42animsounds(long fr) void intro42animsounds(long fr)
{ {
switch(fr) switch (fr)
{ {
case 10: case 10:
sound(INTRO4_6); sound(INTRO4_6);
@ -148,7 +149,7 @@ void intro42animsounds(long fr)
void endanimvol41(long fr) void endanimvol41(long fr)
{ {
switch(fr) switch (fr)
{ {
case 3: case 3:
sound(DUKE_UNDERWATER); sound(DUKE_UNDERWATER);
@ -161,7 +162,7 @@ void endanimvol41(long fr)
void endanimvol42(long fr) void endanimvol42(long fr)
{ {
switch(fr) switch (fr)
{ {
case 11: case 11:
sound(DUKE_UNDERWATER); sound(DUKE_UNDERWATER);
@ -180,7 +181,7 @@ void endanimvol42(long fr)
void endanimvol43(long fr) void endanimvol43(long fr)
{ {
switch(fr) switch (fr)
{ {
case 1: case 1:
sound(BOSS4_DEADSPEECH); sound(BOSS4_DEADSPEECH);
@ -203,17 +204,17 @@ void playanm(char *fn,char t)
// return; // return;
if(t != 7 && t != 9 && t != 10 && t != 11) if (t != 7 && t != 9 && t != 10 && t != 11)
KB_FlushKeyboardQueue(); KB_FlushKeyboardQueue();
if( KB_KeyWaiting() ) if ( KB_KeyWaiting() )
{ {
FX_StopAllSounds(); FX_StopAllSounds();
goto ENDOFANIMLOOP; goto ENDOFANIMLOOP;
} }
handle = kopen4load(fn,0); handle = kopen4load(fn,0);
if(handle == -1) return; if (handle == -1) return;
length = kfilelength(handle); length = kfilelength(handle);
walock[TILE_ANIM] = 219+t; walock[TILE_ANIM] = 219+t;
@ -230,7 +231,7 @@ void playanm(char *fn,char t)
numframes = ANIM_NumFrames(); numframes = ANIM_NumFrames();
palptr = ANIM_GetPalette(); palptr = ANIM_GetPalette();
for(i=0;i<256;i++) for (i=0;i<256;i++)
{ {
/* /*
j = (i<<2); k = j-i; j = (i<<2); k = j-i;
@ -251,26 +252,26 @@ void playanm(char *fn,char t)
ototalclock = totalclock + 10; ototalclock = totalclock + 10;
for(i=1;i<numframes;i++) for (i=1;i<numframes;i++)
{ {
while(totalclock < ototalclock) while (totalclock < ototalclock)
{ {
extern char restorepalette; extern char restorepalette;
if( KB_KeyWaiting() ) if ( KB_KeyWaiting() )
goto ENDOFANIMLOOP; goto ENDOFANIMLOOP;
handleevents(); getpackets(); handleevents(); getpackets();
if(restorepalette == 1) if (restorepalette == 1)
setgamepalette(&ps[myconnectindex],tempbuf,2); setgamepalette(&ps[myconnectindex],tempbuf,2);
} }
if(t == 10) ototalclock += 14; if (t == 10) ototalclock += 14;
else if(t == 9) ototalclock += 10; else if (t == 9) ototalclock += 10;
else if(t == 7) ototalclock += 18; else if (t == 7) ototalclock += 18;
else if(t == 6) ototalclock += 14; else if (t == 6) ototalclock += 14;
else if(t == 5) ototalclock += 9; else if (t == 5) ototalclock += 9;
else if(ud.volume_number == 3) ototalclock += 10; else if (ud.volume_number == 3) ototalclock += 10;
else if(ud.volume_number == 2) ototalclock += 10; else if (ud.volume_number == 2) ototalclock += 10;
else if(ud.volume_number == 1) ototalclock += 18; else if (ud.volume_number == 1) ototalclock += 18;
else ototalclock += 10; else ototalclock += 10;
waloff[TILE_ANIM] = FP_OFF(ANIM_DrawFrame(i)); waloff[TILE_ANIM] = FP_OFF(ANIM_DrawFrame(i));
@ -278,14 +279,14 @@ void playanm(char *fn,char t)
rotatesprite(0<<16,0<<16,65536L,512,TILE_ANIM,0,0,2+4+8+16+64, 0,0,xdim-1,ydim-1); rotatesprite(0<<16,0<<16,65536L,512,TILE_ANIM,0,0,2+4+8+16+64, 0,0,xdim-1,ydim-1);
nextpage(); nextpage();
if(t == 8) endanimvol41(i); if (t == 8) endanimvol41(i);
else if(t == 10) endanimvol42(i); else if (t == 10) endanimvol42(i);
else if(t == 11) endanimvol43(i); else if (t == 11) endanimvol43(i);
else if(t == 9) intro42animsounds(i); else if (t == 9) intro42animsounds(i);
else if(t == 7) intro4animsounds(i); else if (t == 7) intro4animsounds(i);
else if(t == 6) first4animsounds(i); else if (t == 6) first4animsounds(i);
else if(t == 5) logoanimsounds(i); else if (t == 5) logoanimsounds(i);
else if(t < 4) endanimsounds(i); else if (t < 4) endanimsounds(i);
} }
ENDOFANIMLOOP: ENDOFANIMLOOP:

File diff suppressed because it is too large Load diff

View file

@ -417,12 +417,12 @@ void CONFIG_SetupMouse( void )
{ {
Bsprintf(str,"MouseButton%ld",i); temp[0] = 0; Bsprintf(str,"MouseButton%ld",i); temp[0] = 0;
if (!SCRIPT_GetString( scripthandle,"Controls", str,temp)) if (!SCRIPT_GetString( scripthandle,"Controls", str,temp))
if(CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0)
MouseFunctions[i][0] = CONFIG_FunctionNameToNum(temp); MouseFunctions[i][0] = CONFIG_FunctionNameToNum(temp);
Bsprintf(str,"MouseButtonClicked%ld",i); temp[0] = 0; Bsprintf(str,"MouseButtonClicked%ld",i); temp[0] = 0;
if (!SCRIPT_GetString( scripthandle,"Controls", str,temp)) if (!SCRIPT_GetString( scripthandle,"Controls", str,temp))
if(CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0)
MouseFunctions[i][1] = CONFIG_FunctionNameToNum(temp); MouseFunctions[i][1] = CONFIG_FunctionNameToNum(temp);
} }
@ -431,17 +431,17 @@ void CONFIG_SetupMouse( void )
{ {
Bsprintf(str,"MouseAnalogAxes%ld",i); temp[0] = 0; Bsprintf(str,"MouseAnalogAxes%ld",i); temp[0] = 0;
if (!SCRIPT_GetString(scripthandle, "Controls", str,temp)) if (!SCRIPT_GetString(scripthandle, "Controls", str,temp))
if(CONFIG_AnalogNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_AnalogNameToNum(temp) != -1 || temp[0] == 0)
MouseAnalogueAxes[i] = CONFIG_AnalogNameToNum(temp); MouseAnalogueAxes[i] = CONFIG_AnalogNameToNum(temp);
Bsprintf(str,"MouseDigitalAxes%ld_0",i); temp[0] = 0; Bsprintf(str,"MouseDigitalAxes%ld_0",i); temp[0] = 0;
if (!SCRIPT_GetString(scripthandle, "Controls", str,temp)) if (!SCRIPT_GetString(scripthandle, "Controls", str,temp))
if(CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0)
MouseDigitalFunctions[i][0] = CONFIG_FunctionNameToNum(temp); MouseDigitalFunctions[i][0] = CONFIG_FunctionNameToNum(temp);
Bsprintf(str,"MouseDigitalAxes%ld_1",i); temp[0] = 0; Bsprintf(str,"MouseDigitalAxes%ld_1",i); temp[0] = 0;
if (!SCRIPT_GetString(scripthandle, "Controls", str,temp)) if (!SCRIPT_GetString(scripthandle, "Controls", str,temp))
if(CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0)
MouseDigitalFunctions[i][1] = CONFIG_FunctionNameToNum(temp); MouseDigitalFunctions[i][1] = CONFIG_FunctionNameToNum(temp);
Bsprintf(str,"MouseAnalogScale%ld",i); Bsprintf(str,"MouseAnalogScale%ld",i);
@ -489,12 +489,12 @@ void CONFIG_SetupJoystick( void )
{ {
Bsprintf(str,"JoystickButton%ld",i); temp[0] = 0; Bsprintf(str,"JoystickButton%ld",i); temp[0] = 0;
if (!SCRIPT_GetString( scripthandle,"Controls", str,temp)) if (!SCRIPT_GetString( scripthandle,"Controls", str,temp))
if(CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0)
JoystickFunctions[i][0] = CONFIG_FunctionNameToNum(temp); JoystickFunctions[i][0] = CONFIG_FunctionNameToNum(temp);
Bsprintf(str,"JoystickButtonClicked%ld",i); temp[0] = 0; Bsprintf(str,"JoystickButtonClicked%ld",i); temp[0] = 0;
if (!SCRIPT_GetString( scripthandle,"Controls", str,temp)) if (!SCRIPT_GetString( scripthandle,"Controls", str,temp))
if(CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0)
JoystickFunctions[i][1] = CONFIG_FunctionNameToNum(temp); JoystickFunctions[i][1] = CONFIG_FunctionNameToNum(temp);
} }
@ -503,17 +503,17 @@ void CONFIG_SetupJoystick( void )
{ {
Bsprintf(str,"JoystickAnalogAxes%ld",i); temp[0] = 0; Bsprintf(str,"JoystickAnalogAxes%ld",i); temp[0] = 0;
if (!SCRIPT_GetString(scripthandle, "Controls", str,temp)) if (!SCRIPT_GetString(scripthandle, "Controls", str,temp))
if(CONFIG_AnalogNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_AnalogNameToNum(temp) != -1 || temp[0] == 0)
JoystickAnalogueAxes[i] = CONFIG_AnalogNameToNum(temp); JoystickAnalogueAxes[i] = CONFIG_AnalogNameToNum(temp);
Bsprintf(str,"JoystickDigitalAxes%ld_0",i); temp[0] = 0; Bsprintf(str,"JoystickDigitalAxes%ld_0",i); temp[0] = 0;
if (!SCRIPT_GetString(scripthandle, "Controls", str,temp)) if (!SCRIPT_GetString(scripthandle, "Controls", str,temp))
if(CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0)
JoystickDigitalFunctions[i][0] = CONFIG_FunctionNameToNum(temp); JoystickDigitalFunctions[i][0] = CONFIG_FunctionNameToNum(temp);
Bsprintf(str,"JoystickDigitalAxes%ld_1",i); temp[0] = 0; Bsprintf(str,"JoystickDigitalAxes%ld_1",i); temp[0] = 0;
if (!SCRIPT_GetString(scripthandle, "Controls", str,temp)) if (!SCRIPT_GetString(scripthandle, "Controls", str,temp))
if(CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0) if (CONFIG_FunctionNameToNum(temp) != -1 || temp[0] == 0)
JoystickDigitalFunctions[i][1] = CONFIG_FunctionNameToNum(temp); JoystickDigitalFunctions[i][1] = CONFIG_FunctionNameToNum(temp);
Bsprintf(str,"JoystickAnalogScale%ld",i); Bsprintf(str,"JoystickAnalogScale%ld",i);
@ -559,10 +559,10 @@ void readsavenames(void)
{ {
fn[4] = i+'0'; fn[4] = i+'0';
if ((fil = Bfopen(fn,"rb")) == NULL ) continue; if ((fil = Bfopen(fn,"rb")) == NULL ) continue;
if(dfread(&j,sizeof(long),1,fil) != 1) { Bfclose(fil); continue; } if (dfread(&j,sizeof(long),1,fil) != 1) { Bfclose(fil); continue; }
if(dfread(g_szBuf,j,1,fil) != 1) { Bfclose(fil); continue; } if (dfread(g_szBuf,j,1,fil) != 1) { Bfclose(fil); continue; }
if (dfread(&dummy,4,1,fil) != 1) { Bfclose(fil); continue; } if (dfread(&dummy,4,1,fil) != 1) { Bfclose(fil); continue; }
if(dummy != BYTEVERSION) { Bfclose(fil); continue; } if (dummy != BYTEVERSION) { Bfclose(fil); continue; }
if (dfread(&dummy,4,1,fil) != 1) { Bfclose(fil); continue; } if (dfread(&dummy,4,1,fil) != 1) { Bfclose(fil); continue; }
if (dfread(&ud.savegame[i][0],19,1,fil) != 1) { ud.savegame[i][0] = 0; } if (dfread(&ud.savegame[i][0],19,1,fil) != 1) { ud.savegame[i][0] = 0; }
Bfclose(fil); Bfclose(fil);
@ -597,7 +597,7 @@ int32 CONFIG_ReadSetup( void )
if (scripthandle >= 0) if (scripthandle >= 0)
{ {
for(dummy = 0;dummy < 10;dummy++) for (dummy = 0;dummy < 10;dummy++)
{ {
commmacro[13] = dummy+'0'; commmacro[13] = dummy+'0';
SCRIPT_GetString( scripthandle, "Comm Setup",commmacro,&ud.ridecule[dummy][0]); SCRIPT_GetString( scripthandle, "Comm Setup",commmacro,&ud.ridecule[dummy][0]);
@ -605,7 +605,7 @@ int32 CONFIG_ReadSetup( void )
SCRIPT_GetString( scripthandle, "Comm Setup","PlayerName",&tempbuf[0]); SCRIPT_GetString( scripthandle, "Comm Setup","PlayerName",&tempbuf[0]);
while(Bstrlen(strip_color_codes(tempbuf)) > 10) while (Bstrlen(strip_color_codes(tempbuf)) > 10)
tempbuf[Bstrlen(tempbuf)-1] = '\0'; tempbuf[Bstrlen(tempbuf)-1] = '\0';
Bstrncpy(myname,tempbuf,sizeof(myname)-1); Bstrncpy(myname,tempbuf,sizeof(myname)-1);
@ -665,7 +665,7 @@ int32 CONFIG_ReadSetup( void )
check_player_color((int *)&ud.color,-1); check_player_color((int *)&ud.color,-1);
ps[0].palookup = ud.pcolor[0] = ud.color; ps[0].palookup = ud.pcolor[0] = ud.color;
SCRIPT_GetNumber( scripthandle, "Misc", "Team",&ud.team); SCRIPT_GetNumber( scripthandle, "Misc", "Team",&ud.team);
if(ud.team > 1) ud.team = 0; if (ud.team > 1) ud.team = 0;
ud.pteam[0] = ud.team; ud.pteam[0] = ud.team;
SCRIPT_GetNumber( scripthandle, "Misc", "MPMessageDisplayTime",&ud.msgdisptime); SCRIPT_GetNumber( scripthandle, "Misc", "MPMessageDisplayTime",&ud.msgdisptime);
SCRIPT_GetNumber( scripthandle, "Misc", "StatusBarMode",&ud.statusbarmode); SCRIPT_GetNumber( scripthandle, "Misc", "StatusBarMode",&ud.statusbarmode);
@ -677,7 +677,7 @@ int32 CONFIG_ReadSetup( void )
// weapon choices are defaulted in checkcommandline, which may override them // weapon choices are defaulted in checkcommandline, which may override them
if (!CommandWeaponChoice) if (!CommandWeaponChoice)
for(i=0;i<10;i++) for (i=0;i<10;i++)
{ {
Bsprintf(buf,"WeaponChoice%ld",i); Bsprintf(buf,"WeaponChoice%ld",i);
dummy = -1; dummy = -1;
@ -813,12 +813,12 @@ void CONFIG_WriteSetup( void )
SCRIPT_PutNumber( scripthandle, "Sound Setup", "VoiceToggle",VoiceToggle,false,false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "VoiceToggle",VoiceToggle,false,false);
// JBF 20031211 // JBF 20031211
for(dummy=0;dummy<NUMGAMEFUNCTIONS;dummy++) { for (dummy=0;dummy<NUMGAMEFUNCTIONS;dummy++) {
SCRIPT_PutDoubleString( scripthandle, "KeyDefinitions", CONFIG_FunctionNumToName(dummy), SCRIPT_PutDoubleString( scripthandle, "KeyDefinitions", CONFIG_FunctionNumToName(dummy),
KB_ScanCodeToString(KeyboardKeys[dummy][0]), KB_ScanCodeToString(KeyboardKeys[dummy][1])); KB_ScanCodeToString(KeyboardKeys[dummy][0]), KB_ScanCodeToString(KeyboardKeys[dummy][1]));
} }
for(dummy=0;dummy<10;dummy++) for (dummy=0;dummy<10;dummy++)
{ {
Bsprintf(buf,"WeaponChoice%ld",dummy); Bsprintf(buf,"WeaponChoice%ld",dummy);
SCRIPT_PutNumber( scripthandle, "Misc",buf,ud.wchoice[myconnectindex][dummy],false,false); SCRIPT_PutNumber( scripthandle, "Misc",buf,ud.wchoice[myconnectindex][dummy],false,false);
@ -882,7 +882,7 @@ void CONFIG_WriteSetup( void )
{ {
char commmacro[] = "CommbatMacro# "; char commmacro[] = "CommbatMacro# ";
for(dummy = 0;dummy < 10;dummy++) for (dummy = 0;dummy < 10;dummy++)
{ {
commmacro[13] = dummy+'0'; commmacro[13] = dummy+'0';
SCRIPT_PutString( scripthandle, "Comm Setup",commmacro,&ud.ridecule[dummy][0]); SCRIPT_PutString( scripthandle, "Comm Setup",commmacro,&ud.ridecule[dummy][0]);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -9,7 +9,8 @@
#include "grpscan.h" #include "grpscan.h"
struct grpfile grpfiles[numgrpfiles] = { struct grpfile grpfiles[numgrpfiles] = {
{ "Duke Nukem 3D", 0xBBC9CE44, 26524524, GAMEDUKE, NULL }, { "Duke Nukem 3D", 0xBBC9CE44, 26524524, GAMEDUKE, NULL }
,
{ "Duke Nukem 3D: Atomic Edition", 0xF514A6AC, 44348015, GAMEDUKE, NULL }, { "Duke Nukem 3D: Atomic Edition", 0xF514A6AC, 44348015, GAMEDUKE, NULL },
{ "Duke Nukem 3D: Atomic Edition", 0xFD3DCFF1, 44356548, GAMEDUKE, NULL }, { "Duke Nukem 3D: Atomic Edition", 0xFD3DCFF1, 44356548, GAMEDUKE, NULL },
{ "Duke Nukem 3D Shareware Version", 0x983AD923, 11035779, GAMEDUKE, NULL }, { "Duke Nukem 3D Shareware Version", 0x983AD923, 11035779, GAMEDUKE, NULL },

File diff suppressed because it is too large Load diff

View file

@ -120,7 +120,7 @@ int osdcmd_map(const osdfuncparm_t *parm)
if (parm->numparms != 1) return OSDCMD_SHOWHELP; if (parm->numparms != 1) return OSDCMD_SHOWHELP;
strcpy(filename,parm->parms[0]); strcpy(filename,parm->parms[0]);
if( strchr(filename,'.') == 0) if ( strchr(filename,'.') == 0)
strcat(filename,".map"); strcat(filename,".map");
if ((i = kopen4load(filename,0)) < 0) { if ((i = kopen4load(filename,0)) < 0) {
@ -370,9 +370,9 @@ int osdcmd_setvar(const osdfuncparm_t *parm)
strcpy(varname,parm->parms[0]); strcpy(varname,parm->parms[0]);
varval = Batol(parm->parms[1]); varval = Batol(parm->parms[1]);
for(i=0;i<iGameVarCount;i++) for (i=0;i<iGameVarCount;i++)
if(aGameVars[i].szLabel != NULL) if (aGameVars[i].szLabel != NULL)
if(Bstrcmp(varname, aGameVars[i].szLabel) == 0) if (Bstrcmp(varname, aGameVars[i].szLabel) == 0)
SetGameVarID(i, varval, ps[myconnectindex].i, myconnectindex); SetGameVarID(i, varval, ps[myconnectindex].i, myconnectindex);
return OSDCMD_OK; return OSDCMD_OK;
} }
@ -466,7 +466,8 @@ struct cvarmappings {
{ "cl_weaponswitch", "cl_weaponswitch: enable/disable auto weapon switching", (void*)&ud.weaponswitch, CVAR_INT|256, 0, 0, 3 }, { "cl_weaponswitch", "cl_weaponswitch: enable/disable auto weapon switching", (void*)&ud.weaponswitch, CVAR_INT|256, 0, 0, 3 },
#if defined(POLYMOST) && defined(USE_OPENGL) #if defined(POLYMOST) && defined(USE_OPENGL)
{ "r_anamorphic", "r_anamorphic: enable/disable widescreen mode", (void*)&glwidescreen, CVAR_BOOL, 0, 0, 1 }, { "r_anamorphic", "r_anamorphic: enable/disable widescreen mode", (void*)&glwidescreen, CVAR_BOOL, 0, 0, 1 }
,
{ "r_projectionhack", "r_projectionhack: enable/disable projection hack", (void*)&glprojectionhacks, CVAR_BOOL, 0, 0, 1 }, { "r_projectionhack", "r_projectionhack: enable/disable projection hack", (void*)&glprojectionhacks, CVAR_BOOL, 0, 0, 1 },
// polymer cvars // polymer cvars
{ "pr_cliplanes", "pr_cliplanes: toggles clipping behind map limits (recommended yet may decrease performance in complex maps)", (void*)&pr_cliplanes, CVAR_INT, 0, 0, 1 }, { "pr_cliplanes", "pr_cliplanes: toggles clipping behind map limits (recommended yet may decrease performance in complex maps)", (void*)&pr_cliplanes, CVAR_INT, 0, 0, 1 },
@ -523,9 +524,10 @@ int osdcmd_cvar_set(const osdfuncparm_t *parm)
OSD_Printf("%s %s",cvar[i].name,(char*)cvar[i].var); OSD_Printf("%s %s",cvar[i].name,(char*)cvar[i].var);
} }
} break; } break;
default: break; default:
break;
} }
if(cvar[i].type&256) if (cvar[i].type&256)
updatenames(); updatenames();
} }
} }
@ -561,7 +563,7 @@ int osdcmd_give(const osdfuncparm_t *parm)
int i; int i;
if (numplayers == 1 && ps[myconnectindex].gm & MODE_GAME) { if (numplayers == 1 && ps[myconnectindex].gm & MODE_GAME) {
if(ps[myconnectindex].dead_flag != 0) { if (ps[myconnectindex].dead_flag != 0) {
OSD_Printf("give: Cannot give while dead.\n"); OSD_Printf("give: Cannot give while dead.\n");
return OSDCMD_OK; return OSDCMD_OK;
} }
@ -653,7 +655,7 @@ int osdcmd_mpmap(const osdfuncparm_t *parm)
if (parm->numparms != 1) return OSDCMD_SHOWHELP; if (parm->numparms != 1) return OSDCMD_SHOWHELP;
strcpy(filename,parm->parms[0]); strcpy(filename,parm->parms[0]);
if( strchr(filename,'.') == 0) if ( strchr(filename,'.') == 0)
strcat(filename,".map"); strcat(filename,".map");
if ((i = kopen4load(filename,0)) < 0) { if ((i = kopen4load(filename,0)) < 0) {
@ -679,7 +681,7 @@ int osdcmd_name(const osdfuncparm_t *parm)
Bstrcpy(tempbuf,parm->parms[0]); Bstrcpy(tempbuf,parm->parms[0]);
while(Bstrlen(strip_color_codes(tempbuf)) > 10) while (Bstrlen(strip_color_codes(tempbuf)) > 10)
tempbuf[Bstrlen(tempbuf)-1] = '\0'; tempbuf[Bstrlen(tempbuf)-1] = '\0';
Bstrncpy(myname,tempbuf,sizeof(myname)-1); Bstrncpy(myname,tempbuf,sizeof(myname)-1);

View file

@ -77,14 +77,14 @@ void GAME_clearbackground(int c, int r)
xsiz = tilesizx[BGTILE]; tx2 = xdim/xsiz; xsiz = tilesizx[BGTILE]; tx2 = xdim/xsiz;
ysiz = tilesizy[BGTILE]; ty2 = daydim/ysiz; ysiz = tilesizy[BGTILE]; ty2 = daydim/ysiz;
for(x=0;x<=tx2;x++) for (x=0;x<=tx2;x++)
for(y=0;y<=ty2;y++) for (y=0;y<=ty2;y++)
rotatesprite(x*xsiz<<16,y*ysiz<<16,65536L,0,BGTILE,SHADE,PALETTE,bits,0,0,xdim,daydim); rotatesprite(x*xsiz<<16,y*ysiz<<16,65536L,0,BGTILE,SHADE,PALETTE,bits,0,0,xdim,daydim);
xsiz = tilesizy[BORDTILE]; tx2 = xdim/xsiz; xsiz = tilesizy[BORDTILE]; tx2 = xdim/xsiz;
ysiz = tilesizx[BORDTILE]; ysiz = tilesizx[BORDTILE];
for(x=0;x<=tx2;x++) for (x=0;x<=tx2;x++)
rotatesprite(x*xsiz<<16,(daydim+ysiz+1)<<16,65536L,1536,BORDTILE,SHADE-12,PALETTE,BITS,0,0,xdim,daydim+ysiz+1); rotatesprite(x*xsiz<<16,(daydim+ysiz+1)<<16,65536L,1536,BORDTILE,SHADE-12,PALETTE,BITS,0,0,xdim,daydim+ysiz+1);
} }

File diff suppressed because it is too large Load diff

View file

@ -62,27 +62,27 @@ void cachespritenum(short i)
char maxc; char maxc;
short j; short j;
if(ud.monsters_off && badguy(&sprite[i])) return; if (ud.monsters_off && badguy(&sprite[i])) return;
maxc = 1; maxc = 1;
if(spritecache[PN][0] == PN) if (spritecache[PN][0] == PN)
for(j = PN; j <= spritecache[PN][1]; j++) for (j = PN; j <= spritecache[PN][1]; j++)
tloadtile(j,1); tloadtile(j,1);
switch(dynamictostatic[PN]) switch (dynamictostatic[PN])
{ {
case HYDRENT__STATIC: case HYDRENT__STATIC:
tloadtile(BROKEFIREHYDRENT,1); tloadtile(BROKEFIREHYDRENT,1);
for(j = TOILETWATER; j < (TOILETWATER+4); j++) tloadtile(j,1); for (j = TOILETWATER; j < (TOILETWATER+4); j++) tloadtile(j,1);
break; break;
case TOILET__STATIC: case TOILET__STATIC:
tloadtile(TOILETBROKE,1); tloadtile(TOILETBROKE,1);
for(j = TOILETWATER; j < (TOILETWATER+4); j++) tloadtile(j,1); for (j = TOILETWATER; j < (TOILETWATER+4); j++) tloadtile(j,1);
break; break;
case STALL__STATIC: case STALL__STATIC:
tloadtile(STALLBROKE,1); tloadtile(STALLBROKE,1);
for(j = TOILETWATER; j < (TOILETWATER+4); j++) tloadtile(j,1); for (j = TOILETWATER; j < (TOILETWATER+4); j++) tloadtile(j,1);
break; break;
case RUBBERCAN__STATIC: case RUBBERCAN__STATIC:
maxc = 2; maxc = 2;
@ -99,13 +99,13 @@ void cachespritenum(short i)
case LIZTROOPJETPACK__STATIC: case LIZTROOPJETPACK__STATIC:
case LIZTROOPONTOILET__STATIC: case LIZTROOPONTOILET__STATIC:
case LIZTROOPDUCKING__STATIC: case LIZTROOPDUCKING__STATIC:
for(j = LIZTROOP; j < (LIZTROOP+72); j++) tloadtile(j,1); for (j = LIZTROOP; j < (LIZTROOP+72); j++) tloadtile(j,1);
for(j=HEADJIB1;j<LEGJIB1+3;j++) tloadtile(j,1); for (j=HEADJIB1;j<LEGJIB1+3;j++) tloadtile(j,1);
maxc = 0; maxc = 0;
break; break;
case WOODENHORSE__STATIC: case WOODENHORSE__STATIC:
maxc = 5; maxc = 5;
for(j = HORSEONSIDE; j < (HORSEONSIDE+4); j++) tloadtile(j,1); for (j = HORSEONSIDE; j < (HORSEONSIDE+4); j++) tloadtile(j,1);
break; break;
case NEWBEAST__STATIC: case NEWBEAST__STATIC:
case NEWBEASTSTAYPUT__STATIC: case NEWBEASTSTAYPUT__STATIC:
@ -136,15 +136,15 @@ void cachespritenum(short i)
case LIZMANSPITTING__STATIC: case LIZMANSPITTING__STATIC:
case LIZMANFEEDING__STATIC: case LIZMANFEEDING__STATIC:
case LIZMANJUMP__STATIC: case LIZMANJUMP__STATIC:
for(j=LIZMANHEAD1;j<LIZMANLEG1+3;j++) tloadtile(j,1); for (j=LIZMANHEAD1;j<LIZMANLEG1+3;j++) tloadtile(j,1);
maxc = 80; maxc = 80;
break; break;
case APLAYER__STATIC: case APLAYER__STATIC:
maxc = 0; maxc = 0;
if(ud.multimode > 1) if (ud.multimode > 1)
{ {
maxc = 5; maxc = 5;
for(j = 1420;j < 1420+106; j++) tloadtile(j,1); for (j = 1420;j < 1420+106; j++) tloadtile(j,1);
} }
break; break;
case ATOMICHEALTH__STATIC: case ATOMICHEALTH__STATIC:
@ -163,61 +163,69 @@ void cachespritenum(short i)
maxc = 5; maxc = 5;
break; break;
// caching of HUD sprites for weapons that may be in the level // caching of HUD sprites for weapons that may be in the level
case CHAINGUNSPRITE__STATIC: for (j=CHAINGUN; j<=CHAINGUN+7; j++) tloadtile(j,1); break; case CHAINGUNSPRITE__STATIC:
case RPGSPRITE__STATIC: for (j=RPGGUN; j<=RPGGUN+2; j++) tloadtile(j,1); break; for (j=CHAINGUN; j<=CHAINGUN+7; j++) tloadtile(j,1); break;
case FREEZESPRITE__STATIC: for (j=FREEZE; j<=FREEZE+5; j++) tloadtile(j,1); break; case RPGSPRITE__STATIC:
for (j=RPGGUN; j<=RPGGUN+2; j++) tloadtile(j,1); break;
case FREEZESPRITE__STATIC:
for (j=FREEZE; j<=FREEZE+5; j++) tloadtile(j,1); break;
case GROWSPRITEICON__STATIC: case GROWSPRITEICON__STATIC:
case SHRINKERSPRITE__STATIC: for (j=SHRINKER-2; j<=SHRINKER+5; j++) tloadtile(j,1); break; case SHRINKERSPRITE__STATIC:
for (j=SHRINKER-2; j<=SHRINKER+5; j++) tloadtile(j,1); break;
case HBOMBAMMO__STATIC: case HBOMBAMMO__STATIC:
case HEAVYHBOMB__STATIC: for (j=HANDREMOTE; j<=HANDREMOTE+5; j++) tloadtile(j,1); break; case HEAVYHBOMB__STATIC:
case TRIPBOMBSPRITE__STATIC: for (j=HANDHOLDINGLASER; j<=HANDHOLDINGLASER+4; j++) tloadtile(j,1); break; for (j=HANDREMOTE; j<=HANDREMOTE+5; j++) tloadtile(j,1); break;
case SHOTGUNSPRITE__STATIC: tloadtile(SHOTGUNSHELL,1); for (j=SHOTGUN; j<=SHOTGUN+6; j++) tloadtile(j,1); break; case TRIPBOMBSPRITE__STATIC:
case DEVISTATORSPRITE__STATIC: for (j=DEVISTATOR; j<=DEVISTATOR+1; j++) tloadtile(j,1); break; for (j=HANDHOLDINGLASER; j<=HANDHOLDINGLASER+4; j++) tloadtile(j,1); break;
case SHOTGUNSPRITE__STATIC:
tloadtile(SHOTGUNSHELL,1); for (j=SHOTGUN; j<=SHOTGUN+6; j++) tloadtile(j,1); break;
case DEVISTATORSPRITE__STATIC:
for (j=DEVISTATOR; j<=DEVISTATOR+1; j++) tloadtile(j,1); break;
} }
for(j = PN; j < (PN+maxc); j++) tloadtile(j,1); for (j = PN; j < (PN+maxc); j++) tloadtile(j,1);
} }
void cachegoodsprites(void) void cachegoodsprites(void)
{ {
short i,j; short i,j;
for(i=0;i<MAXTILES;i++) for (i=0;i<MAXTILES;i++)
{ {
if(spriteflags[i] & SPRITE_FLAG_PROJECTILE) if (spriteflags[i] & SPRITE_FLAG_PROJECTILE)
tloadtile(i,1); tloadtile(i,1);
if(spritecache[i][0] == i && spritecache[i][2]) if (spritecache[i][0] == i && spritecache[i][2])
for(j = i; j <= spritecache[i][1]; j++) for (j = i; j <= spritecache[i][1]; j++)
tloadtile(j,1); tloadtile(j,1);
} }
tloadtile(BOTTOMSTATUSBAR,1); tloadtile(BOTTOMSTATUSBAR,1);
if( ud.multimode > 1) if ( ud.multimode > 1)
tloadtile(FRAGBAR,1); tloadtile(FRAGBAR,1);
tloadtile(VIEWSCREEN,1); tloadtile(VIEWSCREEN,1);
for(i=STARTALPHANUM;i<ENDALPHANUM+1;i++) tloadtile(i,1); for (i=STARTALPHANUM;i<ENDALPHANUM+1;i++) tloadtile(i,1);
for(i=BIGALPHANUM; i<BIGALPHANUM+82; i++) tloadtile(i,1); for (i=BIGALPHANUM; i<BIGALPHANUM+82; i++) tloadtile(i,1);
for(i=MINIFONT;i<MINIFONT+63;i++) tloadtile(i,1); for (i=MINIFONT;i<MINIFONT+63;i++) tloadtile(i,1);
for(i=FOOTPRINTS;i<FOOTPRINTS+3;i++) tloadtile(i,1); for (i=FOOTPRINTS;i<FOOTPRINTS+3;i++) tloadtile(i,1);
for( i = BURNING; i < BURNING+14; i++) tloadtile(i,1); for ( i = BURNING; i < BURNING+14; i++) tloadtile(i,1);
for( i = BURNING2; i < BURNING2+14; i++) tloadtile(i,1); for ( i = BURNING2; i < BURNING2+14; i++) tloadtile(i,1);
for( i = CRACKKNUCKLES; i < CRACKKNUCKLES+4; i++) tloadtile(i,1); for ( i = CRACKKNUCKLES; i < CRACKKNUCKLES+4; i++) tloadtile(i,1);
for( i = FIRSTGUN; i < FIRSTGUN+3 ; i++ ) tloadtile(i,1); for ( i = FIRSTGUN; i < FIRSTGUN+3 ; i++ ) tloadtile(i,1);
for( i = FIRSTGUNRELOAD; i < FIRSTGUNRELOAD+8 ; i++ ) tloadtile(i,1); for ( i = FIRSTGUNRELOAD; i < FIRSTGUNRELOAD+8 ; i++ ) tloadtile(i,1);
for( i = EXPLOSION2; i < EXPLOSION2+21 ; i++ ) tloadtile(i,1); for ( i = EXPLOSION2; i < EXPLOSION2+21 ; i++ ) tloadtile(i,1);
tloadtile(BULLETHOLE,1); tloadtile(BULLETHOLE,1);
for( i = SMALLSMOKE; i < (SMALLSMOKE+4); i++) tloadtile(i,1); for ( i = SMALLSMOKE; i < (SMALLSMOKE+4); i++) tloadtile(i,1);
for( i = JIBS1; i < (JIBS5+5); i++) tloadtile(i,1); for ( i = JIBS1; i < (JIBS5+5); i++) tloadtile(i,1);
for( i = SCRAP1; i < (SCRAP1+19); i++) tloadtile(i,1); for ( i = SCRAP1; i < (SCRAP1+19); i++) tloadtile(i,1);
for (i=RPG; i<RPG+7; i++) tloadtile(i,1); for (i=RPG; i<RPG+7; i++) tloadtile(i,1);
for (i=FREEZEBLAST; i<FREEZEBLAST+3; i++) tloadtile(i,1); for (i=FREEZEBLAST; i<FREEZEBLAST+3; i++) tloadtile(i,1);
@ -232,22 +240,22 @@ char getsound(unsigned short num)
short fp; short fp;
long l; long l;
if(num >= NUM_SOUNDS || SoundToggle == 0) return 0; if (num >= NUM_SOUNDS || SoundToggle == 0) return 0;
if (FXDevice < 0) return 0; if (FXDevice < 0) return 0;
if (!sounds[num][0]) return 0; if (!sounds[num][0]) return 0;
fp = kopen4load(sounds[num],loadfromgrouponly); fp = kopen4load(sounds[num],loadfromgrouponly);
if(fp == -1) return 0; if (fp == -1) return 0;
l = kfilelength( fp ); l = kfilelength( fp );
soundsiz[num] = l; soundsiz[num] = l;
if( (ud.level_number == 0 && ud.volume_number == 0 && (num == 189 || num == 232 || num == 99 || num == 233 || num == 17 ) ) || if ( (ud.level_number == 0 && ud.volume_number == 0 && (num == 189 || num == 232 || num == 99 || num == 233 || num == 17 ) ) ||
( l < 12288 ) ) ( l < 12288 ) )
{ {
Sound[num].lock = 199; Sound[num].lock = 199;
allocache((long *)&Sound[num].ptr,l,(char *)&Sound[num].lock); allocache((long *)&Sound[num].ptr,l,(char *)&Sound[num].lock);
if(Sound[num].ptr != NULL) if (Sound[num].ptr != NULL)
kread( fp, Sound[num].ptr , l); kread( fp, Sound[num].ptr , l);
} }
kclose( fp ); kclose( fp );
@ -261,11 +269,11 @@ void precachenecessarysounds(void)
if (FXDevice < 0) return; if (FXDevice < 0) return;
j = 0; j = 0;
for(i=0;i<NUM_SOUNDS;i++) for (i=0;i<NUM_SOUNDS;i++)
if(Sound[i].ptr == 0) if (Sound[i].ptr == 0)
{ {
j++; j++;
if( (j&7) == 0 ) if ( (j&7) == 0 )
{ handleevents(); getpackets(); } { handleevents(); getpackets(); }
getsound(i); getsound(i);
} }
@ -277,7 +285,7 @@ void cacheit(void)
long tc; long tc;
unsigned long starttime, endtime; unsigned long starttime, endtime;
if(ud.recstat == 2) if (ud.recstat == 2)
return; return;
starttime = getticks(); starttime = getticks();
@ -286,29 +294,29 @@ void cacheit(void)
cachegoodsprites(); cachegoodsprites();
for(i=0;i<numwalls;i++) for (i=0;i<numwalls;i++)
{ {
tloadtile(wall[i].picnum, 0); tloadtile(wall[i].picnum, 0);
if(wall[i].overpicnum >= 0) { if (wall[i].overpicnum >= 0) {
tloadtile(wall[i].overpicnum, 0); tloadtile(wall[i].overpicnum, 0);
} }
} }
for(i=0;i<numsectors;i++) for (i=0;i<numsectors;i++)
{ {
tloadtile( sector[i].floorpicnum, 0 ); tloadtile( sector[i].floorpicnum, 0 );
tloadtile( sector[i].ceilingpicnum, 0 ); tloadtile( sector[i].ceilingpicnum, 0 );
if( sector[i].ceilingpicnum == LA) // JBF 20040509: if( waloff[sector[i].ceilingpicnum] == LA) WTF??!??!?!? if ( sector[i].ceilingpicnum == LA) // JBF 20040509: if( waloff[sector[i].ceilingpicnum] == LA) WTF??!??!?!?
{ {
tloadtile(LA+1, 0); tloadtile(LA+1, 0);
tloadtile(LA+2, 0); tloadtile(LA+2, 0);
} }
j = headspritesect[i]; j = headspritesect[i];
while(j >= 0) while (j >= 0)
{ {
if(sprite[j].xrepeat != 0 && sprite[j].yrepeat != 0 && (sprite[j].cstat&32768) == 0) if (sprite[j].xrepeat != 0 && sprite[j].yrepeat != 0 && (sprite[j].cstat&32768) == 0)
cachespritenum(j); cachespritenum(j);
j = nextspritesect[j]; j = nextspritesect[j];
} }
@ -317,12 +325,12 @@ void cacheit(void)
tc = totalclock; tc = totalclock;
j = 0; j = 0;
for(i=0;i<MAXTILES;i++) { for (i=0;i<MAXTILES;i++) {
if (!(i&7) && !gotpic[i>>3]) { if (!(i&7) && !gotpic[i>>3]) {
i+=7; i+=7;
continue; continue;
} }
if(gotpic[i>>3] & pow2char[i&7]) { if (gotpic[i>>3] & pow2char[i&7]) {
if (waloff[i] == 0) if (waloff[i] == 0)
loadtile((short)i); loadtile((short)i);
@ -341,7 +349,7 @@ void cacheit(void)
pc++; pc++;
} else continue; } else continue;
if((j&7) == 0) { handleevents(); getpackets(); } if ((j&7) == 0) { handleevents(); getpackets(); }
if (totalclock - tc > TICRATE/4) { if (totalclock - tc > TICRATE/4) {
sprintf(tempbuf,"Loading textures ... %ld%%\n",min(100,100*pc/precachecount)); sprintf(tempbuf,"Loading textures ... %ld%%\n",min(100,100*pc/precachecount));
dofrontscreens(tempbuf); dofrontscreens(tempbuf);
@ -373,10 +381,10 @@ void vscrn(void)
{ {
long i, j, ss, x1, x2, y1, y2; long i, j, ss, x1, x2, y1, y2;
if(ud.screen_size < 0) ud.screen_size = 0; if (ud.screen_size < 0) ud.screen_size = 0;
else if(ud.screen_size > 63) ud.screen_size = 64; else if (ud.screen_size > 63) ud.screen_size = 64;
if(ud.screen_size == 0) flushperms(); if (ud.screen_size == 0) flushperms();
ss = max(ud.screen_size-8,0); ss = max(ud.screen_size-8,0);
@ -387,8 +395,8 @@ void vscrn(void)
if ( ud.screen_size > 0 && (gametype_flags[ud.coop]&GAMETYPE_FLAG_FRAGBAR) && ud.multimode > 1) if ( ud.screen_size > 0 && (gametype_flags[ud.coop]&GAMETYPE_FLAG_FRAGBAR) && ud.multimode > 1)
{ {
j = 0; j = 0;
for(i=connecthead;i>=0;i=connectpoint2[i]) for (i=connecthead;i>=0;i=connectpoint2[i])
if(i > j) j = i; if (i > j) j = i;
if (j >= 1) y1 += 8; if (j >= 1) y1 += 8;
if (j >= 4) y1 += 8; if (j >= 4) y1 += 8;
@ -415,18 +423,18 @@ void pickrandomspot(short snum)
p = &ps[snum]; p = &ps[snum];
if( ud.multimode > 1 && !(gametype_flags[ud.coop] & GAMETYPE_FLAG_FIXEDRESPAWN)) if ( ud.multimode > 1 && !(gametype_flags[ud.coop] & GAMETYPE_FLAG_FIXEDRESPAWN))
{ {
if(gametype_flags[ud.coop] & GAMETYPE_FLAG_TDMSPAWN) if (gametype_flags[ud.coop] & GAMETYPE_FLAG_TDMSPAWN)
{ {
for(j=0;j<ud.multimode;j++) for (j=0;j<ud.multimode;j++)
{ {
if(j != snum && ps[j].team == ps[snum].team && sprite[ps[j].i].extra > 0) if (j != snum && ps[j].team == ps[snum].team && sprite[ps[j].i].extra > 0)
{ {
for(k=0;k<numplayersprites;k++) for (k=0;k<numplayersprites;k++)
{ {
dist = FindDistance2D(ps[j].posx-po[k].ox,ps[j].posy-po[k].oy); dist = FindDistance2D(ps[j].posx-po[k].ox,ps[j].posy-po[k].oy);
if(dist < pdist) if (dist < pdist)
i = k, pdist = dist; i = k, pdist = dist;
} }
break; break;
@ -495,7 +503,7 @@ void resetplayerstats(short snum)
p->rapid_fire_hold = 0; p->rapid_fire_hold = 0;
p->toggle_key_flag = 0; p->toggle_key_flag = 0;
p->access_spritenum = -1; p->access_spritenum = -1;
if(ud.multimode > 1 && (gametype_flags[ud.coop] & GAMETYPE_FLAG_ACCESSATSTART)) if (ud.multimode > 1 && (gametype_flags[ud.coop] & GAMETYPE_FLAG_ACCESSATSTART))
p->got_access = 7; p->got_access = 7;
else p->got_access = 0; else p->got_access = 0;
p->random_club_frame= 0; p->random_club_frame= 0;
@ -505,7 +513,7 @@ void resetplayerstats(short snum)
p->sbs = 0; p->sbs = 0;
p->palette = (char *) &palette[0]; p->palette = (char *) &palette[0];
if(p->steroids_amount < 400 ) if (p->steroids_amount < 400 )
{ {
p->steroids_amount = 0; p->steroids_amount = 0;
p->inven_icon = 0; p->inven_icon = 0;
@ -532,7 +540,7 @@ void resetplayerstats(short snum)
p->on_crane = -1; p->on_crane = -1;
if( (aplWeaponWorksLike[p->curr_weapon][snum] == PISTOL_WEAPON) && if ( (aplWeaponWorksLike[p->curr_weapon][snum] == PISTOL_WEAPON) &&
(aplWeaponReload[p->curr_weapon][snum] > aplWeaponTotalTime[p->curr_weapon][snum]) ) (aplWeaponReload[p->curr_weapon][snum] > aplWeaponTotalTime[p->curr_weapon][snum]) )
p->kickback_pic = aplWeaponTotalTime[p->curr_weapon][snum]+1; p->kickback_pic = aplWeaponTotalTime[p->curr_weapon][snum]+1;
else p->kickback_pic = 0; else p->kickback_pic = 0;
@ -608,7 +616,7 @@ void resetprestat(short snum,char g)
p = &ps[snum]; p = &ps[snum];
spriteqloc = 0; spriteqloc = 0;
for(i=0;i<spriteqamount;i++) spriteq[i] = -1; for (i=0;i<spriteqamount;i++) spriteq[i] = -1;
p->hbomb_on = 0; p->hbomb_on = 0;
p->cheat_phase = 0; p->cheat_phase = 0;
@ -647,12 +655,12 @@ void resetprestat(short snum,char g)
numinterpolations = 0; numinterpolations = 0;
startofdynamicinterpolations = 0; startofdynamicinterpolations = 0;
if( ( (g&MODE_EOL) != MODE_EOL && numplayers < 2) || (!(gametype_flags[ud.coop]&GAMETYPE_FLAG_PRESERVEINVENTORYDEATH) && numplayers > 1) ) if ( ( (g&MODE_EOL) != MODE_EOL && numplayers < 2) || (!(gametype_flags[ud.coop]&GAMETYPE_FLAG_PRESERVEINVENTORYDEATH) && numplayers > 1) )
{ {
resetweapons(snum); resetweapons(snum);
resetinventory(snum); resetinventory(snum);
} }
else if(p->curr_weapon == HANDREMOTE_WEAPON) else if (p->curr_weapon == HANDREMOTE_WEAPON)
{ {
p->ammo_amount[HANDBOMB_WEAPON]++; p->ammo_amount[HANDBOMB_WEAPON]++;
p->curr_weapon = HANDBOMB_WEAPON; p->curr_weapon = HANDBOMB_WEAPON;
@ -667,12 +675,12 @@ void setupbackdrop(short sky)
{ {
short i; short i;
for(i=0;i<MAXPSKYTILES;i++) pskyoff[i]=0; for (i=0;i<MAXPSKYTILES;i++) pskyoff[i]=0;
if(parallaxyscale != 65536L) if (parallaxyscale != 65536L)
parallaxyscale = 32768; parallaxyscale = 32768;
switch(dynamictostatic[sky]) switch (dynamictostatic[sky])
{ {
case CLOUDYOCEAN__STATIC: case CLOUDYOCEAN__STATIC:
parallaxyscale = 65536L; parallaxyscale = 65536L;
@ -707,43 +715,43 @@ void prelevel(char g)
resetprestat(0,g); resetprestat(0,g);
numclouds = 0; numclouds = 0;
for(i=0;i<numsectors;i++) for (i=0;i<numsectors;i++)
{ {
sector[i].extra = 256; sector[i].extra = 256;
switch(sector[i].lotag) switch (sector[i].lotag)
{ {
case 20: case 20:
case 22: case 22:
if( sector[i].floorz > sector[i].ceilingz) if ( sector[i].floorz > sector[i].ceilingz)
sector[i].lotag |= 32768; sector[i].lotag |= 32768;
continue; continue;
} }
if(sector[i].ceilingstat&1) if (sector[i].ceilingstat&1)
{ {
if(waloff[sector[i].ceilingpicnum] == 0) if (waloff[sector[i].ceilingpicnum] == 0)
{ {
if(sector[i].ceilingpicnum == LA) if (sector[i].ceilingpicnum == LA)
for(j=0;j<5;j++) for (j=0;j<5;j++)
tloadtile(sector[i].ceilingpicnum+j, 0); tloadtile(sector[i].ceilingpicnum+j, 0);
} }
setupbackdrop(sector[i].ceilingpicnum); setupbackdrop(sector[i].ceilingpicnum);
if(sector[i].ceilingpicnum == CLOUDYSKIES && numclouds < 127) if (sector[i].ceilingpicnum == CLOUDYSKIES && numclouds < 127)
clouds[numclouds++] = i; clouds[numclouds++] = i;
if(ps[0].one_parallax_sectnum == -1) if (ps[0].one_parallax_sectnum == -1)
ps[0].one_parallax_sectnum = i; ps[0].one_parallax_sectnum = i;
} }
if(sector[i].lotag == 32767) //Found a secret room if (sector[i].lotag == 32767) //Found a secret room
{ {
ps[0].max_secret_rooms++; ps[0].max_secret_rooms++;
continue; continue;
} }
if(sector[i].lotag == -1) if (sector[i].lotag == -1)
{ {
ps[0].exitx = wall[sector[i].wallptr].x; ps[0].exitx = wall[sector[i].wallptr].x;
ps[0].exity = wall[sector[i].wallptr].y; ps[0].exity = wall[sector[i].wallptr].y;
@ -752,17 +760,17 @@ void prelevel(char g)
} }
i = headspritestat[0]; i = headspritestat[0];
while(i >= 0) while (i >= 0)
{ {
nexti = nextspritestat[i]; nexti = nextspritestat[i];
ResetActorGameVars(i); ResetActorGameVars(i);
LoadActor(i, -1, -1); LoadActor(i, -1, -1);
if(sprite[i].lotag == -1 && (sprite[i].cstat&16) ) if (sprite[i].lotag == -1 && (sprite[i].cstat&16) )
{ {
ps[0].exitx = SX; ps[0].exitx = SX;
ps[0].exity = SY; ps[0].exity = SY;
} }
else switch(dynamictostatic[PN]) else switch (dynamictostatic[PN])
{ {
case GPSPEED__STATIC: case GPSPEED__STATIC:
sector[SECT].extra = SLT; sector[SECT].extra = SLT;
@ -770,7 +778,7 @@ void prelevel(char g)
break; break;
case CYCLER__STATIC: case CYCLER__STATIC:
if(numcyclers >= MAXCYCLERS) if (numcyclers >= MAXCYCLERS)
{ {
Bsprintf(tempbuf,"\nToo many cycling sectors (%d max).",MAXCYCLERS); Bsprintf(tempbuf,"\nToo many cycling sectors (%d max).",MAXCYCLERS);
gameexit(tempbuf); gameexit(tempbuf);
@ -799,29 +807,29 @@ void prelevel(char g)
i = nexti; i = nexti;
} }
for(i=0;i < MAXSPRITES;i++) for (i=0;i < MAXSPRITES;i++)
{ {
if(sprite[i].statnum < MAXSTATUS) if (sprite[i].statnum < MAXSTATUS)
{ {
if(PN == SECTOREFFECTOR && SLT == 14) if (PN == SECTOREFFECTOR && SLT == 14)
continue; continue;
spawn(-1,i); spawn(-1,i);
} }
} }
for(i=0;i < MAXSPRITES;i++) for (i=0;i < MAXSPRITES;i++)
if(sprite[i].statnum < MAXSTATUS) if (sprite[i].statnum < MAXSTATUS)
{ {
if( PN == SECTOREFFECTOR && SLT == 14 ) if ( PN == SECTOREFFECTOR && SLT == 14 )
spawn(-1,i); spawn(-1,i);
} }
lotaglist = 0; lotaglist = 0;
i = headspritestat[0]; i = headspritestat[0];
while(i >= 0) while (i >= 0)
{ {
switch(dynamictostatic[PN-1]) switch (dynamictostatic[PN-1])
{ {
case DIPSWITCH__STATIC: case DIPSWITCH__STATIC:
case DIPSWITCH2__STATIC: case DIPSWITCH2__STATIC:
@ -836,21 +844,21 @@ void prelevel(char g)
case POWERSWITCH1__STATIC: case POWERSWITCH1__STATIC:
case LOCKSWITCH1__STATIC: case LOCKSWITCH1__STATIC:
case POWERSWITCH2__STATIC: case POWERSWITCH2__STATIC:
for(j=0;j<lotaglist;j++) for (j=0;j<lotaglist;j++)
if( SLT == lotags[j] ) if ( SLT == lotags[j] )
break; break;
if( j == lotaglist ) if ( j == lotaglist )
{ {
lotags[lotaglist] = SLT; lotags[lotaglist] = SLT;
lotaglist++; lotaglist++;
if(lotaglist > 64) if (lotaglist > 64)
gameexit("\nToo many switches (64 max)."); gameexit("\nToo many switches (64 max).");
j = headspritestat[3]; j = headspritestat[3];
while(j >= 0) while (j >= 0)
{ {
if(sprite[j].lotag == 12 && sprite[j].hitag == SLT) if (sprite[j].lotag == 12 && sprite[j].hitag == SLT)
hittype[j].temp_data[0] = 1; hittype[j].temp_data[0] = 1;
j = nextspritestat[j]; j = nextspritestat[j];
} }
@ -862,16 +870,16 @@ void prelevel(char g)
mirrorcnt = 0; mirrorcnt = 0;
for( i = 0; i < numwalls; i++ ) for ( i = 0; i < numwalls; i++ )
{ {
walltype *wal; walltype *wal;
wal = &wall[i]; wal = &wall[i];
if(wal->overpicnum == MIRROR && (wal->cstat&32) != 0) if (wal->overpicnum == MIRROR && (wal->cstat&32) != 0)
{ {
j = wal->nextsector; j = wal->nextsector;
if(mirrorcnt > 63) if (mirrorcnt > 63)
gameexit("\nToo many mirrors (64 max.)"); gameexit("\nToo many mirrors (64 max.)");
if ( (j >= 0) && sector[j].ceilingpicnum != MIRROR ) if ( (j >= 0) && sector[j].ceilingpicnum != MIRROR )
{ {
@ -884,7 +892,7 @@ void prelevel(char g)
} }
} }
if(numanimwalls >= MAXANIMWALLS) if (numanimwalls >= MAXANIMWALLS)
{ {
Bsprintf(tempbuf,"\nToo many 'anim' walls (%d max).",MAXANIMWALLS); Bsprintf(tempbuf,"\nToo many 'anim' walls (%d max).",MAXANIMWALLS);
gameexit(tempbuf); gameexit(tempbuf);
@ -896,7 +904,7 @@ void prelevel(char g)
if ((wal->overpicnum > W_FORCEFIELD)&&(wal->overpicnum <= W_FORCEFIELD+2)) { if ((wal->overpicnum > W_FORCEFIELD)&&(wal->overpicnum <= W_FORCEFIELD+2)) {
switchpicnum = W_FORCEFIELD; switchpicnum = W_FORCEFIELD;
} }
switch(dynamictostatic[switchpicnum]) switch (dynamictostatic[switchpicnum])
{ {
case FANSHADOW__STATIC: case FANSHADOW__STATIC:
case FANSPRITE__STATIC: case FANSPRITE__STATIC:
@ -907,14 +915,14 @@ void prelevel(char g)
case W_FORCEFIELD__STATIC: case W_FORCEFIELD__STATIC:
if (wal->overpicnum==W_FORCEFIELD__STATIC) if (wal->overpicnum==W_FORCEFIELD__STATIC)
for(j=0;j<3;j++) for (j=0;j<3;j++)
tloadtile(W_FORCEFIELD+j, 0); tloadtile(W_FORCEFIELD+j, 0);
if(wal->shade > 31) if (wal->shade > 31)
wal->cstat = 0; wal->cstat = 0;
else wal->cstat |= 85+256; else wal->cstat |= 85+256;
if(wal->lotag && wal->nextwall >= 0) if (wal->lotag && wal->nextwall >= 0)
wall[wal->nextwall].lotag = wall[wal->nextwall].lotag =
wal->lotag; wal->lotag;
@ -928,10 +936,10 @@ void prelevel(char g)
wal->extra = -1; wal->extra = -1;
switch(dynamictostatic[wal->picnum]) switch (dynamictostatic[wal->picnum])
{ {
case WATERTILE2__STATIC: case WATERTILE2__STATIC:
for(j=0;j<3;j++) for (j=0;j<3;j++)
tloadtile(wal->picnum+j, 0); tloadtile(wal->picnum+j, 0);
break; break;
@ -950,7 +958,7 @@ void prelevel(char g)
case SCREENBREAK6__STATIC: case SCREENBREAK6__STATIC:
case SCREENBREAK7__STATIC: case SCREENBREAK7__STATIC:
case SCREENBREAK8__STATIC: case SCREENBREAK8__STATIC:
for(j=SCREENBREAK6;j<SCREENBREAK9;j++) for (j=SCREENBREAK6;j<SCREENBREAK9;j++)
tloadtile(j, 0); tloadtile(j, 0);
animwall[numanimwalls].wallnum = i; animwall[numanimwalls].wallnum = i;
animwall[numanimwalls].tag = -1; animwall[numanimwalls].tag = -1;
@ -963,9 +971,9 @@ void prelevel(char g)
wal->extra = wal->picnum; wal->extra = wal->picnum;
animwall[numanimwalls].tag = -1; animwall[numanimwalls].tag = -1;
if(ud.lockout) if (ud.lockout)
{ {
if(wal->picnum == FEMPIC1) if (wal->picnum == FEMPIC1)
wal->picnum = BLANKSCREEN; wal->picnum = BLANKSCREEN;
else wal->picnum = SCREENBREAK6; else wal->picnum = SCREENBREAK6;
} }
@ -1001,11 +1009,11 @@ void prelevel(char g)
} }
//Invalidate textures in sector behind mirror //Invalidate textures in sector behind mirror
for(i=0;i<mirrorcnt;i++) for (i=0;i<mirrorcnt;i++)
{ {
startwall = sector[mirrorsector[i]].wallptr; startwall = sector[mirrorsector[i]].wallptr;
endwall = startwall + sector[mirrorsector[i]].wallnum; endwall = startwall + sector[mirrorsector[i]].wallnum;
for(j=startwall;j<endwall;j++) for (j=startwall;j<endwall;j++)
{ {
wall[j].picnum = MIRROR; wall[j].picnum = MIRROR;
wall[j].overpicnum = MIRROR; wall[j].overpicnum = MIRROR;
@ -1018,18 +1026,18 @@ void newgame(char vn,char ln,char sk)
struct player_struct *p = &ps[0]; struct player_struct *p = &ps[0];
short i; short i;
if(globalskillsound >= 0 && FXDevice >= 0 && SoundToggle) if (globalskillsound >= 0 && FXDevice >= 0 && SoundToggle)
while(issoundplaying(-1,globalskillsound)) { handleevents(); getpackets(); } while (issoundplaying(-1,globalskillsound)) { handleevents(); getpackets(); }
else { handleevents(); getpackets(); } else { handleevents(); getpackets(); }
globalskillsound = -1; globalskillsound = -1;
waitforeverybody(); waitforeverybody();
ready2send = 0; ready2send = 0;
if( ud.m_recstat != 2 && ud.last_level >= 0 && ud.multimode > 1 && (ud.coop&GAMETYPE_FLAG_SCORESHEET)) if ( ud.m_recstat != 2 && ud.last_level >= 0 && ud.multimode > 1 && (ud.coop&GAMETYPE_FLAG_SCORESHEET))
dobonus(1); dobonus(1);
if( ln == 0 && vn == 3 && ud.multimode < 2 && ud.lockout == 0) if ( ln == 0 && vn == 3 && ud.multimode < 2 && ud.lockout == 0)
{ {
playmusic(&env_music_fn[1][0]); playmusic(&env_music_fn[1][0]);
@ -1072,19 +1080,19 @@ void newgame(char vn,char ln,char sk)
ResetSystemDefaults(); ResetSystemDefaults();
if(ud.m_coop != 1) if (ud.m_coop != 1)
{ {
for(i=0;i<MAX_WEAPONS;i++) for (i=0;i<MAX_WEAPONS;i++)
{ {
if(aplWeaponWorksLike[i][0]==PISTOL_WEAPON) if (aplWeaponWorksLike[i][0]==PISTOL_WEAPON)
{ {
p->curr_weapon = i; p->curr_weapon = i;
p->gotweapon[i] = 1; p->gotweapon[i] = 1;
p->ammo_amount[i] = 48; p->ammo_amount[i] = 48;
} }
else if(aplWeaponWorksLike[i][0]==KNEE_WEAPON) else if (aplWeaponWorksLike[i][0]==KNEE_WEAPON)
p->gotweapon[i] = 1; p->gotweapon[i] = 1;
else if(aplWeaponWorksLike[i][0]==HANDREMOTE_WEAPON) else if (aplWeaponWorksLike[i][0]==HANDREMOTE_WEAPON)
p->gotweapon[i] = 1; p->gotweapon[i] = 1;
} }
p->last_weapon = -1; p->last_weapon = -1;
@ -1092,12 +1100,12 @@ void newgame(char vn,char ln,char sk)
} }
display_mirror = 0; display_mirror = 0;
if(ud.multimode > 1 ) if (ud.multimode > 1 )
{ {
if(numplayers < 2) if (numplayers < 2)
{ {
connecthead = 0; connecthead = 0;
for(i=0;i<MAXPLAYERS;i++) connectpoint2[i] = i+1; for (i=0;i<MAXPLAYERS;i++) connectpoint2[i] = i+1;
connectpoint2[ud.multimode-1] = -1; connectpoint2[ud.multimode-1] = -1;
} }
} }
@ -1119,14 +1127,14 @@ void resetpspritevars(char g)
EGS(ps[0].cursectnum,ps[0].posx,ps[0].posy,ps[0].posz, EGS(ps[0].cursectnum,ps[0].posx,ps[0].posy,ps[0].posz,
APLAYER,0,0,0,ps[0].ang,0,0,0,10); APLAYER,0,0,0,ps[0].ang,0,0,0,10);
if(ud.recstat != 2) for(i=0;i<MAXPLAYERS;i++) if (ud.recstat != 2) for (i=0;i<MAXPLAYERS;i++)
{ {
aimmode[i] = ps[i].aim_mode; aimmode[i] = ps[i].aim_mode;
autoaim[i] = ps[i].auto_aim; autoaim[i] = ps[i].auto_aim;
weaponswitch[i] = ps[i].weaponswitch; weaponswitch[i] = ps[i].weaponswitch;
if(ud.multimode > 1 && (gametype_flags[ud.coop]&GAMETYPE_FLAG_PRESERVEINVENTORYDEATH) && ud.last_level >= 0) if (ud.multimode > 1 && (gametype_flags[ud.coop]&GAMETYPE_FLAG_PRESERVEINVENTORYDEATH) && ud.last_level >= 0)
{ {
for(j=0;j<MAX_WEAPONS;j++) for (j=0;j<MAX_WEAPONS;j++)
{ {
tsbar[i].ammo_amount[j] = ps[i].ammo_amount[j]; tsbar[i].ammo_amount[j] = ps[i].ammo_amount[j];
tsbar[i].gotweapon[j] = ps[i].gotweapon[j]; tsbar[i].gotweapon[j] = ps[i].gotweapon[j];
@ -1148,17 +1156,17 @@ void resetpspritevars(char g)
resetplayerstats(0); resetplayerstats(0);
for(i=1;i<MAXPLAYERS;i++) for (i=1;i<MAXPLAYERS;i++)
memcpy(&ps[i],&ps[0],sizeof(ps[0])); memcpy(&ps[i],&ps[0],sizeof(ps[0]));
if(ud.recstat != 2) for(i=0;i<MAXPLAYERS;i++) if (ud.recstat != 2) for (i=0;i<MAXPLAYERS;i++)
{ {
ps[i].aim_mode = aimmode[i]; ps[i].aim_mode = aimmode[i];
ps[i].auto_aim = autoaim[i]; ps[i].auto_aim = autoaim[i];
ps[i].weaponswitch = weaponswitch[i]; ps[i].weaponswitch = weaponswitch[i];
if(ud.multimode > 1 && (gametype_flags[ud.coop]&GAMETYPE_FLAG_PRESERVEINVENTORYDEATH) && ud.last_level >= 0) if (ud.multimode > 1 && (gametype_flags[ud.coop]&GAMETYPE_FLAG_PRESERVEINVENTORYDEATH) && ud.last_level >= 0)
{ {
for(j=0;j<MAX_WEAPONS;j++) for (j=0;j<MAX_WEAPONS;j++)
{ {
ps[i].ammo_amount[j] = tsbar[i].ammo_amount[j]; ps[i].ammo_amount[j] = tsbar[i].ammo_amount[j];
ps[i].gotweapon[j] = tsbar[i].gotweapon[j]; ps[i].gotweapon[j] = tsbar[i].gotweapon[j];
@ -1183,15 +1191,15 @@ void resetpspritevars(char g)
which_palookup = 9; which_palookup = 9;
j = connecthead; j = connecthead;
i = headspritestat[10]; i = headspritestat[10];
while(i >= 0) while (i >= 0)
{ {
nexti = nextspritestat[i]; nexti = nextspritestat[i];
s = &sprite[i]; s = &sprite[i];
if( numplayersprites == MAXPLAYERS) if ( numplayersprites == MAXPLAYERS)
gameexit("\nToo many player sprites (max 16.)"); gameexit("\nToo many player sprites (max 16.)");
if(numplayersprites == 0) if (numplayersprites == 0)
{ {
firstx = ps[0].posx; firstx = ps[0].posx;
firsty = ps[0].posy; firsty = ps[0].posy;
@ -1204,7 +1212,7 @@ void resetpspritevars(char g)
po[numplayersprites].os = s->sectnum; po[numplayersprites].os = s->sectnum;
numplayersprites++; numplayersprites++;
if(j >= 0) if (j >= 0)
{ {
s->owner = i; s->owner = i;
s->shade = 0; s->shade = 0;
@ -1214,7 +1222,7 @@ void resetpspritevars(char g)
s->xoffset = 0; s->xoffset = 0;
s->clipdist = 64; s->clipdist = 64;
if( (g&MODE_EOL) != MODE_EOL || ps[j].last_extra == 0) if ( (g&MODE_EOL) != MODE_EOL || ps[j].last_extra == 0)
{ {
ps[j].last_extra = max_player_health; ps[j].last_extra = max_player_health;
s->extra = max_player_health; s->extra = max_player_health;
@ -1224,22 +1232,22 @@ void resetpspritevars(char g)
s->yvel = j; s->yvel = j;
if(!ud.pcolor[j] && ud.multimode > 1 && !(gametype_flags[ud.coop] & GAMETYPE_FLAG_TDM)) if (!ud.pcolor[j] && ud.multimode > 1 && !(gametype_flags[ud.coop] & GAMETYPE_FLAG_TDM))
{ {
if(s->pal == 0) if (s->pal == 0)
{ {
int k; int k;
for(k=0;k<MAXPLAYERS;k++) { for (k=0;k<MAXPLAYERS;k++) {
if(which_palookup == ps[k].palookup) { if (which_palookup == ps[k].palookup) {
which_palookup++; which_palookup++;
if( which_palookup >= 17 ) if ( which_palookup >= 17 )
which_palookup = 9; which_palookup = 9;
k=0; k=0;
} }
} }
ud.pcolor[j] = s->pal = ps[j].palookup = which_palookup++; ud.pcolor[j] = s->pal = ps[j].palookup = which_palookup++;
if( which_palookup >= 17 ) if ( which_palookup >= 17 )
which_palookup = 9; which_palookup = 9;
} }
else ud.pcolor[j] = ps[j].palookup = s->pal; else ud.pcolor[j] = ps[j].palookup = s->pal;
@ -1248,12 +1256,14 @@ void resetpspritevars(char g)
{ {
int k = ud.pcolor[j]; int k = ud.pcolor[j];
if(gametype_flags[ud.coop] & GAMETYPE_FLAG_TDM) if (gametype_flags[ud.coop] & GAMETYPE_FLAG_TDM)
{ {
switch(ud.pteam[j]) switch (ud.pteam[j])
{ {
case 0: k = 3; break; case 0:
case 1: k = 21; break; k = 3; break;
case 1:
k = 21; break;
} }
ps[j].team = ud.pteam[j]; ps[j].team = ud.pteam[j];
} }
@ -1283,7 +1293,7 @@ void clearfrags(void)
{ {
short i; short i;
for(i = 0;i<MAXPLAYERS;i++) for (i = 0;i<MAXPLAYERS;i++)
ps[i].frag = ps[i].fraggedself = 0; ps[i].frag = ps[i].fraggedself = 0;
clearbufbyte(&frags[0][0],(MAXPLAYERS*MAXPLAYERS)<<1,0L); clearbufbyte(&frags[0][0],(MAXPLAYERS*MAXPLAYERS)<<1,0L);
} }
@ -1306,12 +1316,12 @@ void genspriteremaps(void)
char *lookfn = "lookup.dat"; char *lookfn = "lookup.dat";
fp = kopen4load(lookfn,0); fp = kopen4load(lookfn,0);
if(fp != -1) if (fp != -1)
kread(fp,(char *)&numl,1); kread(fp,(char *)&numl,1);
else else
gameexit("\nERROR: File 'LOOKUP.DAT' not found."); gameexit("\nERROR: File 'LOOKUP.DAT' not found.");
for(j=0;j < numl;j++) for (j=0;j < numl;j++)
{ {
kread(fp,(signed char *)&look_pos,1); kread(fp,(signed char *)&look_pos,1);
kread(fp,tempbuf,256); kread(fp,tempbuf,256);
@ -1349,7 +1359,7 @@ void waitforeverybody()
if (numplayers < 2) return; if (numplayers < 2) return;
packbuf[0] = 250; packbuf[0] = 250;
for(i=connecthead;i>=0;i=connectpoint2[i]) for (i=connecthead;i>=0;i=connectpoint2[i])
{ {
if (i != myconnectindex) sendpacket(i,packbuf,1); if (i != myconnectindex) sendpacket(i,packbuf,1);
if ((!networkmode) && (myconnectindex != connecthead)) break; //slaves in M/S mode only send to master if ((!networkmode) && (myconnectindex != connecthead)) break; //slaves in M/S mode only send to master
@ -1365,10 +1375,11 @@ void waitforeverybody()
getpackets(); getpackets();
for(i=connecthead;i>=0;i=connectpoint2[i]) for (i=connecthead;i>=0;i=connectpoint2[i])
{ {
if (playerreadyflag[i] < playerreadyflag[myconnectindex]) break; if (playerreadyflag[i] < playerreadyflag[myconnectindex]) break;
if ((!networkmode) && (myconnectindex != connecthead)) { i = -1; break; } //slaves in M/S mode only wait for master if ((!networkmode) && (myconnectindex != connecthead)) { i = -1; break; } //slaves in M/S mode only wait for master
} }
if (i < 0) return; if (i < 0) return;
} }
@ -1378,7 +1389,7 @@ void dofrontscreens(char *statustext)
{ {
long i=0,j; long i=0,j;
if(ud.recstat != 2) if (ud.recstat != 2)
{ {
if (!statustext) { if (!statustext) {
//ps[myconnectindex].palette = palette; //ps[myconnectindex].palette = palette;
@ -1394,12 +1405,12 @@ void dofrontscreens(char *statustext)
OnEvent(EVENT_GETLOADTILE, -1, myconnectindex, -1); OnEvent(EVENT_GETLOADTILE, -1, myconnectindex, -1);
j = GetGameVarID(g_iReturnVarID, -1, -1); j = GetGameVarID(g_iReturnVarID, -1, -1);
rotatesprite(320<<15,200<<15,65536L,0,j > MAXTILES-1?j-MAXTILES:j,0,0,2+8+64,0,0,xdim-1,ydim-1); rotatesprite(320<<15,200<<15,65536L,0,j > MAXTILES-1?j-MAXTILES:j,0,0,2+8+64,0,0,xdim-1,ydim-1);
if(j > MAXTILES-1) if (j > MAXTILES-1)
{ {
nextpage(); nextpage();
return; return;
} }
if( boardfilename[0] != 0 && ud.level_number == 7 && ud.volume_number == 0 ) if ( boardfilename[0] != 0 && ud.level_number == 7 && ud.volume_number == 0 )
{ {
menutext(160,90,0,0,"ENTERING USER MAP"); menutext(160,90,0,0,"ENTERING USER MAP");
gametextpal(160,90+10,boardfilename,14,2); gametextpal(160,90+10,boardfilename,14,2);
@ -1435,7 +1446,7 @@ void dofrontscreens(char *statustext)
OnEvent(EVENT_GETLOADTILE, -1, myconnectindex, -1); OnEvent(EVENT_GETLOADTILE, -1, myconnectindex, -1);
j = GetGameVarID(g_iReturnVarID, -1, -1); j = GetGameVarID(g_iReturnVarID, -1, -1);
rotatesprite(320<<15,200<<15,65536L,0,j > MAXTILES-1?j-MAXTILES:j,0,0,2+8+64,0,0,xdim-1,ydim-1); rotatesprite(320<<15,200<<15,65536L,0,j > MAXTILES-1?j-MAXTILES:j,0,0,2+8+64,0,0,xdim-1,ydim-1);
if(j > MAXTILES-1) if (j > MAXTILES-1)
{ {
nextpage(); nextpage();
return; return;
@ -1497,7 +1508,7 @@ int enterlevel(char g)
long l; long l;
char levname[BMAX_PATH]; char levname[BMAX_PATH];
if( (g&MODE_DEMO) != MODE_DEMO ) ud.recstat = ud.m_recstat; if ( (g&MODE_DEMO) != MODE_DEMO ) ud.recstat = ud.m_recstat;
ud.respawn_monsters = ud.m_respawn_monsters; ud.respawn_monsters = ud.m_respawn_monsters;
ud.respawn_items = ud.m_respawn_items; ud.respawn_items = ud.m_respawn_items;
ud.respawn_inventory = ud.m_respawn_inventory; ud.respawn_inventory = ud.m_respawn_inventory;
@ -1511,13 +1522,13 @@ int enterlevel(char g)
Bmemset(votes,0,sizeof(votes)); Bmemset(votes,0,sizeof(votes));
Bmemset(gotvote,0,sizeof(gotvote)); Bmemset(gotvote,0,sizeof(gotvote));
if( (g&MODE_DEMO) == 0 && ud.recstat == 2) if ( (g&MODE_DEMO) == 0 && ud.recstat == 2)
ud.recstat = 0; ud.recstat = 0;
if (VOLUMEALL) Bsprintf(tempbuf,HEAD2); if (VOLUMEALL) Bsprintf(tempbuf,HEAD2);
else Bsprintf(tempbuf,HEAD); else Bsprintf(tempbuf,HEAD);
if( boardfilename[0] != 0 && ud.m_level_number == 7 && ud.m_volume_number == 0 ) if ( boardfilename[0] != 0 && ud.m_level_number == 7 && ud.m_volume_number == 0 )
{ {
Bstrcpy(levname, boardfilename); Bstrcpy(levname, boardfilename);
Bsprintf(apptitle," - %s",levname); Bsprintf(apptitle," - %s",levname);
@ -1539,7 +1550,7 @@ int enterlevel(char g)
if (!VOLUMEONE) { if (!VOLUMEONE) {
if( boardfilename[0] != 0 && ud.m_level_number == 7 && ud.m_volume_number == 0 ) if ( boardfilename[0] != 0 && ud.m_level_number == 7 && ud.m_volume_number == 0 )
{ {
if ( loadboard( boardfilename,0,&ps[0].posx, &ps[0].posy, &ps[0].posz, &ps[0].ang,&ps[0].cursectnum ) == -1 ) if ( loadboard( boardfilename,0,&ps[0].posx, &ps[0].posy, &ps[0].posz, &ps[0].ang,&ps[0].cursectnum ) == -1 )
{ {
@ -1603,34 +1614,34 @@ int enterlevel(char g)
cachedebug = 0; cachedebug = 0;
automapping = 0; automapping = 0;
if(ud.recstat != 2) MUSIC_StopSong(); if (ud.recstat != 2) MUSIC_StopSong();
cacheit(); cacheit();
if(ud.recstat != 2) if (ud.recstat != 2)
{ {
music_select = (ud.volume_number*11) + ud.level_number; music_select = (ud.volume_number*11) + ud.level_number;
playmusic(&music_fn[0][music_select][0]); playmusic(&music_fn[0][music_select][0]);
} }
if( (g&MODE_GAME) || (g&MODE_EOL) ) if ( (g&MODE_GAME) || (g&MODE_EOL) )
ps[myconnectindex].gm = MODE_GAME; ps[myconnectindex].gm = MODE_GAME;
else if(g&MODE_RESTART) else if (g&MODE_RESTART)
{ {
if(ud.recstat == 2) if (ud.recstat == 2)
ps[myconnectindex].gm = MODE_DEMO; ps[myconnectindex].gm = MODE_DEMO;
else ps[myconnectindex].gm = MODE_GAME; else ps[myconnectindex].gm = MODE_GAME;
} }
if( (ud.recstat == 1) && (g&MODE_RESTART) != MODE_RESTART ) if ( (ud.recstat == 1) && (g&MODE_RESTART) != MODE_RESTART )
opendemowrite(); opendemowrite();
if (VOLUMEONE) { if (VOLUMEONE) {
if(ud.level_number == 0 && ud.recstat != 2) FTA(40,&ps[myconnectindex]); if (ud.level_number == 0 && ud.recstat != 2) FTA(40,&ps[myconnectindex]);
} }
for(i=connecthead;i>=0;i=connectpoint2[i]) for (i=connecthead;i>=0;i=connectpoint2[i])
switch(dynamictostatic[sector[sprite[ps[i].i].sectnum].floorpicnum]) switch (dynamictostatic[sector[sprite[ps[i].i].sectnum].floorpicnum])
{ {
case HURTRAIL__STATIC: case HURTRAIL__STATIC:
case FLOORSLIME__STATIC: case FLOORSLIME__STATIC:
@ -1662,7 +1673,7 @@ int enterlevel(char g)
clearfifo(); clearfifo();
for(i=numinterpolations-1;i>=0;i--) bakipos[i] = *curipos[i]; for (i=numinterpolations-1;i>=0;i--) bakipos[i] = *curipos[i];
restorepalette = 1; restorepalette = 1;

View file

@ -35,13 +35,13 @@ int loadpheader(char spot,struct savehead *saveh)
walock[TILE_LOADSHOT] = 255; walock[TILE_LOADSHOT] = 255;
if(kdfread(&bv,sizeof(bv),1,fil) != 1) goto corrupt; if (kdfread(&bv,sizeof(bv),1,fil) != 1) goto corrupt;
if(kdfread(g_szBuf,bv,1,fil) != 1) goto corrupt; if (kdfread(g_szBuf,bv,1,fil) != 1) goto corrupt;
g_szBuf[bv]=0; g_szBuf[bv]=0;
// AddLog(g_szBuf); // AddLog(g_szBuf);
if (kdfread(&bv,4,1,fil) != 1) goto corrupt; if (kdfread(&bv,4,1,fil) != 1) goto corrupt;
if(bv != BYTEVERSION) { if (bv != BYTEVERSION) {
FTA(114,&ps[myconnectindex]); FTA(114,&ps[myconnectindex]);
kclose(fil); kclose(fil);
return 1; return 1;
@ -80,7 +80,7 @@ int loadplayer(signed char spot)
strcpy(fn, "egam0.sav"); strcpy(fn, "egam0.sav");
strcpy(mpfn, "egamA_00.sav"); strcpy(mpfn, "egamA_00.sav");
if(spot < 0) if (spot < 0)
{ {
multiflag = 1; multiflag = 1;
multiwhat = 0; multiwhat = 0;
@ -88,12 +88,12 @@ int loadplayer(signed char spot)
return -1; return -1;
} }
if( multiflag == 2 && multiwho != myconnectindex ) if ( multiflag == 2 && multiwho != myconnectindex )
{ {
fnptr = mpfn; fnptr = mpfn;
mpfn[4] = spot + 'A'; mpfn[4] = spot + 'A';
if(ud.multimode > 9) if (ud.multimode > 9)
{ {
mpfn[6] = (multiwho/10) + '0'; mpfn[6] = (multiwho/10) + '0';
mpfn[7] = (multiwho%10) + '0'; mpfn[7] = (multiwho%10) + '0';
@ -110,13 +110,13 @@ int loadplayer(signed char spot)
ready2send = 0; ready2send = 0;
if(kdfread(&bv,sizeof(bv),1,fil) != 1) goto corrupt; if (kdfread(&bv,sizeof(bv),1,fil) != 1) goto corrupt;
if(kdfread(g_szBuf,bv,1,fil) != 1) goto corrupt; if (kdfread(g_szBuf,bv,1,fil) != 1) goto corrupt;
g_szBuf[bv]=0; g_szBuf[bv]=0;
// AddLog(g_szBuf); // AddLog(g_szBuf);
if (kdfread(&bv,4,1,fil) != 1) return -1; if (kdfread(&bv,4,1,fil) != 1) return -1;
if(bv != BYTEVERSION) if (bv != BYTEVERSION)
{ {
FTA(114,&ps[myconnectindex]); FTA(114,&ps[myconnectindex]);
kclose(fil); kclose(fil);
@ -126,7 +126,7 @@ int loadplayer(signed char spot)
} }
if (kdfread(&nump,sizeof(nump),1,fil) != 1) return -1; if (kdfread(&nump,sizeof(nump),1,fil) != 1) return -1;
if(nump != ud.multimode) if (nump != ud.multimode)
{ {
kclose(fil); kclose(fil);
ototalclock = totalclock; ototalclock = totalclock;
@ -135,7 +135,7 @@ int loadplayer(signed char spot)
return 1; return 1;
} else ud.multimode = nump; } else ud.multimode = nump;
if(numplayers > 1) if (numplayers > 1)
{ {
pub = NUMPAGES; pub = NUMPAGES;
pus = NUMPAGES; pus = NUMPAGES;
@ -151,7 +151,7 @@ int loadplayer(signed char spot)
clearsoundlocks(); clearsoundlocks();
MUSIC_StopSong(); MUSIC_StopSong();
if(numplayers > 1) { if (numplayers > 1) {
if (kdfread(&buf,19,1,fil) != 1) goto corrupt; if (kdfread(&buf,19,1,fil) != 1) goto corrupt;
} else { } else {
if (kdfread(&ud.savegame[spot][0],19,1,fil) != 1) goto corrupt; if (kdfread(&ud.savegame[spot][0],19,1,fil) != 1) goto corrupt;
@ -210,23 +210,23 @@ int loadplayer(signed char spot)
if (kdfread(&scriptptrs[0],1,MAXSCRIPTSIZE,fil) != MAXSCRIPTSIZE) goto corrupt; if (kdfread(&scriptptrs[0],1,MAXSCRIPTSIZE,fil) != MAXSCRIPTSIZE) goto corrupt;
if (kdfread(&script[0],4,MAXSCRIPTSIZE,fil) != MAXSCRIPTSIZE) goto corrupt; if (kdfread(&script[0],4,MAXSCRIPTSIZE,fil) != MAXSCRIPTSIZE) goto corrupt;
for(i=0;i<MAXSCRIPTSIZE;i++) for (i=0;i<MAXSCRIPTSIZE;i++)
if( scriptptrs[i] ) if ( scriptptrs[i] )
{ {
j = (long)script[i]+(long)&script[0]; j = (long)script[i]+(long)&script[0];
script[i] = j; script[i] = j;
} }
if (kdfread(&actorscrptr[0],4,MAXTILES,fil) != MAXTILES) goto corrupt; if (kdfread(&actorscrptr[0],4,MAXTILES,fil) != MAXTILES) goto corrupt;
for(i=0;i<MAXTILES;i++) for (i=0;i<MAXTILES;i++)
if(actorscrptr[i]) if (actorscrptr[i])
{ {
j = (long)actorscrptr[i]+(long)&script[0]; j = (long)actorscrptr[i]+(long)&script[0];
actorscrptr[i] = (long *)j; actorscrptr[i] = (long *)j;
} }
if (kdfread(&actorLoadEventScrptr[0],4,MAXTILES,fil) != MAXTILES) goto corrupt; if (kdfread(&actorLoadEventScrptr[0],4,MAXTILES,fil) != MAXTILES) goto corrupt;
for(i=0;i<MAXTILES;i++) for (i=0;i<MAXTILES;i++)
if(actorLoadEventScrptr[i]) if (actorLoadEventScrptr[i])
{ {
j = (long)actorLoadEventScrptr[i]+(long)&script[0]; j = (long)actorLoadEventScrptr[i]+(long)&script[0];
actorLoadEventScrptr[i] = (long *)j; actorLoadEventScrptr[i] = (long *)j;
@ -235,12 +235,12 @@ int loadplayer(signed char spot)
if (kdfread(&scriptptrs[0],1,MAXSPRITES,fil) != MAXSPRITES) goto corrupt; if (kdfread(&scriptptrs[0],1,MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
if (kdfread(&hittype[0],sizeof(struct weaponhit),MAXSPRITES,fil) != MAXSPRITES) goto corrupt; if (kdfread(&hittype[0],sizeof(struct weaponhit),MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
for(i=0;i<MAXSPRITES;i++) for (i=0;i<MAXSPRITES;i++)
{ {
j = (long)(&script[0]); j = (long)(&script[0]);
if( scriptptrs[i]&1 ) T2 += j; if ( scriptptrs[i]&1 ) T2 += j;
if( scriptptrs[i]&2 ) T5 += j; if ( scriptptrs[i]&2 ) T5 += j;
if( scriptptrs[i]&4 ) T6 += j; if ( scriptptrs[i]&4 ) T6 += j;
} }
if (kdfread(&lockclock,sizeof(lockclock),1,fil) != 1) goto corrupt; if (kdfread(&lockclock,sizeof(lockclock),1,fil) != 1) goto corrupt;
@ -250,7 +250,7 @@ int loadplayer(signed char spot)
if (kdfread(&animatecnt,sizeof(animatecnt),1,fil) != 1) goto corrupt; if (kdfread(&animatecnt,sizeof(animatecnt),1,fil) != 1) goto corrupt;
if (kdfread(&animatesect[0],2,MAXANIMATES,fil) != MAXANIMATES) goto corrupt; if (kdfread(&animatesect[0],2,MAXANIMATES,fil) != MAXANIMATES) goto corrupt;
if (kdfread(&animateptr[0],4,MAXANIMATES,fil) != MAXANIMATES) goto corrupt; if (kdfread(&animateptr[0],4,MAXANIMATES,fil) != MAXANIMATES) goto corrupt;
for(i = animatecnt-1;i>=0;i--) animateptr[i] = (long *)((long)animateptr[i]+(long)(&sector[0])); for (i = animatecnt-1;i>=0;i--) animateptr[i] = (long *)((long)animateptr[i]+(long)(&sector[0]));
if (kdfread(&animategoal[0],4,MAXANIMATES,fil) != MAXANIMATES) goto corrupt; if (kdfread(&animategoal[0],4,MAXANIMATES,fil) != MAXANIMATES) goto corrupt;
if (kdfread(&animatevel[0],4,MAXANIMATES,fil) != MAXANIMATES) goto corrupt; if (kdfread(&animatevel[0],4,MAXANIMATES,fil) != MAXANIMATES) goto corrupt;
@ -300,27 +300,27 @@ int loadplayer(signed char spot)
if (kdfread(&i,sizeof(long),1,fil) != 1) goto corrupt; if (kdfread(&i,sizeof(long),1,fil) != 1) goto corrupt;
while(i != MAXQUOTES) while (i != MAXQUOTES)
{ {
if(fta_quotes[i] != NULL) if (fta_quotes[i] != NULL)
Bfree(fta_quotes[i]); Bfree(fta_quotes[i]);
fta_quotes[i] = Bcalloc(MAXQUOTELEN,sizeof(char)); fta_quotes[i] = Bcalloc(MAXQUOTELEN,sizeof(char));
if(kdfread((char *)fta_quotes[i],MAXQUOTELEN,1,fil) != 1) goto corrupt; if (kdfread((char *)fta_quotes[i],MAXQUOTELEN,1,fil) != 1) goto corrupt;
if(kdfread(&i,sizeof(long),1,fil) != 1) goto corrupt; if (kdfread(&i,sizeof(long),1,fil) != 1) goto corrupt;
} }
if (kdfread(&redefined_quote_count,sizeof(redefined_quote_count),1,fil) != 1) goto corrupt; if (kdfread(&redefined_quote_count,sizeof(redefined_quote_count),1,fil) != 1) goto corrupt;
for(i=0;i<redefined_quote_count;i++) for (i=0;i<redefined_quote_count;i++)
{ {
if(redefined_quotes[i] != NULL) if (redefined_quotes[i] != NULL)
Bfree(redefined_quotes[i]); Bfree(redefined_quotes[i]);
redefined_quotes[i] = Bcalloc(MAXQUOTELEN,sizeof(char)); redefined_quotes[i] = Bcalloc(MAXQUOTELEN,sizeof(char));
if(kdfread((char *)redefined_quotes[i],MAXQUOTELEN,1,fil) != 1) goto corrupt; if (kdfread((char *)redefined_quotes[i],MAXQUOTELEN,1,fil) != 1) goto corrupt;
} }
if (kdfread(&dynamictostatic[0],sizeof(dynamictostatic[0]),MAXTILES,fil) != MAXTILES) goto corrupt; if (kdfread(&dynamictostatic[0],sizeof(dynamictostatic[0]),MAXTILES,fil) != MAXTILES) goto corrupt;
@ -329,11 +329,11 @@ int loadplayer(signed char spot)
ud.m_noexits = ud.noexits; ud.m_noexits = ud.noexits;
if(ReadGameVars(fil)) goto corrupt; if (ReadGameVars(fil)) goto corrupt;
kclose(fil); kclose(fil);
if(ps[myconnectindex].over_shoulder_on != 0) if (ps[myconnectindex].over_shoulder_on != 0)
{ {
cameradist = 0; cameradist = 0;
cameraclock = 0; cameraclock = 0;
@ -352,7 +352,7 @@ int loadplayer(signed char spot)
ps[myconnectindex].gm = MODE_GAME; ps[myconnectindex].gm = MODE_GAME;
ud.recstat = 0; ud.recstat = 0;
if(ps[myconnectindex].jetpack_on) if (ps[myconnectindex].jetpack_on)
spritesound(DUKE_JETPACK_IDLE,ps[myconnectindex].i); spritesound(DUKE_JETPACK_IDLE,ps[myconnectindex].i);
restorepalette = 1; restorepalette = 1;
@ -361,16 +361,16 @@ int loadplayer(signed char spot)
FX_SetReverb(0); FX_SetReverb(0);
if(ud.lockout == 0) if (ud.lockout == 0)
{ {
for(x=0;x<numanimwalls;x++) for (x=0;x<numanimwalls;x++)
if( wall[animwall[x].wallnum].extra >= 0 ) if ( wall[animwall[x].wallnum].extra >= 0 )
wall[animwall[x].wallnum].picnum = wall[animwall[x].wallnum].extra; wall[animwall[x].wallnum].picnum = wall[animwall[x].wallnum].extra;
} }
else else
{ {
for(x=0;x<numanimwalls;x++) for (x=0;x<numanimwalls;x++)
switch(dynamictostatic[wall[animwall[x].wallnum].picnum]) switch (dynamictostatic[wall[animwall[x].wallnum].picnum])
{ {
case FEMPIC1__STATIC: case FEMPIC1__STATIC:
wall[animwall[x].wallnum].picnum = BLANKSCREEN; wall[animwall[x].wallnum].picnum = BLANKSCREEN;
@ -386,9 +386,9 @@ int loadplayer(signed char spot)
startofdynamicinterpolations = 0; startofdynamicinterpolations = 0;
k = headspritestat[3]; k = headspritestat[3];
while(k >= 0) while (k >= 0)
{ {
switch(sprite[k].lotag) switch (sprite[k].lotag)
{ {
case 31: case 31:
setinterpolation(&sector[sprite[k].sectnum].floorz); setinterpolation(&sector[sprite[k].sectnum].floorz);
@ -420,8 +420,8 @@ int loadplayer(signed char spot)
k = nextspritestat[k]; k = nextspritestat[k];
} }
for(i=numinterpolations-1;i>=0;i--) bakipos[i] = *curipos[i]; for (i=numinterpolations-1;i>=0;i--) bakipos[i] = *curipos[i];
for(i = animatecnt-1;i>=0;i--) for (i = animatecnt-1;i>=0;i--)
setinterpolation(animateptr[i]); setinterpolation(animateptr[i]);
show_shareware = 0; show_shareware = 0;
@ -458,7 +458,7 @@ int saveplayer(signed char spot)
strcpy(fn, "egam0.sav"); strcpy(fn, "egam0.sav");
strcpy(mpfn, "egamA_00.sav"); strcpy(mpfn, "egamA_00.sav");
if(spot < 0) if (spot < 0)
{ {
multiflag = 1; multiflag = 1;
multiwhat = 1; multiwhat = 1;
@ -468,12 +468,12 @@ int saveplayer(signed char spot)
waitforeverybody(); waitforeverybody();
if( multiflag == 2 && multiwho != myconnectindex ) if ( multiflag == 2 && multiwho != myconnectindex )
{ {
fnptr = mpfn; fnptr = mpfn;
mpfn[4] = spot + 'A'; mpfn[4] = spot + 'A';
if(ud.multimode > 9) if (ud.multimode > 9)
{ {
mpfn[6] = (multiwho/10) + '0'; mpfn[6] = (multiwho/10) + '0';
mpfn[7] = multiwho + '0'; mpfn[7] = multiwho + '0';
@ -545,9 +545,9 @@ int saveplayer(signed char spot)
dfwrite(&cloudx[0],sizeof(short)<<7,1,fil); dfwrite(&cloudx[0],sizeof(short)<<7,1,fil);
dfwrite(&cloudy[0],sizeof(short)<<7,1,fil); dfwrite(&cloudy[0],sizeof(short)<<7,1,fil);
for(i=0;i<MAXSCRIPTSIZE;i++) for (i=0;i<MAXSCRIPTSIZE;i++)
{ {
if( (long)script[i] >= (long)(&script[0]) && (long)script[i] < (long)(&script[MAXSCRIPTSIZE]) ) if ( (long)script[i] >= (long)(&script[0]) && (long)script[i] < (long)(&script[MAXSCRIPTSIZE]) )
{ {
scriptptrs[i] = 1; scriptptrs[i] = 1;
j = (long)script[i] - (long)&script[0]; j = (long)script[i] - (long)&script[0];
@ -559,61 +559,61 @@ int saveplayer(signed char spot)
dfwrite(&scriptptrs[0],1,MAXSCRIPTSIZE,fil); dfwrite(&scriptptrs[0],1,MAXSCRIPTSIZE,fil);
dfwrite(&script[0],4,MAXSCRIPTSIZE,fil); dfwrite(&script[0],4,MAXSCRIPTSIZE,fil);
for(i=0;i<MAXSCRIPTSIZE;i++) for (i=0;i<MAXSCRIPTSIZE;i++)
if( scriptptrs[i] ) if ( scriptptrs[i] )
{ {
j = script[i]+(long)&script[0]; j = script[i]+(long)&script[0];
script[i] = j; script[i] = j;
} }
for(i=0;i<MAXTILES;i++) for (i=0;i<MAXTILES;i++)
if(actorscrptr[i]) if (actorscrptr[i])
{ {
j = (long)actorscrptr[i]-(long)&script[0]; j = (long)actorscrptr[i]-(long)&script[0];
actorscrptr[i] = (long *)j; actorscrptr[i] = (long *)j;
} }
dfwrite(&actorscrptr[0],4,MAXTILES,fil); dfwrite(&actorscrptr[0],4,MAXTILES,fil);
for(i=0;i<MAXTILES;i++) for (i=0;i<MAXTILES;i++)
if(actorscrptr[i]) if (actorscrptr[i])
{ {
j = (long)actorscrptr[i]+(long)&script[0]; j = (long)actorscrptr[i]+(long)&script[0];
actorscrptr[i] = (long *)j; actorscrptr[i] = (long *)j;
} }
for(i=0;i<MAXTILES;i++) for (i=0;i<MAXTILES;i++)
if(actorLoadEventScrptr[i]) if (actorLoadEventScrptr[i])
{ {
j = (long)actorLoadEventScrptr[i]-(long)&script[0]; j = (long)actorLoadEventScrptr[i]-(long)&script[0];
actorLoadEventScrptr[i] = (long *)j; actorLoadEventScrptr[i] = (long *)j;
} }
dfwrite(&actorLoadEventScrptr[0],4,MAXTILES,fil); dfwrite(&actorLoadEventScrptr[0],4,MAXTILES,fil);
for(i=0;i<MAXTILES;i++) for (i=0;i<MAXTILES;i++)
if(actorLoadEventScrptr[i]) if (actorLoadEventScrptr[i])
{ {
j = (long)actorLoadEventScrptr[i]+(long)&script[0]; j = (long)actorLoadEventScrptr[i]+(long)&script[0];
actorLoadEventScrptr[i] = (long *)j; actorLoadEventScrptr[i] = (long *)j;
} }
for(i=0;i<MAXSPRITES;i++) for (i=0;i<MAXSPRITES;i++)
{ {
scriptptrs[i] = 0; scriptptrs[i] = 0;
if(actorscrptr[PN] == 0) continue; if (actorscrptr[PN] == 0) continue;
j = (long)&script[0]; j = (long)&script[0];
if(T2 >= j && T2 < (long)(&script[MAXSCRIPTSIZE]) ) if (T2 >= j && T2 < (long)(&script[MAXSCRIPTSIZE]) )
{ {
scriptptrs[i] |= 1; scriptptrs[i] |= 1;
T2 -= j; T2 -= j;
} }
if(T5 >= j && T5 < (long)(&script[MAXSCRIPTSIZE]) ) if (T5 >= j && T5 < (long)(&script[MAXSCRIPTSIZE]) )
{ {
scriptptrs[i] |= 2; scriptptrs[i] |= 2;
T5 -= j; T5 -= j;
} }
if(T6 >= j && T6 < (long)(&script[MAXSCRIPTSIZE]) ) if (T6 >= j && T6 < (long)(&script[MAXSCRIPTSIZE]) )
{ {
scriptptrs[i] |= 4; scriptptrs[i] |= 4;
T6 -= j; T6 -= j;
@ -623,16 +623,16 @@ int saveplayer(signed char spot)
dfwrite(&scriptptrs[0],1,MAXSPRITES,fil); dfwrite(&scriptptrs[0],1,MAXSPRITES,fil);
dfwrite(&hittype[0],sizeof(struct weaponhit),MAXSPRITES,fil); dfwrite(&hittype[0],sizeof(struct weaponhit),MAXSPRITES,fil);
for(i=0;i<MAXSPRITES;i++) for (i=0;i<MAXSPRITES;i++)
{ {
if(actorscrptr[PN] == 0) continue; if (actorscrptr[PN] == 0) continue;
j = (long)&script[0]; j = (long)&script[0];
if(scriptptrs[i]&1) if (scriptptrs[i]&1)
T2 += j; T2 += j;
if(scriptptrs[i]&2) if (scriptptrs[i]&2)
T5 += j; T5 += j;
if(scriptptrs[i]&4) if (scriptptrs[i]&4)
T6 += j; T6 += j;
} }
@ -641,9 +641,9 @@ int saveplayer(signed char spot)
dfwrite(&pskyoff[0],sizeof(pskyoff[0]),MAXPSKYTILES,fil); dfwrite(&pskyoff[0],sizeof(pskyoff[0]),MAXPSKYTILES,fil);
dfwrite(&animatecnt,sizeof(animatecnt),1,fil); dfwrite(&animatecnt,sizeof(animatecnt),1,fil);
dfwrite(&animatesect[0],2,MAXANIMATES,fil); dfwrite(&animatesect[0],2,MAXANIMATES,fil);
for(i = animatecnt-1;i>=0;i--) animateptr[i] = (long *)((long)animateptr[i]-(long)(&sector[0])); for (i = animatecnt-1;i>=0;i--) animateptr[i] = (long *)((long)animateptr[i]-(long)(&sector[0]));
dfwrite(&animateptr[0],4,MAXANIMATES,fil); dfwrite(&animateptr[0],4,MAXANIMATES,fil);
for(i = animatecnt-1;i>=0;i--) animateptr[i] = (long *)((long)animateptr[i]+(long)(&sector[0])); for (i = animatecnt-1;i>=0;i--) animateptr[i] = (long *)((long)animateptr[i]+(long)(&sector[0]));
dfwrite(&animategoal[0],4,MAXANIMATES,fil); dfwrite(&animategoal[0],4,MAXANIMATES,fil);
dfwrite(&animatevel[0],4,MAXANIMATES,fil); dfwrite(&animatevel[0],4,MAXANIMATES,fil);
@ -681,9 +681,9 @@ int saveplayer(signed char spot)
dfwrite(&spritecache[0],sizeof(spritecache[0]),MAXTILES,fil); dfwrite(&spritecache[0],sizeof(spritecache[0]),MAXTILES,fil);
for(i=0;i<MAXQUOTES;i++) for (i=0;i<MAXQUOTES;i++)
{ {
if(fta_quotes[i] != NULL) if (fta_quotes[i] != NULL)
{ {
dfwrite(&i,sizeof(long),1,fil); dfwrite(&i,sizeof(long),1,fil);
dfwrite(fta_quotes[i],MAXQUOTELEN, 1, fil); dfwrite(fta_quotes[i],MAXQUOTELEN, 1, fil);
@ -692,9 +692,9 @@ int saveplayer(signed char spot)
dfwrite(&i,sizeof(long),1,fil); dfwrite(&i,sizeof(long),1,fil);
dfwrite(&redefined_quote_count,sizeof(redefined_quote_count),1,fil); dfwrite(&redefined_quote_count,sizeof(redefined_quote_count),1,fil);
for(i=0;i<redefined_quote_count;i++) for (i=0;i<redefined_quote_count;i++)
{ {
if(redefined_quotes[i] != NULL) if (redefined_quotes[i] != NULL)
dfwrite(redefined_quotes[i],MAXQUOTELEN, 1, fil); dfwrite(redefined_quotes[i],MAXQUOTELEN, 1, fil);
} }
@ -706,7 +706,7 @@ int saveplayer(signed char spot)
fclose(fil); fclose(fil);
if(ud.multimode < 2) if (ud.multimode < 2)
{ {
strcpy(fta_quotes[122],"GAME SAVED"); strcpy(fta_quotes[122],"GAME SAVED");
FTA(122,&ps[myconnectindex]); FTA(122,&ps[myconnectindex]);

File diff suppressed because it is too large Load diff

View file

@ -203,15 +203,15 @@ void playmusic(char *fn)
short fp; short fp;
long l; long l;
if(MusicToggle == 0) return; if (MusicToggle == 0) return;
if(MusicDevice < 0) return; if (MusicDevice < 0) return;
fp = kopen4load(fn,0); fp = kopen4load(fn,0);
if(fp == -1) return; if (fp == -1) return;
l = kfilelength( fp ); l = kfilelength( fp );
if(l >= (signed long)sizeof(MusicPtr)) if (l >= (signed long)sizeof(MusicPtr))
{ {
kclose(fp); kclose(fp);
return; return;
@ -226,11 +226,11 @@ char loadsound(unsigned short num)
{ {
long fp, l; long fp, l;
if(num >= NUM_SOUNDS || SoundToggle == 0) return 0; if (num >= NUM_SOUNDS || SoundToggle == 0) return 0;
if (FXDevice < 0) return 0; if (FXDevice < 0) return 0;
fp = kopen4load(sounds[num],loadfromgrouponly); fp = kopen4load(sounds[num],loadfromgrouponly);
if(fp == -1) if (fp == -1)
{ {
// Bsprintf(fta_quotes[113],"Sound %s(#%d) not found.",sounds[num],num); // Bsprintf(fta_quotes[113],"Sound %s(#%d) not found.",sounds[num],num);
// FTA(113,&ps[myconnectindex]); // FTA(113,&ps[myconnectindex]);
@ -257,7 +257,7 @@ int xyzsound(short num,short i,long x,long y,long z)
// if(num != 358) return 0; // if(num != 358) return 0;
if( num >= NUM_SOUNDS || if ( num >= NUM_SOUNDS ||
FXDevice < 0 || FXDevice < 0 ||
( (soundm[num]&8) && ud.lockout ) || ( (soundm[num]&8) && ud.lockout ) ||
SoundToggle == 0 || SoundToggle == 0 ||
@ -266,21 +266,21 @@ int xyzsound(short num,short i,long x,long y,long z)
(ps[myconnectindex].timebeforeexit > 0 && ps[myconnectindex].timebeforeexit <= 26*3) || (ps[myconnectindex].timebeforeexit > 0 && ps[myconnectindex].timebeforeexit <= 26*3) ||
ps[myconnectindex].gm&MODE_MENU) return -1; ps[myconnectindex].gm&MODE_MENU) return -1;
if( soundm[num]&128 ) if ( soundm[num]&128 )
{ {
sound(num); sound(num);
return 0; return 0;
} }
if( soundm[num]&4 ) if ( soundm[num]&4 )
{ {
if(VoiceToggle==0) if (VoiceToggle==0)
return -1; return -1;
else if (ud.multimode > 1 && PN == APLAYER && sprite[i].yvel != screenpeek && VoiceToggle!=2) else if (ud.multimode > 1 && PN == APLAYER && sprite[i].yvel != screenpeek && VoiceToggle!=2)
return -1; return -1;
for(j=0;j<NUM_SOUNDS;j++) for (j=0;j<NUM_SOUNDS;j++)
for(k=0;k<Sound[j].num;k++) for (k=0;k<Sound[j].num;k++)
if( (Sound[j].num > 0) && (soundm[j]&4) ) if ( (Sound[j].num > 0) && (soundm[j]&4) )
return -1; return -1;
} }
@ -292,54 +292,54 @@ int xyzsound(short num,short i,long x,long y,long z)
sndist = FindDistance3D((cx-x),(cy-y),(cz-z)>>4); sndist = FindDistance3D((cx-x),(cy-y),(cz-z)>>4);
if( i >= 0 && (soundm[num]&16) == 0 && PN == MUSICANDSFX && SLT < 999 && (sector[SECT].lotag&0xff) < 9 ) if ( i >= 0 && (soundm[num]&16) == 0 && PN == MUSICANDSFX && SLT < 999 && (sector[SECT].lotag&0xff) < 9 )
sndist = divscale14(sndist,(SHT+1)); sndist = divscale14(sndist,(SHT+1));
pitchs = soundps[num]; pitchs = soundps[num];
pitche = soundpe[num]; pitche = soundpe[num];
cx = klabs(pitche-pitchs); cx = klabs(pitche-pitchs);
if(cx) if (cx)
{ {
if( pitchs < pitche ) if ( pitchs < pitche )
pitch = pitchs + ( rand()%cx ); pitch = pitchs + ( rand()%cx );
else pitch = pitche + ( rand()%cx ); else pitch = pitche + ( rand()%cx );
} }
else pitch = pitchs; else pitch = pitchs;
sndist += soundvo[num]; sndist += soundvo[num];
if(sndist < 0) sndist = 0; if (sndist < 0) sndist = 0;
if( sndist && PN != MUSICANDSFX && !cansee(cx,cy,cz-(24<<8),cs,SX,SY,SZ-(24<<8),SECT) ) if ( sndist && PN != MUSICANDSFX && !cansee(cx,cy,cz-(24<<8),cs,SX,SY,SZ-(24<<8),SECT) )
sndist += sndist>>5; sndist += sndist>>5;
switch(num) switch (num)
{ {
case PIPEBOMB_EXPLODE: case PIPEBOMB_EXPLODE:
case LASERTRIP_EXPLODE: case LASERTRIP_EXPLODE:
case RPG_EXPLODE: case RPG_EXPLODE:
if(sndist > (6144) ) if (sndist > (6144) )
sndist = 6144; sndist = 6144;
if(sector[ps[screenpeek].cursectnum].lotag == 2) if (sector[ps[screenpeek].cursectnum].lotag == 2)
pitch -= 1024; pitch -= 1024;
break; break;
default: default:
if(sector[ps[screenpeek].cursectnum].lotag == 2 && (soundm[num]&4) == 0) if (sector[ps[screenpeek].cursectnum].lotag == 2 && (soundm[num]&4) == 0)
pitch = -768; pitch = -768;
if( sndist > 31444 && PN != MUSICANDSFX) if ( sndist > 31444 && PN != MUSICANDSFX)
return -1; return -1;
break; break;
} }
if (ps[screenpeek].sound_pitch) pitch += ps[screenpeek].sound_pitch; if (ps[screenpeek].sound_pitch) pitch += ps[screenpeek].sound_pitch;
if( Sound[num].num > 0 && PN != MUSICANDSFX ) if ( Sound[num].num > 0 && PN != MUSICANDSFX )
{ {
if( SoundOwner[num][0].i == i ) stopsound(num); if ( SoundOwner[num][0].i == i ) stopsound(num);
else if( Sound[num].num > 1 ) stopsound(num); else if ( Sound[num].num > 1 ) stopsound(num);
else if( badguy(&sprite[i]) && sprite[i].extra <= 0 ) stopsound(num); else if ( badguy(&sprite[i]) && sprite[i].extra <= 0 ) stopsound(num);
} }
if( PN == APLAYER && sprite[i].yvel == screenpeek ) if ( PN == APLAYER && sprite[i].yvel == screenpeek )
{ {
sndang = 0; sndang = 0;
sndist = 0; sndist = 0;
@ -350,7 +350,7 @@ int xyzsound(short num,short i,long x,long y,long z)
sndang &= 2047; sndang &= 2047;
} }
if(Sound[num].ptr == 0) { if( loadsound(num) == 0 ) return 0; } if (Sound[num].ptr == 0) { if ( loadsound(num) == 0 ) return 0; }
else else
{ {
if (Sound[num].lock < 200) if (Sound[num].lock < 200)
@ -358,20 +358,20 @@ int xyzsound(short num,short i,long x,long y,long z)
else Sound[num].lock++; else Sound[num].lock++;
} }
if( soundm[num]&16 ) sndist = 0; if ( soundm[num]&16 ) sndist = 0;
if(sndist < ((255-LOUDESTVOLUME)<<6) ) if (sndist < ((255-LOUDESTVOLUME)<<6) )
sndist = ((255-LOUDESTVOLUME)<<6); sndist = ((255-LOUDESTVOLUME)<<6);
if( soundm[num]&1 ) if ( soundm[num]&1 )
{ {
unsigned short start; unsigned short start;
if(Sound[num].num > 0) return -1; if (Sound[num].num > 0) return -1;
start = *(unsigned short *)(Sound[num].ptr + 0x14); start = *(unsigned short *)(Sound[num].ptr + 0x14);
if(*Sound[num].ptr == 'C') if (*Sound[num].ptr == 'C')
voice = FX_PlayLoopedVOC( Sound[num].ptr, start, start + soundsiz[num], voice = FX_PlayLoopedVOC( Sound[num].ptr, start, start + soundsiz[num],
pitch,sndist>>6,sndist>>6,0,soundpr[num],num); pitch,sndist>>6,sndist>>6,0,soundpr[num],num);
else else
@ -380,7 +380,7 @@ int xyzsound(short num,short i,long x,long y,long z)
} }
else else
{ {
if( *Sound[num].ptr == 'C') if ( *Sound[num].ptr == 'C')
voice = FX_PlayVOC3D( Sound[ num ].ptr,pitch,sndang>>6,sndist>>6, soundpr[num], num ); voice = FX_PlayVOC3D( Sound[ num ].ptr,pitch,sndang>>6,sndist>>6, soundpr[num], num );
else else
voice = FX_PlayWAV3D( Sound[ num ].ptr,pitch,sndang>>6,sndist>>6, soundpr[num], num ); voice = FX_PlayWAV3D( Sound[ num ].ptr,pitch,sndang>>6,sndist>>6, soundpr[num], num );
@ -403,24 +403,24 @@ void sound(short num)
long start; long start;
if (FXDevice < 0) return; if (FXDevice < 0) return;
if(SoundToggle==0) return; if (SoundToggle==0) return;
if(VoiceToggle==0 && (soundm[num]&4) ) return; if (VoiceToggle==0 && (soundm[num]&4) ) return;
if( (soundm[num]&8) && ud.lockout ) return; if ( (soundm[num]&8) && ud.lockout ) return;
if(FX_VoiceAvailable(soundpr[num]) == 0) return; if (FX_VoiceAvailable(soundpr[num]) == 0) return;
pitchs = soundps[num]; pitchs = soundps[num];
pitche = soundpe[num]; pitche = soundpe[num];
cx = klabs(pitche-pitchs); cx = klabs(pitche-pitchs);
if(cx) if (cx)
{ {
if( pitchs < pitche ) if ( pitchs < pitche )
pitch = pitchs + ( rand()%cx ); pitch = pitchs + ( rand()%cx );
else pitch = pitche + ( rand()%cx ); else pitch = pitche + ( rand()%cx );
} }
else pitch = pitchs; else pitch = pitchs;
if(Sound[num].ptr == 0) { if( loadsound(num) == 0 ) return; } if (Sound[num].ptr == 0) { if ( loadsound(num) == 0 ) return; }
else else
{ {
if (Sound[num].lock < 200) if (Sound[num].lock < 200)
@ -428,9 +428,9 @@ if(Sound[num].ptr == 0) { if( loadsound(num) == 0 ) return; }
else Sound[num].lock++; else Sound[num].lock++;
} }
if( soundm[num]&1 ) if ( soundm[num]&1 )
{ {
if(*Sound[num].ptr == 'C') if (*Sound[num].ptr == 'C')
{ {
start = (long)*(unsigned short *)(Sound[num].ptr + 0x14); start = (long)*(unsigned short *)(Sound[num].ptr + 0x14);
voice = FX_PlayLoopedVOC( Sound[num].ptr, start, start + soundsiz[num], voice = FX_PlayLoopedVOC( Sound[num].ptr, start, start + soundsiz[num],
@ -445,19 +445,19 @@ if(Sound[num].ptr == 0) { if( loadsound(num) == 0 ) return; }
} }
else else
{ {
if(*Sound[num].ptr == 'C') if (*Sound[num].ptr == 'C')
voice = FX_PlayVOC3D( Sound[ num ].ptr, pitch,0,255-LOUDESTVOLUME,soundpr[num], num ); voice = FX_PlayVOC3D( Sound[ num ].ptr, pitch,0,255-LOUDESTVOLUME,soundpr[num], num );
else else
voice = FX_PlayWAV3D( Sound[ num ].ptr, pitch,0,255-LOUDESTVOLUME,soundpr[num], num ); voice = FX_PlayWAV3D( Sound[ num ].ptr, pitch,0,255-LOUDESTVOLUME,soundpr[num], num );
} }
if(voice > FX_Ok) return; if (voice > FX_Ok) return;
Sound[num].lock--; Sound[num].lock--;
} }
int spritesound(unsigned short num, short i) int spritesound(unsigned short num, short i)
{ {
if(num >= NUM_SOUNDS) return -1; if (num >= NUM_SOUNDS) return -1;
return xyzsound(num,i,SX,SY,SZ); return xyzsound(num,i,SX,SY,SZ);
} }
@ -468,7 +468,7 @@ void stopspritesound(short num, short i)
void stopsound(short num) void stopsound(short num)
{ {
if(Sound[num].num > 0) if (Sound[num].num > 0)
{ {
FX_StopSound(SoundOwner[num][Sound[num].num-1].voice); FX_StopSound(SoundOwner[num][Sound[num].num-1].voice);
testcallback(num); testcallback(num);
@ -479,11 +479,11 @@ void stopenvsound(short num,short i)
{ {
short j, k; short j, k;
if(Sound[num].num > 0) if (Sound[num].num > 0)
{ {
k = Sound[num].num; k = Sound[num].num;
for(j=0;j<k;j++) for (j=0;j<k;j++)
if(SoundOwner[num][j].i == i) if (SoundOwner[num][j].i == i)
{ {
FX_StopSound(SoundOwner[num][j].voice); FX_StopSound(SoundOwner[num][j].voice);
break; break;
@ -498,7 +498,7 @@ void pan3dsound(void)
numenvsnds = 0; numenvsnds = 0;
if(ud.camerasprite == -1) if (ud.camerasprite == -1)
{ {
cx = ps[screenpeek].oposx; cx = ps[screenpeek].oposx;
cy = ps[screenpeek].oposy; cy = ps[screenpeek].oposy;
@ -515,7 +515,7 @@ void pan3dsound(void)
ca = sprite[ud.camerasprite].ang; ca = sprite[ud.camerasprite].ang;
} }
for(j=0;j<NUM_SOUNDS;j++) for(k=0;k<Sound[j].num;k++) for (j=0;j<NUM_SOUNDS;j++) for (k=0;k<Sound[j].num;k++)
{ {
i = SoundOwner[j][k].i; i = SoundOwner[j][k].i;
@ -523,7 +523,7 @@ void pan3dsound(void)
sy = sprite[i].y; sy = sprite[i].y;
sz = sprite[i].z; sz = sprite[i].z;
if( PN == APLAYER && sprite[i].yvel == screenpeek) if ( PN == APLAYER && sprite[i].yvel == screenpeek)
{ {
sndang = 0; sndang = 0;
sndist = 0; sndist = 0;
@ -533,38 +533,38 @@ void pan3dsound(void)
sndang = 2048 + ca - getangle(cx-sx,cy-sy); sndang = 2048 + ca - getangle(cx-sx,cy-sy);
sndang &= 2047; sndang &= 2047;
sndist = FindDistance3D((cx-sx),(cy-sy),(cz-sz)>>4); sndist = FindDistance3D((cx-sx),(cy-sy),(cz-sz)>>4);
if( i >= 0 && (soundm[j]&16) == 0 && PN == MUSICANDSFX && SLT < 999 && (sector[SECT].lotag&0xff) < 9 ) if ( i >= 0 && (soundm[j]&16) == 0 && PN == MUSICANDSFX && SLT < 999 && (sector[SECT].lotag&0xff) < 9 )
sndist = divscale14(sndist,(SHT+1)); sndist = divscale14(sndist,(SHT+1));
} }
sndist += soundvo[j]; sndist += soundvo[j];
if(sndist < 0) sndist = 0; if (sndist < 0) sndist = 0;
if( sndist && PN != MUSICANDSFX && !cansee(cx,cy,cz-(24<<8),cs,sx,sy,sz-(24<<8),SECT) ) if ( sndist && PN != MUSICANDSFX && !cansee(cx,cy,cz-(24<<8),cs,sx,sy,sz-(24<<8),SECT) )
sndist += sndist>>5; sndist += sndist>>5;
if(PN == MUSICANDSFX && SLT < 999) if (PN == MUSICANDSFX && SLT < 999)
numenvsnds++; numenvsnds++;
switch(j) switch (j)
{ {
case PIPEBOMB_EXPLODE: case PIPEBOMB_EXPLODE:
case LASERTRIP_EXPLODE: case LASERTRIP_EXPLODE:
case RPG_EXPLODE: case RPG_EXPLODE:
if(sndist > (6144)) sndist = (6144); if (sndist > (6144)) sndist = (6144);
break; break;
default: default:
if( sndist > 31444 && PN != MUSICANDSFX) if ( sndist > 31444 && PN != MUSICANDSFX)
{ {
stopsound(j); stopsound(j);
continue; continue;
} }
} }
if(Sound[j].ptr == 0 && loadsound(j) == 0 ) continue; if (Sound[j].ptr == 0 && loadsound(j) == 0 ) continue;
if( soundm[j]&16 ) sndist = 0; if ( soundm[j]&16 ) sndist = 0;
if(sndist < ((255-LOUDESTVOLUME)<<6) ) if (sndist < ((255-LOUDESTVOLUME)<<6) )
sndist = ((255-LOUDESTVOLUME)<<6); sndist = ((255-LOUDESTVOLUME)<<6);
FX_Pan3D(SoundOwner[j][k].voice,sndang>>6,sndist>>6); FX_Pan3D(SoundOwner[j][k].voice,sndang>>6,sndist>>6);
@ -575,25 +575,25 @@ void testcallback(unsigned long num)
{ {
short tempi,tempj,tempk; short tempi,tempj,tempk;
if((long)num < 0) if ((long)num < 0)
{ {
if(lumplockbyte[-num] >= 200) if (lumplockbyte[-num] >= 200)
lumplockbyte[-num]--; lumplockbyte[-num]--;
return; return;
} }
tempk = Sound[num].num; tempk = Sound[num].num;
if(tempk > 0) if (tempk > 0)
{ {
if( (soundm[num]&16) == 0) if ( (soundm[num]&16) == 0)
for(tempj=0;tempj<tempk;tempj++) for (tempj=0;tempj<tempk;tempj++)
{ {
tempi = SoundOwner[num][tempj].i; tempi = SoundOwner[num][tempj].i;
if(sprite[tempi].picnum == MUSICANDSFX && sector[sprite[tempi].sectnum].lotag < 3 && sprite[tempi].lotag < 999) if (sprite[tempi].picnum == MUSICANDSFX && sector[sprite[tempi].sectnum].lotag < 3 && sprite[tempi].lotag < 999)
{ {
hittype[tempi].temp_data[0] = 0; hittype[tempi].temp_data[0] = 0;
if( (tempj + 1) < tempk ) if ( (tempj + 1) < tempk )
{ {
SoundOwner[num][tempj].voice = SoundOwner[num][tempk-1].voice; SoundOwner[num][tempj].voice = SoundOwner[num][tempk-1].voice;
SoundOwner[num][tempj].i = SoundOwner[num][tempk-1].i; SoundOwner[num][tempj].i = SoundOwner[num][tempk-1].i;
@ -613,12 +613,12 @@ void clearsoundlocks(void)
{ {
long i; long i;
for(i=0;i<NUM_SOUNDS;i++) for (i=0;i<NUM_SOUNDS;i++)
if(Sound[i].lock >= 200) if (Sound[i].lock >= 200)
Sound[i].lock = 199; Sound[i].lock = 199;
for(i=0;i<11;i++) for (i=0;i<11;i++)
if(lumplockbyte[i] >= 200) if (lumplockbyte[i] >= 200)
lumplockbyte[i] = 199; lumplockbyte[i] = 199;
} }
@ -630,8 +630,8 @@ int isspritemakingsound(short i, int num)
int issoundplaying(short i, int num) int issoundplaying(short i, int num)
{ {
if(i == -1) { if (i == -1) {
if(Sound[num].lock == 200) if (Sound[num].lock == 200)
return 1; return 1;
else return 0; else return 0;
} }

View file

@ -157,10 +157,12 @@ static INT_PTR CALLBACK ConfigPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
case IDCINPUTJOY: case IDCINPUTJOY:
settings.usejoy = IsDlgButtonChecked(hwndDlg, IDCINPUTJOY) == BST_CHECKED; settings.usejoy = IsDlgButtonChecked(hwndDlg, IDCINPUTJOY) == BST_CHECKED;
return TRUE; return TRUE;
default: break; default:
break;
} }
break; break;
default: break; default:
break;
} }
return FALSE; return FALSE;
} }
@ -181,10 +183,12 @@ static INT_PTR CALLBACK GamePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPA
} }
return TRUE; return TRUE;
} }
default: break; default:
break;
} }
break; break;
default: break; default:
break;
} }
return FALSE; return FALSE;
} }
@ -386,7 +390,8 @@ static INT_PTR CALLBACK startup_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam,
if (mode == TAB_CONFIG) done = 0; if (mode == TAB_CONFIG) done = 0;
else quitevent++; else quitevent++;
return TRUE; return TRUE;
case WIN_STARTWIN_START: done = 1; return TRUE; case WIN_STARTWIN_START:
done = 1; return TRUE;
} }
return FALSE; return FALSE;
@ -395,7 +400,8 @@ static INT_PTR CALLBACK startup_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam,
return (BOOL)GetSysColorBrush(COLOR_WINDOW); return (BOOL)GetSysColorBrush(COLOR_WINDOW);
break; break;
default: break; default:
break;
} }
return FALSE; return FALSE;
@ -519,8 +525,10 @@ int startwin_run(void)
while (done < 0) { while (done < 0) {
switch (GetMessage(&msg, NULL, 0,0)) { switch (GetMessage(&msg, NULL, 0,0)) {
case 0: done = 1; break; case 0:
case -1: return -1; done = 1; break;
case -1:
return -1;
default: default:
if (IsWindow(startupdlg) && IsDialogMessage(startupdlg, &msg)) break; if (IsWindow(startupdlg) && IsDialogMessage(startupdlg, &msg)) break;
TranslateMessage(&msg); TranslateMessage(&msg);

View file

@ -20,14 +20,14 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpCmdLine, in
strcpy(sCmdLine,lpCmdLine); strcpy(sCmdLine,lpCmdLine);
szFileName[0] = '\0'; szFileName[0] = '\0';
while(sCmdLine[i] == ' ') i++; while (sCmdLine[i] == ' ') i++;
while(i < (signed)strlen(sCmdLine)) while (i < (signed)strlen(sCmdLine))
{ {
if(sCmdLine[i] == '-' && sCmdLine[i+1] == 'n' && sCmdLine[i+2] == 'e' && sCmdLine[i+3] == 't') if (sCmdLine[i] == '-' && sCmdLine[i+1] == 'n' && sCmdLine[i+2] == 'e' && sCmdLine[i+3] == 't')
{ {
CmdLine[i-1] = '\0'; CmdLine[i-1] = '\0';
i += 5; i += 5;
while(sCmdLine[i] != ' ' && i < (signed)strlen(sCmdLine)) while (sCmdLine[i] != ' ' && i < (signed)strlen(sCmdLine))
{ {
szFileName[j] = sCmdLine[i]; szFileName[j] = sCmdLine[i];
j++,i++; j++,i++;
@ -40,8 +40,8 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpCmdLine, in
CmdLine[i] = '\0'; CmdLine[i] = '\0';
} }
if(szFileName[0] != '\0' && CmdLine[0] != '\0') sprintf(sCmdLine,"eduke32.exe %s -rmnet %s",CmdLine,szFileName); if (szFileName[0] != '\0' && CmdLine[0] != '\0') sprintf(sCmdLine,"eduke32.exe %s -rmnet %s",CmdLine,szFileName);
else if(CmdLine[0] != '\0') sprintf(sCmdLine,"eduke32.exe %s",CmdLine); else if (CmdLine[0] != '\0') sprintf(sCmdLine,"eduke32.exe %s",CmdLine);
else sprintf(sCmdLine,"eduke32.exe"); else sprintf(sCmdLine,"eduke32.exe");
szCmdLine = sCmdLine; szCmdLine = sCmdLine;