Lines Matching refs:ptile

62 static void player_tile_init(struct tile *ptile, struct player *pplayer);
63 static void player_tile_free(struct tile *ptile, struct player *pplayer);
66 struct tile *ptile);
68 struct tile *ptile,
72 struct tile *ptile,
76 struct tile *ptile,
79 const struct tile *ptile,
82 const struct tile *ptile,
85 static bool is_claimable_ocean(struct tile *ptile, struct tile *source,
91 static bool is_terrain_ecologically_wet(struct tile *ptile) in is_terrain_ecologically_wet() argument
93 return (is_terrain_class_near_tile(ptile, TC_OCEAN) in is_terrain_ecologically_wet()
94 || tile_has_river(ptile) in is_terrain_ecologically_wet()
95 || count_river_near_tile(ptile, NULL) > 0); in is_terrain_ecologically_wet()
139 struct tile *ptile; in climate_change() local
144 ptile = rand_map_pos(); in climate_change()
145 } while (used[tile_index(ptile)]); in climate_change()
146 used[tile_index(ptile)] = TRUE; in climate_change()
148 old = tile_terrain(ptile); in climate_change()
156 if (is_terrain_ecologically_wet(ptile)) { in climate_change()
177 if (tile_city(ptile) != NULL && terrain_has_flag(new, TER_NO_CITIES)) { in climate_change()
185 if (!terrain_surroundings_allow_change(ptile, new)) { in climate_change()
205 unit_list_iterate(ptile->units, punit) { in climate_change()
218 tile_change_terrain(ptile, new); in climate_change()
219 check_terrain_change(ptile, old); in climate_change()
220 update_tile_knowledge(ptile); in climate_change()
223 unit_list_iterate(ptile->units, punit) { in climate_change()
242 struct tile *ptile = pcity->tile; in upgrade_city_extras() local
247 if (!tile_has_extra(ptile, pextra)) { in upgrade_city_extras()
250 && player_can_build_extra(pextra, pplayer, ptile) in upgrade_city_extras()
251 && !tile_has_conflicting_extra(ptile, pextra))) { in upgrade_city_extras()
387 whole_map_iterate(ptile) { in give_map_from_player_to_player()
388 give_tile_info_from_player_to_player(pfrom, pdest, ptile); in give_map_from_player_to_player()
403 whole_map_iterate(ptile) { in give_seamap_from_player_to_player()
404 if (is_ocean_tile(ptile)) { in give_seamap_from_player_to_player()
405 give_tile_info_from_player_to_player(pfrom, pdest, ptile); in give_seamap_from_player_to_player()
424 city_tile_iterate(city_map_radius_sq_get(pcity), pcenter, ptile) { in give_citymap_from_player_to_player()
425 give_tile_info_from_player_to_player(pfrom, pdest, ptile); in give_citymap_from_player_to_player()
455 whole_map_iterate(ptile) { in send_all_known_tiles()
463 send_tile_info(dest, ptile, FALSE); in send_all_known_tiles()
489 void send_tile_info(struct conn_list *dest, struct tile *ptile, in send_tile_info() argument
504 info.tile = tile_index(ptile); in send_tile_info()
506 if (ptile->spec_sprite) { in send_tile_info()
507 sz_strlcpy(info.spec_sprite, ptile->spec_sprite); in send_tile_info()
519 if (!pplayer || map_is_known_and_seen(ptile, pplayer, V_MAIN)) { in send_tile_info()
521 info.continent = tile_continent(ptile); in send_tile_info()
522 owner = tile_owner(ptile); in send_tile_info()
523 eowner = extra_owner(ptile); in send_tile_info()
526 info.worked = (NULL != tile_worked(ptile)) in send_tile_info()
527 ? tile_worked(ptile)->id in send_tile_info()
530 info.terrain = (NULL != tile_terrain(ptile)) in send_tile_info()
531 ? terrain_number(tile_terrain(ptile)) in send_tile_info()
533 info.resource = (NULL != tile_resource(ptile)) in send_tile_info()
534 ? resource_number(tile_resource(ptile)) in send_tile_info()
537 info.extras = ptile->extras; in send_tile_info()
539 if (ptile->label != NULL) { in send_tile_info()
541 strncpy(info.label, ptile->label, sizeof(info.label) - 1); in send_tile_info()
547 } else if (pplayer && map_is_known(ptile, pplayer)) { in send_tile_info()
548 struct player_tile *plrtile = map_get_player_tile(ptile, pplayer); in send_tile_info()
549 struct vision_site *psite = map_get_player_site(ptile, pplayer); in send_tile_info()
552 info.continent = tile_continent(ptile); in send_tile_info()
555 : tile_owner(ptile)); in send_tile_info()
573 if (ptile->label != NULL) { in send_tile_info()
574 sz_strlcpy(info.label, ptile->label); in send_tile_info()
628 struct tile *ptile, in shared_vision_change_seen() argument
632 map_change_own_seen(pplayer, ptile, change); in shared_vision_change_seen()
633 map_change_seen(pplayer, ptile, change, can_reveal_tiles); in shared_vision_change_seen()
637 map_change_seen(pplayer2, ptile, change, can_reveal_tiles); in shared_vision_change_seen()
645 void map_vision_update(struct player *pplayer, struct tile *ptile, in map_vision_update() argument
671 TILE_XY(ptile), max_radius); in map_vision_update()
679 circle_dxyr_iterate(ptile, max_radius, tile1, dx, dy, dr) { in map_vision_update()
700 void map_show_tile(struct player *src_player, struct tile *ptile) in map_show_tile() argument
704 log_debug("Showing %i,%i to %s", TILE_XY(ptile), player_name(src_player)); in map_show_tile()
713 if (!map_is_known_and_seen(ptile, pplayer, V_MAIN)) { in map_show_tile()
714 map_set_known(ptile, pplayer); in map_show_tile()
717 update_player_tile_knowledge(pplayer, ptile); in map_show_tile()
718 update_player_tile_last_seen(pplayer, ptile); in map_show_tile()
720 send_tile_info(pplayer->connections, ptile, FALSE); in map_show_tile()
723 reality_check_city(pplayer, ptile); in map_show_tile()
725 if ((pcity = tile_city(ptile))) { in map_show_tile()
732 if (0 < map_get_seen(pplayer, ptile, v)) { in map_show_tile()
733 unit_list_iterate(ptile->units, punit) { in map_show_tile()
752 void map_hide_tile(struct player *src_player, struct tile *ptile) in map_hide_tile() argument
756 log_debug("Hiding %d,%d to %s", TILE_XY(ptile), player_name(src_player)); in map_hide_tile()
763 if (map_is_known(ptile, pplayer)) { in map_hide_tile()
764 if (0 < map_get_seen(pplayer, ptile, V_MAIN)) { in map_hide_tile()
765 update_player_tile_last_seen(pplayer, ptile); in map_hide_tile()
769 remove_dumb_city(pplayer, ptile); in map_hide_tile()
773 if (0 < map_get_seen(pplayer, ptile, v)) { in map_hide_tile()
774 unit_list_iterate(ptile->units, punit) { in map_hide_tile()
783 map_clear_known(ptile, pplayer); in map_hide_tile()
785 send_tile_info(pplayer->connections, ptile, TRUE); in map_hide_tile()
796 void map_show_circle(struct player *pplayer, struct tile *ptile, int radius_sq) in map_show_circle() argument
800 circle_iterate(ptile, radius_sq, tile1) { in map_show_circle()
815 whole_map_iterate(ptile) { in map_show_all()
816 map_show_tile(pplayer, ptile); in map_show_all()
826 bool map_is_known(const struct tile *ptile, const struct player *pplayer) in map_is_known() argument
828 return dbv_isset(&pplayer->tile_known, tile_index(ptile)); in map_is_known()
835 bool map_is_known_and_seen(const struct tile *ptile, in map_is_known_and_seen() argument
839 return (map_is_known(ptile, pplayer) in map_is_known_and_seen()
840 && 0 < map_get_seen(pplayer, ptile, vlayer)); in map_is_known_and_seen()
851 const struct tile *ptile, in map_get_seen() argument
854 return map_get_player_tile(ptile, pplayer)->seen_count[vlayer]; in map_get_seen()
864 struct tile *ptile, in map_change_seen() argument
868 struct player_tile *plrtile = map_get_player_tile(ptile, pplayer); in map_change_seen()
874 TILE_XY(ptile)); in map_change_seen()
887 TILE_XY(ptile), player_name(pplayer), player_number(pplayer)); in map_change_seen()
889 unit_list_iterate(ptile->units, punit) { in map_change_seen()
904 TILE_XY(ptile), player_name(pplayer), player_number(pplayer)); in map_change_seen()
906 unit_list_iterate(ptile->units, punit) { in map_change_seen()
928 if (!map_is_known(ptile, pplayer)) { in map_change_seen()
931 TILE_XY(ptile), player_name(pplayer), in map_change_seen()
934 map_set_known(ptile, pplayer); in map_change_seen()
944 TILE_XY(ptile), player_name(pplayer), player_number(pplayer)); in map_change_seen()
946 update_player_tile_last_seen(pplayer, ptile); in map_change_seen()
948 plrtile->owner = tile_owner(ptile); in map_change_seen()
950 plrtile->extras_owner = extra_owner(ptile); in map_change_seen()
951 send_tile_info(pplayer->connections, ptile, FALSE); in map_change_seen()
963 TILE_XY(ptile), player_name(pplayer), player_number(pplayer)); in map_change_seen()
969 update_player_tile_knowledge(pplayer, ptile); in map_change_seen()
970 send_tile_info(pplayer->connections, ptile, FALSE); in map_change_seen()
973 unit_list_iterate(ptile->units, punit) { in map_change_seen()
980 reality_check_city(pplayer, ptile); in map_change_seen()
982 if (NULL != (pcity = tile_city(ptile))) { in map_change_seen()
991 TILE_XY(ptile), player_name(pplayer), in map_change_seen()
994 unit_list_iterate(ptile->units, punit) { in map_change_seen()
1009 const struct tile *ptile, in map_get_own_seen() argument
1012 return map_get_player_tile(ptile, pplayer)->own_seen[vlayer]; in map_get_own_seen()
1019 struct tile *ptile, in map_change_own_seen() argument
1022 struct player_tile *plrtile = map_get_player_tile(ptile, pplayer); in map_change_own_seen()
1032 void change_playertile_site(struct player_tile *ptile, in change_playertile_site() argument
1035 if (ptile->site == new_site) { in change_playertile_site()
1040 if (ptile->site != NULL) { in change_playertile_site()
1042 vision_site_destroy(ptile->site); in change_playertile_site()
1045 ptile->site = new_site; in change_playertile_site()
1051 void map_set_known(struct tile *ptile, struct player *pplayer) in map_set_known() argument
1053 dbv_set(&pplayer->tile_known, tile_index(ptile)); in map_set_known()
1059 void map_clear_known(struct tile *ptile, struct player *pplayer) in map_clear_known() argument
1061 dbv_clr(&pplayer->tile_known, tile_index(ptile)); in map_clear_known()
1074 whole_map_iterate(ptile) { in map_know_and_see_all()
1075 map_change_seen(pplayer, ptile, radius_sq, TRUE); in map_know_and_see_all()
1100 whole_map_iterate(ptile) { in player_map_init()
1101 player_tile_init(ptile, pplayer); in player_map_init()
1116 whole_map_iterate(ptile) { in player_map_free()
1117 player_tile_free(ptile, pplayer); in player_map_free()
1135 whole_map_iterate(ptile) { in remove_player_from_maps()
1147 aplrtile = map_get_player_tile(ptile, aplayer); in remove_player_from_maps()
1170 send_tile_info(pplayer->connections, ptile, FALSE); in remove_player_from_maps()
1176 map_clear_known(ptile, pplayer); in remove_player_from_maps()
1180 if (tile_owner(ptile) == pplayer) { in remove_player_from_maps()
1181 tile_set_owner(ptile, NULL, NULL); in remove_player_from_maps()
1184 if (extra_owner(ptile) == pplayer) { in remove_player_from_maps()
1185 ptile->extras_owner = NULL; in remove_player_from_maps()
1191 send_tile_info(NULL, ptile, FALSE); in remove_player_from_maps()
1201 static void player_tile_init(struct tile *ptile, struct player *pplayer) in player_tile_init() argument
1203 struct player_tile *plrtile = map_get_player_tile(ptile, pplayer); in player_tile_init()
1225 static void player_tile_free(struct tile *ptile, struct player *pplayer) in player_tile_free() argument
1227 struct player_tile *plrtile = map_get_player_tile(ptile, pplayer); in player_tile_free()
1237 struct vision_site *map_get_player_city(const struct tile *ptile, in map_get_player_city() argument
1240 struct vision_site *psite = map_get_player_site(ptile, pplayer); in map_get_player_city()
1242 fc_assert_ret_val(psite == NULL || psite->location == ptile, NULL); in map_get_player_city()
1250 struct vision_site *map_get_player_site(const struct tile *ptile, in map_get_player_site() argument
1253 return map_get_player_tile(ptile, pplayer)->site; in map_get_player_site()
1261 struct player_tile *map_get_player_tile(const struct tile *ptile, in map_get_player_tile() argument
1266 return pplayer->server.private_map + tile_index(ptile); in map_get_player_tile()
1277 bool update_player_tile_knowledge(struct player *pplayer, struct tile *ptile) in update_player_tile_knowledge() argument
1279 struct player_tile *plrtile = map_get_player_tile(ptile, pplayer); in update_player_tile_knowledge()
1281 if (plrtile->terrain != ptile->terrain in update_player_tile_knowledge()
1282 || !BV_ARE_EQUAL(plrtile->extras, ptile->extras) in update_player_tile_knowledge()
1283 || plrtile->resource != ptile->resource in update_player_tile_knowledge()
1284 || plrtile->owner != tile_owner(ptile) in update_player_tile_knowledge()
1285 || plrtile->extras_owner != extra_owner(ptile)) { in update_player_tile_knowledge()
1286 plrtile->terrain = ptile->terrain; in update_player_tile_knowledge()
1287 plrtile->extras = ptile->extras; in update_player_tile_knowledge()
1288 plrtile->resource = ptile->resource; in update_player_tile_knowledge()
1289 plrtile->owner = tile_owner(ptile); in update_player_tile_knowledge()
1290 plrtile->extras_owner = extra_owner(ptile); in update_player_tile_knowledge()
1307 void update_tile_knowledge(struct tile *ptile) in update_tile_knowledge() argument
1315 if (map_is_known_and_seen(ptile, pplayer, V_MAIN)) { in update_tile_knowledge()
1316 if (update_player_tile_knowledge(pplayer, ptile)) { in update_tile_knowledge()
1317 send_tile_info(pplayer->connections, ptile, FALSE); in update_tile_knowledge()
1327 send_tile_info(pconn->self, ptile, FALSE); in update_tile_knowledge()
1336 struct tile *ptile) in update_player_tile_last_seen() argument
1339 map_get_player_tile(ptile, pplayer)->last_updated = game.info.turn; in update_player_tile_last_seen()
1341 map_get_player_tile(ptile, pplayer)->last_updated = game.info.year32; in update_player_tile_last_seen()
1350 struct tile *ptile) in really_give_tile_info_from_player_to_player() argument
1353 if (!map_is_known_and_seen(ptile, pdest, V_MAIN)) { in really_give_tile_info_from_player_to_player()
1361 if (map_is_known_and_seen(ptile, pfrom, V_MAIN) in really_give_tile_info_from_player_to_player()
1362 || (map_is_known(ptile, pfrom) in really_give_tile_info_from_player_to_player()
1363 && (((map_get_player_tile(ptile, pfrom)->last_updated in really_give_tile_info_from_player_to_player()
1364 > map_get_player_tile(ptile, pdest)->last_updated)) in really_give_tile_info_from_player_to_player()
1365 || !map_is_known(ptile, pdest)))) { in really_give_tile_info_from_player_to_player()
1366 from_tile = map_get_player_tile(ptile, pfrom); in really_give_tile_info_from_player_to_player()
1367 dest_tile = map_get_player_tile(ptile, pdest); in really_give_tile_info_from_player_to_player()
1369 map_set_known(ptile, pdest); in really_give_tile_info_from_player_to_player()
1376 send_tile_info(pdest->connections, ptile, FALSE); in really_give_tile_info_from_player_to_player()
1384 reality_check_city(pdest, ptile); in really_give_tile_info_from_player_to_player()
1390 reality_check_city(pdest, ptile); in really_give_tile_info_from_player_to_player()
1399 dest_tile->site = vision_site_new(0, ptile, NULL); in really_give_tile_info_from_player_to_player()
1404 send_city_info_at_tile(pdest, pdest->connections, NULL, ptile); in really_give_tile_info_from_player_to_player()
1407 city_map_update_tile_frozen(ptile); in really_give_tile_info_from_player_to_player()
1419 whole_map_iterate(ptile) { in really_give_map_from_player_to_player()
1420 really_give_tile_info_from_player_to_player(pfrom, pdest, ptile); in really_give_map_from_player_to_player()
1433 struct tile *ptile) in give_tile_info_from_player_to_player() argument
1435 really_give_tile_info_from_player_to_player(pfrom, pdest, ptile); in give_tile_info_from_player_to_player()
1439 really_give_tile_info_from_player_to_player(pfrom, pplayer2, ptile); in give_tile_info_from_player_to_player()
1511 whole_map_iterate(ptile) { in give_shared_vision()
1513 V_RADIUS(map_get_own_seen(pplayer, ptile, V_MAIN), in give_shared_vision()
1514 map_get_own_seen(pplayer, ptile, V_INVIS)); in give_shared_vision()
1517 map_change_seen(pplayer2, ptile, change, in give_shared_vision()
1518 map_is_known(ptile, pplayer)); in give_shared_vision()
1568 whole_map_iterate(ptile) { in remove_shared_vision()
1570 V_RADIUS(-map_get_own_seen(pplayer, ptile, V_MAIN), in remove_shared_vision()
1571 -map_get_own_seen(pplayer, ptile, V_INVIS)); in remove_shared_vision()
1574 map_change_seen(pplayer2, ptile, change, FALSE); in remove_shared_vision()
1595 whole_map_iterate(ptile) { in enable_fog_of_war_player()
1596 map_change_seen(pplayer, ptile, radius_sq, FALSE); in enable_fog_of_war_player()
1619 whole_map_iterate(ptile) { in disable_fog_of_war_player()
1620 map_change_seen(pplayer, ptile, radius_sq, FALSE); in disable_fog_of_war_player()
1644 static void ocean_to_land_fix_rivers(struct tile *ptile) in ocean_to_land_fix_rivers() argument
1646 cardinal_adjc_iterate(ptile, tile1) { in ocean_to_land_fix_rivers()
1660 tile_add_extra(ptile, priver); in ocean_to_land_fix_rivers()
1671 static void check_units_single_tile(struct tile *ptile) in check_units_single_tile() argument
1673 unit_list_iterate_safe(ptile->units, punit) { in check_units_single_tile()
1676 if (unit_tile(punit) == ptile in check_units_single_tile()
1678 && !can_unit_exist_at_tile(punit, ptile)) { in check_units_single_tile()
1680 adjc_iterate(ptile, ptile2) { in check_units_single_tile()
1698 if (unit_alive && unit_tile(punit) == ptile) { in check_units_single_tile()
1719 void bounce_units_on_terrain_change(struct tile *ptile) in bounce_units_on_terrain_change() argument
1722 check_units_single_tile(ptile); in bounce_units_on_terrain_change()
1725 adjc_iterate(ptile, ptile2) { in bounce_units_on_terrain_change()
1753 void terrain_changed(struct tile *ptile) in terrain_changed() argument
1755 struct city *pcity = tile_city(ptile); in terrain_changed()
1762 bounce_units_on_terrain_change(ptile); in terrain_changed()
1772 void fix_tile_on_terrain_change(struct tile *ptile, in fix_tile_on_terrain_change() argument
1776 if (is_ocean(oldter) && !is_ocean_tile(ptile)) { in fix_tile_on_terrain_change()
1778 ocean_to_land_fix_rivers(ptile); in fix_tile_on_terrain_change()
1780 city_landlocked_sell_coastal_improvements(ptile); in fix_tile_on_terrain_change()
1783 terrain_changed(ptile); in fix_tile_on_terrain_change()
1792 void check_terrain_change(struct tile *ptile, struct terrain *oldter) in check_terrain_change() argument
1794 struct terrain *newter = tile_terrain(ptile); in check_terrain_change()
1801 adjc_iterate(ptile, atile) { in check_terrain_change()
1815 tile_change_terrain(ptile, newter); in check_terrain_change()
1819 fix_tile_on_terrain_change(ptile, oldter, TRUE); in check_terrain_change()
1824 adjc_iterate(ptile, atile) { in check_terrain_change()
1845 claimer = tile_claimer(ptile); in check_terrain_change()
1846 if (claimer != NULL && is_ocean_tile(ptile)) { in check_terrain_change()
1847 if (!is_claimable_ocean(ptile, claimer, tile_owner(ptile))) { in check_terrain_change()
1848 map_clear_border(ptile); in check_terrain_change()
1852 sanity_check_tile(ptile); in check_terrain_change()
1866 static bool is_claimable_ocean(struct tile *ptile, struct tile *source, in is_claimable_ocean() argument
1869 Continent_id cont = tile_continent(ptile); in is_claimable_ocean()
1880 if (ptile == source) { in is_claimable_ocean()
1892 adjc_iterate(ptile, tile2) { in is_claimable_ocean()
1919 static void map_unit_homecity_enqueue(struct tile *ptile) in map_unit_homecity_enqueue() argument
1921 unit_list_iterate(ptile->units, punit) { in map_unit_homecity_enqueue()
1935 static void map_claim_border_ownership(struct tile *ptile, in map_claim_border_ownership() argument
1939 struct player *ploser = tile_owner(ptile); in map_claim_border_ownership()
1947 shared_vision_change_seen(ploser, ptile, radius_sq, FALSE); in map_claim_border_ownership()
1952 shared_vision_change_seen(powner, ptile, radius_sq, TRUE); in map_claim_border_ownership()
1957 tile_set_owner(ptile, powner, psource); in map_claim_border_ownership()
1962 update_tile_knowledge(ptile); in map_claim_border_ownership()
1966 map_unit_homecity_enqueue(ptile); in map_claim_border_ownership()
1969 if (!city_map_update_tile_frozen(ptile)) { in map_claim_border_ownership()
1970 send_tile_info(NULL, ptile, FALSE); in map_claim_border_ownership()
1978 void map_claim_ownership(struct tile *ptile, struct player *powner, in map_claim_ownership() argument
1981 map_claim_border_ownership(ptile, powner, psource); in map_claim_ownership()
1984 tile_claim_bases(ptile, powner); in map_claim_ownership()
1991 void tile_claim_bases(struct tile *ptile, struct player *powner) in tile_claim_bases() argument
1993 struct player *base_loser = extra_owner(ptile); in tile_claim_bases()
1998 ptile->extras_owner = powner; in tile_claim_bases()
2001 map_claim_base(ptile, pextra, powner, base_loser); in tile_claim_bases()
2008 void map_clear_border(struct tile *ptile) in map_clear_border() argument
2010 int radius_sq = tile_border_source_radius_sq(ptile); in map_clear_border()
2012 circle_dxyr_iterate(ptile, radius_sq, dtile, dx, dy, dr) { in map_clear_border()
2015 if (claimer == ptile) { in map_clear_border()
2025 void map_update_border(struct tile *ptile, struct player *owner, in map_update_border() argument
2038 map_claim_border(ptile, owner, new_radius_sq); in map_update_border()
2040 circle_dxyr_iterate(ptile, old_radius_sq, dtile, dx, dy, dr) { in map_update_border()
2044 if (claimer == ptile) { in map_update_border()
2057 void map_claim_border(struct tile *ptile, struct player *owner, in map_claim_border() argument
2067 map_clear_border(ptile); in map_claim_border()
2073 radius_sq = tile_border_source_radius_sq(ptile); in map_claim_border()
2076 circle_dxyr_iterate(ptile, radius_sq, dtile, dx, dy, dr) { in map_claim_border()
2079 if (dclaimer == ptile) { in map_claim_border()
2098 if (dr != 0 && NULL != dclaimer && dclaimer != ptile) { in map_claim_border()
2117 strength_new = tile_border_strength(dtile, ptile); in map_claim_border()
2128 if (is_claimable_ocean(dtile, ptile, owner)) { in map_claim_border()
2129 map_claim_ownership(dtile, owner, ptile, dr == 0); in map_claim_border()
2134 if (tile_continent(dtile) == tile_continent(ptile)) { in map_claim_border()
2135 map_claim_ownership(dtile, owner, ptile, dr == 0); in map_claim_border()
2157 whole_map_iterate(ptile) { in map_calculate_borders()
2158 if (is_border_source(ptile)) { in map_calculate_borders()
2159 map_claim_border(ptile, ptile->owner, -1); in map_calculate_borders()
2171 void map_claim_base(struct tile *ptile, struct extra_type *pextra, in map_claim_base() argument
2176 if (!tile_has_extra(ptile, pextra)) { in map_claim_base()
2190 map_vision_update(powner, ptile, old_radius_sq, new_radius_sq, in map_claim_base()
2199 map_vision_update(ploser, ptile, old_radius_sq, new_radius_sq, in map_claim_base()
2211 map_claim_border_ownership(ptile, NULL, ptile); in map_claim_base()
2212 map_clear_border(ptile); in map_claim_base()
2220 map_claim_border_ownership(ptile, powner, ptile); in map_claim_base()
2221 map_claim_border(ptile, powner, -1); in map_claim_base()
2256 void create_extra(struct tile *ptile, struct extra_type *pextra, in create_extra() argument
2262 if (tile_has_extra(ptile, old_extra) in create_extra()
2264 destroy_extra(ptile, old_extra); in create_extra()
2269 tile_add_extra(ptile, pextra); in create_extra()
2272 unit_list_refresh_vision(ptile->units); in create_extra()
2277 struct player *old_owner = extra_owner(ptile); in create_extra()
2280 map_claim_base(ptile, pextra, pplayer, NULL); in create_extra()
2286 map_claim_base(ptile, oldbase, pplayer, old_owner); in create_extra()
2290 ptile->extras_owner = pplayer; in create_extra()
2294 map_claim_base(ptile, pextra, extra_owner(ptile), NULL); in create_extra()
2301 bounce_units_on_terrain_change(ptile); in create_extra()
2308 void destroy_extra(struct tile *ptile, struct extra_type *pextra) in destroy_extra() argument
2311 bool virtual = tile_virtual_check(ptile); in destroy_extra()
2317 if (map_is_known_and_seen(ptile, pplayer, V_MAIN)) { in destroy_extra()
2325 struct player *owner = extra_owner(ptile); in destroy_extra()
2328 map_clear_border(ptile); in destroy_extra()
2339 map_vision_update(owner, ptile, old_radius_sq, new_radius_sq, in destroy_extra()
2344 tile_remove_extra(ptile, pextra); in destroy_extra()
2350 && update_player_tile_knowledge(pplayer, ptile)) { in destroy_extra()
2351 send_tile_info(pplayer->connections, ptile, FALSE); in destroy_extra()
2370 whole_map_iterate(ptile) { in give_distorted_map()
2372 give_tile_info_from_player_to_player(pfrom, pto, ptile); in give_distorted_map()
2373 } else if (reveal_cities && NULL != tile_city(ptile)) { in give_distorted_map()
2374 give_tile_info_from_player_to_player(pfrom, pto, ptile); in give_distorted_map()