1 #ifndef MAP_ROUTING_H 2 #define MAP_ROUTING_H 3 4 #include "core/buffer.h" 5 6 typedef enum { 7 ROUTED_BUILDING_ROAD = 0, 8 ROUTED_BUILDING_WALL = 1, 9 ROUTED_BUILDING_AQUEDUCT = 2, 10 ROUTED_BUILDING_AQUEDUCT_WITHOUT_GRAPHIC = 4, 11 } routed_building_type; 12 13 void map_routing_calculate_distances(int x, int y); 14 void map_routing_calculate_distances_water_boat(int x, int y); 15 void map_routing_calculate_distances_water_flotsam(int x, int y); 16 17 int map_routing_calculate_distances_for_building(routed_building_type type, int x, int y); 18 19 void map_routing_delete_first_wall_or_aqueduct(int x, int y); 20 21 int map_routing_distance(int grid_offset); 22 23 int map_routing_citizen_can_travel_over_land(int src_x, int src_y, int dst_x, int dst_y); 24 int map_routing_citizen_can_travel_over_road_garden(int src_x, int src_y, int dst_x, int dst_y); 25 int map_routing_can_travel_over_walls(int src_x, int src_y, int dst_x, int dst_y); 26 27 int map_routing_noncitizen_can_travel_over_land( 28 int src_x, int src_y, int dst_x, int dst_y, int only_through_building_id, int max_tiles); 29 int map_routing_noncitizen_can_travel_through_everything(int src_x, int src_y, int dst_x, int dst_y); 30 31 void map_routing_block(int x, int y, int size); 32 33 void map_routing_save_state(buffer *buf); 34 35 void map_routing_load_state(buffer *buf); 36 37 #endif // MAP_ROUTING_H 38