1 #ifndef EMPIRE_TRADE_ROUTE_H
2 #define EMPIRE_TRADE_ROUTE_H
3 
4 #include "core/buffer.h"
5 #include "game/resource.h"
6 
7 void trade_route_init(int route_id, resource_type resource, int limit);
8 
9 int trade_route_limit(int route_id, resource_type resource);
10 
11 int trade_route_traded(int route_id, resource_type resource);
12 
13 /**
14  * Increases the trade limit of the resource
15  * @param route_id Trade route
16  * @param resource Resource
17  * @return True on success, false if the limit couldn't be increased
18  */
19 int trade_route_increase_limit(int route_id, resource_type resource);
20 
21 /**
22  * Decreases the trade limit of the resource
23  * @param route_id Trade route
24  * @param resource Resource
25  * @return True on success, false if the limit couldn't be decreased
26  */
27 int trade_route_decrease_limit(int route_id, resource_type resource);
28 
29 void trade_route_increase_traded(int route_id, resource_type resource);
30 
31 void trade_route_reset_traded(int route_id);
32 
33 int trade_route_limit_reached(int route_id, resource_type resource);
34 
35 void trade_routes_save_state(buffer *limit, buffer *traded);
36 
37 void trade_routes_load_state(buffer *limit, buffer *traded);
38 
39 #endif // EMPIRE_TRADE_ROUTE_H
40