home *** CD-ROM | disk | FTP | other *** search
/ Phenomenon / Phenomenon.iso / quake / utils / bsp / qbfc / qbfc.c next >
Encoding:
C/C++ Source or Header  |  1996-07-23  |  1.2 KB  |  60 lines

  1. #include <stdio.h>
  2.  
  3. #define BSPVERSION 29
  4. #define OLDBSPVERSION 28
  5. #define HEADER_LUMPS 15
  6.  
  7. typedef struct
  8. {
  9.         int     fileofs, filelen;
  10. } lump_t;
  11.  
  12. typedef struct
  13. {
  14.         int     version;
  15.         lump_t  lumps[HEADER_LUMPS];
  16. } dheader_t;
  17.  
  18.  
  19. int main(int argc, char *argv[])
  20. {
  21.         FILE * file;
  22.         char *filename = NULL;
  23.     dheader_t header;
  24.  
  25.     printf("\n");
  26.     printf("Quake BSP Format Converter\n");
  27.     printf("Version 1.0\n");
  28.     printf("Copyright (C) 1996 Brent McLeod\n");
  29.     printf("\n");
  30.     
  31.     if(argv[1] == NULL)
  32.     {
  33.         printf("Usage: bspup <filename.bsp>\n");
  34.         return 0;
  35.     }
  36.  
  37.     filename = argv[1];
  38. //    file = fopen(filename, "rb");
  39.     if((file = fopen(filename, "rb")) == NULL)
  40.     {
  41.         printf("%s: File not found\n", filename);
  42.         return 0;
  43.     }
  44.  
  45.     fread(&header, sizeof(dheader_t), 1, file);
  46.     fclose(file);
  47.     if(header.version != OLDBSPVERSION)
  48.     {
  49.         printf("This does not appear to be a type %i BSP file.\n", OLDBSPVERSION);
  50.         return 0;
  51.     }
  52.     header.version = BSPVERSION;
  53.     
  54.     file = fopen(filename, "r+b");
  55.     fwrite(&header, sizeof(dheader_t), 1, file);    
  56.     fclose(file);
  57.     printf("%s converted from BSP Version 28 to 29\n", filename);
  58.     return 1;
  59. }
  60.