OSDN Git Service

upgrade to 3.6.2
[jnethack/source.git] / src / polyself.c
index ca8f308..0d6342a 100644 (file)
@@ -1,10 +1,10 @@
-/* NetHack 3.6 polyself.c      $NHDT-Date: 1520797126 2018/03/11 19:38:46 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.117 $ */
+/* NetHack 3.6 polyself.c      $NHDT-Date: 1556497911 2019/04/29 00:31:51 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.132 $ */
 /*      Copyright (C) 1987, 1988, 1989 by Ken Arromdee */
 /* 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-2019            */
 /* JNetHack may be freely redistributed.  See license for details. */
 
 /*
@@ -30,7 +30,6 @@ STATIC_DCL void FDECL(check_strangling, (BOOLEAN_P));
 STATIC_DCL void FDECL(polyman, (const char *, const char *));
 STATIC_DCL void NDECL(break_armor);
 STATIC_DCL void FDECL(drop_weapon, (int));
-STATIC_DCL void NDECL(uunstick);
 STATIC_DCL int FDECL(armor_to_dragon, (int));
 STATIC_DCL void NDECL(newman);
 STATIC_DCL void NDECL(polysense);
@@ -50,9 +49,8 @@ void
 set_uasmon()
 {
     struct permonst *mdat = &mons[u.umonnum];
-    int new_speed, old_speed = youmonst.data ? youmonst.data->mmove : 0;
 
-    set_mon_data(&youmonst, mdat, 0);
+    set_mon_data(&youmonst, mdat);
 
 #define PROPSET(PropIndx, ON)                          \
     do {                                               \
@@ -89,12 +87,16 @@ set_uasmon()
     PROPSET(HALLUC_RES, dmgtype(mdat, AD_HALU));
     PROPSET(SEE_INVIS, perceives(mdat));
     PROPSET(TELEPAT, telepathic(mdat));
-    PROPSET(INFRAVISION, infravision(mdat));
+    /* note that Infravision uses mons[race] rather than usual mons[role] */
+    PROPSET(INFRAVISION, infravision(Upolyd ? mdat : &mons[urace.malenum]));
     PROPSET(INVIS, pm_invisible(mdat));
     PROPSET(TELEPORT, can_teleport(mdat));
     PROPSET(TELEPORT_CONTROL, control_teleport(mdat));
     PROPSET(LEVITATION, is_floater(mdat));
-    PROPSET(FLYING, is_flyer(mdat));
+    /* floating eye is the only 'floater'; it is also flagged as a 'flyer';
+       suppress flying for it so that enlightenment doesn't confusingly
+       show latent flight capability always blocked by levitation */
+    PROPSET(FLYING, (is_flyer(mdat) && !is_floater(mdat)));
     PROPSET(SWIMMING, is_swimmer(mdat));
     /* [don't touch MAGICAL_BREATHING here; both Amphibious and Breathless
        key off of it but include different monster forms...] */
@@ -106,17 +108,9 @@ set_uasmon()
     float_vs_flight(); /* maybe toggle (BFlying & I_SPECIAL) */
     polysense();
 
-    if (youmonst.movement) {
-        new_speed = mdat->mmove;
-        /* prorate unused movement if new form is slower so that
-           it doesn't get extra moves leftover from previous form;
-           if new form is faster, leave unused movement as is */
-        if (new_speed < old_speed)
-            youmonst.movement = new_speed * youmonst.movement / old_speed;
-    }
-
 #ifdef STATUS_HILITES
-    status_initialize(REASSESS_ONLY);
+    if (VIA_WINDOWPORT())
+        status_initialize(REASSESS_ONLY);
 #endif
 }
 
@@ -124,12 +118,21 @@ set_uasmon()
 void
 float_vs_flight()
 {
-    /* floating overrides flight; normally float_up() and float_down()
-       handle this, but sometimes they're skipped */
-    if (HLevitation || ELevitation)
+    boolean stuck_in_floor = (u.utrap && u.utraptype != TT_PIT);
+
+    /* floating overrides flight; so does being trapped in the floor */
+    if ((HLevitation || ELevitation)
+        || ((HFlying || EFlying) && stuck_in_floor))
         BFlying |= I_SPECIAL;
     else
         BFlying &= ~I_SPECIAL;
+    /* being trapped on the ground (bear trap, web, molten lava survived
+       with fire resistance, former lava solidified via cold, tethered
+       to a buried iron ball) overrides floating--the floor is reachable */
+    if ((HLevitation || ELevitation) && stuck_in_floor)
+        BLevitation |= I_SPECIAL;
+    else
+        BLevitation &= ~I_SPECIAL;
     context.botl = TRUE;
 }
 
@@ -178,7 +181,7 @@ polyman(fmt, arg)
 const char *fmt, *arg;
 {
     boolean sticky = (sticks(youmonst.data) && u.ustuck && !u.uswallow),
-            was_mimicking = (youmonst.m_ap_type == M_AP_OBJECT);
+            was_mimicking = (U_AP_TYPE == M_AP_OBJECT);
     boolean was_blind = !!Blind;
 
     if (Upolyd) {
@@ -228,8 +231,8 @@ const char *fmt, *arg;
     if (u.twoweap && !could_twoweap(youmonst.data))
         untwoweapon();
 
-    if (u.utraptype == TT_PIT && u.utrap) {
-        u.utrap = rn1(6, 2); /* time to escape resets */
+    if (u.utrap && u.utraptype == TT_PIT) {
+        set_utrap(rn1(6, 2), TT_PIT); /* time to escape resets */
     }
     if (was_blind && !Blind) { /* reverting from eyeless */
         Blinded = 1L;
@@ -694,7 +697,7 @@ int mntmp;
     }
 
     /* if stuck mimicking gold, stop immediately */
-    if (multi < 0 && youmonst.m_ap_type == M_AP_OBJECT
+    if (multi < 0 && U_AP_TYPE == M_AP_OBJECT
         && youmonst.data->mlet != S_MIMIC)
         unmul("");
     /* if becoming a non-mimic, stop mimicking anything */
@@ -820,8 +823,8 @@ int mntmp;
     drop_weapon(1);
     (void) hideunder(&youmonst);
 
-    if (u.utraptype == TT_PIT && u.utrap) {
-        u.utrap = rn1(6, 2); /* time to escape resets */
+    if (u.utrap && u.utraptype == TT_PIT) {
+        set_utrap(rn1(6, 2), TT_PIT); /* time to escape resets */
     }
     if (was_blind && !Blind) { /* previous form was eyeless */
         Blinded = 1L;
@@ -829,10 +832,14 @@ int mntmp;
     }
     newsym(u.ux, u.uy); /* Change symbol */
 
+    /* [note:  this 'sticky' handling is only sufficient for changing from
+       grabber to engulfer or vice versa because engulfing by poly'd hero
+       always ends immediately so won't be in effect during a polymorph] */
     if (!sticky && !u.uswallow && u.ustuck && sticks(youmonst.data))
         u.ustuck = 0;
     else if (sticky && !sticks(youmonst.data))
         uunstick();
+
     if (u.usteed) {
         if (touch_petrifies(u.usteed->data) && !Stone_resistance && rnl(3)) {
 #if 0 /*JP:T*/
@@ -863,42 +870,42 @@ int mntmp;
 /*JP
             pline(use_thec, monsterc, "use your breath weapon");
 */
-            pline(use_thec,monsterc, "\91§\82ð\93f\82«\82©\82¯\82é");
+            pline(use_thec, monsterc, "\91§\82ð\93f\82«\82©\82¯\82é");
         if (attacktype(youmonst.data, AT_SPIT))
 /*JP
             pline(use_thec, monsterc, "spit venom");
 */
-            pline(use_thec,monsterc, "\93Å\82ð\93f\82­");
+            pline(use_thec, monsterc, "\93Å\82ð\93f\82­");
         if (youmonst.data->mlet == S_NYMPH)
 /*JP
             pline(use_thec, monsterc, "remove an iron ball");
 */
-            pline(use_thec,monsterc, "\93S\8b\85\82ð\82Í\82¸\82·");
+            pline(use_thec, monsterc, "\93S\8b\85\82ð\82Í\82¸\82·");
         if (attacktype(youmonst.data, AT_GAZE))
 /*JP
             pline(use_thec, monsterc, "gaze at monsters");
 */
-            pline(use_thec,monsterc, "\89ö\95¨\82ðáÉ\82Þ");
+            pline(use_thec, monsterc, "\89ö\95¨\82ðáÉ\82Þ");
         if (is_hider(youmonst.data))
 /*JP
             pline(use_thec, monsterc, "hide");
 */
-            pline(use_thec,monsterc, "\89B\82ê\82é");
+            pline(use_thec, monsterc, "\89B\82ê\82é");
         if (is_were(youmonst.data))
 /*JP
             pline(use_thec, monsterc, "summon help");
 */
-            pline(use_thec,monsterc, "\92\87\8aÔ\82ð\8f¢\8a«\82·\82é");
+            pline(use_thec, monsterc, "\92\87\8aÔ\82ð\8f¢\8a«\82·\82é");
         if (webmaker(youmonst.data))
 /*JP
             pline(use_thec, monsterc, "spin a web");
 */
-            pline(use_thec,monsterc, "\82­\82à\82Ì\91\83\82ð\92£\82é");
+            pline(use_thec, monsterc, "\82­\82à\82Ì\91\83\82ð\92£\82é");
         if (u.umonnum == PM_GREMLIN)
 /*JP
             pline(use_thec, monsterc, "multiply in a fountain");
 */
-            pline(use_thec,monsterc, "\90ò\82Ì\92\86\82Å\95ª\97ô\82·\82é");
+            pline(use_thec, monsterc, "\90ò\82Ì\92\86\82Å\95ª\97ô\82·\82é");
         if (is_unicorn(youmonst.data))
 /*JP
             pline(use_thec, monsterc, "use your horn");
@@ -920,11 +927,16 @@ int mntmp;
 */
             pline(use_thec, monsterc, "\8ep\82ð\95Ï\82¦\82é");
 
-        if (lays_eggs(youmonst.data) && flags.female)
-/*JP
-            pline(use_thec, "sit", "lay an egg");
-*/
+        if (lays_eggs(youmonst.data) && flags.female &&
+            !(youmonst.data == &mons[PM_GIANT_EEL]
+                || youmonst.data == &mons[PM_ELECTRIC_EEL]))
+#if 0 /*JP*/
+            pline(use_thec, "sit",
+                  eggs_in_water(youmonst.data) ?
+                      "spawn in the water" : "lay an egg");
+#else /* \93ú\96{\8cê\82Å\82Í\90\85\92\86\82Å\82à\81u\97\91\82ð\8eY\82Þ\81v\82Å\96â\91è\82È\82¢ */
             pline(use_thec, "sit", "\97\91\82ð\8eY\82Þ");
+#endif
     }
 
     /* you now know what an egg of your type looks like */
@@ -939,26 +951,26 @@ int mntmp;
         spoteffects(TRUE);
     if (Passes_walls && u.utrap
         && (u.utraptype == TT_INFLOOR || u.utraptype == TT_BURIEDBALL)) {
-        u.utrap = 0;
-        if (u.utraptype == TT_INFLOOR)
+        if (u.utraptype == TT_INFLOOR) {
 /*JP
             pline_The("rock seems to no longer trap you.");
 */
             pline("\8aâ\82É\95Â\82\8d\9e\82ß\82ç\82ê\82é\82±\82Æ\82Í\82È\82¢\82¾\82ë\82¤\81D");
-        else {
+        else {
 /*JP
             pline_The("buried ball is no longer bound to you.");
 */
             pline_The("\96\84\82Ü\82Á\82½\8b\85\82ª\8e×\96\82\82É\82È\82é\82±\82Æ\82Í\82È\82¢\82¾\82ë\82¤\81D");
             buried_ball_to_freedom();
         }
+        reset_utrap(TRUE);
     } else if (likes_lava(youmonst.data) && u.utrap
                && u.utraptype == TT_LAVA) {
-        u.utrap = 0;
 /*JP
         pline_The("%s now feels soothing.", hliquid("lava"));
 */
         pline_The("%s\82ª\90¸\90_\82ð\97\8e\82¿\82Â\82©\82¹\82Ä\82­\82ê\82é\81D", hliquid("\97n\8aâ"));
+        reset_utrap(TRUE);
     }
     if (amorphous(youmonst.data) || is_whirly(youmonst.data)
         || unsolid(youmonst.data)) {
@@ -988,14 +1000,14 @@ int mntmp;
             u.utraptype == TT_WEB ? "\82­\82à\82Ì\91\83" : "\8cF\82Ìã©");
 #endif
         /* probably should burn webs too if PM_FIRE_ELEMENTAL */
-        u.utrap = 0;
+        reset_utrap(TRUE);
     }
     if (webmaker(youmonst.data) && u.utrap && u.utraptype == TT_WEB) {
 /*JP
         You("orient yourself on the web.");
 */
         You("\82­\82à\82Ì\91\83\82É\93K\89\9e\82µ\82½\81D");
-        u.utrap = 0;
+        reset_utrap(TRUE);
     }
     check_strangling(TRUE); /* maybe start strangling */
 
@@ -1262,6 +1274,8 @@ int alone;
 void
 rehumanize()
 {
+    boolean was_flying = (Flying != 0);
+
     /* You can't revert back while unchanging */
     if (Unchanging) {
         if (u.mh < 1) {
@@ -1306,7 +1320,9 @@ rehumanize()
     context.botl = 1;
     vision_full_recalc = 1;
     (void) encumber_msg();
-
+    if (was_flying && !Flying && u.usteed)
+        You("and %s return gently to the %s.",
+            mon_nam(u.usteed), surface(u.ux, u.uy));
     retouch_equipment(2);
     if (!uarmg)
         selftouch(no_longer_petrify_resistant);
@@ -1367,7 +1383,7 @@ dospit()
             break;
         default:
             impossible("bad attack type in dospit");
-        /* fall through */
+            /*FALLTHRU*/
         case AD_ACID:
             otmp = mksobj(ACID_VENOM, TRUE, FALSE);
             break;
@@ -1657,8 +1673,8 @@ dogaze()
                 You_cant("see where to gaze at %s.", Monnam(mtmp));
 */
                 You("%s\82Í\8c©\82¦\82È\82¢\82Ì\82Å\81C\82É\82ç\82ß\82È\82¢", Monnam(mtmp));
-            } else if (mtmp->m_ap_type == M_AP_FURNITURE
-                       || mtmp->m_ap_type == M_AP_OBJECT) {
+            } else if (M_AP_TYPE(mtmp) == M_AP_FURNITURE
+                       || M_AP_TYPE(mtmp) == M_AP_OBJECT) {
                 looked--;
                 continue;
             } else if (flags.safe_dog && mtmp->mtame && !Confusion) {
@@ -1724,7 +1740,7 @@ dogaze()
                         (void) destroy_mitem(mtmp, SPBOOK_CLASS, AD_FIRE);
                     if (dmg)
                         mtmp->mhp -= dmg;
-                    if (mtmp->mhp <= 0)
+                    if (DEADMONSTER(mtmp))
                         killed(mtmp);
                 }
                 /* For consistency with passive() in uhitm.c, this only
@@ -1821,7 +1837,7 @@ dohide()
                                                 : "\89ö\95¨\82ð\82Â\82©\82ñ\82Å\82¢\82é");
 #endif
         if (u.uundetected
-            || (ismimic && youmonst.m_ap_type != M_AP_NOTHING)) {
+            || (ismimic && U_AP_TYPE != M_AP_NOTHING)) {
             u.uundetected = 0;
             youmonst.m_ap_type = M_AP_NOTHING;
             newsym(u.ux, u.uy);
@@ -1874,7 +1890,7 @@ dohide()
      * else make youhiding() give smarter messages at such spots.
      */
 
-    if (u.uundetected || (ismimic && youmonst.m_ap_type != M_AP_NOTHING)) {
+    if (u.uundetected || (ismimic && U_AP_TYPE != M_AP_NOTHING)) {
         youhiding(FALSE, 1); /* "you are already hiding" */
         return 0;
     }
@@ -1953,16 +1969,20 @@ domindblast()
                       : telepathic(mtmp->data) ? "\90ö\8dÝ\93I\90¸\90_\82É\93ü" : "\90[\91w\88Ó\8e¯\82É\90ö");
 #endif
             mtmp->mhp -= rnd(15);
-            if (mtmp->mhp <= 0)
+            if (DEADMONSTER(mtmp))
                 killed(mtmp);
         }
     }
     return 1;
 }
 
-STATIC_OVL void
+void
 uunstick()
 {
+    if (!u.ustuck) {
+        impossible("uunstick: no ustuck?");
+        return;
+    }
 /*JP
     pline("%s is no longer in your clutches.", Monnam(u.ustuck));
 */
@@ -2000,7 +2020,8 @@ int part;
                               "spine",     "toe",  "hair",         "blood",
                               "lung",      "nose", "stomach" },
 #else
-        *humanoid_parts[] = { "\98r", "\96Ú", "\8aç", "\8ew",
+        *humanoid_parts[] = {
+            "\98r", "\96Ú", "\8aç", "\8ew",
             "\8ew\90æ", "\91«", "\8eè", "\8eè\82É\82·\82é",
             "\93ª", "\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
             "\94w\8d\9c", "\92Ü\90æ", "\94¯",  "\8c\8c",
@@ -2015,13 +2036,14 @@ int part;
                            "ripples", "juices", "surface", "sensor",
                            "stomach" },
 #else
-    *jelly_parts[] = { "\8b[\8e\97\90G\8eè", "\8d\95\82¢\94Á\93_", "\91O\96Ê",
-        "\8b[\8e\97\90G\8eè\82Ì\90æ", "\8b[\8e\97\90G\8eè",
-        "\8b[\8e\97\90G\8eè\82Ì\8a²", "\90G\8eè", "\88¬\82é",
-        "\94]\82Ì\97Ì\88æ", "\89º\95û\82Ì\8b[\8e\97\90G\8eè", "\82Ë\82Î\82Ë\82Î\82µ\82Ä\82«\82½",
-        "\92\86\8aÔ\97Ì\88æ", "\95\\96Ê",  "\8b[\8e\97\90G\8eè",
-        "\94g\96ä", "\91Ì\89t", "\95\\96Ê", "\8a´\8ao\8aí",
-        "\88Ý"},
+        *jelly_parts[] = {
+            "\8b[\8e\97\90G\8eè", "\8d\95\82¢\94Á\93_", "\91O\96Ê",
+            "\8b[\8e\97\90G\8eè\82Ì\90æ", "\8b[\8e\97\90G\8eè",
+            "\8b[\8e\97\90G\8eè\82Ì\8a²", "\90G\8eè", "\88¬\82é",
+            "\94]\82Ì\97Ì\88æ", "\89º\95û\82Ì\8b[\8e\97\90G\8eè", "\82Ë\82Î\82Ë\82Î\82µ\82Ä\82«\82½",
+            "\92\86\8aÔ\97Ì\88æ", "\95\\96Ê",  "\8b[\8e\97\90G\8eè",
+            "\94g\96ä", "\91Ì\89t", "\95\\96Ê", "\8a´\8ao\8aí",
+            "\88Ý"},
 #endif
 #if 0 /*JP*/
         *animal_parts[] = { "forelimb",  "eye",           "face",
@@ -2032,13 +2054,14 @@ int part;
                             "blood",     "lung",          "nose",
                             "stomach" },
 #else
-    *animal_parts[] = { "\91O\91«", "\96Ú", "\8aç",
-        "\91O\92Ü", "\92Ü\90æ", "\8cã\92Ü",
-        "\91O\92Ü", "\82Ð\82Á\82©\82¯\82é", "\93ª",
-        "\8cã\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
-        "\94w\8d\9c", "\8cã\92Ü\90æ", "\96Ñ\94ç",
-        "\8c\8c", "\94x", "\95@",
-        "\88Ý"},
+        *animal_parts[] = {
+            "\91O\91«", "\96Ú", "\8aç",
+            "\91O\92Ü", "\92Ü\90æ", "\8cã\92Ü",
+            "\91O\92Ü", "\82Ð\82Á\82©\82¯\82é", "\93ª",
+            "\8cã\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
+            "\94w\8d\9c", "\8cã\92Ü\90æ", "\96Ñ\94ç",
+            "\8c\8c", "\94x", "\95@",
+            "\88Ý"},
 #endif
 #if 0 /*JP*/
         *bird_parts[] = { "wing",     "eye",  "face",         "wing",
@@ -2047,11 +2070,12 @@ int part;
                           "spine",    "toe",  "feathers",     "blood",
                           "lung",     "bill", "stomach" },
 #else
-    *bird_parts[] = { "\97\83", "\96Ú", "\8aç", "\97\83",
-        "\97\83\82Ì\90æ", "\91«", "\97\83", "\97\83\82É\82Æ\82é",
-        "\93ª", "\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
-        "\94w\8d\9c", "\92Ü\90æ", "\89H\96Ñ", "\8c\8c",
-        "\94x", "\82­\82¿\82Î\82µ", "\88Ý" },
+        *bird_parts[] = {
+            "\97\83", "\96Ú", "\8aç", "\97\83",
+            "\97\83\82Ì\90æ", "\91«", "\97\83", "\97\83\82É\82Æ\82é",
+            "\93ª", "\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
+            "\94w\8d\9c", "\92Ü\90æ", "\89H\96Ñ", "\8c\8c",
+            "\94x", "\82­\82¿\82Î\82µ", "\88Ý" },
 #endif
 #if 0 /*JP*/
         *horse_parts[] = { "foreleg",  "eye",           "face",
@@ -2062,13 +2086,14 @@ int part;
                            "blood",    "lung",          "nose",
                            "stomach" },
 #else
-    *horse_parts[] = { "\91O\91«", "\96Ú", "\8aç",
-        "\91O\92û", "\92û", "\8cã\92û",
-        "\91O\92Ü", "\92û\82É\82Í\82³\82Þ", "\93ª",
-        "\8cã\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
-        "\94w\8d\9c", "\8cã\92Ü\90æ", "\82½\82Ä\82ª\82Ý",
-        "\8c\8c", "\94x", "\95@",
-        "\88Ý" },
+        *horse_parts[] = {
+            "\91O\91«", "\96Ú", "\8aç",
+            "\91O\92û", "\92û", "\8cã\92û",
+            "\91O\92Ü", "\92û\82É\82Í\82³\82Þ", "\93ª",
+            "\8cã\91«", "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ",
+            "\94w\8d\9c", "\8cã\92Ü\90æ", "\82½\82Ä\82ª\82Ý",
+            "\8c\8c", "\94x", "\95@",
+            "\88Ý" },
 #endif
 #if 0 /*JP*/
         *sphere_parts[] = { "appendage", "optic nerve", "body", "tentacle",
@@ -2078,7 +2103,8 @@ int part;
                             "lower tentacle tip", "cilia", "life force",
                             "retina", "olfactory nerve", "interior" },
 #else
-        *sphere_parts[] = { "\93Ë\8bN", "\8e\8b\8ao\90_\8co", "\91Ì", "\90G\8eè",
+        *sphere_parts[] = {
+            "\93Ë\8bN", "\8e\8b\8ao\90_\8co", "\91Ì", "\90G\8eè",
             "\90G\8eè\82Ì\90æ", "\89º\82Ì\93Ë\8bN", "\90G\8eè",
             "\90G\8eè\82É\8e\9d\82Â", "\91Ì", "\89º\82Ì\90G\8eè",
             "\89ñ\93]\82µ\82½", "\92\86\90S\90ü", "\91Ì",
@@ -2094,7 +2120,8 @@ int part;
                             "juices",   "gill",        "gill",
                             "interior" },
 #else
-        *fungus_parts[] = { "\8bÛ\8e\85\91Ì", "\8e\8b\8ao\97Ì\88æ", "\91O",
+        *fungus_parts[] = {
+            "\8bÛ\8e\85\91Ì", "\8e\8b\8ao\97Ì\88æ", "\91O",
             "\8bÛ\8e\85", "\8bÛ\8e\85", "\8dª",
             "\90G\8eè", "\90G\8eè\82É\82©\82ç\82Ý\82Â\82¯\82é", "\8eP",
             "\8dª\8cs", "\8d¬\97\90\82·\82é", "\8e²",
@@ -2111,7 +2138,8 @@ int part;
                             "life force",    "center",        "leading edge",
                             "interior" },
 #else
-        *vortex_parts[] = { "\97Ì\88æ", "\96Ú", "\91O",
+        *vortex_parts[] = {
+            "\97Ì\88æ", "\96Ú", "\91O",
             "\8f¬\82³\82¢\97¬\82ê", "\8f¬\82³\82¢\97¬\82ê", "\89º\95\94\82Ì\97¬\82ê",
             "\89Q\8aª", "\89Q\82É\8aª\82­", "\89Q\82Ì\92\86\90S",
             "\89º\95\94\82Ì\97¬\82ê", "\8d¬\97\90\82µ\82½", "\92\86\90S\95\94",
@@ -2127,7 +2155,8 @@ int part;
                            "scales", "blood", "lung", "forked tongue",
                            "stomach" },
 #else
-        *snake_parts[] = { "\91Þ\89»\82µ\82½\91«", "\96Ú", "\8aç", "\91å\82«\82È\97Ø",
+        *snake_parts[] = {
+            "\91Þ\89»\82µ\82½\91«", "\96Ú", "\8aç", "\91å\82«\82È\97Ø",
             "\91å\82«\82È\97Ø\82Ì\90æ", "\8cã\95\94\95ª", "\97Ø\82Ì\8c\84\8aÔ",
             "\97Ø\82Ì\8c\84\8aÔ\82É\82Â\82¯\82é", "\93ª", "\8cã\95\94\95ª",
             "\82ß\82Ü\82¢\82ª\82µ\82½", "\8eñ", "\91Ì", "\8cã\95\94\95ª\82Ì\8aZ",
@@ -2142,12 +2171,13 @@ int part;
                           "length", "posterior setae", "setae", "blood",
                           "skin", "prostomium", "stomach" },
 #else
-        *worm_parts[] = { "\91O\8bæ", "\8a´\8cõ\90«\8d×\96E",
-                          "\8aÂ\91Ñ", "\8ap", "\8ap", "\8cã\8bæ",
-                          "\90ß", "\90ß\82É\82Â\82¯\82é", "\91O\8bæ",
-                          "\8cã\95\94", "\90L\82Ñ\82·\82¬\82½", "\8aÂ\91Ñ",
-                          "\91Ì", "\8cã\95\94\82Ì\8ap", "\8ap", "\8c\8c",
-                          "\94ç\95\86", "\8cû\91O\97t", "\88Ý" },
+        *worm_parts[] = {
+            "\91O\8bæ", "\8a´\8cõ\90«\8d×\96E",
+            "\8aÂ\91Ñ", "\8ap", "\8ap", "\8cã\8bæ",
+            "\90ß", "\90ß\82É\82Â\82¯\82é", "\91O\8bæ",
+            "\8cã\95\94", "\90L\82Ñ\82·\82¬\82½", "\8aÂ\91Ñ",
+            "\91Ì", "\8cã\95\94\82Ì\8ap", "\8ap", "\8c\8c",
+            "\94ç\95\86", "\8cû\91O\97t", "\88Ý" },
 #endif
 #if 0 /*JP*/
         *fish_parts[] = { "fin", "eye", "premaxillary", "pelvic axillary",
@@ -2156,7 +2186,8 @@ int part;
                           "dorsal fin", "caudal fin", "scales", "blood",
                           "gill", "nostril", "stomach" };
 #else
-        *fish_parts[] = { "\82Ð\82ê", "\96Ú", "\8aç", "\82Ð\82ê\82Ì\90æ",
+        *fish_parts[] = {
+            "\82Ð\82ê", "\96Ú", "\8aç", "\82Ð\82ê\82Ì\90æ",
             "\82Ð\82ê\82Ì\90æ", "\94ö\82Ñ\82ê", "\8b¹\82Ð\82ê", "\82Ð\82ê\82Å\8e\9d\82Â",
             "\93ª", "\94ö\95¿", "\82ß\82Ü\82¢\82ª\82µ\82½", "\82¦\82ç",
             "\94w\82Ñ\82ê", "\94ö\82Ñ\82ê", "\97Ø", "\8c\8c",
@@ -2426,10 +2457,10 @@ udeadinside()
                  : "empty";    /* golems plus vortices */
 #else
     return !nonliving(youmonst.data)
-             ? "\8e\80\82ñ\82¾"          /* living, including demons */
+             ? "\8e\80\82ñ\82¾"          /* \90\95¨\82Æ\88«\96\82 */
              : !weirdnonliving(youmonst.data)
-                 ? "\94j\89ó\82³\82ê\82½" /* undead plus manes */
-                 : "\82È\82­\82È\82Á\82½";    /* golems plus vortices */
+                 ? "\94j\89ó\82³\82ê\82½"  /* \83A\83\93\83f\83b\83h\82Æ\96S\97ì */
+                 : "\82È\82­\82È\82Á\82½"; /* \83S\81[\83\8c\83\80\82Æ\89Q */
 #endif
 }