/** * @brief Start Terror attack mission. * @note Terror attack mission -- Stage 2 */ void CP_TerrorMissionStart (mission_t *mission) { const date_t minMissionDelay = {2, 0}; const date_t missionDelay = {3, 0}; mission->stage = STAGE_TERROR_MISSION; mission->finalDate = Date_Add(ccs.date, Date_Random(minMissionDelay, missionDelay)); /* ufo becomes invisible on geoscape, but don't remove it from ufo global array (may reappear)*/ if (mission->ufo) CP_UFORemoveFromGeoscape(mission, false); /* mission appear on geoscape, player can go there */ CP_MissionAddToGeoscape(mission, false); }
/** * @brief Start ground mission. * @note Recon mission -- Stage 1 */ static void CP_ReconMissionGround (mission_t *mission) { const date_t minMissionDelay = {2, 0}; const date_t missionDelay = {3, 0}; mission->stage = STAGE_RECON_GROUND; mission->posAssigned = true; mission->finalDate = Date_Add(ccs.date, Date_Random(minMissionDelay, missionDelay)); /* ufo becomes invisible on geoscape, but don't remove it from ufo global array (may reappear)*/ if (mission->ufo) CP_UFORemoveFromGeoscape(mission, false); /* mission appear on geoscape, player can go there */ CP_MissionAddToGeoscape(mission, false); }
/** * @brief Start Subverting Mission. * @note Build Base mission -- Stage 2 */ static void CP_BuildBaseSubvertGovernment (mission_t* mission) { const date_t minMissionDelay = {3, 0}; const date_t missionDelay = {5, 0}; assert(mission->ufo); mission->stage = STAGE_SUBVERT_GOV; /* mission appear on geoscape, player can go there */ CP_MissionAddToGeoscape(mission, false); mission->finalDate = Date_Add(ccs.date, Date_Random(minMissionDelay, missionDelay)); /* ufo becomes invisible on geoscape, but don't remove it from ufo global array (may reappear)*/ CP_UFORemoveFromGeoscape(mission, false); }
/** * @brief Start Harvesting mission. * @note Harvesting mission -- Stage 2 */ static void CP_HarvestMissionStart (mission_t* mission) { const date_t minMissionDelay = {2, 0}; const date_t missionDelay = {3, 0}; mission->stage = STAGE_HARVEST; if (mission->ufo) { mission->finalDate = Date_Add(ccs.date, Date_Random(minMissionDelay, missionDelay)); /* ufo becomes invisible on geoscape, but don't remove it from ufo global array (may reappear)*/ CP_UFORemoveFromGeoscape(mission, false); } else { /* Go to next stage on next frame */ mission->finalDate = ccs.date; } /* mission appear on geoscape, player can go there */ CP_MissionAddToGeoscape(mission, false); }