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: 
    for I := 0 to Count - 1 do
    begin
      P := GetMemberLoc(I);
      Members[I].OrderWalk(P.Loc, P.Exact, aForced);
      Members[I].FaceDir := NewDir;
    end;
  
negative.code:     function GetFlagBearer: TKMUnitWarrior;
      function GetNearestMember(aUnit: TKMUnitWarrior): Integer; overload;
      function GetNearestMember(const aLoc: TKMPoint): TKMUnitWarrior; overload;
  
  
      function GetMemberLoc(aIndex: Integer): TKMPoint; overload;
      function GetMemberLocExact(aIndex: Integer): TKMPointExact; overload;
      function GetMemberLocExact(aIndex: Integer; out aExact: Boolean): TKMPoint; overload;
  
  
      procedure SetMapEdCount(aCount: Word);
      procedure SetUnitsPerRow(aCount: Word);
      procedure SetDirection(Value: TKMDirection);
  