+ otmp->spe -= 1;
+}
+
+/* similar to mzapwand() but for magical horns (only instrument mons play) */
+STATIC_OVL void
+mplayhorn(mtmp, otmp, self)
+struct monst *mtmp;
+struct obj *otmp;
+boolean self;
+{
+ if (!canseemon(mtmp)) {
+ int range = couldsee(mtmp->mx, mtmp->my) /* 9 or 5 */
+ ? (BOLT_LIM + 1) : (BOLT_LIM - 3);
+
+#if 0 /*JP:T*/
+ You_hear("a horn being played %s.",
+ (distu(mtmp->mx, mtmp->my) <= range * range)
+ ? "nearby" : "in the distance");
+#else
+ You_hear("%s\82\82Å\83z\83\8b\83\93\82Ì\89¹\82ð\95·\82¢\82½\81D",
+ (distu(mtmp->mx, mtmp->my) <= range * range)
+ ? "\8bß" : "\89\93");
+#endif
+ otmp->known = 0; /* hero doesn't know how many charges are left */
+ } else {
+ otmp->dknown = 1;
+#if 0 /*JP:T*/
+ pline("%s plays a %s directed at %s!", Monnam(mtmp), xname(otmp),
+ self ? mon_nam_too(mtmp, mtmp) : (char *) "you");
+#else
+ pline("%s\82Í%s\82É\8cü\82¯\82Ä%s\82ð\90\81\82¢\82½\81I", Monnam(mtmp),
+ self ? mon_nam_too(mtmp, mtmp) : (char *) "\82 \82È\82½",
+ xname(otmp));
+#endif
+ makeknown(otmp->otyp); /* (wands handle this slightly differently) */
+ if (!self)
+ stop_occupation();
+ }
+ otmp->spe -= 1; /* use a charge */