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: interface
  uses
    Math,
    KM_UnitGroup,
    KM_CommonClasses, KM_Defaults, KM_Points,
    KM_AITypes;
  
  
  type
    TAIDefencePosition = class
    private
      fDefenceType: TKMAIDefencePosType; //Whether this is a front or back line defence position. See comments on TAIDefencePosType above
      fGroupType: TKMGroupType; //Type of group to defend this position (e.g. melee)
  
negative.code: 
  constructor TAIDefencePosition.Load(LoadStream: TKMemoryStream);
  begin
    inherited;
  
    LoadStream.CheckMarker('ClsDefencePos');
    LoadStream.Read(fPosition);
    LoadStream.Read(fGroupType, SizeOf(fGroupType));
  