anchor.diff:    finally
       S.Free;
     end;
  +  //We can regenerate the MapEd data if it's missing (won't be as good as the original)
  +  if not MapEdChunkFound then
  +  begin
  +    fLog.AddNoTime('Regenerating missing MapEd data as best as we can');
  +    GenerateAddnData;
  +  end;
   end;
   
   
  
positive.code:     S.Seek(17 * ResHead.Allocated, soFromCurrent);
  
      //ADDN
      if S.Position < S.Size then
      begin
        Chunk := '    ';
  
negative.code: end;
  
  
  procedure TKMTerrainPainter.RebuildMap(X,Y,Rad: Integer; aSquare: Boolean);
  var
    I, K, pY, pX, Nodes, Rot, T: Integer;
    Tmp, Ter1, Ter2, A, B, C, D: TTerrainKind;
  begin
    for I := -Rad to Rad do
    for K := -Rad to Rad do
    if aSquare or (Sqr(I) + Sqr(K) < Sqr(Rad)) then
    begin
      pX := EnsureRange(X+K, 1, fTerrain.MapX - 1);
      pY := EnsureRange(Y+I, 1, fTerrain.MapY - 1);
  