DELTA
SVN   ºPºP€ºP/**********************************************************************
 Freeciv - Copyright (C) 1996-2015 - Freeciv Development Team
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
***********************************************************************/

/* common */
#include "actions.h"

/* server */
#include "aiiface.h"
#include "actiontools.h"
#include "notify.h"
#include "plrhand.h"

/**************************************************************************
  After an action of a diplomat, maybe it will cause a diplomatic incident
  with the victim.
**************************************************************************/
static void maybe_cause_incident(const enum gen_action action,
                                 struct player *offender,
                                 struct player *victim_player,
                                 const struct tile *victim_tile,
                                 const char *victim_link)
{
  if (!pplayers_at_war(offender, victim_player)) {
    switch (action) {
    case ACTION_SPY_BRIBE_UNIT:
      notify_player(offender, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("You have caused an incident while bribing "
                      "the %s %s."),
                    nation_adjective_for_player(victim_player),
                    victim_link);
      notify_player(victim_player, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("%s has caused an incident while bribing your %s."),
                    player_name(offender), victim_link);
      break;
    case ACTION_SPY_SABOTAGE_UNIT:
      notify_player(offender, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("You have caused an incident while"
                      " sabotaging the %s %s."),
                    nation_adjective_for_player(victim_player),
                    victim_link);
      notify_player(victim_player, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("The %s have caused an incident while"
                      " sabotaging your %s."),
                    nation_plural_for_player(offender),
                    victim_link);
      break;
    case ACTION_SPY_STEAL_TECH:
    case ACTION_SPY_TARGETED_STEAL_TECH:
      notify_player(offender, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("You have caused an incident while attempting "
                      "to steal tech from %s."),
                    player_name(victim_player));
      notify_player(victim_player, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("%s has caused an incident while attempting "
                      "to steal tech from you."), player_name(offender));
      break;
    case ACTION_SPY_INCITE_CITY:
      notify_player(offender, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("You have caused an incident while inciting a "
                      "revolt in %s."), victim_link);
      notify_player(victim_player, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("The %s have caused an incident while inciting a "
                      "revolt in %s."),
                    nation_plural_for_player(offender), victim_link);
      break;
    case ACTION_SPY_POISON:
      notify_player(offender, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("You have caused an incident while poisoning %s."),
                    victim_link);
      notify_player(victim_player, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("The %s have caused an incident while poisoning %s."),
                    nation_plural_for_player(offender), victim_link);
      break;
    case ACTION_SPY_SABOTAGE_CITY:
    case ACTION_SPY_TARGETED_SABOTAGE_CITY:
      notify_player(offender, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("You have caused an incident while sabotaging %s."),
                    victim_link);
      notify_player(victim_player, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("The %s have caused an incident while sabotaging %s."),
                    nation_plural_for_player(offender), victim_link);
      break;
    case ACTION_SPY_STEAL_GOLD:
      notify_player(offender, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("You have caused an incident while"
                      " stealing gold from %s."),
                    victim_link);
      notify_player(victim_player, victim_tile,
                    E_DIPLOMATIC_INCIDENT, ftc_server,
                    _("The %s have caused an incident while"
                      " stealing gold from %s."),
                    nation_plural_for_player(offender), victim_link);
      break;
    case ACTION_CAPTURE_UNITS:
      /* TODO: Should cause an incident in rulesets were units can be
       * captured in peace time. If units from more than one nation
       * were captured each victim nation should now have casus belli. */
    case ACTION_MOVE:
    case ACTION_ESTABLISH_EMBASSY:
    case ACTION_SPY_INVESTIGATE_CITY:
    case ACTION_TRADE_ROUTE:
    case ACTION_MARKETPLACE:
    case ACTION_HELP_WONDER:
      return; /* These are not considered offences */
    }
    player_diplstate_get(victim_player, offender)->has_reason_to_cancel = 2;
    call_incident(INCIDENT_DIPLOMAT, offender, victim_player);
    send_player_all_c(offender, NULL);
    send_player_all_c(victim_player, NULL);
  }

  return;
}

/**************************************************************************
  Take care of any consequences (like casus belli) of getting caught while
  trying to perform the given action.
**************************************************************************/
void action_consequence_caught(const int action_id,
                               struct player *offender,
                               struct player *victim_player,
                               const struct tile *victim_tile,
                               const char *victim_link)
{
  maybe_cause_incident(action_id, offender,
                       victim_player, victim_tile, victim_link);
}

/**************************************************************************
  Take care of any consequences (like casus belli) of successfully
  performing the given action.
**************************************************************************/
void action_consequence_success(const int action_id,
                                struct player *offender,
                                struct player *victim_player,
                                const struct tile *victim_tile,
                                const char *victim_link)
{
  maybe_cause_incident(action_id, offender,
                       victim_player, victim_tile, victim_link);
}
ENDREP
DELTA
SVN   ‹‹€‹/**********************************************************************
 Freeciv - Copyright (C) 1996-2015 - Freeciv Development Team
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
***********************************************************************/

#ifndef FC__ACTIONTOOLS_H
#define FC__ACTIONTOOLS_H

/* common */
#include "player.h"
#include "tile.h"

void action_consequence_caught(const int action_id,
                               struct player *offender,
                               struct player *victim_player,
                               const struct tile *victim_tile,
                               const char *victim_link);

void action_consequence_success(const int action_id,
                                struct player *offender,
                                struct player *victim_player,
                                const struct tile *victim_tile,
                                const char *victim_link);

#endif /* FC__ACTIONTOOLS_H */
ENDREP
DELTA 27705 35719 136
SVN  ›jœ
 …g Ÿ –…bctiontools.c	\
		actiontools.h	ENDREP
DELTA 27181 25060 9441
SVN  ƒãYƒ»_|‡I ˆ)  Œˆ G  ‘e—€F ”h©<€P •¾h€M ‚T¾h •U×€M ›!í.€J Œ.‰€{ ›•p¼ …U±9¾ }‚¢/ š¹I¹ ‹wÔu€{ ÀMá!¾ œR‚¢/€Z ùU‚¿O ‚oƒàjctiontools.h"
action_consequence_success(ACTION_SPY_POISON, pplayer, cplayer,
      action_consequence_success(ACTION_SPY_INVESTIGATE_CITY, pplayer, cplayer,
      action_consequence_success(ACTION_ESTABLISH_EMBASSY, pplayer, cplayer,
      action_consequence_success(ACTION_SPY_SABOTAGE_UNIT, pplayer, uplayer,
      action_consequence_success(ACTION_SPY_BRIBE_UNIT, pplayer, uplayer,
                             struct city  *pcity, Tech_type_id technology,
                       const enum gen_action action_idaction_consequence_caught(action_id, pplayer, cplayer,
     action_consequence_success(action_id, pplayer, cplayer,
      action_consequence_success(ACTION_SPY_INCITE_CITY,
                             struct city *pcity, Impr_type_id improvement,
                       const enum gen_action action_idaction_consequence_success(action_id, pplayer, cplayer,
      action_consequence_success(ACTION_SPY_STEAL_GOLD, act_player,
                            ENDREP
DELTA 28377 0 2892
SVN  †  †  M$ Š4 Ž †RŠ)° Uƒ›™ D’=² ²5“;€F œlÅh„ jÚ:™ ‚.Ô0„ kæl„ fß=„ ¡à'€@ qú,€[ °e€~ ‡8±4… ¾.¸\  ]î{Š ¬"õ,¸ ƒ‚¢€\ ‚¢;‹ S‚Ÿ{‚ ‚ ~‚©'€. „f„Ê €‚n ®.„Ît² }„ý\‚ Š„ÿ_€T ‰\…‰p° Uƒ›™ „B…•‚ Ë…™[€‚T ¢'…ätactiontools.h"do_unit_establish_trade(struct player *pplayer,
struct city *pcity_dest,
do_unit_help_build_wonder(struct player *pplayer,
/* May cause an incident */
    action_consequence_success(ACTION_CAPTURE_UNITS, pplayer,
                               unit_owner(to_capture),
                               pdesttile, victim_linktiletile(struct unit *actor,
TILEtiletileTILE:
      if (target_tile == NULL) {
        /* No target tiletile_owner(target_tile))->type != DS_WAR) {
        return tile_owner(target_tile);
      }if (target_tile && action_get_target_kind(act) == ATK_TILE) {
      probabilities[act] = action_prob_vs_tile(actor_unit, act,
TILE:#define ACTION_STARTED_UNIT_TILEtile", 3, do_unit_establish_trade(pplayer, actor_unit->id, pcity,
do_unit_establish_trade(pplayer, actor_unit->id, pcity,
                                FALSHELP_WONDERdo/* Consider to pop up the action selection dialog if a potential city,
     * unit or units target exists at the destination tile. A tile target
     * alone isn't enough. */
          /* Pop up the action selection dialog even if the tile target is
           * the only target that, from the point of view of the player,
           * may be acted against. This is to avoid confusion for players
           * that don't remember the rules or aren't looking at the data
           * the rules depend on. */
          || may_unit_act_vs_tiledo_unit_help_build_wonder(struct player *pplayer,
do/* May cause an incident */
  action_consequence_success(ACTION_HELP_WONDER, pplayer,
                             city_owner(pcity_dest),
                             city_tile(pcity_dest), city_link(pcity_dest)do_unit_establish_trade(struct player *pplayer,
struct city *pcity_dest,
do/* May cause an incident */
  action_consequence_success(est_if_able ?
                               ACTION_TRADE_ROUTE :
                               ACTION_MARKETPLACE,
                             pplayer, city_owner(pcity_dest),
                             city_tile(pcity_dest),
                             city_link(pcity_dest));†  ½LÖ11–6€‡ B… €X B… €†) B… €\ B… €‡ B…   œH › „;œF œ.¡{
    unit_activity_handling(punit, new_activity);
  } else if (can_unit_do_activity_targeted(punit, new_activity, *new_target)) {
    enum unit_activity old_activity = punit->activity;
    struct extra_type *old_target = punit->activity_target;
    enum unit_activity stored_activity = new_activity;

    free_unit_orders(punit);
    unit_assign_specific_activity_target(punit,
                                         &new_activity, new_target);
    if (new_activity != stored_activity
        && !activity_requires_target(new_activity)) {
      /* unit_assign_specific_activity_target() changed our target activity
       * (to ACTIVITY_IDLE in practice) */
      unit_activity_handling(punit, new_activity);
    } else {
      set_unit_activity_targeted(punit, new_activity, *new_target);
      send_unit_info(NULL, punit);    
      unit_activity_dependencies(punit, old_activity, old_target);
    }
  }
}

/**********
  Handle a client request to load the given unit into the given transporter.
**********/
void handle_unit_load(struct player *pplayer, int cargo_id, int trans_id)
{
  struct unit *pcargo = player_unit_by_number(pplayer, cargo_id);
  struct unit *ptrans = game_unit_by_number(trans_id);

  if (NULL == pcargo) {
    /* Probably died or bribed. */
    log_verbose("handle_unit_load() invalid cargo %d", cargo_id);
    return;
  }

  if (NULL == ptrans) {
    /* Probably died or bribed. */
    log_verbose("handle_unit_load() invalid transport %d", trans_id);
    return;
  }

  /* A player may only load their units, but they may be loaded into
   * other player's transporters, depending on the rules in
   * can_unit_load(). */
  if (!can_unit_load(pcargo, ptrans)) {
    return;
  }

  /* Load the unit and send out info to clients. */
  unit_transport_load_send(pcargo, ptrans);
}

/**********
  Handle a client request to unload the given unit from the given
  transporter.
**********/
void handle_unit_unload(struct player *pplayer, int cargo_id, int trans_id)
{
  struct unit *pcargo = game_unit_by_number(cargo_id);
  struct unit *ptrans = game_unit_by_number(trans_id);

  if (NULL == pcargo) {
    /* Probably died or bribed. */
    log_verbose("handle_unit_unload() invalid cargo %d", cargo_id);
    return;
  }

  if (NULL == ptrans) {
    /* Probably died or bribed. */
    log_verbose("handle_unit_unload() invalid transport %d", trans_id);
    return;
  }

  /* You are allowed to unload a unit if it is yours or if the transporter
   * is yours. */
  if (unit_owner(pcargo) != pplayer && unit_owner(ptrans) != pplayer) {
    return;
  }

  if (!can_unit_unload(pcargo, ptrans)) {
    return;
  }

  if (!can_unit_survive_at_tile(pcargo, unit_tile(pcargo))) {
    return;
  }

  /* Unload the unit and send out info to clients. */
  unit_transport_unload_send(pcargo);
}

/********
Explode nuclear at a ti      case ACTIVITY_CONVERTENDREP
id: 1p83.5ck.r28427/15448
type: file
count: 0
text: 28427 0 7518 7504 54f7a86a38e9495335f351d1e2b25d75
cpath: /trunk/server/actiontools.c
copyroot: 15280 /trunk

id: 1p86.5ck.r28427/15610
type: file
count: 0
text: 28427 7531 1427 1413 ed2168ba35f5e5ca4158625ea3793de2
cpath: /trunk/server/actiontools.h
copyroot: 15280 /trunk

id: 18.5ck.r28427/15775
type: file
pred: 18.5ck.r28414/46091
count: 628
text: 28427 10189 5233 113457 fcebf0d3816b1bcf28f2fe21ed315c35
props: 11060 7742 112 0 090627d3849ce880ce4f29c1c260669f
cpath: /trunk/server/unithand.c
copyroot: 15280 /trunk

id: vz.5ck.r28427/16023
type: file
pred: vz.5ck.r27708/118706
count: 212
text: 28427 9052 1107 56799 db5b0d63085e1d8d366952bd2f9ac56e
props: 10915 10832 111 0 8ab1a522471ad7dd5014b23b42c49491
cpath: /trunk/server/diplomats.c
copyroot: 15280 /trunk

id: 5q.5ck.r28427/16272
type: file
pred: 5q.5ck.r27705/60281
count: 109
text: 28427 8971 52 3598 6baf5b83c6eb5fe764a7547a49721f55
props: 10619 59300 111 0 8ba011ca1ef4e408ab91a853a48e15eb
cpath: /trunk/server/Makefile.am
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 5q.5ck.r28427/16272
K 13
actiontools.c
V 26
file 1p83.5ck.r28427/15448
K 13
actiontools.h
V 26
file 1p86.5ck.r28427/15610
K 8
advisors
V 24
dir 4n2.5ck.r28159/10928
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.r27499/1629
K 11
barbarian.h
V 24
file lx.5ck.r22667/36940
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 24
file 10.5ck.r19573/66885
K 10
cityhand.h
V 23
file 4f.0.r13297/423686
K 11
citytools.c
V 24
file 4g.5ck.r28168/37702
K 11
citytools.h
V 24
file 4h.5ck.r28168/37943
K 10
cityturn.c
V 22
file 4i.5ck.r27969/146
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.r27336/16958
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 23
file 4m.5ck.r28335/7696
K 10
diplhand.h
V 23
file 4n.5ck.r27517/8916
K 11
diplomats.c
V 24
file vz.5ck.r28427/16023
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 24
dir 2me.5ck.r27705/61438
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 22
file 13.5ck.r28415/610
K 9
maphand.h
V 23
file 14.5ck.r24759/3742
K 6
meta.c
V 23
file 4s.5ck.r27134/1241
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.r27223/43157
K 9
plrhand.h
V 23
file 4v.5ck.r26956/6294
K 8
report.c
V 22
file vi.5ck.r28081/133
K 8
report.h
V 24
file vj.5ck.r24891/20006
K 10
rscompat.c
V 26
file 1kte.5ck.r28352/14252
K 10
rscompat.h
V 25
file 1ktg.5ck.r27698/6947
K 10
rssanity.c
V 25
file hew.5ck.r28352/14500
K 10
rssanity.h
V 25
file hey.5ck.r26905/55500
K 9
ruleset.c
V 23
file 8w.5ck.r28086/9002
K 9
ruleset.h
V 23
file 8x.5ck.r27724/4145
K 13
sanitycheck.c
V 22
file wi.5ck.r27281/872
K 13
sanitycheck.h
V 24
file wj.5ck.r28075/17176
K 12
savecompat.c
V 25
file qva.5ck.r27475/19728
K 12
savecompat.h
V 25
file qvc.5ck.r27279/35421
K 10
savegame.c
V 23
file vl.5ck.r27748/2915
K 10
savegame.h
V 24
file vm.5ck.r20758/19233
K 11
savegame2.c
V 24
file 4m0.5ck.r28335/7935
K 11
savegame2.h
V 25
file 4m1.5ck.r27478/65017
K 11
savegame3.c
V 24
file 4m0.5ql.r28335/7429
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 24
dir 31x.5ck.r28414/47536
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 23
file 2m0.5ck.r28419/318
K 10
settings.h
V 24
file 2m1.5ck.r27995/3767
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 23
file 15t.5el.r27914/980
K 9
srv_log.h
V 25
file 15u.5em.r28012/47157
K 10
srv_main.c
V 24
file vg.5ck.r28400/12883
K 10
srv_main.h
V 22
file vh.5ck.r27134/762
K 11
stdinhand.c
V 23
file 4z.5ck.r27995/4010
K 11
stdinhand.h
V 24
file 50.5ck.r26100/15471
K 11
techtools.c
V 25
file 33n.5ck.r28168/37452
K 11
techtools.h
V 24
file 33o.5ck.r27058/2134
K 10
unithand.c
V 24
file 18.5ck.r28427/15775
K 10
unithand.h
V 24
file 19.5ck.r23027/66151
K 11
unittools.c
V 23
file 1a.5ck.r28377/5986
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.r28427/20668
type: dir
pred: z.5ck.r28419/4611
count: 5917
text: 28427 16517 4138 4138 47520e9cd6c8d3cabe27017ca3674a68
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 22
file 6.5ck.r27777/1982
K 11
Makefile.am
V 23
file 59.5ck.r27480/1506
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.r28352/37163
K 10
autogen.sh
V 23
file 12o.5ck.r27624/562
K 9
bootstrap
V 23
dir 2p5.5ck.r27114/4172
K 6
client
V 22
dir d.5ck.r28425/16285
K 6
common
V 22
dir p.5ck.r28414/43316
K 12
configure.ac
V 24
file 149.5ck.r28268/4088
K 4
data
V 22
dir w.5ck.r28400/22782
K 12
dependencies
V 24
dir 2yu.5ck.r28380/20457
K 3
doc
V 23
dir k7.5ck.r28414/45862
K 10
fc_version
V 25
file 2lo.5en.r28414/43546
K 11
gen_headers
V 24
dir 1hsw.5ck.r28268/4645
K 2
m4
V 23
dir 12p.5ck.r28226/3499
K 7
scripts
V 23
dir 2yo.5ck.r27213/1366
K 6
server
V 22
dir z.5ck.r28427/20668
K 5
tests
V 23
dir 2g9.5ck.r27783/1363
K 5
tools
V 24
dir 4pj.5js.r28352/11660
K 12
translations
V 25
dir t0a.5ck.r28350/136460
K 7
utility
V 22
dir 1c.5ck.r28351/7826
K 5
win32
V 23
dir 2eu.5ck.r28347/2148
END
ENDREP
id: 3.5ck.r28427/22035
type: dir
pred: 3.5ck.r28425/17654
count: 19269
text: 28427 20899 1123 1123 f616e61b51becc032d708fcb593201a7
props: 28036 14655 292 0 9e1d5de0253c723466868990c52c129f
cpath: /trunk
copyroot: 15280 /trunk

PLAIN
K 8
branches
V 20
dir 1.0.r28426/18346
K 4
tags
V 19
dir 2.0.r28267/6358
K 5
trunk
V 22
dir 3.5ck.r28427/22035
K 7
website
V 21
dir 3ge.0.r22980/2263
END
ENDREP
id: 0.0.r28427/22430
type: dir
pred: 0.0.r28426/18670
count: 28427
text: 28427 22263 154 154 dc61dec0e67145a5a16a8ac7d66bf9ed
cpath: /
copyroot: 0 /

5q.5ck.t28426-1 modify true false /trunk/server/Makefile.am

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

vz.5ck.t28426-1 modify true false /trunk/server/diplomats.c

_2.5ck.t28426-1 add true false /trunk/server/actiontools.c

_5.5ck.t28426-1 add true false /trunk/server/actiontools.h


22430 22580
