Freeciv-3.2
|
#include "fc_types.h"
#include "map.h"
#include "packets.h"
#include "terrain.h"
#include "vision.h"
#include <hand_gen.h>
Go to the source code of this file.
Data Structures | |
struct | player_tile |
Macros | |
#define | map_get_playermap_site(_plrtile_) (_plrtile_)->site |
#define | map_get_player_site(_ptile_, _pplayer_) map_get_playermap_site(map_get_player_tile(_ptile_, _pplayer_)) |
#define map_get_player_site | ( | _ptile_, | |
_pplayer_ | |||
) | map_get_playermap_site(map_get_player_tile(_ptile_, _pplayer_)) |
Check ptile and nearby tiles to see if all units can remain at their current locations, and move or disband any that cannot. Call this after terrain or specials change on ptile.
ptile | Tile where the terrain may have changed |
Definition at line 1919 of file maphand.c.
Referenced by create_extra(), terrain_changed(), and update_unit_activity().
void change_playertile_site | ( | struct player_tile * | ptile, |
struct vision_site * | new_site | ||
) |
Changes site information for player tile.
Definition at line 1159 of file maphand.c.
Referenced by remove_player_from_maps(), sg_load_player_vision(), sg_load_player_vision(), and update_dumb_city().
Handles local and global side effects for a terrain change for a single tile. Call this in the server immediately after calling tile_change_terrain(). Assumes an in-game terrain change (e.g., by workers/engineers).
Definition at line 1995 of file maphand.c.
Referenced by check_terrain_change(), climate_change(), and update_unit_activity().
Do a climate change. Global warming occurred if 'warming' is TRUE, else there is a nuclear winter.
Definition at line 133 of file maphand.c.
Referenced by api_edit_climate_change(), global_warming(), and nuclear_winter().
Create extra to tile.
Definition at line 2556 of file maphand.c.
Referenced by api_edit_create_owned_extra(), begin_phase(), fc_interface_init_server(), and update_unit_activity().
void destroy_extra | ( | struct tile * | ptile, |
struct extra_type * | pextra | ||
) |
Remove extra from tile.
Definition at line 2621 of file maphand.c.
Referenced by create_city(), create_extra(), fc_interface_init_server(), unit_enter_hut(), and update_unit_activity().
Turns FoW off for player
Definition at line 1773 of file maphand.c.
Referenced by check_leaving_edit_mode(), disable_fog_of_war(), and handle_edit_toggle_fogofwar().
Turns FoW on for player
Definition at line 1747 of file maphand.c.
Referenced by check_leaving_edit_mode(), enable_fog_of_war(), and handle_edit_toggle_fogofwar().
void fix_tile_on_terrain_change | ( | struct tile * | ptile, |
struct terrain * | oldter, | ||
bool | extend_rivers | ||
) |
Handles local side effects for a terrain change (tile and its surroundings). Does not handle global side effects (such as reassigning continents). For in-game terrain changes 'extend_rivers' should be TRUE; for edits it should be FALSE.
Definition at line 1975 of file maphand.c.
Referenced by api_edit_change_terrain(), check_terrain_change(), and edit_tile_terrain_handling().
void give_citymap_from_player_to_player | ( | struct city * | pcity, |
struct player * | pfrom, | ||
struct player * | pdest | ||
) |
Give information about tiles within city radius from player to player
Definition at line 418 of file maphand.c.
Referenced by handle_diplomacy_create_clause_req(), and transfer_city().
bool give_distorted_map | ( | struct player * | pfrom, |
struct player * | pto, | ||
int | prob, | ||
bool | reveal_cities | ||
) |
Transfer (random parts of) player pfrom's world map to pto.
pfrom | player that is the source of the map |
pto | player that receives the map |
prob | probability for the transfer each known tile |
reveal_cities | if the map of all known cities should be transferred |
Definition at line 2696 of file maphand.c.
Referenced by player_loot_player(), and spy_steal_some_maps().
Give information about whole map (all tiles) from player to player. Takes care of shared vision chains.
Definition at line 384 of file maphand.c.
Referenced by handle_diplomacy_accept_treaty_req(), and split_player().
Give information about all oceanic tiles from player to player
Definition at line 400 of file maphand.c.
Referenced by handle_diplomacy_accept_treaty_req().
Starts shared vision between two players.
Definition at line 1632 of file maphand.c.
Referenced by handle_diplomacy_accept_treaty_req(), sg_load_players(), sg_load_players(), and srv_ready().
Wrapper for climate_change().
Definition at line 106 of file maphand.c.
Referenced by end_turn(), and receive_packet_game_info_100().
Update borders for all sources. Call this on turn end.
Definition at line 2373 of file maphand.c.
Referenced by end_turn(), handle_edit_recalculate_borders(), server_remove_player(), sg_load_players(), and sg_load_players().
void map_claim_base | ( | struct tile * | ptile, |
struct extra_type * | pextra, | ||
struct player * | powner, | ||
struct player * | ploser | ||
) |
Claim base to player's ownership.
Definition at line 2400 of file maphand.c.
Referenced by create_extra(), maybe_claim_base(), and tile_claim_bases().
Update borders for this source. Call this for each new source.
If radius_sq is -1, get value from the border source on tile.
Definition at line 2286 of file maphand.c.
Referenced by city_change_size(), city_populate(), create_city(), map_calculate_borders(), map_claim_base(), map_update_border(), and transfer_city().
void map_claim_ownership | ( | struct tile * | ptile, |
struct player * | powner, | ||
struct tile * | psource, | ||
bool | claim_bases | ||
) |
Claim ownership of a single tile.
Definition at line 2207 of file maphand.c.
Referenced by create_city(), kill_player(), map_claim_border(), map_clear_border(), map_update_border(), sg_load_map_owner(), sg_load_map_owner(), sg_load_player_cities(), sg_load_player_cities(), and transfer_city().
Remove border for this source.
Definition at line 2237 of file maphand.c.
Referenced by check_terrain_change(), destroy_extra(), map_claim_base(), map_claim_border(), remove_city(), and transfer_city().
Clear known status of the tile.
Definition at line 1186 of file maphand.c.
Referenced by create_barbarian_player(), map_hide_tile(), and remove_player_from_maps().
struct vision_site * map_get_player_city | ( | const struct tile * | ptile, |
const struct player * | pplayer | ||
) |
Returns city located at given tile from player map.
Definition at line 1367 of file maphand.c.
Referenced by mapimg_server_tile_city(), package_dumb_city(), reality_check_city(), remove_dumb_city(), sg_save_player_vision(), spy_send_sabotage_list(), and update_dumb_city().
struct player_tile * map_get_player_tile | ( | const struct tile * | ptile, |
const struct player * | pplayer | ||
) |
Players' information of tiles is tracked so that fogged area can be kept consistent even when the client disconnects. This function returns the player tile information for the given tile and player.
Definition at line 1382 of file maphand.c.
Referenced by do_paradrop(), give_shared_vision(), handle_unit_get_actions(), is_refuel_tile(), map_change_own_seen(), map_change_seen(), map_get_seen(), mapimg_server_tile_owner(), mapimg_server_tile_terrain(), player_tile_free(), player_tile_init(), reality_check_city(), really_give_tile_info_from_player_to_player(), remove_dumb_city(), remove_player_from_maps(), remove_shared_vision(), send_tile_info(), server_plr_tile_city_id_get(), sg_load_player_vision(), sg_load_player_vision(), sg_save_player_vision(), update_dumb_city(), update_player_tile_knowledge(), and update_player_tile_last_seen().
Hides the area to the player.
Callers may wish to buffer_shared_vision() before calling this function.
Definition at line 820 of file maphand.c.
Referenced by handle_edit_player_vision().
Return whether the player knows the tile. Knowing a tile means you've seen it once (as opposed to seeing a tile which means you can see it now).
Definition at line 894 of file maphand.c.
Referenced by adv_data_phase_init(), calculate_want_for_paratrooper(), city_desirability(), cityresult_fill(), expl_act_not_enabl(), explorer_desirable(), find_best_tile_to_paradrop_to(), find_closest_city(), find_something_to_bomb(), find_something_to_kill(), give_shared_vision(), likely_native(), manage_auto_explorer(), map_change_seen(), map_claim_border(), map_hide_tile(), map_is_known_and_seen(), notify_conn_packet(), really_give_tile_info_from_player_to_player(), send_city_info_at_tile(), send_tile_info(), sg_load_player_vision(), sg_load_player_vision(), sg_save_map_known(), try_summon_barbarians(), and update_dumb_city().
bool map_is_known_and_seen | ( | const struct tile * | ptile, |
const struct player * | pplayer, | ||
enum vision_layer | vlayer | ||
) |
Returns whether the layer 'vlayer' of the tile 'ptile' is known and seen by the player 'pplayer'.
Definition at line 920 of file maphand.c.
Referenced by adv_danger_at(), api_edit_tile_hide(), construct_move_data_list(), create_city(), dai_consider_tile_dangerous(), destroy_extra(), do_paradrop(), expl_act_not_enabl(), fc_interface_init_server(), find_best_tile_to_paradrop_to(), find_rampage_target(), find_something_to_bomb(), found_new_tech(), handle_diplomacy_create_clause_req(), handle_player_place_infra(), is_city_surrounded_by_our_spies(), map_show_tile(), need_war_player_hlp(), really_give_tile_info_from_player_to_player(), remove_allied_visibility(), remove_city(), see_combat(), send_city_info_at_tile(), send_combat(), sg_load_player_vision(), sg_load_player_vision(), try_summon_barbarians(), and update_tile_knowledge().
Call this function to unfog all tiles. This should only be called when a player dies or at the end of the game as it will result in permanent vision of the whole map.
Definition at line 1196 of file maphand.c.
Referenced by kill_player(), sg_load_player_vision(), sg_load_player_vision(), and show_map_to_all().
Turn a player's ability to see inside their borders on or off.
It is safe to set the current value.
Definition at line 740 of file maphand.c.
Referenced by do_border_vision_effect().
Set known status of the tile.
Definition at line 1178 of file maphand.c.
Referenced by map_change_seen(), map_show_tile(), really_give_tile_info_from_player_to_player(), sg_load_map_known(), and sg_load_map_known().
Shows the area to the player. Unless the tile is "seen", it will remain fogged and units will be hidden.
Definition at line 879 of file maphand.c.
Referenced by do_reveal_effects(), and srv_ready().
Shows the area to the player. Unless the tile is "seen", it will remain fogged and units will be hidden.
Definition at line 864 of file maphand.c.
Referenced by do_paradrop(), handle_edit_unit_create(), illegal_action_pay_price(), init_new_game(), place_starting_unit(), try_summon_barbarians(), and unleash_barbarians().
Shows the area to the player. Unless the tile is "seen", it will remain fogged and units will be hidden.
Callers may wish to buffer_shared_vision() before calling this function.
Definition at line 768 of file maphand.c.
Referenced by api_edit_tile_show(), create_city_for_player(), do_reveal_effects(), do_unit_establish_trade(), handle_edit_player_vision(), map_show_all(), map_show_circle(), reestablish_city_trade_routes(), and remove_city().
void map_update_border | ( | struct tile * | ptile, |
struct player * | owner, | ||
int | old_radius_sq, | ||
int | new_radius_sq | ||
) |
Update borders for this source. Changes the radius without temporary clearing.
Definition at line 2254 of file maphand.c.
Referenced by city_reduce_size().
void map_vision_update | ( | struct player * | pplayer, |
struct tile * | ptile, | ||
const v_radius_t | old_radius_sq, | ||
const v_radius_t | new_radius_sq, | ||
bool | can_reveal_tiles | ||
) |
There doesn't have to be a city.
Definition at line 685 of file maphand.c.
Referenced by destroy_extra(), map_claim_base(), and vision_change_sight().
Returns TRUE if the terrain change from 'oldter' to 'newter' may require expensive reassignment of continents.
Definition at line 1937 of file maphand.c.
Referenced by api_edit_change_terrain(), check_terrain_change(), and edit_tile_terrain_handling().
Wrapper for climate_change().
Definition at line 119 of file maphand.c.
Referenced by end_turn(), and receive_packet_game_info_100().
Free a player's private map.
Definition at line 1237 of file maphand.c.
Referenced by server_player_init(), and server_remove_player().
Allocate space for map, and initialise the tiles. Uses current map.xsize and map.ysize.
Definition at line 1221 of file maphand.c.
Referenced by server_player_init(), sg_load_map_known(), sg_load_map_known(), and srv_ready().
Return TRUE iff the player me really gives shared vision to player them.
Definition at line 345 of file maphand.c.
Referenced by api_edit_tile_hide(), buffer_shared_vision(), create_vision_dependencies(), give_shared_vision(), give_tile_info_from_player_to_player(), handle_edit_player_vision(), map_hide_tile(), map_show_tile(), remove_shared_vision(), sg_load_players(), sg_load_players(), shared_vision_change_seen(), and unbuffer_shared_vision().
Remove all knowledge of a player from main map and other players' private maps, and send updates to connected clients. Frees all vision_sites associated with that player.
Definition at line 1258 of file maphand.c.
Referenced by server_remove_player().
Removes shared vision from between two players.
Definition at line 1693 of file maphand.c.
Referenced by dai_diplomacy_actions(), dai_go_to_war(), dai_revolution_start(), handle_diplomacy_cancel_pact(), kill_player(), and server_remove_player().
Send all tiles known to specified clients. If dest is NULL means game.est_connections.
Note for multiple connections this may change "sent" multiple times for single player. This is ok, because "sent" data is just optimised calculations, so it will be correct before this, for each connection during this, and at end.
Definition at line 444 of file maphand.c.
Referenced by api_edit_change_terrain(), check_edited_tile_terrains(), check_terrain_change(), and send_all_info().
Send basic map information: map size, topology, and is_earth.
Definition at line 649 of file maphand.c.
Referenced by send_all_info().
Send tile information to all the clients in dest which know and see the tile. If dest is NULL, sends to all clients (game.est_connections) which know and see tile.
Note that this function does not update the playermap. For that call update_tile_knowledge().
Definition at line 491 of file maphand.c.
Referenced by api_edit_tile_hide(), api_edit_tile_set_label(), city_map_update_empty(), city_map_update_tile_direct(), city_map_update_worker(), destroy_extra(), found_new_tech(), handle_edit_tile(), handle_player_place_infra(), map_change_seen(), map_claim_border_ownership(), map_hide_tile(), map_show_tile(), really_give_tile_info_from_player_to_player(), remove_city(), remove_player_from_maps(), send_all_known_tiles(), and update_tile_knowledge().
Suppress send_tile_info() during game_load()
Definition at line 475 of file maphand.c.
Referenced by savegame2_load(), and savegame3_load().
Unfogs all tiles for all players. See map_know_and_see_all.
Definition at line 1210 of file maphand.c.
Referenced by srv_scores().
Handle local side effects for a terrain change.
Definition at line 1956 of file maphand.c.
Referenced by edit_tile_extra_handling(), and fix_tile_on_terrain_change().
Handle various side effects of the change on tile. If a city was working the tile, that city might need refresh after this call.
ptile | tile that has changed |
refresh_city | whether city working the tile should be refreshed |
Definition at line 2724 of file maphand.c.
Referenced by api_edit_change_terrain(), api_edit_create_owned_extra(), api_edit_remove_extra(), climate_change(), edit_tile_extra_handling(), edit_tile_terrain_handling(), end_turn(), handle_edit_tile(), remove_city(), and update_unit_activity().
Claim ownership of bases on single tile.
Definition at line 2220 of file maphand.c.
Referenced by map_claim_ownership(), sg_load_map_owner(), sg_load_map_owner(), sg_load_player_units(), and unit_move().
Give pplayer the correct knowledge about tile; return TRUE iff knowledge changed.
Note that unlike update_tile_knowledge, this function will not send any packets to the client. Callers may want to call send_tile_info() if this function returns TRUE.
Definition at line 1398 of file maphand.c.
Referenced by destroy_extra(), found_new_tech(), map_change_seen(), map_show_tile(), sg_load_player_vision(), sg_load_player_vision(), and update_tile_knowledge().
Remember that tile was last seen this year.
Definition at line 1467 of file maphand.c.
Referenced by map_change_seen(), map_hide_tile(), map_show_tile(), sg_load_player_vision(), and sg_load_player_vision().
Update playermap knowledge for everybody who sees the tile, and send a packet to everyone whose info is changed.
Note this only checks for changing of the terrain, special, or resource for the tile, since these are the only values held in the playermap.
A tile's owner always can see terrain changes in their territory.
Definition at line 1439 of file maphand.c.
Referenced by api_edit_change_terrain(), api_edit_create_owned_extra(), api_edit_remove_extra(), begin_phase(), check_terrain_change(), climate_change(), create_city(), do_nuke_tile(), edit_tile_extra_handling(), edit_tile_terrain_handling(), end_turn(), handle_edit_tile(), map_claim_border_ownership(), place_pollution(), place_starting_unit(), transfer_city(), try_summon_barbarians(), unit_enter_hut(), update_unit_activity(), and upgrade_all_city_extras().
To be called when a player gains some better extra building tech for the first time. Sends a message, and upgrades all city squares to new extras. "discovery" just affects the message: set to 1 if the tech is a "discovery", 0 if otherwise acquired (conquer/trade/GLib). –dwp
Definition at line 276 of file maphand.c.
Referenced by found_new_tech().
bool upgrade_city_extras | ( | struct city * | pcity, |
struct extra_type ** | gained | ||
) |
Check city for extra upgrade. Returns whether anything was done. gained will be set if there's exactly one kind of extra added.
Definition at line 241 of file maphand.c.
Referenced by create_city(), result_defense_bonus(), terrain_changed(), transfer_city(), and upgrade_all_city_extras().
void vision_change_sight | ( | struct vision * | vision, |
const v_radius_t | radius_sq | ||
) |
Change the sight points for the vision source, fogging or unfogging tiles as needed.
See documentation in vision.h.
Definition at line 2521 of file maphand.c.
Referenced by city_refresh_vision(), transfer_city(), unit_move_by_data(), unit_refresh_vision(), and vision_clear_sight().
Clear all sight points from this vision source.
See documentation in vision.h.
Definition at line 2533 of file maphand.c.
Referenced by remove_city(), server_remove_unit_full(), transfer_city(), unit_change_homecity_handling(), and unit_move().