Ejemplo n.º 1
0
void NewUnit(int selectedunit) {
  struct UnitNode *unit;
  ULONG id, modeselected;
  struct ModeNode *mode;

  unit = (struct UnitNode *) GetNode(selectedunit, UnitList);

  state.UnitSelected     = selectedunit;

  id   = unit->prefs.ahiup_AudioMode;

  FreeVec(Modes);
  FreeList(ModeList);
  ModeList = GetModes( &unit->prefs);
  Modes = List2Array((struct List *) ModeList);

  modeselected = 0;
  mode = (struct ModeNode *) ModeList->lh_Head;
  while(mode->node.ln_Succ) {
    if(id == mode->ID)
      break;
    modeselected++;
    mode = (struct ModeNode *) mode->node.ln_Succ;
  }

  if(mode->node.ln_Succ == NULL) {
    modeselected = ~0;
  }
  
  NewMode(modeselected);
}
Ejemplo n.º 2
0
static Node *create_city (int N, list *gObj_list) {

	size_t gObj_n;
	GObject **gObj_arr;
	GObject *gObj_sel;
	hash *coords;
	struct coord2d * coord;
	struct coord2d coord_center;

	size_t maxX = 200;
	size_t maxY = 200;
	float bbsize = 5.0f;

	trfm3D *placement;
	Node *root, *auxNode;

	gObj_n = ElementsInList(gObj_list);
	gObj_arr = malloc(sizeof(*gObj_arr) * gObj_n);
	List2Array(gObj_list, (void **) gObj_arr);

	// elements have occupy ~ (5x5) units

	// generate coords (without repetition)
	coords = gen_coords(maxX, maxY, N);

	// Create Nodes
	coord_center.x = (int)(floor((float) maxX / 2.0f));
	coord_center.y = (int)(floor((float) maxY / 2.0f));
	placement = CreateTrfm3D();
	root = CreateNode();
	SetTrfmNode(root, placement);
	for(coord = StartLoopHash(coords); coord; coord = GetNextHash(coords)) {
		placement = CreateTrfm3D();
		SetTransTrfm3D(placement,
					   (coord->x - coord_center.x) * bbsize,
					   0,
					   (coord_center.y - coord->y) * bbsize);
		// get one gObj at random
		gObj_sel = gObj_arr[ rand() % gObj_n];
		auxNode = CreateNode();
		SetTrfmNode(auxNode, placement);
		SetGobjNode(auxNode, gObj_sel);
		AttachNode(root, auxNode);
	}

	// Destroy coord hash
	for(coord = StartLoopHash(coords); coord; coord = GetNextHash(coords))
		free(coord);
	DestroyHash(&coords);
	free(gObj_arr);
	return root;
}
Ejemplo n.º 3
0
void NewSettings(char *name) {
  FreeVec(Units);
  FreeList(UnitList);

  globalprefs.ahigp_DebugLevel       = AHI_DEBUG_NONE;
  globalprefs.ahigp_DisableSurround  = FALSE;
  globalprefs.ahigp_DisableEcho      = FALSE;
  globalprefs.ahigp_FastEcho         = FALSE;
  globalprefs.ahigp_MaxCPU           = (90 << 16) / 100;
  globalprefs.ahigp_ClipMasterVolume = FALSE;
  globalprefs.ahigp_AntiClickTime    = 0;

  UnitList = GetUnits(name);
  Units = List2Array((struct List *) UnitList);

  NewUnit(0);
}