UFO: Alien Invasion
Loading...
Searching...
No Matches
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"
Include dependency graph for cp_mission_baseattack.cpp:

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

Variables

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

Detailed Description

Campaign mission code.

Definition in file cp_mission_baseattack.cpp.

Function Documentation

◆ CP_BaseAttackChooseBase()

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_t::alienInterest, B_COMMAND, B_GetBuildingStatus(), B_GetNext(), B_IsUnderAttack, and frand().

Referenced by CP_BaseAttackGoToBase().

◆ CP_BaseAttackGoToBase()

◆ CP_BaseAttackMissionDestroyBase()

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 _, base_t::aircraftCurrent, B_Destroy(), mission_t::missionData_t::base, BASE_WORKING, baseAttackFakeAircraft, base_t::baseStatus, CAP_UpdateStorageCap(), cgi, Com_sprintf(), CP_GameTimeStop(), cp_messageBuffer, mission_t::data, GEO_SetMissionAircraft, MS_AddNewMessage(), and base_t::name.

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

◆ CP_BaseAttackMissionIsFailure()

◆ CP_BaseAttackMissionIsSuccess()

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(), INT_ChangeIndividualInterest(), INTERESTCATEGORY_HARVEST, INTERESTCATEGORY_INTERCEPT, INTERESTCATEGORY_RECON, and INTERESTCATEGORY_TERROR_ATTACK.

Referenced by CP_BaseAttackMissionNextStage(), and CP_MissionIsOver().

◆ CP_BaseAttackMissionLeave()

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(), mission_t::finalDate, aircraft_t::landed, mission_t::stage, STAGE_RETURN_TO_ORBIT, mission_t::ufo, and UFO_SetRandomDest().

Referenced by CP_MissionNotifyBaseDestroyed().

◆ CP_BaseAttackMissionNextStage()

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_t::stage, STAGE_BASE_ATTACK, STAGE_COME_FROM_ORBIT, STAGE_MISSION_GOTO, STAGE_NOT_ACTIVE, and STAGE_RETURN_TO_ORBIT.

Referenced by CP_MissionStageEnd().

◆ CP_BaseAttackMissionOnSpawn()

void CP_BaseAttackMissionOnSpawn ( void )

Run when the mission is spawned.

Definition at line 90 of file cp_mission_baseattack.cpp.

References INT_ChangeIndividualInterest(), and INTERESTCATEGORY_BASE_ATTACK.

Referenced by CP_CreateNewMission().

◆ CP_BaseAttackPrepareBattle()

void CP_BaseAttackPrepareBattle ( mission_t * mission)
static

Prepare things for baseattack battle.

Parameters
[in]missionMission to prepare battle for
Todo
remove me - this is not needed because we are using the base->aircraftCurrent pointer for resolving the aircraft - only Autocombat needs this

Definition at line 147 of file cp_mission_baseattack.cpp.

References _, mission_t::active, base_t::aircraftCurrent, B_SetCurrentSelectedBase(), mission_t::missionData_t::base, baseAttackFakeAircraft, cgi, Com_sprintf(), CP_GameTimeStop(), mission_t::data, DEBUG_CLIENT, E_CountByType(), EMPL_ROBOT, EMPL_SOLDIER, GEO_SelectMission(), GEO_SetInterceptorAircraft, GEO_SetMissionAircraft, mission_t::id, MAX_ACTIVETEAM, base_t::name, OBJZERO, popupText, base_t::pos, mission_t::pos, TEXT_POPUP, and VectorCopy.

Referenced by CP_BaseAttackStartMission(), and CP_CheckBaseAttacks().

◆ CP_BaseAttackStartMission()

◆ CP_CheckBaseAttacks()

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

◆ baseAttackFakeAircraft

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_BaseAttackMissionDestroyBase(), CP_BaseAttackMissionIsFailure(), and CP_BaseAttackPrepareBattle().