111 bool nationset_change);
165 _(
"The %s are no more!"),
174 if (
pcity->original != pplayer &&
pcity->original !=
nullptr
175 &&
pcity->original->is_alive) {
182 pcity->original,
"death-back_to_original");
191 log_verbose(
"Civil war strikes the remaining empire of %s",
198 log_verbose(
"The empire of %s is too small for civil war.",
254 ptile->extras_owner =
nullptr;
286 int tax,
int luxury,
int science)
291 log_error(
"received player_rates packet from %s before start",
294 _(
"Cannot change rates before game start."));
298 if (tax + luxury + science != 100) {
318 _(
"%s rate exceeds the max rate for %s."),
354 log_debug(
"Revolution finished for %s. Government is %s. "
361 _(
"%s now governs the %s as a %s."),
384 _(
"The tax rates for the %s are changed from "
385 "%3d%%/%3d%%/%3d%% (tax/luxury/science) to "
386 "%3d%%/%3d%%/%3d%%."),
419 _(
"You looted parts of %s map!"),
428 PL_(
"You loot %d gold!",
"You loot %d gold!",
ransom),
441 log_debug(
"Worthless enemy doesn't have more techs to steal.");
444 log_debug(
"Pressed tech %s from captured enemy",
492 _(
"You conquer %s as loot!"),
534 max_turns =
MAX(1, max_turns);
555 _(
"You can't revolt without selecting target government."));
576 log_debug(
"Government changed for %s. Target government is %s; "
577 "old %s. Revofin %d, Turn %d.",
player_name(pplayer),
604 if (anarchy && turns <= 0
610 _(
"You can't revolt the same turn you finished previous revolution."));
619 log_debug(
"Revolution started for %s. Target government is %s. "
631 _(
"The %s will switch to %s in the end of "
632 "the player phase."),
636 }
else if (turns > 0) {
640 PL_(
"The %s have incited a revolt! "
641 "%d turn of anarchy will ensue! "
642 "Target government is %s.",
643 "The %s have incited a revolt! "
644 "%d turns of anarchy will ensue! "
645 "Target government is %s.",
654 _(
"Revolution: returning to anarchy."));
661 log_debug(
"Government change complete for %s. Target government is %s; "
662 "now %s. Turn %d; revofin %d.",
player_name(pplayer),
695 log_debug(
"Update revolution for %s. Current government %s, "
696 "target %s, revofin %d, turn %d.",
player_name(pplayer),
715 _(
"You should choose a new government from the "
716 "government menu."));
740 if (value > max_value) {
747 }
else if (value > 0) {
750 if (value == max_value) {
783 _(
"Tax rate exceeded the max rate; adjusted."));
787 _(
"Science rate exceeded the max rate; adjusted."));
791 _(
"Luxury rate exceeded the max rate; adjusted."));
806 const struct unit_list
808 const struct unit_list
906 _(
"%s no longer gives us shared vision!"),
917 if (
tile_owner(ptile) == pplayer && ptile->worked !=
nullptr
926 _(
"%s no longer shares tiles with us!"),
937 _(
"The senate will not allow you to break treaty "
938 "with the %s. You must either dissolve the senate "
939 "or wait until a more timely moment."),
1001 _(
"The senate passes your bill because of the "
1002 "constant provocations of the %s."),
1006 _(
"The senate refuses to break treaty with the %s, "
1007 "but you have no trouble finding a new senate."),
1030 _(
"The diplomatic state between the %s "
1031 "and the %s is now %s."),
1036 _(
" %s canceled the diplomatic agreement! "
1037 "The diplomatic state between the %s and the %s "
1054 _(
"%s has attacked your ally %s! "
1055 "You cancel your alliance to the aggressor."),
1067 _(
"Your team mate %s declared war on %s. "
1068 "You are obligated to cancel alliance with %s."),
1154 if (src !=
nullptr) {
1190 if (
nullptr ==
pconn->playing &&
pconn->observer) {
1193 }
else if (
nullptr !=
pconn->playing) {
1216 if (src !=
nullptr) {
1243 if (
nullptr ==
pconn->playing &&
pconn->observer) {
1247 }
else if (
nullptr !=
pconn->playing) {
1289 if (
music !=
nullptr) {
1376 if (plr->
rgb !=
nullptr) {
1437 if (receiver !=
nullptr) {
1556 || (receiver && receiver == plr2)) {
1559 packet_ds->has_reason_to_cancel =
ds->has_reason_to_cancel;
1560 packet_ds->contact_turns_left =
ds->contact_turns_left;
1578 if (plr == receiver) {
1678 return pplayer->
rgb;
1698 log_error(
"Invalid value for 'game.server.plrcolormode' (%d)!",
1722 *
reason =
_(
"Can only set player color prior to game start if "
1723 "'plrcolormode' is PLR_SET.");
1788 log_verbose(
"Not enough unique colors for all players; there will be "
1812 if (!pplayer->rgb) {
1834 pplayer->
rgb =
nullptr;
1847 static char buf[64];
1882 if (utype !=
nullptr) {
1907 if (
nullptr == pplayer) {
1918 if (pplayer->
ai ==
nullptr) {
1952 pslot = pplayer->
slot;
1957 _(
"You've been removed from the game!"));
1960 _(
"%s has been removed from the game."),
1994 if (nationality != 0) {
2008 if (
is_ai(pplayer)) {
2089 while (surplus > 0) {
2093 economic->
tax += 10;
2109 const struct player *pplayer,
2123 if (other_player == pplayer) {
2126 }
else if (
nullptr != pnation && other_player->nation == pnation) {
2134 _(
"Another player already has the name '%s'. Please "
2135 "choose another name."),
name);
2140 if (
nullptr == pnation) {
2143 pnation = pplayer->
nation;
2154 if (
nullptr != caller
2158 _(
"Please choose a name containing only ASCII characters."),
2187 if (
nullptr !=
name) {
2195 log_debug(
"Name of player nb %d set to \"%s\".",
2200 log_verbose(
"Failed to set the name of the player nb %d to \"%s\": %s",
2206 if (
nullptr != caller) {
2212 if (
nullptr !=
name) {
2220 log_verbose(
"Name of player nb %d set to \"%s\" instead.",
2225 log_debug(
"Failed to set the name of the player nb %d to \"%s\": %s",
2236 log_verbose(
"Name of player nb %d set to \"%s\".",
2241 log_debug(
"Failed to set the name of the player nb %d to \"%s\": %s",
2255 log_debug(
"Failed to set the name of the player nb %d to \"%s\": %s",
2263 sizeof(pplayer->
name));
2272#ifndef FREECIV_NDEBUG
2332 _(
"You have made contact with the %s, ruled by %s."),
2336 _(
"You have made contact with the %s, ruled by %s."),
2389 log_debug(
"shuffle_players: creating shuffled order");
2391 for (
i = 0;
i <
n;
i++) {
2399 for (
i = 0;
i <
n;
i++) {
2412 log_debug(
"set_shuffled_players: loading shuffled array %p",
2431 log_debug(
"shuffled_player(%d) = %d (%s)",
2480 && pnation->server.no_startpos)
2502 log_debug(
"Nations '%s' (nb %d) and '%s' (nb %d) are in conflict.",
2507 match[idx] -=
x * 100;
2510 match[idx] +=
x * 100;
2537 log_debug(
"Picking a preferred nation.");
2543 log_debug(
"Picking an available nation.");
2561 log_debug(
"Picking an unwanted nation.");
2606 server.playable_nations = 0;
2609 server.playable_nations++;
2632 bool nationset_change)
2702 log_verbose(
"Current nationset \"%s\" doesn't fit all existing players.",
2718 log_verbose(
"Nation %s of player %s not in nationset \"%s\", unsetting.",
2735 if (pplayer->is_ready) {
2751 pplayer->is_ready =
FALSE;
2816 ds_co->has_reason_to_cancel = 0;
2817 ds_co->turns_left = 0;
2818 ds_co->contact_turns_left = 0;
2819 ds_oc->has_reason_to_cancel = 0;
2820 ds_oc->turns_left = 0;
2821 ds_oc->contact_turns_left = 0;
2826 if (other_player != pplayer) {
2876 if (pplayer->
team) {
2879 && pplayer !=
pdest) {
2974 log_verbose(
"Civil war chance for %s: prob %d, dice %d",
2977 return (dice < prob);
3025 log_normal(
_(
"Could not throw %s into civil war - too many players"),
3032 log_normal(
_(
"Could not throw %s into civil war - maxplayers (%d) reached"),
3039 log_normal(
_(
"Could not throw %s into civil war - no available nations"),
3074 log_verbose(
_(
"Could not throw %s into civil war - no available cities"),
3097 _(
"Your nation is thrust into civil war."));
3101 _(
"%s is the rebellious leader of the %s."),
3111 if (
i >= j || (
i > 0 &&
fc_rand(2) == 1)) {
3123 _(
"%s declares allegiance to the %s."),
3148 PL_(
"Civil war partitions the %s;"
3149 " the %s now hold %d city.",
3150 "Civil war partitions the %s;"
3151 " the %s now hold %d cities.",
3203 return server.nbarbarians;
3259 if (username ==
nullptr ||
strlen(username) == 0) {
3285 if (!
pconn->observer
3290 _(
"User '%s' is currently allowed to take control of your "
3291 "player while you are away. Use '/delegate cancel' to "
3292 "revoke this access."),
3303 _(
"Control of player '%s' is delegated to you."),
3312 _(
"Use '/delegate take <player>' to take control of a "
3313 "delegated player."));
3404 log_error(
"Bad number of multipliers %d from client for %s",
3409 for (
i = 0;
i < count;
i++) {
3414 log_error(
"Multiplier value %d for %s out of range for %s",
3420 log_error(
"Multiplier value %d between valid values for %s for %s",
3521 _(
"WARNING, we're LOW on FUNDS %s."),
3527 if (pplayer->got_tech && pplayer->research->researched > 0) {
3528 pplayer->research->researched = 0;
bool is_action_enabled_player(const struct civ_map *nmap, const action_id wanted_action, const struct player *actor_plr)
void adv_data_close(struct player *pplayer)
void adv_data_init(struct player *pplayer)
bool adv_data_phase_init(struct player *pplayer, bool is_new_phase)
void adv_data_default(struct player *pplayer)
const char * ai_name(const struct ai_type *ai)
const char * ai_type_name_or_fallback(const char *orig_name)
struct ai_type * ai_type_by_name(const char *search)
#define CALL_FUNC_EACH_AI(_func,...)
#define CALL_PLR_AI_FUNC(_func, _player,...)
void call_incident(enum incident_type type, enum casus_belli_range scope, const struct action *paction, struct player *violator, struct player *victim)
void ai_traits_close(struct player *pplayer)
struct player * create_barbarian_player(enum barbarian_type type)
#define BV_ISSET(bv, bit)
void citizens_nation_move(struct city *pcity, const struct player_slot *pslot_from, const struct player_slot *pslot_to, int move)
citizens citizens_nation_get(const struct city *pcity, const struct player_slot *pslot)
bool is_capital(const struct city *pcity)
const char * city_name_get(const struct city *pcity)
#define cities_iterate_end
#define city_list_iterate_safe(citylist, _city)
#define city_list_iterate(citylist, pcity)
#define city_tile(_pcity_)
#define cities_iterate(pcity)
#define city_owner(_pcity_)
#define city_list_iterate_end
#define city_list_iterate_safe_end
void city_refresh_queue_add(struct city *pcity)
bool player_balance_treasury_units_and_buildings(struct player *pplayer)
bool player_balance_treasury_units(struct player *pplayer)
void city_refresh_for_player(struct player *pplayer)
void city_refresh_queue_processing(void)
void connection_detach(struct connection *pconn, bool remove_unused_player)
#define conn_list_iterate(connlist, pconn)
#define conn_list_iterate_end
int player_culture(const struct player *plr)
int nation_history_gain(const struct player *pplayer)
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 * punit
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
void set_ai_level_directer(struct player *pplayer, enum ai_level level)
void establish_embassy(struct player *pplayer, struct player *aplayer)
void reject_all_treaties(struct player *pplayer)
void set_diplstate_type(struct player_diplstate *state1, struct player_diplstate *state2, enum diplstate_type type)
void cancel_all_meetings(struct player *pplayer)
bool could_intel_with_player(const struct player *pplayer, const struct player *aplayer)
int get_city_bonus(const struct city *pcity, enum effect_type effect_type)
int get_player_bonus(const struct player *pplayer, enum effect_type effect_type)
#define MAX_NUM_PLAYER_SLOTS
#define PL_(String1, String2, n)
size_t featured_text_apply_tag(const char *text_source, char *featured_text, size_t featured_text_len, enum text_tag_type tag_type, ft_offset_t start_offset, ft_offset_t stop_offset,...)
const struct ft_color ftc_server
const char * city_link(const struct city *pcity)
const struct ft_color ftc_any
bool is_player_phase(const struct player *pplayer, int phase)
#define GAME_DEFAULT_REVOLUTION_LENGTH
#define GAME_MIN_CIVILWARSIZE
#define GAME_MAX_CIVILWARSIZE
struct unit_type * crole_to_unit_type(char crole, struct player *pplayer)
const char * government_name_translation(const struct government *pgovern)
bool untargeted_revolution_allowed(void)
const char * ruler_title_for_player(const struct player *pplayer, char *buf, size_t buf_len)
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)
bool can_change_to_government(struct player *pplayer, const struct government *gov)
Government_type_id government_number(const struct government *pgovern)
const char * government_rule_name(const struct government *pgovern)
static GtkWidget * persistent
bool has_handicap(const struct player *pplayer, enum handicap_type htype)
void handicaps_init(struct player *pplayer)
void handicaps_close(struct player *pplayer)
struct impr_type * improvement_by_number(const Impr_type_id id)
bool wonder_visible_to_player(const struct impr_type *wonder, const struct player *pplayer, const struct player *owner, enum fc_tristate embassy)
#define fc_assert_msg(condition, message,...)
#define fc_assert_ret(condition)
#define log_verbose(message,...)
#define fc_assert(condition)
#define fc_assert_ret_val(condition, val)
#define fc_assert_action(condition, action)
#define log_debug(message,...)
#define log_normal(message,...)
#define log_error(message,...)
#define square_iterate(nmap, center_tile, radius, tile_itr)
#define square_iterate_end
#define whole_map_iterate(_map, _tile)
#define whole_map_iterate_end
void player_map_init(struct player *pplayer)
void map_claim_base(struct tile *ptile, struct extra_type *pextra, struct player *powner, struct player *ploser)
void map_claim_ownership(struct tile *ptile, struct player *powner, struct tile *psource, bool claim_bases)
void map_know_and_see_all(struct player *pplayer)
void give_map_from_player_to_player(struct player *pfrom, struct player *pdest)
void remove_shared_vision(struct player *pfrom, struct player *pto)
void player_map_free(struct player *pplayer)
void map_calculate_borders(void)
void remove_player_from_maps(struct player *pplayer)
bool give_distorted_map(struct player *pfrom, struct player *pto, int prob, bool reveal_cities)
enum mood_type player_mood(struct player *pplayer)
const char * multiplier_rule_name(const struct multiplier *pmul)
Multiplier_type_id multiplier_count(void)
bool multiplier_can_be_changed(struct multiplier *pmul, struct player *pplayer)
static struct multiplier multipliers[MAX_NUM_MULTIPLIERS]
struct multiplier * multiplier_by_number(Multiplier_type_id id)
Multiplier_type_id multiplier_index(const struct multiplier *pmul)
#define multipliers_iterate(_mul_)
#define multipliers_iterate_end
const char * nation_rule_name(const struct nation_type *pnation)
Nation_type_id nation_count(void)
Nation_type_id nation_number(const struct nation_type *pnation)
struct nation_leader * nation_leader_by_name(const struct nation_type *pnation, const char *name)
int nations_match(const struct nation_type *pnation1, const struct nation_type *pnation2, bool ignore_conflicts)
const char * nation_adjective_for_player(const struct player *pplayer)
int nation_set_index(const struct nation_set *pset)
struct nation_type * nation_of_player(const struct player *pplayer)
bool is_nation_playable(const struct nation_type *nation)
const struct rgbcolor * nation_color(const struct nation_type *pnation)
bool nation_is_in_set(const struct nation_type *pnation, const struct nation_set *pset)
int nation_set_count(void)
struct nation_set * nation_set_by_number(int id)
struct nation_set * nation_set_by_setting_value(const char *setting)
Nation_type_id nation_index(const struct nation_type *pnation)
const char * nation_set_rule_name(const struct nation_set *pset)
enum barbarian_type nation_barbarian_type(const struct nation_type *nation)
const char * nation_plural_for_player(const struct player *pplayer)
struct government * init_government_of_nation(const struct nation_type *pnation)
#define nation_list_iterate(nationlist, pnation)
#define nation_sets_iterate_end
#define nation_sets_iterate(NAME_pset)
#define nations_iterate_end
#define nation_list_iterate_end
#define nations_iterate(NAME_pnation)
#define NO_NATION_SELECTED
void notify_player(const struct player *pplayer, const struct tile *ptile, enum event_type event, const struct ft_color color, const char *format,...)
void notify_conn(struct conn_list *dest, const struct tile *ptile, enum event_type event, const struct ft_color color, const char *format,...)
void generic_handle_player_attribute_chunk(struct player *pplayer, const struct packet_player_attribute_chunk *chunk)
void send_attribute_block(const struct player *pplayer, struct connection *pconn)
#define web_send_packet(packetname, pconn,...)
int dsend_packet_player_remove(struct connection *pc, int playerno)
int send_packet_player_diplstate(struct connection *pc, const struct packet_player_diplstate *packet)
int send_packet_player_info(struct connection *pc, const struct packet_player_info *packet)
void lsend_packet_nation_availability(struct conn_list *dest, const struct packet_nation_availability *packet)
bool player_slot_is_used(const struct player_slot *pslot)
struct player * player_new(struct player_slot *pslot)
struct player * player_by_number(const int player_id)
bool players_on_same_team(const struct player *pplayer1, const struct player *pplayer2)
enum diplstate_type cancel_pact_result(enum diplstate_type oldstate)
int player_slot_count(void)
struct player_slot * player_slot_by_number(int player_id)
int player_get_expected_income(const struct player *pplayer)
int player_number(const struct player *pplayer)
const char * player_name(const struct player *pplayer)
void player_clear(struct player *pplayer, bool full)
int player_slot_index(const struct player_slot *pslot)
bool player_has_real_embassy(const struct player *pplayer, const struct player *pplayer2)
bool team_has_embassy(const struct team *pteam, const struct player *tgt_player)
void player_set_color(struct player *pplayer, const struct rgbcolor *prgbcolor)
int player_index(const struct player *pplayer)
bool player_set_nation(struct player *pplayer, struct nation_type *pnation)
enum dipl_reason pplayer_can_cancel_treaty(const struct player *p1, const struct player *p2)
struct player_diplstate * player_diplstate_get(const struct player *plr1, const struct player *plr2)
bool pplayers_allied(const struct player *pplayer, const struct player *pplayer2)
bool gives_shared_tiles(const struct player *me, const struct player *them)
bool gives_shared_vision(const struct player *me, const struct player *them)
void player_destroy(struct player *pplayer)
#define players_iterate_end
#define players_iterate(_pplayer)
#define player_list_iterate(playerlist, pplayer)
static bool is_barbarian(const struct player *pplayer)
#define player_list_iterate_end
#define set_as_human(plr)
#define players_iterate_alive_end
#define players_iterate_alive(_pplayer)
void handle_player_phase_done(struct player *pplayer, int turn)
void send_nation_availability(struct conn_list *dest, bool nationset_change)
void handle_player_multiplier(struct player *pplayer, int count, const int *multipliers)
void server_player_set_name(struct player *pplayer, const char *name)
int barbarian_count(void)
void send_player_all_c(struct player *src, struct conn_list *dest)
static void send_player_remove_info_c(const struct player_slot *pslot, struct conn_list *dest)
struct player * server_create_player(int player_id, const char *ai_tname, struct rgbcolor *prgbcolor, bool allow_ai_type_fallbacking)
const struct rgbcolor * player_preferred_color(struct player *pplayer)
void player_update_last_war_action(struct player *pplayer)
void handle_player_attribute_chunk(struct player *pplayer, const struct packet_player_attribute_chunk *chunk)
void player_status_add(struct player *plr, enum player_status pstatus)
int normal_player_count(void)
static void send_player_info_c_real(struct player *src, struct conn_list *dest)
static enum plr_info_level player_info_level(struct player *plr, struct player *receiver)
static void package_player_diplstate(struct player *plr1, struct player *plr2, struct packet_player_diplstate *packet_ds, struct player *receiver, enum plr_info_level min_info_level)
void player_set_under_human_control(struct player *pplayer)
static void maybe_claim_base(struct tile *ptile, struct player *new_owner, struct player *old_owner)
void playercolor_free(void)
static struct nation_set * current_nationset(void)
void give_midgame_initial_units(struct player *pplayer, struct tile *ptile)
static int get_player_maxrate(struct player *pplayer)
static void call_first_contact(struct player *pplayer, struct player *aplayer)
void player_limit_to_max_rates(struct player *pplayer)
bool civil_war_triggered(struct player *pplayer)
void server_player_set_color(struct player *pplayer, const struct rgbcolor *prgbcolor)
void player_set_to_ai_mode(struct player *pplayer, enum ai_level skill_level)
bool server_player_set_name_full(const struct connection *caller, struct player *pplayer, const struct nation_type *pnation, const char *name, char *error_buf, size_t error_buf_len)
bool player_delegation_active(const struct player *pplayer)
void player_info_thaw(void)
void player_info_freeze(void)
struct player * player_by_user_delegated(const char *name)
void maybe_make_contact(struct tile *ptile, struct player *pplayer)
void handle_player_attribute_block(struct player *pplayer)
static void send_nation_availability_real(struct conn_list *dest, bool nationset_change)
struct nation_type * pick_a_nation(const struct nation_list *choices, bool ignore_conflicts, bool needs_startpos, enum barbarian_type barb_type)
static enum diplstate_type get_default_diplstate(const struct player *pplayer1, const struct player *pplayer2)
void playercolor_init(void)
void check_player_max_rates(struct player *pplayer)
void kill_player(struct player *pplayer)
const char * player_color_ftstr(struct player *pplayer)
void send_player_info_c(struct player *src, struct conn_list *dest)
void set_shuffled_players(int *shuffled_players)
struct player * civil_war(struct player *pplayer)
static int shuffled_order[MAX_NUM_PLAYER_SLOTS]
void player_status_reset(struct player *plr)
void send_delegation_info(const struct connection *pconn)
void handle_player_change_government(struct player *pplayer, Government_type_id government)
void update_national_activities(struct player *pplayer, int old_gold)
struct conn_list * player_reply_dest(struct player *pplayer)
void update_players_after_alliance_breakup(struct player *pplayer, struct player *pplayer2, const struct unit_list *pplayer_seen_units, const struct unit_list *pplayer2_seen_units)
static int revolentype_length(enum revolen_type rltype, struct government *gov)
bool player_status_check(struct player *plr, enum player_status pstatus)
bool civil_war_possible(struct player *pplayer, bool conquering_city, bool honour_server_option)
struct rgbcolor * playercolor_get(int id)
void player_delegation_set(struct player *pplayer, const char *username)
static bool server_player_name_is_allowed(const struct connection *caller, const struct player *pplayer, const struct nation_type *pnation, const char *name, char *error_buf, size_t error_buf_len)
int playercolor_count(void)
void shuffle_players(void)
static void package_player_info(struct player *plr, struct packet_player_info *packet, struct packet_web_player_info_addition *web_packet, struct player *receiver, enum plr_info_level min_info_level)
void server_remove_player(struct player *pplayer)
void government_change(struct player *pplayer, struct government *gov, bool revolution_finished)
void server_player_init(struct player *pplayer, bool initmap, bool needs_team)
static void send_player_diplstate_c_real(struct player *src, struct conn_list *dest)
void handle_diplomacy_cancel_pact(struct player *pplayer, int other_player_id, enum clause_type clause)
void make_contact(struct player *pplayer1, struct player *pplayer2, struct tile *ptile)
void playercolor_add(struct rgbcolor *prgbcolor)
void update_capital(struct player *pplayer)
void count_playable_nations(void)
void handle_player_rates(struct player *pplayer, int tax, int luxury, int science)
bool player_color_changeable(const struct player *pplayer, const char **reason)
void assign_player_colors(void)
static void package_player_common(struct player *plr, struct packet_player_info *packet, struct packet_web_player_info_addition *web_packet)
bool client_can_pick_nation(const struct nation_type *pnation)
void send_player_diplstate_c(struct player *src, struct conn_list *dest)
static struct player * split_player(struct player *pplayer)
struct player * shuffled_player(int i)
void player_loot_player(struct player *pvictor, struct player *pvictim)
const char * player_delegation_get(const struct player *pplayer)
bool nation_is_in_current_set(const struct nation_type *pnation)
void enter_war(struct player *pplayer, struct player *pplayer2)
static int player_info_frozen_level
int revolution_length(struct government *gov, struct player *plr)
void fit_nationset_to_players(void)
void reset_all_start_commands(bool plrchange)
void update_revolution(struct player *pplayer)
#define allowed_nations_iterate(pnation)
#define allowed_nations_iterate_end
enum tech_state research_invention_set(struct research *presearch, Tech_type_id tech, enum tech_state value)
const char * research_advance_rule_name(const struct research *presearch, Tech_type_id tech)
int player_tech_upkeep(const struct player *pplayer)
struct research * research_get(const struct player *pplayer)
enum tech_state research_invention_state(const struct research *presearch, Tech_type_id tech)
void research_update(struct research *presearch)
void rgbcolor_destroy(struct rgbcolor *prgbcolor)
bool rgbcolors_are_equal(const struct rgbcolor *c1, const struct rgbcolor *c2)
bool rgbcolor_to_hex(const struct rgbcolor *prgbcolor, char *hex, size_t hex_len)
#define rgbcolor_list_iterate_end
#define rgbcolor_list_iterate(rgbcolorlist, prgbcolor)
void script_server_signal_emit(const char *signal_name,...)
void script_server_remove_exported_object(void *object)
void array_shuffle(int *array, int n)
bool is_ascii_name(const char *name)
void remove_leading_trailing_spaces(char *s)
#define CLIP(lower, current, upper)
void send_spaceship_info(struct player *src, struct conn_list *dest)
void spaceship_init(struct player_spaceship *ship)
#define DEFAULT_SPECIALIST
void player_nation_defaults(struct player *pplayer, struct nation_type *pnation, bool set_name)
bool game_was_started(void)
void check_for_full_turn_done(void)
enum server_states server_state(void)
void set_ai_level_direct(struct player *pplayer, enum ai_level level)
enum capital_type capital
struct rgbcolor_list * plr_colors
char start_units[MAX_LEN_STARTUNIT]
enum plrcolor_mode plrcolormode
struct conn_list * est_connections
struct packet_game_info info
struct packet_scenario_info scenario
char nationset[MAX_LEN_NAME]
struct civ_game::@32::@36 server
struct government * government_during_revolution
enum cmdlevel access_level
enum barbarian_type barb_type
struct nation_type::@54::@56 server
enum gameloss_style gameloss_style
enum gold_upkeep_style gold_upkeep_style
bool homeless_gold_upkeep
enum ai_level skill_level
enum revolen_type revolentype
enum persistent_ready persistent_ready
bool is_pickable[MAX_NUM_NATIONS]
enum ai_level ai_skill_level
int multiplier[MAX_NUM_MULTIPLIERS]
char username[MAX_LEN_NAME]
bv_player gives_shared_vision
int love[MAX_NUM_PLAYER_SLOTS]
Government_type_id target_government
int multiplier_target[MAX_NUM_MULTIPLIERS]
int multiplier_changed[MAX_NUM_MULTIPLIERS]
bv_player gives_shared_tiles
enum barbarian_type barbarian_type
Government_type_id government
enum ai_level skill_level
enum barbarian_type barbarian_type
int love[MAX_NUM_PLAYER_SLOTS]
char has_reason_to_cancel
struct city_list * cities
struct player_ai ai_common
struct government * target_government
char username[MAX_LEN_NAME]
struct government * government
struct connection * current_conn
char * savegame_ai_type_name
const struct ai_type * ai
struct conn_list * connections
struct player::@73::@75 server
struct player_economic economic
char delegate_to[MAX_LEN_NAME]
struct player_spaceship spaceship
bv_player gives_shared_vision
struct player_score score
struct player_tile * private_map
struct multiplier_value multipliers[MAX_NUM_MULTIPLIERS]
bv_player really_gives_vision
struct nation_type * nation
struct nation_style * style
struct player_slot * slot
bv_player gives_shared_tiles
char orig_username[MAX_LEN_NAME]
Tech_type_id researching_saved
struct player * extras_owner
struct unit::@84::@87 server
struct music_style * player_music_style(struct player *plr)
int music_style_number(const struct music_style *pms)
int style_number(const struct nation_style *pstyle)
int fc_snprintf(char *str, size_t n, const char *format,...)
size_t fc_strlcpy(char *dest, const char *src, size_t n)
int fc_strcasecmp(const char *str0, const char *str1)
int cat_snprintf(char *str, size_t n, const char *format,...)
#define sz_strlcpy(dest, src)
int team_number(const struct team *pteam)
bool team_add_player(struct player *pplayer, struct team *pteam)
const struct player_list * team_members(const struct team *pteam)
#define advance_index_iterate_end
#define advance_index_iterate(_start, _index)
bool tile_has_claimable_base(const struct tile *ptile, const struct unit_type *punittype)
struct city * tile_city(const struct tile *ptile)
#define tile_owner(_tile)
#define trade_routes_iterate_safe_end
#define trade_routes_iterate_safe(c, proute)
#define is_unit_homeless(_pu_)
#define unit_list_iterate(unitlist, punit)
#define unit_list_iterate_safe(unitlist, _unit)
#define unit_list_iterate_end
#define unit_list_iterate_safe_end
const struct unit_type * unit_type_get(const struct unit *punit)
int utype_upkeep_cost(const struct unit_type *ut, struct player *pplayer, Output_type_id otype)
bool unit_has_type_flag(const struct unit *punit, enum unit_type_flag_id flag)
void send_updated_vote_totals(struct conn_list *dest)