anchor.diff:  
   procedure TKMArmyManagement.Paint();
   begin
  -  //gRenderAux.CircleOnTerrain(X, Y, 5, $09FFFFFF, $99FFFFFF);
  -  //gRenderAux.Quad(X, Y, Color: Cardinal);
  +
   end;
   
   
  
positive.code: procedure TKMArmyManagement.CheckNewThreat(aUnit: TKMUnit; aAttacker: TKMUnit);
  begin
    //Attacker may be already dying (e.g. killed by script)
    if (aAttacker = nil) OR aAttacker.IsDeadOrDying OR not (aAttacker is TKMUnitWarrior) then
      Exit;
    AddNewThreat( TKMUnitWarrior(aAttacker) );
  end;
  
  
  procedure TKMArmyManagement.AddNewThreat(aAttacker: TKMUnitWarrior);
  var
    Group: TKMUnitGroup;
  begin
    Group := gHands[ aAttacker.Owner ].UnitGroups.GetGroupByMember( aAttacker );
    if (Group = nil) OR Group.IsDead then
      Exit;
    if (fHostileGroups.IndexOf(Group) = -1) then
      fHostileGroups.Add( Group.GetGroupPointer() );
  end;
  
  
  
negative.code:     procedure RecruitSoldiers();
      procedure CheckGroupsState();
      procedure CheckAttack();
      procedure AddNewThreat(aAttacker: TKMUnitWarrior; aUnit: TKMUnit = nil);
      procedure CheckThreats();
    public
      constructor Create(aPlayer: TKMHandIndex; aSetup: TKMHandAISetup);
  