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

Campaign XVI header. More...

Go to the source code of this file.

Macros

#define CP_IsXVIStarted()   ccs.startXVI
 

Functions

void CP_XVIInit (void)
 
void CP_SpreadXVIAtPos (const vec2_t pos)
 Spread XVI at a given position. More...
 
bool CP_IsXVIVisible (void)
 Returns true if the XVI effect should be visible to the player. More...
 
void CP_SpreadXVI (void)
 Spread XVI for each mission that needs to be daily spread. More...
 
void CP_ReduceXVIEverywhere (void)
 Reduce XVI everywhere. More...
 
void CP_UpdateNationXVIInfection (void)
 Update xviInfection value for each nation, using the XVI overlay. More...
 
int CP_GetAverageXVIRate (void)
 Return the average XVI rate. More...
 
void CP_UpdateXVIMapButton (void)
 This will hide or show the geoscape button for handling the xvi overlay map. More...
 
void CP_StartXVISpreading_f (void)
 Start XVI spreading in campaign. More...
 

Detailed Description

Campaign XVI header.

Definition in file cp_xvi.h.

Macro Definition Documentation

Function Documentation

int CP_GetAverageXVIRate ( void  )

Return the average XVI rate.

Note
XVI = eXtraterrestial Viral Infection

Definition at line 163 of file cp_xvi.cpp.

References ccs, NAT_Foreach, NAT_GetCurrentMonthInfo(), ccs_s::numNations, and nationInfo_s::xviInfection.

Referenced by CP_CheckLostCondition(), CP_CheckTriggerEvent(), MIS_IsSpawnedFromGround(), and STATS_Update_f().

bool CP_IsXVIVisible ( void  )

Returns true if the XVI effect should be visible to the player.

Definition at line 196 of file cp_xvi.cpp.

References RS_IsResearched_ptr().

Referenced by CP_UpdateXVIMapButton(), GEO_DrawMarkers(), and STATS_Update_f().

void CP_ReduceXVIEverywhere ( void  )

Reduce XVI everywhere.

Note
This is called daily.

Definition at line 70 of file cp_xvi.cpp.

References ccs, CP_DecreaseXVILevelEverywhere(), CP_IsXVIStarted, ccs_s::date, date_s::day, XVI_DECREASE_DAYS, and xviNationInfectionNeedsUpdate.

Referenced by CP_CampaignRun().

void CP_SpreadXVI ( void  )

Spread XVI for each mission that needs to be daily spread.

Note
Daily called

Definition at line 181 of file cp_xvi.cpp.

References CP_IsXVIStarted, CP_SpreadXVIAtPos(), MIS_Foreach, and STAGE_SPREAD_XVI.

Referenced by CP_CampaignRun().

void CP_SpreadXVIAtPos ( const vec2_t  pos)

Spread XVI at a given position.

Parameters
[in]posPosition where XVI should be spread.

Definition at line 56 of file cp_xvi.cpp.

References CP_ChangeXVILevel(), CP_IsXVIStarted, XVI_FACTOR, and xviNationInfectionNeedsUpdate.

Referenced by CP_BuildBaseMissionIsSuccess(), CP_SpreadXVI(), and CP_SupplyMissionIsSuccess().

void CP_StartXVISpreading_f ( void  )

Start XVI spreading in campaign.

Note
This is called when 'a new twist' technology is discovered.

Definition at line 276 of file cp_xvi.cpp.

References ccs, CP_CreateNewMission(), ccs_s::curCampaign, campaign_s::difficulty, i, INTERESTCATEGORY_BUILDING, and ccs_s::startXVI.

void CP_UpdateNationXVIInfection ( void  )

Update xviInfection value for each nation, using the XVI overlay.

Note
should be executed after all daily event that could change XVI overlay

Definition at line 88 of file cp_xvi.cpp.

References ccs, cgi, cp_campaignPool, CP_GetXVILevel(), CP_GetXVIMapDimensions(), f, GEO_GetColor(), GEO_GetNation(), nation_s::idx, MAPTYPE_NATIONS, Mem_PoolAllocTypeN, NAT_Foreach, ccs_s::numNations, OBJZERO, torad, Vector2Set, VectorCompare, and xviNationInfectionNeedsUpdate.

Referenced by CP_CampaignRun().

void CP_UpdateXVIMapButton ( void  )

This will hide or show the geoscape button for handling the xvi overlay map.

Definition at line 298 of file cp_xvi.cpp.

References cgi, and CP_IsXVIVisible().

Referenced by CP_CampaignInit(), CP_CampaignRun(), and SAV_GameActionsAfterLoad().

void CP_XVIInit ( void  )

Definition at line 201 of file cp_xvi.cpp.

References cgi, ERR_DROP, RS_GetTechByID(), and XVI_EVENT_NAME.

Referenced by CP_CampaignInit().