Пример #1
0
CritterB::CritterB(btDynamicsWorld* btWorld, long unsigned int id, const btVector3& startPos, unsigned char* retinap)
{
	loadError = false;

	// first things first
	btDynWorld						= btWorld;
	retina							= retinap;
	critterID						= id;

	initConst();

	energyLevel						= settings->getCVar("critter_startenergy");

// 	lifetime						= settings->critter_maxlifetime;

	genotype = genotypes->newg( settings );

	// BODY
// 	genotype->bodyArch->buildArch();
	body.wireArch( genotype->bodyArch, (void*)this, btDynWorld, startPos );

	// LINK
	registerBrainInputOutputs();
	
	// BRAIN
// 	genotype->brainzArch->buildArch();
	brain.wireArch( genotype->brainzArch );
}
Пример #2
0
MPG::MPG(const char *src){
  
  initConst();
    
  // get file size
  struct stat sb;
  stat(src, &sb);
  buf_size = sb.st_size;

  // malloc buffers
  buf = new BYTE[buf_size];
  buf_v = new BYTE[buf_size];
  buf_a = new BYTE[buf_size];  
  buf_end = buf + (buf_size-1);
  buf_v_size = 0;
  buf_a_size = 0;
  
  // file open
  if ((f_in = fopen(src, "rb")) == NULL) {
    std::cout << "input file open error" << std::endl;
    std::exit(1);
  }

  // read src to buffer
  while (! feof(f_in)) {
    fread(buf, sizeof(BYTE), buf_size, f_in);
  }
  std::cout << "read" << std::endl;

  searchPacks();
  std::cout << "searcePacks ed" << std::endl;
  
  searchPackets();
  std::cout << "searcePackets ed" << std::endl;

  std::cout << "getting stream..." << std::endl;
  getStream(buf_v, PCT_VIDEO);
  getStream(buf_a, PCT_AUDIO);

  // search sequences

  
  // search frames
  
  
}
Пример #3
0
CritterB::CritterB(CritterB& other, long unsigned int id, const btVector3& startPos, bool brainmutant, bool bodymutant)
{
	loadError = false;

	// first things first
	btDynWorld					= other.btDynWorld;
	retina						= other.retina;
	critterID					= id;

	initConst();

// 	lifetime					= other.lifetime;

	genotype = genotypes->copy(other.genotype, brainmutant, RandGen::Instance()->get(1, settings->getCVar("brain_maxmutations")), bodymutant, RandGen::Instance()->get(1, settings->getCVar("body_maxmutations")));

	body.wireArch( genotype->bodyArch, (void*)this, btDynWorld, startPos );

	// LINK
	registerBrainInputOutputs();

	brain.wireArch( genotype->brainzArch );
}
Пример #4
0
CritterB::CritterB(string &critterstring, btDynamicsWorld* btWorld, const btVector3& startPos, unsigned char* retinap)
{
	loadError = false;
	// critterID is arranged in world, definite critter insertion is not determined yet

	// first things first
	btDynWorld		= btWorld;
	retina			= retinap;

	initConst();

	energyLevel		= settings->getCVar("critter_startenergy");

	genotype = genotypes->loadGenotype(critterstring);

	if ( genotype->bodyArch->retinasize != settings->getCVar("critter_retinasize"))
	{
		stringstream buf;
		buf << "ERROR: critter retinasize (" << genotype->bodyArch->retinasize << ") doesn't fit world retinasize (" << settings->getCVar("critter_retinasize") << ")";
		Logbuffer::Instance()->add(buf);

		cerr << "!ERROR: critter retinasize (" << genotype->bodyArch->retinasize << ") doesn't fit world retinasize (" << settings->getCVar("critter_retinasize") << ")" << endl;
		loadError = true;
	}
	else
	{
		// BODY
		body.wireArch( genotype->bodyArch, (void*)this, btDynWorld, startPos );

		// LINK
		registerBrainInputOutputs();

		// BRAIN
		brain.wireArch( genotype->brainzArch );
	}
}