OSDN Git Service

patch src/
[jnethack/source.git] / src / explode.c
index 08a9a70..7b4821f 100644 (file)
@@ -2,6 +2,11 @@
 /*      Copyright (C) 1990 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            */
+/* JNetHack may be freely redistributed.  See license for details. */
+
 #include "hack.h"
 
 /* Note: Arrays are column first, while the screen is row first */
@@ -96,34 +101,59 @@ int expltype;
     } else
         switch (abs(type) % 10) {
         case 0:
+/*JP
             str = "magical blast";
+*/
+            str = "\96\82\96@\82Ì\95\97";
             adtyp = AD_MAGM;
             break;
         case 1:
+#if 0 /*JP*/
             str = (olet == BURNING_OIL) ? "burning oil"
                      : (olet == SCROLL_CLASS) ? "tower of flame" : "fireball";
+#else
+            str = (olet == BURNING_OIL) ? "\94R\82¦\82Ä\82¢\82é\96û"
+                     : (olet == SCROLL_CLASS) ? "\89Î\92\8c" : "\89Î\82Ì\8bÊ";
+#endif
             /* fire damage, not physical damage */
             adtyp = AD_FIRE;
             break;
         case 2:
+/*JP
             str = "ball of cold";
+*/
+            str = "\95X\82Ì\8bÊ";
             adtyp = AD_COLD;
             break;
         case 4:
+#if 0 /*JP*/
             str = (olet == WAND_CLASS) ? "death field"
                                        : "disintegration field";
+#else
+            str = (olet == WAND_CLASS) ? "\8e\80\82Ì\95\97"
+                                       : "\95ª\89ð\82Ì\95\97";
+#endif
             adtyp = AD_DISN;
             break;
         case 5:
+/*JP
             str = "ball of lightning";
+*/
+            str = "\97\8b\8bÊ";
             adtyp = AD_ELEC;
             break;
         case 6:
+/*JP
             str = "poison gas cloud";
+*/
+            str = "\93Å\82Ì\89_";
             adtyp = AD_DRST;
             break;
         case 7:
+/*JP
             str = "splash of acid";
+*/
+            str = "\8e_\82Ì\82µ\82Ô\82«";
             adtyp = AD_ACID;
             break;
         default:
@@ -276,11 +306,17 @@ int expltype;
         tmp_at(DISP_END, 0); /* clear the explosion */
     } else {
         if (olet == MON_EXPLODE) {
+/*JP
             str = "explosion";
+*/
+            str = "\94\9a\94­";
             generic = TRUE;
         }
         if (!Deaf && olet != SCROLL_CLASS)
+/*JP
             You_hear("a blast.");
+*/
+            You_hear("\94\9a\94­\89¹\82ð\95·\82¢\82½\81D");
     }
 
     if (dam)
@@ -320,64 +356,121 @@ int expltype;
                     if (is_animal(u.ustuck->data)) {
                         switch (adtyp) {
                         case AD_FIRE:
+/*JP
                             adj = "heartburn";
+*/
+                            adj = "\94R\82¦\82½";
                             break;
                         case AD_COLD:
+/*JP
                             adj = "chilly";
+*/
+                            adj = "\93\80\82ç\82³\82ê\82½";
                             break;
                         case AD_DISN:
                             if (olet == WAND_CLASS)
+/*JP
                                 adj = "irradiated by pure energy";
+*/
+                                adj = "\8fò\89»\82Ì\97Í\82ð\97\81\82Ñ\82½";
                             else
+/*JP
                                 adj = "perforated";
+*/
+                                adj = "\8c\8a\82ð\82 \82¯\82ç\82ê\82½";
                             break;
                         case AD_ELEC:
+/*JP
                             adj = "shocked";
+*/
+                            adj = "\93d\8c\82\82ð\82­\82ç\82Á\82½";
                             break;
                         case AD_DRST:
+/*JP
                             adj = "poisoned";
+*/
+                            adj = "\93Å\82ð\82­\82ç\82Á\82½";
                             break;
                         case AD_ACID:
+/*JP
                             adj = "an upset stomach";
+*/
+                            adj = "\8e_\82ð\82­\82ç\82Á\82½";
                             break;
                         default:
+/*JP
                             adj = "fried";
+*/
+                            adj = "\83p\83\8a\83p\83\8a\82É\82È\82Á\82½";
                             break;
                         }
+/*JP
                         pline("%s gets %s!", Monnam(u.ustuck), adj);
+*/
+                        pline("%s\82Í%s\81I", Monnam(u.ustuck), adj);
                     } else {
                         switch (adtyp) {
                         case AD_FIRE:
+/*JP
                             adj = "toasted";
+*/
+                            adj = "\8fÅ\82°\82½";
                             break;
                         case AD_COLD:
+/*JP
                             adj = "chilly";
+*/
+                            adj = "\93\80\82Á\82½";
                             break;
                         case AD_DISN:
                             if (olet == WAND_CLASS)
+/*JP
                                 adj = "overwhelmed by pure energy";
+*/
+                            adj = "\8fò\89»\82Ì\97Í\82ð\97\81\82Ñ\82½";
                             else
+/*JP
                                 adj = "perforated";
+*/
+                            adj = "\8c\8a\82ð\82 \82¯\82ç\82ê\82½";
                             break;
                         case AD_ELEC:
+/*JP
                             adj = "shocked";
+*/
+                            adj = "\93d\8c\82\82ð\82­\82ç\82Á\82½";
                             break;
                         case AD_DRST:
+/*JP
                             adj = "intoxicated";
+*/
+                            adj = "\93Å\82ð\82­\82ç\82Á\82½";
                             break;
                         case AD_ACID:
+/*JP
                             adj = "burned";
+*/
+                            adj = "\8e_\82ð\82­\82ç\82Á\82½";
                             break;
                         default:
+/*JP
                             adj = "fried";
+*/
+                            adj = "\83p\83\8a\83p\83\8a\82É\82È\82Á\82½";
                             break;
                         }
+/*JP
                         pline("%s gets slightly %s!", Monnam(u.ustuck), adj);
+*/
+                        pline("%s\82Í\8f­\82µ\82¾\82¯%s\81I", Monnam(u.ustuck), adj);
                     }
                 } else if (cansee(i + x - 1, j + y - 1)) {
                     if (mtmp->m_ap_type)
                         seemimic(mtmp);
+/*JP
                     pline("%s is caught in the %s!", Monnam(mtmp), str);
+*/
+                    pline("%s\82Í%s\82É\82Â\82Â\82Ü\82ê\82½\81I", Monnam(mtmp), str);
                 }
 
                 idamres += destroy_mitem(mtmp, SCROLL_CLASS, (int) adtyp);
@@ -400,7 +493,10 @@ int expltype;
                     if (resist(mtmp, olet, 0, FALSE)) {
                         /* inside_engulfer: <i+x-1,j+y-1> == <u.ux,u.uy> */
                         if (cansee(i + x - 1, j + y - 1) || inside_engulfer)
+/*JP
                             pline("%s resists the %s!", Monnam(mtmp), str);
+*/
+                            pline("%s\82Í%s\82É\92ï\8dR\82µ\82½\81I", Monnam(mtmp), str);
                         mdam = (dam + 1) / 2;
                     }
                     if (mtmp == u.ustuck)
@@ -435,7 +531,10 @@ int expltype;
                 } while (*hallu_buf != lowc(*hallu_buf));
                 str = hallu_buf;
             }
+/*JP
             You("are caught in the %s!", str);
+*/
+            You("%s\82É\82Â\82Â\82Ü\82ê\82½\81I", str);
             iflags.last_msg = PLNMSG_CAUGHT_IN_EXPLOSION;
         }
         /* do property damage first, in case we end up leaving bones */
@@ -443,7 +542,10 @@ int expltype;
             burn_away_slime();
         if (Invulnerable) {
             damu = 0;
+/*JP
             You("are unharmed!");
+*/
+            You("\8f\9d\82Â\82©\82È\82¢\81I");
         } else if (adtyp == AD_PHYS || physical_dmg)
             damu = Maybe_Half_Phys(damu);
         if (adtyp == AD_FIRE)
@@ -474,16 +576,31 @@ int expltype;
                     else if (str != killer.name && str != hallu_buf)
                         Strcpy(killer.name, str);
                     killer.format = KILLED_BY_AN;
+#if 1 /*JP*/
+                    Strcat(killer.name, "\82Å");
+#endif
                 } else if (type >= 0 && olet != SCROLL_CLASS) {
+#if 0 /*JP*/
                     killer.format = NO_KILLER_PREFIX;
                     Sprintf(killer.name, "caught %sself in %s own %s", uhim(),
                             uhis(), str);
+#else
+                    killer.format = KILLED_BY;
+                    Sprintf(killer.name, "\8e©\95ª\8e©\90g\82Ì%s\82É\82Â\82Â\82Ü\82ê\82Ä",
+                            str);
+#endif
                 } else {
+#if 0 /*JP*//* an \82ð\82Â\82¯\82é\82©\82Ç\82¤\82©\82Í\8aÖ\8cW\82È\82¢ */
                     killer.format = (!strcmpi(str, "tower of flame")
                                      || !strcmpi(str, "fireball"))
                                         ? KILLED_BY_AN
                                         : KILLED_BY;
                     Strcpy(killer.name, str);
+#else
+                    killer.format = KILLED_BY;
+                    Strcpy(killer.name, str);
+                    Strcat(killer.name, "\82Å");
+#endif
                 }
                 if (iflags.last_msg == PLNMSG_CAUGHT_IN_EXPLOSION
                     || iflags.last_msg
@@ -500,6 +617,7 @@ int expltype;
     }
 
     if (shopdamage) {
+#if 0 /*JP*/
         pay_for_damage(adtyp == AD_FIRE
                            ? "burn away"
                            : adtyp == AD_COLD
@@ -507,6 +625,15 @@ int expltype;
                                  : adtyp == AD_DISN ? "disintegrate"
                                                     : "destroy",
                        FALSE);
+#else
+        pay_for_damage(adtyp == AD_FIRE
+                           ? "\94R\82â\82·"
+                           : adtyp == AD_COLD
+                                 ? "\95²\81X\82É\82·\82é"
+                                 : adtyp == AD_DISN ? "\95²\8dÓ\82·\82é"
+                                                    : "\94j\89ó\82·\82é",
+                       FALSE);
+#endif
     }
 
     /* explosions are noisy */
@@ -577,7 +704,10 @@ struct obj *obj; /* only scatter this obj        */
             && ((otmp->otyp == BOULDER) || (otmp->otyp == STATUE))
             && rn2(10)) {
             if (otmp->otyp == BOULDER) {
+/*JP
                 pline("%s apart.", Tobjnam(otmp, "break"));
+*/
+                pline("%s\82Í\88ê\95\94\95ª\82ª\8dÓ\82¯\82½\81D",xname(otmp));
                 fracture_rock(otmp);
                 place_object(otmp, sx, sy);
                 if ((otmp = sobj_at(BOULDER, sx, sy)) != 0) {
@@ -590,9 +720,14 @@ struct obj *obj; /* only scatter this obj        */
 
                 if ((trap = t_at(sx, sy)) && trap->ttyp == STATUE_TRAP)
                     deltrap(trap);
+/*JP
                 pline("%s.", Tobjnam(otmp, "crumble"));
+*/
+                pline("%s\82Í\82±\82È\82²\82È\82É\82È\82Á\82½\81D",xname(otmp));
                 (void) break_statue(otmp);
+#ifndef FIX_BUG_C340_2
                 place_object(otmp, sx, sy); /* put fragments on floor */
+#endif
             }
             used_up = TRUE;