anchor.diff:                              for I := 0 to Count - 1 do
                               if Members[I].IsIdle then
                               begin
  -                              P := GetMemberLoc(I);
  +                              P := GetMemberLocExact(I);
                                 if KMSamePoint(Members[I].CurrPosition, P.Loc)
                                 or (KMLength(Members[I].CurrPosition, OrderTargetUnit.CurrPosition) <= Members[I].GetFightMaxRange) then
                                 begin
  
positive.code: end;
  
  
  //Get member order location within formation
  function TKMUnitGroup.GetMemberLoc(aIndex: Integer): TKMPointExact;
  begin
    //Allow off map positions so GetClosestTile works properly
    Result.Loc := GetPositionInGroup2(fOrderLoc.Loc.X, fOrderLoc.Loc.Y,
                                      fOrderLoc.Dir, aIndex, fUnitsPerRow,
                                      gTerrain.MapX, gTerrain.MapY,
                                      Result.Exact);
    //Fits on map and is on passable terrain and have same walkConnect as member current position
    Result.Exact :=     Result.Exact
                    and gTerrain.CheckPassability(Result.Loc, tpWalk)
  
negative.code:     for I := 1 to fMembers.Count - 1 do
      begin
        Agents.Add(Members[I].CurrPosition);
        Tasks.Add(GetMemberLoc(I));
      end;
  
      //huIndividual as we'd prefer 20 members to take 1 step than 1 member to take 10 steps (minimize individual work rather than total work)
  