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