dummytile fixes

git-svn-id: https://svn.eduke32.com/eduke32@330 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2006-11-07 22:08:57 +00:00
parent f80b65cfb3
commit 757da2432b
2 changed files with 27 additions and 9 deletions

View file

@ -458,22 +458,31 @@ static int defsparser(scriptfile *script)
break; break;
case T_DUMMYTILE: case T_DUMMYTILE:
{ {
int tile, xsiz, ysiz; int tile, xsiz, ysiz, j;
extern char faketile[MAXTILES]; extern char faketile[MAXTILES];
if (scriptfile_getsymbol(script,&tile)) break; if (scriptfile_getsymbol(script,&tile)) break;
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) tilesizx[tile] = xsiz; if(xsiz > 0 && ysiz > 0)
if(ysiz >= 0) tilesizy[tile] = ysiz; {
tilesizx[tile] = xsiz;
tilesizy[tile] = ysiz;
faketile[tile] = 1;
picanm[tile] = 0;
j = 15; while ((j > 1) && (pow2long[j] > xsiz)) j--;
picsiz[tile] = ((char)j);
j = 15; while ((j > 1) && (pow2long[j] > ysiz)) j--;
picsiz[tile] += ((char)(j<<4));
}
faketile[tile] = 1;
break; break;
} }
case T_DUMMYTILERANGE: case T_DUMMYTILERANGE:
{ {
int tile1,tile2,xsiz,ysiz,i; int tile1,tile2,xsiz,ysiz,i,j;
extern char faketile[MAXTILES]; extern char faketile[MAXTILES];
if (scriptfile_getnumber(script,&tile1)) break; if (scriptfile_getnumber(script,&tile1)) break;
@ -492,9 +501,18 @@ static int defsparser(scriptfile *script)
{ {
if ((unsigned long)i < MAXTILES) if ((unsigned long)i < MAXTILES)
{ {
if(xsiz >= 0) tilesizx[i] = xsiz; if(xsiz > 0 && ysiz > 0)
if(ysiz >= 0) tilesizy[i] = ysiz; {
faketile[i] = 1; tilesizx[i] = xsiz;
tilesizy[i] = ysiz;
faketile[i] = 1;
picanm[i] = 0;
j = 15; while ((j > 1) && (pow2long[j] > xsiz)) j--;
picsiz[i] = ((char)j);
j = 15; while ((j > 1) && (pow2long[j] > ysiz)) j--;
picsiz[i] += ((char)(j<<4));
}
} }
} }
} }

View file

@ -7628,7 +7628,7 @@ void loadtile(short tilenume)
kread(artfil,ptr,dasiz); kread(artfil,ptr,dasiz);
faketimerhandler(); faketimerhandler();
artfilplc = tilefileoffs[tilenume]+dasiz; artfilplc = tilefileoffs[tilenume]+dasiz;
} else Bmemset((char *)waloff[tilenume],0,dasiz); } else { Bmemset((char *)waloff[tilenume],0,dasiz); faketimerhandler(); }
} }
void checktile(short tilenume) void checktile(short tilenume)