21#define SPECENUM_NAME road_flag_id
22#define SPECENUM_VALUE0 RF_RIVER
25#define SPECENUM_VALUE0NAME N_("River")
26#define SPECENUM_VALUE1 RF_UNRESTRICTED_INFRA
27#define SPECENUM_VALUE1NAME N_("UnrestrictedInfra")
28#define SPECENUM_VALUE2 RF_JUMP_FROM
29#define SPECENUM_VALUE2NAME N_("JumpFrom")
30#define SPECENUM_VALUE3 RF_JUMP_TO
31#define SPECENUM_VALUE3NAME N_("JumpTo")
32#define SPECENUM_COUNT RF_COUNT
33#define SPECENUM_BITVECTOR bv_road_flags
37#define SPECENUM_NAME road_move_mode
38#define SPECENUM_VALUE0 RMM_CARDINAL
39#define SPECENUM_VALUE0NAME "Cardinal"
40#define SPECENUM_VALUE1 RMM_RELAXED
41#define SPECENUM_VALUE1NAME "Relaxed"
42#define SPECENUM_VALUE2 RMM_FAST_ALWAYS
43#define SPECENUM_VALUE2NAME "FastAlways"
47#define SPECENUM_NAME road_gui_type
48#define SPECENUM_VALUE0 ROAD_GUI_ROAD
49#define SPECENUM_VALUE0NAME "Road"
50#define SPECENUM_VALUE1 ROAD_GUI_RAILROAD
51#define SPECENUM_VALUE1NAME "Railroad"
52#define SPECENUM_VALUE2 ROAD_GUI_MAGLEV
53#define SPECENUM_VALUE2NAME "Maglev"
54#define SPECENUM_VALUE3 ROAD_GUI_OTHER
55#define SPECENUM_VALUE3NAME "Other"
61#define SPECLIST_TAG road_type
62#define SPECLIST_TYPE struct road_type
65#define road_type_list_iterate(roadlist, proad) \
66 TYPED_LIST_ITERATE(struct road_type, roadlist, proad)
67#define road_type_list_iterate_end LIST_ITERATE_END
111 const struct tile *ptile,
114 const struct tile *ptile,
118 const struct tile *ptile,
133 const struct tile *ptile);
136 const struct player *pplayer,
137 const struct tile *ptile);
140 const struct tile *ptile);
155#define road_deps_iterate(_reqs, _dep) \
157 requirement_vector_iterate(_reqs, preq) { \
158 if (preq->source.kind == VUT_EXTRA \
160 && is_extra_caused_by(preq->source.value.extra, EC_ROAD)) { \
161 struct road_type *_dep = extra_road_get(preq->source.value.extra);
164#define road_deps_iterate_end \
166 } requirement_vector_iterate_end; \
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
Road_type_id road_count(void)
bool can_build_road(const struct civ_map *nmap, struct road_type *proad, const struct unit *punit, const struct tile *ptile)
struct extra_type * road_extra_get(const struct road_type *proad)
Road_type_id road_number(const struct road_type *proad)
bool road_has_flag(const struct road_type *proad, enum road_flag_id flag)
bool is_cardinal_only_road(const struct extra_type *pextra)
void road_integrators_cache_init(void)
enum road_compat road_compat_special(const struct road_type *proad)
bool is_road_flag_near_tile(const struct civ_map *nmap, const struct tile *ptile, enum road_flag_id flag)
bool road_provides_move_bonus(const struct road_type *proad)
void road_types_free(void)
int count_river_type_tile_card(struct civ_map *nmap, const struct tile *ptile, const struct extra_type *priver, bool percentage)
struct road_type * road_by_number(Road_type_id id)
void road_type_init(struct extra_type *pextra, int idx)
bool is_native_tile_to_road(const struct road_type *proad, const struct tile *ptile)
int compare_road_move_cost(const struct extra_type *const *p, const struct extra_type *const *q)
struct road_type * road_by_compat_special(enum road_compat compat)
bool road_can_be_built(const struct road_type *proad, const struct tile *ptile)
int count_river_type_near_tile(struct civ_map *nmap, const struct tile *ptile, const struct extra_type *priver, bool percentage)
int count_river_near_tile(struct civ_map *nmap, const struct tile *ptile, const struct extra_type *priver)
bool player_can_build_road(const struct civ_map *nmap, const struct road_type *proad, const struct player *pplayer, const struct tile *ptile)
struct road_type * road_by_gui_type(enum road_gui_type gui_type)
bool is_road_flag_card_near(const struct civ_map *nmap, const struct tile *ptile, enum road_flag_id flag)
int count_road_near_tile(struct civ_map *nmap, const struct tile *ptile, const struct road_type *proad)
static struct compatibility compat[]
enum road_gui_type gui_type
struct requirement_vector first_reqs
enum road_move_mode move_mode
struct extra_type_list * integrators
int tile_incr_const[O_LAST]