DELTA 18950 0 605
SVN  Â$Æ'3„B “( €` “^€A ï(•8š …;„|š †_ŠSŠ °e‘? G ¤ @‘@€‚>struct unit_ai *unit_data = def_ai_unit_data(punit);

  punit->ai_controlled = TRUE;
  unit_dataunit_data->task == AIUNIT_NONE) {
    adv_unit_new_task(punit, AUdv_unit_new_task(punit, AUdv_unit_new_task(punit, AUtask == AU
**** 
  Change unit's advisor task.
**********/
void adv_unit_new_task(struct unit *punit, enum adv_unit_task task,
                       struct tile *ptile)
{
  if (punit->server.adv->task == task) {
    /* Already that task */
    return;
  }

  punit->server.adv->task = task;

  CALL_PLR_AI_FUNC(unit_task, unit_owner(punit), punit, task, ptile);
}
ENDREP
DELTA 17772 171 33
SVN  ³'³$

 ˜q Š š)˜~task == AUENDREP
DELTA 18872 1601 8503
SVN  ‚éC‚ñf‹h Š| • ±	Šw€M …y¼€4 ˜\Ãk ŠjÜ^¦ NÐ€ƒB W‚¢: ƒçH„ ƒê`€F ‚oîD ƒtñJ ‚7õU· nøK UúP€C süp iýz ƒ0þz€U ‚2‚‚C„ ‚„y€‚s W‚¢: ât‚†O#include "autosettler  struct unit_ai *unit_data = def_ai_unit_data(punit);

  if (unit_data->taskunit_data->task == AIUNIT_DEFEND_HOME
                 || unit_data->task == AIUNIT_ATTACK
                 || unit_data->task ==  AIUNIT_ESCORT
                 || unit_data->taskunit_data->taskAdviser task for unit has been changedvoid ai_unit_new_adv_task(struct unit *punit, enum adv_unit_task task,
                          struct tile *ptile)
{
  /* Keep ai_unit_task in sync with adv task */
  switch(task) {
   case AUT_AUTO_SETTLER:
     ai_unit_new_task(punit, AIUNIT_AUTO_SETTLER, ptile);
     break;
   case AUT_BUILD_CITY:
     ai_unit_new_task(punit, AIUNIT_BUILD_CITY, ptile);
     break;
   case AUT_NONE:
     ai_unit_new_task(punit, AIUNIT_NONE, ptile);
     breaktasktask from %s to %s",
           ai_unit_task_rule_name(unit_data->taskunit_data->taskunit_data->tasktask %d, old %d)",
               task, unit_data->taskunit_data->taskunit_data->task == AIUNIT_NONE && bodyguard) {
    ai_unit_new_taskunit_data->taskunit_data->taskunit_owner(missile) == unit_owner(punit)
          && def_ai_unit_data(missile)->tasktask
  /* Map ai tasks to advisor tasks. For most ai tasks there is
     no advisor, so AUT_NONE is set. */
  switch(unit_data->task) {
   case AIUNIT_AUTO_SETTLER:
     punit->server.adv->task = AUT_AUTO_SETTLER;
     break;
   case AIUNIT_BUILD_CITY:
     punit->server.adv->task = AUT_BUILD_CITY;
     break;
   default:
     punit->server.adv->task = AUT_NONE;
     breakENDREP
DELTA 17819 49 1097
SVN  o% …o Œ `…n ‡<†m€/* common */adv_unit_new_task(struct unit *punit, enum adv_unit_task task,
                       struct tile *ptile);

#endif   /* FC__AUTOSETTLERS_H */
ENDREP
DELTA 18955 0 78
SVN  Ú	Ú ‹@  Î2‹Wdef_ai_unit_data(punit)->taskENDREP
DELTA 18980 0 4495
SVN  †  †  '‚$ §7 º ý;§eº …l¥N€ S£  Ñ¬3© ƒ¡*‚þrule_name(&unit_type(punit)->veteran[punit->veteran].name)rule_name(&unit_type(punit)->veteran[punit->veteran].name) and became %s."),
                unit_link(punit),
                name_translation(&unit_type(punit)->veteran[punit->veteran].name))adv_unit_new_task(punit, AUT_NONE, NULL);†  ¨O©A€A ¨O it_orders(pcargo);

      pcargo->tile = pdesttile;

      unit_lENDREP
DELTA 18846 0 647
SVN  œmw8 ‡  Œ{‡€( ˆ4”9#include "aiunittask(struct unit *punit, enum ai_unit_task task, 
                      struct tile *ptile);
void ai_unit_new_adv_task(struct unit *punit, enum adv_unit_task task,
    ENDREP
DELTA 18893 3282 1487
SVN  Ô?Õ@ —p €@ ¼S—lenum adv_unit_task { AUT_NONE, AUT_AUTO_SETTLER, AUT_BUILD_CITY ENDREP
DELTA 18950 16967 163
SVN  –]—
 ’  „S’
task = ai_unit_new_adv_task;
ENDREP
DELTA 18995 3423 833
SVN  æhå Ž  Ši‘ Ìdšdv_unit_task taskENDREP
DELTA 18872 11633 760
SVN  Å/ÅFƒ^ « † ®`«† „\Ùpž Sí~ …ß=ˆ vô1 œ:åR† œ2‚› †Qž<„ ¥€ ‚A§# ‚©{ ‚¬„ ‚® b°K ‰V²D€r v½ª ‚f¾: ‚'Á7„ MÃb, NULL, NULLtask(punit, AIUNIT_NONE, NULL), NULL);, NULL  struct unit_ai *unit_datataskunit_data = def_ai_unit_data(punit);

  /* Check if existing target still makes sense */
  if (unit_data->task == AIUNIT_ATTACK
      || unit_data->taskunit_data->taskunit_data->tasktaskunit_data->taskunit_data->tasktask(punit, task, ctarget->tile);
    fc_assert(punit->moves_left > 0 && ctarget 
              && unit_data->tasktask == %d)",
             unit_data->taskunit_data->tasktaskENDREP
DELTA 18545 0 49937
SVN  ƒ˜Oƒ™9#ƒx Š €C …EŠY  óNDˆ ˆ9„€D ‚2Œd€D Œd «6)ˆ ‡n»j Ã`ˆ „Äˆ ˜PÉ(¥ bâ#ˆ „$ã¡ „6ç[¾ pì” …ý!ˆ Èu‚‚=‡ •‚Ë<˜ •‚à`ˆ ‘@‚öˆ „~ƒ‡N‡ ƒ(ƒŒV‡ ƒ6ƒˆ …ƒ“Iplayer.h"
#include "aitech.h"
#include "aitools.h"
#include "aiunitUMT_LAND || move_type == UMT_SEAUMT_LAND
                                           unit_move_type_invalid()
                                           unit_move_type_invalid()UMT_LANDUMT_LANDUMT_LANDUMT_SEA || orig_move_type == UMT_LANDUMT_LANDUMT_LAND || (move_type == UMT_SEA
                                     unit_move_type_invalid()pf_map_destroy(pfm);UMT_LANDUMT_SEAunit_move_type_invalid()UMT_LANDUMT_LANDUMT_SEAUMT_SEAUMT_LANDENDREP
DELTA 18581 6718 2440
SVN  „å„äY\ È
 ³ ƒ’:ÈB© ‰9„Û]task != AUT_NONE) {
    adv_unit_new_task(punit, AUadv_unit_new_task(punit, AUT_NONE, NULL);ENDREP
DELTA 17796 13206 3578
SVN  “/“_…E …p Œ ƒ…e€ G  «ZŠ(€X ¶`’ ‡9Ç¼ ‚zÎ€W oÒU€e FÔ 6ÕN‡ ƒå’ ]è@€Z ƒKê ˜9î6„ ?†s ˆ7„ ‰? WŠW ]ˆ7œ n‰? lŽ iˆ7  k‰? ’ ’'bitvector.h"#include "autosettlers.h"

/* ai */
#include "aicity.h"
#include "aiplayer.h"
#include "aitools.h"
#include "aiunit.h"

#include "aihunt.h"


UMT_LAND);
  struct unit_type *best_sea_hunter
    = ai_hunter_guess_best(pcity, UMT_SEAmove_costs_iterateUMT_SEA
                  || utype_move_type(ut) == UMT_BOTHmove_costs_iterate_end;
      pf_map_destroy(pfm);
      if (sucker) {
        if (gamemissile->goto_tile = sucker->tile;
        ai_unit_goto(missile, sucker->tile);
        sucker = game = gamemove_costs_iterate
    if (tile_city(ptile) || !can_unit_attack_tile(punit, ptile)) {
      continue;
    }
tasktask");
        ai_unit_new_taskost)");
        ai_unit_new_taskmove_costs_iterateENDREP
DELTA 18872 14302 46314
SVN  …øh…ío‚‹x ¦' º \¦$€A ƒP¨Q …¹B„ ƒ,¾\„ Â ‹,ß1› ‚1ê[€‚L …gïH„ ]õ3 =ö'„ ƒ]÷h„ =ûI„ ‚•0ý
 ’L„’Q„ ‚V„¥!„ ƒZ„§{´ |„«R ‚1„­e‰ †I„°-€F M„¸L Šu„º0­ u„Å‰ ‚„Æ% Œm„ÈX D„Õ7µ V„Öv¹ „K„Ø€p ŠS„Ý1 S„è ‚p„ê‰ …B„í„ ‡„òR€ …5„úI„ ‡m…€€ ­]…ˆe„ Â&…¶B        struct unit_ai *unit_data = def_ai_unit_data(punitunit_data->task == AIUNIT_NONE
                || unit_data->tasktasktaskdef_ai_unit_data(punit)->task  struct unit_ai *unit_datatask(punit, AIUNIT_NONE, NULL);
    return;
  }

  unit_data = def_ai_unit_data(punit);

  /* If I am a bodyguard, check whether I can do my job. */
  if (unit_data->task == AIUNIT_ESCORT
      || unit_data->task == AIUNIT_DEFEND_HOME) {
    aiguard_update_charge(punit);
  }
  if (aiguard_has_charge(punit)
      && unit_data->tasktaskunit_data->tasktasktasktaskdef_ai_unit_data(punit)->tasktasktaskstruct unit_ai *unit_data = def_ai_unit_data(punit);unit_data->taskunit_dataunit_data->task == AIUNIT_HUNTER) {
      /* This should be very rare */
      ai_unit_new_task(punit, AIUNIT_NONE, NULL);
    }
  } else if (unit_data->task == AIUNIT_HUNTER) {
    ai_unit_new_taskunit_data->taskunit_ai *unit_data = def_ai_unit_data(punit);unit_dataunit_data->task_ai *unit_data;struct unit_ai *unit_data = def_ai_unit_data(punit);
ai_unit_new_task(punit, AIUNIT_NONE, NULL);
    unit_data

  unit_data = def_ai_unit_data(punit);

  if (punit->moves_left <= 0) {
    /* Can do nothing */
    unit_dataunit_data->taskunit_data->taskunit_datatask struct unit_ai *unit_data = def_ai_unit_data(punit);

       if ((unit_data->task == AIUNIT_NONE || emergency)
           && unit_data->tasktaskstruct unit_ai *unit_data = def_ai_unit_data(punit);

    unit_data->done = FALSE;
    if (unit_data->task == AIUNIT_DEFEND_HOME) {
      ai_unit_new_taskadv_ENDREP
DELTA 18954 0 13829
SVN  ‚Ÿ
‚ÄZ‚nÕ? › €…b ‚w›€‰ ‰C£€… Pí@ P°@€G ƒ9²=€ ‚
·€p ƒ	»= ¿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° €…o G Ž C° €ƒ9 {í?ˆ C°  ëc€} ‚Sí;€ Uí? ŠTñ*€†M Aþ Ÿ 9œ ;ƒ` :†>€i |ˆ€ Ž{‰}€] ÂVš3€‚ G  „]Þw ‚ãk„ „Jæ „ }êN€T lù€O ƒ3úRš qþ!„ lÿš „3‚€€ƒ1 Sí@ ƒ‚…t„ •s‚‰
  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(p  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 ai_data *ai = ai_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 ai_data *ai = ai_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->sumfill(pplayer, ptile); /* Burn CPU, burn! */
  if (!cr) {
    /* Failed to find a good spot */ == 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, AU#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 18950 4288 671
SVN  ¤j¥X[ % €[ ”Xtask)(struct unit *punit, enum adv_unit_task task,
                      struct tile *ptileENDREP
DELTA 18987 1786 46
SVN  «,­m †g €S „*†dš  ‹enum ai_unit_task { AIUNIT_NONE, AIUNIT_AUTO_SETTLER, AIUNIT_BUILD_CITY,
                    AIUNIT_DEFEND_HOME, AIUNIT_ATTACK, AIUNIT_ESCORT, 
                    AIUNIT_EXPLORE, AIUNIT_RECOVER, AIUNIT_HUNTER }
  enum ai_unit_task task;ENDREP
DELTA 18548 47 21124
SVN  ‚¸f‚¹]O ‡] – A‡Y¯ -‰Jˆ Ç| ˆI˜‹ RÇ} …n¡-ˆ  K§&ˆ Ç|º Uë} ûØ„ ÄÓ) ‚—N„ ‚v‚§p„ ‚ªj„ c‚¸#include "autosettlersplayer.h"
#include "aitools.h"
#include "aiunitUMT_LANDUMT_LAND
  UMT_LANDUMT_LANDparam->owner, src_tile, tgt_tile);
  }

  return move_costtaskdef_ai_unit_data(aunit)->tasktasktasktaskENDREP
id: 7s.5ei.r19033/20052
type: file
pred: 7s.5ei.r18950/17405
count: 303
text: 19033 0 643 25383 3d751a8977036f956ccdf17c98026fbb
props: 10755 35320 112 0 af1f871c1c0b4609250c3dc553658fcc
cpath: /trunk/server/advisors/autosettlers.c
copyroot: 17592 /trunk/server/advisors/autosettlers.c

id: 7t.5ej.r19033/20339
type: file
pred: 7t.5ej.r18949/3141
count: 38
text: 19033 2427 183 1957 493f14b161218122dcf01c9e3d42349a
props: 9484 813 111 0 23629f8214b2309975780a037517e920
cpath: /trunk/server/advisors/autosettlers.h
copyroot: 17592 /trunk/server/advisors/autosettlers.h

id: 15o.5eq.r19033/20623
type: file
pred: 15o.5eq.r18955/11489
count: 123
text: 19033 2637 54 27919 971554b5877514c64f61d73598d5a984
props: 11074 729 111 0 995497afc7013c9f20b8d3ebef449f37
cpath: /trunk/server/advisors/advdata.c
copyroot: 17700 /trunk/server/advisors/advdata.c

PLAIN
K 11
Makefile.am
V 24
file 4n3.5ck.r18949/3421
K 13
advbuilding.c
V 25
file 50r.5ck.r18983/39207
K 13
advbuilding.h
V 25
file 50s.5ck.r18136/21838
K 9
advdata.c
V 25
file 15o.5eq.r19033/20623
K 9
advdata.h
V 25
file 15p.5er.r18955/11765
K 9
advgoto.c
V 24
file 4p5.5ck.r18987/2254
K 9
advgoto.h
V 24
file 4p6.5ck.r18987/2449
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.r19033/21633
type: dir
pred: 4n2.5ck.r18987/3373
count: 39
text: 19033 20902 718 718 45445bec6955045dfedd37b2931115bc
props: 17871 2121 53 0 a527b216afb99426b763a1e313c531be
cpath: /trunk/server/advisors
copyroot: 15280 /trunk

id: 1a.5ck.r19033/21873
type: file
pred: 1a.5ck.r19025/6689
count: 594
text: 19033 2715 428 124048 e635dc6a99c063bac202552d52704293
props: 11095 1637 112 0 c5bfe3670c093a84ebf28b66298044e4
cpath: /trunk/server/unittools.c
copyroot: 15280 /trunk

id: 18.5ck.r19033/22119
type: file
pred: 18.5ck.r18581/9432
count: 471
text: 19033 5033 125 78425 14d4ef5f672d6ad0d76523ec6e9c380e
props: 11060 7742 112 0 090627d3849ce880ce4f29c1c260669f
cpath: /trunk/server/unithand.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 23
file 5q.5ck.r18991/3621
K 8
advisors
V 24
dir 4n2.5ck.r19033/21633
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 23
file lw.5ck.r18843/7802
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.r18975/67399
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.r18975/68873
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.r18740/9112
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 23
file 4m0.5ck.r19031/882
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.r18977/15063
K 10
srv_main.h
V 24
file vh.5ck.r18977/18252
K 11
stdinhand.c
V 23
file 4z.5ck.r18978/5523
K 11
stdinhand.h
V 23
file 50.5ck.r18978/5769
K 11
techtools.c
V 25
file 33n.5ck.r18975/68134
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 24
file 1a.5ck.r19033/21873
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.r19033/25896
type: dir
pred: z.5ck.r19031/4838
count: 4408
text: 19033 22363 3520 3520 462d5609465cf9bac14f68a03a0cc4bb
props: 17175 659 139 0 d1c9699dde7f9d81e54426750008041d
cpath: /trunk/server
copyroot: 15280 /trunk

id: 48.5ck.r19033/26127
type: file
pred: 48.5ck.r18995/4285
count: 205
text: 19033 3602 43 12947 60d9f755e701d8567ed67057dec4e65c
props: 10755 43604 112 0 b4bb2e29c9087472d2e44c6eab39b6d6
cpath: /trunk/common/unit.h
copyroot: 15280 /trunk

id: 2gj.5ck.r19033/26367
type: file
pred: 2gj.5ck.r17772/56602
count: 15
text: 19033 668 31 6564 4803137fb546666a214b7ead0376c8c4
props: 9051 16448 110 0 fdfdab56f53d2388a66f6a5ce0985f95
cpath: /trunk/common/aicore/citymap.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 18u.5ck.r15407/8822
K 11
aisupport.c
V 25
file 2em.5ck.r16015/33732
K 11
aisupport.h
V 22
file 2en.0.r8119/19806
K 9
caravan.c
V 26
file 33l.5ck.r18383/105781
K 9
caravan.h
V 26
file 33m.5ck.r16578/406062
K 9
citymap.c
V 25
file 2gj.5ck.r19033/26367
K 9
citymap.h
V 25
file 2gk.5ck.r18054/24427
K 4
cm.c
V 25
file 18x.5ck.r18549/25682
K 4
cm.h
V 25
file 18y.5ck.r18054/24184
K 14
path_finding.c
V 25
file 2ds.5ck.r18903/22332
K 14
path_finding.h
V 24
file 2dt.5ck.r18543/4248
K 10
pf_tools.c
V 25
file 2du.5ck.r18903/22081
K 10
pf_tools.h
V 24
file 2dv.5ck.r15868/6236
END
ENDREP
id: 18t.5ck.r19033/27229
type: dir
pred: 18t.5ck.r18903/23201
count: 251
text: 19033 26616 600 600 0ee56048b74e30e3b227ba51e71bfe7d
props: 11108 8037 65 0 8b44e87f657ecca3b8458ca1746fb7c6
cpath: /trunk/common/aicore
copyroot: 15280 /trunk

id: 4gp.5ck.r19033/27469
type: file
pred: 4gp.5ck.r18950/22899
count: 29
text: 19033 19275 113 4824 10d75e7a9a71a631a3581ee6a20b2a00
cpath: /trunk/common/ai.h
copyroot: 15280 /trunk

id: 2ll.5ck.r19033/27652
type: file
pred: 2ll.5ck.r18893/63396
count: 89
text: 19033 3408 86 10883 90e02f742c8c328fb46491f373f1d82a
props: 10836 12026 111 0 18cdb9becb11c47631b7a093e907200c
cpath: /trunk/common/fc_types.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.r19033/27469
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 23
file r.5ck.r18903/23441
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 25
file 45.5ck.r18308/148128
K 8
player.h
V 24
file 46.5ck.r18942/30556
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 24
file 33i.5ck.r18062/9622
K 6
team.h
V 25
file 33j.5ck.r18858/94759
K 6
tech.c
V 23
file t.5ck.r18428/28454
K 6
tech.h
V 23
file u.5ck.r18858/94519
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 25
file 2ys.5ck.r18740/13280
K 6
tile.h
V 25
file 2yt.5ck.r18858/97315
K 6
unit.c
V 23
file v.5ck.r18802/20869
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.r19033/31506
type: dir
pred: p.5ck.r19025/14544
count: 2961
text: 19033 27898 3595 3595 e9912982c0e6bf62972fe58c69a5a004
props: 12883 2571 96 0 2763e13ff5d021346ae24ff6c9ced232
cpath: /trunk/common
copyroot: 15280 /trunk

id: c.5ck.r19033/31738
type: file
pred: c.5ck.r18987/7378
count: 79
text: 19033 19416 267 5789 661978455065c56a9e0abcaef55458a9
props: 10819 16731 111 0 4431d79514046f1aa5f62b22420cfa99
cpath: /trunk/ai/aiunit.h
copyroot: 15280 /trunk

id: 2iw.5ck.r19033/31974
type: file
pred: 2iw.5ck.r18903/27767
count: 68
text: 19033 19710 314 40071 c829ca3c718fba9dcce03b464f1c2d25
props: 10806 16634 111 0 45c0e160a790dc8f7645f8a7eabea654
cpath: /trunk/ai/aiferry.c
copyroot: 15280 /trunk

id: 9.5ck.r19033/32217
type: file
pred: 9.5ck.r18872/73129
count: 225
text: 19033 725 1673 47334 3cdf4baa833e62f07d992e6dbb6bc574
props: 11015 549 112 0 bb22896f97f507ab8508e233583a40b4
cpath: /trunk/ai/aitools.c
copyroot: 15280 /trunk

id: a.5ck.r19033/32454
type: file
pred: a.5ck.r18846/5369
count: 81
text: 19033 3169 214 3831 3207986ccc91b5cc646c6a3fb07c3190
props: 10865 30111 111 0 7f9b5cf6c8fffd7438ed66579e7ad166
cpath: /trunk/ai/aitools.h
copyroot: 15280 /trunk

id: 16r.5ck.r19033/32690
type: file
pred: 16r.5ck.r18938/1321
count: 94
text: 19033 3673 622 25286 fdf687f4be53697a40176f0b13ed66d1
props: 10756 119 111 0 93121dcfd7714818c8d46f9c51a886fa
cpath: /trunk/ai/aidiplomat.c
copyroot: 15280 /trunk

id: 1u.5ck.r19033/32932
type: file
pred: 1u.5ck.r18872/74491
count: 260
text: 19033 4324 682 52409 dd1ed6143f8c5e2e466761036d78fda3
props: 10765 17515 112 0 ecd9c25ffd2014c732acffc1b3aab533
cpath: /trunk/ai/advmilitary.c
copyroot: 15280 /trunk

id: 4n8.5fg.r19033/33177
type: file
pred: 4n8.5fg.r18950/27404
count: 19
text: 19033 3523 50 2956 4d5b29d46d2c0ebb7c1c58c6919b67e1
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.r19033/33177
K 11
defaultai.h
V 24
file 4n9.5fh.r18919/5417
END
ENDREP
id: 6k3.5ck.r19033/33551
type: dir
pred: 6k3.5ck.r19010/5576
count: 3
text: 19033 33392 146 146 73df04ccb121eb74d935aefc389a5fc3
props: 19010 5510 53 0 1aad128f6d028f535e9ce7233326568e
cpath: /trunk/ai/default
copyroot: 15280 /trunk

id: 2gc.5ck.r19033/33785
type: file
pred: 2gc.5ck.r18872/75597
count: 56
text: 19033 5187 872 18911 828228bb628ed5b6d25285d886ccacf3
props: 10843 995 111 0 5515c59917848b493fbf45ffb42836b3
cpath: /trunk/ai/aihunt.c
copyroot: 15280 /trunk

id: b.5ck.r19033/34024
type: file
pred: b.5ck.r18987/7612
count: 450
text: 19033 6089 1804 95983 9d9eba23b208a93aeabe3daa12196300
props: 10755 57649 112 0 77fd11a7d1954721a87806f6d511a224
cpath: /trunk/ai/aiunit.c
copyroot: 15280 /trunk

id: 2lh.5ck.r19033/34262
type: file
pred: 2lh.5ck.r18955/16695
count: 74
text: 19033 7924 11324 41562 6af41e427520b6ebb5639444f58107e0
props: 10865 31505 111 0 23629f8214b2309975780a037517e920
cpath: /trunk/ai/aisettler.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 23
file 5d.5ck.r18919/6092
K 14
advdiplomacy.c
V 23
file 2ek.5ck.r18940/604
K 14
advdiplomacy.h
V 24
file 2el.5ck.r18850/9973
K 13
advdomestic.c
V 24
file 1m.5ck.r18872/72727
K 13
advdomestic.h
V 23
file 1n.0.r13297/443238
K 13
advmilitary.c
V 24
file 1u.5ck.r19033/32932
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.r18950/27163
K 8
aicity.h
V 24
file 21.5ck.r18844/14950
K 12
aidiplomat.c
V 25
file 16r.5ck.r19033/32690
K 12
aidiplomat.h
V 25
file 16s.5ck.r18054/30699
K 9
aiferry.c
V 25
file 2iw.5ck.r19033/31974
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.r18969/18372
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.r18872/75106
K 15
aiparatrooper.h
V 23
file 36p.0.r12670/95202
K 10
aiplayer.c
V 25
file 6i3.5ck.r18872/72974
K 10
aiplayer.h
V 25
file 6i4.5ck.r18872/73367
K 11
aisettler.c
V 25
file 2lh.5ck.r19033/34262
K 11
aisettler.h
V 24
file 2li.5ck.r18951/6684
K 8
aitech.c
V 25
file 24.5ck.r17839/186545
K 8
aitech.h
V 22
file 25.0.r10755/53545
K 9
aitools.c
V 23
file 9.5ck.r19033/32217
K 9
aitools.h
V 23
file a.5ck.r19033/32454
K 8
aiunit.c
V 23
file b.5ck.r19033/34024
K 8
aiunit.h
V 23
file c.5ck.r19033/31738
K 7
default
V 24
dir 6k3.5ck.r19033/33551
K 4
stub
V 23
dir 6k5.5ck.r19010/5876
END
ENDREP
id: 8.5ck.r19033/36203
type: dir
pred: 8.5ck.r19010/7793
count: 1353
text: 19033 34508 1682 1682 6f23d0b1aaab1aa5ba7ccf56242eff93
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 22
file 6.5ck.r17486/2711
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.r19033/36203
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 21
dir d.5ck.r19032/7838
K 6
common
V 22
dir p.5ck.r19033/31506
K 12
config.mac.h
V 20
file hb.0.r6045/5982
K 12
configure.ac
V 25
file 149.5ck.r18977/14579
K 4
data
V 22
dir w.5ck.r19029/24248
K 6
debian
V 22
dir 5w.5ck.r18989/6046
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 23
dir k7.5ck.r18983/38979
K 10
fc_version
V 26
file 2lo.5en.r18452/124959
K 2
m4
V 23
dir 12p.5ck.r19027/3069
K 6
manual
V 24
dir 2m2.5ck.r18977/26951
K 7
modinst
V 23
dir 4pj.5ck.r18974/2548
K 2
po
V 24
dir fs.5ck.r19028/227767
K 7
scripts
V 23
dir 2yo.5bk.r14810/1300
K 6
server
V 22
dir z.5ck.r19033/25896
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.r18991/3392
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.r19033/37747
type: dir
pred: 3.5ck.r19032/9380
count: 14125
text: 19033 36431 1303 1303 0d1b58d4807e90c0cf21bad9c29cf67b
props: 17175 3052 264 0 91336f1f63d2f606e65376614b5c72e4
cpath: /trunk
copyroot: 15280 /trunk

PLAIN
K 8
branches
V 19
dir 1.0.r19030/3956
K 4
tags
V 19
dir 2.0.r18763/5338
K 5
trunk
V 22
dir 3.5ck.r19033/37747
K 7
website
V 18
dir 3ge.0.r12388/0
END
ENDREP
id: 0.0.r19033/38136
type: dir
pred: 0.0.r19032/9766
count: 19033
text: 19033 37973 150 150 d3fd2ddbe3ed4c1ac401839223c5c11e
cpath: /
copyroot: 0 /

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

48.5ck.t19032-1 modify true false /trunk/common/unit.h

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

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

2gc.5ck.t19032-1 modify true false /trunk/ai/aihunt.c

b.5ck.t19032-1 modify true false /trunk/ai/aiunit.c

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

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

c.5ck.t19032-1 modify true false /trunk/ai/aiunit.h

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

7s.5ei.t19032-1 modify true false /trunk/server/advisors/autosettlers.c

2gj.5ck.t19032-1 modify true false /trunk/common/aicore/citymap.c

7t.5ej.t19032-1 modify true false /trunk/server/advisors/autosettlers.h

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

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

1a.5ck.t19032-1 modify true false /trunk/server/unittools.c

a.5ck.t19032-1 modify true false /trunk/ai/aitools.h

2ll.5ck.t19032-1 modify true false /trunk/common/fc_types.h

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


38136 38285
