DELTA 28735 12694 2634
SVN  †  †   … ƒùq €‚^ _„„3€Y „‚R€ ‚Ÿ„€k»trade_routes_iterate(pCity, proute) {
    step += proute->value;

    if ((pTradeCity = game_city_by_number(proute->partner))) {
      fc_snprintf(cBuf, sizeof(cBuf), "%s: +%d", city_name(pTradeCity),
                  proute->value);
    } else {
      fc_snprintf(cBuf, sizeof(cBuf), "%s: +%d", _("Unknown"),
                  proute->value);
    }alphablit(pSurf, NULL, pCityWindow->dst->surface, &dest, 255);

    /* blit trade icon */    dest.x = pCityWindow->size.x + adj_size(10);
    dest.y -= adj_size(4);

    dest.y += pSurf->h;

    FREESURFACE(pSurf);
  } trade_routes_iterate_end;cost / 10;
    }

    copy_chars_to_string16(pStr, improvem†  ­¬d  ¬d;ENDREP
DELTA 26863 133 242
SVN  ¢¢} •6 €d ‹•r¸  {struct trade_route *remove_trade_route(struct city *pc1, struct trade_route *proute,
               void refresh_player_cities_vision(struct player *pplayerENDREP
DELTA 28926 2624 159
SVN  ß#Þ Ý Ÿ €mÞ6struct trade_route_list *routesENDREP
DELTA 28923 0 1355
SVN  â!â}ƒa În º ƒ2Ï€ƒ' Œ|Õ%trade_route_list *would_remove = (countloser ? trade_routetrade_route_list_iterate(would_remove, plost) {
        struct city *losercity = game_city_by_number(plost->partner);

        if (city_owner(losercity) == pplayer) {
          trade_routes_iterate(losercity, pback) {
            if (pback->partner == pcity->id) {
              losttrade += pback->value;
            }
          } trade_routes_iterate_end;
        }
      } trade_route_list_iterate_end;
      trade_routeENDREP
DELTA 28963 604 18
SVN  °?°Cg Š €g ¥@Špartners_iterate(pcity, tgt) {
        trade += trade_between_cities(pcity, tgt);
      } trade_partnerENDREP
DELTA 28682 7787 4310
SVN  †  †  ‚1ƒU ‚› ‡ '‚›
‡ ¤D‚œ6‡ ‚À‡ Ÿ{‚Â‡ 7ƒÜ8” LƒƒxŽ '‚ä:‡ 9ƒ‡: u‚ö› ‚jƒ‰‚ h„9§ vƒ¼@ Š‚ý‡ ‚+ƒ‡:‡ “!ƒ‰j‡ *ƒÜ8 hƒž:• ‚cƒ‰~‡ „®} ^ƒ¤9‡ *ƒÜ8 oƒž: oƒ·5• ‚cƒ‰~„ „®}„ [ƒ¤@ ‚û Šaƒ¾6‡ 7ƒÜ8š Lƒƒxœ ‚cƒ‰~„ „®}„ [ƒ¤@ ‚ûš `‚×v† rƒ¿6  Y‚Ëz ‡vƒÔ=‡ ‚$ƒÜ8• ‚cƒ‰~ ¨&ƒáR‡ n„‰}‡ °„‹p³ ç„¼4‡ <…£=‡ úU…¤~partnerpartnerpartnerpartnerpartnerextra(ptile, pextra) trade_partnerpartnerpartners_iterate_end;
    }il**/
static enum fc_tristate is_resourcepartnerpartnerpartnerpartners_iterate_end;terrainpartnerpartners_iterate_end;basebasepartnerbase_flag(ptile, baseflag) trade_partners_iterate_end;roadroadenum road_flag_id roadflaga roadroad_flag(target_tile, roadflag)partnerpartners_iterate_end;partnerpartnerLIVABLE_TILE:
    return BOOL_TO_TRISTATE(
        partnerpartner†  êFêtG­ ’n Œ -’xŽ Ö”4.achievement),
               bufsz);
    retLIVABLE_TILEOn native tileENDREP
DELTA 28866 7335 1761
SVN  ÁnÁv†< À;  ‹ÀD€…^ QÑ:€^ _°? î2Ó<trade_routes_iterate(pcity, proute) {
    struct city *partner = game_city_by_number(proute->partner);

    if (partner != NULL) {
      struct trade_route *back_route = NULL;

      trade_routes_iterate(partner, pback) {
        if (pback->partner == pcity->id) {
          back_route = pback;
          break;
        }
      } trade_routes_iterate_end;

      SANITY_CITY(pcity, back_route != NULL);

      if (back_route != NULL) {
        switch (back_route->dir) {
        case RDIR_TO:
          SANITY_CITY(pcity, proute->dir == RDIR_FROM);
          break;
        case RDIR_FROM:
          SANITY_CITY(pcity, proute->dir == RDIR_TO);
          break;
        case RDIR_BIDIRECTIONAL:
          SANITY_CITY(pcity, proute->dirroute->goods == back_route->goods);
      }
    }
  } trade_routes_iterate_end;

  return TRUEENDREP
DELTA 23389 1531 5986
SVN  ®T:Pòj … €u P‰¡ C¥@€‚ R¤ ¸ C¥@€B R¤ €k C¥@€ƒ^ R¤ €` C¥@€ƒ@ R¤ ½ C¥@€„" R¤ €b C¥@€… R¤ €Z C¥@€„ R¤ €L … ‹F ‚9|€˜ q–^€šv —+€| b—z€˜^ ‚J™&‹ ‚>›~ !žR© %Ÿp€F ¡t€ ‚£{‹ ‚E¦ '¨s€M ]ªn€t R¤ ¯ C¥@€idiptreaty.h"
#include "game.h"
#include "map.h"
#include "metaknowledge.h"
#include "tile.h"
#include "traderoutes.h"An AND function for fc_tristate.
*******/
enum fc_tristate tri_and(enum fc_tristate one,
                         enum fc_tristate two)
{
  if (TRI_NO == one || TRI_NO == two) {
    return TRI_NO;
  }

  if (TRI_MAYBE == one || TRI_MAYBE == two) {
    return TRI_MAYBE;
  }

  return TRI_YES;Returns TRUE iff the target_tile is seen by pow_player.
*******/
static bool is_tile_seen(const struct player *pow_player,
                         const struct tile *target_tile)
{
  return tile_get_known(target_tile, pow_player) == TILE_KNOWN_SEEN;Returns TRUE iff the target_tile it self and all tiles cardinally
  adjacent to it are seen by pow_player.
*******/
static bool is_tile_seen_cadj(const struct player *pow_player,
                              const struct tile *target_tile)
{
  /* The tile it self is unseen. */
  if (!is_tile_seen(pow_player, target_tile)) {
    return FALSE;
  }

  /* A cardinally adjacent tile is unseen. */
  cardinal_adjc_iterate(target_tile, ptile) {
    if (!is_tile_seen(pow_player, ptile)) {
      return FALSE;
    }
  } cardinal_adjc_iterate_end;

  /* They are all seen. */
  return TRUE;Returns TRUE iff the target_tile it self and all tiles adjacent to it
  are seen by pow_player.
*******/
static bool is_tile_seen_adj(const struct player *pow_player,
                             const struct tile *target_tile)
{
  /* The tile it self is unseen. */
  if (!is_tile_seen(pow_player, target_tile)) {
    return FALSE;
  }

  /* An adjacent tile is unseen. */
  adjc_iterate(target_tile, ptile) {
    if (!is_tile_seen(pow_player, ptile)) {
      return FALSE;
    }
  } adjc_iterate_end;

  /* They are all seen. */
  return TRUE;Returns TRUE iff all tiles of a city are seen by pow_player.
*******/
static bool is_tile_seen_city(const struct player *pow_player,
                              const struct city *target_city)
{
  /* Don't know the city radius. */
  if (!can_player_see_city_internals(pow_player, target_city)) {
    return FALSE;
  }

  /* A tile of the city is unseen */
  city_tile_iterate(city_map_radius_sq_get(target_city),
                    city_tile(target_city), ptile) {
    if (!is_tile_seen(pow_player, ptile)) {
      return FALSE;
    }
  } city_tile_iterate_end;

  /* They are all seen. */
  return TRUE;Returns TRUE iff all tiles of a city an all tiles of its trade partners
  are seen by pow_player.
*******/
static bool is_tile_seen_traderoute(const struct player *pow_player,
                                    const struct city *target_city)
{
  /* Don't know who the trade routes will go to. */
  if (!can_player_see_city_internals(pow_player, target_city)) {
    return FALSE;
  }

  /* A tile of the city is unseen */
  if (!is_tile_seen_city(pow_player, target_city)) {
    return FALSE;
  }

  /* A tile of a trade parter is unseen */
  trade_partners_iterate(target_city, trade_partner) {
    if (!is_tile_seen_city(pow_player, trade_partner)) {
      return FALSE;
    }
  } trade_partners_iterate_end;

  /* They are all seen. */
  return TRUE;Returns TRUE iff pplayer can see all the symmetric diplomatic
  relationships of tplayer.
*******/
static bool can_plr_see_all_sym_diplrels_of(const struct player *pplayer,
                                            const struct player *tplayer)
{
  if (pplayer == tplayer) {
    /* Can see own relationships. */
    return TRUE;
  }

  if (player_has_embassy(pplayer, tplayer)) {
    /* Gets reports from the embassy. */
    return TRUE;
  }

  if (player_diplstate_get(pplayer, tplayer)->contact_turns_left > 0) {
    /* Can see relationships during contact turns. */
    return TRUE;
  }

  return FALSE;Is an evalutaion of the requirement accurate when pow_player evaluates
  it? *target_unit
      || req->source.kind == VUT_UTYPE
      || req->source.kind == VUT_UCLASS
      || req->source.kind == VUT_UCFLAG
      || req->source.kind == VUT_MINVETERAN
      || req->source.kind == VUT_MINHP) {
    switch (req->range) {
    case REQ_RANGE_LOCAL:
      return target_unit && can_player_see_unit(pow_player, target_unit);
    case REQ_RANGE_CADJACENT:
    case REQ_RANGE_ADJACENT:
    case REQ_RANGE_CONTINENT:
    case REQ_RANGE_CITY:
    case REQ_RANGE_TRADEROUTE:
    case REQ_RANGE_PLAYER:
    case REQ_RANGE_TEAM:
    case REQ_RANGE_ALLIANCE:
    case REQ_RANGE_WORLD:
    case REQ_RANGE_COUNT:
      return FALSE;
    }
  }

  if (req->source.kind == VUT_UNITSTATE) {
    fc_assert_ret_val_msg(req->range == REQ_RANGE_LOCAL, FALSE, "Wrong range");

    switch (req->source.value.unit_state) {
    case USP_TRANSPORTED:
    case USP_LIVABLE_TILE:
      /* Known if the unit is seen by the player. */
      return target_unit && can_player_see_unit(pow_player, target_unit);
    case USP_COUNT:
      fc_assert_msg(req->source.value.unit_state != USP_COUNT,
                    "Invalid unit state property.");
      /* Invalid property is unknowable. */
      return FALSE;
    }
  }

  if (req->source.kind == VUT_MINMOVES) {
    fc_assert_ret_val_msg(req->range == REQ_RANGE_LOCAL, FALSE, "Wrong range");

    switch (req->range) {
    case REQ_RANGE_LOCAL:
      /* The owner can see if his unit has move fragments left. */
      return unit_owner(target_unit) == pow_player;
    case REQ_RANGE_CADJACENT:
    case REQ_RANGE_ADJACENT:
    case REQ_RANGE_CITY:
    case REQ_RANGE_TRADEROUTE:
    case REQ_RANGE_CONTINENT:
    case REQ_RANGE_PLAYER:
    case REQ_RANGE_TEAM:
    case REQ_RANGE_ALLIANCE:
    case REQ_RANGE_WORLD:
    case REQ_RANGE_COUNT:
      /* Invalid range */
      return FALSE;
    }
  }

  if (req->source.kind == VUT_DIPLREL) {
    switch (req->range) {
    case REQ_RANGE_LOCAL:
      if (pow_player == target_player
          || pow_player == other_player)  {
        return TRUE;
      }

      if (can_plr_see_all_sym_diplrels_of(pow_player, target_player)
          || can_plr_see_all_sym_diplrels_of(pow_player, other_player)) {
        return TRUE;
      }

      /* TODO: Non symmetric diplomatic relationships. */
      break;
    case REQ_RANGE_PLAYER:
      if (pow_player == target_player) {
        return TRUE;
      }

      if (can_plr_see_all_sym_diplrels_of(pow_player, target_player)) {
        return TRUE;
      }

      /* TODO: Non symmetric diplomatic relationships. */
      break;
    case REQ_RANGE_TEAM:
      /* TODO */
      break;
    case REQ_RANGE_ALLIANCE:
      /* TODO */
      break;
    case REQ_RANGE_WORLD:
      /* TODO */
      break;
    case REQ_RANGE_CADJACENT:
    case REQ_RANGE_ADJACENT:
    case REQ_RANGE_CITY:
    case REQ_RANGE_TRADEROUTE:
    case REQ_RANGE_CONTINENT:
    case REQ_RANGE_COUNT:
      /* Invalid range */
      return FALSE;
      break;
    }
  }

  if (req->source.kind == VUT_MINSIZE && target_city != NULL) {
    if (is_tile_seen(pow_player, city_tile(target_city))CITYTILE) {
    struct city *pcity;

    switch (req->range) {
    case REQ_RANGE_LOCAL:
      /* Known because the tile is seen */
      if (is_tile_seen(pow_player, target_tile)) {
        return TRUE;
      }

      /* The player knows its city even if he can't see it */
      pcity = tile_city(target_tile);
      return pcity && city_owner(pcity) == pow_player;
    case REQ_RANGE_CADJACENT:
      /* Known because the tile is seen */
      if (is_tile_seen_cadj(pow_player, target_tile)) {
        return TRUE;
      }

      /* The player knows its city even if he can't see it */
      cardinal_adjc_iterate(target_tile, ptile) {
        pcity = tile_city(ptile);
        if (pcity && city_owner(pcity) == pow_player) {
          return TRUE;
        }
      } cardinal_adjc_iterate_end;

      /* Unknown */
      return FALSE;
    case REQ_RANGE_ADJACENT:
      /* Known because the tile is seen */
      if (is_tile_seen_adj(pow_player, target_tile)) {
        return TRUE;
      }

      /* The player knows its city even if he can't see it */
      adjc_iterate(target_tile, ptile) {
        pcity = tile_city(ptile);
        if (pcity && city_owner(pcity) == pow_player) {
          return TRUE;
        }
      } adjc_iterate_end;

      /* Unknown */
      return FALSE;
    case REQ_RANGE_CITY:
    case REQ_RANGE_TRADEROUTE:
    case REQ_RANGE_CONTINENT:
    case REQ_RANGE_PLAYER:
    case REQ_RANGE_TEAM:
    case REQ_RANGE_ALLIANCE:
    case REQ_RANGE_WORLD:
    case REQ_RANGE_COUNT:
      /* Invalid range */
      return FALSE;
    }
  }

  if (req->source.kind == VUT_IMPROVEMENT) {
    /* Anyone that can see city internals (like the owner) */
    if (can_player_see_city_internals(pow_player, target_city)) {
      return TRUE;
    }

    /* Cities not owned by pow_player */
    switch (req->range) {
    case REQ_RANGE_WORLD:
    case REQ_RANGE_ALLIANCE:
    case REQ_RANGE_TEAM:
    case REQ_RANGE_PLAYER:
    case REQ_RANGE_CONTINENT:
      /* Only wonders (great or small) can be required in those ranges.
       * Wonders are always visible. */
      return TRUE;
    case REQ_RANGE_TRADEROUTE:
      /* Could be known for trade routes to cities owned by pow_player as
       * long as the requirement is present. Not present requirements would
       * require knowledge that no trade routes to another foreign city
       * exists (since all possible trade routes are to a city owned by
       * pow_player). Not worth the complexity, IMHO. */
      return FALSE;
    case REQ_RANGE_CITY:
    case REQ_RANGE_LOCAL:
      /* Can't see invisible improvements in foreign cities. */
      if (!is_improvement_visible(req->source.value.building)) {
        return FALSE;
      }

      /* Can see visible improvements in seen cities. */
      if (is_tile_seen(pow_player, city_tile(target_city))) {
        return TRUE;
      }

      /* Can see visible improvements in cities traded with. */
      trade_partners_iterate(target_city, trade_city) {
        if (city_owner(trade_city) == pow_player) {
          return TRUE;
        }
      } trade_partners_iterate_end;

      /* No way to know if a city has an improvement */
      return FALSE;
    case REQ_RANGE_CADJACENT:
    case REQ_RANGE_ADJACENT:
    case REQ_RANGE_COUNT:
      /* Not supported by the requirement type. */
      return FALSE;
    }
  }

  if (req->source.kind == VUT_NATION
      || req->source.kind == VUT_NATIONGROUP) {
    return TRUE;can_see_techs_of_target(pow_player, target_player)) {
      return TRUE;
    }
  }

  if (req->source.kind == VUT_GOVERNMENTcould_intel_with_player(pow_player, target_player))) {
      return TRUE;
    }
  }

  if (req->source.kind == VUT_MAXTILEUNITS) {
    switch (req->range) {
    case REQ_RANGE_LOCAL:
      return can_player_see_hypotetic_units_at(pow_player, target_tile);
    case REQ_RANGE_CADJACENT:
      if (!can_player_see_hypotetic_units_at(pow_player, target_tile)) {
        return FALSE;
      }
      cardinal_adjc_iterate(target_tile, adjc_tile) {
        if (!can_player_see_hypotetic_units_at(pow_player, adjc_tile)) {
          return FALSE;
        }
      } cardinal_adjc_iterate_end;

      return TRUE;
    case REQ_RANGE_ADJACENT:
      if (!can_player_see_hypotetic_units_at(pow_player, target_tile)) {
        return FALSE;
      }
      adjc_iterate(target_tile, adjc_tile) {
        if (!can_player_see_hypotetic_units_at(pow_player, adjc_tile)) {
          return FALSE;
        }
      } adjc_iterate_end;

      return TRUE;
    case REQ_RANGE_CONTINENT:
    case REQ_RANGE_CITY:
    case REQ_RANGE_TRADEROUTE:
    case REQ_RANGE_PLAYER:
    case REQ_RANGE_TEAM:
    case REQ_RANGE_ALLIANCE:
    case REQ_RANGE_WORLD:
    case REQ_RANGE_COUNT:
      /* Non existing. */
      return FALSE;
    }
  }

  if (req->source.kind == VUT_TERRAIN
      || req->source.kind == VUT_TERRFLAG
      || req->source.kind == VUT_TERRAINCLASS
      || req->source.kind == VUT_RESOURCE
      || req->source.kind == VUT_EXTRA
      || req->source.kind == VUT_BASEFLAG
      || req->source.kind == VUT_BASEFLAG) {
    switch (req->range) {
    case REQ_RANGE_LOCAL:
      return is_tile_seen(pow_player, target_tile);
    case REQ_RANGE_CADJACENT:
      /* TODO: The answer is known when the universal is located on a seen
       * tile. Is returning TRUE in those cases worth the added complexity
       * and the extra work for the computer? */
      return is_tile_seen_cadj(pow_player, target_tile);
    case REQ_RANGE_ADJACENT:
      /* TODO: The answer is known when the universal is located on a seen
       * tile. Is returning TRUE in those cases worth the added complexity
       * and the extra work for the computer? */
      return is_tile_seen_adj(pow_player, target_tile);
    case REQ_RANGE_CITY:
      /* TODO: The answer is known when the universal is located on a seen
       * tile. Is returning TRUE in those cases worth the added complexity
       * and the extra work for the computer? */
      return is_tile_seen_city(pow_player, target_city);
    case REQ_RANGE_TRADEROUTE:
      /* TODO: The answer is known when the universal is located on a seen
       * tile. Is returning TRUE in those cases worth the added complexity
       * and the extra work for the computer? */
      return is_tile_seen_traderoute(pow_player, target_city);
    case REQ_RANGE_CONTINENT:
    case REQ_RANGE_PLAYER:
    case REQ_RANGE_ALLIANCE:
    case REQ_RANGE_TEAM:
    case REQ_RANGE_WORLD:
    case REQ_RANGE_COUNT:
      /* Non existing range for requirement types. */
      return FALSE;
    }
  }

  if (req->source.kind == VUT_ACTION
      || req->source.kind == VUT_OTYPE) {
    /* This requirement type is intended to specify the situation. */
    return TRUE;fc_tristate *target_unitconst struct unit_type *target_unittype;
, target_output,
                       target_specialist, req)) {
    return TRI_MAYBE;
  }

  if (target_unit) {
    target_unittype = unit_type(target_unit);
  } else {
    target_unittype = NULL, target_unittype,
                    target_output, target_specialist, NULL, req, RPT_CERTAIN)) {
    return TRI_YES;
  } else {
    return TRI_NOfc_tristate *target_unit
{
  enum fc_tristate current;
  enum fc_tristate result;

  result = TRI_YES, target_output,
                           target_specialist, preq);
    if (current == TRI_NO) {
      return TRI_NO;
    } else if (current == TRI_MAYBE) {
      result = TRI_MAYBE;
    }
  } requirement_vector_iterate_end;

  return result;Can pow_player see the techs of target player?
*******/
bool can_see_techs_of_target(const struct player *pow_player,
                             const struct player *target_player)
{
  return pow_player == target_player
      || player_has_embassy(pow_player, target_player);
}
ENDREP
DELTA 28908 13840 216
SVN  †  †    †   †  „µ(„¸L ŒG ¡% ” Ž|¡# MÎ €‚R »C²#€‰T ƒ¿TõT  bool tasks_handledint partner =              "%s.traderoute%d", citystr, i);

    if (partner != 0) {
      struct trade_route *proute = fc_malloc(sizeof(struct trade_route));

      proute->partner = partner;
      proute->dir = RDIR_BIDIRECTIONAL;
      proute->goods = goods_by_number(0); /* First good */

      trade_route_list_append(pcity->routes, proute);
    }tasks_handled = FALSE;
  for (i = 0; !tasks_handled; i++) {
    nat_x = secfile_lookup_int_default(loading->file, -1, "%s.task%d.x", citystr, i);
    nat_y = secfile_lookup_int_default(loading->file, -1, "%s.task%d.y", citystr, i);

    if (nat_x >= 0 && nat_y >= 0) {
      const char *str;
      struct worker_task *ptask = fc_malloc(sizeof(struct worker_task));

      ptask->ptile = native_pos_to_tile(nat_x, nat_y);

      str = secfile_lookup_str(loading->file, "%s.task%d.activity", citystr, i);
      ptask->act = unit_activity_by_name(str, fc_strcasecmp);

      sg_failure_ret_val(unit_activity_is_valid(ptask->act), FALSE,
                         "Unknown workertask activity %s", str);

      str = secfile_lookup_str(loading->file, "%s.task%d.target", citystr, i);

      if (strcmp("-", str)) {
        ptask->tgt = extra_type_by_rule_name(str);

        sg_failure_ret_val(ptask->tgt != NULL, FALSE,
                           "Unknown workertask target %s", str);
      }

      ptask->want = secfile_lookup_int_default(loading->file, 1,
                                               "%s.task%d.want", citystr, i);

      worker_task_list_append(pcity->task_reqs, ptask);
    } else {
      tasks_handled = TRUE;
    }ENDREP
DELTA 28969 17756 2846
SVN  †  †  /8 …õ5  V…õ8€S ‹Q…÷@€O ‡†ƒR„ ‡X†Šf’ †Št ‹k†“itrade_route_list *routes_out_of_dest;
  struct trade_route_list *routes_out_of_homeroutes_out_of_home = trade_route_list_new();
  routes_out_of_dest = trade_routeroutroutes_out_of_dest†  ¥B©L2‹ a„ Šk5€s †g‹€O O’ €… F”{€ƒ Žš€U ƒ$¨€M ùB¬     struct trade_route *proute;
    struct city_list *cities_out_of_home;
    struct city_list *cities_out_of_dest;cities_out_of_home = city_list_new();
    cities_out_of_dest = city_list_new();trade_route_list_iterate(routes_out_of_home, premove) {
      struct trade_route *pback;

      city_list_append(cities_out_of_home, game_city_by_number(premove->partner));

      pback = remove_trade_route(pcity_homecity, premove, TRUE, FALSE);
      free(premove);
      free(pback);
    } trade_route_list_iterate_end;

    /* And the same for the dest city. */
    trade_route_list_iterate(routes_out_of_dest, premove) {
      struct trade_route *pback;

      city_list_append(cities_out_of_dest, game_city_by_number(premove->partner));

      pback = remove_trade_route(pcity_dest, premove, TRUE, FALSE);
      free(premove);
      free(pback);
    } trade_routeproute = fc_malloc(sizeof(struct trade_route));
    proute->partner = pcity_dest->id;
    proute->dir = RDIR_FROM;
    proute->goods = goods;
    trade_route_list_append(pcity_homecity->routes, proute);

    proute = fc_malloc(sizeof(struct trade_route));
    proute->partner = pcity_homecity->id;
    proute->dir = RDIR_TO;
    proute->goods = goods;
    trade_route_list_append(pcity_dest->routes, proute
    city_list_destroy(cities_out_of_home);
    city_list_destroy(cities_out_of_dest)trade_route_list_destroy(routes_out_of_home);
  trade_route_list_destroy(routENDREP
DELTA 28735 5147 2611
SVN  †  †  („* ƒõ € Bƒö@€ _ƒÿ&€T 	ƒýJ€ ‚¤ƒûhŸtrade_routes_iterate(pCity, proute) {
    step += proute->value;

    if ((pTradeCity = game_city_by_number(proute->partner))) {
                        proute->value);
    } else {
      fc_snprintf(cBuf, sizeof(cBuf), "%s: +%d", _("Unknown"),
                  proute->value);
    }alphablit(pSurf, NULL, pCityWindow->dst->surface, &dest);

    /* blit trade icon */    dest.x = pCityWindow->size.x + adj_size(10);
    dest.y -= adj_size(4);

    dest.y += pSurf->h;

    FREESURFACE(pSurf);
  } trade_routes_iterate_end;4);

    SDL_FillRectAlpha(pWin†  ¢Q¢2  ¢2ENDREP
DELTA 28928 0 7864
SVN  †  †    †   †  †  †  =‹ ‚â ‘ Ž[‚â¢ Mƒ“?€ƒ	 M‚òr€t ‚ ‚õO€P èc‚ø/€„s jƒäy€! ‚¶ƒç  int partner = 1partner != 0; i++) {
    partner =          "%s.traderoute%d", citystr, i);

    if (partner != 0) {
      struct trade_route *proute = fc_malloc(sizeof(struct trade_route));
      const char *dir;
      const char *good_str;

      /* Append to routes list immediately, so the pointer can be found for freeing
       * even if we abort */
      trade_route_list_append(pcity->routes, proute);

      proute->partner = partner;route->dir = route_direction_by_name(dir, fc_strcasecmp);
      sg_warn_ret_val(route_direction_is_valid(proute->dirroute->goods = goods_by_rule_name(good_str);
      sg_warn_ret_val(proute->goodsj = 0;
    trade_routes_iterate(pcity, proute) {
      secfile_insert_int(saving->file, proute->partner, "%s.traderoute%d",
                         buf, j);
      secfile_insert_str(saving->file, route_direction_name(proute->dir),
                         "%s.route_direction%d", buf, j);
      secfile_insert_str(saving->file, goods_rule_name(proute->goods),
                           "%s.route_good%d", buf, j);
      j++;
    } trade_routes_iterate_end;

    /* Save dummy values to keep tabular format happy */
    for (; j < MAX_TRADE_ROUTES; j++) {
      secfile_insert_int(saving->file, 0, "%s.traderoute%d", buf, j);
"%s.route_direction%d", buf, j);
      secfile_insert_str(saving->file, goods_rule_name(goods_by_number(0)),
                         "%s.route_good%d", buf, j);ŒÀ ‚¨c‚«;‚X€‚X ‚¨c =%d", parts, part_nr);
        break;
      }
      log_debug("attribute_v2_block_length_quoted=%lu have=%lu part=%lu",
                (unsigned long) quoted_length,
                (unsigned long) strlen(quoted),
                (unsigned long) strlen(current));
      fc_assert(strlen(quoted) + strlen(current) <= quoted_length);
      strcaENDREP
DELTA 17068 55 28398
SVN  ‚…M‚ª<‚x¾) …W ƒ ;…W” ‚g‡ž OÔ ‘ Œu© QÓ~ 1Œc‹ QÓ~ PŽl§ G:€k y‘r€d ‚_”9• ‚—)ƒ Ž$™Aº ƒ%¨€ m«\€ ­4€O %¯v‘ OÓ~ …k±u€k ¸2€r N°€‡	 QÓ~ ƒ¹?€G ƒ`½ƒ Àh€E ]Âh€…/ zÔ  …OÉ€c „-ÏDŠ „sÓx€C ƒÙ-€ƒ YÞ<‡ ‚|ß€L â[€l ‚7äA¿ ç)€P Iè|¥ XÓw­ N° †ë=€†D ‡9ø€‹q ‚s[€ƒ †m„Eˆ Š-‹<€G }„K† QÓ~ª N°€‚\ *Ž)› _'€x QÓ~ ˆP˜u” ¡P” Œv¢^– WÓx óU ÌD±V€ Fÿ?€d …M‚€ fc_/* client/include */map_width, citydlg_map_height; Return the widthwidth(void)
{
  return citydlg_map_width;map_height;  int max_rad = rs_max_city_radius_sq()_without_index(max_rad, city_x, city_y) {
    float canvas_x, canvas_y;

    map_to_gui_vector(tileset, 1.0without_index_end;

  citydlg_map_width = max_x - min_x + tileset_tile_width(tileset);
  citydlg_mapfloat *canvas_x, floa1.0= CITY_REL2ABS(*city_x);
  *city_y = CITY_REL2ABS(*city_y)float _x##_0, _y##_0;                                                 \
  int _tile_x, _tile_y;                                                   index_to_map_pos(&_tile_x, &_tile_y, tile_index((pcity)->tile));      \
									\
  map_to_gui_vector(tileset, 1.0, &_x##_0, &_y##_0, _tile_x, _tile_y);  f,%f + %dx%d",					\
	    _x##_0, _y##_0, _x##_w, _y##_h);				\
									\
  gui_rect_iterate_coord(_x##_0, _y##_0, _x##_w, _y##_h,		\
                         ptile, pedge, pcorner, _x##_g, _y##_g, 1.0) {  coord_end;						\1.0, layer, ptile, pedge, pcorner,
                      punit, pcity_draw, canvas_x, canvas_y, pcity, NULLReturn a string describing the the cost for the production of the city
  considerung several build slots for unitschar *city_production_cost_str(const struct city *pcity)
{
  static char cost_str[50];
  int cost = city_production_build_shield_cost(pcity);
  int build_slots = city_build_slots(pcity);
  int num_units;

  if (build_slots > 1
      && city_production_build_units(pcity, TRUE, &num_units)) {
    /* the city could build more than one unit of the selected type */
    if (num_units == 0) {
      /* no unit will be finished this turn but one is build */
      num_units++;
    }

    if (build_slots > num_units) {
      /* some build slots for units will be unused */
      fc_snprintf(cost_str, sizeof(cost_str), "{%d*%d}", num_units, cost);
    } else {
      /* maximal number of units will be build */
      fc_snprintf(cost_str, sizeof(cost_str), "[%d*%d]", num_units, cost);
    }
  } else {
    /* nothing special */
    fc_snprintf(cost_str, sizeof(cost_str), "%3d", cost);
  }

  return cost_str;_str[50], *cost_str;
  int turns, stock;

  if (pcity == NULL) {
    /*fc_int gold = MAX(0, pcity->surplus[O_SHIELD]);
    fc_snprintf(buffer, buffer_len, PL_("%3d gold per turn",
                                        "%3d gold per turn", gold), gold);
    return;
  }
_str = city_production_cost_str(pcity);

  if (turns < FC_INFINITY) {
    if (options.concise_city_production) {
      fc_snprintf(time_str, sizeof(time_str), "%3d", turns);
    } else {
      fc_snprintf(time_str, sizeof(time_str),
                  PL_("%3d turn", "%3d turns", turns), turns);
    }
  } else {
    fc_snprintf(time_str, sizeof(time_str), "%s",
                options.concise_city_production ? "-" : _("never"));
  }

  if (options.concise_city_production) {
    fc_snprintf(buffer, buffer_len, _("%3d/%s:%s"), stock, cost_str,
                time_str);
  } else {
    fc_snprintf(buffer, buffer_len, _("%3d/%s %s"), stock, cost_str,
                time_str);
  }
}
fc_strlcpy(buffer, city_improvement_name_translation
               (pcity, target.value.building),_("never")fc_strlcpy(buf[1], utype_values_string(ptype), column_size);
    fcfc_snprintf(buf[2], column_size, "---");
    } else {
      int upkeep = pcity ? city_improvement_upkeep(pcity, pimprove)
                         : pimprove->upkeep;
      /* from city.c city_improvement_name_translation() */
      if (pcity && is_improvement_redundant(pcity, pimprove)) {
        fc_snprintf(buf[1], column_size, "%d*", upkeep);
      } else {
	const char *state = NULL, pcity, pcity)) {
	    state = _("Obsolete");
          } else if (wonder_is_built        }
        if (state) {
          fc_strlcpy(buf[1], state, column_size);
        } else {
          fc_snprintf(buf[1], column_size, "%d", upkeep);
        }
      }

      fc_snprintf(buf[2], column_size, "%d",
                fc_snprintf(buf[3], column_size, _("%d/turn"),
                        fc_snprintf(buf[3], column_size, "%d", turns);
      } else {
        fcfc_snprintf(buf[3], column_size, "--- Return text describing the production outputtrade_routes_iterate(pcity, proute) {
      /* There have been bugs causing the trade city to not be sent
       * properly to the client.  If this happens we trust the
       * trade_value[] array and simply don't give the name of the
       * city.
       *
       * NB: (proute->value == 0) is valid case.  The trade route
       * is established but doesn't give trade surplus. */
      struct city *trade_city = game_city_by_number(proute->partner);
      /* TRANS: "unknown" location */
      const char *name = trade_city ? city_name(trade_city) : _("(unknown)");

      cat_snprintf(buf, bufsz, _("%+4d : Trade route with %s\n"),
                   proute->value
                   * (100 + get_city_bonus(pcity, EFT_TRADEROUTE_PCT)) / 100,
                   name);
      total += proute->value;
    } trade_routes_iterate_end;int wastetypes[OLOSS_LAST];
    bool breakdown_ok;
    int regular_waste;
    /* FIXME: this will give the wrong answer in rulesets with waste on
     * taxed outputs, such as 'science waste', as total includes tax whereas
     * the equivalent bit in set_city_production() does not */
    if (city_waste(pcity, otype, total, wastetypes) == pcity->waste[otype]) {
      /* Our calculation matches the server's, so we trust our breakdown. */
      if (wastetypes[OLOSS_SIZE] > 0) {
        cat_snprintf(buf, bufsz,
                     _("%+4d : Size penalty\n"), -wastetypes[OLOSS_SIZE]);
      }
      regular_waste = wastetypes[OLOSS_WASTE];
      breakdown_ok = TRUE;
    } else {
      /* Our calculation doesn't match what the server sent. Account it all
       * to corruption/waste. */
      regular_waste = pcity->waste[otype];
      breakdown_ok = FALSE;
    }
    if (regular_waste > 0) {
      char *fmt;
      switch (otype) {
        case O_SHIELD:
        default: /* FIXME other output types? */
          /* TRANS: %s is normally empty, but becomes '?' if client is
           * uncertain about its accounting (should never happen) */
          fmt = _("%+4d : Waste%s\n");
          break;
        case O_TRADE:
          /* TRANS: %s is normally empty, but becomes '?' if client is
           * uncertain about its accounting (should never happen) */
          fmt = _("%+4d : Corruption%s\n");
          break;
      }
      cat_snprintf(buf, bufsz, fmt, -regular_waste, breakdown_ok ? "" : "?");
    }/* This should never happen, but if it does, at least acknowledge to
   * the user that we are confused, rather than displaying an incorrect
   * sum. */
  if (total != pcity->surplus[otype]) {
    cat_snprintf(buf, bufsz,
                 /* TRANS: City output that we cannot explain.
                  * Should never happen. */
                 _("%+4d : (unknown)\n"), pcity->surplus[otype] - total)crowding_("%+4d : Pollution from shields\n"), prod);
  cat_snprintf(buf, bufsz,
	       _("%+4d : Pollution from citizens\n"), pop);
  cat_snprintf(buf, bufsz,
	       _("%+4d : Pollution modifier\n"), mod);ollu); Return text describing the culture outputvoid get_city_dialog_culture_text(const struct city *pcity,
                                  char *buf, size_t bufsz)
{
  struct effect_list *plist;

  buf[0] = '\0';

  cat_snprintf(buf, bufsz,
               _("%4d : History\n"), pcity->history);

  plist = effect_list_new();

  (void) get_city_bonus_effects(plist, pcity, NULL, EFT_PERFORMANCE4d : %s\n"), peffect->value
	       _("==== : Adds up to\n"));
  cat_snprintf(buf, bufsz,
	       _("%4d : Total culture"), pcity->client.culture);city_size_get(pcity)city_size_get(pcity)unit_focus_set(pmyunit;
  struct tile *ptile;

  if (city_owner(pcity) != client_player()) {
    return 0;
  }

  city_radius_sq = city_map_radius_sq_get(pcity);ptile = city_map_to_tile(city_tile(pcity), city_radius_sq,
                           city_x, city_yENDREP
DELTA 27324 318 139473
SVN  †  †  U— Ê8   Ô'ÊY€‡7 ‘<¡*€„ ñ³j› |‚¤{€„h ˆ ‚©)§ Šƒ±€b †:ƒ»4€d «BƒÃ€ƒW ùaƒîD€l ¨Q…è#conn_set_capability(&client.connif (options.draw_city_trade_routes) {
      bool old_still_present[MAX_TRADE_ROUTES];

      for (i = 0; i < MAX_TRADE_ROUTES; i++) {
        if (packet->trade[i] == 0) {
          old_still_present[i] = TRUE; /* Not present, but not 'old' either */
        } else {
          old_still_present[i] = FALSE;
        }
      }

      trade_routes_iterate(pcity, proute) {
        bool found = FALSE;

        for (i = 0; i < MAX_TRADE_ROUTES; i++) {
          if (packet->trade[i] == proute->partner) {
            old_still_present[i] = TRUE;
            found = TRUE;
            break;
          }
        }

        if (!found) {
          trade_routes_changed = TRUE;
          break;
        }
      } trade_routes_iterate_end;

      if (!trade_routes_changed) {
        for (i = 0; i < MAX_TRADE_ROUTES; i++) {
          if (!old_still_present[i]) {
            trade_routes_changed = TRUE;
            break;
          }
        }
      }
    }/* Rebuild trade routes */
  trade_routes_iterate_safe(pcity, pold) {
    trade_route_list_remove(pcity->routes, pold);
    free(pold);
  } trade_routes_iterate_safe_end;

  for (i = 0; i < MAX_TRADE_ROUTES; i++) {
    if (packet->trade[i] != 0) {
      struct trade_route *proute = fc_malloc(sizeof(struct trade_route));

      proute->partner = packet->trade[i];
      proute->value = packet->trade_value[i];
      proute->dir = packet->trade_direction[i];

      trade_route_list_append(pcity->routes, proute);
    }  struct worker_task *ptaskptask = worker_task_list_get(pcity->task_reqs, 0);

  if (ptask == NULL && packet->tile_id >= 0) {
    ptask = fc_malloc(sizeof(struct worker_task));
    worker_task_list_append(pcity->task_reqs, ptask);
  } else if (ptask != NULL && packet->tile_id < 0) {
    worker_task_list_remove(pcity->task_reqs, ptask);
    free(ptask);
    ptask = NULL;
  }

  if (ptask != NULL) {
    ptask->ptile = index_to_tile(packet->tile_id);
    ptask->act = packet->activity;
    if (packet->tgt >= 0) {
      ptask->tgt = extra_by_number(packet->tgt);
    } else {
      ptask->tgt = NULL;
    }
    ptask->want = packet->want;
  }nationality = packet_unit->nationality;
     * (This might be necessary if the cargo info was sent to us before
     * this transporter.)
     * (If not, cargo will be loaded later when the transporter info is
     * sent to the client.)
    if (pinfo->is_edit_mode && game.scenario.handmade) {
      if (!handmade_scenario_warning()) {
        /* Gui didn't handle this */
        output_window_append(ftc_client,
                             _("This scenario may have manually set properties the editor "
                               "cannot handle."));
        output_window_append(ftc_client,
                             _("They won't be saved when scenario is saved from the editor."));
      }
    }  game.scenario.prevent_new_cities = packet->prevent_new_cities;
  game.scenario.handmade = packet->handmade†  ‚×‚ñp•]‹ h… ˆ L‚Ñ€E ^ † }[ /’W€9 Ô@”€D ‚è3€X ŽGêL… i„|€3 ~·$¢ Z‚Ñ€ R‚¡? â;øk€ S™= —eÜ9 uô.  áYõ- = p->flags handler**/
void handle_ruleset_unit(const struct packet_ruleset_unit *p)
{
  int i;
  struct unit_type *u = utype_by_number(p->id);

  fc_assert_ret_msg(NULL != u, "Bad unit_type %d.", p->id);

  names_set(&u->name, NULL, p->name, p->rule_name);
  sz_strlcpy(u->graphic_str, p->graphic_str);
  sz_strlcpy(u->graphic_alt, p->graphic_alt);
  sz_strlcpy(u->sound_move, p->sound_move);
  sz_strlcpy(u->sound_move_alt, p->sound_move_alt);
  sz_strlcpy(u->sound_fight, p->sound_fight);
  sz_strlcpy(u->sound_fight_alt, p->sound_fight_alt);

  u->uclass             = uclass_by_number(p->unit_class_id);
  u->build_cost         = p->build_cost;
  u->pop_cost           = p->pop_cost;
  u->attack_strength    = p->attack_strength;
  u->defense_strength   = p->defense_strength;
  u->move_rate          = p->move_rate;
  u->require_advance    = advance_by_number(p->tech_requirement);
  u->need_improvement   = improvement_by_number(p->impr_requirement);
  u->need_government    = government_by_number(p->gov_requirement);
  u->vision_radius_sq = p->vision_radius_sq;
  u->transport_capacity = p->transport_capacity;
  u->hp                 = p->hp;
  u->firepower          = p->firepower;
  u->obsoleted_by       = utype_by_number(p->obsoleted_by);
  u->converted_to       = utype_by_number(p->converted_to);
  u->convert_time       = p->convert_time;
  u->fuel               = p->fuel;
  u->flags              = p->flags;
  u->roles              = p->roles;
  u->happy_cost         = p->happy_cost;
  output_type_iterate(o) {
    u->upkeep[o] = p->upkeep[o];
  } output_type_iterate_end;
  u->paratroopers_range = p->paratroopers_range;
  u->paratroopers_mr_req = p->paratroopers_mr_req;
  u->paratroopers_mr_sub = p->paratroopers_mr_sub;
  u->bomint i;for (i = 0; i < p->research_reqs_count; i++) {
    requirement_vector_append(&a->research_reqs, p->research_reqs[i]);
  }

  fc_assert(a->research_reqs.size == p->research_reqs_count);
for (i = 0; i < p->spontaneous_reqs_count; i++) {
    requirement_vector_append(&pextra->spontaneous_reqs, p->spontaneous_reqs[i]);
  }
  fc_assert(pextra->spontaneous_reqs.size == p->spontaneous_if (pextra->defense_bonus != 0) {
    extra_to_caused_by_list(pextra, EC_DEFENSIVE);
  }goodsgoods(const struct packet_ruleset_goods *p)
{
  struct goods_type *pgood = goods_by_number(p->id);

  fc_assert_ret_msg(NULL != pgood, "Bad goods %d.", p->id);

  names_set(&pgooda packet about a particular actionruleset_action(const struct packet_ruleset_action *p)
{
  struct action *act;

  act = action_by_number(p->id);

  sz_strlcpy(act->ui_name, p->ui_namrequest_do_action(ACTION_FOUND_CITY,
                        unit_id, tile_index(unit_tile(punit)),
                        0, name);
    }(target_tile || ion_prob_possible(act_prob[act])ENDREP
DELTA 22182 0 7724
SVN  ‚–o‚–z/i …w ˆ ƒ…l€o ‰Š
ˆ ¸A“§ ½Ë~€C „.‚‰( ‰‚aerrno.h>;

  trade_routes_iterate(pcity, proute) {
    num++;
    value += proute->value;
  } trade_routes_iterate_end;options.N_("Number (and total value) of trade rerrno = 0;
    value = strtof(str, &endptr);
    if (errno != 0 || ENDREP
DELTA 28661 106349 6430
SVN  †  †  @‚n ’m  a’{€k ‚)”I€L ©/—>‡ bÀr‡ ¨2ÂY‡ bÀr‡ ‚ÑGìw› à/„¾<trade_routes_iterate_safe(pcity, proute) {
        struct city *tcity = game_city_by_number(proute->partnerstruct trade_route *back;

            back = remove_trade_route(pcity, proute, TRUE, FALSE);
            free(proute);
            free(back);
          }
        }
      } trade_routes_iterate_safe_end;partnerpartnerpartnerpartner            case VUT_ACTION†  ‚Ý‚Þ$€ ‚Ý it_list_new();

  city_list_iterate(pplayer->cities, pcity) {
    city_built_iterate(pcity, pimprove) {
      if (can_city_sell_building(pcity, pimprENDREP
DELTA 28964 1170 997
SVN  ÿgûl0„U ·N – K·x€‚j ‚¾Y€t ‘XÂ?° K  wÕc‡ aæ_ª O  —0è7routes to be removed
 trade_route_list *would_remove)
{
  struct trade_route *sorted[MAX_TRADE_ROUTES];
  int num, i, j;

  /* Sort trade route values. */
  num = 0;
  trade_routes_iterate(pcity, proute) {
    for (j = num; j > 0 && (proute->value < sorted[j - 1]->value) ; j--) {
      sorted[j] = sorted[j - 1];
    }
    sorted[j] = proute;
    num++;
  } trade_routes_iterate_end;sorted[i]->value;
    if (NULL != would_remove) {
      trade_route_list_append(would_remove, sorted[i]);
    }
  }
return trade_route_list_size(pcity->routes);
}

partnerpartners_iterate_end;

  return FALSE;
}

ENDREP
DELTA 28831 740 1372
SVN  «¸D"< ”k €ƒR Š)”i€‰. ¢€ƒ ƒ£A¶ „E¦Wstruct goods_type;

struct trade_route {
  int partner;
  int value;
  enum route_direction dir;
  struct goods_type *goods;
};

/* get 'struct trade_route_list' and related functions: */
#define SPECLIST_TAG trade_route
#define SPECLIST_TYPE struct trade_route
#include "speclist.h"

#define trade_route_list_iterate(trade_route_list, proute) \
  TYPED_LIST_ITERATE(struct trade_route, trade_route_list, proute)
#define trade_route_list_iterate_end LIST_ITERATE_ENDtrade_route_list *would_remove);

#define trade_routes_iterate(c, proute)                     \
do {                                                        \
  trade_route_list_iterate(c->routes, proute) {

#define trade_routes_iterate_end                            \
  } trade_route_list_iterate_end;                           \
} while(FALSE)

#define trade_routes_iterate_safe(c, proute)                \
{                                                           \
  int _routes##_size = trade_route_list_size(c->routes);    \
  if (_routes##_size > 0) {                                 \
    struct trade_route *_routes##_saved[_routes##_size];    \
    int _routes##_index = 0;                                \
    trade_routes_iterate(c, _proute) {                      \
      _routes##_saved[_routes##_index++] = _proute;         \
    } trade_routes_iterate_end;                             \
    for (_routes##_index = 0;                               \
         _routes##_index < _routes##_size;                  \
         _routes##_index++) {                               \
      struct trade_route *proute = _routes##_saved[_routes##_index];

#define trade_routes_iterate_safe_end

#define trade_partners_iterate(c, p)                        \
do {                                                        \
  trade_routes_iterate(c, _proute_) {                       \
    struct city *p = game_city_by_number(_proute_->partner);

#define trade_partners_iterate_end                          \
  } trade_routes_iterate_end;                               \
} while (FALSE);struct goods_type *goods_by_rule_name(const char *nameENDREP
DELTA 27432 0 6435
SVN  †  †  I‹* ‚õ& ‡ /‚õ+ˆ e‚²@¯ Y„È} ‚¶U‚øM€†y P±@° N‚® ‘E…· j…ÈR¸ ¤Z…Ës€ƒ ¬G…ó4partnerpartnersrade routes between cities as lines on the mainif (!game.scenario.prevent_new_cities) {
    /* check within maximum (squared) city radius */
    city_tile_iterate(max_rad, ptile, tile1) {
      unit_list_iterate(tile1->units, psettler) {
        if ((NULL == client.conn.playing
             || unit_owner(psettler) == client.conn.playing)
            && unit_can_do_action(psettler, ACTION_FOUND_CITY)
            && city_can_be_built_here(unit_tile(psettler), psettler)) {
          if (!closest_settler) {
            closest_settler = psettler;
          }
          if (!best_settler && psettler->client.colored) {
            best_settler = psettler;
          }
        }
      } unit_list_iterate_end;
    } city_tile_iterate_end;

    if (best_settler) {
      /* Rule e */
      *punit = best_settler;
    } else if (closest_settler) {
      /* Rule f */
      *punit = closest_settler;
    }
  }

  /* rule g */
  return NULL
  Find the nearest/best city that owns the tilenum_trade_routes = trade_route_list_size(pcity->routes);float W = tileset_tile_width(tileset) * map_zoom;
  const float H = tileset_tile_height(tileset) * map_zoom;
  const float UW = tileset_unit_width(tileset) * map_zoom;
  const float UH = tileset_unit_height(tileset) * map_zoom;
  const float city_width = get_citydlg_canvas_width() * map_zoom + W;
  const float city_height = get_citydlg_canvas_height() * map_zoom + H;
  const struct {
    floa†  È8È=… È8 om geENDREP
DELTA 24790 274065 99
SVN  „ñ{„ñv/„\ ‚Õ# ˆ ‚0‚Õ6€„7 ‚Ü ‚Ý. A  H´@ I‚ì  ‚‘G‚à4total = 
  trade_routes_iterate(pdialog->pcity, proute) {
    struct city *pcity;

    total += proute->value;
    if ((pcity = game_city_by_number(proute->partner))) {
      fc_snprintf(bptr, nleft, _("%32s: %2d Trade/Year\n"),
                  city_name(pcity), proute->value);
      bptr = end_of_strn(bptr, &nleft);
    } else {
      fc_snprintf(bptr, nleft, _("%32s: %2d Trade/Year\n"), _("Unknown"),
                  proute->value);
      bptr = end_of_strn(bptr, &nleft);
    }
  } trade_routes_iterate_end;

  if (trade_route_list_size(pdialog->pcity->routes) == 0void city_dialog_update_polluENDREP
DELTA 28782 0 4617
SVN  †  †  ‚q …‘ ² {…‘T€‚? Šz…’`int partner = secfile_lookup_int_default(file, 0,
plrno, i, j);
      if (partner != 0) {
        struct trade_route *proute = fc_malloc(sizeof(struct trade_route));

        proute->partner = partner;
        proute->dir = RDIR_BIDIRECTIONAL;
        proute->goods = goods_by_number(0); /* First good */

        trade_route_list_append(pcity->routes, proute);
      }†  ƒº>ƒ¼k‚,€‚& ‚ † ‚¸=‚een added to ruleset, and
       * thus game.control.num_base_types is greater than, when game was saved. */
      for(i = 0; i < map.xsize; i++) {
        zeroline[i] = '0';
      }
      zeroline[i]= '\0';

      bases_halfbyte_iterate(j, num_base_types) {
        char buf[32]; /* should be (void)ENDREP
DELTA 28661 52 2209
SVN  „¢„¢g ‚à!  †l‚à$€g º‚çhtrade_routes_iterate(acity, proute) {
    prod[O_TRADE] += proute->value;
  } trade_routes_iterate_end;ENDREP
DELTA 28168 0 9373
SVN  †  †  ” ø €	 ø5€ ^úc† ûK€{ 	þg¸ ‚€4€ PŸ  ‚‡c‚ƒ8‡ e„‹ – _Ñ9 ß„Œx€‚ Â2„í€I U†‡~€…L UŸ  L…´€‚:  …·4 D¤ €e W…º.€‚. Ü…¾D_safe(pcity, proute) {
    bool keep_route;
    struct trade_route *back;
    struct city *partner = game_city_by_number(proute->partner)back = remove_trade_route(pcity, proute, FALSE, FALSE);

    keep_route = can_cities_trade(pcity, partner)
      && can_establish_trade_route(pcity, partnerartnertrade_route_list_append(pcity->routes, proute);
      trade_route_list_append(partner->routes, back);
    } else {
      free(proute);
      free(back);

      /* Now announce the traderoute removal */
      announce_trade_route_removal(pcity, partnerartner);
    send_city_info(city_owner(partner), partnerartner->tile);
    update_dumb_city(city_owner(pcity), partner);
    send_city_info(city_owner(pcity), partner);
  } trade_routes_iterate_safe_endpartnerpartners_iterate_end;
i = 0;
  trade_routes_iterate(pcity, proute) {
    packet->trade[i] = proute->partner;
    packet->trade_value[i] = proute->value;
    packet->trade_direction[i] = proute->dir;

    i++;
  } trade_routes_iterate_end;

  for (; i < MAX_TRADE_ROUTES; i++) {
    packet->trade[i] = 0
  Does not free the trade route structures, only removes them from the
 struct trade_route *remove_trade_route(struct city *pc1, struct trade_route *proute,
                                       bool announce, bool source_gone)
{
  struct city *pc2 = game_city_by_number(proute->partner);
  struct trade_route *back_route = NULL;

  fc_assert_ret_val(pc1 && proute, NULL);

  trade_route_list_remove(pc1->routes, proute);

  if (pc2 != NULL) {
    trade_routes_iterate(pc2, pback) {
      if (pc1->id == pback->partner) {
        back_route = pback;
      }
    } trade_routes_iterate_end;

    if (back_route != NULL) {
      trade_route_list_remove(pc2->routes, back_route);
    }
  }

  if (announce) {
    announce_trade_route_removal(pc1, pc2, source_gone);
  }

  return back_routetrade_route_list *remove = trade_route_list_new();

  (void) city_trade_removable(pcity, remove);
  trade_route_list_iterate(remove, proute) {
    struct trade_route *back;

    back = remove_trade_route(pcity, proute, TRUE, FALSE);
    free(proute);
    free(back);
  } trade_route_list_iterate_end;
  trade_route
******/
void establish_trade_route(struct city *pc1, struct city *pc2)
{
  struct trade_route *prouteproute = fc_malloc(sizeof(struct trade_route));
  proute->partner = pc2->id;
  proute->dir = RDIR_FROM;
  trade_route_list_append(pc1->routes, proute);

  proute = fc_malloc(sizeof(struct trade_route));
  proute->partner = pc1->id;
  proute->dir = RDIR_TO;
  trade_route_list_append(pc2->routes, proute†  ²\ºŠ?€…; ª+ €+ „ªQ€ƒY ±Yxt to the ocean */
      city_built_iterate(pcity, pimprove) {
        if (!can_city_sell_building(pcity, pimprove)) {
          continue;
        }

	requirement_vector_iterate(&pimprove->reqs, preq) {
	  if ((VUT_TERRAIN == preq->source.kind
               || VUT_TERRAINCLASS == preq->source.kind)
              && !is_req_active(city_owner(pcity), NULL, pcity, NULL,
                                NULL, NULL, NULL, NULL, NULL, NULL,
				preq, TRUE)) {
            int price = impr_sell_gold(pimprove);

            do_sell_building(pplayer, pcity, pimprove);
            notify_player(pplayer, tile1, E_IMP_SOLD, ftc_server,
                          PL_("You sell %s in %s (now landlocked)"
   struct worker_task *ptask = worker_task_list_get(pcity->task_reqs, 0);

  if (ptask != NULL) {
    worker_task_list_remove(pcity->task_reqs, ptask);
    free(ptask);
  }  struct worker_task *ptask = worker_task_list_get(pcity->task_reqs, 0);

  packet.city_id = pcity->id;
  if (ptask != NULL) {
    packet.tile_id = tile_index(ptask->ptile);
    packet.activity = ptask->act;
    if (ptask->tgt == NULL) {
      packet.tgt = -1;
    } else {
      packet.tgt = extra_number(ptask->tgt);
    }
    packet.want = ptask->want;
  } else {
    packet.tile_id = -1;
    packet.activity = ACTIVITY_IDLE;
    packet.tgt = 0;
    packet.want = 0;
  }ENDREP
DELTA 25382 74255 8192
SVN  †  †  .’I ­) † ½ ­) ‹2ê# ¤"õO ¾I‚™k ‚K‚Ø. Šm‚Ús ‘t‚åZ€_ jžz v‚ì Œ ‚ú	€ƒ( ‘Bƒ†Z± ºw„˜I Ì.„Ø. K…¥
€p Š
…¨J‡ ‚M…²Y‡ ”N…µ+´ L ?€+ Q†Ž? ‡|…Ét †(…Ñz€1 P…Ùv€ƒU ”R…Þ<€„1 \…õ-€w ¦O…ö_, NULLget_city_tile_output_bonus(pcity, ptile, NULL, EFT_TILE_WORKABLE) <= 0) {
    return FALSE;
  }
      /* TODO: remove CB_BAD_UNIT_TERRAIN and CB_BAD_UNIT_TERRAIN when it
       * can be done without regressions. */
      /* The ruleset may allow founding cities on non native terrain. */
      && !utype_can_do_act_when_ustate(unit_type(punit), ACTION_FOUND_CITY,
                                       USP_LIVABLE_TILE, FALSE)) {
    /* Many rulesets allow land units to build land cities and sea units to
     * buildget_city_bonus(pcity, EFT_HAPPINESS_TO_GOLD) <= 0pollution per citizen for baseline combined bonus (100%). */
  pop = (100 + get_city_bonus(pcity, EFT_POLLU_POP_PCT))
      * (100 + get_city_bonus(pcity, EFT_POLLU_POP_PCT_2))
      / 100;
  pop = (city_size_get(pcity) * MAX(pop, 0)) / 100partnerpartnerReturns whether city had a plague outbreak this turn**/
bool city_had_recent_plague(const struct city *pcity)
{
  /* Correctly handles special case turn_plague == -1 (never) */
  return (pcity->turn_plague == game.info.turntrade_routes_iterate(pcity, proute) {
    struct city *tcity = game_city_by_number(proute->partner);
    bool can_trade = can_cities_trade(pcity, tcity);

    if (!can_trade) {
struct trade_route_settings *settings = trade_route_settings_by_type(type);

      if (settings->cancelling == TRI_ACTIVE) {
        can_trade = TRUE;
      }
    } 

    if (can_trade) {
      proute->value =
        trade_between_cities(pcity, game_city_by_number(proute->partner));
      pcity->prod[O_TRADE] += proute->value
        * (100 + get_city_bonus(pcity, EFT_TRADEROUTE_PCT)) / 100;
    } else {
      proute->value = 0;
    }
  } trade_routes_iterate_end;GOLD_UPKEEP_CITY: The upkeep for buildings and units is paid by the
   *                   city.
   * GOLD_UPKEEP_MIXED: The upkeep for buildings is paid by the city.
   *                    The upkeep for units is paid by the nation.
   * GOLD_UPKEEP_NATION: The upkeep for buildings and units is paid by the
   *                     nation. */
  fc_assert_msg(gold_upkeep_style_is_valid(game.info.gold_upkeep_style),
                "Invalid gold_upkeep_style %d", game.info.gold_upkeep_style);
  switch (game.info.gold_upkeep_style) {
  case GOLD_UPKEEP_CITYGOLD_UPKEEP_MIXED:
    pcity->usage[O_GOLD] += city_total_impr_gold_upkeep(pcity);
    break;
  case GOLD_UPKEEP_NATION†  Ø-Ü./ˆ^€‚R ¶ €T ¶4 ?·p€t ‚t¹,€> T½F€ƒ ‘u¿ „AÓl total_eft * (fulltradesize - city_size_get(pcity))
                     / (fulltradesize - notradesize);
    }
  }

  /* Apply corruption only to anything left after tradesize */
  total_eft -= penalty_size;

  /* Distance-based waste.
   * Don't bother calculating if there's nothing left to lose. */
  if (waste_by_dist > 0 && total_ef  pcity->routes = trade_route_list_new();
  pcity->task_reqs = worker_task_list_new(  /* collecting_info_units_supported set by fc_calloc().
     * collecting_info_units_present set by fc_calloc(). */FUNC_EACH_AI(city_free, pcity);

  citizens_free(pcity);

  worker_task_list_destroy(pcity->task_reqs);

  unit_list_destroy(pcity->units_supported);
  trade_route_list_destroy(pcity->routes  /* Handle a rare case where the game is freed in the middle of a
     * spy/diplomat investigate cycle. */
    if (pcity->client.collecting_info_units_supported != NULL) {
      unit_list_destroy(pcity->client.collecting_info_units_supported);
    }
    if (pcity->client.collecting_info_units_present != NULL) {
      unit_list_destroy(pcity->client.collecting_info_units_present);
    }ENDREP
id: 9w.5ck.r29010/53838
type: file
pred: 9w.5ck.r24790/307710
count: 191
text: 29010 44331 665 80118 55865f7a37da69a91d741af780b35a38
props: 10820 1319 112 0 e0e21d00fa120c81b59fd1c92d742949
cpath: /trunk/client/gui-xaw/citydlg.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file bq.5ck.r27705/95638
K 15
action_dialog.c
V 22
file 37p.5p2.r28901/55
K 4
ad2c
V 22
file 9q.0.r1186/243967
K 8
canvas.c
V 25
file 9r.5ck.r19259/439408
K 8
canvas.h
V 20
file 9s.0.r4034/9073
K 9
canvasp.h
V 20
file 9t.0.r4034/8365
K 10
chatline.c
V 24
file 9u.5ck.r24999/26869
K 10
chatline.h
V 21
file 9v.0.r2187/10435
K 9
citydlg.c
V 24
file 9w.5ck.r29010/53838
K 9
citydlg.h
V 20
file 9x.0.r2187/8309
K 9
cityrep.c
V 25
file 9y.5ck.r24790/306958
K 9
cityrep.h
V 24
file g1.5ck.r18101/97080
K 8
cma_fe.c
V 26
file 2ei.5ck.r19259/441430
K 8
cma_fe.h
V 21
file 2ej.0.r6908/4433
K 8
colors.c
V 25
file a2.5ck.r19259/443412
K 8
colors.h
V 21
file a3.0.r10532/9312
K 12
connectdlg.c
V 24
file a4.5ck.r27275/24992
K 12
connectdlg.h
V 21
file a5.0.r2187/12228
K 9
dialogs.c
V 25
file a6.5ck.r27417/182044
K 9
dialogs.h
V 24
file a7.5ck.r20375/28717
K 10
diplodlg.c
V 25
file a8.5ck.r25334/120790
K 10
diplodlg.h
V 20
file a9.0.r2187/7955
K 9
finddlg.c
V 25
file aa.5ck.r19259/444677
K 9
finddlg.h
V 22
file 2dk.0.r5989/31562
K 9
gotodlg.c
V 25
file ab.5ck.r19259/437889
K 9
gotodlg.h
V 21
file ac.0.r1888/21069
K 10
graphics.c
V 23
file ad.5ck.r27870/9702
K 10
graphics.h
V 21
file ae.0.r10789/6338
K 10
gui_main.c
V 23
file bm.5ck.r27286/6689
K 10
gui_main.h
V 22
file bn.0.r11408/10219
K 11
gui_stuff.c
V 25
file bo.5ck.r19259/440420
K 11
gui_stuff.h
V 21
file bp.0.r4964/56392
K 9
helpdlg.c
V 24
file af.5ck.r28818/29252
K 9
helpdlg.h
V 21
file g2.0.r1888/23188
K 10
inputdlg.c
V 25
file ag.5ck.r19259/445437
K 10
inputdlg.h
V 20
file ah.0.r7586/2315
K 10
inteldlg.c
V 24
file ai.5ck.r26176/32570
K 10
inteldlg.h
V 23
file 2dl.0.r10108/22972
K 12
luaconsole.c
V 26
file 76a.5ck.r26905/118154
K 12
luaconsole.h
V 26
file 76b.5ck.r26905/118454
K 9
mapctrl.c
V 25
file aj.5ck.r19291/223377
K 9
mapctrl.h
V 21
file ak.0.r10532/9667
K 9
mapview.c
V 24
file al.5ck.r27397/20396
K 9
mapview.h
V 24
file am.5bk.r13912/46304
K 6
menu.c
V 24
file an.5ck.r27611/94168
K 6
menu.h
V 24
file ao.5ck.r24891/32944
K 12
messagedlg.c
V 25
file ap.5ck.r19259/446444
K 12
messagedlg.h
V 22
file 2dm.0.r5989/31896
K 12
messagewin.c
V 25
file aq.5ck.r19259/440924
K 12
messagewin.h
V 24
file g3.5ck.r18082/32178
K 11
optiondlg.c
V 25
file ar.5ck.r19259/438399
K 11
optiondlg.h
V 24
file as.5ck.r16998/79026
K 7
pages.c
V 25
file 2qm.5ck.r27275/24488
K 7
pages.h
V 22
file 2qn.0.r10536/7909
K 9
pixcomm.c
V 25
file at.5ck.r19259/441680
K 9
pixcomm.h
V 20
file au.0.r4034/9777
K 10
pixcommp.h
V 25
file av.5ck.r19259/443665
K 8
plrdlg.c
V 24
file aw.5ck.r23284/23132
K 8
plrdlg.h
V 20
file g4.0.r5489/3140
K 10
ratesdlg.c
V 25
file ax.5ck.r19259/444421
K 10
ratesdlg.h
V 22
file 2dn.0.r5989/31227
K 10
repodlgs.c
V 24
file ay.5ck.r26176/32318
K 10
repodlgs.h
V 24
file az.5ck.r18076/36844
K 11
resources.c
V 25
file b0.5ck.r19259/439161
K 11
resources.h
V 21
file b1.0.r3145/14204
K 14
spaceshipdlg.c
V 24
file b2.5ck.r23118/30282
K 14
spaceshipdlg.h
V 21
file b3.0.r2187/11152
K 8
themes.c
V 26
file 350.5ck.r19259/439910
K 14
voteinfo_bar.c
V 26
file 4hg.5ck.r26905/118755
K 14
voteinfo_bar.h
V 26
file 4hh.5ck.r26905/119062
K 7
wldlg.c
V 25
file o5.5ck.r19259/446193
K 7
wldlg.h
V 24
file o6.5ck.r16285/91411
K 13
xaw_actions.c
V 24
file nt.5le.r27181/81801
K 13
xaw_actions.h
V 23
file nu.5lf.r23221/1873
END
ENDREP
id: 9o.5ck.r29010/57417
type: dir
pred: 9o.5ck.r28901/3665
count: 1156
text: 29010 54092 3312 3312 223a087ce4b54e9c70db766cd962e4d3
props: 11108 12237 78 0 a27c61ac5fddbd709df8c1876129f940
cpath: /trunk/client/gui-xaw
copyroot: 15280 /trunk

id: 170.5ck.r29010/57659
type: file
pred: 170.5ck.r28735/34613
count: 165
text: 29010 21962 624 123186 c338dd781442f10ecc7a9aec6a93bf52
props: 10779 67589 111 0 515f6afa6448327e59cdac91d637f582
cpath: /trunk/client/gui-sdl/citydlg.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 25
file 16u.5ck.r27705/70577
K 15
action_dialog.c
V 25
file 3bn.5ow.r28596/84162
K 11
alphablit.c
V 25
file 3be.5ck.r28508/69170
K 8
canvas.c
V 25
file 39i.5ck.r27161/17930
K 8
canvas.h
V 26
file 39j.5ck.r27123/105299
K 10
chatline.c
V 26
file 16y.5ck.r27123/100383
K 10
chatline.h
V 26
file 16z.5ck.r16199/137581
K 9
citydlg.c
V 25
file 170.5ck.r29010/57659
K 9
citydlg.h
V 25
file 171.5ck.r27123/98601
K 9
cityrep.c
V 26
file 172.5ck.r27123/102188
K 9
cityrep.h
V 26
file 173.5ck.r18101/104032
K 8
cma_fe.c
V 26
file 174.5ck.r27123/108113
K 8
cma_fe.h
V 23
file 175.0.r11361/43495
K 8
colors.c
V 25
file 176.5ck.r27123/97837
K 8
colors.h
V 25
file 177.5ck.r27123/99106
K 12
connectdlg.c
V 25
file 178.5ck.r27275/37982
K 12
connectdlg.h
V 23
file 179.0.r12349/45319
K 9
dialogs.c
V 24
file 17a.5ck.r28841/2264
K 9
dialogs.h
V 26
file 17b.5ck.r27123/103255
K 10
diplodlg.c
V 25
file 17c.5ck.r28650/31183
K 10
diplodlg.h
V 22
file 17d.0.r11584/2869
K 9
finddlg.c
V 26
file 17e.5ck.r27123/104529
K 9
finddlg.h
V 20
file 2d8.0.r5991/702
K 9
gotodlg.c
V 25
file 17f.5ck.r27123/96812
K 9
gotodlg.h
V 22
file 17g.0.r6515/58208
K 10
graphics.c
V 24
file 17h.5ck.r28818/9463
K 10
graphics.h
V 25
file 17i.5ck.r28508/68914
K 11
gui_iconv.c
V 25
file 17l.5ck.r28508/68406
K 11
gui_iconv.h
V 25
file 17m.5ck.r27123/96302
K 8
gui_id.h
V 26
file 17n.5ck.r25858/141658
K 10
gui_main.c
V 25
file 17o.5ck.r27286/10509
K 10
gui_main.h
V 24
file 17p.5ck.r29006/3084
K 11
gui_mouse.c
V 24
file 3ca.5ck.r27212/8632
K 11
gui_mouse.h
V 24
file 3cb.0.r12670/112397
K 12
gui_string.c
V 24
file 17r.5ck.r27759/5597
K 12
gui_string.h
V 26
file 17s.5ck.r27123/101931
K 14
gui_tilespec.c
V 25
file 191.5ck.r28735/35381
K 14
gui_tilespec.h
V 25
file 192.5ck.r28353/12647
K 9
helpdlg.c
V 25
file 17z.5ck.r28735/35124
K 9
helpdlg.h
V 23
file 180.0.r11361/47416
K 10
inteldlg.c
V 25
file 183.5ck.r27240/25464
K 10
inteldlg.h
V 22
file 2d9.0.r11409/2687
K 12
luaconsole.c
V 26
file 768.5ck.r26905/135274
K 12
luaconsole.h
V 26
file 769.5ck.r26905/135574
K 9
mapctrl.c
V 25
file 184.5ck.r27240/25717
K 9
mapctrl.h
V 26
file 185.5ck.r27123/104277
K 9
mapview.c
V 25
file 186.5ck.r28735/34870
K 9
mapview.h
V 25
file 187.5ck.r27123/99874
K 6
menu.c
V 24
file 188.5ck.r29006/3336
K 6
menu.h
V 25
file 189.5bk.r13856/57405
K 12
messagedlg.c
V 26
file 18a.5ck.r19259/474489
K 12
messagedlg.h
V 22
file 2da.0.r5989/48394
K 12
messagewin.c
V 24
file 18b.5ck.r28938/5653
K 12
messagewin.h
V 25
file 18c.5ck.r18082/39362
K 5
mmx.h
V 23
file 2e1.0.r6286/134429
K 11
optiondlg.c
V 24
file 18d.5ck.r28841/2519
K 11
optiondlg.h
V 24
file 18e.5ck.r28841/2770
K 7
pages.c
V 25
file 2qg.5ck.r27275/38236
K 7
pages.h
V 22
file 2qh.0.r8639/16416
K 8
plrdlg.c
V 25
file 18f.5ck.r27161/18696
K 8
plrdlg.h
V 22
file 18g.0.r6387/81301
K 10
ratesdlg.h
V 22
file 2db.0.r5989/47726
K 10
repodlgs.c
V 24
file 18i.5ck.r28408/5999
K 10
repodlgs.h
V 26
file 18j.5ck.r27123/106065
K 14
spaceshipdlg.c
V 25
file 18m.5ck.r23118/34340
K 14
spaceshipdlg.h
V 23
file 18n.0.r5500/263363
K 8
sprite.c
V 26
file 39k.5ck.r27123/104025
K 8
sprite.h
V 24
file 39l.5ck.r19390/3772
K 18
themebackgrounds.c
V 26
file 3ff.5ck.r19259/465848
K 18
themebackgrounds.h
V 26
file 3fg.5ck.r27123/106837
K 13
themecolors.c
V 25
file 392.5ck.r20963/49888
K 13
themecolors.h
V 25
file 393.5ck.r20963/50401
K 8
themes.c
V 26
file 38p.5ck.r24790/275748
K 11
themespec.c
V 25
file 390.5ck.r25151/70163
K 11
themespec.h
V 26
file 391.5ck.r16578/464018
K 11
unistring.c
V 26
file 18o.5ck.r27123/100125
K 11
unistring.h
V 26
file 18p.5ck.r27123/100641
K 14
voteinfo_bar.c
V 26
file 4ha.5ck.r26905/134055
K 14
voteinfo_bar.h
V 26
file 4hb.5ck.r26905/134357
K 8
widget.c
V 26
file 3fu.5ck.r27123/105810
K 8
widget.h
V 25
file 3fv.5ck.r18995/17029
K 15
widget_button.c
V 26
file 3fh.5ck.r27123/101669
K 15
widget_button.h
V 24
file 3g7.0.r12670/113556
K 17
widget_checkbox.c
V 25
file 3fi.5ck.r27161/17668
K 17
widget_checkbox.h
V 24
file 3g8.0.r12670/106620
K 14
widget_combo.c
V 25
file 4k3.5ck.r27123/98343
K 14
widget_combo.h
V 26
file 4k4.5ck.r26905/134968
K 13
widget_core.c
V 25
file 3fj.5ck.r27322/33951
K 13
widget_edit.c
V 24
file 3fk.5ck.r28789/6651
K 13
widget_edit.h
V 24
file 3g9.0.r12670/115595
K 13
widget_icon.c
V 26
file 3fl.5ck.r27123/100895
K 13
widget_icon.h
V 24
file 3ga.0.r12670/112107
K 14
widget_label.c
V 26
file 3fm.5ck.r27123/105549
K 14
widget_label.h
V 24
file 3gb.0.r12670/110079
K 10
widget_p.h
V 24
file 3fn.0.r12670/107197
K 18
widget_scrollbar.c
V 26
file 3fo.5df.r27123/102957
K 18
widget_scrollbar.h
V 24
file 3gc.0.r12670/116811
K 15
widget_window.c
V 25
file 3fp.5ck.r27123/99615
K 15
widget_window.h
V 23
file 3gd.0.r12699/32533
K 7
wldlg.c
V 26
file 18q.5ck.r27123/107863
K 7
wldlg.h
V 26
file 18r.5ck.r16285/100508
END
ENDREP
id: 16t.5ck.r29010/62712
type: dir
pred: 16t.5ck.r29006/8383
count: 896
text: 29010 57916 4783 4783 516d7a8aa607f97eabd6220f61c9568e
props: 11108 12869 78 0 a27c61ac5fddbd709df8c1876129f940
cpath: /trunk/client/gui-sdl
copyroot: 15280 /trunk

id: mb.5ck.r29010/62955
type: file
pred: mb.5ck.r24790/282697
count: 92
text: 29010 38915 294 35706 e862d33c5499d9acc137935d9c20f9d9
props: 10806 19211 111 0 93646be3752db5a3cd8e77177837d494
cpath: /trunk/client/cityrepdata.c
copyroot: 15280 /trunk

id: n.5ck.r29010/63205
type: file
pred: n.5ck.r28926/32215
count: 1040
text: 29010 32920 5965 149651 75a24ab7e80876a1e5618186587dc633
props: 11088 14698 112 0 2c9d3e41a2f20488aa9cdb8d740d094e
cpath: /trunk/client/packhand.c
copyroot: 15280 /trunk

id: z2.5ck.r29010/63453
type: file
pred: z2.5ck.r28596/69474
count: 340
text: 29010 42746 1559 128061 ba041dbf372fbdf3e4ba3a05688f26ad
props: 11084 12552 112 0 73ff9df0f3aabd6f615c7264c2fe22c7
cpath: /trunk/client/mapview_common.c
copyroot: 15280 /trunk

id: 170.5l8.r29010/63708
type: file
pred: 170.5l8.r28735/16706
count: 179
text: 29010 0 715 124516 530f5c1744a76604932bb3592bd6ab52
props: 10779 67589 111 0 515f6afa6448327e59cdac91d637f582
cpath: /trunk/client/gui-sdl2/citydlg.c
copyroot: 23136 /trunk/client/gui-sdl2

PLAIN
K 11
Makefile.am
V 25
file 16u.5l8.r27706/16154
K 15
action_dialog.c
V 25
file 3bn.5ox.r28596/78472
K 8
canvas.c
V 25
file 39i.5l8.r27161/27757
K 8
canvas.h
V 25
file 39j.5l8.r27123/79933
K 10
chatline.c
V 23
file 16y.5l8.r28886/429
K 10
chatline.h
V 26
file 16z.5ck.r16199/137581
K 9
citydlg.c
V 25
file 170.5l8.r29010/63708
K 9
citydlg.h
V 25
file 171.5l8.r27385/17640
K 9
cityrep.c
V 26
file 172.5l8.r27997/206451
K 9
cityrep.h
V 26
file 173.5ck.r18101/104032
K 8
cma_fe.c
V 26
file 174.5l8.r27997/205898
K 8
cma_fe.h
V 25
file 175.5l8.r27385/13568
K 8
colors.c
V 25
file 176.5l8.r27201/84054
K 8
colors.h
V 25
file 177.5l8.r27123/87013
K 12
connectdlg.c
V 26
file 178.5l8.r27997/211707
K 12
connectdlg.h
V 25
file 179.5l8.r27385/19249
K 9
dialogs.c
V 24
file 17a.5l8.r28841/8579
K 9
dialogs.h
V 25
file 17b.5l8.r27385/11675
K 10
diplodlg.c
V 25
file 17c.5l8.r28650/40969
K 10
diplodlg.h
V 25
file 17d.5l8.r27385/19789
K 9
finddlg.c
V 26
file 17e.5l8.r27997/208655
K 9
finddlg.h
V 20
file 2d8.0.r5991/702
K 9
gotodlg.c
V 26
file 17f.5l8.r27997/213365
K 9
gotodlg.h
V 25
file 17g.5l8.r27385/17910
K 10
graphics.c
V 25
file 17h.5l8.r28818/14763
K 10
graphics.h
V 25
file 17i.5l8.r28508/74749
K 11
gui_iconv.c
V 25
file 17l.5l8.r28508/75291
K 11
gui_iconv.h
V 25
file 17m.5l8.r27123/90036
K 8
gui_id.h
V 25
file 17n.5l8.r27385/12759
K 10
gui_main.c
V 24
file 17o.5l8.r28033/1485
K 10
gui_main.h
V 24
file 17p.5l8.r29006/8625
K 11
gui_mouse.c
V 24
file 3ca.5l8.r28216/4625
K 11
gui_mouse.h
V 24
file 3cb.0.r12670/112397
K 12
gui_string.c
V 26
file 17r.5l8.r27997/211430
K 12
gui_string.h
V 24
file 17s.5l8.r27775/2065
K 14
gui_tilespec.c
V 25
file 191.5l8.r28735/16432
K 14
gui_tilespec.h
V 25
file 192.5l8.r28353/18752
K 9
helpdlg.c
V 25
file 17z.5l8.r28735/16158
K 9
helpdlg.h
V 25
file 180.5l8.r27385/14106
K 10
inteldlg.c
V 26
file 183.5l8.r27997/208107
K 10
inteldlg.h
V 25
file 2d9.5l8.r27385/10613
K 12
luaconsole.c
V 26
file 768.5l8.r26905/126647
K 12
luaconsole.h
V 26
file 769.5l8.r26905/126964
K 9
mapctrl.c
V 26
file 184.5l8.r27997/208383
K 9
mapctrl.h
V 25
file 185.5l8.r27385/13028
K 9
mapview.c
V 25
file 186.5l8.r28735/16981
K 9
mapview.h
V 25
file 187.5l8.r27385/18439
K 6
menu.c
V 24
file 188.5l8.r29006/8893
K 6
menu.h
V 25
file 189.5l8.r27385/18174
K 12
messagedlg.c
V 26
file 18a.5ck.r19259/474489
K 12
messagedlg.h
V 25
file 2da.5l8.r27385/18982
K 12
messagewin.c
V 23
file 18b.5l8.r28938/249
K 12
messagewin.h
V 25
file 18c.5ck.r18082/39362
K 5
mmx.h
V 23
file 2e1.0.r6286/134429
K 11
optiondlg.c
V 24
file 18d.5l8.r28841/8852
K 11
optiondlg.h
V 24
file 18e.5l8.r28841/9123
K 7
pages.c
V 26
file 2qg.5l8.r27997/205078
K 7
pages.h
V 22
file 2qh.0.r8639/16416
K 8
plrdlg.c
V 26
file 18f.5l8.r27997/209479
K 8
plrdlg.h
V 22
file 18g.0.r6387/81301
K 10
ratesdlg.h
V 25
file 2db.5l8.r27385/10877
K 10
repodlgs.c
V 23
file 18i.5l8.r28423/557
K 10
repodlgs.h
V 26
file 18j.5l8.r27997/204253
K 14
spaceshipdlg.c
V 26
file 18m.5l8.r27997/210881
K 14
spaceshipdlg.h
V 25
file 18n.5l8.r27385/13298
K 8
sprite.c
V 25
file 39k.5l8.r28508/75022
K 8
sprite.h
V 25
file 39l.5l8.r27385/11141
K 18
themebackgrounds.c
V 25
file 3ff.5l8.r27305/15833
K 18
themebackgrounds.h
V 25
file 3fg.5l8.r27385/16819
K 13
themecolors.c
V 25
file 392.5l8.r27305/15015
K 13
themecolors.h
V 25
file 393.5l8.r27385/12215
K 8
themes.c
V 25
file 38p.5l8.r27305/16112
K 11
themespec.c
V 25
file 390.5l8.r27396/12813
K 11
themespec.h
V 25
file 391.5l8.r27385/15732
K 11
unistring.c
V 25
file 18o.5l8.r27322/39261
K 11
unistring.h
V 25
file 18p.5l8.r27385/14369
K 12
utf8string.c
V 24
file 1l7w.5l8.r27930/199
K 12
utf8string.h
V 26
file 1l7y.5l8.r27706/17312
K 14
voteinfo_bar.c
V 26
file 4ha.5l8.r26905/127282
K 14
voteinfo_bar.h
V 26
file 4hb.5l8.r26905/127601
K 8
widget.c
V 24
file 3fu.5l8.r28216/4892
K 8
widget.h
V 26
file 3fv.5l8.r27997/204804
K 15
widget_button.c
V 26
file 3fh.5l8.r27997/206171
K 15
widget_button.h
V 26
file 3g7.5l8.r27997/207004
K 17
widget_checkbox.c
V 26
file 3fi.5l8.r27997/212261
K 17
widget_checkbox.h
V 26
file 3g8.5l8.r27997/212538
K 14
widget_combo.c
V 26
file 4k3.5l8.r27997/207831
K 14
widget_combo.h
V 26
file 4k4.5l8.r27997/208928
K 13
widget_core.c
V 26
file 3fj.5l8.r27997/207282
K 13
widget_edit.c
V 24
file 3fk.5l8.r28789/1232
K 13
widget_edit.h
V 26
file 3g9.5l8.r27997/210605
K 13
widget_icon.c
V 25
file 3fl.5l8.r27428/21228
K 13
widget_icon.h
V 25
file 3ga.5l8.r27385/19517
K 14
widget_label.c
V 26
file 3fm.5l8.r27997/203702
K 14
widget_label.h
V 26
file 3gb.5l8.r27997/204527
K 10
widget_p.h
V 25
file 3fn.5l8.r27385/15187
K 18
widget_scrollbar.c
V 25
file 3fo.5lj.r27584/22339
K 18
widget_scrollbar.h
V 25
file 3gc.5l8.r27385/14638
K 15
widget_window.c
V 26
file 3fp.5l8.r27997/213912
K 15
widget_window.h
V 26
file 3gd.5l8.r27997/203147
K 7
wldlg.c
V 26
file 18q.5l8.r27997/211157
K 7
wldlg.h
V 25
file 18r.5l8.r27385/11408
END
ENDREP
id: 16t.5l8.r29010/68853
type: dir
pred: 16t.5l8.r29006/14033
count: 970
text: 29010 63978 4862 4862 1aa0048344d40ac7cf689b07fc4aac6e
props: 11108 12869 78 0 a27c61ac5fddbd709df8c1876129f940
cpath: /trunk/client/gui-sdl2
copyroot: 23136 /trunk/client/gui-sdl2

id: z4.5ck.r29010/69114
type: file
pred: z4.5ck.r27397/15042
count: 160
text: 29010 24524 8368 38204 d40d231b9fa1e3f2b11fb5e6293afdb4
props: 11067 4204 111 0 32cf26490c5995022c752556481ff094
cpath: /trunk/client/citydlg_common.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 5f.5ck.r27705/90803
K 6
agents
V 23
dir zf.5ck.r28218/31616
K 11
attribute.c
V 24
file xh.5ck.r28218/30713
K 11
attribute.h
V 24
file xi.5ck.r18863/23649
K 7
audio.c
V 25
file 139.5ck.r27127/10791
K 7
audio.h
V 25
file 13a.5ck.r27127/11031
K 12
audio_none.c
V 25
file 13d.5ck.r24916/15731
K 12
audio_none.h
V 25
file 13e.5ck.r18863/20841
K 11
audio_sdl.c
V 25
file 13f.5ck.r27123/78063
K 11
audio_sdl.h
V 25
file 13g.5ck.r18863/23885
K 17
chatline_common.c
V 25
file 14q.5ck.r24895/20143
K 17
chatline_common.h
V 24
file 14r.5ck.r24892/5917
K 16
citydlg_common.c
V 24
file z4.5ck.r29010/69114
K 16
citydlg_common.h
V 24
file z5.5ck.r27397/15293
K 13
cityrepdata.c
V 24
file mb.5ck.r29010/62955
K 13
cityrepdata.h
V 24
file mc.5ck.r18863/19121
K 13
client_main.c
V 24
file 2f.5cp.r28203/13318
K 13
client_main.h
V 23
file hz.5cq.r26714/9499
K 8
climap.c
V 24
file 197.5ck.r20232/3008
K 8
climap.h
V 25
file 198.5ck.r18863/24126
K 9
climisc.c
V 24
file d5.5ck.r28414/62002
K 9
climisc.h
V 23
file i0.5ck.r26654/5011
K 8
clinet.c
V 23
file hc.5ck.r28639/5786
K 8
clinet.h
V 24
file i1.5ck.r18863/24866
K 15
colors_common.c
V 24
file 33a.5ck.r22855/3020
K 15
colors_common.h
V 24
file 33b.5ck.r24136/6711
K 19
connectdlg_common.c
V 25
file 2fw.5ck.r27275/53841
K 19
connectdlg_common.h
V 25
file 2fx.5ck.r19154/53802
K 9
control.c
V 25
file gz.5ck.r28661/133082
K 9
control.h
V 24
file i2.5ck.r28512/31210
K 7
dummy.c
V 26
file 4f9.5ck.r26905/141682
K 12
dummycxx.cpp
V 26
file 6kr.5ck.r26905/106211
K 8
editor.c
V 24
file 3bg.5ck.r26198/2350
K 8
editor.h
V 24
file 3bh.5ck.r26198/2592
K 17
global_worklist.c
V 26
file 4i6.5ck.r26905/117850
K 17
global_worklist.h
V 26
file 4i7.5ck.r26905/126022
K 6
goto.c
V 23
file vu.5ck.r27873/6912
K 6
goto.h
V 24
file vv.5ck.r27871/19506
K 11
gui-gtk-2.0
V 22
dir zs.5ck.r28982/5824
K 11
gui-gtk-3.0
V 23
dir zs.5g7.r28981/10793
K 6
gui-qt
V 23
dir 6ie.5ck.r28976/3594
K 7
gui-sdl
V 24
dir 16t.5ck.r29010/62712
K 8
gui-sdl2
V 24
dir 16t.5l8.r29010/68853
K 8
gui-stub
V 22
dir mh.5ck.r27870/9461
K 7
gui-xaw
V 23
dir 9o.5ck.r29010/57417
K 14
gui_cbsetter.c
V 26
file a3c.5ck.r27417/165161
K 14
gui_cbsetter.h
V 25
file a3d.5ck.r26905/69091
K 15
gui_interface.c
V 26
file 6jm.5ir.r27417/187983
K 15
gui_interface.h
V 26
file 6jn.5is.r27417/193557
K 10
helpdata.c
V 24
file h1.5ck.r28780/15802
K 10
helpdata.h
V 24
file i3.5ck.r25494/33011
K 7
include
V 24
dir b8.5ck.r27417/187740
K 19
luaconsole_common.c
V 26
file 75z.5ck.r26905/100821
K 19
luaconsole_common.h
V 26
file 760.5ck.r26905/106500
K 9
luascript
V 24
dir 761.5ck.r27705/90564
K 16
mapctrl_common.c
V 23
file 15m.5ck.r27634/293
K 16
mapctrl_common.h
V 24
file 15n.5ck.r27397/5459
K 16
mapview_common.c
V 24
file z2.5ck.r29010/63453
K 16
mapview_common.h
V 23
file z3.5ck.r27397/9503
K 19
messagewin_common.c
V 26
file 14s.5ck.r24790/282945
K 19
messagewin_common.h
V 25
file 14t.5ck.r18863/21579
K 7
music.c
V 25
file zmc.5ck.r27127/11271
K 7
music.h
V 25
file zme.5ck.r27127/11513
K 9
options.c
V 23
file dc.5ck.r28117/8059
K 9
options.h
V 23
file i4.5ck.r28117/2119
K 17
overview_common.c
V 26
file 2yk.5ck.r24790/283201
K 17
overview_common.h
V 26
file 2yl.5ck.r24790/283707
K 10
packhand.c
V 23
file n.5ck.r29010/63205
K 10
packhand.h
V 24
file i5.5ck.r18863/20596
K 15
plrdlg_common.c
V 24
file 14u.5ck.r28833/2098
K 15
plrdlg_common.h
V 25
file 14v.5ck.r18863/21328
K 17
repodlgs_common.c
V 25
file 11i.5ck.r22325/76263
K 17
repodlgs_common.h
V 25
file 11j.5ck.r19589/11861
K 9
reqtree.c
V 25
file 2ym.5ck.r28242/13215
K 9
reqtree.h
V 24
file 2yn.5ck.r24150/6004
K 9
servers.c
V 24
file 33x.5ck.r28764/1183
K 9
servers.h
V 25
file 33y.5ck.r20478/36372
K 6
text.c
V 24
file 2g3.5ck.r28531/7494
K 6
text.h
V 25
file 2g4.5ck.r24459/13284
K 15
themes_common.c
V 22
file 352.5ck.r26465/95
K 15
themes_common.h
V 25
file 353.5ck.r18863/22710
K 10
tilespec.c
V 23
file hl.5ck.r28993/1172
K 10
tilespec.h
V 24
file i6.5ck.r28242/12971
K 19
unitselect_common.c
V 26
file 76v.5ck.r26905/117249
K 19
unitselect_common.h
V 26
file 76w.5ck.r26905/117548
K 14
update_queue.c
V 26
file 4jw.5ck.r26905/141084
K 14
update_queue.h
V 26
file 4jx.5ck.r26905/141966
K 10
voteinfo.c
V 26
file 4fe.5ck.r26905/141386
K 10
voteinfo.h
V 26
file 4ff.5ck.r26905/142263
END
ENDREP
id: d.5ck.r29010/73653
type: dir
pred: d.5ck.r29006/18577
count: 6670
text: 29010 69367 4273 4273 13162d1e9d2438fa1298b1f39f26efb9
props: 28036 11094 400 0 bbe1d6769a94f3af2a54f7dc91fc9c71
cpath: /trunk/client
copyroot: 15280 /trunk

id: bfa.5ck.r29010/73887
type: file
pred: bfa.5ck.r28866/9373
count: 14
text: 29010 40564 2154 7236 ce8d42043805ce0fed529ddbab1669e5
props: 26905 205229 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/common/traderoutes.h
copyroot: 15280 /trunk

id: 2wq.5ck.r29010/74137
type: file
pred: 2wq.5ck.r28780/22412
count: 166
text: 29010 1735 886 116084 ee9630c79bea243c86a4b56f2c8ab977
props: 10865 25397 111 0 1c266b4433d829481714f1852322e965
cpath: /trunk/common/requirements.c
copyroot: 15280 /trunk

id: siq.5ck.r29010/74390
type: file
pred: siq.5ck.r28780/21913
count: 32
text: 29010 3548 14920 20154 e5c1a0e625645655d3eb15cacd59f69d
props: 26905 206107 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/common/metaknowledge.c
copyroot: 15280 /trunk

id: q.5ck.r29010/74644
type: file
pred: q.5ck.r28926/17418
count: 560
text: 29010 50067 3741 114222 c076b27456c8893e8553d0741156fad8
props: 11069 12442 112 0 7c45f13e78520e4754bc476682276743
cpath: /trunk/common/city.c
copyroot: 15280 /trunk

id: 3q.5ck.r29010/74887
type: file
pred: 3q.5ck.r28926/17660
count: 341
text: 29010 957 55 28442 c9e16460f44955d101ac64610e241958
props: 10806 12641 112 0 0103cdead8b16a89c717b6ef9ed59c6a
cpath: /trunk/common/city.h
copyroot: 15280 /trunk

id: 33l.5ck.r29010/75127
type: file
pred: 33l.5ck.r28923/1384
count: 29
text: 29010 1040 514 29053 b3cbc74bd4cd3c6d2019a9418074d4a9
props: 10779 44053 110 0 fd27c383f48a4fbbd90a59fbcfc8b3be
cpath: /trunk/common/aicore/caravan.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 25
file 18u.5ck.r27705/38964
K 11
aisupport.c
V 25
file 2em.5ck.r28596/95742
K 11
aisupport.h
V 22
file 2en.0.r8119/19806
K 9
caravan.c
V 25
file 33l.5ck.r29010/75127
K 9
caravan.h
V 25
file 33m.5ck.r23460/43433
K 9
citymap.c
V 26
file 2gj.5ck.r27611/108270
K 9
citymap.h
V 25
file 2gk.5ck.r20375/18425
K 4
cm.c
V 23
file 18x.5ck.r27545/656
K 4
cm.h
V 23
file 18y.5ck.r27545/896
K 14
path_finding.c
V 23
file 2ds.5ck.r26830/302
K 14
path_finding.h
V 25
file 2dt.5ck.r26443/10962
K 10
pf_tools.c
V 25
file 2du.5ck.r28780/20810
K 10
pf_tools.h
V 25
file 2dv.5ck.r26443/10709
END
ENDREP
id: 18t.5ck.r29010/75988
type: dir
pred: 18t.5ck.r28923/2242
count: 355
text: 29010 75379 596 596 131ae4c0d6edfabb98df52e52993bf95
props: 11108 8037 65 0 8b44e87f657ecca3b8458ca1746fb7c6
cpath: /trunk/common/aicore
copyroot: 15280 /trunk

id: bf8.5ck.r29010/76227
type: file
pred: bf8.5ck.r28964/22579
count: 15
text: 29010 39879 657 15852 d3ed05f4dc3178dca4c6de1a85747860
props: 26905 204643 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/common/traderoutes.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 5h.5ck.r27888/80675
K 14
achievements.c
V 25
file qhc.5ck.r28853/14803
K 14
achievements.h
V 26
file qhe.5ck.r26905/215849
K 9
actions.c
V 23
file r7a.5ck.r28974/356
K 9
actions.h
V 23
file r7c.5ck.r28877/552
K 4
ai.c
V 26
file 4go.5ck.r26905/200613
K 4
ai.h
V 25
file 4gp.5ck.r28012/36147
K 6
aicore
V 24
dir 18t.5ck.r29010/75988
K 6
base.c
V 25
file 3jw.5ck.r28853/10829
K 6
base.h
V 25
file 3jx.5ck.r28690/17344
K 9
borders.c
V 25
file 4f0.5ck.r28853/15054
K 9
borders.h
V 26
file 4f1.5ck.r26905/213493
K 10
calendar.c
V 27
file 147p.5ck.r26905/214086
K 10
calendar.h
V 27
file 147r.5ck.r26905/215265
K 8
capstr.c
V 22
file dv.5ck.r24976/289
K 8
capstr.h
V 24
file dw.5ck.r18858/97074
K 10
citizens.c
V 26
file 6mx.5ck.r26905/203234
K 10
citizens.h
V 26
file 6my.5ck.r26905/204108
K 6
city.c
V 23
file q.5ck.r29010/74644
K 6
city.h
V 24
file 3q.5ck.r29010/74887
K 13
clientutils.c
V 26
file zj9.5ck.r26905/212022
K 13
clientutils.h
V 26
file zjb.5ck.r26905/213199
K 8
combat.c
V 22
file wp.5ck.r27137/126
K 8
combat.h
V 24
file wq.5ck.r24573/25814
K 12
connection.c
V 23
file un.5ck.r27857/9823
K 12
connection.h
V 23
file uo.5ck.r27799/1027
K 9
culture.c
V 27
file 104t.5ck.r26905/202652
K 9
culture.h
V 27
file 104v.5ck.r26905/203523
K 8
dataio.c
V 25
file 15r.5ck.r28876/24691
K 8
dataio.h
V 25
file 15s.5ck.r28876/24933
K 13
dataio_json.c
V 26
file 1m61.5ck.r28876/24304
K 13
dataio_json.h
V 26
file 1m63.5ck.r28876/24498
K 11
diptreaty.c
V 24
file 3r.5ck.r27517/13334
K 11
diptreaty.h
V 24
file 3s.5ck.r27517/13575
K 10
disaster.c
V 26
file b2m.5ck.r28661/141058
K 10
disaster.h
V 25
file b2o.5ck.r28753/25083
K 9
effects.c
V 23
file 2eo.5ck.r28719/557
K 9
effects.h
V 25
file 2ep.5ck.r28963/22391
K 8
events.c
V 24
file 33h.5ck.r28400/6662
K 8
events.h
V 23
file 3t.5ck.r28400/6903
K 8
extras.c
V 25
file o9u.5ck.r28853/12046
K 8
extras.h
V 25
file o9w.5ck.r28690/17585
K 12
fc_cmdhelp.c
V 26
file 76j.5ck.r26905/216438
K 12
fc_cmdhelp.h
V 26
file 76k.5ck.r26905/216731
K 14
fc_interface.c
V 23
file 4up.5ck.r28872/460
K 14
fc_interface.h
V 25
file 4uq.5ck.r28203/18355
K 10
fc_types.h
V 24
file 2ll.5ck.r28805/7198
K 15
featured_text.c
V 26
file 4h3.5ck.r26905/212899
K 15
featured_text.h
V 26
file 4h4.5ck.r26905/213786
K 6
game.c
V 24
file 3u.5ck.r28753/23850
K 6
game.h
V 24
file 3v.5ck.r28905/50245
K 19
generate_packets.py
V 25
file 2f4.5ck.r28876/24048
K 12
government.c
V 25
file he.5ck.r28661/144031
K 12
government.h
V 24
file hf.5ck.r25151/83855
K 6
idex.c
V 24
file qo.5ck.r25151/84101
K 6
idex.h
V 24
file qp.5ck.r18858/92434
K 13
improvement.c
V 24
file vb.5ck.r28818/37593
K 13
improvement.h
V 23
file vc.5ck.r26605/3666
K 5
map.c
V 24
file r.5ck.r28661/143548
K 5
map.h
V 24
file 41.5ck.r28853/11071
K 8
mapimg.c
V 26
file 6n9.5ck.r26905/214381
K 8
mapimg.h
V 26
file 6na.5ck.r26905/215559
K 15
metaknowledge.c
V 25
file siq.5ck.r29010/74390
K 15
metaknowledge.h
V 26
file sis.5ck.r26905/206455
K 10
movement.c
V 25
file 2xv.5ck.r27973/10772
K 10
movement.h
V 25
file 2xw.5ck.r26369/89711
K 13
multipliers.c
V 27
file 197b.5ck.r26905/218478
K 13
multipliers.h
V 27
file 197d.5ck.r26905/219360
K 18
name_translation.h
V 26
file 4k1.5ck.r26905/217596
K 8
nation.c
V 24
file il.5ck.r26881/35006
K 8
nation.h
V 22
file im.5ck.r27000/284
K 9
packets.c
V 24
file 43.5ck.r28218/18441
K 11
packets.def
V 25
file 2f5.5ck.r28905/50483
K 9
packets.h
V 24
file 44.5ck.r28853/11557
K 14
packets_json.c
V 24
file 1m64.5ck.r28521/840
K 14
packets_json.h
V 26
file 1m65.5ck.r28846/11954
K 8
player.c
V 22
file 45.5ck.r28872/702
K 8
player.h
V 22
file 46.5ck.r28872/942
K 14
requirements.c
V 25
file 2wq.5ck.r29010/74137
K 14
requirements.h
V 26
file 2wr.5ck.r28661/142807
K 10
research.c
V 26
file 4ro.5ck.r28661/143058
K 10
research.h
V 24
file 4rp.5ck.r27750/1056
K 10
rgbcolor.c
V 26
file 6i6.5ck.r26905/218776
K 10
rgbcolor.h
V 26
file 6i7.5ck.r26905/219068
K 6
road.c
V 25
file 6pq.5ck.r28853/11312
K 6
road.h
V 25
file 6pr.5ck.r27876/17736
K 10
scriptcore
V 24
dir 75a.5ck.r28853/14316
K 11
spaceship.c
V 23
file 98.5ck.r26349/9773
K 11
spaceship.h
V 24
file 99.5ck.r26349/10015
K 12
specialist.c
V 23
file 33f.5ck.r22372/258
K 12
specialist.h
V 25
file 33g.5ck.r23560/15220
K 7
style.c
V 26
file zzb.5ck.r28661/141554
K 7
style.h
V 26
file zzd.5ck.r26905/204988
K 6
team.c
V 23
file 33i.5ck.r25891/212
K 6
team.h
V 23
file 33j.5ck.r26183/314
K 6
tech.c
V 23
file t.5ck.r28735/49699
K 6
tech.h
V 22
file u.5ck.r28787/6232
K 9
terrain.c
V 23
file 2fp.5ck.r28906/744
K 9
terrain.h
V 24
file qs.5ck.r27876/16764
K 6
tile.c
V 25
file 2ys.5ck.r28853/14563
K 6
tile.h
V 25
file 2yt.5ck.r26109/28279
K 13
traderoutes.c
V 25
file bf8.5ck.r29010/76227
K 13
traderoutes.h
V 25
file bfa.5ck.r29010/73887
K 8
traits.h
V 26
file 7k3.5ck.r26905/202065
K 6
unit.c
V 23
file v.5ck.r28969/20629
K 6
unit.h
V 24
file 48.5ck.r28012/36636
K 10
unitlist.c
V 25
file 39m.5ck.r28596/94022
K 10
unitlist.h
V 26
file 39n.5ck.r27611/110113
K 10
unittype.c
V 22
file v9.5ck.r28877/310
K 10
unittype.h
V 23
file va.5ck.r28852/2441
K 9
version.c
V 23
file oe.5ck.r26171/7093
K 9
version.h
V 23
file e7.5ck.r26171/7331
K 9
victory.c
V 26
file qex.5ck.r26905/217020
K 9
victory.h
V 26
file qez.5ck.r26905/217896
K 8
vision.c
V 22
file 4dm.5ck.r27638/98
K 8
vision.h
V 24
file 4dn.5ck.r24742/9986
K 12
workertask.c
V 26
file llw.5ck.r26905/206753
K 12
workertask.h
V 25
file lly.5ck.r28926/17170
K 10
worklist.c
V 22
file o8.5ck.r28026/169
K 10
worklist.h
V 24
file o9.5ck.r18858/98299
END
ENDREP
id: p.5ck.r29010/81991
type: dir
pred: p.5ck.r28974/6107
count: 4257
text: 29010 76478 5500 5500 29d521c9b834a813fdca627a564cd6df
props: 23743 0 112 0 b2bc91bf125d83375389d51f25ff2c2f
cpath: /trunk/common
copyroot: 15280 /trunk

id: 20.5gj.r29010/82220
type: file
pred: 20.5gj.r28661/150296
count: 465
text: 29010 45783 136 69905 2ccd7fd6d3da0243bfa1064e2d483212
props: 11069 16784 112 0 24b501182e64f7bbc4aaaa8b3f1d9020
cpath: /trunk/ai/default/aicity.c
copyroot: 19757 /trunk/ai/default/aicity.c

id: 156e.5ck.r29010/82490
type: file
pred: 156e.5ck.r28963/28377
count: 27
text: 29010 1580 129 22595 c64ef3b2d59d394ca9c3d21eca8546e1
props: 26905 232560 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/ai/default/daieffects.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 25
file 6k4.5ck.r27705/47721
K 14
advdiplomacy.c
V 24
file 2ek.5g9.r28983/1220
K 14
advdiplomacy.h
V 25
file 2el.5ga.r21819/30478
K 13
advdomestic.c
V 24
file 1m.5gb.r28964/28570
K 13
advdomestic.h
V 24
file 1n.5gc.r21819/29385
K 13
advmilitary.c
V 25
file 1u.5gd.r28661/150833
K 13
advmilitary.h
V 23
file 1v.5ge.r27368/1068
K 7
aiair.c
V 25
file 15y.5gh.r28484/11425
K 7
aiair.h
V 25
file 15z.5gi.r21819/33076
K 8
aicity.c
V 24
file 20.5gj.r29010/82220
K 8
aicity.h
V 24
file 21.5gk.r26118/23854
K 8
aidata.c
V 26
file 6mb.5gl.r28661/150563
K 8
aidata.h
V 24
file 6mc.5gm.r27694/6367
K 12
aidiplomat.c
V 26
file 16r.5gn.r28596/102591
K 12
aidiplomat.h
V 25
file 16s.5go.r21819/32802
K 9
aiferry.c
V 26
file 2iw.5gp.r27611/117178
K 9
aiferry.h
V 24
file 2ix.5gq.r25299/3783
K 9
aiguard.c
V 25
file 335.5gr.r21830/20422
K 9
aiguard.h
V 24
file 336.5gs.r28075/4294
K 8
aihand.c
V 24
file 22.5gt.r26403/72867
K 8
aihand.h
V 24
file 23.5gu.r21810/35768
K 8
aihunt.c
V 24
file 2gc.5gv.r27262/1352
K 8
aihunt.h
V 25
file 2gd.5gw.r21819/35411
K 7
ailog.c
V 25
file 6p8.5gx.r28853/21050
K 7
ailog.h
V 26
file 6p9.5gy.r26905/232907
K 15
aiparatrooper.c
V 25
file 36o.5gz.r25697/34657
K 15
aiparatrooper.h
V 25
file 36p.5h0.r25366/42160
K 10
aiplayer.c
V 26
file 6i3.5h1.r26905/233520
K 10
aiplayer.h
V 26
file 6i4.5h2.r26905/231348
K 11
aisettler.c
V 26
file 2lh.5h3.r28596/102866
K 11
aisettler.h
V 25
file 2li.5h4.r22374/17958
K 8
aitech.c
V 25
file 24.5h5.r28661/151107
K 8
aitech.h
V 23
file 25.5h6.r25452/2151
K 9
aitools.c
V 23
file 9.5h7.r28484/10885
K 9
aitools.h
V 23
file a.5h8.r25366/39676
K 8
aiunit.c
V 23
file b.5h9.r28484/11689
K 8
aiunit.h
V 22
file c.5ha.r27607/8565
K 12
daieffects.c
V 26
file 156e.5ck.r29010/82490
K 12
daieffects.h
V 27
file 156g.5ck.r26905/233221
END
ENDREP
id: 6k3.5ck.r29010/84558
type: dir
pred: 6k3.5ck.r28983/3312
count: 372
text: 29010 82745 1800 1800 a185f4d3a0ca5e6f79ea278e06973ec3
props: 19010 5510 53 0 1aad128f6d028f535e9ce7233326568e
cpath: /trunk/ai/default
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 5d.5ck.r26100/14492
K 10
aitraits.c
V 26
file 7k0.5ck.r26905/229736
K 10
aitraits.h
V 26
file 7k2.5ck.r26905/225228
K 7
classic
V 24
dir l53.5ck.r27002/13709
K 7
default
V 24
dir 6k3.5ck.r29010/84558
K 12
difficulty.c
V 25
file 1b4x.5ck.r27304/6957
K 12
difficulty.h
V 27
file 1b4z.5ck.r26905/225513
K 11
handicaps.c
V 26
file syo.5ck.r26905/225805
K 11
handicaps.h
V 26
file syq.5ck.r26905/226737
K 4
stub
V 25
dir 6k5.5ck.r26905/226459
K 8
threaded
V 24
dir 6pi.5ck.r28926/24277
END
ENDREP
id: 8.5ck.r29010/85321
type: dir
pred: 8.5ck.r28983/4073
count: 1816
text: 29010 84796 512 512 146cb8d7f4860b9fb621a46f6d038607
props: 11108 11315 64 0 abac628483ea4fdfa3bea3a3a56e0532
cpath: /trunk/ai
copyroot: 15280 /trunk

id: 4m0.5ck.r29010/85547
type: file
pred: 4m0.5ck.r28926/26801
count: 270
text: 29010 18497 1669 175180 4278fb78d051586091dfee4383ad7605
props: 26905 58059 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/server/savegame2.c
copyroot: 15280 /trunk

id: wi.5ck.r29010/85798
type: file
pred: wi.5ck.r28866/15850
count: 173
text: 29010 2650 869 24822 ab18f2b0487e53a94cea828722e4471b
props: 10956 5973 111 0 f29fdd85bcdac27e7106c1e33b0399d1
cpath: /trunk/server/sanitycheck.c
copyroot: 15280 /trunk

id: 4i.5ck.r29010/86046
type: file
pred: 4i.5ck.r28682/15107
count: 570
text: 29010 39235 613 147236 33b7268e472b71101cf84d766208517e
props: 10955 1971 112 0 e17e3e5087e98ab1d6f041bdc6ae85ee
cpath: /trunk/server/cityturn.c
copyroot: 15280 /trunk

id: 4m0.5ql.r29010/86293
type: file
pred: 4m0.5ql.r28928/7894
count: 281
text: 29010 22615 1883 243131 2b1ac76037a4f06e20628b3fd37e2fb5
props: 26905 58059 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/server/savegame3.c
copyroot: 27478 /trunk/server/savegame3.c

id: 4g.5ck.r29010/86562
type: file
pred: 4g.5ck.r28926/27570
count: 596
text: 29010 45946 4095 109828 920fd4cbc71cd5cb6e537f4169dbe3ef
props: 10971 452 112 0 14688860b403b675ea6c3d1b6f5d2330
cpath: /trunk/server/citytools.c
copyroot: 15280 /trunk

id: 4h.5ck.r29010/86810
type: file
pred: 4h.5ck.r28168/37943
count: 94
text: 29010 745 185 4477 9f160330c132420b54e419bfc61f570e
props: 10806 7948 111 0 10d822456e37f81dabb45dad0c15b842
cpath: /trunk/server/citytools.h
copyroot: 15280 /trunk

id: 18.5ck.r29010/87053
type: file
pred: 18.5ck.r28969/29400
count: 643
text: 29010 20195 1737 124108 637dc488af78cbb139a064989d162ebf
props: 11060 7742 112 0 090627d3849ce880ce4f29c1c260669f
cpath: /trunk/server/unithand.c
copyroot: 15280 /trunk

id: vl.5ck.r29010/87301
type: file
pred: vl.5ck.r28908/20325
count: 676
text: 29010 45025 732 159339 f73502d1d30118feab740412e8a27f07
props: 11092 74 112 0 de3988801a325e2d7d51fcbc7209a255
cpath: /trunk/server/savegame.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 5q.5ck.r28427/16272
K 13
actiontools.c
V 24
file 1p83.5ck.r28973/337
K 13
actiontools.h
V 26
file 1p86.5ck.r28427/15610
K 8
advisors
V 24
dir 4n2.5ck.r28926/26560
K 9
aiiface.c
V 25
file 4gm.5ck.r26905/55786
K 9
aiiface.h
V 25
file 4gn.5ck.r26905/56374
K 9
animals.c
V 25
file vnk.5ck.r26905/62972
K 9
animals.h
V 25
file vnm.5ck.r26905/63257
K 6
auth.c
V 25
file 39c.5ck.r20274/32101
K 6
auth.h
V 25
file 39d.5ck.r18977/19170
K 11
barbarian.c
V 23
file lw.5ck.r28605/1218
K 11
barbarian.h
V 23
file lx.5ck.r28605/1460
K 14
citizenshand.c
V 25
file 6mz.5ck.r26905/56079
K 14
citizenshand.h
V 25
file 6n0.5ck.r26905/56662
K 10
cityhand.c
V 22
file 10.5ck.r28601/316
K 10
cityhand.h
V 23
file 4f.0.r13297/423686
K 11
citytools.c
V 24
file 4g.5ck.r29010/86562
K 11
citytools.h
V 24
file 4h.5ck.r29010/86810
K 10
cityturn.c
V 24
file 4i.5ck.r29010/86046
K 10
cityturn.h
V 24
file 4j.5ck.r24742/16670
K 11
civserver.c
V 24
file 4k.5ck.r28075/17421
K 10
commands.c
V 26
file 2ly.5ck.r27912/171920
K 10
commands.h
V 25
file 2lz.5ck.r28012/47664
K 13
connecthand.c
V 25
file 2dw.5ck.r28908/19832
K 13
connecthand.h
V 24
file 2dx.5ck.r23606/2057
K 9
console.c
V 24
file dd.5ck.r24895/15492
K 9
console.h
V 23
file de.5ck.r19183/7918
K 10
diplhand.c
V 21
file 4m.5ck.r28629/83
K 10
diplhand.h
V 23
file 4n.5ck.r27517/8916
K 11
diplomats.c
V 24
file vz.5ck.r28853/27118
K 11
diplomats.h
V 23
file w0.5ck.r27461/1674
K 10
edithand.c
V 25
file 3bk.5ck.r27611/83395
K 10
edithand.h
V 25
file 4ez.5ck.r26905/64705
K 6
fcdb.c
V 25
file 6l3.5ck.r26905/56956
K 6
fcdb.h
V 25
file 6l4.5ck.r26905/57239
K 10
gamehand.c
V 23
file 4o.5ck.r27042/1951
K 10
gamehand.h
V 24
file 4p.5ck.r26564/23149
K 9
generator
V 23
dir 2me.5ck.r28863/2257
K 10
handchat.c
V 23
file 4q.5ck.r25915/6654
K 10
handchat.h
V 24
file dj.5ck.r18270/28229
K 9
maphand.c
V 24
file 13.5ck.r28905/33465
K 9
maphand.h
V 23
file 14.5ck.r24759/3742
K 6
meta.c
V 24
file 4s.5ck.r28853/27364
K 6
meta.h
V 23
file 4t.5ck.r27204/3095
K 6
mood.c
V 26
file 112c.5ck.r26905/63547
K 6
mood.h
V 26
file 112e.5ck.r26905/64129
K 8
notify.c
V 25
file 4i2.5ck.r26905/57814
K 8
notify.h
V 25
file 4i3.5ck.r26905/58681
K 9
plrhand.c
V 24
file 4u.5ck.r28710/11232
K 9
plrhand.h
V 24
file 4v.5ck.r28710/11476
K 8
report.c
V 24
file vi.5ck.r28694/12005
K 8
report.h
V 24
file vj.5ck.r24891/20006
K 10
rscompat.c
V 26
file 1kte.5ck.r28969/29152
K 10
rscompat.h
V 26
file 1ktg.5ck.r28753/34226
K 10
rssanity.c
V 25
file hew.5ck.r28682/15354
K 10
rssanity.h
V 25
file hey.5ck.r26905/55500
K 9
ruleset.c
V 24
file 8w.5ck.r28908/20080
K 9
ruleset.h
V 23
file 8x.5ck.r28433/8364
K 13
sanitycheck.c
V 24
file wi.5ck.r29010/85798
K 13
sanitycheck.h
V 24
file wj.5ck.r28075/17176
K 12
savecompat.c
V 24
file qva.5ck.r28859/2841
K 12
savecompat.h
V 25
file qvc.5ck.r27279/35421
K 10
savegame.c
V 24
file vl.5ck.r29010/87301
K 10
savegame.h
V 24
file vm.5ck.r20758/19233
K 11
savegame2.c
V 25
file 4m0.5ck.r29010/85547
K 11
savegame2.h
V 25
file 4m1.5ck.r27478/65017
K 11
savegame3.c
V 25
file 4m0.5ql.r29010/86293
K 11
savegame3.h
V 25
file 4m1.5qm.r27478/64506
K 7
score.c
V 25
file 2eg.5ck.r25535/51502
K 7
score.h
V 24
file 2eh.5ck.r21929/6179
K 9
scripting
V 23
dir 31x.5ck.r28467/1243
K 8
sernet.c
V 23
file 15.5ck.r28351/8056
K 8
sernet.h
V 23
file 4y.5ck.r23685/5129
K 10
settings.c
V 25
file 2m0.5ck.r28908/19069
K 10
settings.h
V 24
file 2m1.5ck.r28747/6278
K 11
spacerace.c
V 24
file 9a.5ck.r25063/30975
K 11
spacerace.h
V 21
file 9b.0.r11338/1129
K 9
srv_log.c
V 25
file 15t.5el.r28853/27603
K 9
srv_log.h
V 25
file 15u.5em.r28012/47157
K 10
srv_main.c
V 24
file vg.5ck.r28908/18580
K 10
srv_main.h
V 24
file vh.5ck.r28908/18828
K 11
stdinhand.c
V 24
file 4z.5ck.r28908/19318
K 11
stdinhand.h
V 24
file 50.5ck.r26100/15471
K 11
techtools.c
V 23
file 33n.5ck.r28731/145
K 11
techtools.h
V 24
file 33o.5ck.r27058/2134
K 10
unithand.c
V 24
file 18.5ck.r29010/87053
K 10
unithand.h
V 24
file 19.5ck.r23027/66151
K 11
unittools.c
V 25
file 1a.5ck.r28596/111445
K 11
unittools.h
V 23
file 1b.5ck.r28377/6232
K 8
voting.c
V 25
file 4ex.5ck.r26905/57525
K 8
voting.h
V 25
file 4ey.5ck.r26905/58399
END
ENDREP
id: z.5ck.r29010/91709
type: dir
pred: z.5ck.r28973/4687
count: 5987
text: 29010 87546 4150 4150 1e589c65f601e03422650f9af58aca43
props: 23990 448 166 0 e5026e1cb18fe57b41417951bfac7b19
cpath: /trunk/server
copyroot: 15280 /trunk

PLAIN
K 9
ABOUT-NLS
V 24
file fu.5ck.r27270/69307
K 7
AUTHORS
V 24
file 5u.5ck.r22143/14016
K 7
COPYING
V 19
file 1h.0.r9643/400
K 9
ChangeLog
V 26
file 6l.5ck.r27473/7455495
K 7
INSTALL
V 21
file 6.5ck.r28848/292
K 11
Makefile.am
V 23
file 59.5ck.r28500/4398
K 4
NEWS
V 24
file 6m.5ck.r25634/30702
K 6
README
V 20
file 7.0.r4421/96382
K 2
ai
V 22
dir 8.5ck.r29010/85321
K 10
autogen.sh
V 23
file 12o.5ck.r27624/562
K 9
bootstrap
V 23
dir 2p5.5ck.r28958/2878
K 6
client
V 22
dir d.5ck.r29010/73653
K 6
common
V 22
dir p.5ck.r29010/81991
K 12
configure.ac
V 23
file 149.5ck.r29003/223
K 4
data
V 22
dir w.5ck.r29001/38845
K 12
dependencies
V 23
dir 2yu.5ck.r28829/5968
K 3
doc
V 22
dir k7.5ck.r28998/4186
K 10
fc_version
V 23
file 2lo.5en.r28974/112
K 11
gen_headers
V 24
dir 1hsw.5ck.r28586/5208
K 2
m4
V 23
dir 12p.5ck.r28882/5085
K 7
scripts
V 23
dir 2yo.5ck.r28716/5421
K 6
server
V 22
dir z.5ck.r29010/91709
K 5
tests
V 23
dir 2g9.5ck.r27783/1363
K 5
tools
V 23
dir 4pj.5js.r28995/2362
K 12
translations
V 23
dir t0a.5ck.r28955/2265
K 7
utility
V 23
dir 1c.5ck.r28757/10353
K 5
win32
V 23
dir 2eu.5ck.r28347/2148
END
ENDREP
id: 3.5ck.r29010/93068
type: dir
pred: 3.5ck.r29006/19935
count: 19521
text: 29010 91940 1115 1115 eeef5bd0a778c9a4be3ca15f89ab801b
props: 28036 14655 292 0 9e1d5de0253c723466868990c52c129f
cpath: /trunk
copyroot: 15280 /trunk

PLAIN
K 8
branches
V 20
dir 1.0.r29009/13870
K 4
tags
V 19
dir 2.0.r28528/6475
K 5
trunk
V 22
dir 3.5ck.r29010/93068
K 7
website
V 21
dir 3ge.0.r22980/2263
END
ENDREP
id: 0.0.r29010/93463
type: dir
pred: 0.0.r29009/14194
count: 29010
text: 29010 93296 154 154 62fcfcf9c3f7a850a8ea54d28fb33850
cpath: /
copyroot: 0 /

170.5l8.t29009-1 modify true false /trunk/client/gui-sdl2/citydlg.c

4h.5ck.t29009-1 modify true false /trunk/server/citytools.h

33l.5ck.t29009-1 modify true false /trunk/common/aicore/caravan.c

3q.5ck.t29009-1 modify true false /trunk/common/city.h

156e.5ck.t29009-1 modify true false /trunk/ai/default/daieffects.c

wi.5ck.t29009-1 modify true false /trunk/server/sanitycheck.c

2wq.5ck.t29009-1 modify true false /trunk/common/requirements.c

siq.5ck.t29009-1 modify true false /trunk/common/metaknowledge.c

18.5ck.t29009-1 modify true false /trunk/server/unithand.c

4m0.5ck.t29009-1 modify true false /trunk/server/savegame2.c

4m0.5ql.t29009-1 modify true false /trunk/server/savegame3.c

170.5ck.t29009-1 modify true false /trunk/client/gui-sdl/citydlg.c

z4.5ck.t29009-1 modify true false /trunk/client/citydlg_common.c

4i.5ck.t29009-1 modify true false /trunk/server/cityturn.c

mb.5ck.t29009-1 modify true false /trunk/client/cityrepdata.c

n.5ck.t29009-1 modify true false /trunk/client/packhand.c

bf8.5ck.t29009-1 modify true false /trunk/common/traderoutes.c

bfa.5ck.t29009-1 modify true false /trunk/common/traderoutes.h

z2.5ck.t29009-1 modify true false /trunk/client/mapview_common.c

9w.5ck.t29009-1 modify true false /trunk/client/gui-xaw/citydlg.c

vl.5ck.t29009-1 modify true false /trunk/server/savegame.c

20.5gj.t29009-1 modify true false /trunk/ai/default/aicity.c

4g.5ck.t29009-1 modify true false /trunk/server/citytools.c

q.5ck.t29009-1 modify true false /trunk/common/city.c


93463 93613
