395 _(
"A city called %s already exists."),
cityname);
423 _(
"Can't use %s as a city name. It is reserved for %s."),
441 _(
"%s is not a valid name. Only ASCII or "
442 "ruleset names are allowed for cities."),
463 log_verbose(
"Suggesting city name for %s at (%d,%d)",
559 log_debug(
"City name not found in rulesets.");
591 bool rehome,
bool verbose)
599 "Tried to transfer the dying unit %d.",
611 _(
"Changed homecity of %s to %s."),
625 log_debug(
"%s already have a %s. Can't transfer from %s",
640 _(
"The %s already have a %s. Can't transfer yours."),
659 _(
"Transferred %s in %s from %s to %s."),
673 _(
"Transferred %s from %s to %s."),
687 _(
"%s %s lost in transfer to %s %s"),
722 struct unit_list *units,
struct city *pcity,
734 if (
vunit->server.dying) {
784 if (
vunit->server.dying) {
811 log_verbose(
"Lost %s %s at (%d,%d) when %s was lost.",
817 _(
"%s lost along with control of %s."),
858 const struct player *pplayer,
870 log_error(
"Non of my own cities will be at war with me!");
1055 _(
"A replacement %s was built in %s."),
1185 _(
"You already had a city called %s."
1186 " The city was renamed to %s."),
1213 && !
aunit->server.dying) {
1296 _(
"Transfer of %s"));
1314 _(
"The people in %s are stunned by your "
1315 "technological insight!"),
1320 _(
"Workers spontaneously gather and upgrade "
1325 _(
"Workers spontaneously gather and upgrade "
1326 "%s infrastructure."),
1473 Q_(
"?initbldg:Free %s"));
1496 Q_(
"?initbldg:Free %s"));
1520 const char *
name,
struct player *nationality)
1643 _(
"You have founded %s."),
1713 struct vision *old_vision;
1786 _(
"Moved %s out of disbanded city %s "
1787 "since it cannot stay on %s."),
1798 _(
"When %s was disbanded your %s could not "
1799 "get out, and it was therefore lost."),
1832 _(
"When %s was disbanded your %s in %s was trapped, "
1833 "and it was therefore lost."),
1934 if (old_vision !=
NULL) {
1994#ifndef FREECIV_NDEBUG
2000 "Can't conquer city during peace.");
2007 FALSE,
"Bad unit for city occupation.");
2012 "Can't conquer city while transported.");
2042 _(
"You destroy %s completely."),
2045 _(
"%s has been destroyed by %s."),
2071 PL_(
"You conquer %s; your lootings accumulate"
2073 "You conquer %s; your lootings accumulate"
2074 " to %d gold!",
coins),
2078 PL_(
"%s conquered %s and looted %d gold"
2080 "%s conquered %s and looted %d gold"
2081 " from the city.",
coins),
2087 _(
"You conquer %s."),
2090 _(
"%s conquered %s."),
2097 PL_(
"You have liberated %s!"
2098 " Lootings accumulate to %d gold.",
2099 "You have liberated %s!"
2100 " Lootings accumulate to %d gold.",
coins),
2104 PL_(
"%s liberated %s and looted %d gold"
2106 "%s liberated %s and looted %d gold"
2107 " from the city.",
coins),
2113 _(
"You have liberated %s!"),
2116 _(
"%s liberated %s."),
2160 return walls > 0 ? walls : 0;
2193 packet->
name[0] =
'\0';
2326 if (!pplayer && !
pconn->observer) {
2347 log_error(
"%s radius changed while sending to player.",
2375 if (!dest || dest == powner) {
2416 struct city *pcity,
struct tile *ptile)
2513 if (routes !=
NULL) {
2538 packet->
id = pcity->
id;
2572 if (nationality != 0) {
2599 log_error(
"Failed to fix inconsistent city size.");
2609 log_error(
"City size %d, citizen count %d for %s",
2799 log_error(
"Trying to update bad city (wrong location) "
2800 "at %i,%i for player %s",
2804 }
else if (
pdcity->identity != pcity->
id) {
2805 log_error(
"Trying to update old city (wrong identity) "
2806 "at %i,%i for player %s",
2847 if (!pcity || pcity->
id !=
pdcity->identity) {
2894 _(
"Trade between %s and %s lost along with city."),
2899 _(
"Trade route between %s and %s canceled."),
2907 _(
"Trade between %s city %s and %s lost along with "
2915 _(
"Sorry, the %s canceled the trade route "
2916 "from %s to your city %s."),
2921 _(
"We canceled the trade route "
2922 "from %s to %s city %s."),
2975 _(
"%s has been struck by a plague! Population lost!"),
3109 bool update =
FALSE;
3201 _(
"The %s have stopped building The %s in %s."),
3223 source =
_(
" from the worklist");
3228 source =
_(
" as suggested by the advisor");
3245 _(
"%s is building %s%s."),
3254 _(
"The %s have started building The %s in %s."),
3350 if (!pcity->server.synced) {
3423 PL_(
"You sell %s in %s (now landlocked)"
3425 "You sell %s in %s (now landlocked)"
3426 " for %d gold.",
price),
3500 log_debug(
"[%s (%d)] city size: %d; specialists: %d (before change)",
3563 ftc_server,
_(
"The size of the city map of %s is %s."),
3569 log_debug(
"[%s (%d)] city size: %d; specialists: %d (after change)",
void advisor_choose_build(struct player *pplayer, struct city *pcity)
int adv_could_unit_move_to_tile(struct unit *punit, struct tile *dest_tile)
#define CALL_FUNC_EACH_AI(_func,...)
#define CALL_PLR_AI_FUNC(_func, _player,...)
bool is_land_barbarian(struct player *pplayer)
void dbv_init(struct dbv *pdbv, int bits)
void dbv_set(struct dbv *pdbv, int bit)
bool dbv_isset(const struct dbv *pdbv, int bit)
void dbv_free(struct dbv *pdbv)
#define BV_ARE_EQUAL(vec1, vec2)
#define BV_ISSET(bv, bit)
#define BV_ISSET_ANY(vec)
citizens citizens_nation_get(const struct city *pcity, const struct player_slot *pslot)
void citizens_init(struct city *pcity)
void citizens_convert_conquest(struct city *pcity)
void citizens_update(struct city *pcity, struct player *plr)
bool is_free_worked(const struct city *pcity, const struct tile *ptile)
void city_map_radius_sq_set(struct city *pcity, int radius_sq)
int city_production_build_shield_cost(const struct city *pcity)
void city_name_set(struct city *pcity, const char *new_name)
int city_granary_size(int city_size)
citizens player_angry_citizens(const struct player *pplayer)
void city_choose_build_default(const struct civ_map *nmap, struct city *pcity)
struct tile * city_map_to_tile(const struct civ_map *nmap, const struct tile *city_center, int city_radius_sq, int city_map_x, int city_map_y)
bool city_has_building(const struct city *pcity, const struct impr_type *pimprove)
bool is_capital(const struct city *pcity)
const char * city_name_get(const struct city *pcity)
void city_remove_improvement(struct city *pcity, const struct impr_type *pimprove)
struct output_type * get_output_type(Output_type_id output)
bool can_city_build_improvement_now(const struct city *pcity, const struct impr_type *pimprove)
citizens player_content_citizens(const struct player *pplayer)
bool city_unhappy(const struct city *pcity)
struct city * create_city_virtual(struct player *pplayer, struct tile *ptile, const char *name)
struct city * city_list_find_number(struct city_list *This, int id)
int city_illness_calc(const struct city *pcity, int *ill_base, int *ill_size, int *ill_trade, int *ill_pollution)
int city_change_production_penalty(const struct city *pcity, const struct universal *target)
bool city_can_be_built_here(const struct civ_map *nmap, const struct tile *ptile, const struct unit *punit, bool hut_test)
bool city_happy(const struct city *pcity)
void city_add_improvement(struct city *pcity, const struct impr_type *pimprove)
int city_tile_output_now(const struct city *pcity, const struct tile *ptile, Output_type_id otype)
int city_map_radius_sq_get(const struct city *pcity)
void citylog_map_workers(enum log_level level, struct city *pcity)
citizens city_specialists(const struct city *pcity)
struct city * city_list_find_name(struct city_list *This, const char *name)
bool can_city_build_now(const struct civ_map *nmap, const struct city *pcity, const struct universal *target)
bool can_city_build_unit_now(const struct civ_map *nmap, const struct city *pcity, const struct unit_type *punittype)
int city_map_tiles(int city_radius_sq)
bool city_can_work_tile(const struct city *pcity, const struct tile *ptile)
int city_turns_to_grow(const struct city *pcity)
void city_rally_point_clear(struct city *pcity)
const char * city_production_name_translation(const struct city *pcity)
#define cities_iterate_end
#define city_list_iterate(citylist, pcity)
#define city_tile(_pcity_)
#define cities_iterate(pcity)
#define CITY_MAP_MAX_RADIUS_SQ
static citizens city_size_get(const struct city *pcity)
#define city_tile_iterate_skip_free_worked(_nmap, _radius_sq, _city_tile, _tile, _index, _x, _y)
#define CITY_MAP_MIN_RADIUS_SQ
#define city_map_iterate_radius_sq(_radius_sq_min, _radius_sq_max, _x, _y)
#define output_type_iterate(output)
#define city_owner(_pcity_)
#define city_tile_iterate_skip_free_worked_end
#define city_list_iterate_end
#define city_map_iterate_radius_sq_end
#define city_tile_iterate(_nmap, _radius_sq, _city_tile, _tile)
#define city_tile_iterate_end
#define city_built_iterate(_pcity, _p)
#define city_map_iterate_without_index_end
#define city_built_iterate_end
#define city_map_iterate_without_index(_radius_sq, _x, _y)
#define output_type_iterate_end
void auto_arrange_workers(struct city *pcity)
void city_refresh_queue_add(struct city *pcity)
void nullify_prechange_production(struct city *pcity)
void city_counters_refresh(struct city *pcity)
bool city_reduce_size(struct city *pcity, citizens pop_loss, struct player *destroyer, const char *reason)
bool city_refresh(struct city *pcity)
void city_refresh_for_player(struct player *pplayer)
void city_refresh_queue_processing(void)
void remove_obsolete_buildings_city(struct city *pcity, bool refresh)
enum announce_type announce
void cm_copy_parameter(struct cm_parameter *dest, const struct cm_parameter *const src)
void conn_list_do_unbuffer(struct conn_list *dest)
struct connection * conn_by_user(const char *user_name)
void conn_list_do_buffer(struct conn_list *dest)
bool conn_is_global_observer(const struct connection *pconn)
#define conn_list_iterate(connlist, pconn)
#define conn_list_iterate_end
#define city_counters_iterate_end
#define city_counters_iterate(pcount)
int city_culture(const struct city *pcity)
static void homeless(QVariant data1, QVariant data2)
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 cost
int get_city_bonus(const struct city *pcity, enum effect_type effect_type)
int get_unit_bonus(const struct unit *punit, enum effect_type effect_type)
int get_city_output_bonus(const struct city *pcity, const struct output_type *poutput, enum effect_type effect_type)
int get_player_bonus(const struct player *pplayer, enum effect_type effect_type)
#define MAX_NUM_BUILDING_LIST
#define MAX_NUM_PLAYER_SLOTS
signed short Continent_id
#define IDENTITY_NUMBER_ZERO
#define PL_(String1, String2, n)
void fc_mutex_allocate(fc_mutex *mutex)
void fc_mutex_release(fc_mutex *mutex)
const char * city_tile_link(const struct city *pcity)
const struct ft_color ftc_server
const char * city_link(const struct city *pcity)
const char * unit_link(const struct unit *punit)
const char * unit_tile_link(const struct unit *punit)
struct city * game_city_by_name(const char *name)
struct unit * game_unit_by_number(int id)
void game_remove_city(struct world *gworld, struct city *pcity)
struct city * game_city_by_number(int id)
void send_game_info(struct conn_list *dest)
static GtkWidget * source
bool has_handicap(const struct player *pplayer, enum handicap_type htype)
void idex_register_city(struct world *iworld, struct city *pcity)
struct impr_type * improvement_by_number(const Impr_type_id id)
int impr_sell_gold(const struct impr_type *pimprove)
bool can_city_sell_building(const struct city *pcity, const struct impr_type *pimprove)
bool is_improvement(const struct impr_type *pimprove)
bool is_improvement_visible(const struct impr_type *pimprove)
Impr_type_id improvement_index(const struct impr_type *pimprove)
int impr_buy_gold_cost(const struct city *pcity, const struct impr_type *pimprove, int shields_in_stock)
bool is_wonder(const struct impr_type *pimprove)
bool is_great_wonder(const struct impr_type *pimprove)
bool improvement_has_flag(const struct impr_type *pimprove, enum impr_flag_id flag)
struct city * city_from_small_wonder(const struct player *pplayer, const struct impr_type *pimprove)
const char * improvement_name_translation(const struct impr_type *pimprove)
struct city * city_from_great_wonder(const struct impr_type *pimprove)
bool is_small_wonder(const struct impr_type *pimprove)
#define improvement_iterate_end
#define improvement_iterate(_p)
void adv_city_free(struct city *pcity)
void adv_city_update(struct city *pcity)
void adv_city_alloc(struct city *pcity)
#define fc_assert_msg(condition, message,...)
#define fc_assert_ret(condition)
#define log_verbose(message,...)
#define fc_assert(condition)
#define fc_assert_ret_msg(condition, message,...)
#define fc_assert_ret_val(condition, val)
#define fc_assert_action(condition, action)
#define log_debug(message,...)
#define log_base(level, message,...)
#define log_error(message,...)
#define fc_assert_ret_val_msg(condition, val, message,...)
bool is_safe_ocean(const struct civ_map *nmap, const struct tile *ptile)
int real_map_distance(const struct tile *tile0, const struct tile *tile1)
#define adjc_iterate(nmap, center_tile, itr_tile)
#define whole_map_iterate(_map, _tile)
#define whole_map_iterate_end
void vision_clear_sight(struct vision *vision)
void map_claim_ownership(struct tile *ptile, struct player *powner, struct tile *psource, bool claim_bases)
bool map_is_known(const struct tile *ptile, const struct player *pplayer)
void destroy_extra(struct tile *ptile, struct extra_type *pextra)
void send_tile_info(struct conn_list *dest, struct tile *ptile, bool send_unknown)
struct vision_site * map_get_player_city(const struct tile *ptile, const struct player *pplayer)
void map_show_tile(struct player *src_player, struct tile *ptile)
void give_citymap_from_player_to_player(struct city *pcity, struct player *pfrom, struct player *pdest)
void tile_change_side_effects(struct tile *ptile, bool refresh_city)
bool map_is_known_and_seen(const struct tile *ptile, const struct player *pplayer, enum vision_layer vlayer)
void change_playertile_site(struct player_tile *ptile, struct vision_site *new_site)
void map_claim_border(struct tile *ptile, struct player *owner, int radius_sq)
void update_tile_knowledge(struct tile *ptile)
bool upgrade_city_extras(struct city *pcity, struct extra_type **gained)
void map_clear_border(struct tile *ptile)
struct player_tile * map_get_player_tile(const struct tile *ptile, const struct player *pplayer)
void vision_change_sight(struct vision *vision, const v_radius_t radius_sq)
#define map_get_player_site(_ptile_, _pplayer_)
#define fc_calloc(n, esz)
bool can_exist_at_tile(const struct civ_map *nmap, const struct unit_type *utype, const struct tile *ptile)
bool can_unit_exist_at_tile(const struct civ_map *nmap, const struct unit *punit, const struct tile *ptile)
bool is_native_tile(const struct unit_type *punittype, const struct tile *ptile)
bool is_city_channel_tile(const struct civ_map *nmap, const struct unit_class *punitclass, const struct tile *ptile, const struct tile *pexclude)
bool can_unit_survive_at_tile(const struct civ_map *nmap, const struct unit *punit, const struct tile *ptile)
bool is_native_near_tile(const struct civ_map *nmap, const struct unit_class *uclass, const struct tile *ptile)
const char * nation_city_name(const struct nation_city *pncity)
const struct nation_city_list * nation_cities(const struct nation_type *pnation)
const char * nation_rule_name(const struct nation_type *pnation)
enum nation_city_preference nation_city_preference_revert(enum nation_city_preference prefer)
Nation_type_id nation_count(void)
struct nation_type * nation_of_unit(const struct unit *punit)
const char * nation_adjective_for_player(const struct player *pplayer)
enum nation_city_preference nation_city_terrain_preference(const struct nation_city *pncity, const struct terrain *pterrain)
struct nation_type * nation_of_player(const struct player *pplayer)
enum nation_city_preference nation_city_river_preference(const struct nation_city *pncity)
Nation_type_id nation_index(const struct nation_type *pnation)
const char * nation_plural_for_player(const struct player *pplayer)
#define nation_list_iterate(nationlist, pnation)
#define nation_city_list_iterate(citylist, pncity)
#define nation_list_iterate_end
#define nation_city_list_iterate_end
void notify_player(const struct player *pplayer, const struct tile *ptile, enum event_type event, const struct ft_color color, const char *format,...)
#define web_send_packet(packetname, pconn,...)
#define web_lsend_packet(packetname,...)
int send_packet_city_rally_point(struct connection *pc, const struct packet_city_rally_point *packet, bool force_to_send)
void dlsend_packet_city_remove(struct conn_list *dest, int city_id)
void lsend_packet_city_nationalities(struct conn_list *dest, const struct packet_city_nationalities *packet, bool force_to_send)
int send_packet_city_info(struct connection *pc, const struct packet_city_info *packet, bool force_to_send)
void lsend_packet_trade_route_info(struct conn_list *dest, const struct packet_trade_route_info *packet)
int send_packet_trade_route_info(struct connection *pc, const struct packet_trade_route_info *packet)
void lsend_packet_city_info(struct conn_list *dest, const struct packet_city_info *packet, bool force_to_send)
int send_packet_city_nationalities(struct connection *pc, const struct packet_city_nationalities *packet, bool force_to_send)
void lsend_packet_city_short_info(struct conn_list *dest, const struct packet_city_short_info *packet)
void lsend_packet_worker_task(struct conn_list *dest, const struct packet_worker_task *packet)
int dsend_packet_city_remove(struct connection *pc, int city_id)
void lsend_packet_city_rally_point(struct conn_list *dest, const struct packet_city_rally_point *packet, bool force_to_send)
int player_number(const struct player *pplayer)
const char * player_name(const struct player *pplayer)
bool can_player_see_unit(const struct player *pplayer, const struct unit *punit)
bool pplayers_at_war(const struct player *pplayer, const struct player *pplayer2)
int player_slot_index(const struct player_slot *pslot)
bool player_has_flag(const struct player *pplayer, enum plr_flag_id flag)
int player_index(const struct player *pplayer)
bool player_can_see_city_externals(const struct player *pow_player, const struct city *target_city)
bool pplayers_allied(const struct player *pplayer, const struct player *pplayer2)
bool can_player_see_units_in_city(const struct player *pplayer, const struct city *pcity)
struct player * player_slot_get_player(const struct player_slot *pslot)
bool can_player_see_city_internals(const struct player *pplayer, const struct city *pcity)
#define players_iterate_end
#define players_iterate(_pplayer)
static bool is_barbarian(const struct player *pplayer)
#define player_slots_iterate(_pslot)
#define players_iterate_alive_end
#define player_slots_iterate_end
#define players_iterate_alive(_pplayer)
int normal_player_count(void)
bool civil_war_triggered(struct player *pplayer)
void maybe_make_contact(struct tile *ptile, struct player *pplayer)
void send_player_info_c(struct player *src, struct conn_list *dest)
struct player * civil_war(struct player *pplayer)
bool civil_war_possible(struct player *pplayer, bool conquering_city, bool honour_server_option)
void update_capital(struct player *pplayer)
#define allowed_nations_iterate(pnation)
#define allowed_nations_iterate_end
bool is_req_active(const struct req_context *context, const struct player *other_player, const struct requirement *req, const enum req_problem_type prob_type)
bool are_universals_equal(const struct universal *psource1, const struct universal *psource2)
int universal_number(const struct universal *source)
#define requirement_vector_iterate_end
#define requirement_vector_iterate(req_vec, preq)
struct research * research_get(const struct player *pplayer)
bool road_has_flag(const struct road_type *proad, enum road_flag_id flag)
#define sanity_check_city(x)
void script_server_signal_emit(const char *signal_name,...)
void script_server_remove_exported_object(void *object)
static struct connection connections[MAX_NUM_CONNECTIONS]
static struct setting settings[]
bool is_ascii_name(const char *name)
#define CLIP(lower, current, upper)
void spaceship_lost(struct player *pplayer)
Specialist_type_id specialist_count(void)
#define specialist_type_iterate_end
#define specialist_type_iterate(sp)
#define DEFAULT_SPECIALIST
SPECPQ_PRIORITY_TYPE priority
static int recursion[AIT_LAST]
int identity_number(void)
enum server_states server_state(void)
struct worker_task_list * task_reqs
enum city_wl_cancel_behavior wlcb
struct built_status built[B_LAST]
int last_turns_shield_surplus
enum capital_type capital
bv_city_options city_options
enum city_acquire_type acquire_t
struct trade_route_list * routes
enum city_needs_arrange needs_arrange
struct universal production
struct unit_order * orders
struct city::@16 rally_point
int unhappy_penalty[O_LAST]
int before_change_shields
citizens feel[CITIZEN_LAST][FEELING_LAST]
citizens specialists[SP_MAX]
struct city::@17::@19 server
struct cm_parameter * cm_parameter
struct universal changed_from
struct unit_list * units_supported
enum city_names_mode allowed_city_names
struct civ_game::@31::@35::@39 mutexes
struct conn_list * glob_observers
struct conn_list * est_connections
struct packet_game_info info
int global_init_buildings[MAX_NUM_BUILDING_LIST]
struct civ_game::@31::@35 server
struct civ_game::@30 rgame
int init_buildings[MAX_NUM_BUILDING_LIST]
struct nation_list * parent_nations
struct nation_type::@51::@53 server
struct nation_list * civilwar_nations
int last_turns_shield_surplus
int before_change_shields
int ppl_content[FEELING_LAST]
bv_city_options city_options
enum capital_type capital
enum city_acquire_type acquire_type
int ppl_unhappy[FEELING_LAST]
enum city_wl_cancel_behavior wl_cb
int ppl_angry[FEELING_LAST]
char name[MAX_LEN_CITYNAME]
int ppl_happy[FEELING_LAST]
bool diplomat_investigate
int unhappy_penalty[O_LAST]
enum capital_type capital
char name[MAX_LEN_CITYNAME]
bool team_pooled_research
bool reveal_trade_partner
enum unit_activity activity
struct city_list * cities
char username[MAX_LEN_NAME]
struct conn_list * connections
struct player_economic economic
const struct player * player
struct unit::@81::@84 server
struct unit * transporter
const struct unit_type * utype
enum capital_type capital
int fc_snprintf(char *str, size_t n, const char *format,...)
int fc_strcasecmp(const char *str0, const char *str1)
#define sz_strlcpy(dest, src)
const struct player_list * team_members(const struct team *pteam)
bool is_terrain_class_near_tile(const struct civ_map *nmap, const struct tile *ptile, enum terrain_class tclass)
const char * terrain_name_translation(const struct terrain *pterrain)
bool is_terrain_near_tile(const struct civ_map *nmap, const struct tile *ptile, const struct terrain *pterrain, bool check_self)
#define terrain_type_iterate(_p)
#define terrain_type_iterate_end
void tile_set_owner(struct tile *ptile, struct player *pplayer, struct tile *claimer)
bool tile_extra_rm_apply(struct tile *ptile, struct extra_type *tgt)
struct city * tile_city(const struct tile *ptile)
void tile_set_worked(struct tile *ptile, struct city *pcity)
#define tile_claimer(_tile)
#define tile_worked(_tile)
#define tile_terrain(_tile)
#define tile_continent(_tile)
#define tile_has_extra(ptile, pextra)
#define tile_owner(_tile)
bool can_cities_trade(const struct city *pc1, const struct city *pc2)
enum trade_route_type cities_trade_route_type(const struct city *pcity1, const struct city *pcity2)
Goods_type_id goods_number(const struct goods_type *pgood)
struct trade_route_settings * trade_route_settings_by_type(enum trade_route_type type)
bool can_establish_trade_route(const struct city *pc1, const struct city *pc2)
#define trade_routes_iterate_safe_end
#define trade_routes_iterate_end
#define trade_routes_iterate_safe(c, proute)
#define trade_routes_iterate(c, proute)
const struct unit_type * utype
const struct impr_type * building
struct unit * transporter_for_unit_at(const struct unit *pcargo, const struct tile *ptile)
bool can_unit_continue_current_activity(const struct civ_map *nmap, struct unit *punit)
static bool is_enemy_unit_tile(const struct tile *ptile, const struct player *pplayer)
bool unit_activity_handling(struct unit *punit, enum unit_activity new_activity)
void unit_change_homecity_handling(struct unit *punit, struct city *new_pcity, bool rehome)
#define unit_list_iterate(unitlist, punit)
#define unit_list_iterate_safe(unitlist, _unit)
#define unit_list_iterate_end
#define unit_list_iterate_safe_end
int utype_buy_gold_cost(const struct city *pcity, const struct unit_type *punittype, int shields_in_stock)
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)
const char * unit_rule_name(const struct unit *punit)
bool utype_player_already_has_this_unique(const struct player *pplayer, const struct unit_type *putype)
bool utype_can_do_action_result(const struct unit_type *putype, enum action_result result)
bool unit_can_take_over(const struct unit *punit)
Unit_type_id utype_index(const struct unit_type *punittype)
static bool uclass_has_flag(const struct unit_class *punitclass, enum unit_class_flag_id flag)
static bool utype_has_flag(const struct unit_type *punittype, int flag)
#define unit_type_iterate(_p)
#define unit_type_iterate_end
struct vision_site * vision_site_new_from_city(const struct city *pcity, const struct player *watcher)
citizens vision_site_size_get(const struct vision_site *psite)
struct vision * vision_new(struct player *pplayer, struct tile *ptile)
bool vision_reveal_tiles(struct vision *vision, bool reveal_tiles)
void vision_site_update_from_city(struct vision_site *psite, const struct city *pcity, const struct player *watcher)
void vision_free(struct vision *vision)
void vision_site_destroy(struct vision_site *psite)
#define V_RADIUS(main_sq, invis_sq, subs_sq)
#define vision_site_owner(v)
short int v_radius_t[V_COUNT]
#define worker_task_list_iterate(tasklist, ptask)
#define worker_task_list_iterate_end
void worklist_copy(struct worklist *dst, const struct worklist *src)