home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Doom 2 Explosion
/
Doom2Explosion.bin
/
doom2exp
/
programs
/
doomtx
/
detex.c
next >
Wrap
Text File
|
1994-08-26
|
2KB
|
77 lines
/* DETEX v1.0. Part of DoomTex, by Steve McCrea 26/8/94 */
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <io.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <malloc.h>
#include <fcntl.h>
int fh;
void error(char *errstr)
{ printf("Detex: ");
printf(errstr);
exit(1); }
main(argc,argv)
int argc;
char *argv[];
{
char texname[10], patname[10];
char *pnames;
long numtexs, numpats, dummy, i;
int lnumpats, patnum, j, k, x, y;
if (argc != 3)
error("Usage: detex <pnames> <textures>\n");
texname[8]='\0';
patname[8]='\0';
if (!(fh=open(argv[1], O_BINARY|O_RDONLY)))
error("Can't open the <pnames> resource.\n");
read(fh, &numpats, 4);
if ((pnames=(char *)malloc(8*numpats))==NULL)
error("Can't allocate space for <pnames> resource.\n");
if (read(fh, pnames, 8*numpats)!=8*numpats)
error("The <pnames> resource is short.\n");
close(fh);
if (!(fh=open(argv[2], O_BINARY|O_RDONLY)))
error("Can't open <textures>.\n");
for (i=0; i<8*numpats; i++)
if (*(pnames+i)>0x40 && *(pnames+i)<0x5b) *(pnames+i) |= 0x20;
printf("TEXTURES\n");
read(fh, &numtexs, 4);
for (i=0; i<numtexs; i++)
read(fh, &dummy, 4);
for (i=0; i<numtexs; i++) {
for (k=0; k<8; k++)
read(fh, &texname[k], 1);
read(fh, &dummy, 4);
read(fh, &x, 2);
read(fh, &y, 2);
read(fh, &dummy, 4);
read(fh, &lnumpats, 2);
printf("%s %d %d\n", &texname, x, y);
for (j=0; j<lnumpats; j++) {
read(fh, &x, 2);
read(fh, &y, 2);
read(fh, &patnum, 2);
for (k=0; k<8; k++)
patname[k]=*(pnames+8*patnum+k);
printf("\t\t%s %d %d\n", &patname, x, y);
read(fh, &dummy, 4);
}
}
close(fh);
printf("EOF\n");
free(pnames);
exit(0);
}