anchor.diff:  
   procedure TMapObjectTemplate.OnOwnerChanged(ATiles: TTiles; op: TFPObservedOperation);
   var
  -  i, j, x, y: Integer;
  +  i, j, x, y, shift: Integer;
     line: String;
   
     t: PMapTile;
  
positive.code:     line := Mask[i-1];
      y := FOwner.Y - mask_h + i;
  
      for j := 1 to mask_w do
      begin
        x := FOwner.X - mask_w + j;
  
        if (x>0) and (y>0) and (x < length(ATiles)) and (y < length(ATiles[x])) then
        begin
  
negative.code:   for i := 0 to mask_h - 1 do
    begin
      line := Mask[i];
      shift := mask_w - Length(line);
      for j := 0 to Length(line) - 1 do
      begin
        p := j + shift;
        case line[j+1] of
          MASK_ACTIVABLE, MASK_TRIGGER: CurrentContextState.RenderSolidRect(p* TILE_SIZE, i * TILE_SIZE, TILE_SIZE, TILE_SIZE, ACTIVE_COLOR);
          MASK_BLOCKED, MASK_HIDDEN: CurrentContextState.RenderSolidRect(p* TILE_SIZE, i * TILE_SIZE, TILE_SIZE, TILE_SIZE, BLOCKED_COLOR);
        end;
      end;
    end;
  