anchor.diff:    SysUtils, TypInfo, Math, KM_CommonUtils;
   
   
  -constructor TKMPoint.New(aX, aY: Integer);
  -begin
  -  X := aX;
  -  Y := aY;
  -end;
  +class function TKMPoint.New(aX, aY: Integer): TKMPoint;
  +begin
  +  Result.X := aX;
  +  Result.Y := aY;
  +end;
  +
   
   class operator TKMPoint.Equal(const A, B: TKMPoint): Boolean;
   begin
  
positive.code: begin
    Result := not KMSamePoint(A,B);
  end;
  
  function TKMPoint.ToString: String;
  begin
  
negative.code:   //Records must be packed so they are stored identically in MP saves (padding bytes are unknown values)
    TKMPoint = record
      X,Y: Integer;
  
      function ToString: String;
  
      class operator Equal(const A, B: TKMPoint): Boolean;
      class operator NotEqual(const A, B: TKMPoint): Boolean;
      class operator Add(const A, B: TKMPoint): TKMPoint;
      class function New(aX, aY: Integer): TKMPoint; static;
    end;
  
    TKMPointF = record
  