StarSystem::StarSystem( const char *filename, const Vector &centr, const float timeofyear )
{
    no_collision_time = 0;               //(int)(1+2.000/SIMULATION_ATOM);
    collidemap[Unit::UNIT_ONLY] = new CollideMap( Unit::UNIT_ONLY );
    collidemap[Unit::UNIT_BOLT] = new CollideMap( Unit::UNIT_BOLT );

    this->current_sim_location  = 0;
    ///adds to jumping table;
    name  = NULL;
    zone  = 0;
    _Universe->pushActiveStarSystem( this );
    bolts = new bolt_draw;
    collidetable   = new CollideTable( this );
    current_stage  = MISSION_SIMULATION;
    this->filename = filename;
    LoadXML( filename, centr, timeofyear );
    if (!name)
        name = strdup( filename );
    sigIter = drawList.createIterator();
    AddStarsystemToUniverse( filename );

    time = 0;
    _Universe->popActiveStarSystem();
}
/*
GameStarSystem::GameStarSystem(): StarSystem()
{
  _Universe->pushActiveStarSystem (this);
  GFXCreateLightContext (lightcontext);
  bolts = new bolt_draw;
  collidetable = new CollideTable(this);
}
*/
GameStarSystem::GameStarSystem(const char * filename, const Vector & centr,const float timeofyear)
{

	no_collision_time=0;		 //(int)(1+2.000/SIMULATION_ATOM);
	///adds to jumping table;
	name = NULL;
	_Universe->pushActiveStarSystem (this);
	GFXCreateLightContext (lightcontext);
	bolts = new bolt_draw;
	collidetable = new CollideTable(this);
	//  cout << "origin: " << centr.i << " " << centr.j << " " << centr.k << " " << planetname << endl;

	current_stage=MISSION_SIMULATION;

	systemInputDFA = new InputDFA (this);

	LoadXML(filename,centr,timeofyear);
	if (!name)
		name =strdup (filename);
	AddStarsystemToUniverse(filename);
	//  primaries[0]->SetPosition(0,0,0);

	//iter = primaries->createIterator();
	//iter->advance();
	//earth=iter->current();
	//delete iter;

	// Calculate movement arcs; set behavior of primaries to follow these arcs
	//Iterator *primary_iterator = primaries->createIterator();
	//primaries->SetPosition(0,0,5);
	//foo = new SphereMesh(1,5,5,"moon.image");
	//cam[1].SetProjectionType(Camera::PARALLEL);
	//cam[1].SetZoom(1);
	//cam[1].SetPosition(Vector(0,0,0));
	//cam[1].LookAt(Vector(0,0,0), Vector(0,0,1));
	//cam[1].SetPosition(Vector(0,5,-2.5));
	//cam[1].SetSubwindow(0,0,1,1);

	//cam[2].SetProjectionType(Camera::PARALLEL);
	//cam[2].SetZoom(10.0);
	//cam[2].SetPosition(Vector(5,0,0));
	//cam[2].LookAt(Vector(0,0,0), Vector(0,-1,0));
	//cam[2].SetPosition(Vector(5,0,-2.5));
	//cam[2].SetSubwindow(0.10,0,0.10,0.10);
	UpdateTime();
	time = 0;

	Atmosphere::Parameters params;

	params.radius = 40000;

	params.low_color[0] = GFXColor(0,0.5,0.0);

	params.low_color[1] = GFXColor(0,1.0,0.0);

	params.low_ambient_color[0] = GFXColor(0.0/255.0,0.0/255.0,0.0/255.0);

	params.low_ambient_color[1] = GFXColor(0.0/255.0,0.0/255.0,0.0/255.0);

	params.high_color[0] = GFXColor(0.5,0.0,0.0);

	params.high_color[1] = GFXColor(1.0,0.0,0.0);

	params.high_ambient_color[0] = GFXColor(0,0,0);

	params.high_ambient_color[1] = GFXColor(0,0,0);

	/*

	params.low_color[0] = GFXColor(241.0/255.0,123.0/255.0,67.0/255.0);

	params.low_color[1] = GFXColor(253.0/255.0,65.0/255.0,55.0/255.0);

	params.low_ambient_color[0] = GFXColor(0.0/255.0,0.0/255.0,0.0/255.0);

	params.low_ambient_color[1] = GFXColor(0.0/255.0,0.0/255.0,0.0/255.0);

	params.high_color[0] = GFXColor(60.0/255.0,102.0/255.0,249.0/255.0);

	params.high_color[1] = GFXColor(57.0/255.0,188.0/255.0,251.0/255.0);

	params.high_ambient_color[0] = GFXColor(0,0,0);

	params.high_ambient_color[1] = GFXColor(0,0,0);

	*/

	params.scattering = 5;

	_Universe->popActiveStarSystem ();

}