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())); }
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; }