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