anchor.diff:    public
   
       constructor Create;
  +    destructor Destroy; override;
   
  +    function AddMember(Warrior: TKMUnitWarrior):Integer; 
  +    function GetPosition(PosDir: TKMPointDir): Boolean;
  +    //function GetPositionInGroup(Member:Integer; AllowOffMap:boolean=false): TKMPoint;
  +
  +    property Commander: TKMUnitWarrior read fCommander;
       property Count: integer read GetCount;
       property Members[Index: Integer]: TKMUnitWarrior read GetMember;
       property UnitsPerRow: Integer read fUnitsPerRow write SetUnitsPerRow;
  
positive.code: 
  procedure TKMGroup.SetNewCommander;
  begin
    fCommander := -1;
    if fMembers.Count = 0 then exit;
    // Calculation of new Commander
  end;
  
  procedure TKMGroup.SetUnitsPerRow(Qty: Integer);
  begin
    fUnitsPerRow := EnsureRange(Qty, 1, fMembers.Count+1);
  end;
  
  end.
negative.code: interface
  
  uses Classes,
       KM_CommonTypes, KM_Terrain, KM_Units_Warrior;
  
  type    
  
    TKMGroup = class
    private
  
      fCommander: TKMUnitWarrior; // Index of squad commander in fMembers
      fMembers: TList; // Warriors. List of TKMUnitWarrior.
      fUnitsPerRow: Integer;
  
  