OSDN Git Service

update year to 2020
[jnethack/source.git] / src / sounds.c
index 17cbaf6..d77e4d5 100644 (file)
@@ -1,10 +1,10 @@
-/* NetHack 3.6 sounds.c        $NHDT-Date: 1446713641 2015/11/05 08:54:01 $  $NHDT-Branch: master $:$NHDT-Revision: 1.74 $ */
+/* NetHack 3.6 sounds.c        $NHDT-Date: 1570844005 2019/10/12 01:33:25 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.83 $ */
 /*      Copyright (c) 1989 Janet Walz, Mike Threepoint */
 /* NetHack may be freely redistributed.  See license for details. */
 
 /* JNetHack Copyright */
 /* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
-/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016            */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2020            */
 /* JNetHack may be freely redistributed.  See license for details. */
 
 #include "hack.h"
@@ -42,7 +42,7 @@ dosounds()
     hallu = Hallucination ? 1 : 0;
 
     if (level.flags.nfountains && !rn2(400)) {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
         static const char *const fountain_msg[4] = {
             "bubbling water.", "water falling on coins.",
             "the splashing of a naiad.", "a soda fountain!",
@@ -55,7 +55,7 @@ dosounds()
         You_hear1(fountain_msg[rn2(3) + hallu]);
     }
     if (level.flags.nsinks && !rn2(300)) {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
         static const char *const sink_msg[3] = {
             "a slow drip.", "a gurgling noise.", "dishes being washed!",
 #else
@@ -68,7 +68,7 @@ dosounds()
         You_hear1(sink_msg[rn2(2) + hallu]);
     }
     if (level.flags.has_court && !rn2(200)) {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
         static const char *const throne_msg[4] = {
             "the tones of courtly conversation.",
             "a sceptre pounded in judgment.",
@@ -99,7 +99,7 @@ dosounds()
         }
     }
     if (level.flags.has_swamp && !rn2(200)) {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
         static const char *const swamp_msg[3] = {
             "hear mosquitoes!", "smell marsh gas!", /* so it's a smell...*/
             "hear Donald Duck!",
@@ -139,7 +139,7 @@ dosounds()
 #endif /* AZTEC_C_WORKAROUND */
                 {
                     if (gold_in_vault)
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                         You_hear(!hallu
                                      ? "someone counting money."
                                      : "the quarterback calling the play.");
@@ -155,8 +155,8 @@ dosounds()
                         You_hear("\92N\82©\82ª\91{\8dõ\82µ\82Ä\82¢\82é\89¹\82ð\95·\82¢\82½\81D");
                     break;
                 }
-                /* fall into... (yes, even for hallucination) */
             }
+                /*FALLTHRU*/
             case 0:
 /*JP
                 You_hear("the footsteps of a guard on patrol.");
@@ -183,21 +183,21 @@ dosounds()
 /*JP
                     You_hear("a low buzzing.");
 */
-                        You_hear("\82Ô\81[\82ñ\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
+                    You_hear("\82Ô\81[\82ñ\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
                     break;
                 case 1:
 /*JP
                     You_hear("an angry drone.");
 */
-                        You_hear("\8b»\95±\82µ\82½\97Y\83o\83`\82Ì\89¹\82ð\95·\82¢\82½\81D");
+                    You_hear("\8b»\95±\82µ\82½\97Y\83o\83`\82Ì\89¹\82ð\95·\82¢\82½\81D");
                     break;
                 case 2:
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                     You_hear("bees in your %sbonnet!",
                              uarmh ? "" : "(nonexistent) ");
 #else
-                        You_hear("\83n\83`\82ª\82 \82È\82½\82Ì\96X\8eq%s\82Ì\92\86\82É\82¢\82é\89¹\82ð\95·\82¢\82½\81I",
-                            uarmh ? "" : "(\94í\82Á\82Ä\82È\82¢\82¯\82Ç)");
+                    You_hear("\83n\83`\82ª\82 \82È\82½\82Ì\96X\8eq%s\82Ì\92\86\82É\82¢\82é\89¹\82ð\95·\82¢\82½\81I",
+                             uarmh ? "" : "(\94í\82Á\82Ä\82È\82¢\82¯\82Ç)");
 #endif
                     break;
                 }
@@ -211,7 +211,9 @@ dosounds()
                 continue;
             if ((is_undead(mtmp->data) || is_vampshifter(mtmp))
                 && mon_in_room(mtmp, MORGUE)) {
+#if 0 /*JP*/
                 const char *hair = body_part(HAIR); /* hair/fur/scales */
+#endif
 
                 switch (rn2(2) + hallu) {
                 case 0:
@@ -221,7 +223,7 @@ dosounds()
                     You("\95s\8e©\91R\82È\82­\82ç\82¢\90Ã\82©\82È\82Ì\82É\8bC\82Ã\82¢\82½\81D");
                     break;
                 case 1:
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                     pline_The("%s on the back of your %s %s up.", hair,
                               body_part(NECK), vtense(hair, "stand"));
 #else
@@ -230,7 +232,7 @@ dosounds()
 #endif
                     break;
                 case 2:
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                     pline_The("%s on your %s %s to stand up.", hair,
                               body_part(HEAD), vtense(hair, "seem"));
 #else
@@ -245,7 +247,7 @@ dosounds()
     }
     if (level.flags.has_barracks && !rn2(200)) {
         static const char *const barracks_msg[4] = {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
             "blades being honed.", "loud snoring.", "dice being thrown.",
             "General MacArthur!",
 #else
@@ -275,7 +277,7 @@ dosounds()
     }
     if (level.flags.has_zoo && !rn2(200)) {
         static const char *const zoo_msg[3] = {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
             "a sound reminiscent of an elephant stepping on a peanut.",
             "a sound reminiscent of a seal barking.", "Doctor Dolittle!",
 #else
@@ -303,7 +305,7 @@ dosounds()
         if (tended_shop(sroom)
             && !index(u.ushops, (int) (ROOM_INDEX(sroom) + ROOMOFFSET))) {
             static const char *const shop_msg[3] = {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                 "someone cursing shoplifters.",
                 "the chime of a cash register.", "Neiman and Marcus arguing!",
 #else
@@ -338,7 +340,7 @@ dosounds()
                care if telepathy or extended detection reveals that the
                priest is not currently standing on the altar; he's mobile). */
             static const char *const temple_msg[] = {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                 "*someone praising %s.", "*someone beseeching %s.",
                 "#an animal carcass being offered in sacrifice.",
                 "*a strident plea for donations.",
@@ -383,7 +385,7 @@ dosounds()
         /* and don't produce silly effects when she's clearly visible */
         if (mtmp && (hallu || !canseemon(mtmp))) {
             static const char *const ora_msg[5] = {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                 "a strange wind.",     /* Jupiter at Dodona */
                 "convulsive ravings.", /* Apollo at Delphi */
                 "snoring snakes.",     /* AEsculapius at Epidaurus */
@@ -404,7 +406,7 @@ dosounds()
 }
 
 static const char *const h_sounds[] = {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
     "beep",   "boing",   "sing",   "belche", "creak",   "cough",
     "rattle", "ululate", "pop",    "jingle", "sniffle", "tinkle",
     "eep",    "clatter", "hum",    "sizzle", "twitter", "wheeze",
@@ -468,62 +470,62 @@ register struct monst *mtmp;
 /*JP
         ret = "hiss";
 */
-            ret = "\83V\81[\83b\82Æ\96Â\82¢\82½";
+        ret = "\83V\81[\83b\82Æ\96Â\82¢\82½";
         break;
     case MS_BARK:
     case MS_GROWL:
 /*JP
         ret = "growl";
 */
-            ret = "\82Í\82°\82µ\82­\96i\82¦\82½";
+        ret = "\82Í\82°\82µ\82­\96i\82¦\82½";
         break;
     case MS_ROAR:
 /*JP
         ret = "roar";
 */
-            ret = "\96i\82¦\82½";
+        ret = "\96i\82¦\82½";
         break;
     case MS_BUZZ:
 /*JP
         ret = "buzz";
 */
-            ret = "\83u\81[\83b\82Æ\96Â\82¢\82½";
+        ret = "\83u\81[\83b\82Æ\96Â\82¢\82½";
         break;
     case MS_SQEEK:
 /*JP
         ret = "squeal";
 */
-            ret = "\83L\81[\83L\81[\96Â\82¢\82½";
+        ret = "\83L\81[\83L\81[\96Â\82¢\82½";
         break;
     case MS_SQAWK:
 /*JP
         ret = "screech";
 */
-            ret = "\8bà\90Ø\82è\90º\82ð\97§\82Ä\82½";
+        ret = "\8bà\90Ø\82è\90º\82ð\97§\82Ä\82½";
         break;
     case MS_NEIGH:
 /*JP
         ret = "neigh";
 */
-            ret = "\82¢\82È\82È\82¢\82½";
+        ret = "\82¢\82È\82È\82¢\82½";
         break;
     case MS_WAIL:
 /*JP
         ret = "wail";
 */
-            ret = "\94ß\82µ\82­\96Â\82¢\82½";
+        ret = "\94ß\82µ\82­\96Â\82¢\82½";
         break;
     case MS_SILENT:
 /*JP
         ret = "commotion";
 */
-                ret = "\8b»\95±\82µ\82½";
+        ret = "\8b»\95±\82µ\82½";
         break;
     default:
 /*JP
         ret = "scream";
 */
-                ret = "\8bà\90Ø\82è\90º\82ð\82 \82°\82½";
+        ret = "\8bà\90Ø\82è\90º\82ð\82 \82°\82½";
     }
     return ret;
 }
@@ -571,40 +573,40 @@ register struct monst *mtmp;
         switch (mtmp->data->msound) {
         case MS_MEW:
 /*JP
-            yelp_verb = "yowl";
+            yelp_verb = (!Deaf) ? "yowl" : "arch";
 */
-            yelp_verb = "\94ß\82µ\82­\96Â\82¢\82½";
+            yelp_verb = (!Deaf) ? "\94ß\82µ\82­\96Â\82¢\82½" : "\8b|\82È\82è\82É\82È\82Á\82½";
             break;
         case MS_BARK:
         case MS_GROWL:
 /*JP
-            yelp_verb = "yelp";
+            yelp_verb = (!Deaf) ? "yelp" : "recoil";
 */
-            yelp_verb = "\83L\83\83\83\93\83L\83\83\83\93\96Â\82¢\82½";
+            yelp_verb = (!Deaf) ? "\83L\83\83\83\93\83L\83\83\83\93\96Â\82¢\82½" : "\90K\8d\9e\82Ý\82µ\82½";
             break;
         case MS_ROAR:
 /*JP
-            yelp_verb = "snarl";
+            yelp_verb = (!Deaf) ? "snarl" : "bluff";
 */
-            yelp_verb = "\82¤\82È\82Á\82½";
+            yelp_verb = (!Deaf) ? "\82¤\82È\82Á\82½" : "\82â\82¹\89ä\96\9d\82µ\82½";
             break;
         case MS_SQEEK:
 /*JP
-            yelp_verb = "squeal";
+            yelp_verb = (!Deaf) ? "squeal" : "quiver";
 */
-            yelp_verb = "\83L\81[\83L\81[\96Â\82¢\82½";
+            yelp_verb = (!Deaf) ? "\83L\81[\83L\81[\96Â\82¢\82½" : "\90k\82¦\82½";
             break;
         case MS_SQAWK:
 /*JP
-            yelp_verb = "screak";
+            yelp_verb = (!Deaf) ? "screak" : "thrash";
 */
-            yelp_verb = "\8bà\90Ø\82è\90º\82ð\97§\82Ä\82½";
+            yelp_verb = (!Deaf) ? "\8bà\90Ø\82è\90º\82ð\97§\82Ä\82½" : "\82Ì\82½\82¤\82¿\89ñ\82Á\82½";
             break;
         case MS_WAIL:
 /*JP
-            yelp_verb = "wail";
+            yelp_verb = (!Deaf) ? "wail" : "cringe";
 */
-            yelp_verb = "\94ß\82µ\82­\96Â\82¢\82½";
+            yelp_verb = (!Deaf) ? "\94ß\82µ\82­\96Â\82¢\82½" : "\90g\82ð\82·\82­\82ß\82½";
             break;
         }
     if (yelp_verb) {
@@ -713,9 +715,9 @@ register struct monst *mtmp;
     char verbuf[BUFSZ];
     register const char *pline_msg = 0, /* Monnam(mtmp) will be prepended */
         *verbl_msg = 0,                 /* verbalize() */
-            *verbl_msg_mcan = 0;        /* verbalize() if cancelled */
+        *verbl_msg_mcan = 0;            /* verbalize() if cancelled */
     struct permonst *ptr = mtmp->data;
-    int msound = ptr->msound;
+    int msound = ptr->msound, gnomeplan = 0;
 
     /* presumably nearness and sleep checks have already been made */
     if (Deaf)
@@ -731,8 +733,9 @@ register struct monst *mtmp;
         msound = mons[genus(monsndx(ptr), 1)].msound;
     /* some normally non-speaking types can/will speak if hero is similar */
     else if (msound == MS_ORC         /* note: MS_ORC is same as MS_GRUNT */
-             && (same_race(ptr, youmonst.data)           /* current form, */
-                 || same_race(ptr, &mons[Race_switch]))) /* unpoly'd form */
+             && ((same_race(ptr, youmonst.data)          /* current form, */
+                  || same_race(ptr, &mons[Race_switch])) /* unpoly'd form */
+                 || Hallucination))
         msound = MS_HUMANOID;
     /* silliness, with slight chance to interfere with shopping */
     else if (Hallucination && mon_is_gecko(mtmp))
@@ -789,18 +792,18 @@ register struct monst *mtmp;
 
         if (mtmp->mtame) {
             if (kindred) {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                 Sprintf(verbuf, "Good %s to you Master%s",
                         isnight ? "evening" : "day",
                         isnight ? "!" : ".  Why do we not rest?");
 #else
                 Sprintf(verbuf, "\82²\8eå\90l\97l\81C%s%s",
                         isnight ? "\82±\82ñ\82Î\82ñ\82Í" : "\82±\82ñ\82É\82¿\82Í",
-                        isnight ? "!" : "\81D\82¨\8bx\82Ý\82É\82È\82è\82Ü\82¹\82ñ\82©\81H");
+                        isnight ? "\81I" : "\81D\82¨\8bx\82Ý\82É\82È\82è\82Ü\82¹\82ñ\82©\81H");
 #endif
                 verbl_msg = verbuf;
             } else {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                 Sprintf(verbuf, "%s%s",
                         nightchild ? "Child of the night, " : "",
                         midnight()
@@ -821,7 +824,7 @@ register struct monst *mtmp;
             }
         } else if (mtmp->mpeaceful) {
             if (kindred && isnight) {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                 Sprintf(verbuf, "Good feeding %s!",
                         flags.female ? "sister" : "brother");
 #else
@@ -840,7 +843,6 @@ register struct monst *mtmp;
 */
                 verbl_msg = "\8e\84\82Í\96ò\81D\81D\82µ\82©\88ù\82Ü\82È\82¢\81D";
         } else {
-            int vampindex;
             static const char *const vampmsg[] = {
                 /* These first two (0 and 1) are specially handled below */
 /*JP
@@ -853,6 +855,8 @@ register struct monst *mtmp;
                 "\91\95ª\82É%s\82ð\92Ç\8c\82\82³\82¹\82Ä\82à\82ç\82¨\82¤\81I",
                 /* other famous vampire quotes can follow here if desired */
             };
+            int vampindex;
+
             if (kindred)
                 verbl_msg =
 /*JP
@@ -863,7 +867,7 @@ register struct monst *mtmp;
                      || youmonst.data == &mons[PM_BABY_SILVER_DRAGON]) {
                 /* Silver dragons are silver in color, not made of silver */
 #if 0 /*JP*/
-                Sprintf(verbuf, "%s! Your silver sheen does not frighten me!",
+                Sprintf(verbuf, "%s!  Your silver sheen does not frighten me!",
                         youmonst.data == &mons[PM_SILVER_DRAGON]
                             ? "Fool"
                             : "Young Fool");
@@ -888,7 +892,7 @@ register struct monst *mtmp;
     } break;
     case MS_WERE:
         if (flags.moonphase == FULL_MOON && (night() ^ !rn2(13))) {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
             pline("%s throws back %s head and lets out a blood curdling %s!",
                   Monnam(mtmp), mhis(mtmp),
                   ptr == &mons[PM_HUMAN_WERERAT] ? "shriek" : "howl");
@@ -963,7 +967,8 @@ register struct monst *mtmp;
 */
                 pline_msg = "\83j\83\83\81[\83j\83\83\81[\96Â\82¢\82½\81D";
             break;
-        } /* else FALLTHRU */
+        }
+        /*FALLTHRU*/
     case MS_GROWL:
 /*JP
         pline_msg = mtmp->mpeaceful ? "snarls." : "growls!";
@@ -1110,7 +1115,7 @@ register struct monst *mtmp;
 /*JP
                 verbl_msg = "I'm free!";
 */
-                    verbl_msg = "\82â\82Á\82Æ\8e©\97R\82É\82È\82Á\82½\81I";
+                verbl_msg = "\82â\82Á\82Æ\8e©\97R\82É\82È\82Á\82½\81I";
         } else {
             if (ptr != &mons[PM_PRISONER])
 /*JP
@@ -1127,7 +1132,7 @@ register struct monst *mtmp;
         if (!mtmp->mpeaceful) {
             switch (rn2(4)) {
             case 0:
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                 pline("%s boasts about %s gem collection.", Monnam(mtmp),
                       mhis(mtmp));
 #else
@@ -1150,7 +1155,7 @@ register struct monst *mtmp;
             }
             break;
         }
-    /* else FALLTHRU */
+        /*FALLTHRU*/
     case MS_HUMANOID:
         if (!mtmp->mpeaceful) {
             if (In_endgame(&u.uz) && is_mplayer(ptr))
@@ -1224,6 +1229,23 @@ register struct monst *mtmp;
             pline_msg = "discusses hunting.";
 */
             pline_msg = "\97Â\82É\82Â\82¢\82Ä\8bc\98_\82µ\82½\81D";
+        else if (is_gnome(ptr) && Hallucination && (gnomeplan = rn2(4)) % 2)
+            /* skipped for rn2(4) result of 0 or 2;
+               gag from an early episode of South Park called "Gnomes";
+               initially, Tweek (introduced in that episode) is the only
+               one aware of the tiny gnomes after spotting them sneaking
+               about; they are embarked upon a three-step business plan;
+               a diagram of the plan shows:
+                         Phase 1         Phase 2      Phase 3
+                   Collect underpants       ?          Profit
+               and they never verbalize step 2 so we don't either */
+#if 0 /*JP:T*/
+            verbl_msg = (gnomeplan == 1) ? "Phase one, collect underpants."
+                                         : "Phase three, profit!";
+#else
+            verbl_msg = (gnomeplan == 1) ? "\82»\82Ì\82P\81C\83p\83\93\83c\82ð\8fW\82ß\82é\81D"
+                                         : "\82»\82Ì\82R\81C\8eû\89v\89»\81I";
+#endif
         else
             switch (monsndx(ptr)) {
             case PM_HOBBIT:
@@ -1261,6 +1283,7 @@ register struct monst *mtmp;
         break;
     case MS_SEDUCE: {
         int swval;
+
         if (SYSOPT_SEDUCE) {
             if (ptr->mlet != S_NYMPH
                 && could_seduce(mtmp, &youmonst, (struct attack *) 0) == 1) {
@@ -1303,14 +1326,14 @@ register struct monst *mtmp;
     } break;
     case MS_ARREST:
         if (mtmp->mpeaceful)
-#if 0 /*JP*/
+#if 0 /*JP:T*/
             verbalize("Just the facts, %s.", flags.female ? "Ma'am" : "Sir");
 #else
             verbalize("\8e\96\8eÀ\82¾\82¯\82ª\92m\82è\82½\82¢\82ñ\82Å\82·\82æ\81C%s\81D", flags.female ? "\89\9c\82³\82ñ" : "\92U\93ß");
 #endif
         else {
             static const char *const arrest_msg[3] = {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                 "Anything you say can be used against you.",
                 "You're under arrest!", "Stop in the name of the Law!",
 #else
@@ -1396,7 +1419,7 @@ register struct monst *mtmp;
         static const char
             *const soldier_foe_msg[3] =
                 {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                   "Resistance is useless!", "You're dog meat!", "Surrender!",
 #else
                     "\92ï\8dR\82µ\82Ä\82à\96³\91Ê\82¾\81I",
@@ -1405,7 +1428,7 @@ register struct monst *mtmp;
 #endif
                 },
                    *const soldier_pax_msg[3] = {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
                        "What lousy pay we're getting here!",
                        "The food's not fit for Orcs!",
                        "My feet hurt, I've been on them all day!",
@@ -1419,66 +1442,63 @@ register struct monst *mtmp;
                                     : soldier_foe_msg[rn2(3)];
         break;
     }
-    case MS_RIDER:
-        /* 3.6.0 tribute */
-        if (ptr == &mons[PM_DEATH]
-            && !context.tribute.Deathnotice && u_have_novel()) {
-            struct obj *book = u_have_novel();
-            const char *tribtitle = (char *)0;
-
-            if (book) {
-                int novelidx = book->novelidx;
+    case MS_RIDER: {
+        const char *tribtitle;
+        struct obj *book = 0;
+        boolean ms_Death = (ptr == &mons[PM_DEATH]);
 
-                tribtitle = noveltitle(&novelidx);
-            }
-            if (tribtitle) {
+        /* 3.6 tribute */
+        if (ms_Death && !context.tribute.Deathnotice
+            && (book = u_have_novel()) != 0) {
+            if ((tribtitle = noveltitle(&book->novelidx)) != 0) {
 /*JP
                 Sprintf(verbuf, "Ah, so you have a copy of /%s/.", tribtitle);
 */
                 Sprintf(verbuf, "\82 \82 \81A/%s/\82ð\8e\9d\82Á\82Ä\82¢\82é\82Ì\82©\81D", tribtitle);
                 /* no Death featured in these two, so exclude them */
-                if (!(strcmpi(tribtitle, "Snuff") == 0
-                      || strcmpi(tribtitle, "The Wee Free Men") == 0))
+                if (strcmpi(tribtitle, "Snuff")
+                    && strcmpi(tribtitle, "The Wee Free Men"))
 /*JP
-                    Strcat(verbuf, " I may have been misquoted there.");
+                    Strcat(verbuf, "  I may have been misquoted there.");
 */
-                    Strcat(verbuf, "\82±\82±\82Å\82Í\88ø\97p\82ª\8aÔ\88á\82Á\82Ä\82¢\82é\82©\82à\82µ\82ê\82È\82¢\81D");
+                    Strcat(verbuf, "  \82±\82±\82Å\82Í\88ø\97p\82ª\8aÔ\88á\82Á\82Ä\82¢\82é\82©\82à\82µ\82ê\82È\82¢\81D");
                 verbl_msg = verbuf;
-                context.tribute.Deathnotice = 1;
             }
-        } else if (ptr == &mons[PM_DEATH]
-                   && !rn2(2) && Death_quote(verbuf, BUFSZ)) {
-                verbl_msg = verbuf;
-        }
+            context.tribute.Deathnotice = 1;
+        } else if (ms_Death && rn2(3) && Death_quote(verbuf, sizeof verbuf)) {
+            verbl_msg = verbuf;
         /* end of tribute addition */
-        else if (ptr == &mons[PM_DEATH] && !rn2(10))
+
+        } else if (ms_Death && !rn2(10)) {
 /*JP
             pline_msg = "is busy reading a copy of Sandman #8.";
 */
             pline_msg = "\81u\83T\83\93\83h\83}\83\93\81v\82Ì8\8aª\82ð\93Ç\82Þ\82Ì\82É\96Z\82µ\82¢\81D";
-        else
+        else
 /*JP
             verbl_msg = "Who do you think you are, War?";
 */
             verbl_msg = "\83E\83H\81[\82æ\81C\8e©\95ª\82ª\89½\8eÒ\82©\8dl\82¦\82½\82±\82Æ\82ª\82 \82é\82©\81H";
         break;
-    }
+    } /* case MS_RIDER */
+    } /* switch */
 
-    if (pline_msg)
+    if (pline_msg) {
 /*JP
         pline("%s %s", Monnam(mtmp), pline_msg);
 */
         pline("%s\82Í%s", Monnam(mtmp), pline_msg);
-    else if (mtmp->mcan && verbl_msg_mcan)
+    } else if (mtmp->mcan && verbl_msg_mcan) {
         verbalize1(verbl_msg_mcan);
-    else if (verbl_msg) {
+    else if (verbl_msg) {
 #if 0 /*JP*//*\83f\83X\82ð\93Á\95Ê\88µ\82¢\82µ\82È\82¢*/
+        /* more 3.6 tribute */
         if (ptr == &mons[PM_DEATH]) {
             /* Death talks in CAPITAL LETTERS
                and without quotation marks */
             char tmpbuf[BUFSZ];
-            Sprintf(tmpbuf, "%s", verbl_msg);
-            pline1(ucase(tmpbuf));
+
+            pline1(ucase(strcpy(tmpbuf, verbl_msg)));
         } else {
             verbalize1(verbl_msg);
         }
@@ -1611,7 +1631,7 @@ dochat()
         && (otmp = vobj_at(tx, ty)) != 0 && otmp->otyp == STATUE) {
         /* Talking to a statue */
         if (!Blind) {
-#if 0 /*JP*/
+#if 0 /*JP:T*/
             pline_The("%s seems not to notice you.",
                       /* if hallucinating, you can't tell it's a statue */
                       Hallucination ? rndmonnam((char *) 0) : "statue");
@@ -1623,8 +1643,8 @@ dochat()
         return 0;
     }
 
-    if (!mtmp || mtmp->mundetected || mtmp->m_ap_type == M_AP_FURNITURE
-        || mtmp->m_ap_type == M_AP_OBJECT)
+    if (!mtmp || mtmp->mundetected || M_AP_TYPE(mtmp) == M_AP_FURNITURE
+        || M_AP_TYPE(mtmp) == M_AP_OBJECT)
         return 0;
 
     /* sleeping monsters won't talk, except priests (who wake up) */