1 #ifndef BUILDING_MONUMENT_H 2 #define BUILDING_MONUMENT_H 3 4 #include "building/building.h" 5 #include "map/road_access.h" 6 7 #define MONUMENT_FINISHED -1 8 #define MONUMENT_START 1 9 #define MARS_OFFERING_FREQUENCY 16 10 11 typedef enum { 12 CERES_MODULE_1_REDUCE_FOOD, 13 CERES_MODULE_2_DISTRIBUTE_FOOD, 14 NEPTUNE_MODULE_1_HIPPODROME_ACCESS, 15 NEPTUNE_MODULE_2_CAPACITY_AND_WATER, 16 MERCURY_MODULE_1_POTTERY_FURN, 17 MERCURY_MODULE_2_OIL_WINE, 18 MARS_MODULE_1_MESS_HALL, 19 MARS_MODULE_2_ALL_GOODS, 20 VENUS_MODULE_1_DISTRIBUTE_WINE, 21 VENUS_MODULE_2_DESIRABILITY_ENTERTAINMENT, 22 PANTHEON_MODULE_1_DESTINATION_PRIESTS, 23 PANTHEON_MODULE_2_HOUSING_EVOLUTION 24 } module_type; 25 26 int building_monument_access_point(building *b, map_point *dst); 27 int building_monument_add_module(building *b, int module_type); 28 int building_monument_deliver_resource(building *b, int resource); 29 int building_monument_get_monument(int x, int y, int resource, 30 int road_network_id, int distance_from_entry, map_point *dst); 31 int building_monument_has_unfinished_monuments(void); 32 void building_monument_set_phase(building *b, int phase); 33 int building_monument_is_monument(const building *b); 34 int building_monument_type_is_monument(building_type type); 35 int building_monument_type_is_mini_monument(building_type type); 36 int building_monument_is_grand_temple(building_type type); 37 int building_monument_needs_resource(building *b, int resource); 38 int building_monument_needs_resources(building *b); 39 int building_monument_progress(building *b); 40 void building_monument_recalculate_monuments(void); 41 int building_monument_has_labour_problems(building *b); 42 int building_monument_working(building_type type); 43 int building_monument_resources_needed_for_monument_type(building_type type, int resource, int phase); 44 int building_monument_resource_in_delivery(building *b, int resource_id); 45 void building_monument_remove_delivery(int figure_id); 46 void building_monument_add_delivery(int monument_id, int figure_id, int resource_id, int loads_no); 47 int building_monument_has_monument(building_type type); 48 int building_monument_upgraded(building_type type); 49 int building_monument_module_type(building_type type); 50 int building_monument_phases(building_type building_type); 51 int building_monument_gt_module_is_active(int module); 52 int building_monument_pantheon_module_is_active(int module); 53 void building_monument_finish_monuments(void); 54 void building_monuments_set_construction_phase(int phase); 55 int building_monument_get_venus_gt(void); 56 int building_monument_get_neptune_gt(void); 57 void building_monument_initialize_deliveries(void); 58 int building_monument_count_grand_temples(void); 59 void building_monument_delivery_save_state(buffer *list); 60 void building_monument_delivery_load_state(buffer *list, int includes_array_size); 61 int building_monument_is_construction_halted(building *b); 62 int building_monument_toggle_construction_halted(building *b); 63 int building_monument_is_unfinished_monument(const building *b); 64 65 #endif // BUILDING_MONUMENT_H 66