UFO: Alien Invasion
|
Campaign XVI code. More...
#include "../../cl_shared.h"
#include "cp_campaign.h"
#include "cp_overlay.h"
#include "cp_geoscape.h"
#include "cp_xvi.h"
#include "cp_missions.h"
#include "save/save_xvi.h"
Go to the source code of this file.
Macros | |
#define | XVI_EVENT_NAME "rs_alien_xvi_event" |
Name of the technology for the XVI event. More... | |
Functions | |
void | CP_SpreadXVIAtPos (const vec2_t pos) |
Spread XVI at a given position. 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_SpreadXVI (void) |
Spread XVI for each mission that needs to be daily spread. More... | |
bool | CP_IsXVIVisible (void) |
Returns true if the XVI effect should be visible to the player. More... | |
void | CP_XVIInit (void) |
bool | XVI_SaveXML (xmlNode_t *p) |
XVI map saving callback. More... | |
bool | XVI_LoadXML (xmlNode_t *p) |
Load the XVI map from the savegame. More... | |
void | CP_StartXVISpreading_f (void) |
Start XVI spreading in campaign. More... | |
void | CP_UpdateXVIMapButton (void) |
This will hide or show the geoscape button for handling the xvi overlay map. More... | |
Variables | |
static technology_t * | rsAlienXVI |
technology for XVI event More... | |
static bool | xviNationInfectionNeedsUpdate = false |
boolean used to know if each nation XVI level should be updated this day. More... | |
static const float | XVI_FACTOR = 15.0f |
The factor that is used to determine XVI radius spreading. The higher this factor, the faster XVI will spread. More... | |
static const int | XVI_DECREASE_DAYS = 7 |
Number of days between 2 XVI decrease (everywhere around the world). More... | |
Campaign XVI code.
Definition in file cp_xvi.cpp.
#define XVI_EVENT_NAME "rs_alien_xvi_event" |
Name of the technology for the XVI event.
Definition at line 50 of file cp_xvi.cpp.
Referenced by CP_XVIInit().
Return the average XVI rate.
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().
Reduce XVI everywhere.
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().
Spread XVI for each mission that needs to be daily spread.
Definition at line 181 of file cp_xvi.cpp.
References CP_IsXVIStarted, CP_SpreadXVIAtPos(), MIS_Foreach, and STAGE_SPREAD_XVI.
Referenced by CP_CampaignRun().
Spread XVI at a given position.
[in] | pos | Position 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().
Start XVI spreading in campaign.
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.
Update xviInfection value for each nation, using the 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().
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().
Definition at line 201 of file cp_xvi.cpp.
References cgi, ERR_DROP, RS_GetTechByID(), and XVI_EVENT_NAME.
Referenced by CP_CampaignInit().
bool XVI_LoadXML | ( | xmlNode_t * | p | ) |
Load the XVI map from the savegame.
Definition at line 247 of file cp_xvi.cpp.
References cgi, CP_InitializeXVIOverlay(), CP_SetXVILevel(), level, SAVE_XVI_ENTRY, SAVE_XVI_HEIGHT, SAVE_XVI_LEVEL, SAVE_XVI_WIDTH, SAVE_XVI_X, SAVE_XVI_XVI, SAVE_XVI_Y, cgame_import_s::XML_GetNextNode(), cgame_import_s::XML_GetNode(), and xmlNode_t.
Referenced by SAV_Init().
bool XVI_SaveXML | ( | xmlNode_t * | p | ) |
XVI map saving callback.
Definition at line 215 of file cp_xvi.cpp.
References cgi, CP_GetXVILevel(), CP_GetXVIMapDimensions(), SAVE_XVI_ENTRY, SAVE_XVI_HEIGHT, SAVE_XVI_LEVEL, SAVE_XVI_WIDTH, SAVE_XVI_X, SAVE_XVI_XVI, SAVE_XVI_Y, cgame_import_s::XML_AddNode(), and xmlNode_t.
Referenced by SAV_Init().
|
static |
technology for XVI event
Definition at line 35 of file cp_xvi.cpp.
|
static |
Number of days between 2 XVI decrease (everywhere around the world).
Definition at line 47 of file cp_xvi.cpp.
Referenced by CP_ReduceXVIEverywhere().
|
static |
The factor that is used to determine XVI radius spreading. The higher this factor, the faster XVI will spread.
Definition at line 44 of file cp_xvi.cpp.
Referenced by CP_SpreadXVIAtPos().
|
static |
boolean used to know if each nation XVI level should be updated this day.
Definition at line 38 of file cp_xvi.cpp.
Referenced by CP_ReduceXVIEverywhere(), CP_SpreadXVIAtPos(), and CP_UpdateNationXVIInfection().