Freeciv21
Develop your civilization from humble roots to a global empire
road.cpp File Reference
#include "extras.h"
#include "fc_types.h"
#include "game.h"
#include "map.h"
#include "road.h"
+ Include dependency graph for road.cpp:

Go to the source code of this file.

Functions

Road_type_id road_number (const struct road_type *proad)
 Return the road id. More...
 
struct extra_typeroad_extra_get (const struct road_type *proad)
 Return extra that road is. More...
 
Road_type_id road_count ()
 Return the number of road_types. More...
 
struct road_typeroad_by_number (Road_type_id id)
 Return road type of given id. More...
 
int compare_road_move_cost (const struct extra_type *const *p, const struct extra_type *const *q)
 This function is passed to road_type_list_sort() to sort a list of roads in ascending move_cost (faster roads first). More...
 
void road_type_init (struct extra_type *pextra, int idx)
 Initialize road_type structures. More...
 
void road_integrators_cache_init ()
 Initialize the road integrators cache. More...
 
void road_types_free ()
 Free the memory associated with road types. More...
 
enum road_compat road_compat_special (const struct road_type *proad)
 Return tile special that used to represent this road type. More...
 
struct road_typeroad_by_compat_special (enum road_compat compat)
 Return road type represented by given compatibility special, or nullptr if special does not represent road type at all. More...
 
bool road_can_be_built (const struct road_type *proad, const struct tile *ptile)
 Tells if road can build to tile if all other requirements are met. More...
 
static bool are_road_reqs_fulfilled (const struct road_type *proad, const struct player *pplayer, const struct unit *punit, const struct tile *ptile)
 Tells if player and optionally unit have road building requirements fulfilled. More...
 
bool player_can_build_road (const struct road_type *proad, const struct player *pplayer, const struct tile *ptile)
 Tells if player can build road to tile with suitable unit. More...
 
bool can_build_road (struct road_type *proad, const struct unit *punit, const struct tile *ptile)
 Tells if unit can build road on tile. More...
 
int count_river_near_tile (const struct tile *ptile, const struct extra_type *priver)
 Count tiles with any river near the tile. More...
 
int count_river_type_tile_card (const struct tile *ptile, const struct extra_type *priver, bool percentage)
 Count tiles with river of specific type cardinally adjacent to the tile. More...
 
int count_river_type_near_tile (const struct tile *ptile, const struct extra_type *priver, bool percentage)
 Count tiles with river of specific type near the tile. More...
 
bool road_has_flag (const struct road_type *proad, enum road_flag_id flag)
 Check if road provides effect. More...
 
bool is_road_flag_card_near (const struct tile *ptile, enum road_flag_id flag)
 Returns TRUE iff any cardinally adjacent tile contains a road with the given flag (does not check ptile itself). More...
 
bool is_road_flag_near_tile (const struct tile *ptile, enum road_flag_id flag)
 Returns TRUE iff any adjacent tile contains a road with the given flag (does not check ptile itself). More...
 
bool is_cardinal_only_road (const struct extra_type *pextra)
 Is extra cardinal only road. More...
 
bool road_provides_move_bonus (const struct road_type *proad)
 Does road type provide move bonus. More...
 

Function Documentation

◆ are_road_reqs_fulfilled()

static bool are_road_reqs_fulfilled ( const struct road_type proad,
const struct player pplayer,
const struct unit punit,
const struct tile ptile 
)
static

Tells if player and optionally unit have road building requirements fulfilled.

Definition at line 197 of file road.cpp.

Referenced by can_build_road(), and player_can_build_road().

◆ can_build_road()

bool can_build_road ( struct road_type proad,
const struct unit punit,
const struct tile ptile 
)

Tells if unit can build road on tile.

Definition at line 275 of file road.cpp.

Referenced by can_units_do_any_road(), check_recursive_road_connect(), and unit_actions::update_actions().

◆ compare_road_move_cost()

int compare_road_move_cost ( const struct extra_type *const *  p,
const struct extra_type *const *  q 
)

This function is passed to road_type_list_sort() to sort a list of roads in ascending move_cost (faster roads first).

Definition at line 63 of file road.cpp.

Referenced by road_integrators_cache_init().

◆ count_river_near_tile()

int count_river_near_tile ( const struct tile ptile,
const struct extra_type priver 
)

Count tiles with any river near the tile.

Definition at line 290 of file road.cpp.

Referenced by is_terrain_ecologically_wet(), make_river(), and make_rivers().

◆ count_river_type_near_tile()

int count_river_type_near_tile ( const struct tile ptile,
const struct extra_type priver,
bool  percentage 
)

Count tiles with river of specific type near the tile.

Definition at line 340 of file road.cpp.

Referenced by island_river_suitability().

◆ count_river_type_tile_card()

int count_river_type_tile_card ( const struct tile ptile,
const struct extra_type priver,
bool  percentage 
)

Count tiles with river of specific type cardinally adjacent to the tile.

Definition at line 313 of file road.cpp.

Referenced by island_river_mouth_suitability(), island_river_suitability(), river_test_adjacent_river(), and river_test_rivergrid().

◆ is_cardinal_only_road()

bool is_cardinal_only_road ( const struct extra_type pextra)

Is extra cardinal only road.

Definition at line 421 of file road.cpp.

Referenced by are_road_reqs_fulfilled(), fair_map_island_new(), and freeciv::layer_roads::fill_corners().

◆ is_road_flag_card_near()

bool is_road_flag_card_near ( const struct tile ptile,
enum road_flag_id  flag 
)

Returns TRUE iff any cardinally adjacent tile contains a road with the given flag (does not check ptile itself).

Definition at line 376 of file road.cpp.

◆ is_road_flag_near_tile()

bool is_road_flag_near_tile ( const struct tile ptile,
enum road_flag_id  flag 
)

Returns TRUE iff any adjacent tile contains a road with the given flag (does not check ptile itself).

Definition at line 399 of file road.cpp.

◆ player_can_build_road()

bool player_can_build_road ( const struct road_type proad,
const struct player pplayer,
const struct tile ptile 
)

Tells if player can build road to tile with suitable unit.

Definition at line 261 of file road.cpp.

Referenced by check_recursive_road_connect().

◆ road_by_compat_special()

struct road_type* road_by_compat_special ( enum road_compat  compat)

Return road type represented by given compatibility special, or nullptr if special does not represent road type at all.

Definition at line 152 of file road.cpp.

Referenced by mr_menu::menus_sensitive(), sg_load_player_unit(), sg_special_set(), mr_menu::slot_conn_rail(), and mr_menu::slot_conn_road().

◆ road_by_number()

struct road_type* road_by_number ( Road_type_id  id)

Return road type of given id.

Definition at line 46 of file road.cpp.

Referenced by handle_ruleset_road(), set_unit_activity_road(), and sg_load_player_unit().

◆ road_can_be_built()

bool road_can_be_built ( const struct road_type proad,
const struct tile ptile 
)

Tells if road can build to tile if all other requirements are met.

Definition at line 173 of file road.cpp.

Referenced by get_tile_value().

◆ road_compat_special()

enum road_compat road_compat_special ( const struct road_type proad)

Return tile special that used to represent this road type.

Definition at line 124 of file road.cpp.

Referenced by road_by_compat_special().

◆ road_count()

Road_type_id road_count ( )

Return the number of road_types.

Definition at line 41 of file road.cpp.

Referenced by editor_tool_is_usable(), and tab_misc::refresh_stats().

◆ road_extra_get()

◆ road_has_flag()

◆ road_integrators_cache_init()

void road_integrators_cache_init ( )

Initialize the road integrators cache.

Definition at line 97 of file road.cpp.

Referenced by handle_rulesets_ready(), and load_rulesetdir().

◆ road_number()

Road_type_id road_number ( const struct road_type proad)

◆ road_provides_move_bonus()

bool road_provides_move_bonus ( const struct road_type proad)

Does road type provide move bonus.

Definition at line 437 of file road.cpp.

Referenced by helptext_extra(), set_unit_class_caches(), settler_evaluate_improvements(), tai_tile_worker_task_select(), and texai_tile_worker_task_select().

◆ road_type_init()

void road_type_init ( struct extra_type pextra,
int  idx 
)

Initialize road_type structures.

Definition at line 81 of file road.cpp.

Referenced by handle_ruleset_extra(), and load_terrain_names().

◆ road_types_free()

void road_types_free ( )

Free the memory associated with road types.

Definition at line 124 of file road.cpp.

Referenced by extras_free().