1 #ifndef EMPIRE_CITY_H
2 #define EMPIRE_CITY_H
3 
4 #include "core/buffer.h"
5 #include "game/resource.h"
6 
7 typedef struct {
8     int in_use;
9     int type;
10     int name_id;
11     int route_id;
12     int is_open;
13     int buys_resource[RESOURCE_MAX];
14     int sells_resource[RESOURCE_MAX];
15     int cost_to_open;
16     int trader_entry_delay;
17     int empire_object_id;
18     int is_sea_trade;
19     int trader_figure_ids[3];
20 } empire_city;
21 
22 void empire_city_clear_all(void);
23 
24 empire_city *empire_city_get(int city_id);
25 
26 int empire_city_get_route_id(int city_id);
27 
28 int empire_can_import_resource(int resource);
29 
30 int empire_can_import_resource_potentially(int resource);
31 
32 int empire_has_access_to_resource(int resource);
33 
34 int empire_can_export_resource_potentially(int resource);
35 
36 int empire_can_export_resource(int resource);
37 
38 int can_produce_resource(int resource);
39 
40 int empire_can_produce_resource(int resource);
41 
42 int empire_can_produce_resource_potentially(int resource);
43 
44 int empire_city_get_for_object(int empire_object_id);
45 
46 int empire_city_get_for_trade_route(int route_id);
47 
48 int empire_city_is_trade_route_open(int route_id);
49 
50 void empire_city_reset_yearly_trade_amounts(void);
51 
52 int empire_city_count_wine_sources(void);
53 
54 int empire_city_get_vulnerable_roman(void);
55 
56 void empire_city_expand_empire(void);
57 
58 void empire_city_force_sell(int route, int resource);
59 
60 void empire_city_set_vulnerable(int city_id);
61 
62 void empire_city_set_foreign(int city_id);
63 
64 void empire_city_open_trade(int city_id);
65 
66 void empire_city_generate_trader(void);
67 
68 void empire_city_remove_trader(int city_id, int figure_id);
69 
70 int empire_unlock_all_resources(void);
71 
72 void empire_city_save_state(buffer *buf);
73 
74 void empire_city_load_state(buffer *buf);
75 
76 #endif // EMPIRE_CITY_H
77