56 for (i = 0; i < s; i++) {
71 for (
auto *tc : qAsConst(
cities)) {
87 QString(
_(
"Adding city %1 to trade planning")).arg(tc->
city->
name));
98 for (
auto *tc : qAsConst(
cities)) {
99 if (pcity !=
nullptr) {
100 if (tc->city == pcity) {
105 if (tc->city->tile == ptile) {
111 if (pcity !=
nullptr) {
126 for (
auto *tc : qAsConst(
cities)) {
127 if (tc->city->tile == pcity->
tile) {
130 QString(
_(
"Removing city %1 from trade planning"))
131 .arg(tc->city->name));
143 if (c->tile == ptile) {
146 QString(
_(
"Removing city %1 from trade planning")).arg(c->name));
150 for (
auto *tc : qAsConst(
cities)) {
151 if (tc->city->tile == ptile) {
165 std::random_device rd;
166 std::mt19937 g(rd());
168 for (i = 0; i < 100; i++) {
172 for (
auto *tc : qAsConst(
cities)) {
173 tc->pos_cities.clear();
174 tc->new_tr_cities.clear();
175 tc->curr_tr_cities.clear();
177 for (
auto *tc : qAsConst(
cities)) {
179 tc->poss_trade_num = 0;
180 tc->pos_cities.clear();
181 tc->new_tr_cities.clear();
182 tc->curr_tr_cities.clear();
184 for (
auto *ttc : qAsConst(
cities)) {
187 tc->poss_trade_num++;
188 tc->pos_cities.append(ttc->city);
199 for (
auto *tc : qAsConst(
cities)) {
208 for (
auto *tc : qAsConst(
cities)) {
212 PL_(
"City %s - 1 free trade route.",
213 "City %s - %d free trade routes.",
232 for (
auto *tc : qAsConst(
cities)) {
233 if (pcity != tc->city) {
234 max = qMax(max, tc->over_max);
248 for (
auto *tc : qAsConst(
cities)) {
249 if (max < tc->over_max) {
265 for (
int i = j; i > -j; i--) {
295 for (
int i =
cities.size() - 1; i >= 0; i--) {
312 for (
auto *tc : qAsConst(
cities)) {
313 if (tc->done || tc->over_max > 0) {
316 for (
auto *ttc : qAsConst(
cities)) {
317 if (ttc->done || ttc->over_max > 0 || tc == ttc || tc->done
318 || tc->over_max > 0) {
321 if (tc->pos_cities.contains(ttc->city)
322 && ttc->pos_cities.contains(tc->city)) {
324 tc->pos_cities.removeOne(ttc->city);
325 ttc->pos_cities.removeOne(tc->city);
326 tc->poss_trade_num--;
327 ttc->poss_trade_num--;
328 tc->new_tr_cities.append(ttc->city);
329 ttc->new_tr_cities.append(ttc->city);
335 gilles.
t1 = tc->city->tile;
336 gilles.
t2 = ttc->city->tile;
338 lines.append(gilles);
void output_window_append(const struct ft_color color, const char *featured_text)
Add a line of text to the output ("chatline") window, like puts() would do it in the console.
void destroy_city_virtual(struct city *pcity)
Removes the virtual skeleton of a city.
struct city * create_city_virtual(struct player *pplayer, struct tile *ptile, const char *name)
Create virtual skeleton for a city.
QList< struct city * > pos_cities
trade_city(struct city *pcity)
Constructor for trade city used to trade calculation.
void add_city(struct city *pcity)
Adds single city to trade generator.
void find_certain_routes()
Adds routes for cities which can only have maximum possible trade routes.
trade_city * find_most_free()
Finds city with highest trade routes possible.
void discard_trade(trade_city *tc1, trade_city *tc2)
Drops trade routes between given cities.
void add_tile(struct tile *ptile)
Adds/removes tile to trade generator.
trade_generator()
Constructor for trade calculator.
void remove_virtual_city(struct tile *ptile)
Removes virtual city from trade generator.
QList< trade_city * > cities
void add_all_cities()
Adds all cities to trade generator.
void clear_trade_planing()
Clears genrated routes, virtual cities, cities.
void discard()
Drops all possible trade routes.
void remove_city(struct city *pcity)
Removes single city from trade generator.
bool discard_any(trade_city *tc, int freeroutes)
Drops all trade routes for given city.
void check_if_done(trade_city *tc1, trade_city *tc2)
Marks cities with full trade routes to finish searching.
QList< struct city * > virtual_cities
int find_over_max(struct city *pcity)
Finds highest number of trade routes over maximum for all cities, skips given city.
void calculate()
Finds trade routes to establish.
struct player * client_player()
Either controlling or observing.
#define PL_(String1, String2, n)
const struct ft_color ftc_client
const char * city_link(const struct city *pcity)
Get a text link to a city.
pageGame * queen()
Return game instandce.
char name[MAX_LEN_CITYNAME]
struct city_list * cities
struct unit * autocaravan
int fc_snprintf(char *str, size_t n, const char *format,...)
See also fc_utf8_snprintf_trunc(), fc_utf8_snprintf_rep().
struct city * tile_city(const struct tile *ptile)
Return the city on this tile (or nullptr), checking for city center.
int max_trade_routes(const struct city *pcity)
Return current maximum number of trade routes city can have.
int city_num_trade_routes(const struct city *pcity)
Return number of trade route city has.
bool can_establish_trade_route(const struct city *pc1, const struct city *pc2)
Returns TRUE iff the two cities can establish a trade route.
bool have_cities_trade_route(const struct city *pc1, const struct city *pc2)
Check if cities have an established trade route.