anchor.diff:  
     for I := 0 to Count - 1 do
     begin
  -    P := GetMemberLoc(I);
  +    P := GetMemberLocExact(I);
       Members[I].OrderWalk(P.Loc, P.Exact, aForced);
       Members[I].FaceDir := NewDir;
     end;
  
positive.code:     for I := 0 to Count - 1 do
      begin
        //Check target in range, and if not - chase it / back up from it
        P := GetMemberLoc(I);
        if not KMSamePoint(Members[I].CurrPosition, P.Loc)
          and((KMLength(Members[I].NextPosition, OrderTargetUnit.CurrPosition) > Members[I].GetFightMaxRange)
          or (KMLength(Members[I].NextPosition, OrderTargetUnit.CurrPosition) < Members[I].GetFightMinRange)) then
  
negative.code:                             for I := 0 to Count - 1 do
                              if Members[I].IsIdle then
                              begin
                                P := GetMemberLocExact(I);
                                if KMSamePoint(Members[I].CurrPosition, P.Loc)
                                or (KMLength(Members[I].CurrPosition, OrderTargetUnit.CurrPosition) <= Members[I].GetFightMaxRange) then
                                begin
  