diff --git a/src/window/empire.c b/src/window/empire.c index e0a9f93f78..32a5ef6a2f 100644 --- a/src/window/empire.c +++ b/src/window/empire.c @@ -160,13 +160,10 @@ static void draw_trade_city_info(const empire_object *object, const empire_city lang_text_draw(47, 10, x_offset + 44, y_offset + 40, FONT_NORMAL_GREEN); int index = 0; for (int resource = RESOURCE_MIN; resource < RESOURCE_MAX; resource++) { - if (!empire_object_city_sells_resource(object->id, resource)) { + if (!city->sells_resource[resource]) { continue; } int trade_max = trade_route_limit(city->route_id, resource); - if (trade_max <= 0) { - continue; - } draw_trade_resource(resource, trade_max, x_offset + 104 * index + 120, y_offset + 31); int trade_now = trade_route_traded(city->route_id, resource); if (trade_now > trade_max) { @@ -184,13 +181,10 @@ static void draw_trade_city_info(const empire_object *object, const empire_city lang_text_draw(47, 9, x_offset + 44, y_offset + 71, FONT_NORMAL_GREEN); index = 0; for (int resource = RESOURCE_MIN; resource < RESOURCE_MAX; resource++) { - if (!empire_object_city_buys_resource(object->id, resource)) { + if (!city->buys_resource[resource]) { continue; } int trade_max = trade_route_limit(city->route_id, resource); - if (trade_max <= 0) { - continue; - } draw_trade_resource(resource, trade_max, x_offset + 104 * index + 120, y_offset + 62); int trade_now = trade_route_traded(city->route_id, resource); if (trade_now > trade_max) { @@ -207,25 +201,19 @@ static void draw_trade_city_info(const empire_object *object, const empire_city } else { // trade is closed int index = lang_text_draw(47, 5, x_offset + 50, y_offset + 42, FONT_NORMAL_GREEN); for (int resource = RESOURCE_MIN; resource < RESOURCE_MAX; resource++) { - if (!empire_object_city_sells_resource(object->id, resource)) { + if (!city->sells_resource[resource]) { continue; } int trade_max = trade_route_limit(city->route_id, resource); - if (trade_max <= 0) { - continue; - } draw_trade_resource(resource, trade_max, x_offset + index + 60, y_offset + 33); index += 32; } index += lang_text_draw(47, 4, x_offset + index + 100, y_offset + 42, FONT_NORMAL_GREEN); for (int resource = RESOURCE_MIN; resource < RESOURCE_MAX; resource++) { - if (!empire_object_city_buys_resource(object->id, resource)) { + if (!city->buys_resource[resource]) { continue; } int trade_max = trade_route_limit(city->route_id, resource); - if (trade_max <= 0) { - continue; - } draw_trade_resource(resource, trade_max, x_offset + index + 110, y_offset + 33); index += 32; } @@ -527,14 +515,11 @@ static void handle_input(const mouse *m, const hotkeys *h) // we only want to handle resource buttons that the selected city trades for (int resource = RESOURCE_MIN; resource < RESOURCE_MAX; resource++) { - if (trade_route_limit(city->route_id, resource) <= 0) { - continue; - } - if (empire_object_city_sells_resource(obj->id, resource)) { + if (city->sells_resource[resource]) { generic_buttons_handle_mouse(m, x_offset + 120 + 104 * index_sell, y_offset + 31, generic_button_trade_resource + resource - 1, 1, &button_id); index_sell++; - } else if (empire_object_city_buys_resource(obj->id, resource)) { + } else if (city->buys_resource[resource]) { generic_buttons_handle_mouse(m, x_offset + 120 + 104 * index_buy, y_offset + 62, generic_button_trade_resource + resource - 1, 1, &button_id); index_buy++; @@ -585,7 +570,7 @@ static int get_tooltip_resource(tooltip_context *c) int item_offset = lang_text_get_width(47, 5, FONT_NORMAL_GREEN); for (int r = RESOURCE_MIN; r < RESOURCE_MAX; r++) { - if (empire_object_city_sells_resource(object_id, r) && trade_route_limit(city->route_id, r) > 0) { + if (city->sells_resource[r]) { if (is_mouse_hit(c, x_offset + 60 + item_offset, y_offset + 33, 26)) { return r; } @@ -594,7 +579,7 @@ static int get_tooltip_resource(tooltip_context *c) } item_offset += lang_text_get_width(47, 4, FONT_NORMAL_GREEN); for (int r = RESOURCE_MIN; r <= RESOURCE_MAX; r++) { - if (empire_object_city_buys_resource(object_id, r) && trade_route_limit(city->route_id, r) > 0) { + if (city->buys_resource[r]) { if (is_mouse_hit(c, x_offset + 110 + item_offset, y_offset + 33, 26)) { return r; }