anchor.diff:    I := GlobalIndex(MapItems, MapID, Index, AX, AY);
     if (I < 0) then Exit;
     if (AItem.Amount <= 0) and (Items_Dungeon_DeleteItemXY(MapID, Index, AX, AY, AItem) = IntTrue) then Exit;
  -  MapItems[I] := AItem;
  -  Result := IntTrue;
  +  Result := Items_Dungeon_SetItem(I, AItem);
   end;
   
   function Items_Dungeon_GetMapItemXY(MapID, Index: Integer; AX, AY: Integer): Item; stdcall;
  
positive.code:   if not IndexInRange(MapItems, Index) then Exit;
    I := GlobalIndex(MapItems, MapID, Index);
    if (I < 0) then Exit;
    FItem := MapItems[I];
    if (FItem.Amount <= 0) then Exit;
    Result := FItem;
  end;
  
negative.code:   end;
  end;
  
  function Items_Dungeon_GetItem(Index: Integer): Item; stdcall;
  begin
    Result := MapItems[Index];
  end;
  
  function Items_Dungeon_SetMapItem(MapID, Index: Integer; AItem: Item): Integer; stdcall;
  var
    I: Integer;
  