anchor.diff:      if (MultipleTypes and(TKMUnitWarrior(fMembers.Items[i-DeletedCount]).GetUnitType <> fUnitType)) or
         ((not MultipleTypes)and(i-DeletedCount >= fMembers.Count div 2)) then
       begin
  -      //Join new commander
  -      NewCommander.fMembers.Add(fMembers.Items[i-DeletedCount]);
  +      NewCommander.AddMember(fMembers.Items[i-DeletedCount]); //Join new commander
         TKMUnitWarrior(fMembers.Items[i-DeletedCount]).fCommander := NewCommander;
  -      //Leave this commander
  -      fMembers.Delete(i-DeletedCount);
  +      fMembers.Delete(i-DeletedCount); //Leave this commander
         inc(DeletedCount);
       end; //Else stay with this commander
     end;
     //Make sure units per row is still valid
  -  fUnitsPerRow := min(fUnitsPerRow,fMembers.Count+1);
  -  NewCommander.fUnitsPerRow := min(NewCommander.fUnitsPerRow,NewCommander.fMembers.Count+1);
  +  fUnitsPerRow := min(fUnitsPerRow, fMembers.Count+1);
  +  NewCommander.fUnitsPerRow := min(fUnitsPerRow, NewCommander.fMembers.Count+1);
     //Tell both commanders to reposition
  +  Halt;
     NewCommander.Halt;
  -  Halt;
   end;
   
   
  
positive.code:     else
        fThought:=th_None;
  
    //Tell the player to feed us if we are hungry and a commander
    //todo: This shouldn't run every tick
    if (fOwner = MyPlayer.PlayerID) and (fCommander = nil) then
    begin
      SomeoneHungry := (fCondition < UNIT_MIN_CONDITION);
      if (fMembers <> nil) and (not SomeoneHungry) then
        for i:=0 to fMembers.Count-1 do
        begin
  
negative.code:   for i:=-LinkRadius to LinkRadius do
      for k:=-LinkRadius to LinkRadius do
      begin
        FoundUnit := fPlayers.Player[byte(fOwner)].UnitsHitTest(aLoc.X+i, aLoc.Y+k);
        if (FoundUnit is TKMUnitWarrior) and (TKMUnitWarrior(FoundUnit).fAutoLinkState = wl_Linkable) and
           (FoundUnit.GetUnitType = GetUnitType) then //For initial linking they must be the same type, not just same group type
        begin
          Result := TKMUnitWarrior(FoundUnit);
          exit; //@Lewin: I guess it's 'exit' instead of 'break', right?
        end;
      end
  end;
  