int main (int argc, char **argv) { double start, stop; dstring_t *portalfile = dstring_new (); QFile *f; start = Sys_DoubleTime (); this_program = argv[0]; DecodeArgs (argc, argv); if (!options.bspfile) { usage (1); Sys_Error ("%s: no bsp file specified.", this_program); } QFS_SetExtension (options.bspfile, ".bsp"); f = Qopen (options.bspfile->str, "rb"); if (!f) Sys_Error ("couldn't open %s for reading.", options.bspfile->str); bsp = LoadBSPFile (f, Qfilesize (f)); Qclose (f); visdata = dstring_new (); dstring_copystr (portalfile, options.bspfile->str); QFS_SetExtension (portalfile, ".prt"); LoadPortals (portalfile->str); uncompressed = calloc (bitbytes_l, portalclusters); CalcVis (); if (options.verbosity >= 0) printf ("c_chains: %i%s\n", c_chains, options.threads > 1 ? " (not reliable)" :""); BSP_AddVisibility (bsp, (byte *) visdata->str, visdata->size); if (options.verbosity >= 0) printf ("visdatasize:%ld compressed from %ld\n", (long) bsp->visdatasize, (long) originalvismapsize); CalcAmbientSounds (); f = Qopen (options.bspfile->str, "wb"); if (!f) Sys_Error ("couldn't open %s for writing.", options.bspfile->str); WriteBSPFile (bsp, f); Qclose (f); stop = Sys_DoubleTime (); if (options.verbosity >= 0) printf ("%5.1f seconds elapsed\n", stop - start); return 0; }
/* =========== main =========== */ int main (int argc, char **argv) { char portalfile[1024]; char source[1024]; int i; double start, end; printf ("vis.exe v1.3 (%s)\n", __DATE__); printf ("---- vis ----\n"); verbose = false; for (i=1 ; i<argc ; i++) { if (!strcmp(argv[i],"-threads")) { numthreads = atoi (argv[i+1]); i++; } else if (!strcmp(argv[i], "-fast")) { printf ("fastvis = true\n"); fastvis = true; } else if (!strcmp(argv[i], "-v")) { printf ("verbose = true\n"); verbose = true; } else if (argv[i][0] == '-') Error ("Unknown option \"%s\"", argv[i]); else break; } if (i != argc - 1) Error ("usage: vis [-threads #] [-level 0-4] [-fast] [-v] bspfile"); start = I_FloatTime (); ThreadSetDefault (); printf ("%i thread(s)\n", numthreads); strcpy (source, argv[i]); StripExtension (source); DefaultExtension (source, ".bsp"); LoadBSPFile (source); strcpy (portalfile, argv[i]); StripExtension (portalfile); strcat (portalfile, ".prt"); LoadPortals (portalfile); uncompressed = malloc(bitbytes*portalleafs); memset (uncompressed, 0, bitbytes*portalleafs); CalcVis (); qprintf ("c_chains: %i\n",c_chains); visdatasize = vismap_p - dvisdata; printf ("visdatasize:%i compressed from %i\n", visdatasize, originalvismapsize); CalcAmbientSounds (); WriteBSPFile (source); // unlink (portalfile); end = I_FloatTime (); printf ("%5.1f seconds elapsed\n", end-start); free(uncompressed); return 0; }
/* =========== Vis_Main =========== */ int Vis_Main( int argc, char **argv ) { int i; double start, end; printf ("---- vis ----\n"); fastvis = false; verbose = false; rvis = true; noambientslime = true; noreuse = false; farplane = 0; if (ismcbsp) noambient = true; for (i=1 ; i<argc ; i++) { if (!strcmp(argv[i], "-norvis")) { rvis = false; printf ("rvis optimization disabled\n"); } else if (!strcmp(argv[i], "-fast")) { printf ("fastvis = true\n"); fastvis = true; } else if (!strcmp(argv[i], "-level")) { testlevel = atoi(argv[i+1]); printf ("testlevel = %i\n", testlevel); i++; } else if (!strcmp(argv[i], "-v")) { printf ("verbose = true\n"); verbose = true; } else if (!strcmp(argv[i], "-noreuse")) { printf ("vis rows reusage disabled\n"); noreuse = true; } else if (!strcmp(argv[i], "-noambient")) { noambient = true; printf ("all ambient sounds disabled\n"); } else if (!strcmp(argv[i], "-noambientwater")) { noambientwater = true; printf ("ambient water sounds disabled\n"); } else if (!strcmp(argv[i], "-ambientslime")) { noambientslime = false; printf ("ambient slime sounds enabled\n"); } else if (!strcmp(argv[i], "-noambientlava")) { noambientlava = true; printf ("ambient lava sounds disabled\n"); } else if (!strcmp(argv[i], "-noambientsky")) { noambientsky = true; printf ("ambient sky sounds disabled\n"); } else if (!strcmp(argv[i], "-farplane")) { farplane = atoi (argv[i+1]); printf ("farplane = %f\n", farplane); i++; } else if (argv[i][0] == '-') Error ("Unknown option \"%s\"", argv[i]); else break; } if (i != argc - 1) { Error ("%s", "usage: hmap2 -vis [options] bspfile\n" "Compiles visibility data in a .bsp, needs a .prt file\n" "\n" "What the options do:\n" "-level 0-4 quality, default 4\n" "-fast fast but bad quality vis\n" "-v verbose\n" "-norvis disable rvis optimization, 0.001% better quality and 30% slower\n" "-ambientslime do not convert slime channel to water (requires engine support)\n" "-noambient disable ambient sounds (water bubbling, wind, etc)\n" "-noambientwater disable ambient water sounds (water)\n" "-noambientslime disable ambient slime sounds (water, or -ambientslime)\n" "-noambientlava disable ambient lava sounds (unused by quake)\n" "-noambientsky disable ambient sky sounds (wind)\n" "-noreuse disable merging of identical vis data (less compression)\n" "-farplane limit visible distance (warning: not a good idea without fog)\n" ); } // init memory Q_InitMem (); start = I_DoubleTime (); LoadBSPFile (filename_bsp); LoadPortals (filename_prt); uncompressed = qmalloc(bitlongs*portalleafs*sizeof(long)); memset (uncompressed, 0, bitlongs*portalleafs*sizeof(long)); // CalcPassages (); CalcVis (); printf ("row size: %i\n",bitbytes); printf ("c_reused: %i\n",c_reused); printf ("c_chains: %i\n",c_chains); visdatasize = vismap_p - dvisdata; printf ("reused bytes: %i\n",c_reused*bitbytes); printf ("visdatasize:%i compressed from %i\n", visdatasize, originalvismapsize); if (!noambient) CalcAmbientSounds (); WriteBSPFile (filename_bsp, false); // unlink (portalfile); end = I_DoubleTime (); printf ("%5.2f seconds elapsed\n\n", end-start); // print memory stats Q_PrintMem (); // free allocated memory Q_ShutdownMem (); return 0; }
/* =========== main =========== */ int main(int argc, char **argv) { bspdata_t bspdata; bsp2_t *const bsp = &bspdata.data.bsp2; int32_t loadversion; int i; init_log("vis.log"); logprint("---- vis / TyrUtils " stringify(TYRUTILS_VERSION) " ----\n"); LowerProcessPriority(); numthreads = GetDefaultThreads(); for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-threads")) { numthreads = atoi(argv[i + 1]); i++; } else if (!strcmp(argv[i], "-fast")) { logprint("fastvis = true\n"); fastvis = true; } else if (!strcmp(argv[i], "-level")) { testlevel = atoi(argv[i + 1]); i++; } else if (!strcmp(argv[i], "-v")) { logprint("verbose = true\n"); verbose = 1; } else if (!strcmp(argv[i], "-vv")) { logprint("verbose = extra\n"); verbose = 2; } else if (!strcmp(argv[i], "-noambientsky")) { logprint("ambient sky sounds disabled\n"); ambientsky = false; } else if (!strcmp(argv[i], "-noambientwater")) { logprint("ambient water sounds disabled\n"); ambientwater = false; } else if (!strcmp(argv[i], "-noambientslime")) { logprint("ambient slime sounds disabled\n"); ambientslime = false; } else if (!strcmp(argv[i], "-noambientlava")) { logprint("ambient lava sounds disabled\n"); ambientlava = false; } else if (!strcmp(argv[i], "-noambient")) { logprint("ambient sound calculation disabled\n"); ambientsky = false; ambientwater = false; ambientslime = false; ambientlava = false; } else if (argv[i][0] == '-') Error("Unknown option \"%s\"", argv[i]); else break; } if (i != argc - 1) { printf("usage: vis [-threads #] [-level 0-4] [-fast] [-v|-vv] " "[-credits] bspfile\n"); exit(1); } logprint("running with %d threads\n", numthreads); logprint("testlevel = %i\n", testlevel); stateinterval = 300; /* 5 minutes */ starttime = statetime = I_FloatTime(); strcpy(sourcefile, argv[i]); StripExtension(sourcefile); DefaultExtension(sourcefile, ".bsp"); LoadBSPFile(sourcefile, &bspdata); loadversion = bspdata.version; if (loadversion != BSP2VERSION) ConvertBSPFormat(BSP2VERSION, &bspdata); strcpy(portalfile, argv[i]); StripExtension(portalfile); strcat(portalfile, ".prt"); LoadPortals(portalfile, bsp); strcpy(statefile, sourcefile); StripExtension(statefile); DefaultExtension(statefile, ".vis"); strcpy(statetmpfile, sourcefile); StripExtension(statetmpfile); DefaultExtension(statetmpfile, ".vi0"); uncompressed = malloc(leafbytes_real * portalleafs_real); memset(uncompressed, 0, leafbytes_real * portalleafs_real); // CalcPassages (); CalcVis(bsp); logprint("c_noclip: %i\n", c_noclip); logprint("c_chains: %lu\n", c_chains); bsp->visdatasize = vismap_p - bsp->dvisdata; logprint("visdatasize:%i compressed from %i\n", bsp->visdatasize, originalvismapsize); CalcAmbientSounds(bsp); /* Convert data format back if necessary */ if (loadversion != BSP2VERSION) ConvertBSPFormat(loadversion, &bspdata); WriteBSPFile(sourcefile, &bspdata); // unlink (portalfile); endtime = I_FloatTime(); logprint("%5.1f seconds elapsed\n", endtime - starttime); close_log(); return 0; }