anchor.diff:    Result := TItemEnum(AItemID);
   end;
   
  +procedure TItems.DropGold(const AX, AY: Byte);
  +var
  +  X, Y: Byte;
  +begin
  +  Drop(AX, AY, iGold);
  +  if (Math.RandomRange(0, 3) = 0) then
  +  begin
  +    X := Math.EnsureRange(AX + (Math.RandomRange(0, 3) - 1), 0, High(Byte));
  +    Y := Math.EnsureRange(AY + (Math.RandomRange(0, 3) - 1), 0, High(Byte));
  +    Drop(X, Y, iGold);
  +  end;
  +end;
  +
   initialization
   
   Items := TItems.Create;
  
positive.code:   for I := 1 to V do
    begin
      // Gold
      if (Math.RandomRange(0, M) >= 5) then Drop(AX, AY, iGold);
      // Potion
      if ((Math.RandomRange(0, M) >= 7) or AIsBoss) then Drop(AX, AY,
        TItemEnum(Math.RandomRange(Ord(iPotionOfHealth1), Ord(iPotionOfMana3) + 1)));
  
negative.code:     procedure AddItemToInv(AItemEnum: TItemEnum; AAmount: Word = 1;
        EqFlag: Boolean = False); overload;
      function GetInventory: string;
      procedure DropGold(const AX, AY: Byte);
      procedure Drop(AX, AY: Byte; AItemEnum: TItemEnum); overload;
      procedure Drop(AX, AY: Byte; AIsBoss: Boolean); overload;
    end;
  