anchor.diff:    // - next to last node is neighbour of LocB (important for delivery to workers),
     // - last node is LocB
   
  -  if NodeCount>3 then begin
  +  {if NodeCount>3 then begin
     k:=2;
     for i:=3 to NodeCount-1 do begin //simplify within LocA+1 .. LocB-2 range
     // i/k are always -1 since array is [0..Count-1] range
  
positive.code: begin
    Xc:=trunc(inX);
    Yc:=trunc(inY);
    Tmp1:=mix(fTerrain.Land[Yc  ,Xc+1].Height, fTerrain.Land[Yc  ,Xc].Height, frac(InX));
    Tmp2:=mix(fTerrain.Land[Yc+1,Xc+1].Height, fTerrain.Land[Yc+1,Xc].Height, frac(InX));
    Result:=mix(Tmp2, Tmp1, frac(InY));
  
negative.code:   function TileIsWalkable(Loc:TKMPoint):boolean;
    function TileIsRoadable(Loc:TKMPoint):boolean;
    procedure RevealCircle(Pos:TKMPoint; Radius,Amount:word; PlayerID:TPlayerID);
    procedure RevealWholeMap(PlayerID:TPlayerID);
    function CheckRevelation(X,Y:word; PlayerID:TPlayerID):single;
    procedure UpdateBorders(Loc:TKMPoint);
    procedure FlattenTerrain(Loc:TKMPoint);
  