void MissionManager::checkSurveyMission(PlayerObject* player,CurrentResource* resource,ResourceLocation highestDist) { Datapad* datapad = dynamic_cast<Datapad*>(player->getEquipManager()->getEquippedObject(CreatureEquipSlot_Datapad)); if(datapad->hasMission()) //player has a mission { MissionList::iterator it = datapad->getMissions()->begin(); while(it != datapad->getMissions()->end()) { MissionObject* mission = dynamic_cast<MissionObject*>(*it); if(mission->getMissionType() == survey) { if(mission->getTargetResource() == resource->getType()) { if(mission->getDifficulty() <= (highestDist.ratio*100)) { if(glm::distance(mission->getIssuingTerminal()->mPosition, highestDist.position) > 1024) { gLogger->logMsg("PE > 500: ready to apply new BF/wound dmg"); missionComplete(player,mission); it = datapad->removeMission(it); delete mission; return; } else { int8 sm[500]; sprintf(sm,"That resource pocket is too close (%"PRIu32" meters) to the mission giver to be useful to them. Go find one at least %"PRIu32" meters away to complete your survey mission. ", static_cast<uint32>(glm::distance(mission->getIssuingTerminal()->mPosition, highestDist.position)), (1024 - (int)glm::distance(mission->getIssuingTerminal()->mPosition, highestDist.position))); string s = BString(sm); s.convert(BSTRType_Unicode16); gMessageLib->sendSystemMessage(player,s); } } } } ++it; } } }