+
+ liking = count_bits_set(
+ hash((op->o_type << 4) ^ op->o_which) & tp->t_stats.s_ont) - 1;
+ if (liking == 0
+ || liking > 0 && tp->t_stats.s_int <= MAYBE_INTERESTED)
+ {
+ const char *msgs[] = {
+ "The %s ignores %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 takes %s.",
+ };
+ msg(rndchoice(msgs), killname(tp->t_type), inv_name(op, TRUE));
+ tp->t_stats.s_int += liking * 10;
+ }
+ else if (liking < 0)
+ {
+ 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;
+ }
+