24#define SINGLE_MOVE (terrain_control.move_fragments)
25#define MOVE_COST_IGTER (terrain_control.igter_cost)
27#define MAX_MOVE_FRAGS 65535
65 const struct tile *ptile,
66 const struct tile *pexclude);
69 const struct tile *ptile,
70 const struct player *pov_player);
73 const struct tile *ptile);
85 const struct tile *ptile)
93 const struct tile *src_tile,
94 const struct tile *dst_tile);
97 const struct tile *ptile);
100 const struct tile *ptile);
102 const struct player *pov_player,
104 const struct city *pcity);
109 const struct tile *ptile);
112 const struct tile *src_tile,
113 const struct tile *dst_tile,
117 const struct tile *ptile,
119 bool enter_transport,
120 bool enter_enemy_city);
124 enum unit_activity activity,
125 const struct tile *src_tile,
126 const struct tile *dst_tile,
128 bool enter_transport,
struct unit *embark_to,
129 bool enter_enemy_city);
133 enum unit_activity activity,
134 const struct tile *src_tile,
135 const struct tile *dst_tile,
136 bool enter_transport,
struct unit *embark_to,
137 bool enter_enemy_city);
146 const char *none,
bool align);
154#define MAP_TILE_CONN_TO_BY(_map_, _tile_, _piter_, _found_, _conn_) {\
155 struct dbv tile_processed; \
156 struct tile_list *process_queue = tile_list_new(); \
157 bool found = FALSE; \
159 dbv_init(&tile_processed, map_num_tiles()); \
161 dbv_set(&tile_processed, tile_index(_tile_)); \
162 adjc_iterate(_map_, _tile_, _piter_) { \
163 if (dbv_isset(&tile_processed, tile_index(_piter_))) { \
165 } else if (_found_) { \
169 } else if (_conn_) { \
170 tile_list_append(process_queue, _piter_); \
172 dbv_set(&tile_processed, tile_index(_piter_)); \
174 } adjc_iterate_end; \
180 if (0 == tile_list_size(process_queue)) { \
185 _tile_ = tile_list_front(process_queue); \
186 tile_list_pop_front(process_queue); \
190 dbv_free(&tile_processed); \
191 tile_list_destroy(process_queue); \
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
const char * move_points_text(int mp, bool reduce)
bool unit_can_move_to_tile(const struct civ_map *nmap, const struct unit *punit, const struct tile *ptile, bool igzoc, bool enter_transport, bool enter_enemy_city)
const char * move_points_text_full(int mp, bool reduce, const char *prefix, const char *none, bool align)
bool can_exist_at_tile(const struct civ_map *nmap, const struct unit_type *utype, const struct tile *ptile)
enum unit_move_result unit_move_to_tile_test(const struct civ_map *nmap, const struct unit *punit, enum unit_activity activity, const struct tile *src_tile, const struct tile *dst_tile, bool igzoc, bool enter_transport, struct unit *embark_to, bool enter_enemy_city)
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 can_step_taken_wrt_to_zoc(const struct unit_type *punittype, const struct player *unit_owner, const struct tile *src_tile, const struct tile *dst_tile, const struct civ_map *zmap)
bool could_exist_in_city(const struct civ_map *nmap, const struct player *pov_player, const struct unit_type *utype, const struct city *pcity)
int utype_unknown_move_cost(const struct unit_type *utype)
bool unit_can_load(const struct unit *punit)
bool can_unit_transport(const struct unit *transporter, const struct unit *transported)
int unit_move_rate(const struct unit *punit)
bool unit_could_load_at(const struct unit *punit, const struct tile *ptile)
static bool is_native_tile_to_class(const struct unit_class *punitclass, const struct tile *ptile)
bool can_attack_from_non_native(const struct unit_type *utype)
@ MR_DESTINATION_OCCUPIED_BY_NON_ALLIED_UNIT
@ MR_DESTINATION_OCCUPIED_BY_NON_ALLIED_CITY
@ MR_NO_TRANSPORTER_CAPACITY
enum unit_move_result unit_teleport_to_tile_test(const struct civ_map *nmap, const struct unit *punit, enum unit_activity activity, const struct tile *src_tile, const struct tile *dst_tile, bool enter_transport, struct unit *embark_to, bool enter_enemy_city)
bool unit_can_defend_here(const struct civ_map *nmap, const struct unit *punit)
bool is_native_move(const struct civ_map *nmap, const struct unit_class *punitclass, const struct tile *src_tile, const struct tile *dst_tile)
bool may_be_city_channel_tile(const struct civ_map *nmap, const struct unit_class *punitclass, const struct tile *ptile, const struct player *pov_player)
bool is_native_to_class(const struct unit_class *punitclass, const struct terrain *pterrain, const bv_extras *extras)
int utype_move_rate(const struct unit_type *utype, const struct tile *ptile, const struct player *pplayer, int veteran_level, int hitpoints)
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)
bool can_unit_type_transport(const struct unit_type *transporter, const struct unit_class *transported)
void init_move_fragments(void)
bool can_attack_non_native(const struct unit_type *utype)
#define tile_terrain(_tile)
static const bv_extras * tile_extras(const struct tile *ptile)