DELTA 19087 0 287
SVN  „ë/„ëiL „‡ €L ä„‡dv_data_phase_init(cplayer, TRUE);
  CALL_PLR_AI_FUNC(phase_begin, cplayer, ENDREP
DELTA 18872 447 789
SVN  Šl’?†> †, ™ „E†' H €ƒ+ H €‚y/* ai */
#include "aidata
***
  Initialize player for use with default AI. Note that this is called
  for all players, not just for those default AI is controlling.
**************************************************************************/
void ai_player_alloc(struct player *pplayer)
{
  struct ai_plr *player_data = fc_calloc(1, sizeof(struct ai_plr));

  player_set_ai_data(pplayer, default_ai_get_self(), player_data);

  ai_data_init(pplayer);
}

***
  Free player from use with default AI.
**************************************************************************/
void ai_player_free(struct player *pplayer)
{
  struct ai_plr *player_data = def_ai_player_data(pplayer);

  ai_data_close(pplayer);

  if (player_data != NULL) {
    player_set_ai_data(pplayer, default_ai_get_self(), NULL);
    FC_FREE(player_data);
  }
}
ENDREP
DELTA 18872 1249 323
SVN  ÜzÜ{
 Æ ‚ –wÆdvENDREP
DELTA 19078 561 1728
SVN  ‚ñl‚ño; ž` ‘ ‚ÒTžoªdv_data *ai = advdv_data_get(pplayer)->wants_no_science;
}
ENDREP
DELTA 19055 3386 126
SVN  ÚÚhˆ$ ‘L ‚ ‹;‘Q‚ „J‚ †¡`‚ ›f§s¡ ‚mÃ|‘ Œ3Æx€k ßÔ€X …|´€‚| G ¢ v½`€H ˆÀ(¡ ‡5Èd Iž@€ ‡Ñl‘ Ùdvdvdvdvdv_data *ai = pplayer->server.advdv_data *ai = advdv_data_phase_init(struct player *pplayer, bool is_new_phase)
{
  struct adv_data *ai = pplayer->server.advdv_data_phase_done(struct player *pplayer)
{
  struct adv_data *ai = pplayer->server.advdv_data *adv_data_get(struct player *pplayer)
{
  struct adv_data *adv = pplayer->server.adv;

  fc_assert_ret_val(adv != NULL, NULL);

  if (adv->num_continents != map.num_continents
      || adv->num_oceans != map.num_oceans) {
    /* we discovered more continents, recalculate! */
    adv_data_phase_done(pplayer);
    adv_data_phase_init(pplayer, FALSE);
  }
  return adv;
}

****
  Allocate memory for advisordv_data_init(struct player *pplayer)
{
  struct adv_data *ai;

  if (pplayer->server.adv == NULL) {
    pplayer->server.adv = fc_calloc(1, sizeof(*pplayer->server.adv));
  }
  ai = pplayer->server.advdv_data *ai = pplayer->server.advdvisor data.
*/
void adv_data_close(struct player *pplayer)
{
  struct adv_data *ai = pplayer->server.adv;

  fc_assert_ret(NULL != ai);

  advdv_data *ai = advENDREP
DELTA 19055 3537 814
SVN  „’„’#(U Ë ‘ ð$Ë.‘ (»a‘ °"Ë‘ †XûI‘ iƒ‚0dv_data *ai = advdv_data *ai = advdv_data *ai = advdv_data *ai = advdv_data *ai = advENDREP
DELTA 18955 11168 293
SVN  ´xµ  ”) š ›i”A‚ X°+€u k±uŒ ‚²jdv_data {
  /* Whether advdvdv_data_close(struct player *pplayer);

void adv_data_phase_init(struct player *pplayer, bool is_new_phase);
void advdv_data *advENDREP
DELTA 18872 61434 1326
SVN  –š\&…N ‡3 €F ƒ^‡7€‚ †&‹­ r‘*€‚	 1“ 4”g»dvmilitary.h"
#include "aicity.h"
#include "aidata.h"
#include "aiferrplayer_alloc = ai_player_alloc;
  ai->funcs.player_free = ai_player_free;
  ai->funcs.gained_control = assess_danger_player;
  ai->funcs.split_by_civil_war = assess_danger_player;

  ai->funcs.phase_begin = ai_data_phase_begin;
  ai->funcs.phase_finished = ai_data_phase_finished  ai->funcs.unit_created = aiferry_init_ferrytask = ai_unit_new_adv_task;

  ai->funcs.unit_save = ai_unit_save;
  ai->funcs.unit_load = ai_unit_load;

  ai->funcs.auto_settler_init = ai_auto_settler_init;
  ai->funcs.auto_settler_run = ai_auto_settler_run;
  ai->funcs.auto_settler_free = ai_auto_settler_free
  ai->funcs.consider_dangerous = ai_consider_dangerous;
}
ENDREP
DELTA 18950 5576 11360
SVN  ‚‰‚‰$ ™* ‚ £™+‘ ï|¼W‘ Ü8¬bdvdv_data *ai = advdv_data *ai = advENDREP
DELTA 19033 3673 622
SVN  ÅFÅH ª5 ‘ ›ªDdv_data *ai = advENDREP
DELTA 19087 4598 573
SVN  ‡“M#‹ …\ µ G €x G €& G €‚d G €‚= G €‚/* ai */
#include "aiplayer.h"

#include "aidata.h"

******
  Initialize ai data structure
****************************************************************************/
void ai_data_init(struct player *pplayer)
{
  struct ai_plr *ai = def_ai_player_data(pplayer);

  ai->phase_initialized = FALSE;
}

******
  Deinitialize ai data structure
****************************************************************************/
void ai_data_close(struct player *pplayer)
{
}

******
  Make and cache lots of calculations needed for other functions.
****************************************************************************/
void ai_data_phase_begin(struct player *pplayer, bool is_new_phase)
{
  struct ai_plr *ai = def_ai_player_data(pplayer);

  if (ai->phase_initialized) {
    return;
  }

  ai->phase_initialized = TRUE;
}

******
  Clean up ai data after phase finished.
****************************************************************************/
void ai_data_phase_finished(struct player *pplayer)
{
  struct ai_plr *ai = def_ai_player_data(pplayer);

  if (!ai->phase_initialized) {
    return;
  }

  ai->phase_initialized = FALSE;
}

****
  Return a pointer to our data
**************************************************************************/
struct ai_plr *ai_plr_data_get(struct player *pplayer)
{
  struct ai_plr *data = def_ai_player_data(pplayer);

  fc_assert_ret_val(data != NULL, NULL);

  return data;
}
ENDREP
DELTA 18969 0 18345
SVN  ü$ü*3 ´N ‘ ’´]‘ ž!Æ{‘ –yå+dv_data *ai = advdv_data *ai = advdv_data *ai = advENDREP
DELTA 19033 4324 682
SVN  ƒ™9ƒ™=" ‚Ìs ‘ š‚Í‘ ²‚çdv_data *ai = advdv_data *ai = advENDREP
DELTA 18844 2285 590
SVN  ¡¡$ †  •\†‚ …/›bstruct adv_data;dvENDREP
DELTA 19031 255 596
SVN  †  †    †   †  †m†Ž- ½9 ™ X„Á@ Žh¾@€j …À1Í<player_research *researchdvisor data.
     FIXME: Results are not used at all.
     Do we need this call for side effects? */
  advENDREP
DELTA 19087 1221 576
SVN  †ˆ]
‚k …U €‚k…y/* utility */
#include "support.h"

struct player;

struct ai_plr
{
  bool phase_initialized;
};

void ai_data_init(struct player *pplayer);
void ai_data_close(struct player *pplayer);

void ai_data_phase_begin(struct player *pplayer, bool is_new_phase);
void ai_data_phase_finished(struct player *pplayer);

struct ai_plr *ai_plr_data_get(struct player *pplayer)ENDREP
DELTA 18976 15507 696
SVN  …„&…‚.8„ ¨P  ¶&¨k€V œtß#€H Â.ý# ¦"‚ÀR‹ ¼~‚ç	€t …„¥? ×T„¬Rdv_data_phase_init(pplayer, is_new_phase);
    CALL_PLR_AI_FUNC(phase_begin, pplayer, CALL_PLR_AI_FUNC(phase_finished, pplayer, pplayer);
      /* This has to be after new units have been built in case
       * adv_data_get() gets called for new unit leading to memory leak */
      advauth_handleFCDB
  if (!srvarg.auth_enabled) {
    con_write(C_COMMENT, _("This freeciv-server program has player "
                           "authentication support, but it's currently not "
                           "in use."));
  }
#endif /* HAVE_FCDBENDREP
DELTA 18954 0 13829
SVN  ‚Ÿ
‚Ä~ƒÖ\ ‰N „ ‘V‰=€…b ‚w›€‰ ‰C£€… Pí@ P°@€G ƒ9²=€ g·€‚ ƒ	»= ¿x€ -Áu€F `Õ/‰ xÖ€M @×Y€m Ú€& ÛW‰ pÜd€Q EÝY€ƒp ‚ã™ våT™ ‚^ç€v Pí@Š C° €v Pí@Š C° €ƒ" Pí@Š C° €u G Ž C° €…q G Ž C° €ƒ; {í?ˆ C°  ëc€} ‚Sí;€ Uí? ŠTñ*€†M Aþ Ÿ 9œ ;ƒ` :†>€i |ˆ€ ‡"‰}‘ „‘.Š ƒ1•G€] Ázš3‘ MÜ<€‚ G  „]Þw ‚ãk„ „Jæ „ }êN€T lù€O ƒ3úRš qþ!„ lÿš ƒq‚€€ƒu Sí@ ƒ‚…t„ •s‚‰goto
  int turn;     /* the turn the values were calculated */
};


struct tile_data_cache *tile_data_cache_new(void);
struct tile_data_cache *
  tile_data_cache_copy(const struct tile_data_cache *ptdc);
static void tile_data_cache_destroy(struct tile_data_cache *ptdc);

/* struct tdcache_hash. */
#define SPECHASH_TAG tile_data_cache
#define SPECHASH_KEY_TYPE int
#define SPECHASH_DATA_TYPE struct tile_data_cache *
#define SPECHASH_KEY_TO_PTR FC_INT_TO_PTR
#define SPECHASH_PTR_TO_KEY FC_PTR_TO_INT
#define SPECHASH_DATA_FREE tile_data_cache_destroy
#include "spechash.h"

struct ai_settler {
  struct tile_data_cache_hash *tdc_hash;

#ifdef DEBUG
  struct {
    int hit;
    int old;
    int miss;
    int save;
  } cache;
#endif /* DEBUG
  struct {
    struct tile_data_cache *tdc;  /* values of city center; link to the data
                                   * in tdc_hash. */
  } city_center;

  struct {
    struct tile *tile;            /* best other tile */
    int cindex;                   /* city-relative index for other tile */
    struct tile_data_cache *tdc;  /* value of best other tile; link to the
                                   * data in tdc_hash. */
  } best_other;

  int remaining;          /* value of all other tiles */

  /* Save the result for print_citymap(). */
  struct tile_data_cache_hash *tdc_hash;

  int city_radius_sq;     /* current squared radius of the city */
};

static const struct tile_data_cache *tdc_plr_get(struct player *plr,
                                                 int tindex);
static void tdc_plr_set(struct player *plr, int tindex,
                        const struct tile_data_cache *tdcache);

static struct cityresult *cityresult_new(struct tile *ptile);
static void cityresult_destroy(struct cityresult *result);

static struct cityresult *cityresult_fill(struct player *pplayer,
                                          struct tile *ptilestruct tile *ptile)
{
  struct cityresult *result;

  fc_assert_ret_val(ptile != NULL, NULL);

  result = fc_calloc(1, sizeof(*result));
  result->tile = ptile;
  result->total = 0;
  result->result = -666;
  result->corruption = 0;
  result->waste = 0;
  result->overseas = FALSE;
  result->virt_boat = FALSE;

  /* city centre */
  result->city_center.tdc = NULL;

  /* first worked tile */
  result->best_other.tile = NULL;
  result->best_other.tdc = NULL;
  result->best_other.cindex = 0;

  result->remaining = 0;
  result->tdc_hash = tile_data_cache_hash_new();
  result->city_radius_sq = game.info.init_city_radius_sq;

  return resulttdc_hash != NULL) {
      tile_data_cache_hash_destroy(result->tdc_hashstruct cityresult *cityresult_fill(struct player *pplayer,
                                          struct tile *ptile)
{
  struct city *pcity = tile_city(pdv_data *ai = adv_data_get(pplayer);
  struct cityresult *result;

  fc_assert_ret_val(ai != NULL, NULL);
  fc_assert_ret_val(ptile != NULL, NULL)

  pplayer->government = ai->goal.govt.gov;

  /* Create a city result and set default values. */
  result = cityresult_new(ptile)    int reserved = citymap_read(ptile);
    bool city_center = (result->tile == ptile); /*is_city_center()*/
    struct tile_data_cache *ptdc;ptdc = tile_data_cache_new();
      ptdc->shield = 0;
      ptdc->trade = 0;
      ptdc->food = 0;
      ptdc->sum = 0;
      ptdc->reserved = reserved;
      /* ptdc->turn was set by tile_data_cache_new(). */
    } else {
      const struct tile_data_cache *ptdc_hit = tdc_plr_get(pplayer, tindex);
      if (!ptdc_hit || city_center) {
        /* We cannot read city center from cache */
        ptdc = tile_data_cache_new();

        /* Food */
        ptdc->food = city_tile_output(pcity, ptile, FALSE, O_FOOD);
        /* Shields */
        ptdc->shield = city_tile_output(pcity, ptile, FALSE, O_SHIELD);
        /* Trade */
        ptdc->trade = city_tile_output(pcity, ptile, FALSE, O_TRADE);
        /* Weighted sum */
        ptdc->sum = ptdc->food * ai->food_priority
                    + ptdc->trade * ai->science_priority
                    + ptdc->shield * ai->shield_priority;
        /* Balance perfection */
        ptdc->sum *= PERFECTION / 2;
        if (ptdc->food >= 2) {
          ptdc->sum *= 2; /* we need this to grow */
        }

        if (!city_center && virtual_city) {
          /* real cities and any city center will give us spossibly
           * skewed results */
          tdc_plr_set(pplayer, tindex, tile_data_cache_copy(ptdc));
        }
      } else {
        ptdc = tile_data_cache_copy(ptdc_hit);
      }
    }

    /* Save reservation status for debugging. */
    ptdc->reserved = reserved;

    /* Avoid crowdedness, except for city center. */
    if (ptdc->sum > 0) {
      ptdc->sum -= MIN(reserved * GROWTH_PRIORITY, ptdc->sum - 1);
    }

    /* Calculate city center and best other than city center */
    if (city_center) {
      /* Set city center. */
      result->city_center.tdc = ptdc;
    } else if (!result->best_other.tdc) {
      /* Set best other tile. */
      result->best_other.tdc = ptdc;
      result->best_other.tile = ptile;
      result->best_other.cindex = cindex;
    } else if (ptdc->sum > result->best_other.tdc->sum.tdc->sum.tdc = ptdc;
      result->best_other.tile = ptile;
      result->best_other.ptdc->sum / GROWTH_POTENTIAL_DEEMPHASIS;
    }

    tile_data_cache_hash_replace(result->tdc_hash, cindex, ptdc);
  } city_tile_iterate_index_end;

  /* We need a city center. */
  fc_assert_ret_val(result->city_center.tdc != NULL, NULL).tdc->sum
                    + (result->best_other.tdc != NULL
                       ? result->best_other.tdc->sum : 0);
  } else if (result->best_other.tdc != NULL.tdc->sum result;
  }

  /* Now we have a valid city center as well as best other tile. */int shield = result->city_center.tdc->shield
                 + result->best_other.tdc->shield;
    result->waste = ai->shield_priority
                    * city_waste(pcity, O_SHIELD, shield);

    if (game.info.fulltradesize == 1) {
      int trade = result->city_center.tdc->trade
                  + result->best_other.tdc->trade;
      result->corruption = ai->science_priority
                           * city_waste(pcity, O_TRADE, trade);
    } else {
      result->corruption = 0;
    } result->best_other.tdc-> result->best_other.tdc->_ret_val(result->city_center.tdc->sum >= 0, NULL);
  fc_assert_ret_val(result->remaining >= 0, NULL);

  return result***
  ...
**********/
struct tile_data_cache *tile_data_cache_new(void)
{
  struct tile_data_cache *ptdc_copy = fc_calloc(1, sizeof(*ptdc_copy));

  /* Set the turn the tile data cache was created. */
  ptdc_copy->turn = game.info.turn;

  return ptdc_copy***
  ...
**********/
struct tile_data_cache *
  tile_data_cache_copy(const struct tile_data_cache *ptdc)
{
  struct tile_data_cache *ptdc_copy = tile_data_cache_new();

  fc_assert_ret_val(ptdc, NULL);

  ptdc_copy->shield = ptdc->shield;
  ptdc_copy->trade = ptdc->trade;
  ptdc_copy->food = ptdc->food;

  ptdc_copy->sum = ptdc->sum;
  ptdc_copy->reserved = ptdc->reserved;
  ptdc_copy->turn = ptdc->turn;

  return ptdc_copy***
  ...
**********/
static void tile_data_cache_destroy(struct tile_data_cache *ptdc)
{
  if (ptdc) {
    free(ptdc);
  }
}

*******
  ...
**********/
static const struct tile_data_cache *tdc_plr_get(struct player *plr,
                                                 int tindex)
{
  struct adv_data *ai = adv_data_get(plr);

  fc_assert_ret_val(ai != NULL, NULL);
  fc_assert_ret_val(ai->settler != NULL, NULL);
  fc_assert_ret_val(ai->settler->tdc_hash != NULL, NULL);

  struct tile_data_cache *ptdc;

  tile_data_cache_hash_lookup(ai->settler->tdc_hash, tindex, &ptdc);

  if (!ptdc) {
#ifdef DEBUG
    ai->settler->cache.miss++;
#endif /* DEBUG */
    return NULL;
  } else if (ptdc->turn != game.info.turn) {
#ifdef DEBUG
    ai->settler->cache.old++;
#endif /* DEBUG */
    return NULL;
  } else {
#ifdef DEBUG
    ai->settler->cache.hit++;
#endif /* DEBUG */
    return ptdc;
  }
}

*******
  ...
**********/
static void tdc_plr_set(struct player *plr, int tindex,
                         const struct tile_data_cache *ptdc)
{
  struct adv_data *ai = adv_data_get(plr);

  fc_assert_ret(ai != NULL);
  fc_assert_ret(ai->settler != NULL);
  fc_assert_ret(ai->settler->tdc_hash != NULL);
  fc_assert_ret(ptdc)

#ifdef DEBUG
    ai->settler->cache.save++;
#endif /* DEBUG */

  tile_data_cache_hash_replace(ai->settler->tdc_hash, tindex, ptdcstarve.
_center.tdc->food
          + (result->best_other.tdc ? result->best_other.tdc->food
                                    : 0)_center.tdc->shield
          + (result->best_other.tdc ? result->best_other.tdc->shield
                                    : 0) == 0reserved, *city_map_food, *city_map_shield, *city_map_trade;
  int tiles = city_map_tiles(cr->city_radius_sq);
  struct tile_data_cache *ptdc;

  fc_assert_ret(cr->tdc_hash != NULL);
  fc_assert_ret(tiles > 0);

  city_map_reserved = fc_calloc(tiles, sizeof(*city_map_reserved));
  city_map_food = fc_calloc(tiles, sizeof(*city_map_food));
  city_map_shield = fc_calloc(tiles, sizeof(*city_map_shield));
  city_map_trade = fc_calloc(tiles, sizeof(*city_map_trade));

  city_map_iterate(cr->city_radius_sq, cindex, x, y) {
    tile_data_cache_hash_lookup(cr->tdc_hash, cindex, &ptdc);
    fc_assert_ret(ptdc);
    city_map_reserved[cindex] = ptdc->reserved;
    city_map_food[cindex] = ptdc->reserved;
    city_map_shield[cindex] = ptdc->reserved;
    city_map_trade[cindex] = ptdc->reserved;
  } city_map_iterate_end;

  /* print reservations */reserved);

  /*  print food */food);

  /* print shield */shield);

  /* print trade */trade);

  free(city_map_reserved);
  free(city_map_food);
  free(city_map_shield);
  free(city_map_trade
           cr->city_center.tdc->sum, cr->best_other.tile->x,
           cr->best_other.tile->y, cr->best_other.cindex,
           cr->best_other.tdc->sumdv_data *ai = advadv_dangerfill(pplayer, ptile); /* Burn CPU, burn! */
  if (!cr) {
    /* Failed to find a good spot */dv_data *ai = adv == NULL);

  ai->settler = fc_calloc(1, sizeof(*ai->settler));
  ai->settler->tdc_hash = tile_data_cache_hash_new();

#ifdef DEBUG
  ai->settler->cache.hit = 0;
  ai->settler->cache.old = 0;
  ai->settler->cache.miss = 0;
  ai->settler->cache.save = 0;
#endif /* DEBUG */
}

def_ai_unit_data(punit)->tasktasktaskdv_unit_new_task(punit, AUT_BUILD_CITY, result->tile);
      if (result->best_other.zen of the city is working. */
        citymap_reserve_tile(result->best_other.dv_unit_new_task(punit, AUtaskdv_unit_new_task(punit, AUdv_data *ai = adv_data_get(pplayer);

  fc_assert_ret(ai != NULL);

#ifdef DEBUG
  log_debug("[aisettler cache for %s] save: %d, miss: %d, old: %d, hit: %d",
            player_name(pplayer), ai->settler->cache.save,
            ai->settler->cache.miss, ai->settler->cache.old,
            ai->settler->cache.hit);
#endif /* DEBUG */

  if (ai->settler) {
    if (ai->settler->tdc_hash) {
      tile_data_cache_hash_destroy(ai->settler->tdc_hash);
    }
    free(ai->settler);
  }
  ai->settler = NULLtaskENDREP
DELTA 19078 4201 3901
SVN  ¨Aª& Š! €W yŠ€O ZŠgplayer_alloc)(struct player *pplayer);
    void (*player_free)(struct player *pplayer);phase_begin)(struct player *pplayer, bool new_phase);
    void (*phase_finishedENDREP
DELTA 17621 42474 2178
SVN  ©_¬Is… Š| ž ^‹#§ ŒŒ|€p ƒ™a€@ (¼ bžf‡ T Hˆ †{¢(… –_©'« >À$ˆ ŒÐjˆ †Üˆ ¡iã© Ž?„{‚ I“;€@ ˆ:”€A ŠGœ?€a ‚;§$server */
#include "aiiface.h"/* server/advisors */
#include "advdatasz_strlcpy(barbarians->name,
                   pick_random_player_name(nation_of_player(barbarians)));
        , FC_AI_DEFAULT_NAME);
  if (!barbarians) {
    return NULL;
  }sz_strlcpy(barbarians->name, pick_random_player_name(nation)server.ntrolledall_cBARBS_DISABLED == game.server.barbarianrateunit_canunit_canunit_canfc_assert(1 < game.server.barbarianrate);dv    CALL_PLR_AI_FUNC(phase_begin, barbarians, barbarians, TRUE);CALL_PLR_AI_FUNC(phase_finished, barbarians, barbarians);
    advBARBS_DISABLED == game.server.barbarianrate
      || BARBS_HUTS_ONLY == game.server.barbarianrateENDREP
DELTA 18136 1578 18019
SVN  ‚á‚à9ƒN ‰+ › ‘	‰G’ ‚šb’ ƒ"‚ + ( „d¡X’ ‚%¦N’ ƒh©‚ “"¬n‘ ‚cÀˆ ¡Ã‚ Cä€" „ç(‚ ‚5ë9˜ ·2í{‡ „6¥7‡ ŽY©wŠ "¸C ‚JÈf œ Ë1‘ ˜|ç` Å‚€]€F ƒ
‚Æ9¡ ‚Ê •f‚Ë player.h"
#include "aitoolsmove_costs_iteratemove_costs_iteratedvmove_costs_iteratemove_costs_iteratedvdv_data *ai = advNULL != dvUMT_LAND:
         return ai->stats.units.land;
     case UMT_SEA:
       return ai->stats.units.sea;
     case UMT_BOTH:
       return ai->stats.units.amphibiousdvunit_move_type_invalid()UMT_SEAUMT_SEACITY_IMAGEdv_data *ai = advdv_data *ai = adv_data_get(pplayer);
  struct city *wonder_city = game>= wonder_city->surplus[O_SHIELD]ENDREP
DELTA 19087 3123 435
SVN  ô[ô\
 ¼ ‚ ¸U¼dvENDREP
DELTA 19033 19710 314
SVN  ‚¹‚¹<] ”A ‘ “”P‘ „4¨^‘ ‚>­!‚ ƒr¯`‘ ˆK³a‚ „7¼-‚ ƒ$Àe‘ šsÄ‚ Ù{ßdv_data *ai = advdv_data *ai = advdv_data *ai = advdvdv_data *ai = advdvdvdv_data *ai = advdvENDREP
DELTA 18872 65318 129
SVN  æpæv& Ž& ‚ ™.Ž'‚ *§V‘ ”TÅ‘ Œ~Ùrdvdvdv_data *ai = advdv_data *ai = advENDREP
id: vg.5ck.r19101/20385
type: file
pred: vg.5ck.r18977/15063
count: 534
text: 19101 6152 611 82222 39c399903171fba925994a34f8233367
props: 11057 12128 112 0 85dbe778568e34751643d476c23a0d7c
cpath: /trunk/server/srv_main.c
copyroot: 15280 /trunk

id: 15o.5eq.r19101/20631
type: file
pred: 15o.5eq.r19087/5184
count: 126
text: 19101 1182 1178 27923 4124794ee343ca6c3d073e991fb4783a
props: 11074 729 111 0 995497afc7013c9f20b8d3ebef449f37
cpath: /trunk/server/advisors/advdata.c
copyroot: 17700 /trunk/server/advisors/advdata.c

id: 50r.5ck.r19101/20911
type: file
pred: 50r.5ck.r18983/39207
count: 8
text: 19101 19370 633 45113 bd30d8fb81a5e742fe18639aac57ef5d
cpath: /trunk/server/advisors/advbuilding.c
copyroot: 15280 /trunk

id: 15p.5er.r19101/21112
type: file
pred: 15p.5er.r19087/5462
count: 54
text: 19101 2554 196 6784 21d7887fe263b800749e8368fe1fc2de
props: 11074 1074 111 0 85fb436b243ad384649068d2f55bfd08
cpath: /trunk/server/advisors/advdata.h
copyroot: 17700 /trunk/server/advisors/advdata.h

PLAIN
K 11
Makefile.am
V 24
file 4n3.5ck.r18949/3421
K 13
advbuilding.c
V 25
file 50r.5ck.r19101/20911
K 13
advbuilding.h
V 25
file 50s.5ck.r18136/21838
K 9
advdata.c
V 25
file 15o.5eq.r19101/20631
K 9
advdata.h
V 25
file 15p.5er.r19101/21112
K 9
advgoto.c
V 25
file 4p5.5ck.r19078/11498
K 9
advgoto.h
V 25
file 4p6.5ck.r19078/11693
K 10
advtools.c
V 24
file 4of.5ck.r17647/8273
K 10
advtools.h
V 24
file 4og.5ck.r17647/7632
K 14
autoexplorer.c
V 25
file 2lj.5eo.r18383/99692
K 14
autoexplorer.h
V 24
file 2lk.5ep.r17685/7079
K 14
autosettlers.c
V 24
file 7s.5ei.r19033/20052
K 14
autosettlers.h
V 24
file 7t.5ej.r19033/20339
K 12
infracache.c
V 23
file 4pw.5ck.r18851/739
K 12
infracache.h
V 25
file 4px.5ck.r18496/12382
END
ENDREP
id: 4n2.5ck.r19101/22123
type: dir
pred: 4n2.5ck.r19087/6470
count: 43
text: 19101 21390 720 720 0a0329fffc65bf198449f3c558b2e801
props: 17871 2121 53 0 a527b216afb99426b763a1e313c531be
cpath: /trunk/server/advisors
copyroot: 15280 /trunk

id: lw.5ck.r19101/22363
type: file
pred: lw.5ck.r18843/7802
count: 152
text: 19101 18550 790 22089 57bea394d32cb286886969e742ed0b11
props: 11004 1858 112 0 0ba48eb7b1f123775dc0e292f9b3ab64
cpath: /trunk/server/barbarian.c
copyroot: 15280 /trunk

id: 4m0.5ck.r19101/22609
type: file
pred: 4m0.5ck.r19031/882
count: 69
text: 19101 5528 184 202541 471a6bcba93e603b88a1fb531495be62
cpath: /trunk/server/savegame2.c
copyroot: 15280 /trunk

id: 4u.5ck.r19101/22798
type: file
pred: 4u.5ck.r19087/6955
count: 555
text: 19101 0 102 79337 7f7029637774f15dfb18885c4097cf04
props: 11057 14272 112 0 ab87823e529bcaae2ff952f918d53839
cpath: /trunk/server/plrhand.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 23
file 5q.5ck.r18991/3621
K 8
advisors
V 24
dir 4n2.5ck.r19101/22123
K 9
aiiface.c
V 23
file 4gm.5ck.r18921/516
K 9
aiiface.h
V 25
file 4gn.5ck.r18899/20936
K 6
auth.c
V 25
file 39c.5ck.r18977/18927
K 6
auth.h
V 25
file 39d.5ck.r18977/19170
K 11
barbarian.c
V 24
file lw.5ck.r19101/22363
K 11
barbarian.h
V 24
file lx.5ck.r18054/18407
K 10
cityhand.c
V 23
file 10.5ck.r18581/9188
K 10
cityhand.h
V 23
file 4f.0.r13297/423686
K 11
citytools.c
V 23
file 4g.5ck.r18987/2014
K 11
citytools.h
V 24
file 4h.5ck.r18270/28958
K 10
cityturn.c
V 24
file 4i.5ck.r19012/10029
K 10
cityturn.h
V 24
file 4j.5ck.r18660/18227
K 11
civserver.c
V 24
file 4k.5ck.r18977/14819
K 11
civserver.h
V 21
file 4l.0.r2805/33121
K 10
commands.c
V 25
file 2ly.5ck.r18976/29027
K 10
commands.h
V 25
file 2lz.5ck.r18976/29273
K 13
connecthand.c
V 25
file 2dw.5ck.r18977/18496
K 13
connecthand.h
V 25
file 2dx.5ck.r18942/25217
K 9
console.c
V 23
file dd.5ck.r18091/5268
K 9
console.h
V 24
file de.5ck.r18054/16526
K 10
diplhand.c
V 24
file 4m.5ck.r19055/10486
K 10
diplhand.h
V 21
file 4n.0.r13421/6826
K 11
diplomats.c
V 21
file vz.5ck.r18848/53
K 11
diplomats.h
V 24
file w0.5ck.r18384/65844
K 10
edithand.c
V 24
file 3bk.5ck.r19025/6445
K 10
edithand.h
V 26
file 4ez.5ck.r18452/115476
K 6
fcdb.c
V 25
file 6l3.5ck.r18977/18744
K 6
fcdb.h
V 25
file 6l4.5ck.r18976/33384
K 10
gamehand.c
V 24
file 4o.5ck.r18854/28291
K 10
gamehand.h
V 24
file 4p.5ck.r15698/24111
K 9
generator
V 23
dir 2me.5ck.r19019/2694
K 11
ggzserver.c
V 25
file 39a.5ck.r18471/14634
K 11
ggzserver.h
V 25
file 39b.5bk.r15001/48999
K 10
handchat.c
V 25
file 4q.5ck.r18362/122188
K 10
handchat.h
V 24
file dj.5ck.r18270/28229
K 9
maphand.c
V 22
file 13.5ck.r19017/381
K 9
maphand.h
V 23
file 14.5ck.r18740/8378
K 6
meta.c
V 22
file 4s.5ck.r18985/388
K 6
meta.h
V 24
file 4t.5ck.r18054/19078
K 8
notify.c
V 23
file 4i2.5ck.r18493/146
K 8
notify.h
V 24
file 4i3.5ck.r18282/3660
K 9
plrhand.c
V 24
file 4u.5ck.r19101/22798
K 9
plrhand.h
V 23
file 4v.5ck.r18945/6426
K 8
report.c
V 25
file vi.5ck.r18308/133485
K 8
report.h
V 24
file vj.5ck.r18270/29203
K 9
ruleset.c
V 23
file 8w.5ck.r19025/6202
K 9
ruleset.h
V 22
file 8x.5ck.r17946/997
K 13
sanitycheck.c
V 23
file wi.5ck.r19087/6709
K 13
sanitycheck.h
V 23
file wj.5ck.r18740/9358
K 10
savegame.c
V 23
file vl.5ck.r19031/1068
K 10
savegame.h
V 24
file vm.5ck.r17289/22938
K 11
savegame2.c
V 25
file 4m0.5ck.r19101/22609
K 11
savegame2.h
V 25
file 4m1.5ck.r18078/67503
K 7
score.c
V 26
file 2eg.5ck.r18308/128519
K 7
score.h
V 24
file 2eh.5ck.r17332/6378
K 9
scripting
V 23
dir 31x.5ck.r19010/1502
K 8
sernet.c
V 24
file 15.5ck.r18977/19408
K 8
sernet.h
V 24
file 4y.5ck.r18473/12711
K 10
settings.c
V 24
file 2m0.5ck.r19019/2934
K 10
settings.h
V 24
file 2m1.5ck.r18294/3094
K 11
spacerace.c
V 25
file 9a.5ck.r18362/123929
K 11
spacerace.h
V 21
file 9b.0.r11338/1129
K 9
srv_log.c
V 25
file 15t.5el.r18872/67926
K 9
srv_log.h
V 25
file 15u.5em.r17928/40497
K 10
srv_main.c
V 24
file vg.5ck.r19101/20385
K 10
srv_main.h
V 24
file vh.5ck.r18977/18252
K 11
stdinhand.c
V 23
file 4z.5ck.r19065/1374
K 11
stdinhand.h
V 23
file 50.5ck.r18978/5769
K 11
techtools.c
V 25
file 33n.5ck.r19055/10730
K 11
techtools.h
V 24
file 33o.5ck.r18665/2277
K 10
unithand.c
V 24
file 18.5ck.r19033/22119
K 10
unithand.h
V 24
file 19.5ck.r18578/17031
K 11
unittools.c
V 22
file 1a.5ck.r19075/320
K 11
unittools.h
V 24
file 1b.5ck.r18384/66086
K 8
voting.c
V 26
file 4ex.5ck.r18308/137159
K 8
voting.h
V 25
file 4ey.5ck.r18054/19315
END
ENDREP
id: z.5ck.r19101/26573
type: dir
pred: z.5ck.r19087/10724
count: 4414
text: 19101 23039 3521 3521 50a905097492852c63e8aa1cdba70efd
props: 17175 659 139 0 d1c9699dde7f9d81e54426750008041d
cpath: /trunk/server
copyroot: 15280 /trunk

id: 4gp.5ck.r19101/26805
type: file
pred: 4gp.5ck.r19087/10955
count: 34
text: 19101 18326 195 5402 d9375a9d87372f3cedf858319a6364d5
cpath: /trunk/common/ai.h
copyroot: 15280 /trunk

id: 46.5ck.r19101/26988
type: file
pred: 46.5ck.r19087/11382
count: 227
text: 19101 20033 23 14940 dbde9c8f5bf118384cf8f9e76c33592c
props: 11057 32360 112 0 008c1f4aede3063a105ee5510d8fc5d7
cpath: /trunk/common/player.h
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 23
file 5h.5ck.r18991/7627
K 4
ai.c
V 25
file 4go.5ck.r18899/24800
K 4
ai.h
V 25
file 4gp.5ck.r19101/26805
K 6
aicore
V 24
dir 18t.5ck.r19033/27229
K 6
base.c
V 25
file 3jw.5ck.r18855/11779
K 6
base.h
V 25
file 3jx.5ck.r18858/93788
K 9
borders.c
V 25
file 4f0.5ck.r18297/35065
K 9
borders.h
V 25
file 4f1.5ck.r18858/99721
K 8
capstr.c
V 24
file dv.5ck.r17617/51579
K 8
capstr.h
V 24
file dw.5ck.r18858/97074
K 6
city.c
V 22
file q.5ck.r18931/1095
K 6
city.h
V 24
file 3q.5ck.r18858/96165
K 8
combat.c
V 24
file wp.5ck.r18854/32215
K 8
combat.h
V 24
file wq.5ck.r18858/95678
K 12
connection.c
V 24
file un.5ck.r18976/42586
K 12
connection.h
V 24
file uo.5ck.r18976/42833
K 8
dataio.c
V 25
file 15r.5ck.r17928/47899
K 8
dataio.h
V 25
file 15s.5ck.r18858/95001
K 11
diptreaty.c
V 23
file 3r.5ck.r18298/9103
K 11
diptreaty.h
V 24
file 3s.5ck.r18858/95921
K 9
effects.c
V 25
file 2eo.5ck.r18926/16217
K 9
effects.h
V 25
file 2ep.5ck.r18983/61690
K 8
events.c
V 24
file 33h.5ck.r18857/8551
K 8
events.h
V 24
file 3t.5ck.r18858/95439
K 14
fc_interface.c
V 24
file 4up.5ck.r18890/8208
K 14
fc_interface.h
V 24
file 4uq.5ck.r18890/8397
K 10
fc_types.h
V 25
file 2ll.5ck.r19033/27652
K 15
featured_text.c
V 25
file 4h3.5ck.r18623/44037
K 15
featured_text.h
V 24
file 4h4.5ck.r18873/5922
K 6
game.c
V 23
file 3u.5ck.r18873/6113
K 6
game.h
V 24
file 3v.5ck.r18902/30454
K 19
generate_packets.py
V 25
file 2f4.5ck.r18863/12240
K 12
government.c
V 23
file he.5ck.r18403/6790
K 12
government.h
V 24
file hf.5ck.r18858/98787
K 6
idex.c
V 23
file qo.5ck.r18342/2669
K 6
idex.h
V 24
file qp.5ck.r18858/92434
K 13
improvement.c
V 25
file vb.5ck.r18308/142158
K 13
improvement.h
V 24
file vc.5ck.r18858/93351
K 5
map.c
V 22
file r.5ck.r19064/1197
K 5
map.h
V 24
file 41.5ck.r18903/23683
K 10
movement.c
V 25
file 2xv.5ck.r18854/33561
K 10
movement.h
V 25
file 2xw.5ck.r18858/96827
K 18
name_translation.h
V 25
file 4k1.5ck.r18858/99277
K 8
nation.c
V 23
file il.5ck.r18706/4984
K 8
nation.h
V 25
file im.5ck.r18858/101381
K 9
packets.c
V 24
file 43.5ck.r18623/44227
K 11
packets.def
V 25
file 2f5.5ck.r18559/27563
K 9
packets.h
V 24
file 44.5ck.r18858/92670
K 8
player.c
V 24
file 45.5ck.r19087/11137
K 8
player.h
V 24
file 46.5ck.r19101/26988
K 14
requirements.c
V 25
file 2wq.5ck.r18326/39682
K 14
requirements.h
V 26
file 2wr.5ck.r18858/101129
K 10
research.c
V 24
file 4ro.5ck.r17856/7997
K 10
research.h
V 25
file 4rp.5ck.r18858/92915
K 10
rgbcolor.c
V 22
file 6i6.5ck.r18896/50
K 10
rgbcolor.h
V 22
file 6i7.5ck.r18894/46
K 11
spaceship.c
V 20
file 98.0.r9977/2632
K 11
spaceship.h
V 25
file 99.5ck.r18858/100885
K 12
specialist.c
V 25
file 33f.5ck.r18326/38937
K 12
specialist.h
V 25
file 33g.5ck.r18858/93104
K 6
team.c
V 23
file 33i.5ck.r19040/556
K 6
team.h
V 25
file 33j.5ck.r18858/94759
K 6
tech.c
V 22
file t.5ck.r19096/2705
K 6
tech.h
V 23
file u.5ck.r19055/14981
K 9
terrain.c
V 26
file 2fp.5ck.r18308/147138
K 9
terrain.h
V 23
file qs.5ck.r19002/2860
K 6
tile.c
V 23
file 2ys.5ck.r19064/725
K 6
tile.h
V 23
file 2yt.5ck.r19064/963
K 6
unit.c
V 20
file v.5ck.r19038/67
K 6
unit.h
V 24
file 48.5ck.r19033/26127
K 10
unitlist.c
V 25
file 39m.5ck.r18578/21945
K 10
unitlist.h
V 26
file 39n.5ck.r18858/100396
K 10
unittype.c
V 23
file v9.5ck.r18588/1099
K 10
unittype.h
V 24
file va.5ck.r19025/10695
K 9
version.c
V 25
file oe.5ck.r17122/322944
K 9
version.h
V 24
file e7.5ck.r18858/96407
K 8
vision.c
V 25
file 4dm.5ck.r18000/29175
K 8
vision.h
V 25
file 4dn.5ck.r18858/99907
K 10
worklist.c
V 25
file o8.5ck.r16929/277491
K 10
worklist.h
V 24
file o9.5ck.r18858/98299
END
ENDREP
id: p.5ck.r19101/30829
type: dir
pred: p.5ck.r19096/6539
count: 2974
text: 19101 27232 3584 3584 3089067fc3e95f9a8d88012563ae0019
props: 12883 2571 96 0 2763e13ff5d021346ae24ff6c9ced232
cpath: /trunk/common
copyroot: 15280 /trunk

id: 2iw.5ck.r19101/31060
type: file
pred: 2iw.5ck.r19033/31974
count: 69
text: 19101 20084 166 40085 9124bc0c3df8f7e93f8cf25029b7ef17
props: 10806 16634 111 0 45c0e160a790dc8f7645f8a7eabea654
cpath: /trunk/ai/aiferry.c
copyroot: 15280 /trunk

id: 1m.5ck.r19101/31303
type: file
pred: 1m.5ck.r18872/72727
count: 163
text: 19101 20279 77 13174 270f7a0e2ae2eab862cf2addc1cbb98c
props: 10779 49627 112 0 61465523e3c60d371baa05b44953aea9
cpath: /trunk/ai/advdomestic.c
copyroot: 15280 /trunk

id: 6i3.5ck.r19101/31548
type: file
pred: 6i3.5ck.r19087/15456
count: 2
text: 19101 127 865 2367 ad7a80a079f2506408b9c088c503a0d6
cpath: /trunk/ai/aiplayer.c
copyroot: 15280 /trunk

id: 9.5ck.r19101/31730
type: file
pred: 9.5ck.r19078/20871
count: 227
text: 19101 1070 84 47343 a4cc6f4c9ff4036d6a3eaf3e57e28d7c
props: 11015 549 112 0 bb22896f97f507ab8508e233583a40b4
cpath: /trunk/ai/aitools.c
copyroot: 15280 /trunk

id: 2ek.5ck.r19101/31966
type: file
pred: 2ek.5ck.r19055/19051
count: 157
text: 19101 2388 138 67875 5e0c8aba6fb32933619a7cc938023213
props: 11095 5259 111 0 09fa8b389220258550f0df17fa730769
cpath: /trunk/ai/advdiplomacy.c
copyroot: 15280 /trunk

id: 20.5ck.r19101/32213
type: file
pred: 20.5ck.r18950/27163
count: 353
text: 19101 3577 72 33951 ce19cb80b1af4e174576ebc5f230ed76
props: 11069 16784 112 0 24b501182e64f7bbc4aaaa8b3f1d9020
cpath: /trunk/ai/aicity.c
copyroot: 15280 /trunk

id: 6mb.5ck.r19101/32452
type: file
pred: 6mb.5ck.r19087/15821
count: 1
text: 19101 3748 1469 2509 a0f5569155d60790d0bbd9ca0eac34e3
cpath: /trunk/ai/aidata.c
copyroot: 15280 /trunk

id: 16r.5ck.r19101/32634
type: file
pred: 16r.5ck.r19033/32690
count: 95
text: 19101 3679 41 25288 dd0f2eafbdd063639a203644377998d0
props: 10756 119 111 0 93121dcfd7714818c8d46f9c51a886fa
cpath: /trunk/ai/aidiplomat.c
copyroot: 15280 /trunk

id: 22.5ck.r19101/32876
type: file
pred: 22.5ck.r18969/18372
count: 159
text: 19101 5245 89 32298 851b980a06ddd6eb63a2d63e7b3a4a20
props: 10865 30805 112 0 8869376353a720fe76c0d512d1b8c326
cpath: /trunk/ai/aihand.c
copyroot: 15280 /trunk

id: 1u.5ck.r19101/33115
type: file
pred: 1u.5ck.r19033/32932
count: 261
text: 19101 5361 66 52413 a4bb00e6c9039d5e2e9d327146a2ead5
props: 10765 17515 112 0 ecd9c25ffd2014c732acffc1b3aab533
cpath: /trunk/ai/advmilitary.c
copyroot: 15280 /trunk

id: 21.5ck.r19101/33359
type: file
pred: 21.5ck.r18844/14950
count: 39
text: 19101 5455 45 4260 3ae5240db728cd66fb137f8309707432
props: 10755 56594 111 0 eaeaff8c6ba56cfe19b921c33649c016
cpath: /trunk/ai/aicity.h
copyroot: 15280 /trunk

id: 6mc.5ck.r19101/33596
type: file
pred: 6mc.5ck.r19087/15974
count: 1
text: 19101 5739 385 1117 0c7f9c7ab71ca3d34763dd3fc68fabc4
cpath: /trunk/ai/aidata.h
copyroot: 15280 /trunk

id: 4n8.5fg.r19101/33777
type: file
pred: 4n8.5fg.r19087/16127
count: 24
text: 19101 2779 768 3420 0976f46ea0afbff4b2382e578366f282
cpath: /trunk/ai/default/defaultai.c
copyroot: 18919 /trunk/ai/default/defaultai.c

PLAIN
K 11
Makefile.am
V 24
file 6k4.5ck.r18919/5622
K 11
defaultai.c
V 25
file 4n8.5fg.r19101/33777
K 11
defaultai.h
V 24
file 4n9.5fh.r18919/5417
END
ENDREP
id: 6k3.5ck.r19101/34152
type: dir
pred: 6k3.5ck.r19087/16501
count: 8
text: 19101 33993 146 146 b67b4b2e0ec2332b368e8586be77386f
props: 19010 5510 53 0 1aad128f6d028f535e9ce7233326568e
cpath: /trunk/ai/default
copyroot: 15280 /trunk

id: 36o.5ck.r19101/34387
type: file
pred: 36o.5ck.r18872/75106
count: 29
text: 19101 1019 23 11899 61d69febb1a9587cfe6e6225a60c2120
props: 12670 94874 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/ai/aiparatrooper.c
copyroot: 15280 /trunk

id: 2lh.5ck.r19101/34633
type: file
pred: 2lh.5ck.r19078/21952
count: 76
text: 19101 6792 11507 41598 17278e0dce997f3f2f91e1bc34ec2859
props: 10865 31505 111 0 23629f8214b2309975780a037517e920
cpath: /trunk/ai/aisettler.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 5d.5ck.r19087/16736
K 14
advdiplomacy.c
V 25
file 2ek.5ck.r19101/31966
K 14
advdiplomacy.h
V 24
file 2el.5ck.r18850/9973
K 13
advdomestic.c
V 24
file 1m.5ck.r19101/31303
K 13
advdomestic.h
V 23
file 1n.0.r13297/443238
K 13
advmilitary.c
V 24
file 1u.5ck.r19101/33115
K 13
advmilitary.h
V 23
file 1v.0.r13297/446464
K 10
advspace.c
V 25
file f2.5ck.r16929/287580
K 10
advspace.h
V 21
file f3.0.r8119/28225
K 7
aiair.c
V 25
file 15y.5ck.r18872/74250
K 7
aiair.h
V 25
file 15z.5ck.r18054/30939
K 8
aicity.c
V 24
file 20.5ck.r19101/32213
K 8
aicity.h
V 24
file 21.5ck.r19101/33359
K 8
aidata.c
V 25
file 6mb.5ck.r19101/32452
K 8
aidata.h
V 25
file 6mc.5ck.r19101/33596
K 12
aidiplomat.c
V 25
file 16r.5ck.r19101/32634
K 12
aidiplomat.h
V 25
file 16s.5ck.r18054/30699
K 9
aiferry.c
V 25
file 2iw.5ck.r19101/31060
K 9
aiferry.h
V 25
file 2ix.5ck.r18054/30227
K 9
aiguard.c
V 25
file 335.5ck.r18872/75354
K 9
aiguard.h
V 25
file 336.5ck.r18054/31175
K 8
aihand.c
V 24
file 22.5ck.r19101/32876
K 8
aihand.h
V 23
file 23.5ck.r18938/1797
K 8
aihunt.c
V 25
file 2gc.5ck.r19033/33785
K 8
aihunt.h
V 25
file 2gd.5ck.r18054/31410
K 15
aiparatrooper.c
V 25
file 36o.5ck.r19101/34387
K 15
aiparatrooper.h
V 23
file 36p.0.r12670/95202
K 10
aiplayer.c
V 25
file 6i3.5ck.r19101/31548
K 10
aiplayer.h
V 25
file 6i4.5ck.r19087/15638
K 11
aisettler.c
V 25
file 2lh.5ck.r19101/34633
K 11
aisettler.h
V 24
file 2li.5ck.r18951/6684
K 8
aitech.c
V 24
file 24.5ck.r19055/19296
K 8
aitech.h
V 22
file 25.0.r10755/53545
K 9
aitools.c
V 23
file 9.5ck.r19101/31730
K 9
aitools.h
V 23
file a.5ck.r19033/32454
K 8
aiunit.c
V 23
file b.5ck.r19078/21717
K 8
aiunit.h
V 23
file c.5ck.r19078/20634
K 7
default
V 24
dir 6k3.5ck.r19101/34152
K 4
stub
V 23
dir 6k5.5ck.r19010/5876
END
ENDREP
id: 8.5ck.r19101/36664
type: dir
pred: 8.5ck.r19087/18758
count: 1359
text: 19101 34879 1772 1772 d5ad1b34ac1fe0565ae5a6f931494896
props: 11108 11315 64 0 abac628483ea4fdfa3bea3a3a56e0532
cpath: /trunk/ai
copyroot: 15280 /trunk

PLAIN
K 9
ABOUT-NLS
V 22
file fu.0.r13215/85704
K 7
AUTHORS
V 19
file 5u.0.r12982/94
K 7
COPYING
V 19
file 1h.0.r9643/400
K 9
ChangeLog
V 26
file 6l.5ck.r18394/4622094
K 7
INSTALL
V 21
file 6.5ck.r19034/362
K 11
Makefile.am
V 24
file 59.5ck.r18946/42458
K 4
NEWS
V 22
file 6m.5ck.r18758/131
K 6
README
V 20
file 7.0.r4421/96382
K 2
ai
V 22
dir 8.5ck.r19101/36664
K 10
autogen.sh
V 24
file 12o.5ck.r16223/7590
K 9
bootstrap
V 24
dir 2p5.5ck.r17613/37512
K 6
client
V 22
dir d.5ck.r19094/13457
K 6
common
V 22
dir p.5ck.r19101/30829
K 12
config.mac.h
V 20
file hb.0.r6045/5982
K 12
configure.ac
V 23
file 149.5ck.r19095/863
K 4
data
V 23
dir w.5ck.r19100/155702
K 6
debian
V 22
dir 5w.5ck.r19074/5634
K 12
dependencies
V 23
dir 2yu.5ck.r19010/1033
K 11
diff_ignore
V 21
file qq.5ck.r17605/92
K 3
doc
V 22
dir k7.5ck.r19076/3288
K 10
fc_version
V 26
file 2lo.5en.r18452/124959
K 2
m4
V 23
dir 12p.5ck.r19092/2408
K 6
manual
V 24
dir 2m2.5ck.r18977/26951
K 7
modinst
V 22
dir 4pj.5ck.r19079/947
K 2
po
V 24
dir fs.5ck.r19100/157841
K 7
scripts
V 23
dir 2yo.5bk.r14810/1300
K 6
server
V 22
dir z.5ck.r19101/26573
K 10
stamp-h.in
V 19
file 80.0.r1125/241
K 5
tests
V 22
dir 2g9.5ck.r15661/767
K 7
utility
V 22
dir 1c.5ck.r19099/2734
K 3
vms
V 21
dir u9.0.r11105/70719
K 5
win32
V 24
dir 2eu.5bk.r13732/30345
END
ENDREP
id: 3.5ck.r19101/38206
type: dir
pred: 3.5ck.r19100/159386
count: 14172
text: 19101 36893 1300 1300 3fa2035bfc98fccfabb2bba0e4448833
props: 17175 3052 264 0 91336f1f63d2f606e65376614b5c72e4
cpath: /trunk
copyroot: 15280 /trunk

PLAIN
K 8
branches
V 19
dir 1.0.r19098/5998
K 4
tags
V 19
dir 2.0.r18763/5338
K 5
trunk
V 22
dir 3.5ck.r19101/38206
K 7
website
V 18
dir 3ge.0.r12388/0
END
ENDREP
id: 0.0.r19101/38597
type: dir
pred: 0.0.r19100/159778
count: 19101
text: 19101 38434 150 150 031f7addf3c9e55a222a67fb1f51b1d2
cpath: /
copyroot: 0 /

6mb.5ck.t19100-1 modify true false /trunk/ai/aidata.c

16r.5ck.t19100-1 modify true false /trunk/ai/aidiplomat.c

22.5ck.t19100-1 modify true false /trunk/ai/aihand.c

1u.5ck.t19100-1 modify true false /trunk/ai/advmilitary.c

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

21.5ck.t19100-1 modify true false /trunk/ai/aicity.h

6mc.5ck.t19100-1 modify true false /trunk/ai/aidata.h

vg.5ck.t19100-1 modify true false /trunk/server/srv_main.c

2lh.5ck.t19100-1 modify true false /trunk/ai/aisettler.c

4gp.5ck.t19100-1 modify true false /trunk/common/ai.h

lw.5ck.t19100-1 modify true false /trunk/server/barbarian.c

50r.5ck.t19100-1 modify true false /trunk/server/advisors/advbuilding.c

46.5ck.t19100-1 modify true false /trunk/common/player.h

2iw.5ck.t19100-1 modify true false /trunk/ai/aiferry.c

1m.5ck.t19100-1 modify true false /trunk/ai/advdomestic.c

4u.5ck.t19100-1 modify true false /trunk/server/plrhand.c

6i3.5ck.t19100-1 modify true false /trunk/ai/aiplayer.c

36o.5ck.t19100-1 modify true false /trunk/ai/aiparatrooper.c

9.5ck.t19100-1 modify true false /trunk/ai/aitools.c

15o.5eq.t19100-1 modify true false /trunk/server/advisors/advdata.c

2ek.5ck.t19100-1 modify true false /trunk/ai/advdiplomacy.c

15p.5er.t19100-1 modify true false /trunk/server/advisors/advdata.h

20.5ck.t19100-1 modify true false /trunk/ai/aicity.c

4n8.5fg.t19100-1 modify true false /trunk/ai/default/defaultai.c


38597 38748
