Esempio n. 1
0
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;
}
Esempio n. 2
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;
}
Esempio n. 3
0
File: vis.c Progetto: qbism/super8
/*
===========
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;
}
Esempio n. 4
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;
}