UFO: Alien Invasion
Loading...
Searching...
No Matches
cp_nation.h File Reference

Nation code. More...

#include "../../DateTime.h"
Include dependency graph for cp_nation.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  nationInfo_t
 Detailed information about the nation relationship (currently per month, but could be used elsewhere). More...
struct  nation_t
 Nation definition. More...
struct  city_t
 City definition. More...

Macros

#define NAT_Foreach(var)
 iterates trough nations

Functions

nation_tNAT_GetNationByID (const char *nationID)
 Return a nation-pointer by the nations id.
nation_tNAT_GetRandom (void)
 Return a pointer to a random nation.
void NAT_UpdateHappinessForAllNations (const float minhappiness)
 Lower happiness of nations depending on alien activity.
void NAT_SetHappiness (const float minhappiness, nation_t *nation, const float happiness)
 Updates the nation happiness.
int NAT_GetFunding (const nation_t *const nation, int month)
 Get the funding of a nation at a certain month.
const nationInfo_tNAT_GetCurrentMonthInfo (const nation_t *const nation)
 Get the current month nation stats.
const char * NAT_GetHappinessString (const float happiness)
 Translates the nation happiness float value to a string.
const char * NAT_GetCurrentHappinessString (const nation_t *nation)
 Translates the current nation happiness float value to a string.
void CP_HandleNationData (float minHappiness, struct mission_s *mis, const nation_t *nation, const struct missionResults_s *results, bool won)
void CL_ParseNations (const char *name, const char **text)
 Parse the nation data from script file.
city_tCITY_GetById (const char *cityId)
 Finds a city by it's scripted identifier.
city_tCITY_GetByPos (vec2_t pos)
 Finds a city by it's geoscape coordinates.
void CITY_Parse (const char *name, const char **text)
 Parse the city data from script file.
bool NAT_ScriptSanityCheck (void)
 Checks the parsed nations and cities for errors.
void NAT_HandleBudget (const struct campaign_s *campaign)
void NAT_BackupMonthlyData (void)
 Backs up each nation's relationship values.
void NAT_InitStartup (void)
 Init actions for nation-subsystem.
void NAT_Shutdown (void)
 Closing actions for nation-subsystem.

Detailed Description

Nation code.

Note
Nation functions with NAT_*
City functions with CITY_*

Definition in file cp_nation.h.

Macro Definition Documentation

◆ NAT_Foreach

#define NAT_Foreach ( var)
Value:
LIST_Foreach(ccs.nations, nation_t, var)
ccs_t ccs
#define LIST_Foreach(list, type, var)
Iterates over a linked list, it's safe to delete the returned entry from the list while looping over ...
Definition list.h:41
Nation definition.
Definition cp_nation.h:46

iterates trough nations

Parameters
[out]varvariable to point to the nation structure

Definition at line 80 of file cp_nation.h.

Referenced by CL_ParseNations(), CP_CheckLostCondition(), CP_CheckTriggerEvent(), CP_ChooseNation(), CP_GetAverageXVIRate(), CP_HandleNationData(), CP_UpdateNationXVIInfection(), GEO_DrawMarkers(), GEO_GetNation(), NAT_BackupMonthlyData(), NAT_DrawCharts_f(), NAT_GetNationByID(), NAT_GetRandom(), NAT_HandleBudget(), NAT_ListStats_f(), NAT_SaveXML(), TEST_F(), UR_DialogInitSell_f(), and UR_DialogStartSell_f().

Function Documentation

◆ CITY_GetById()

city_t * CITY_GetById ( const char * cityId)

Finds a city by it's scripted identifier.

Parameters
[in]cityIdScripted ID of the city

Definition at line 412 of file cp_nation.cpp.

References ccs, LIST_Foreach, and Q_streq.

Referenced by CITY_Parse().

◆ CITY_GetByPos()

city_t * CITY_GetByPos ( vec2_t pos)

Finds a city by it's geoscape coordinates.

Parameters
[in]posPosition of the city

Definition at line 425 of file cp_nation.cpp.

References ccs, LIST_Foreach, and Vector2Equal.

Referenced by MIS_LoadXML().

◆ CITY_Parse()

void CITY_Parse ( const char * name,
const char ** text )

Parse the city data from script file.

Parameters
[in]nameID of the found nation
[in]textThe text of the nation node

Definition at line 446 of file cp_nation.cpp.

References ccs, cgi, CITY_GetById(), city_vals, cp_campaignPool, city_t::id, LIST_Add(), name, and OBJZERO.

Referenced by CP_ParseScriptFirst().

◆ CL_ParseNations()

void CL_ParseNations ( const char * name,
const char ** text )

Parse the nation data from script file.

Parameters
[in]nameName or ID of the found nation
[in]textThe text of the nation node
See also
nation_vals
CL_ParseScriptFirst
Note
write into cp_campaignPool - free on every game restart and reparse

Definition at line 383 of file cp_nation.cpp.

References ccs, cgi, cp_campaignPool, DEBUG_CLIENT, nation_t::id, nation_t::idx, nationInfo_t::inuse, LIST_Add(), name, NAT_Foreach, nation_vals, OBJZERO, Q_streq, and nation_t::stats.

Referenced by CP_ParseScriptFirst().

◆ CP_HandleNationData()

void CP_HandleNationData ( float minHappiness,
struct mission_s * mis,
const nation_t * nation,
const struct missionResults_s * results,
bool won )

References name.

◆ NAT_BackupMonthlyData()

void NAT_BackupMonthlyData ( void )

Backs up each nation's relationship values.

Note
Right after the copy the stats for the current month are the same as the ones from the (end of the) previous month. They will change while the curent month is running of course :)
Todo
other stuff to back up?

Back up nation relationship . "inuse" is copied as well so we do not need to set it anywhere.

Definition at line 826 of file cp_nation.cpp.

References i, DateTime::MONTHS_PER_YEAR, and NAT_Foreach.

Referenced by CP_CampaignRun().

◆ NAT_GetCurrentHappinessString()

const char * NAT_GetCurrentHappinessString ( const nation_t * nation)

Translates the current nation happiness float value to a string.

Parameters
[in]nation
Returns
Translated happiness string
Note
happiness is between 0 and 1.0

Definition at line 177 of file cp_nation.cpp.

References nationInfo_t::happiness, NAT_GetCurrentMonthInfo(), and NAT_GetHappinessString().

Referenced by NAT_HandleBudget(), and NAT_SetHappiness().

◆ NAT_GetCurrentMonthInfo()

const nationInfo_t * NAT_GetCurrentMonthInfo ( const nation_t *const nation)

◆ NAT_GetFunding()

int NAT_GetFunding ( const nation_t *const nation,
int month )

Get the funding of a nation at a certain month.

Parameters
[in]nationPointer to the nation
[in]monthidx of the month – 0 for current month
Returns
actual funding of a nation

Definition at line 121 of file cp_nation.cpp.

References nationInfo_t::happiness, nation_t::maxFunding, DateTime::MONTHS_PER_YEAR, and nation_t::stats.

Referenced by NAT_DrawCharts_f(), NAT_HandleBudget(), and NAT_ListStats_f().

◆ NAT_GetHappinessString()

const char * NAT_GetHappinessString ( const float happiness)

Translates the nation happiness float value to a string.

Parameters
[in]happinessvalue
Returns
Translated happiness string
Note
happiness is between 0 and 1.0

Definition at line 144 of file cp_nation.cpp.

References _.

Referenced by NAT_GetCurrentHappinessString(), NAT_ListStats_f(), and UR_DialogInitSell_f().

◆ NAT_GetNationByID()

nation_t * NAT_GetNationByID ( const char * nationID)

Return a nation-pointer by the nations id.

Parameters
[in]nationIDnation id as defined in scripts
Returns
nation_t pointer or nullptr if nothing found

Definition at line 64 of file cp_nation.cpp.

References cgi, NAT_Foreach, and Q_streq.

Referenced by E_LoadXML(), NAT_LoadXML(), TEST_F(), TEST_F(), and UR_DialogStartSell_f().

◆ NAT_GetRandom()

nation_t * NAT_GetRandom ( void )

Return a pointer to a random nation.

Returns
nation_t pointer

Definition at line 46 of file cp_nation.cpp.

References ccs, i, and NAT_Foreach.

Referenced by E_InitialEmployees().

◆ NAT_HandleBudget()

void NAT_HandleBudget ( const struct campaign_s * campaign)

◆ NAT_InitStartup()

void NAT_InitStartup ( void )

Init actions for nation-subsystem.

Definition at line 852 of file cp_nation.cpp.

References cgi, and nationCmds.

Referenced by CP_InitStartup().

◆ NAT_ScriptSanityCheck()

◆ NAT_SetHappiness()

void NAT_SetHappiness ( const float minhappiness,
nation_t * nation,
const float happiness )

Updates the nation happiness.

Parameters
[in]minhappinessMinimum value of mean happiness before the game is lost
[in]nationThe nation to update the happiness for
[in]happinessThe new happiness value to set for the given nation
Todo
need to more specific message

Definition at line 189 of file cp_nation.cpp.

References _, Com_sprintf(), cp_messageBuffer, nationInfo_t::happiness, MSO_CheckAddNewMessage(), nation_t::name, NAT_GetCurrentHappinessString(), NT_HAPPINESS_CHANGED, NT_HAPPINESS_MIN, NT_HAPPINESS_PLEASED, NT_NUM_NOTIFYTYPE, and nation_t::stats.

Referenced by CP_BuildBaseGovernmentLeave(), CP_ChangeNationHappiness_f(), CP_HandleNationData(), NAT_UpdateHappinessForAllNations(), and UR_DialogStartSell_f().

◆ NAT_Shutdown()

void NAT_Shutdown ( void )

Closing actions for nation-subsystem.

Definition at line 860 of file cp_nation.cpp.

References ccs, cgi, and nationCmds.

Referenced by CP_Shutdown().

◆ NAT_UpdateHappinessForAllNations()

void NAT_UpdateHappinessForAllNations ( const float minhappiness)