anchor.diff:      procedure SetDefenceType(const Value: TKMAIDefencePosType);
       procedure SetPosition(const Value: TKMPointDir);
     public
  -    constructor Create(const aPos: TKMPointDir; aGroupType: TKMGroupType; aRadius: Integer; aDefenceType: TKMAIDefencePosType);
  -    constructor Load(LoadStream: TKMemoryStream);
  +    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;
  
positive.code: implementation
  uses
    SysUtils, TypInfo,
    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;
  
    Assert(aGroupType in GROUP_TYPES_VALID, 'Invalid group type: ' + GetEnumName(TypeInfo(TKMGroupType), Integer(aGroupType)));
    fPosition := aPos;
  
negative.code: 
  constructor TAIDefencePosition.Load(LoadStream: TKMemoryStream);
  begin
    inherited;
  
    LoadStream.CheckMarker('ClsDefencePos');
    LoadStream.Read(fPosition);
    LoadStream.Read(fGroupType, SizeOf(fGroupType));
  