home *** CD-ROM | disk | FTP | other *** search
/ Phenomenon / Phenomenon.iso / quake / utils / map / edq050 / code / bsp2pak.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-05  |  1.4 KB  |  62 lines

  1. #include <stdio.h>
  2.  
  3. int main() //bsp2pak test
  4. {
  5.    char file1[101], file2[50];
  6.    char finalname[56];
  7.    FILE *fin, *fout;
  8.    long filesize, t;
  9.    int def;
  10.    for (t = 0; t < 101; t++)
  11.      file1[t] = 0;
  12.    printf("bsp2pak for EdQuake [.map beta test file]\n");
  13.    printf("by Scott Mitting (smitting@netusa1.net)\n");
  14.    printf("free for public use. enjoy Quake\n");
  15.    printf("input file: ");
  16.    gets(file1);
  17.    printf("output file: ");
  18.    gets(file2);
  19.    printf("%s->%s\n",file1,file2);
  20.    fin = fopen(file1, "rb");
  21.    fout = fopen(file2, "wb");
  22.    if (!fin) return 0;
  23.    if (!fout) return 0;
  24.    //get filesize
  25.    fseek(fin,0,2);
  26.    filesize = ftell(fin);
  27.    fseek(fin,0,0);
  28.    //copy data
  29.    fwrite("PACK",4,1,fout);
  30.    filesize+=12;
  31.    fwrite(&filesize,4,1,fout);
  32.    filesize-=12;
  33.    t = 64;
  34.    fwrite(&t,4,1,fout);
  35.    for (t = 0; t <filesize; t++)
  36.     fputc(fgetc(fin),fout);
  37.    //create entry
  38.    def = 50;
  39.    while (def > 0)
  40.    {
  41.       if (file1[def] == '\\') def=-def;
  42.      else def--;
  43.    }
  44.    def=-def;
  45.    def++;
  46.    finalname[0] = 'm';
  47.    finalname[1] = 'a';
  48.    finalname[2] = 'p';
  49.    finalname[3] = 's';
  50.    finalname[4] = '/';
  51.    for (t = 0; t < 51; t++)
  52.      finalname[t+5] = file1[t + def -1];
  53.    fwrite(finalname,56,1,fout);
  54.    t = 12;
  55.    fwrite(&t,4,1,fout);
  56.    fwrite(&filesize,4,1,fout);
  57.    printf("ok\n");
  58.    fclose(fin);
  59.    fclose(fout);
  60.    return 0;
  61. }
  62.