anchor.diff:  implementation
   uses
     SysUtils, TypInfo,
  -  KM_GameParams, KM_HandsCollection, KM_RenderAux, KM_RenderPool, KM_Hand,
  +  KM_Game, KM_GameParams, KM_HandsCollection, KM_RenderAux, KM_RenderPool, KM_Hand,
     KM_UnitGroupTypes, KM_InterfaceGame;
   
   
   { TAIDefencePosition }
  -constructor TAIDefencePosition.Create(const aPos: TKMPointDir; aGroupType: TKMGroupType; aRadius: Integer; aDefenceType: TKMAIDefencePosType);
  -begin
  -  inherited Create;
  +constructor TAIDefencePosition.Create(aUID: Integer; const aPos: TKMPointDir; aGroupType: TKMGroupType; aRadius: Integer; aDefenceType: TKMAIDefencePosType);
  +begin
  +  inherited Create(aUID);
   
     Assert(aGroupType in GROUP_TYPES_VALID, 'Invalid group type: ' + GetEnumName(TypeInfo(TKMGroupType), Integer(aGroupType)));
     fPosition := aPos;
  
positive.code: procedure TAIDefencePositions.Add(const aPos: TKMPointDir; aGroupType: TKMGroupType; aRadius: Integer; aDefenceType: TKMAIDefencePosType);
  begin
    Assert(aGroupType in GROUP_TYPES_VALID, 'Invalid group type: ' + GetEnumName(TypeInfo(TKMGroupType), Integer(aGroupType)));
    fPositions.Add(TAIDefencePosition.Create(aPos, aGroupType, aRadius, aDefenceType));
  end;
  
  
  
negative.code:     procedure SetDefenceType(const Value: TKMAIDefencePosType);
      procedure SetPosition(const Value: TKMPointDir);
    public
      constructor Create(aUID: Integer; const aPos: TKMPointDir; aGroupType: TKMGroupType; aRadius: Integer; aDefenceType: TKMAIDefencePosType);
      constructor Load(LoadStream: TKMemoryStream); override;
      destructor Destroy; override;
  
      property DefenceType: TKMAIDefencePosType read fDefenceType write SetDefenceType;
  