function removeFromInventory(itemNumber: smallint): boolean;
var
newItem: item;
begin
Result := False;
(* Check if there is already an item on the floor here *)
if (items.containsItem(entityList[0].posX, entityList[0].posY) = False) then
{ Create an item }
begin
newItem.itemID := items.itemAmount;
newItem.itemName := inventory[itemNumber].Name;
newItem.itemDescription := inventory[itemNumber].description;
newItem.itemType := inventory[itemNumber].itemType;
newItem.itemMaterial := inventory[itemNumber].itemMaterial;
newItem.useID := inventory[itemNumber].useID;
newItem.glyph := inventory[itemNumber].glyph;
newItem.glyphColour := inventory[itemNumber].glyphColour;
newItem.inView := True;
newItem.posX := entities.entityList[0].posX;
newItem.posY := entities.entityList[0].posY;
newItem.onMap := True;
newItem.discovered := True;
{ Place item on the game map }
Inc(items.itemAmount);
Insert(newitem, itemList, itemAmount);
ui.bufferMessage('You drop the ' + newItem.itemName);
(* Remove from inventory *)
inventory[itemNumber].Name := 'Empty';
inventory[itemNumber].equipped := False;
inventory[itemNumber].description := 'x';
inventory[itemNumber].itemType := itmEmptySlot;
inventory[itemNumber].itemMaterial := matEmpty;
inventory[itemNumber].glyph := 'x';
inventory[itemNumber].glyphColour := 'x';
inventory[itemNumber].inInventory := False;
inventory[itemNumber].useID := 0;
Result := True;
(* Redraw the Drop menu *)
drop;
end
else
ui.bufferMessage('There is no room here');
end;