anchor.diff:  
     // Give new orders
     if (Length(UGA) > 0) then
  -    OrderToAttack(ActualPosition, UGA, HA, False)
  +    OrderToAttack(ScanPosition, UGA, HA, False)
     else if (Length(HA) > 0) then
  -    OrderToAttack(ActualPosition, UGA, HA, True)
  +    OrderToAttack(ScanPosition, UGA, HA, True)
     else if SquadsAreReady then
  -    OrderMove(ActualPosition);
  +    OrderMove(PathPosition);
   
     // Update state of Squads
     for GT := Low(TGroupType) to High(TGroupType) do
  
positive.code: end;
  
  
  {
  function TAICompany.FindPath(aStart,aEnd: TKMPoint; aPolygonPath: TKMWordArray; aPointPath: TKMPointArray): Boolean;
  begin
    Result := fPathfinding.Route_Make(aStart, aEnd, aPolygonPath, aPointPath);
  end;
  }
  
  function TAICompany.IsGroupInCompany(aGroup: TKMUnitGroup): Boolean;
  var
    I: Integer;
    G: TGroupType;
    Squad: TAISquad;
  begin
    Result := True;
    for G := Low(TGroupType) to High(TGroupType) do
      for I := 0 to fSquads[G].Count-1 do
      begin
        Squad := fSquads[G][I];
        if (Squad.Group = aGroup) then
          Exit;
      end;
    Result := False;
  end;
  
  
negative.code:     procedure SetTargetHouse(aHouse: TKMHouse);
      procedure SetTargetUnit(aUnit: TKMUnit);
    public
      constructor Create(aGroup: TKMUnitGroup; aPlayer: TKMHandIndex);
      constructor Load(LoadStream: TKMemoryStream);
      destructor Destroy; override;
      procedure Save(SaveStream: TKMemoryStream);
  