+
+ liking = count_bits_set(
+ hash(op->o_type * op->o_which) & tp->t_stats.s_ont) - 1;
+ if ((liking == 0 || liking == -1)
+ || liking > 0 && tp->t_stats.s_int <= MAYBE_INTERESTED)
+ {
+ const char *msgs[] = {
+ "The %s ignores %s",
+ "The %s doesn't care for %s",
+ "The %s isn't interested in %s",
+ };
+ msg(rndchoice(msgs), killname(tp->t_type), inv_name(op, TRUE));
+ return;
+ }
+ else if (liking > 0)
+ {
+ const char *msgs[] = {
+ "The %s accepts %s.",
+ "The %s smiles and takes %s.",
+ };
+ msg(rndchoice(msgs), killname(tp->t_type), inv_name(op, TRUE));
+ tp->t_stats.s_int += liking * 10;
+ }
+ else
+ {
+ const char *msgs[] = {
+ "The %s throws away %s.",
+ "The %s breaks %s.",
+ "The %s hates %s.",
+ };
+ msg(rndchoice(msgs), killname(tp->t_type), inv_name(op, TRUE));
+ tp->t_stats.s_int -= liking * 2;
+ wake_monster(tp->t_pos.y, tp->t_pos.x);
+ }
+