Make use of new map::add_item() functionality to simplify code.  Thanks to zpmorgan for pointing out the item stacking problem.