UFO: Alien Invasion
|
Campaign missions headers. More...
#include "cp_campaign.h"
Go to the source code of this file.
Data Structures | |
struct | missionResults_s |
Structure with mission info needed to create results summary at menu won. More... | |
struct | mission_s |
mission definition More... | |
union | mission_s::missionData_t |
Macros | |
#define | MIS_Foreach(var) LIST_Foreach(ccs.missions, mission_t, var) |
iterates through missions More... | |
Typedefs | |
typedef enum missionStage_s | missionStage_t |
typedef struct missionResults_s | missionResults_t |
Structure with mission info needed to create results summary at menu won. More... | |
typedef struct mission_s | mission_t |
mission definition More... | |
Functions | |
const char * | MIS_GetName (const mission_t *mission) |
Returns a short translated name for a mission. More... | |
void | BATTLE_SetVars (const battleParam_t *battleParameters) |
Set some needed cvars from a battle definition. More... | |
void | CP_CreateBattleParameters (mission_t *mission, battleParam_t *param, const aircraft_t *aircraft) |
Create parameters needed for battle. This is the data that is used for starting the tactical part of the mission. More... | |
void | BATTLE_Start (mission_t *mission, const battleParam_t *battleParameters) |
Select the mission type and start the map from mission definition. More... | |
mission_t * | CP_GetMissionByIDSilent (const char *missionId) |
Get a mission in ccs.missions by Id without error messages. More... | |
mission_t * | CP_GetMissionByID (const char *missionId) |
Get a mission in ccs.missions by Id. More... | |
int | MIS_GetIdx (const mission_t *mis) |
Find idx corresponding to mission. More... | |
mission_t * | MIS_GetByIdx (int id) |
Find mission corresponding to idx. More... | |
mission_t * | CP_CreateNewMission (interestCategory_t category, bool beginNow) |
Create a new mission of given category. More... | |
void | CP_UFOProceedMission (const struct campaign_s *campaign, struct aircraft_s *ufocraft) |
void | CP_MissionRemove (mission_t *mission) |
Removes a mission from mission global array. More... | |
bool | CP_MissionBegin (mission_t *mission) |
mission begins: UFO arrive on earth. More... | |
bool | CP_CheckNewMissionDetectedOnGeoscape (void) |
Check if mission has been detected by radar. More... | |
bool | CP_CheckMissionLimitedInTime (const mission_t *mission) |
Check if mission should end because of limited time. More... | |
void | CP_MissionDisableTimeLimit (mission_t *mission) |
Disable time limit for given mission. More... | |
void | CP_MissionNotifyBaseDestroyed (const base_t *base) |
Notify that a base has been removed. More... | |
void | CP_MissionNotifyInstallationDestroyed (const installation_t *installation) |
Notify missions that an installation has been destroyed. More... | |
const char * | MIS_GetModel (const mission_t *mission) |
Get mission model that should be shown on the geoscape. More... | |
void | CP_MissionRemoveFromGeoscape (mission_t *mission) |
Removes a mission from geoscape: make it non visible and call notify functions. More... | |
void | CP_MissionAddToGeoscape (mission_t *mission, bool force) |
Add a mission to geoscape: make it visible and stop time. More... | |
void | CP_UFORemoveFromGeoscape (mission_t *mission, bool destroyed) |
Removes (temporarily or permanently) a UFO from geoscape: make it land and call notify functions. More... | |
void | CP_SpawnCrashSiteMission (aircraft_t *ufo) |
Spawn a new crash site after a UFO has been destroyed. More... | |
void | CP_SpawnRescueMission (aircraft_t *aircraft, aircraft_t *ufo) |
Spawn a new rescue mission for a crashed (phalanx) aircraft. More... | |
ufoType_t | CP_MissionChooseUFO (const mission_t *mission) |
Choose UFO type for a given mission category. More... | |
void | CP_MissionStageEnd (const campaign_t *campaign, mission_t *mission) |
Determine what action should be performed when a mission stage ends. More... | |
void | CP_InitializeSpawningDelay (void) |
Initialize spawning delay. More... | |
void | CP_SpawnNewMissions (void) |
Spawn new missions. More... | |
void | CP_MissionIsOver (mission_t *mission) |
Mission is finished because Phalanx team won it. More... | |
void | CP_MissionIsOverByUFO (aircraft_t *ufocraft) |
Mission is finished because Phalanx team ended it. More... | |
void | CP_MissionEnd (const campaign_t *campaign, mission_t *mission, const battleParam_t *battleParameters, bool won) |
Closing actions after fighting a battle. More... | |
void | CP_MissionEndActions (mission_t *mission, aircraft_t *aircraft, bool won) |
Actions to be done after mission finished. More... | |
bool | CP_ChooseMap (mission_t *mission, const vec2_t pos) |
Choose a map for given mission. More... | |
bool | CP_CheckNextStageDestination (const struct campaign_s *campaign, struct aircraft_s *ufo) |
int | CP_CountMissionOnGeoscape (void) |
Count the number of mission active and displayed on geoscape. More... | |
void | CP_UpdateMissionVisibleOnGeoscape (void) |
Update all mission visible on geoscape (in base radar range). More... | |
void | MIS_InitStartup (void) |
Init actions for missions-subsystem. More... | |
void | MIS_Shutdown (void) |
Closing actions for missions-subsystem. More... | |
Variables | |
const int | MAX_POS_LOOP |
Campaign missions headers.
Definition in file cp_missions.h.
#define MIS_Foreach | ( | var | ) | LIST_Foreach(ccs.missions, mission_t, var) |
iterates through missions
Definition at line 118 of file cp_missions.h.
Referenced by AIR_GeoSelectAircraft_f(), CP_CheckBaseAttacks(), CP_CheckMissionEnd(), CP_CheckNewMissionDetectedOnGeoscape(), CP_CountMissionOnGeoscape(), CP_GetCarrierMission(), CP_GetMissionByIDSilent(), CP_MissionNotifyBaseDestroyed(), CP_MissionNotifyInstallationDestroyed(), CP_SpreadXVI(), CP_TerrorInCity(), CP_UFORemoveFromGeoscape(), CP_UpdateMissionVisibleOnGeoscape(), GEO_Click(), GEO_DrawMarkers(), GEO_GetGeoscapeAngle(), GEO_UpdateGeoscapeDock(), MIS_GetByIdx(), MIS_SaveXML(), and NAT_UpdateHappinessForAllNations().
mission definition
typedef struct missionResults_s missionResults_t |
Structure with mission info needed to create results summary at menu won.
typedef enum missionStage_s missionStage_t |
possible stage for campaign missions (i.e. possible actions for UFO)
enum missionStage_s |
possible stage for campaign missions (i.e. possible actions for UFO)
Definition at line 33 of file cp_missions.h.
enum missionState_t |
Enumerator | |
---|---|
WON | |
DRAW | |
LOST |
Definition at line 55 of file cp_missions.h.
void BATTLE_SetVars | ( | const battleParam_t * | battleParameters | ) |
Set some needed cvars from a battle definition.
[in] | battleParameters | battle definition pointer with the needed data to set the cvars to |
Definition at line 78 of file cp_missions.cpp.
References alienTeamGroup_s::alienChrTemplates, csi_s::alienChrTemplates, battleParam_s::alienEquipment, battleParam_s::aliens, battleParam_s::alienTeamGroup, alienTeamGroup_s::alienTeams, csi_s::alienTeams, cgi, battleParam_s::civilians, battleParam_s::civTeam, cgame_import_s::csi, cgame_import_s::Cvar_Set(), i, MAX_TEAMS_PER_MISSION, alienTeamGroup_s::numAlienTeams, and csi_s::numAlienTeams.
Referenced by CP_StartSelectedMission().
void BATTLE_Start | ( | mission_t * | mission, |
const battleParam_t * | battleParameters | ||
) |
Select the mission type and start the map from mission definition.
[in] | mission | Mission definition to start the map from |
[in] | battleParameters | Context data of the battle |
Definition at line 106 of file cp_missions.cpp.
References B_AssembleMap(), mission_s::missionData_t::base, mission_s::category, ccs, cgi, mission_s::crashed, ccs_s::curCampaign, cgame_import_s::Cvar_Set(), mission_s::data, campaign_s::difficulty, ERR_DROP, GEO_IsNight(), mission_s::id, INTERESTCATEGORY_BASE_ATTACK, cgame_import_s::LIST_GetRandom(), mission_s::mapDef, mapDef_s::mapTheme, battleParam_s::param, mapDef_s::params, base_s::pos, mission_s::pos, and battleParam_s::zoneType.
Referenced by CP_StartSelectedMission().
bool CP_CheckMissionLimitedInTime | ( | const mission_t * | mission | ) |
Check if mission should end because of limited time.
Definition at line 904 of file cp_missions.cpp.
References date_s::day, and mission_s::finalDate.
Referenced by CP_CheckMissionEnd(), and CP_EndRescueMission().
bool CP_CheckNewMissionDetectedOnGeoscape | ( | void | ) |
Check if mission has been detected by radar.
DETECTION_INTERVAL
. Definition at line 769 of file cp_missions.cpp.
References CP_CheckMissionVisibleOnGeoscape(), CP_MissionAddToGeoscape(), DETECTION_INTERVAL, frand(), MIS_Foreach, MISDET_MAY_BE_DETECTED, and UFO_DetectNewUFO().
Referenced by CP_CampaignFunctionPeriodicCall().
bool CP_CheckNextStageDestination | ( | const struct campaign_s * | campaign, |
struct aircraft_s * | ufo | ||
) |
Choose a map for given mission.
[in,out] | mission | Pointer to the mission where a new map should be added |
[in] | pos | position of the mission (nullptr if the position will be chosen afterwards) |
< Number of maps fulfilling mission conditions and appeared less often during game.
Definition at line 995 of file cp_missions.cpp.
References mission_s::category, cgi, cgame_import_s::Com_GetMapDefinitionByID(), cgame_import_s::Com_UFOTypeToShortName(), CP_MapIsSelectable(), cp_missiontest, mission_s::crashed, DEBUG_CLIENT, ERR_DROP, GEO_GetColor(), aircraft_s::getUfoType(), mapDef_s::id, cvar_s::integer, INTERESTCATEGORY_RESCUE, mission_s::mapDef, MapDef_ForeachSingleplayerCampaign, MapIsWater, MAPTYPE_TERRAIN, mapDef_s::timesAlreadyUsed, and mission_s::ufo.
Referenced by CP_HarvestMissionGo(), CP_ReconMissionGroundGo(), CP_SpawnCrashSiteMission(), CP_SpawnRescueMission(), CP_TerrorMissionGo(), and TEST_F().
Count the number of mission active and displayed on geoscape.
Definition at line 566 of file cp_missions.cpp.
References MIS_Foreach.
Referenced by GEO_GetGeoscapeAngle().
void CP_CreateBattleParameters | ( | mission_t * | mission, |
battleParam_t * | param, | ||
const aircraft_t * | aircraft | ||
) |
Create parameters needed for battle. This is the data that is used for starting the tactical part of the mission.
[in] | mission | Pointer to the mission that generates the battle |
[out] | param | The battle parameters to set |
[in] | aircraft | the aircraft to go to the mission with |
Definition at line 338 of file cp_missions.cpp.
References _, mission_s::missionData_t::aircraft, mapDef_s::aircraft, mission_s::category, cgi, cgame_import_s::Com_GetRandomMapAssemblyNameForCraft(), cgame_import_s::Com_GetRandomMapAssemblyNameForCrashedCraft(), Com_sprintf(), cgame_import_s::Com_UFOCrashedTypeToShortName(), cgame_import_s::Com_UFOTypeToShortName(), cp_campaignPool, CP_CreateCivilianTeam(), mission_s::crashed, cgame_import_s::csi, cgame_import_s::Cvar_Set(), mission_s::data, frand(), GEO_GetColor(), TerrainDefs::getTerrainName(), aircraft_s::getUfoType(), TerrainDefs::getWeather(), aircraft_s::id, mapDef_s::id, INTERESTCATEGORY_ALIENBASE, INTERESTCATEGORY_RESCUE, cgame_import_s::LIST_ContainsString(), mission_s::mapDef, mapDef_s::mapTheme, MAPTYPE_TERRAIN, MAX_CRASHEDUFO_CONDITION, MIN_CRASHEDUFO_CONDITION, MIS_CreateAlienTeam(), battleParam_s::mission, aircraft_s::model, mission_s::onwin, battleParam_s::param, cgame_import_s::PoolStrDup(), mission_s::pos, mission_s::posAssigned, Q_streq, battleParam_s::retriable, csi_s::terrainDefs, mission_s::ufo, UFO_GetName(), mapDef_s::ufos, and battleParam_s::zoneType.
Referenced by AM_Go_f(), CP_StartSelectedMission(), and TEST_F().
mission_t* CP_CreateNewMission | ( | interestCategory_t | category, |
bool | beginNow | ||
) |
Create a new mission of given category.
[in] | category | category of the mission |
[in] | beginNow | true if the mission should begin now |
Definition at line 1673 of file cp_missions.cpp.
References ccs_s::campaignStats, mission_s::category, ccs, CP_BaseAttackMissionOnSpawn(), CP_BuildBaseMissionOnSpawn(), CP_SetMissionName(), CP_TerrorMissionOnSpawn(), ccs_s::date, Date_Add(), Date_Random(), date_s::day, mission_s::finalDate, mission_s::idx, mission_s::initialIndividualInterest, mission_s::initialOverallInterest, ccs_s::interest, INTERESTCATEGORY_BASE_ATTACK, INTERESTCATEGORY_BUILDING, INTERESTCATEGORY_MAX, INTERESTCATEGORY_TERROR_ATTACK, LIST_Add(), stats_s::missions, ccs_s::missions, OBJZERO, ccs_s::overallInterest, date_s::sec, mission_s::stage, STAGE_NOT_ACTIVE, mission_s::startDate, and mission_s::ufo.
Referenced by CP_SpawnAlienBaseMission(), CP_SpawnNewMissions(), CP_SpawnRescueMission(), CP_SpawnUFOCarrier_f(), CP_StartXVISpreading_f(), and TEST_F().
mission_t* CP_GetMissionByID | ( | const char * | missionId | ) |
Get a mission in ccs.missions by Id.
[in] | missionId | Unique string id for the mission |
Definition at line 432 of file cp_missions.cpp.
References cgi, and CP_GetMissionByIDSilent().
Referenced by AIR_PostLoadInitMissions().
mission_t* CP_GetMissionByIDSilent | ( | const char * | missionId | ) |
Get a mission in ccs.missions by Id without error messages.
[in] | missionId | Unique string id for the mission |
Definition at line 414 of file cp_missions.cpp.
References MIS_Foreach, and Q_streq.
Referenced by CP_GetMissionByID(), and CP_SetMissionName().
Initialize spawning delay.
Definition at line 1786 of file cp_missions.cpp.
References ccs, DELAY_BETWEEN_MISSION_SPAWNING, ccs_s::lastMissionSpawnedDelay, and ccs_s::missionSpawnCallback.
Referenced by CP_CampaignInit().
Add a mission to geoscape: make it visible and stop time.
[in] | mission | Pointer to added mission. |
[in] | force | true if the mission should be added even for mission needing a probabilty test to be seen. |
Definition at line 740 of file cp_missions.cpp.
References _, cgi, CP_CheckMissionVisibleOnGeoscape(), CP_GameTimeStop(), CP_MissionGetMessage(), CP_MissionGetMessageLevel(), aircraft_s::detected, GEO_UpdateGeoscapeDock(), MISDET_CANT_BE_DETECTED, MISDET_MAY_BE_DETECTED, MS_AddNewMessage(), mission_s::onGeoscape, mission_s::pos, aircraft_s::pos, mission_s::stage, and mission_s::ufo.
Referenced by CP_BeginRescueMission(), CP_BuildBaseSubvertGovernment(), CP_CheckNewMissionDetectedOnGeoscape(), CP_HarvestMissionStart(), CP_ReconMissionGround(), CP_SpawnAlienBaseMission(), CP_SpawnCrashSiteMission(), CP_TerrorMissionStart(), CP_UpdateMissionVisibleOnGeoscape(), and CP_XVIMissionStart().
bool CP_MissionBegin | ( | mission_t * | mission | ) |
mission begins: UFO arrive on earth.
[in] | mission | The mission to change the state for |
Definition at line 1536 of file cp_missions.cpp.
References ccs_s::campaignStats, ccs, cgi, cgame_import_s::Com_UFOTypeToShortName(), CP_MissionChooseUFO(), CP_MissionDisableTimeLimit(), CP_MissionRemove(), ccs_s::date, mission_s::finalDate, mission_s::id, mission_s::idx, MIS_IsSpawnedFromGround(), stats_s::missions, mission_s::stage, STAGE_COME_FROM_ORBIT, mission_s::ufo, UFO_AddToGeoscape(), and UFO_NONE.
Referenced by CP_BaseAttackMissionNextStage(), CP_BuildBaseMissionNextStage(), CP_HarvestMissionNextStage(), CP_InterceptNextStage(), CP_ReconMissionNextStage(), CP_TerrorMissionNextStage(), and CP_XVIMissionNextStage().
Choose UFO type for a given mission category.
[in] | mission | Pointer to the mission where the UFO will be added |
Definition at line 1572 of file cp_missions.cpp.
References mission_s::category, cgi, CP_BasemissionIsSubvertingGovernmentMission(), ERR_DROP, frand(), int(), INTERESTCATEGORY_ALIENBASE, INTERESTCATEGORY_BASE_ATTACK, INTERESTCATEGORY_BUILDING, INTERESTCATEGORY_HARVEST, INTERESTCATEGORY_INTERCEPT, INTERESTCATEGORY_INTERCEPTBOMBING, INTERESTCATEGORY_MAX, INTERESTCATEGORY_NONE, INTERESTCATEGORY_RECON, INTERESTCATEGORY_RESCUE, INTERESTCATEGORY_SUBVERT, INTERESTCATEGORY_SUPPLY, INTERESTCATEGORY_TERROR_ATTACK, INTERESTCATEGORY_UFOCARRIER, INTERESTCATEGORY_XVI, UFO_GetAvailableUFOsForMission(), UFO_MAX, and UFO_NONE.
Referenced by CP_MissionBegin(), and CP_SupplyMissionCreate().
Disable time limit for given mission.
Definition at line 893 of file cp_missions.cpp.
References date_s::day, and mission_s::finalDate.
Referenced by CP_BaseAttackGoToBase(), CP_BaseAttackMissionLeave(), CP_BaseAttackStartMission(), CP_BuildBaseGovernmentLeave(), CP_BuildBaseMissionLeave(), CP_HarvestMissionGo(), CP_InterceptGoToInstallation(), CP_InterceptMissionLeave(), CP_LeaveRescueMission(), CP_MissionBegin(), CP_ReconMissionGroundGo(), CP_ReconMissionLeave(), CP_SpawnAlienBaseMission(), CP_SpawnRescueMission(), CP_SupplyMissionCreate(), CP_SupplyMissionLeave(), and CP_TerrorMissionGo().
void CP_MissionEnd | ( | const campaign_t * | campaign, |
mission_t * | mission, | ||
const battleParam_t * | battleParameters, | ||
bool | won | ||
) |
Closing actions after fighting a battle.
[in] | campaign | The campaign we play |
[in,out] | mission | The mission the battle was on |
[in] | battleParameters | Parameters of the battle |
[in] | won | if PHALANX won |
Definition at line 1249 of file cp_missions.cpp.
References AIR_IsEmployeeInAircraft(), base_s::aircraftCurrent, mission_s::missionData_t::base, ccs_s::campaignStats, ccs, cgi, CHAR_UpdateData(), CHAR_UpdateStats(), CP_CheckLostCondition(), CP_ExecuteMissionTrigger(), CP_HandleNationData(), CP_MissionEndActions(), mission_s::data, DEBUG_CLIENT, E_DeleteEmployee(), E_Foreach, ccs_s::eMission, EMPL_SOLDIER, GEO_GetMissionAircraft, aircraft_s::homebase, campaign_s::minhappiness, mission_s::missionResults, stats_s::missionsLost, stats_s::missionsWon, battleParam_s::nation, mission_s::stage, STAGE_BASE_ATTACK, base_s::storage, and ccs_s::updateCharacters.
Referenced by GAME_CP_Results_f().
void CP_MissionEndActions | ( | mission_t * | mission, |
aircraft_t * | aircraft, | ||
bool | won | ||
) |
Actions to be done after mission finished.
[in,out] | mission | Pointer to the finished mission |
[in,out] | aircraft | Pointer to the dropship done the mission |
[in] | won | Boolean flag if thew mission was successful (from PHALANX's PoV) |
Definition at line 1214 of file cp_missions.cpp.
References _, AIR_AircraftReturnToBase(), B_DumpAircraftToHomeBase(), mission_s::category, Com_sprintf(), CP_BaseAttackMissionDestroyBase(), CP_BaseAttackMissionIsFailure(), CP_EndRescueMission(), cp_messageBuffer, CP_MissionIsOver(), aircraft_s::homebase, INTERESTCATEGORY_RESCUE, MS_AddNewMessage(), base_s::name, mission_s::stage, and STAGE_BASE_ATTACK.
Referenced by CP_MissionEnd().
Mission is finished because Phalanx team won it.
[in] | mission | Pointer to the mission that is ended. |
Definition at line 1139 of file cp_missions.cpp.
References mission_s::category, cgi, CP_BaseAttackMissionIsFailure(), CP_BaseAttackMissionIsSuccess(), CP_BuildBaseMissionBaseDestroyed(), CP_BuildBaseMissionIsFailure(), CP_BuildBaseMissionIsSuccess(), CP_HarvestMissionIsFailure(), CP_InterceptMissionIsFailure(), CP_InterceptMissionIsSuccess(), CP_MissionRemove(), CP_ReconMissionIsFailure(), CP_SupplyMissionIsFailure(), CP_SupplyMissionIsSuccess(), CP_TerrorMissionIsFailure(), CP_XVIMissionIsFailure(), CP_XVIMissionIsSuccess(), INTERESTCATEGORY_ALIENBASE, INTERESTCATEGORY_BASE_ATTACK, INTERESTCATEGORY_BUILDING, INTERESTCATEGORY_HARVEST, INTERESTCATEGORY_INTERCEPT, INTERESTCATEGORY_INTERCEPTBOMBING, INTERESTCATEGORY_MAX, INTERESTCATEGORY_NONE, INTERESTCATEGORY_RECON, INTERESTCATEGORY_RESCUE, INTERESTCATEGORY_SUBVERT, INTERESTCATEGORY_SUPPLY, INTERESTCATEGORY_TERROR_ATTACK, INTERESTCATEGORY_UFOCARRIER, INTERESTCATEGORY_XVI, mission_s::stage, STAGE_BASE_ATTACK, STAGE_BUILD_BASE, STAGE_INTERCEPT, STAGE_SPREAD_XVI, and STAGE_SUPPLY.
Referenced by CP_MissionEndActions(), CP_MissionIsOverByUFO(), and CP_MissionStageEnd().
void CP_MissionIsOverByUFO | ( | aircraft_t * | ufocraft | ) |
Mission is finished because Phalanx team ended it.
[in] | ufocraft | Pointer to the UFO involved in this mission |
Definition at line 1202 of file cp_missions.cpp.
References CP_MissionIsOver(), and aircraft_s::mission.
Referenced by AIRFIGHT_ActionsAfterAirfight().
Notify that a base has been removed.
Definition at line 919 of file cp_missions.cpp.
References CP_BaseAttackMissionLeave(), INTERESTCATEGORY_BASE_ATTACK, and MIS_Foreach.
Referenced by B_Destroy().
void CP_MissionNotifyInstallationDestroyed | ( | const installation_t * | installation | ) |
Notify missions that an installation has been destroyed.
[in] | installation | Pointer to the installation that has been destroyed. |
Definition at line 936 of file cp_missions.cpp.
References CP_InterceptMissionLeave(), INTERESTCATEGORY_INTERCEPT, and MIS_Foreach.
Referenced by INS_DestroyInstallation().
Removes a mission from mission global array.
Definition at line 870 of file cp_missions.cpp.
References ccs_s::battleParameters, ccs, cgi, CP_MissionRemoveFromGeoscape(), CP_UFORemoveFromGeoscape(), ERR_DROP, mission_s::id, battleParam_s::mission, ccs_s::missions, and mission_s::ufo.
Referenced by CP_BaseAttackGoToBase(), CP_BaseAttackMissionIsFailure(), CP_BaseAttackMissionIsSuccess(), CP_BaseAttackMissionNextStage(), CP_BeginRescueMission(), CP_BuildBaseMissionBaseDestroyed(), CP_BuildBaseMissionIsFailure(), CP_BuildBaseMissionIsSuccess(), CP_BuildBaseMissionNextStage(), CP_BuildBaseSetUpBase(), CP_HarvestMissionGo(), CP_HarvestMissionIsFailure(), CP_HarvestMissionIsSuccess(), CP_HarvestMissionNextStage(), CP_InterceptGoToInstallation(), CP_InterceptMissionIsFailure(), CP_InterceptMissionIsSuccess(), CP_InterceptNextStage(), CP_MissionBegin(), CP_MissionIsOver(), CP_MissionStageEnd(), CP_ReconMissionGroundGo(), CP_ReconMissionIsFailure(), CP_ReconMissionIsSuccess(), CP_ReconMissionNextStage(), CP_RescueNextStage(), CP_SetAlienTeamByInterest(), CP_SpawnCrashSiteMission(), CP_SpawnRescueMission(), CP_SupplyGoToBase(), CP_SupplyMissionCreate(), CP_SupplyMissionIsFailure(), CP_SupplyMissionIsSuccess(), CP_SupplyMissionNextStage(), CP_SupplySetStayAtBase(), CP_TerrorMissionGo(), CP_TerrorMissionIsFailure(), CP_TerrorMissionIsSuccess(), CP_TerrorMissionNextStage(), CP_XVIMissionIsFailure(), CP_XVIMissionIsSuccess(), and CP_XVIMissionNextStage().
Removes a mission from geoscape: make it non visible and call notify functions.
Definition at line 682 of file cp_missions.cpp.
References AIR_AircraftsNotifyMissionRemoved(), mission_s::category, GEO_NotifyMissionRemoved(), INTERESTCATEGORY_BASE_ATTACK, and mission_s::onGeoscape.
Referenced by CP_InterceptMissionLeave(), CP_LeaveRescueMission(), CP_MissionRemove(), CP_ReconMissionGroundGo(), CP_ReconMissionLeave(), and CP_UpdateMissionVisibleOnGeoscape().
void CP_MissionStageEnd | ( | const campaign_t * | campaign, |
mission_t * | mission | ||
) |
Determine what action should be performed when a mission stage ends.
[in] | campaign | The campaign data structure |
[in] | mission | Pointer to the mission which stage ended. |
Definition at line 1083 of file cp_missions.cpp.
References mission_s::category, ccs, cgi, CP_BaseAttackMissionNextStage(), CP_BuildBaseMissionNextStage(), CP_HarvestMissionNextStage(), CP_InterceptNextStage(), CP_MissionIsOver(), CP_MissionRemove(), CP_ReconMissionNextStage(), CP_RescueNextStage(), CP_SupplyMissionNextStage(), CP_TerrorMissionNextStage(), CP_UFOCarrierNextStage(), CP_XVIMissionNextStage(), mission_s::crashed, ccs_s::date, date_s::day, DEBUG_CLIENT, mission_s::id, INTERESTCATEGORY_ALIENBASE, INTERESTCATEGORY_BASE_ATTACK, INTERESTCATEGORY_BUILDING, INTERESTCATEGORY_HARVEST, INTERESTCATEGORY_INTERCEPT, INTERESTCATEGORY_INTERCEPTBOMBING, INTERESTCATEGORY_MAX, INTERESTCATEGORY_NONE, INTERESTCATEGORY_RECON, INTERESTCATEGORY_RESCUE, INTERESTCATEGORY_SUBVERT, INTERESTCATEGORY_SUPPLY, INTERESTCATEGORY_TERROR_ATTACK, INTERESTCATEGORY_UFOCARRIER, INTERESTCATEGORY_XVI, date_s::sec, and mission_s::stage.
Referenced by CP_CheckMissionEnd(), CP_CheckNextStageDestination(), and CP_UFOProceedMission().
void CP_SpawnCrashSiteMission | ( | aircraft_t * | ufo | ) |
Spawn a new crash site after a UFO has been destroyed.
[in,out] | ufo | The ufo to spawn a crash site mission for |
Definition at line 1353 of file cp_missions.cpp.
References ccs, cgi, CP_ChooseMap(), CP_MissionAddToGeoscape(), CP_MissionRemove(), CP_UFORemoveFromGeoscape(), mission_s::crashed, ccs_s::date, Date_Add(), Date_Random(), ERR_DROP, mission_s::finalDate, aircraft_s::id, mission_s::mapDef, aircraft_s::mission, mission_s::pos, aircraft_s::pos, mission_s::posAssigned, and Vector2Copy.
Referenced by AIRFIGHT_ActionsAfterAirfight(), and CP_AttackUFOCarrier_f().
Spawn new missions.
Definition at line 1738 of file cp_missions.cpp.
References AB_GetAlienBaseNumber(), ccs, cgi, CP_CreateNewMission(), CP_SelectNewMissionType(), ccs_s::curCampaign, DEBUG_CLIENT, DELAY_BETWEEN_MISSION_SPAWNING, EARLY_UFO_RUSH_INTEREST, f, FINAL_OVERALL_INTEREST, frand(), i, campaign_s::initialInterest, int(), INT_ChangeIndividualInterest(), INTERESTCATEGORY_SUPPLY, ccs_s::lastMissionSpawnedDelay, campaign_s::maxMissions, campaign_s::minMissions, ccs_s::overallInterest, type, and campaign_s::ufoReductionRate.
Referenced by CP_ResetCampaignData().
void CP_SpawnRescueMission | ( | aircraft_t * | aircraft, |
aircraft_t * | ufo | ||
) |
Spawn a new rescue mission for a crashed (phalanx) aircraft.
[in] | aircraft | The crashed aircraft to spawn the rescue mission for. |
[in] | ufo | The UFO that shot down the phalanx aircraft, can also be nullptr if the UFO was destroyed. |
Definition at line 1394 of file cp_missions.cpp.
References aircraft_s::acTeam, AIR_CRASHED, AIR_DestroyAircraft(), AIR_GetFirstFromBase(), AIR_GetHangarCapacityType(), AIR_GetPilot(), AIR_PilotSurvivedCrash(), mission_s::missionData_t::aircraft, base_s::aircraftCurrent, CAP_AddCurrent(), cgi, CP_ChooseMap(), CP_CreateNewMission(), CP_MissionDisableTimeLimit(), CP_MissionRemove(), mission_s::data, E_DeleteEmployee(), ERR_DROP, GEO_IsAircraftSelected, GEO_SetSelectedAircraft, aircraft_s::homebase, mission_s::id, INTERESTCATEGORY_RESCUE, LIST_Foreach, mission_s::mapDef, MAX_CAP, aircraft_s::mission, mission_s::pos, aircraft_s::pos, character_s::score, mission_s::stage, STAGE_MISSION_GOTO, aircraft_s::status, mission_s::ufo, and Vector2Copy.
Referenced by AIRFIGHT_ActionsAfterAirfight(), and B_MoveAircraftOnGeoscapeToOtherBases().
void CP_UFOProceedMission | ( | const struct campaign_s * | campaign, |
struct aircraft_s * | ufocraft | ||
) |
Removes (temporarily or permanently) a UFO from geoscape: make it land and call notify functions.
[in] | mission | Pointer to mission. |
[in] | destroyed | True if the UFO has been destroyed, false if it's only landed. |
Definition at line 827 of file cp_missions.cpp.
References AIR_AircraftsNotifyUFORemoved(), AIRFIGHT_RemoveProjectileAimingAircraft(), aircraft_s::detected, GEO_NotifyUFORemoved(), aircraft_s::landed, MIS_Foreach, aircraft_s::pos, RADAR_CheckRadarSensored(), RADAR_NotifyUFORemoved(), mission_s::ufo, and UFO_RemoveFromGeoscape().
Referenced by CP_BaseAttackStartMission(), CP_BuildBaseSetUpBase(), CP_BuildBaseSubvertGovernment(), CP_HarvestMissionStart(), CP_MissionRemove(), CP_ReconMissionGround(), CP_SpawnCrashSiteMission(), CP_SupplySetStayAtBase(), CP_TerrorMissionStart(), and CP_XVIMissionStart().
Update all mission visible on geoscape (in base radar range).
Definition at line 806 of file cp_missions.cpp.
References CP_CheckMissionVisibleOnGeoscape(), CP_MissionAddToGeoscape(), CP_MissionRemoveFromGeoscape(), MIS_Foreach, MISDET_ALWAYS_DETECTED, and MISDET_CANT_BE_DETECTED.
Referenced by RADAR_UpdateBaseRadarCoverage_f(), and RADAR_UpdateInstallationRadarCoverage().
Find mission corresponding to idx.
Definition at line 447 of file cp_missions.cpp.
References MIS_Foreach.
Referenced by AIR_SendAircraftToMission_f(), GEO_GetMissionAngle(), and MIS_GeoSelectMission_f().
Find idx corresponding to mission.
Definition at line 460 of file cp_missions.cpp.
References mission_s::idx.
Referenced by GEO_Click().
const char* MIS_GetModel | ( | const mission_t * | mission | ) |
Get mission model that should be shown on the geoscape.
[in] | mission | Pointer to the mission drawn on geoscape |
Definition at line 589 of file cp_missions.cpp.
References mission_s::category, cgi, mission_s::crashed, DEBUG_CLIENT, ERR_DROP, mission_s::id, INTERESTCATEGORY_ALIENBASE, INTERESTCATEGORY_BASE_ATTACK, INTERESTCATEGORY_BUILDING, INTERESTCATEGORY_HARVEST, INTERESTCATEGORY_INTERCEPT, INTERESTCATEGORY_INTERCEPTBOMBING, INTERESTCATEGORY_MAX, INTERESTCATEGORY_NONE, INTERESTCATEGORY_RECON, INTERESTCATEGORY_RESCUE, INTERESTCATEGORY_SUBVERT, INTERESTCATEGORY_SUPPLY, INTERESTCATEGORY_TERROR_ATTACK, INTERESTCATEGORY_UFOCARRIER, INTERESTCATEGORY_XVI, mission_s::mapDef, and mapDef_s::storyRelated.
Referenced by GEO_DrawMapOneMission(), and GEO_UpdateGeoscapeDock().
const char* MIS_GetName | ( | const mission_t * | mission | ) |
Returns a short translated name for a mission.
[in] | mission | Pointer to the mission to get name for |
Definition at line 469 of file cp_missions.cpp.
References _, mission_s::missionData_t::aircraft, mission_s::missionData_t::base, mission_s::category, mission_s::missionData_t::city, mission_s::crashed, mission_s::data, aircraft_s::detected, GEO_GetNation(), INTERESTCATEGORY_RESCUE, aircraft_s::landed, nation_s::name, city_s::name, base_s::name, aircraft_s::name, mission_s::pos, mission_s::stage, STAGE_BASE_ATTACK, STAGE_BASE_DISCOVERED, STAGE_TERROR_MISSION, mission_s::ufo, UFO_GetName(), and va().
Referenced by AIR_GeoSelectAircraft_f(), AIR_Move(), GEO_Click(), GEO_DrawMapOneMission(), GEO_GetMissionText(), and GEO_UpdateGeoscapeDock().
Init actions for missions-subsystem.
Definition at line 2210 of file cp_missions.cpp.
References cgi, and MIS_InitCallbacks().
Referenced by CP_InitStartup().
Closing actions for missions-subsystem.
Definition at line 2219 of file cp_missions.cpp.
References ccs, cgi, MIS_ShutdownCallbacks(), and ccs_s::missions.
Referenced by CP_Shutdown().
const int MAX_POS_LOOP |
Maximum number of loops to choose a mission position (to avoid infinite loops)
Definition at line 61 of file cp_missions.cpp.
Referenced by CP_HarvestMissionGo(), CP_ReconMissionGroundGo(), and CP_TerrorMissionGo().