UFO: Alien Invasion
Loading...
Searching...
No Matches
cp_mission_intercept.cpp File Reference

Campaign mission. More...

#include "../../../DateTime.h"
#include "../../../cl_shared.h"
#include "../cp_campaign.h"
#include "../cp_ufo.h"
#include "../cp_missions.h"
#include "../cp_time.h"
#include "../cp_alien_interest.h"
#include "../cp_xvi.h"
#include "cp_mission_intercept.h"
Include dependency graph for cp_mission_intercept.cpp:

Go to the source code of this file.

Macros

#define UFO_EPSILON   0.00001f

Functions

void CP_InterceptMissionIsSuccess (mission_t *mission)
 Intercept mission is over and is a success: change interest values.
void CP_InterceptMissionIsFailure (mission_t *mission)
 Intercept mission is over and is a failure: change interest values.
void CP_InterceptMissionLeave (mission_t *mission, bool destroyed)
 Intercept mission ends: UFO leave earth.
static void CP_InterceptAttackInstallation (mission_t *mission)
 UFO starts to attack the installation.
void CP_InterceptAircraftMissionSet (mission_t *mission)
 Set Intercept mission: UFO looks for new aircraft target.
static installation_tCP_InterceptChooseInstallation (const mission_t *mission)
 Choose Base that will be attacked, and add it to mission description.
void CP_InterceptGoToInstallation (mission_t *mission)
 Set Intercept mission: UFO chooses an installation an flies to it.
static void CP_InterceptMissionSet (mission_t *mission)
 Set Intercept mission: choose between attacking aircraft or installations.
void CP_InterceptNextStage (mission_t *mission)
 Determine what action should be performed when a Intercept mission stage ends.

Detailed Description

Campaign mission.

Definition in file cp_mission_intercept.cpp.

Macro Definition Documentation

◆ UFO_EPSILON

#define UFO_EPSILON   0.00001f

Function Documentation

◆ CP_InterceptAircraftMissionSet()

void CP_InterceptAircraftMissionSet ( mission_t * mission)

Set Intercept mission: UFO looks for new aircraft target.

Note
Intercept mission – Stage 1

Definition at line 127 of file cp_mission_intercept.cpp.

References ccs, Date_Random(), mission_t::finalDate, mission_t::stage, and STAGE_INTERCEPT.

Referenced by CP_InterceptMissionSet().

◆ CP_InterceptAttackInstallation()

void CP_InterceptAttackInstallation ( mission_t * mission)
static

◆ CP_InterceptChooseInstallation()

installation_t * CP_InterceptChooseInstallation ( const mission_t * mission)
static

Choose Base that will be attacked, and add it to mission description.

Note
Base attack mission – Stage 1
Returns
Pointer to the base, nullptr if no base set

Definition at line 141 of file cp_mission_intercept.cpp.

References frand(), i, and INS_Foreach.

Referenced by CP_InterceptGoToInstallation().

◆ CP_InterceptGoToInstallation()

void CP_InterceptGoToInstallation ( mission_t * mission)

◆ CP_InterceptMissionIsFailure()

void CP_InterceptMissionIsFailure ( mission_t * mission)

Intercept mission is over and is a failure: change interest values.

Note
Intercept mission

Definition at line 54 of file cp_mission_intercept.cpp.

References CP_MissionRemove(), INT_ChangeIndividualInterest(), INTERESTCATEGORY_BASE_ATTACK, INTERESTCATEGORY_BUILDING, INTERESTCATEGORY_INTERCEPT, and INTERESTCATEGORY_TERROR_ATTACK.

Referenced by CP_MissionIsOver().

◆ CP_InterceptMissionIsSuccess()

void CP_InterceptMissionIsSuccess ( mission_t * mission)

Intercept mission is over and is a success: change interest values.

Note
Intercept mission

Definition at line 39 of file cp_mission_intercept.cpp.

References CP_IsXVIStarted, CP_MissionRemove(), INT_ChangeIndividualInterest(), INTERESTCATEGORY_HARVEST, INTERESTCATEGORY_INTERCEPT, INTERESTCATEGORY_RECON, and INTERESTCATEGORY_XVI.

Referenced by CP_InterceptNextStage(), and CP_MissionIsOver().

◆ CP_InterceptMissionLeave()

void CP_InterceptMissionLeave ( mission_t * mission,
bool destroyed )

Intercept mission ends: UFO leave earth.

Parameters
[in]missionPointer to the mission
[in]destroyedtrue if the UFO actually destroyed the installation, false else
Note
Intercept mission – Stage 3

Definition at line 72 of file cp_mission_intercept.cpp.

References CP_MissionDisableTimeLimit(), CP_MissionRemoveFromGeoscape(), mission_t::data, INS_DestroyInstallation(), mission_t::missionData_t::installation, aircraft_t::landed, installation_t::pos, mission_t::pos, mission_t::stage, STAGE_RETURN_TO_ORBIT, mission_t::ufo, UFO_EPSILON, UFO_SetRandomDest(), Vector2Copy, and VectorCompareEps().

Referenced by CP_InterceptNextStage(), and CP_MissionNotifyInstallationDestroyed().

◆ CP_InterceptMissionSet()

void CP_InterceptMissionSet ( mission_t * mission)
static

Set Intercept mission: choose between attacking aircraft or installations.

Note
Intercept mission – Stage 1

Definition at line 197 of file cp_mission_intercept.cpp.

References CP_InterceptAircraftMissionSet(), CP_InterceptGoToInstallation(), frand(), aircraft_t::getUfoType(), INS_HasAny(), mission_t::stage, STAGE_MISSION_GOTO, mission_t::ufo, and UFO_CanDoMission().

Referenced by CP_InterceptNextStage().

◆ CP_InterceptNextStage()