home *** CD-ROM | disk | FTP | other *** search
/ Deathday Collection / dday.bin / edit / dmtex09b / detex.c next >
Text File  |  1994-07-21  |  2KB  |  86 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <dos.h>
  4. #include <io.h>
  5. #include <sys\types.h>
  6. #include <sys\stat.h>
  7. #include <malloc.h>
  8. #include <fcntl.h>
  9.  
  10. int    fh;
  11.  
  12. void error(char *errstr)
  13. {    printf(errstr);
  14.     exit(1);    }
  15.  
  16. main(argc,argv)
  17. int argc;
  18. char *argv[];
  19. {
  20.     char texname[10], patname[10];
  21.     char *pnames;
  22.     long numtexs, numpats, dummy, i;
  23.     int numpat, scuz, j, k;
  24.     
  25.     if (argc != 3)
  26.         error("Usage: detex <pnames> <textures>\n");
  27.  
  28.     texname[8]='\0';
  29.     patname[8]='\0';
  30.     
  31.     if (!(fh=open(argv[1], O_BINARY|O_RDONLY)))
  32.         error("Can't open <pnames>.\n");
  33.     read(fh, &numpats, 4);
  34.     if ((pnames=(char *)malloc(8*numpats))==NULL) {
  35.         close(fh);
  36.         error("Can't allocate space for pnames.\n");
  37.         }
  38.     read(fh, pnames, 8*numpats);
  39.     close(fh);
  40.  
  41.     if (!(fh=open(argv[2], O_BINARY|O_RDONLY)))
  42.         error("Can't open <textures>.\n");
  43.  
  44.     printf("PATCHES\n");
  45.     for (i=0; i<numpats; i++) {
  46.         for (k=0; k<8; k++)
  47.             patname[k]=*(pnames+8*i+k);
  48.         printf("%ld\t%8s\n", i, &patname);
  49.         }
  50.  
  51.     printf("TEXTURES\n");
  52.     read(fh, &numtexs, 4);
  53.     for (i=0; i<numtexs; i++)
  54.         read(fh, &dummy, 4);
  55.     for (i=0; i<numtexs; i++) {
  56.         for (k=0; k<8; k++)
  57.             read(fh, &texname[k], 1);
  58.         printf("%8s ", &texname);
  59.         for (j=0; j<6; j++) {
  60.             read(fh, &scuz, 2);
  61.             printf("%d ", scuz);
  62.             }
  63.         read(fh, &numpat, 2);
  64.         printf("%d\n", numpat);
  65.         for (j=0; j<numpat; j++) {
  66.             for (k=0; k<3; k++) {
  67.                 read(fh, &scuz, 2);
  68.                 printf("\t%d", scuz);
  69.                 }
  70.             for (k=0; k<8; k++)
  71.                 patname[k]=*(pnames+8*scuz+k);
  72.             printf("\t%8s", &patname);
  73.             for (k=0; k<2; k++) {
  74.                 read(fh, &scuz, 2);
  75.                 printf("\t%d", scuz);
  76.                 }
  77.             printf("\n");
  78.             }
  79.         }
  80.     close(fh);
  81.     
  82.     printf("EOF\n");
  83.     free(pnames);
  84.  
  85.     exit(0);
  86. }