13#ifndef FC__GOVERNMENT_H
14#define FC__GOVERNMENT_H
28#define GOVF_LAST_USER_FLAG GOVF_USER_FLAG_8
29#define MAX_NUM_USER_GOVERNMENT_FLAGS (GOVF_LAST_USER_FLAG - GOVF_USER_FLAG_1 + 1)
36#define SPECHASH_TAG ruler_title
37#define SPECHASH_IKEY_TYPE struct nation_type *
38#define SPECHASH_IDATA_TYPE struct ruler_title *
40#define ruler_titles_iterate(ARG_hash, NAME_rule_title) \
41 TYPED_HASH_DATA_ITERATE(const struct ruler_title *, ARG_hash, \
43#define ruler_titles_iterate_end HASH_DATA_ITERATE_END
127#define governments_iterate(NAME_pgov) \
128 generic_iterate(struct government_iter, struct government *, \
129 NAME_pgov, government_iter_sizeof, government_iter_init)
130#define governments_iterate_end generic_iterate_end
132#define governments_re_active_iterate(_p) \
133 governments_iterate(_p) { \
134 if (!_p->ruledit_disabled) {
136#define governments_re_active_iterate_end \
138 } governments_iterate_end;
150 const char *helptxt);
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit int const struct action *paction struct unit struct city * pcity
const char * government_name_translation(const struct government *pgovern)
const char * default_title_for_player(const struct player *pplayer, char *buf, size_t buf_len)
bool government_has_flag(const struct government *pgov, enum gov_flag_id flag)
void governments_free(void)
const struct nation_type * ruler_title_nation(const struct ruler_title *pruler_title)
bool untargeted_revolution_allowed(void)
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)
const char * ruler_title_for_player(const struct player *pplayer, char *buf, size_t buf_len)
struct iterator * government_iter_init(struct government_iter *it)
const char * ruler_title_female_untranslated_name(const struct ruler_title *pruler_title)
Government_type_id government_count(void)
struct government * government_by_number(const Government_type_id gov)
struct government * government_of_player(const struct player *pplayer)
const char * government_name_for_player(const struct player *pplayer)
const char * ruler_title_male_untranslated_name(const struct ruler_title *pruler_title)
struct government * government_of_city(const struct city *pcity)
const char * gov_flag_helptxt(enum gov_flag_id id)
void governments_alloc(int num)
void user_gov_flags_init(void)
void gov_flags_free(void)
Government_type_id government_number(const struct government *pgovern)
const struct ruler_title_hash * government_ruler_titles(const struct government *pgovern)
Government_type_id government_index(const struct government *pgovern)
size_t government_iter_sizeof(void)
const char * government_rule_name(const struct government *pgovern)
struct government * government_by_translated_name(const char *name)
bool can_change_to_government(struct player *pplayer, const struct government *pgovern)
struct government * government_by_rule_name(const char *name)
void set_user_gov_flag_name(enum gov_flag_id id, const char *name, const char *helptxt)
struct requirement_vector reqs
char graphic_alt[MAX_LEN_NAME]
struct government * better
Government_type_id item_number
char sound_alt2[MAX_LEN_NAME]
struct government::@43 ai
struct name_translation name
char sound_str[MAX_LEN_NAME]
char graphic_str[MAX_LEN_NAME]
struct ruler_title_hash * ruler_titles
char sound_alt[MAX_LEN_NAME]
const struct nation_type * pnation