home *** CD-ROM | disk | FTP | other *** search
/ WADS of WADS / WadsOfWads.1994.zip / OTHER / DOOMBSP / DOOMBSP.M < prev    next >
Text File  |  1994-04-06  |  2KB  |  87 lines

  1. // doombsp.c
  2. #import "doombsp.h"
  3.  
  4. id             wad_i;
  5. boolean        draw;
  6.  
  7. /*
  8. ==================
  9. =
  10. = main
  11. =
  12. ==================
  13. */
  14.  
  15. int main (int argc, char **argv)
  16. {
  17.     char        *inmapname, *scan, *scan2;
  18.     char        outmapname[1024];
  19.     char        basename[80];
  20.     
  21.     memset (outmapname,0,sizeof(outmapname));
  22.     memset (basename,0,sizeof(basename));
  23.     inmapname = NULL;
  24.     
  25.     if (argc == 4)
  26.     {
  27.         if (strcmp(argv[1], "-draw"))
  28.             Error ("doombsp [-draw] inmap outwadpath");
  29.         inmapname = argv[2];
  30.         strcpy (outmapname,argv[3]);
  31.         draw = true;
  32.         NXApp = [Application new];
  33.     }
  34.     else if (argc == 3)
  35.     {
  36.         inmapname = argv[1];
  37.         strcpy (outmapname,argv[2]);
  38.         draw = false;
  39.     }
  40.     else
  41.         Error ("doombsp [-draw] inmap outwadpath");
  42.         
  43.     strcat (outmapname,"/");
  44.     scan = inmapname+strlen(inmapname)-1;
  45.     while (*scan != '.' && scan !=inmapname)
  46.         scan--;
  47.     if (scan == inmapname)
  48.         strcpy (basename, inmapname);    // no extension
  49.     else
  50.     {
  51.         scan2 = scan;
  52.         while (*scan != '/' && scan !=inmapname)
  53.             scan--;
  54.         if (scan != inmapname)
  55.             scan++;
  56.         strncpy (basename, scan, scan2-scan);
  57.     }
  58.     
  59.     strcat (outmapname, basename);
  60.     strcat (outmapname,".wad");
  61.     
  62. printf ("output wadfile: %s\n", outmapname);
  63.  
  64. //
  65. // write a label for the map name at the start of the wadfile
  66. //
  67.     wad_i = [[Wadfile alloc] initNew: outmapname];
  68.     [wad_i addName:basename data:basename size:0];
  69.     
  70.     LoadDoomMap (inmapname);
  71.     DrawMap ();
  72.     BuildBSP ();
  73.     
  74. printf ("segment cuts: %i\n",cuts);
  75.  
  76.     SaveDoomMap ();
  77.     SaveBlocks ();
  78.     
  79.     [wad_i writeDirectory];
  80.     [wad_i close];
  81.     [wad_i free];
  82.     
  83. //getchar();
  84.  
  85.     return 0;
  86. }
  87.