anchor.diff:    FWidth:=0;
   end;
   
  +procedure TMapRect.Iterate(Callback: TMapCoordForEach);
  +var
  +  Current: TMapCoord;
  +  Stop: Boolean;
  +  i,j: SizeInt;
  +begin
  +  Stop := false;
  +
  +  for i := 0 to FWidth - 1 do
  +  begin
  +    for j := 0 to FHeight - 1 do
  +    begin
  +      Current.X := FTopLeft.X+i;
  +      Current.Y := FTopLeft.Y+j;
  +
  +      Callback(Current, Stop);
  +      if Stop then Exit;
  +    end;
  +  end;
  +end;
  +
   constructor TMapRect.SetFromCenter(X, Y, Width, Height: integer);
   begin
     Assert(width mod 2 = 1);
  
positive.code: 
  {$I compilersetup.inc}
  {$MODESWITCH ADVANCEDRECORDS}
  
  interface
  
  
negative.code:     function Intersect(Other: TMapRect):TMapRect;
  
      procedure Clear();
  
      procedure Iterate(Callback: TMapCoordForEach);
    end;
  
    TTileInfo = record
  