Exemple #1
0
static int PSetIDR(int argc, char *argv[], int argt[], 
		   ARRAY *variables) {
  int idr, ndr, i;
  double *pdr;
  char *vg[MAXNARGS];
  int ig[MAXNARGS];
  
  if (argc < 1) return -1;
  if (argc > 2) return -1;

  if (argt[0] != NUMBER) return -1;
  if (argc == 2 && argt[1] != LIST && argt[1] != TUPLE) return -1;

  idr = atoi(argv[0]);
  ndr = DecodeArgs(argv[1], vg, ig, variables);
  if (ndr > 0) {
    pdr = (double *) malloc(sizeof(double)*ndr);
    for (i = 0; i < ndr; i++) {
      pdr[i] = atof(vg[i]);
      free(vg[i]);
    }
  } else {
    ndr = 0;
    pdr = NULL;
  }
  
  return SetIDR(idr, ndr, pdr);
}
Exemple #2
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;
}
Exemple #3
0
static int PPolarizationTable(int argc, char *argv[], int argt[], 
			      ARRAY *variables) {
  int i, n, k;
  char *ifn;
  char *vg[MAXNARGS];
  int ig[MAXNARGS];

  if (argc != 1 && argc != 2) return -1;
  if (argt[0] != STRING) return -1;

  ifn = NULL;
  n = 0;
  if (argc == 2) {
    if (argt[1] == STRING) {
      ifn = argv[1];
    } else if (argt[1] == LIST) {
      n = DecodeArgs(argv[1], vg, ig, variables);
    }
  }

  i = PolarizationTable(argv[0], ifn, n, vg);
  for (k = 0; k < n; k++) {
    free(vg[k]);
  }
  
  return i;
}