anchor.diff:    Land[Loc.Y,Loc.X].TileOwner:=aOwner;
     Land[Loc.Y,Loc.X].TileOverlay:=to_None;
     Land[Loc.Y,Loc.X].FieldAge:=0;
  -  Land[Loc.Y,Loc.X].BeforeFieldTerrain:=Land[Loc.Y,Loc.X].Terrain;  
  -  Land[Loc.Y,Loc.X].BeforeFieldRotation:=Land[Loc.Y,Loc.X].Rotation;
  +  Land[Loc.Y,Loc.X].OldTerrain:=Land[Loc.Y,Loc.X].Terrain;
  +  Land[Loc.Y,Loc.X].OldRotation:=Land[Loc.Y,Loc.X].Rotation;
   
     if aFieldType=ft_Corn then begin
       Land[Loc.Y,Loc.X].Terrain:=62;
  
positive.code: procedure TTerrain.MakeNewMap(Width,Height:integer);
  var i,k,h:integer;
  begin
    MapX:=min(Width,MaxMapSize);
    MapY:=min(Height,MaxMapSize);
  
    for i:=1 to MapY do for k:=1 to MapX do with Land[i,k] do begin
      Terrain:=0;
      BeforeFieldTerrain:=0; 
      BeforeFieldRotation:=0;
      Height:=random(7);    //variation in height
      Rotation:=random(4);  //Make it random
      Obj:=255;             //none
      if Random(16)=0 then Obj:=ChopableTrees[Random(13)+1,4];
      TileOverlay:=to_None;
      Markup:=mu_None;
      Passability:=[]; //Gets recalculated later
      TileOwner:=play_none;
      FieldAge:=0;
      TreeAge:=0;
      if ObjectIsChopableTree(KMPoint(k,i),4) then TreeAge:=TreeAgeFull;
      Border:=bt_None;
      BorderTop:=false;
      BorderLeft:=false;
      BorderBottom:=false;
      BorderRight:=false;
      for h:=1 to 8 do FogOfWar[h]:=0;
      IsUnit:=0;
    end;
  
    //i:=SizeOf(Land[1,1]); //Shall align it manually later on for better performance and less size
  
negative.code: begin
    Land[Loc.Y,Loc.X].TileOwner:=play_none;
    Land[Loc.Y,Loc.X].TileOverlay:=to_None;
    Land[Loc.Y,Loc.X].Terrain := Land[Loc.Y,Loc.X].OldTerrain; //Reset terrain
    Land[Loc.Y,Loc.X].Rotation := Land[Loc.Y,Loc.X].OldRotation; //Reset terrain
    if Land[Loc.Y,Loc.X].Obj in [54..59] then Land[Loc.Y,Loc.X].Obj := 255; //Remove corn/wine
    Land[Loc.Y,Loc.X].FieldAge:=0;
    UpdateBorders(Loc);
  