Esempio n. 1
0
void Resource_ListUnfreed()
{
	for (ResourceTypeMap::iterator it = g_resources.begin(); it != g_resources.end(); ++it)
		for (ResourceMap::iterator it2 = it->second->begin(); it2 != it->second->end(); ++it2)
			Log::Warn(string_format("Unfreed %s resource %s on exit", it2->second->type, it2->second->name.c_str()));
}
Esempio n. 2
0
MissionObject* MissionManager::generateSurveyMission(MissionObject* mission)
{

	mission->setMissionType(survey);

	//Randomly choose a survey mission
	int mission_num = (gRandom->getRand() % 50)+1;
	mission->setNum(mission_num);

	//Creator
	mission->setCreator(creators[gRandom->getRand() % 9]);

	//Title
	sprintf(mt,"m%dt",mission_num);
	mission->setTitleFile("mission/mission_npc_survey_neutral_easy");
	mission->setTitle(mt);

	//Details
	sprintf(md,"m%do",mission_num);
	mission->setDetailFile("mission/mission_npc_survey_neutral_easy");
	mission->setDetail(md);

	bool found = false;

	ResourceTypeMap*	rtMap = gResourceManager->getResourceTypeMap();
	ResourceTypeMap::iterator it = rtMap->begin();

	uint32 cntLoop = 0;
	while(!found && !rtMap->empty())//?????
	{
		cntLoop ++;

		++it;
		if(it == rtMap->end())
			it = rtMap->begin();

		if(!strcmp((*it->second).getResourceType().getRawData(),"mineral_resource"))/* ||
		   !strcmp((*(*it).second).getResourceType().getRawData(),"energy_resource")) */
		{
			uint32 roll		= (gRandom->getRand() / (RAND_MAX  + 1ul) * (9 - 1) + 1);

			if((roll == 5)||(cntLoop > rtMap->size()))
			{
				mission->setTarget((*it->second).getName().getRawData());
				mission->setTargetModel((*it->second).getContainerModel().getCrc());
				mission->setTargetResource(((*it).second));
				found = true;
				break;
			}
		}

	}

	//efficiency - A range from 30 - 70 is the best I can do without
	//knowning the min and max concentration of the given resource.
	//The CurrentResouce class needs to be modified to provide these values.
	mission->setDifficulty((gRandom->getRand() % 41) + 30); //value from 30 - 70

	//Reward
	mission->setReward(mission->getDifficulty() * ((gRandom->getRand() % 14) + 15)); //Difficulty * rand: 15-28

	Location destination;
	destination.Coordinates = mission->getOwner()->mPosition;
	destination.CellID = 0;
	destination.PlanetCRC = BString(gWorldManager->getPlanetNameThis()).getCrc();
	mission->setStart(destination);


return mission;
}