anchor.diff:      and (Bottom()>Other.Top())
       and (Other.Bottom()>Top());
   
  -  Result.Clear();
  +  Result.Create();
   
     if intersects then
     begin
  
positive.code: type
    { TMapRect }
  
    TMapRect = record
      FTopLeft: TMapCoord;
      FWidth,FHeight: Integer;
  
      function Left(): integer;
      function Right(): integer;
  
negative.code: 
  { TMapRect }
  
  constructor TMapRect.Create;
  begin
    Clear();
  end;
  
  function TMapRect.Left: integer;
  begin
    Result := FTopLeft.x;
  