Freeciv-3.3
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
government.h File Reference
#include "shared.h"
#include "fc_types.h"
#include "name_translation.h"
#include "requirements.h"
#include "spechash.h"

Go to the source code of this file.

Data Structures

struct  government
 

Macros

#define SPECHASH_TAG   ruler_title
 
#define SPECHASH_IKEY_TYPE   struct nation_type *
 
#define SPECHASH_IDATA_TYPE   struct ruler_title *
 
#define ruler_titles_iterate(ARG_hash, NAME_rule_title)
 
#define ruler_titles_iterate_end   HASH_DATA_ITERATE_END
 
#define G_LAST   (127)
 
#define governments_iterate(NAME_pgov)
 
#define governments_iterate_end   generic_iterate_end
 
#define governments_re_active_iterate(_p)
 
#define governments_re_active_iterate_end
 

Functions

Government_type_id government_count (void)
 
Government_type_id government_index (const struct government *pgovern)
 
Government_type_id government_number (const struct government *pgovern)
 
struct governmentgovernment_by_number (const Government_type_id gov)
 
struct governmentgovernment_of_player (const struct player *pplayer)
 
struct governmentgovernment_of_city (const struct city *pcity)
 
struct governmentgovernment_by_rule_name (const char *name)
 
struct governmentgovernment_by_translated_name (const char *name)
 
const chargovernment_rule_name (const struct government *pgovern)
 
const chargovernment_name_translation (const struct government *pgovern)
 
const chargovernment_name_for_player (const struct player *pplayer)
 
const struct ruler_title_hashgovernment_ruler_titles (const struct government *pgovern)
 
struct ruler_titlegovernment_ruler_title_new (struct government *pgovern, const struct nation_type *pnation, const char *ruler_male_title, const char *ruler_female_title)
 
const struct nation_typeruler_title_nation (const struct ruler_title *pruler_title)
 
const charruler_title_male_untranslated_name (const struct ruler_title *pruler_title)
 
const charruler_title_female_untranslated_name (const struct ruler_title *pruler_title)
 
const charruler_title_for_player (const struct player *pplayer, char *buf, size_t buf_len)
 
const chardefault_title_for_player (const struct player *pplayer, char *buf, size_t buf_len)
 
bool can_change_to_government (struct player *pplayer, const struct government *pgovern)
 
void governments_alloc (int num)
 
void governments_free (void)
 
size_t government_iter_sizeof (void)
 
struct iteratorgovernment_iter_init (struct government_iter *it)
 
bool untargeted_revolution_allowed (void)
 

Macro Definition Documentation

◆ G_LAST

#define G_LAST   (127)

Definition at line 48 of file government.h.

◆ governments_iterate

#define governments_iterate (   NAME_pgov)
Value:
char * incite_cost
Definition comments.c:76
struct iterator * government_iter_init(struct government_iter *it)
Definition government.c:483
size_t government_iter_sizeof(void)
Definition government.c:450
#define generic_iterate(TYPE_it, TYPE_a, NAME_a, FUNC_size, FUNC_init,...)
Definition iterator.h:117

Definition at line 124 of file government.h.

◆ governments_iterate_end

#define governments_iterate_end   generic_iterate_end

Definition at line 127 of file government.h.

◆ governments_re_active_iterate

#define governments_re_active_iterate (   _p)
Value:
if (!_p->ruledit_disabled) {
#define governments_iterate(NAME_pgov)
Definition government.h:124

Definition at line 129 of file government.h.

◆ governments_re_active_iterate_end

#define governments_re_active_iterate_end
Value:
} \
#define governments_iterate_end
Definition government.h:127

Definition at line 133 of file government.h.

◆ ruler_titles_iterate

#define ruler_titles_iterate (   ARG_hash,
  NAME_rule_title 
)
Value:
#define TYPED_HASH_DATA_ITERATE(TYPE_data, ARG_ht, NAME_data)
Definition spechash.h:696

Definition at line 38 of file government.h.

◆ ruler_titles_iterate_end

#define ruler_titles_iterate_end   HASH_DATA_ITERATE_END

Definition at line 41 of file government.h.

◆ SPECHASH_IDATA_TYPE

#define SPECHASH_IDATA_TYPE   struct ruler_title *

Definition at line 36 of file government.h.

◆ SPECHASH_IKEY_TYPE

#define SPECHASH_IKEY_TYPE   struct nation_type *

Definition at line 35 of file government.h.

◆ SPECHASH_TAG

#define SPECHASH_TAG   ruler_title

Definition at line 34 of file government.h.

Function Documentation

◆ can_change_to_government()

bool can_change_to_government ( struct player pplayer,
const struct government gov 
)

Can change to government if appropriate tech exists, and one of:

  • no required tech (required is A_NONE)
  • player has required tech
  • we have an appropriate wonder Returns FALSE if pplayer is NULL (used for observers).

Definition at line 166 of file government.c.

Referenced by adv_best_government(), create_current_governments_data(), create_current_governments_data_all(), dai_effect_value(), handle_player_change_government(), notify_new_government_options(), pick_random_government(), popup_government_dialog(), real_menus_update(), research_tech_lost(), and gov_menu::update().

◆ default_title_for_player()

const char * default_title_for_player ( const struct player pplayer,
char buf,
size_t  buf_len 
)

Return default ruler title of the player (translated).

Definition at line 426 of file government.c.

Referenced by ruler_title_for_player(), and title_for_player().

◆ government_by_number()

struct government * government_by_number ( const Government_type_id  gov)

◆ government_by_rule_name()

struct government * government_by_rule_name ( const char name)

Returns the government that has the given (untranslated) rule name. Returns NULL if none match.

Definition at line 55 of file government.c.

Referenced by api_find_government_by_name(), tab_gov::initialize_new_gov(), load_ruleset_nations(), lookup_government(), tab_gov::select_gov(), sg_load_player_main(), sg_load_player_main(), sg_load_ruledata(), sg_load_ruledata(), and universal_value_from_str().

◆ government_by_translated_name()

struct government * government_by_translated_name ( const char name)

Returns the government that has the given (translated) name. Returns NULL if none match.

Definition at line 40 of file government.c.

Referenced by help_update_government(), help_dialog::make_tree(), and help_widget::set_topic_government().

◆ government_count()

Government_type_id government_count ( void  )

◆ government_index()

Government_type_id government_index ( const struct government pgovern)

◆ government_iter_init()

struct iterator * government_iter_init ( struct government_iter it)

Implementation of iterator 'init' function.

Definition at line 483 of file government.c.

◆ government_iter_sizeof()

size_t government_iter_sizeof ( void  )

Implementation of iterator 'sizeof' function.

Definition at line 450 of file government.c.

◆ government_name_for_player()

const char * government_name_for_player ( const struct player pplayer)

◆ government_name_translation()

const char * government_name_translation ( const struct government pgovern)

◆ government_number()

Government_type_id government_number ( const struct government pgovern)

◆ government_of_city()

struct government * government_of_city ( const struct city pcity)

Return the government of the player who owns the city.

Definition at line 123 of file government.c.

Referenced by update_city_activity().

◆ government_of_player()

struct government * government_of_player ( const struct player pplayer)

◆ government_rule_name()

const char * government_rule_name ( const struct government pgovern)

◆ government_ruler_title_new()

struct ruler_title * government_ruler_title_new ( struct government pgovern,
const struct nation_type pnation,
const char ruler_male_title,
const char ruler_female_title 
)

Add a new ruler title for the nation. Pass NULL for pnation for defining the default title.

Definition at line 325 of file government.c.

Referenced by handle_ruleset_government_ruler_title(), load_ruleset_governments(), and load_ruleset_nations().

◆ government_ruler_titles()

const struct ruler_title_hash * government_ruler_titles ( const struct government pgovern)

Returns all ruler titles for a government type.

Definition at line 314 of file government.c.

Referenced by send_ruleset_governments().

◆ governments_alloc()

void governments_alloc ( int  num)

Allocate the governments.

Definition at line 529 of file government.c.

Referenced by handle_ruleset_control(), and load_government_names().

◆ governments_free()

void governments_free ( void  )

De-allocate the currently allocated governments.

Definition at line 545 of file government.c.

Referenced by game_ruleset_free().

◆ ruler_title_female_untranslated_name()

const char * ruler_title_female_untranslated_name ( const struct ruler_title pruler_title)

Return the female ruler title name.

Definition at line 383 of file government.c.

Referenced by save_governments_ruleset(), save_nation(), and send_ruleset_governments().

◆ ruler_title_for_player()

const char * ruler_title_for_player ( const struct player pplayer,
char buf,
size_t  buf_len 
)

Return the ruler title of the player (translated).

Definition at line 391 of file government.c.

Referenced by create_diplomacy_dialog(), diplo_wdg::diplo_wdg(), get_report_title(), title_for_player(), update_intel_dialog(), and update_national_activities().

◆ ruler_title_male_untranslated_name()

const char * ruler_title_male_untranslated_name ( const struct ruler_title pruler_title)

Return the male ruler title name.

Definition at line 374 of file government.c.

Referenced by save_governments_ruleset(), save_nation(), and send_ruleset_governments().

◆ ruler_title_nation()

const struct nation_type * ruler_title_nation ( const struct ruler_title pruler_title)

Return the nation of the ruler title. Returns NULL if this is default.

Definition at line 365 of file government.c.

Referenced by send_ruleset_governments().

◆ untargeted_revolution_allowed()

bool untargeted_revolution_allowed ( void  )

Is it possible to start a revolution without specifying the target government in the current game?

Definition at line 566 of file government.c.

Referenced by real_menus_update(), revolution_length(), and gov_menu::update().