+ if ((item = find_mons(obj.o_pos.y, obj.o_pos.x)) == NULL)
+ {
+ const char *msgs[] = {
+ "You wink at nothing in particular.",
+ "You smile suggestively at the wall.",
+ "Unprompted, you suddenly blush.",
+ };
+ msg(rndchoice(msgs));
+ return;
+ }
+}
+
+gift(ydelta, xdelta)
+int ydelta, xdelta;
+{
+ register struct linked_list *obj, *nobj;
+ register struct linked_list *mob;
+ register struct object *op;
+ register struct thing *tp;
+ register bool did_hit = TRUE;
+
+ if ((mob = find_mons(hero.y + ydelta, hero.x + xdelta)) == NULL)
+ {
+ msg("There's no-one around here.");
+ return(0);
+ }
+ tp = (struct thing *) ldata(mob);
+
+ if ((obj = get_item("give", 0)) == NULL)
+ return;
+ op = (struct object *) ldata(obj);
+ if (!dropcheck(op))
+ return;
+ /*
+ * Take it out of the pack
+ */
+ if (op->o_count >= 2 && op->o_type != WEAPON)
+ {
+ nobj = new_item(sizeof *op);
+ op->o_count--;
+ op = (struct object *) ldata(nobj);
+ *op = *((struct object *) ldata(obj));
+ op->o_count = 1;
+ obj = nobj;
+ if (op->o_group != 0)
+ inpack++;
+ }
+ else
+ detach(pack, obj);
+ inpack--;
+}
+
+embrace()
+{