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

Nation code. More...

Go to the source code of this file.

Data Structures

struct  nationInfo_s
 Detailed information about the nation relationship (currently per month, but could be used elsewhere). More...
 
struct  nation_s
 Nation definition. More...
 
struct  city_s
 City definition. More...
 

Macros

#define NAT_Foreach(var)   LIST_Foreach(ccs.nations, nation_t, var)
 iterates trough nations More...
 

Typedefs

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

Functions

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

Detailed Description

Nation code.

Note
Nation functions with NAT_*
City functions with CITY_*

Definition in file cp_nation.h.

Macro Definition Documentation

Typedef Documentation

typedef struct city_s city_t

City definition.

typedef struct nation_s nation_t

Nation definition.

typedef struct nationInfo_s nationInfo_t

Detailed information about the nation relationship (currently per month, but could be used elsewhere).

Todo:
Maybe we should also move the "funding" stuff (see nation_t) in here? It is static right now though so i see no reason to do that yet.

Function Documentation

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 411 of file cp_nation.cpp.

References ccs, ccs_s::cities, LIST_Foreach, and Q_streq.

Referenced by CITY_Parse().

city_t* CITY_GetByPos ( vec2_t  pos)

Finds a city by it's geoscape coordinates.

Parameters
[in]posPosition of the city

Definition at line 424 of file cp_nation.cpp.

References ccs, ccs_s::cities, LIST_Foreach, and Vector2Equal.

Referenced by MIS_LoadXML().

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 445 of file cp_nation.cpp.

References ccs, cgi, ccs_s::cities, CITY_GetById(), cp_campaignPool, city_s::id, city_s::idx, LIST_Add(), ccs_s::numCities, OBJZERO, and cgame_import_s::PoolStrDup().

Referenced by CP_ParseScriptFirst().

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 382 of file cp_nation.cpp.

References ccs, cgi, cp_campaignPool, DEBUG_CLIENT, nation_s::id, nation_s::idx, nationInfo_s::inuse, LIST_Add(), NAT_Foreach, ccs_s::nations, ccs_s::numNations, OBJZERO, cgame_import_s::PoolStrDup(), Q_streq, and nation_s::stats.

Referenced by CP_ParseScriptFirst().

void CP_HandleNationData ( float  minHappiness,
struct mission_s mis,
const nation_t nation,
const struct missionResults_s results,
bool  won 
)
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, MONTHS_PER_YEAR, and NAT_Foreach.

Referenced by CP_CampaignRun().

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 176 of file cp_nation.cpp.

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

Referenced by NAT_HandleBudget(), and NAT_SetHappiness().

const nationInfo_t* NAT_GetCurrentMonthInfo ( const nation_t *const  nation)
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 120 of file cp_nation.cpp.

References nationInfo_s::happiness, nation_s::maxFunding, MONTHS_PER_YEAR, and nation_s::stats.

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

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 143 of file cp_nation.cpp.

References _.

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

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 63 of file cp_nation.cpp.

References cgi, NAT_Foreach, and Q_streq.

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

nation_t* NAT_GetRandom ( void  )

Return a pointer to a random nation.

Returns
nation_t pointer

Definition at line 45 of file cp_nation.cpp.

References ccs, i, NAT_Foreach, and ccs_s::numNations.

Referenced by E_InitialEmployees().

void NAT_HandleBudget ( const struct campaign_s campaign)
void NAT_InitStartup ( void  )

Init actions for nation-subsystem.

Definition at line 852 of file cp_nation.cpp.

References cgi.

Referenced by CP_InitStartup().

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 188 of file cp_nation.cpp.

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

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

void NAT_Shutdown ( void  )

Closing actions for nation-subsystem.

Definition at line 860 of file cp_nation.cpp.

References ccs, cgi, ccs_s::cities, and ccs_s::nations.

Referenced by CP_Shutdown().

void NAT_UpdateHappinessForAllNations ( const float  minhappiness)