UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
cp_mission_baseattack.cpp File Reference

Campaign mission code. More...

#include "../../../cl_shared.h"
#include "../../../ui/ui_dataids.h"
#include "../cp_campaign.h"
#include "../cp_capacity.h"
#include "../cp_geoscape.h"
#include "../cp_ufo.h"
#include "../cp_missions.h"
#include "../cp_time.h"
#include "../cp_popup.h"
#include "../cp_alien_interest.h"
#include "cp_mission_baseattack.h"

Go to the source code of this file.

Functions

void CP_BaseAttackMissionIsSuccess (mission_t *mission)
 Base attack mission is over and is a success (from an alien point of view): change interest values. More...
 
void CP_BaseAttackMissionIsFailure (mission_t *mission)
 Base attack mission is over and is a failure (from an alien point of view): change interest values. More...
 
void CP_BaseAttackMissionOnSpawn (void)
 Run when the mission is spawned. More...
 
void CP_BaseAttackMissionLeave (mission_t *mission)
 Base attack mission ends: UFO leave earth. More...
 
void CP_BaseAttackMissionDestroyBase (mission_t *mission)
 Base attack mission ends: UFO leave earth. More...
 
static void CP_BaseAttackPrepareBattle (mission_t *mission)
 Prepare things for baseattack battle. More...
 
void CP_BaseAttackStartMission (mission_t *mission)
 Start Base Attack. More...
 
void CP_CheckBaseAttacks (void)
 Check and start baseattack missions. More...
 
static base_tCP_BaseAttackChooseBase (void)
 Choose Base that will be attacked. More...
 
static void CP_BaseAttackGoToBase (mission_t *mission)
 Set base attack mission, and go to base position. More...
 
void CP_BaseAttackMissionNextStage (mission_t *mission)
 Determine what action should be performed when a Base Attack mission stage ends. More...
 

Variables

static aircraft_t baseAttackFakeAircraft
 This fake aircraft is used to assign soldiers for a base attack mission. More...
 

Detailed Description

Campaign mission code.

Definition in file cp_mission_baseattack.cpp.

Function Documentation

static base_t* CP_BaseAttackChooseBase ( void  )
static

Choose Base that will be attacked.

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

Definition at line 250 of file cp_mission_baseattack.cpp.

References base_s::alienInterest, B_COMMAND, B_GetBuildingStatus(), B_GetNext(), B_IsUnderAttack, and frand().

Referenced by CP_BaseAttackGoToBase().

void CP_BaseAttackMissionDestroyBase ( mission_t mission)

Base attack mission ends: UFO leave earth.

Note
Base attack mission – Stage 3
UFO attacking this base will be redirected when notify function will be called, don't set new destination here.

Definition at line 120 of file cp_mission_baseattack.cpp.

References _, aircraft_s::acTeam, base_s::aircraftCurrent, B_Destroy(), mission_s::missionData_t::base, BASE_WORKING, base_s::baseStatus, CAP_UpdateStorageCap(), cgi, Com_sprintf(), CP_GameTimeStop(), cp_messageBuffer, mission_s::data, GEO_SetMissionAircraft, aircraft_s::mission, MS_AddNewMessage(), and base_s::name.

Referenced by CP_BaseAttackMissionNextStage(), CP_BaseAttackStartMission(), and CP_MissionEndActions().

void CP_BaseAttackMissionIsSuccess ( mission_t mission)

Base attack mission is over and is a success (from an alien point of view): change interest values.

Note
Base attack mission
See also
CP_BaseAttackMissionStart

Definition at line 49 of file cp_mission_baseattack.cpp.

References CP_MissionRemove(), f, INT_ChangeIndividualInterest(), INTERESTCATEGORY_HARVEST, INTERESTCATEGORY_INTERCEPT, INTERESTCATEGORY_RECON, and INTERESTCATEGORY_TERROR_ATTACK.

Referenced by CP_BaseAttackMissionNextStage(), and CP_MissionIsOver().

void CP_BaseAttackMissionLeave ( mission_t mission)

Base attack mission ends: UFO leave earth.

Note
Base attack mission – Stage 3

Definition at line 100 of file cp_mission_baseattack.cpp.

References ccs, CP_MissionDisableTimeLimit(), ccs_s::date, mission_s::finalDate, aircraft_s::landed, mission_s::stage, STAGE_RETURN_TO_ORBIT, mission_s::ufo, and UFO_SetRandomDest().

Referenced by CP_MissionNotifyBaseDestroyed().

void CP_BaseAttackMissionNextStage ( mission_t mission)

Determine what action should be performed when a Base Attack mission stage ends.

Parameters
[in]missionPointer to the mission which stage ended.

Definition at line 320 of file cp_mission_baseattack.cpp.

References cgi, CP_BaseAttackGoToBase(), CP_BaseAttackMissionDestroyBase(), CP_BaseAttackMissionIsSuccess(), CP_BaseAttackStartMission(), CP_MissionBegin(), CP_MissionRemove(), mission_s::stage, STAGE_BASE_ATTACK, STAGE_COME_FROM_ORBIT, STAGE_MISSION_GOTO, STAGE_NOT_ACTIVE, and STAGE_RETURN_TO_ORBIT.

Referenced by CP_MissionStageEnd().

void CP_BaseAttackMissionOnSpawn ( void  )

Run when the mission is spawned.

Definition at line 90 of file cp_mission_baseattack.cpp.

References f, INT_ChangeIndividualInterest(), and INTERESTCATEGORY_BASE_ATTACK.

Referenced by CP_CreateNewMission().

static void CP_BaseAttackPrepareBattle ( mission_t mission)
static
void CP_CheckBaseAttacks ( void  )

Check and start baseattack missions.

See also
CP_BaseAttackStartMission

Definition at line 237 of file cp_mission_baseattack.cpp.

References CP_BaseAttackPrepareBattle(), INTERESTCATEGORY_BASE_ATTACK, MIS_Foreach, and STAGE_BASE_ATTACK.

Referenced by CP_CampaignRun(), and SAV_GameQuickLoad_f().

Variable Documentation

aircraft_t baseAttackFakeAircraft
static

This fake aircraft is used to assign soldiers for a base attack mission.

See also
CP_BaseAttackStartMission
AIR_AddToAircraftTeam

Definition at line 42 of file cp_mission_baseattack.cpp.

Referenced by CP_BaseAttackPrepareBattle().